29 lines
580 B
Python
29 lines
580 B
Python
from pydantic import BaseModel
|
|
|
|
|
|
from .base import Base, IP4, to_alias
|
|
|
|
__all__ = ('UserModel',)
|
|
|
|
|
|
class Preset(BaseModel):
|
|
ip: IP4
|
|
os: str
|
|
ttt: str = None
|
|
|
|
def dict(self, **kwargs):
|
|
res = super().dict(**kwargs)
|
|
return {'#' + k: v for k, v in res.items() if v is not None}
|
|
|
|
class Config:
|
|
alias_generator = to_alias
|
|
|
|
|
|
class UserModel(Base):
|
|
preset: Preset
|
|
|
|
def dict(self, **kwargs):
|
|
kwargs.setdefault('exclude', {'preset'})
|
|
self.properties.update(self.preset.dict(**kwargs))
|
|
return super().dict(**kwargs)
|