From 076caf036b7b91eca15e833076e6c8834126ccfa Mon Sep 17 00:00:00 2001 From: zosimovaa Date: Wed, 29 Oct 2025 22:52:43 +0300 Subject: [PATCH] Basic app and config was created --- src/config.yaml | 56 ++++++++++++++++++++++++ src/config_test.yaml | 100 +++++++++++++++++++++++++++++++++++++++++++ src/main.py | 32 ++++++++++++-- 3 files changed, 185 insertions(+), 3 deletions(-) create mode 100644 src/config.yaml create mode 100644 src/config_test.yaml diff --git a/src/config.yaml b/src/config.yaml new file mode 100644 index 0000000..0340f59 --- /dev/null +++ b/src/config.yaml @@ -0,0 +1,56 @@ +# === Раздел с общими конфигурационными параметрами === +runtime: 5 + +update_interval: 1 +work_interval: 3 + +# === Логирование === +log: + version: 1 + disable_existing_loggers: False + + formatters: + standard: + format: '%(asctime)s %(name)30s [%(levelname)8s]: %(message)s' + telegram: + format: '%(message)s' + + handlers: + console: + level: DEBUG + formatter: standard + class: logging.StreamHandler + stream: ext://sys.stdout # Default is stderr + + file: + level: DEBUG + formatter: standard + class: logging.handlers.RotatingFileHandler + filename: logs/log.log + mode: a + maxBytes: 500000 + backupCount: 15 + + #telegram: + # level: CRITICAL + # formatter: telegram + # class: logging_telegram_handler.TelegramHandler + # chat_id: 211945135 + # alias: "PDC" + + +# -- Логгеры -- + loggers: + '': + handlers: [console, file] + level: DEBUG + propagate: False + + __main__: + handlers: [console, file] + level: WARNING + propagate: False + + config_manager: + handlers: [console, file] + level: DEBUG \ No newline at end of file diff --git a/src/config_test.yaml b/src/config_test.yaml new file mode 100644 index 0000000..a47060e --- /dev/null +++ b/src/config_test.yaml @@ -0,0 +1,100 @@ +# === Раздел с общими конфигурационными параметрами === +runtime: + symbols: ["BTC_USDT", "ETH_USDT", "USDD_USDT", "TRX_USDT", "BTT_USDT", "NFT_USDT", "XRP_USDT", + "ETH_BTC", "XRP_BTC", "TRX_BTC", "LTC_BTC", "EOS_BTC", "XMR_BTC", "DOGE_BTC", + "NFT_TRX", "ETH_TRX", "JST_TRX", "XRP_TRX", + "ETHBULL_USDT", "BULL_USDT", "BEAR_USDT", "ADABULL_USDT"] + + updateTimeout: 45 + errorTimeout: 10 + +orderbook: + levels: [ 0.0, 0.2, 0.4, 0.6, 0.8, + 1.0, 1.2, 1.4, 1.6, 1.8, + 2.0, 2.2, 2.4, 2.6, 2.8, + 3.0, 3.3, 3.6, 3.9, + 4.2, 4.5, 4.8, + 5.1, 5.4, 5.7, 100 ] + +trades: + depth: 300 + +# === Database params === +db: + #host: 185.117.118.107 + host: 92.53.127.143 + port: 59000 + database: rt5_dev + + +# === Логирование === +log: + version: 1 + disable_existing_loggers: False + + formatters: + standard: + format: '%(asctime)s %(name)30s [%(levelname)8s]: %(message)s' + telegram: + format: '%(message)s' + + handlers: + console: + level: DEBUG + formatter: standard + class: logging.StreamHandler + stream: ext://sys.stdout # Default is stderr + + file: + level: DEBUG + formatter: standard + class: logging.handlers.RotatingFileHandler + filename: logs/log.log + mode: a + maxBytes: 500000 + backupCount: 15 + + telegram: + level: CRITICAL + formatter: telegram + class: logging_telegram_handler.TelegramHandler + chat_id: 211945135 + alias: "PDC" + + +# -- Логгеры -- + loggers: + '': + handlers: [console, file] + level: ERROR + propagate: False + + __main__: + handlers: [console, file, telegram] + level: WARNING + propagate: False + + basic_application: + handlers: [console, file, telegram] + level: INFO + + config_manager: + level: INFO + + log_manager: + level: INFO + + poloniex.public: + level: ERROR + + controllers.abstract: + level: ERROR + + controllers.trades: + level: ERROR + + controllers.orderbook: + level: ERROR + + clickhouse_connector.clickhouse_connector: + level: ERROR \ No newline at end of file diff --git a/src/main.py b/src/main.py index 509f74f..367dfcb 100644 --- a/src/main.py +++ b/src/main.py @@ -1,5 +1,31 @@ -from config_manager import Configmanager + +from config_manager.config_manager import ConfigManager +import asyncio +import logging + +import os +os.chdir(os.path.dirname(__file__)) + +logger = logging.getLogger() + +class MailOrderBot(ConfigManager): + def __init__(self, *agrs, **kwargs): + super().__init__(*agrs, **kwargs) + + def execute(self): + print("run") -if __name__=="__main__": - print("Hello, World!") \ No newline at end of file +async def main(): + app = MailOrderBot("config.yaml") # Можно config.json или config.yaml + task = asyncio.create_task(app.start()) + await asyncio.sleep(5) + app.stop() + await task + logger.info("Work finished.") + + + +if __name__ == "__main__": + asyncio.run(main()) + \ No newline at end of file