Files
redmine_tracker/config/__init__.py

93 lines
2.5 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 db.db import Database
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
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)
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',
help='Количество задач для вывода'
)
parser.add_argument(
'-d',
'--debug',
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()
db = Database(config.DB_NAME, config.SQL_PATH)
from api.clockify import ClockifyAPI
from api.redmine import RedmineAPI
clock = ClockifyAPI(
token=config.CLOCKIFY_TOKEN,
workspace_id=config.WORKSPACE_ID,
user_id=config.USER_ID
)
red = RedmineAPI(config.REDMINE_TOKEN)