cloudfloordns.models.pricelist
1# from dataclasses import dataclass, field 2 3from pydantic import BaseModel, ConfigDict, Field 4 5 6class TLDPrice(BaseModel): 7 """ 8 Pydantic model 9 """ 10 11 model_config = ConfigDict( 12 populate_by_name=True, 13 extra="allow", 14 # https://docs.pydantic.dev/latest/concepts/pydantic_settings/#case-sensitivity 15 # case_sensitive = True 16 # https://docs.pydantic.dev/latest/api/config/#pydantic.config.ConfigDict.validate_assignment 17 validate_assignment=True, 18 ) 19 20 tld: str 21 currency: str 22 registration_price: float = Field(alias="register") 23 renewal_price: float = Field(alias="register") 24 transfer_price: float = Field(alias="register") 25 # maxyears: int 26 # special: str 27 # zone_info: str 28 29 @property 30 def price(self) -> float: 31 return max((self.registration_price, self.renewal_price, self.transfer_price)) 32 33 34# Pricelist: TypeAlias = cast(TypeAdapter(list[TLDPrice])) # from typing_extensions import TypeAlias, TypeAliasType
class
TLDPrice(pydantic.main.BaseModel):
7class TLDPrice(BaseModel): 8 """ 9 Pydantic model 10 """ 11 12 model_config = ConfigDict( 13 populate_by_name=True, 14 extra="allow", 15 # https://docs.pydantic.dev/latest/concepts/pydantic_settings/#case-sensitivity 16 # case_sensitive = True 17 # https://docs.pydantic.dev/latest/api/config/#pydantic.config.ConfigDict.validate_assignment 18 validate_assignment=True, 19 ) 20 21 tld: str 22 currency: str 23 registration_price: float = Field(alias="register") 24 renewal_price: float = Field(alias="register") 25 transfer_price: float = Field(alias="register") 26 # maxyears: int 27 # special: str 28 # zone_info: str 29 30 @property 31 def price(self) -> float: 32 return max((self.registration_price, self.renewal_price, self.transfer_price))
Pydantic model