Architecture
This diagrams created by executing make diagrams
Class Diagram
Class diagram focusing on models.base
and models.models
:
classDiagram
class BaseModel {
model_config : ConfigDict
}
class CaseNode {
name() str
to_pydantic_model() type[BaseModel]
}
class ChoiceNode {
name() str
to_pydantic_model() type[BaseModel]
}
class ContainerNode {
name() str
}
class GeneratedClass {
class_name : str | PydanticUndefinedType
cls : Type[BaseModel] | Type[RootModel] | PydanticUndefinedType
field_annotation : Type | None
field_info : FieldInfo | PydanticUndefinedType
assert_is_valid()
to_field() Tuple[Type[BaseModel] | Type, FieldInfo]
}
class LeafListNode {
get_base_class() type | Node | Enum
name() str
to_pydantic_model() type[BaseModel | RootModel]
}
class LeafNode {
get_base_class() type | Node | Enum
name() str
to_pydantic_model() type[BaseModel | RootModel]
}
class ListNode {
name() str
to_pydantic_model() type[BaseModel]
}
class ModelRoot {
root_node : Node | None
to_pydantic_model() type[BaseModel] | None
}
class ModuleNode {
name() str
to_pydantic_model() type[BaseModel] | type[RootModel]
}
class Node {
alias_mapping : Dict[str, str]
arg : str
children : List[Node]
comments : str | None
config : bool
default
description : str | None
keyword : str
mandatory : bool
raw_statement : Statement
substmts : List[Statement]
ensure_unique_name(name: str) str
extract_statement_list(statement: Statement, attr_name: str) List[Node]
get_base_class() type | Node | Enum
get_output_class() GeneratedClass
get_qualified_name() str
make_unique_name(suffix: str)
name()* str
to_pydantic_model() Type[BaseModel] | Type[RootModel]
}
class RootModel {
model_config : ConfigDict
}
class TypeDefNode {
get_base_class() type | Node | Enum
name() str
to_pydantic_model() type[RootModel]
}
CaseNode --|> Node
ChoiceNode --|> Node
ContainerNode --|> Node
LeafListNode --|> Node
LeafNode --|> Node
ListNode --|> Node
ModuleNode --|> Node
TypeDefNode --|> Node
GeneratedClass --* Node : _output_model
GeneratedClass --* CaseNode : _output_model
GeneratedClass --* ChoiceNode : _output_model
GeneratedClass --* ContainerNode : _output_model
GeneratedClass --* LeafListNode : _output_model
GeneratedClass --* LeafNode : _output_model
GeneratedClass --* ListNode : _output_model
GeneratedClass --* ModuleNode : _output_model
GeneratedClass --* TypeDefNode : _output_model
Packages Diagram
Package overview:
classDiagram
class pydantify {
}
class __main__ {
}
class exceptions {
}
class main {
}
class models {
}
class base {
}
class models {
}
class nodefactory {
}
class typeresolver {
}
class plugins {
}
class pydantic_plugin {
}
class utility {
}
class function_tools {
}
class model_generator {
}
class patterns {
}
class restconf {
}
class yang_sources_tracker {
}
__main__ --> main
main --> model_generator
models --> base
models --> models
models --> nodefactory
models --> typeresolver
base --> nodefactory
nodefactory --> exceptions
pydantic_plugin --> model_generator
utility --> function_tools
utility --> restconf
utility --> yang_sources_tracker