From 5ab3eec41febacebb179b5248a85b7e2d7c6bfc9 Mon Sep 17 00:00:00 2001 From: Benex254 Date: Mon, 5 Aug 2024 09:47:03 +0300 Subject: [PATCH] chore(constants): create constants module to store useful constants --- fastanime/Utility/user_data_helper.py | 2 +- fastanime/__init__.py | 35 +-------------------------- fastanime/cli/commands/config.py | 7 ++++-- fastanime/cli/config.py | 2 +- fastanime/cli/interfaces/utils.py | 2 +- fastanime/cli/utils/tools.py | 2 +- fastanime/cli/utils/utils.py | 2 +- fastanime/constants.py | 32 ++++++++++++++++++++++++ fastanime/libs/fzf/__init__.py | 2 +- 9 files changed, 44 insertions(+), 42 deletions(-) create mode 100644 fastanime/constants.py diff --git a/fastanime/Utility/user_data_helper.py b/fastanime/Utility/user_data_helper.py index 2c66c5a..24631d5 100644 --- a/fastanime/Utility/user_data_helper.py +++ b/fastanime/Utility/user_data_helper.py @@ -2,7 +2,7 @@ import json import logging import os -from .. import USER_DATA_PATH +from ..constants import USER_DATA_PATH logger = logging.getLogger(__name__) diff --git a/fastanime/__init__.py b/fastanime/__init__.py index 0a9d807..d9c4a75 100644 --- a/fastanime/__init__.py +++ b/fastanime/__init__.py @@ -1,10 +1,8 @@ import logging import os import sys -from platform import platform from dotenv import load_dotenv -from platformdirs import PlatformDirs load_dotenv() @@ -15,43 +13,12 @@ if os.environ.get("FA_RICH_TRACEBACK", False): # initiate constants -__version__ = "v0.30.0" +__version__ = "v0.32.0" -PLATFORM = platform() APP_NAME = "FastAnime" AUTHOR = "Benex254" GIT_REPO = "github.com" REPO = f"{GIT_REPO}/{AUTHOR}/{APP_NAME}" -USER_NAME = os.environ.get("USERNAME", f"{APP_NAME} user") - - -dirs = PlatformDirs(appname=APP_NAME, appauthor=AUTHOR, ensure_exists=True) - - -# ---- app deps ---- -APP_DIR = os.path.abspath(os.path.dirname(__file__)) -CONFIGS_DIR = os.path.join(APP_DIR, "configs") -ASSETS_DIR = os.path.join(APP_DIR, "assets") - -# ----- user configs and data ----- -APP_DATA_DIR = dirs.user_config_dir -if not APP_DATA_DIR: - APP_DATA_DIR = dirs.user_data_dir - -USER_DATA_PATH = os.path.join(APP_DATA_DIR, "user_data.json") -USER_CONFIG_PATH = os.path.join(APP_DATA_DIR, "config.ini") - -# cache dir -APP_CACHE_DIR = dirs.user_cache_dir - -# video dir -USER_VIDEOS_DIR = os.path.join(dirs.user_videos_dir, APP_NAME) - -# web dirs - -WEB_DIR = os.path.join(APP_DIR, "web") -FRONTEND_DIR = os.path.join(WEB_DIR, "frontend") -BACKEND_DIR = os.path.join(WEB_DIR, "backend") def FastAnime(): diff --git a/fastanime/cli/commands/config.py b/fastanime/cli/commands/config.py index 2b4843a..48cb50a 100644 --- a/fastanime/cli/commands/config.py +++ b/fastanime/cli/commands/config.py @@ -4,7 +4,9 @@ import subprocess import click from rich import print -from ... import USER_CONFIG_PATH +from fastanime.cli.config import Config + +from ...constants import USER_CONFIG_PATH from ..utils.tools import exit_app @@ -13,7 +15,8 @@ from ..utils.tools import exit_app short_help="Edit your config", ) @click.option("--path", "-p", help="Print the config location and exit", is_flag=True) -def configure(path): +@click.pass_obj +def configure(config: Config, path): if path: print(USER_CONFIG_PATH) else: diff --git a/fastanime/cli/config.py b/fastanime/cli/config.py index d781fd0..8681212 100644 --- a/fastanime/cli/config.py +++ b/fastanime/cli/config.py @@ -3,8 +3,8 @@ from configparser import ConfigParser from rich import print -from .. import USER_CONFIG_PATH, USER_VIDEOS_DIR from ..AnimeProvider import AnimeProvider +from ..constants import USER_CONFIG_PATH, USER_VIDEOS_DIR from ..Utility.user_data_helper import user_data_helper diff --git a/fastanime/cli/interfaces/utils.py b/fastanime/cli/interfaces/utils.py index c1451d3..d62be1b 100644 --- a/fastanime/cli/interfaces/utils.py +++ b/fastanime/cli/interfaces/utils.py @@ -5,7 +5,7 @@ from threading import Thread import requests -from ... import APP_CACHE_DIR +from ...constants import APP_CACHE_DIR from ...libs.anilist.anilist_data_schema import AnilistBaseMediaDataSchema from ...Utility import anilist_data_helper from ...Utility.utils import remove_html_tags, sanitize_filename diff --git a/fastanime/cli/utils/tools.py b/fastanime/cli/utils/tools.py index 3d37e71..d56c207 100644 --- a/fastanime/cli/utils/tools.py +++ b/fastanime/cli/utils/tools.py @@ -18,7 +18,7 @@ def exit_app(*args): from rich import print - from ... import USER_NAME + from ...constants import USER_NAME print("Have a good day :smile:", USER_NAME) sys.exit(0) diff --git a/fastanime/cli/utils/utils.py b/fastanime/cli/utils/utils.py index 5c0ef2c..ea37869 100644 --- a/fastanime/cli/utils/utils.py +++ b/fastanime/cli/utils/utils.py @@ -4,7 +4,7 @@ import os from InquirerPy import inquirer from thefuzz import fuzz -from ... import PLATFORM +from ...constants import PLATFORM from ...Utility.data import anime_normalizer logger = logging.getLogger(__name__) diff --git a/fastanime/constants.py b/fastanime/constants.py new file mode 100644 index 0000000..a1661b1 --- /dev/null +++ b/fastanime/constants.py @@ -0,0 +1,32 @@ +import os +from platform import platform + +from platformdirs import PlatformDirs + +from . import APP_NAME, AUTHOR + +PLATFORM = platform() +dirs = PlatformDirs(appname=APP_NAME, appauthor=AUTHOR, ensure_exists=True) + + +# ---- app deps ---- +APP_DIR = os.path.abspath(os.path.dirname(__file__)) +CONFIGS_DIR = os.path.join(APP_DIR, "configs") +ASSETS_DIR = os.path.join(APP_DIR, "assets") + +# ----- user configs and data ----- +APP_DATA_DIR = dirs.user_config_dir +if not APP_DATA_DIR: + APP_DATA_DIR = dirs.user_data_dir + +USER_DATA_PATH = os.path.join(APP_DATA_DIR, "user_data.json") +USER_CONFIG_PATH = os.path.join(APP_DATA_DIR, "config.ini") + +# cache dir +APP_CACHE_DIR = dirs.user_cache_dir + +# video dir +USER_VIDEOS_DIR = os.path.join(dirs.user_videos_dir, APP_NAME) + + +USER_NAME = os.environ.get("USERNAME", f"{APP_NAME} user") diff --git a/fastanime/libs/fzf/__init__.py b/fastanime/libs/fzf/__init__.py index d139fcf..0466efe 100644 --- a/fastanime/libs/fzf/__init__.py +++ b/fastanime/libs/fzf/__init__.py @@ -8,7 +8,7 @@ from typing import Callable, List from art import text2art from rich import print -from ... import PLATFORM +from ...constants import PLATFORM from .config import FZF_DEFAULT_OPTS, FzfOptions logger = logging.getLogger(__name__)