config_schema.py
1.04 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
import ssl
from typing import Dict, List, Optional, Any
from pydantic import BaseModel, Field
def get_ctx():
ctx = ssl.create_default_context()
# And in this example we disable validation...
# Please don't do this. Look at the official Python ``ssl`` module documentation
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
return ctx
class Credentials(BaseModel):
database: str
host: str
password: str
port: int
user: str
ssl: Any = Field(default_factory=get_ctx)
minsize: Optional[int] = None
maxsize: Optional[int] = None
connect_timeout: Optional[int] = None
echo: Optional[bool] = None
timezone: str
class Connection(BaseModel):
engine: str
credentials: Credentials
class App(BaseModel):
models: List[str]
default_connection: str
class TortoiseConfig(BaseModel):
connections: Dict[str, Connection]
apps: Dict[str, App]
log_queries: bool
class Port(BaseModel):
port: int
class AppConfig(BaseModel):
server: Port
getSpider:Dict[str,int]