59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
import argparse
|
||
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
|
||
CLOCKIFY_USER_ID: str
|
||
CLOCKIFY_WORKSPACE_ID: str
|
||
|
||
DB_NAME: str = "RedmineTracker.db"
|
||
SQL_PATH: str = "config/RedmineTracker.sql"
|
||
|
||
DATETIME_FORMAT: str = "%Y-%m-%dT%H:%M:%SZ"
|
||
|
||
|
||
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)
|