Files
redmine_tracker/config/__init__.py

92 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import argparse
from datetime import datetime
from pydantic_settings import BaseSettings
from dotenv import load_dotenv
from .clockify import ClockifyConfig # noqa: F401
from .redmine import RedmineConfig # noqa: F401
load_dotenv()
class Config(BaseSettings):
CLOCKIFY_TOKEN: str
REDMINE_TOKEN: str
USER_ID: str = None
WORKSPACE_ID: str = None
MODE: str = "prod"
TRIAL_END_DATE: str = datetime.today().strftime("%Y-%m-%d")
ENV_TXT: str = ".env.txt"
DB_NAME: str = "db/RedmineTracker.db"
SQL_PATH: str = "config/RedmineTracker.sql"
DATETIME_FORMAT: str = "%Y-%m-%dT%H:%M:%SZ"
MONTHS: dict = {
1: "января",
2: "февраля",
3: "марта",
4: "апреля",
5: "мая",
6: "июня",
7: "июля",
8: "августа",
9: "сентября",
10: "октября",
11: "ноября",
12: "декабря"
}
@property
def is_beginner(self):
from utils import str_to_date
return datetime.today() < str_to_date(self.TRIAL_END_DATE)
@property
def is_debug(self):
return self.MODE == "debug"
def configure_argument_parser():
parser = argparse.ArgumentParser(description='Трекер трудочасов с Clockify в Redmine')
parser.add_argument(
'-s',
'--start',
help='Дата начала парсинга активностей в формате гггг-мм-дд'
)
parser.add_argument(
'-e',
'--end',
help='Дата окончания парсинга активностей в формате гггг-мм-дд'
)
parser.add_argument(
'-p',
'--page-size',
type=int,
help='Количество задач для вывода'
)
parser.add_argument(
'-d',
'--debug',
action="store_true",
help='Режим отладки. Не загружает трудочасы в Redmine'
)
parser.add_argument(
'--dry-run',
action="store_true",
help='Предпросмотр. Показывает активности без их сохранения и отправки в Redmine'
)
parser.add_argument(
'-i',
'--init-db',
action="store_true",
help='Режим инициализации бд.\nПодгружает с серверов теги, виды деятельности и проекты Ветро'
)
return parser
arg_parser = configure_argument_parser()
config = Config()