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

model_config = {'populate_by_name': True, 'extra': 'allow', 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tld: str
currency: str
registration_price: float
renewal_price: float
transfer_price: float
price: float
30    @property
31    def price(self) -> float:
32        return max((self.registration_price, self.renewal_price, self.transfer_price))