Plugins
fieldz_kb.lpg.plugins
Concrete type conversion plugins for the pylpg backend.
Classes:
| Name | Description |
|---|---|
BagPlugin |
Handles unordered collections: set, frozenset. |
BaseTypePlugin |
Handles base types: int, str, float, bool. |
DictPlugin |
Handles mapping types: dict. |
EnumPlugin |
Handles enum types. |
FieldzClassPlugin |
Handles fieldz dataclass-like types. |
NoneTypePlugin |
Handles NoneType (None values). |
SequencePlugin |
Handles ordered sequences: list, tuple. |
BagPlugin
Bases: PylpgTypePlugin
Handles unordered collections: set, frozenset.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class is a bag node class. |
can_handle_type |
Return True if the type is an unordered collection type (set, frozenset). |
make_node_class_from_type |
Return None; bag types use pre-built node classes. |
make_nodes_from_object |
Convert a set/frozenset to a container node with unordered HAS_ITEM relationships. |
make_object_from_node |
Reconstruct a set/frozenset from a container node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class is a bag node class.
can_handle_type
classmethod
Return True if the type is an unordered collection type (set, frozenset).
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Return None; bag types use pre-built node classes.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert a set/frozenset to a container node with unordered HAS_ITEM relationships.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Reconstruct a set/frozenset from a container node.
Source code in src/fieldz_kb/lpg/plugins.py
BaseTypePlugin
Bases: PylpgTypePlugin
Handles base types: int, str, float, bool.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class is a base type node class. |
can_handle_type |
Return True if the type is a base type (int, str, float, bool). |
make_node_class_from_type |
Return None; base types use pre-built node classes. |
make_nodes_from_object |
Convert a base type value to a single value node. |
make_object_from_node |
Extract the value from a base type node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class is a base type node class.
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Return None; base types use pre-built node classes.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert a base type value to a single value node.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Extract the value from a base type node.
Source code in src/fieldz_kb/lpg/plugins.py
DictPlugin
Bases: PylpgTypePlugin
Handles mapping types: dict.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class is a mapping node class. |
can_handle_type |
Return True if the type is a mapping type (dict). |
make_node_class_from_type |
Return None; mapping types use pre-built node classes. |
make_nodes_from_object |
Convert a dict to a Mapping node with Item sub-nodes. |
make_object_from_node |
Reconstruct a dict from a Mapping node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class is a mapping node class.
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Return None; mapping types use pre-built node classes.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert a dict to a Mapping node with Item sub-nodes.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Reconstruct a dict from a Mapping node.
Source code in src/fieldz_kb/lpg/plugins.py
EnumPlugin
Bases: PylpgTypePlugin
Handles enum types.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class maps to an enum type. |
can_handle_type |
Return True if the type is an enum subclass. |
make_node_class_from_type |
Dynamically create a node class with name and value properties for an enum. |
make_nodes_from_object |
Convert an enum member to a node with name and value properties. |
make_object_from_node |
Reconstruct an enum member from a node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class maps to an enum type.
Source code in src/fieldz_kb/lpg/plugins.py
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Dynamically create a node class with name and value properties for an enum.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert an enum member to a node with name and value properties.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Reconstruct an enum member from a node.
Source code in src/fieldz_kb/lpg/plugins.py
FieldzClassPlugin
Bases: PylpgTypePlugin
Handles fieldz dataclass-like types.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class maps to a fieldz class. |
can_handle_type |
Return True if the type is a fieldz class. |
make_node_class_from_type |
Dynamically create a node class mirroring the fieldz class structure. |
make_nodes_from_object |
Convert a fieldz object to nodes and relationships. |
make_object_from_node |
Reconstruct a fieldz object from a node and its relationships. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class maps to a fieldz class.
Source code in src/fieldz_kb/lpg/plugins.py
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Dynamically create a node class mirroring the fieldz class structure.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert a fieldz object to nodes and relationships.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Reconstruct a fieldz object from a node and its relationships.
Source code in src/fieldz_kb/lpg/plugins.py
NoneTypePlugin
Bases: PylpgTypePlugin
Handles NoneType (None values).
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class is Null. |
can_handle_type |
Return True if the type is NoneType. |
make_node_class_from_type |
Return None; NoneType uses a pre-built node class. |
make_nodes_from_object |
Convert None to a single Null node. |
make_object_from_node |
Return None from a Null node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class is Null.
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Return None; NoneType uses a pre-built node class.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert None to a single Null node.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Return None from a Null node.
SequencePlugin
Bases: PylpgTypePlugin
Handles ordered sequences: list, tuple.
Methods:
| Name | Description |
|---|---|
can_handle_node_class |
Return True if the node class is a sequence node class. |
can_handle_type |
Return True if the type is a sequence type (list, tuple). |
make_node_class_from_type |
Return None; sequence types use pre-built node classes. |
make_nodes_from_object |
Convert a sequence to a container node with ordered HAS_ITEM relationships. |
make_object_from_node |
Reconstruct a sequence from a container node. |
can_handle_node_class
classmethod
can_handle_node_class(node_class: type, ctx: PylpgContext) -> bool
Return True if the node class is a sequence node class.
can_handle_type
classmethod
make_node_class_from_type
classmethod
make_node_class_from_type(type_: type, ctx: PylpgContext, make_node_classes_recursively: bool = True, guard: set[type] | None = None) -> type[BaseNode] | None
Return None; sequence types use pre-built node classes.
Source code in src/fieldz_kb/lpg/plugins.py
make_nodes_from_object
classmethod
make_nodes_from_object(obj: object, ctx: PylpgContext, integration_mode: Literal['hash', 'id'], exclude_from_integration: tuple[type, ...], object_to_node: dict) -> tuple[list[BaseNode], list[Relationship]]
Convert a sequence to a container node with ordered HAS_ITEM relationships.
Source code in src/fieldz_kb/lpg/plugins.py
make_object_from_node
classmethod
make_object_from_node(node: BaseNode, ctx: PylpgContext, node_id_to_object: dict) -> object
Reconstruct a sequence from a container node.