-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathconfig.py
More file actions
57 lines (41 loc) · 1.74 KB
/
config.py
File metadata and controls
57 lines (41 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import typing as t
import sqlalchemy
from pydantic import BaseSettings
from pydantic import Field
from pydantic import PyObject
from quart_schema import APIKeySecurityScheme
from quart_schema import HttpSecurityScheme
from quart_schema.openapi import SecuritySchemeBase
from quart_sqlalchemy import AsyncBindConfig
from quart_sqlalchemy import BindConfig
from quart_sqlalchemy.sim.db import MyBase
sa = sqlalchemy
class AppSettings(BaseSettings):
class Config:
env_file = ".env", ".secrets.env"
LOAD_BLUEPRINTS: t.List[str] = Field(
default_factory=lambda: ["quart_sqlalchemy.sim.views.api"]
)
LOAD_EXTENSIONS: t.List[str] = Field(
default_factory=lambda: [
"quart_sqlalchemy.sim.db.db",
"quart_sqlalchemy.sim.app.schema",
"quart_sqlalchemy.sim.auth.auth",
]
)
SECURITY_SCHEMES: t.Dict[str, SecuritySchemeBase] = Field(
default_factory=lambda: {
"public-api-key": APIKeySecurityScheme(in_="header", name="X-Public-API-Key"),
"session-token-bearer": HttpSecurityScheme(scheme="bearer", bearer_format="opaque"),
}
)
SQLALCHEMY_BINDS: t.Dict[str, t.Union[AsyncBindConfig, BindConfig]] = Field(
default_factory=lambda: dict(default=BindConfig(engine=dict(url="sqlite:///app.db")))
)
SQLALCHEMY_BASE_CLASS: t.Type[t.Any] = Field(default=MyBase)
WEB3_DEFAULT_CHAIN: str = Field(default="ethereum")
WEB3_DEFAULT_NETWORK: str = Field(default="goerli")
WEB3_PROVIDER_CLASS: PyObject = Field("web3.providers.HTTPProvider", env="WEB3_PROVIDER_CLASS")
ALCHEMY_API_KEY: str = Field(env="ALCHEMY_API_KEY")
WEB3_HTTPS_PROVIDER_URI: str = Field(env="WEB3_HTTPS_PROVIDER_URI")
settings = AppSettings()