42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""Config for application"""
|
|
|
|
from functools import lru_cache
|
|
|
|
from betterconf import betterconf, field
|
|
from betterconf.caster import to_bool, to_int, to_list
|
|
|
|
|
|
@betterconf
|
|
class AppConfig:
|
|
# pylint: disable=R0903
|
|
"""
|
|
Class of configuration the application
|
|
"""
|
|
|
|
app_debug: bool = field("APP_DEBUG", default=False, caster=to_bool)
|
|
app_origin: list = field("APP_ORIGIN", default=[], caster=to_list)
|
|
app_host: str = field("APP_HOST", default="0.0.0.0")
|
|
app_port: int = field("APP_PORT", default=8000, caster=to_int)
|
|
app_public_url: str = field("APP_PUBLIC_URL", default="http://127.0.0.1:8000")
|
|
|
|
sentry_dns: str = field("SENTRY_DNS", default="")
|
|
log_level: str = field("LOG_LEVEL", "INFO")
|
|
|
|
db_uri: str = field(
|
|
"DB_URI", "postgresql+asyncpg://svcuser:svcpass@localhost:5432/svc"
|
|
)
|
|
db_pass_salt: str = field("DB_PASS_SALT", "")
|
|
db_search_path: str = field("DB_SEARCH_PATH", "public")
|
|
|
|
fs_local_mount_dir: str = field("FS_LOCAL_MOUNT_DIR", default="./tmp/files")
|
|
fs_s3_bucket: str = field("FS_S3_BUCKET", "")
|
|
fs_s3_access_key_id: str = field("FS_ACCESS_KEY_ID", "")
|
|
fs_s3_access_key: str = field("FS_SECRET_ACCESS_KEY", "")
|
|
fs_s3_endpoint: str = field("FS_S3_ENDPOINT", "")
|
|
|
|
|
|
@lru_cache
|
|
def get_app_config() -> AppConfig:
|
|
# pylint: disable=C0116
|
|
return AppConfig()
|