1
0
mirror of https://github.com/ijaric/voice_assistant.git synced 2025-05-24 22:43:26 +00:00

change architecture

This commit is contained in:
ksieuk 2023-09-28 21:30:31 +03:00
parent 28507551b0
commit 8f0365e8d2
5 changed files with 51 additions and 9 deletions

View File

@ -1,17 +1,37 @@
import asyncio
import logging
import os
import uvicorn
import lib.app.app as app_module
import lib.app.settings as app_settings
import lib.app as app
logger = logging.getLogger(__name__)
app_instance = app_module.Application()
app = app_instance.create_app()
settings = app_settings.settings
async def run() -> None:
settings = app.Settings()
application = app.Application.from_settings(settings)
try:
await application.start()
finally:
await application.dispose()
def main() -> None:
try:
asyncio.run(run())
exit(os.EX_OK)
except SystemExit:
exit(os.EX_OK)
except app.ApplicationError:
exit(os.EX_SOFTWARE)
except KeyboardInterrupt:
logger.info("Exited with keyboard interruption")
exit(os.EX_OK)
except BaseException:
logger.exception("Unexpected error occurred")
exit(os.EX_SOFTWARE)
if __name__ == "__main__":
uvicorn.run(app, host=settings.api.host, port=settings.api.port)
main()

View File

@ -0,0 +1,5 @@
from .health import *
__all__ = [
"health_router",
]

View File

@ -0,0 +1,6 @@
from .entity import *
__all__ = [
"Healthy",
"Token",
]

View File

@ -0,0 +1,11 @@
from .app import Application
from .errors import *
from .settings import Settings
__all__ = [
"Application",
"Settings",
"ApplicationError",
"DisposeError",
"StartServerError",
]

View File

@ -6,10 +6,10 @@ import typing
import fastapi
import uvicorn
import lib.api.v1.handlers as api_v1_handlers
import lib.app.errors as app_errors
import lib.app.settings as app_settings
import lib.app.split_settings as app_split_settings
import lib.api.v1.handlers as api_v1_handlers
logger = logging.getLogger(__name__)