From 0e20615412ce22c1e254715c1d564c0344db9ab5 Mon Sep 17 00:00:00 2001 From: itqop Date: Tue, 27 Feb 2024 22:21:36 +0300 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Added=20the=20base=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 23 +++++++++++++++++++++++ app/__init__.py | 2 ++ app/config.py | 12 ++++++++++++ app/database/__init__.py | 2 ++ app/database/methods.py | 8 ++++++++ app/database/mongodb.py | 5 +++++ requirements.txt | 0 7 files changed, 52 insertions(+) create mode 100644 requirements.txt diff --git a/app.py b/app.py index e69de29..23ae4ed 100644 --- a/app.py +++ b/app.py @@ -0,0 +1,23 @@ +from app import MongoDB, aggregate_salaries, Settings +import asyncio +import json + + +settings = Settings() +client = MongoDB(settings.DB_URI) +db = client.client[settings.DATABASE_NAME] +collection = db[settings.COLLECTION_NAME] + +json_str = ''' +{ + "dt_from": "2022-09-01T00:00:00", + "dt_upto": "2022-12-31T23:59:00", + "group_type": "month" +} +''' + +async def main(json_str): + result = await aggregate_salaries() + pass + +asyncio.run(main(json_str)) \ No newline at end of file diff --git a/app/__init__.py b/app/__init__.py index e69de29..920a29a 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -0,0 +1,2 @@ +from app.config import Settings +from app.database import MongoDB, aggregate_salaries \ No newline at end of file diff --git a/app/config.py b/app/config.py index e69de29..54f0d26 100644 --- a/app/config.py +++ b/app/config.py @@ -0,0 +1,12 @@ +from pydantic_settings import BaseSettings, SettingsConfigDict + +class Settings(BaseSettings): + API_TOKEN_TG: str + HOST_MONGODB: str + DATABASE_NAME: str + COLLECTION_NAME: str + USERNAME_MONGO: str + PASSWORD_MONGO: str + DB_URI: str + + model_config = SettingsConfigDict(env_file='.env', env_file_encoding='utf-8') \ No newline at end of file diff --git a/app/database/__init__.py b/app/database/__init__.py index e69de29..d1aeafe 100644 --- a/app/database/__init__.py +++ b/app/database/__init__.py @@ -0,0 +1,2 @@ +from app.database.mongodb import MongoDB +from app.database.methods import aggregate_salaries \ No newline at end of file diff --git a/app/database/methods.py b/app/database/methods.py index e69de29..0bc3833 100644 --- a/app/database/methods.py +++ b/app/database/methods.py @@ -0,0 +1,8 @@ +from typing import List, Tuple + +async def aggregate_salaries(dt_from: str, dt_upto: str, group_type: str) -> Tuple[List[int], List[str]]: + pipeline = [ + + ] + + return {"dataset": None, "labels": None} \ No newline at end of file diff --git a/app/database/mongodb.py b/app/database/mongodb.py index e69de29..4c3bf9b 100644 --- a/app/database/mongodb.py +++ b/app/database/mongodb.py @@ -0,0 +1,5 @@ +from motor.motor_asyncio import AsyncIOMotorClient + +class MongoDB: + def __init__(self, url: str): + self.client = AsyncIOMotorClient(url) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29