cloudfloordns.models.groups

 1# from dataclasses import dataclass, field
 2from typing import List, Optional
 3
 4from pydantic import BaseModel, Field, StringConstraints
 5from typing_extensions import Annotated
 6
 7DEFAULT_PRIMARY_NS = "ns1.g02.cfdns.net"
 8
 9
10class Group(BaseModel):
11    """
12    Pydantic model
13    """
14
15    id: Optional[str] = None
16    name: Annotated[str, StringConstraints(strip_whitespace=True)]
17    description: Optional[str] = None
18    dnsservers: List[str] = Field(default_factory=list)
19
20    class Config:
21        populate_by_name = True
22        extra = "allow"
23
24    def __hash__(self):
25        return hash(self.name)
26
27    def __eq__(self, op):
28        if isinstance(op, Group):
29            op = Group.name
30        return self.name == op
DEFAULT_PRIMARY_NS = 'ns1.g02.cfdns.net'
class Group(pydantic.main.BaseModel):
11class Group(BaseModel):
12    """
13    Pydantic model
14    """
15
16    id: Optional[str] = None
17    name: Annotated[str, StringConstraints(strip_whitespace=True)]
18    description: Optional[str] = None
19    dnsservers: List[str] = Field(default_factory=list)
20
21    class Config:
22        populate_by_name = True
23        extra = "allow"
24
25    def __hash__(self):
26        return hash(self.name)
27
28    def __eq__(self, op):
29        if isinstance(op, Group):
30            op = Group.name
31        return self.name == op

Pydantic model

id: Optional[str]
name: typing.Annotated[str, StringConstraints(strip_whitespace=True, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=None)]
description: Optional[str]
dnsservers: List[str]
model_config: ClassVar[pydantic.config.ConfigDict] = {'extra': 'allow', 'populate_by_name': True}

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

class Group.Config:
21    class Config:
22        populate_by_name = True
23        extra = "allow"
populate_by_name = True
extra = 'allow'