[+] add api settings

This commit is contained in:
Siarhei Siniak 2025-07-14 10:59:19 +03:00
parent afdc7c17b6
commit 814fefd18b
2 changed files with 22 additions and 2 deletions

@ -3,6 +3,8 @@ import copy
import uvicorn
import sys
from .settings import Settings as APISettings
async def websocket_tickers(
websocket: fastapi.WebSocket,
) -> None:
@ -23,8 +25,8 @@ def run(args: list[str]):
uvicorn.run(
create_app(),
host='0.0.0.0',
port=80,
host=APISettings.singleton().uvicorn_host,
port=APISettings.singleton().uvicorn_port,
loop='uvloop',
log_config=log_config,
)

@ -0,0 +1,18 @@
import pydantic
import pydantic_settings
from typing import (ClassVar, Optional,)
class Settings(pydantic_settings.BaseSettings):
uvicorn_port : int = 80
uvicorn_host : str = '127.0.0.1'
_singleton : ClassVar[Optional['Settings']] = None
@classmethod
def singleton(cls) -> 'Settings':
if cls._singleton is None:
cls._singleton = Settings.model_validate({})
return cls._singleton