generated from daniil-berg/boilerplate-py
Add uvicorn server; make in-memory DB default
This commit is contained in:
parent
27696ad57c
commit
8ec4e8885a
@ -1,4 +1,4 @@
|
|||||||
-r common.txt
|
-r srv.txt
|
||||||
coverage
|
coverage
|
||||||
sqlalchemy-stubs
|
sqlalchemy-stubs
|
||||||
aiosqlite
|
aiosqlite
|
||||||
|
2
requirements/srv.txt
Normal file
2
requirements/srv.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
-r common.txt
|
||||||
|
Uvicorn[standard]
|
@ -29,7 +29,10 @@ install_requires =
|
|||||||
Alembic
|
Alembic
|
||||||
|
|
||||||
[options.extras_require]
|
[options.extras_require]
|
||||||
|
srv =
|
||||||
|
Uvicorn[standard]
|
||||||
dev =
|
dev =
|
||||||
|
Uvicorn[standard]
|
||||||
coverage
|
coverage
|
||||||
sqlalchemy-stubs
|
sqlalchemy-stubs
|
||||||
aiosqlite
|
aiosqlite
|
||||||
|
30
src/compub/__main__.py
Normal file
30
src/compub/__main__.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
from argparse import ArgumentParser, SUPPRESS
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Any, Sequence
|
||||||
|
|
||||||
|
import uvicorn
|
||||||
|
|
||||||
|
from .settings import PROGRAM_NAME, CONFIG_FILE_PATH_PARAM, DEFAULT_CONFIG_FILE_PATHS, init, settings
|
||||||
|
|
||||||
|
|
||||||
|
def parse_cli(args: Sequence[str] = None) -> dict[str, Any]:
|
||||||
|
parser = ArgumentParser(PROGRAM_NAME)
|
||||||
|
parser.add_argument(
|
||||||
|
'-c', f'--{CONFIG_FILE_PATH_PARAM}',
|
||||||
|
type=Path,
|
||||||
|
metavar='PATH',
|
||||||
|
default=SUPPRESS,
|
||||||
|
help=f"Paths to config file that will take precedence over all others; "
|
||||||
|
f"the following {len(DEFAULT_CONFIG_FILE_PATHS)} paths are always checked first (in that order):"
|
||||||
|
f" {','.join(str(p) for p in DEFAULT_CONFIG_FILE_PATHS)}"
|
||||||
|
)
|
||||||
|
return vars(parser.parse_args(args))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
init(**parse_cli())
|
||||||
|
uvicorn.run(f'{PROGRAM_NAME}.routes:app', **settings.server.dict())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
@ -81,7 +81,7 @@ class ServerSettings(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class Settings(AbstractBaseSettings):
|
class Settings(AbstractBaseSettings):
|
||||||
db_uri: DBUri | None = None
|
db_uri: DBUri = 'sqlite+aiosqlite:///:memory:'
|
||||||
server: ServerSettings = ServerSettings()
|
server: ServerSettings = ServerSettings()
|
||||||
log_config: dict | Path | None = None
|
log_config: dict | Path | None = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user