moddle
This module provides parsers for Moddle’s JSON-based definition files.
| CLASS | DESCRIPTION |
|---|---|
DataclassField |
Dataclass field representation. |
ModdleRegistry |
Registry for Moddle packages. |
| FUNCTION | DESCRIPTION |
|---|---|
convert_moddle_properties |
Converts a Moddle definition’s properties into corresponding dataclass fields. |
convert_moddle_registry |
Register all Moddle extension types. |
convert_moddle_to_element |
Create an Element dataclass model for a Moddle extension type. |
filter_ignorable_superclasses |
Filter out classes that are ignorable. |
filter_package_types |
Convert a Moddle package into BPMN elements. |
get_parser_base_classes |
Figure out the base classes for a Moddle extension type. |
get_property_type_hint |
Returns the appropriate type for a field based on its properties and the available types. |
get_valid_name |
Get a valid name for a dataclass. |
load_moddle_file |
Read a Moddle extension JSON file. |
| ATTRIBUTE | DESCRIPTION |
|---|---|
registry |
The Moddle registry.
|
Attributes¶
Classes¶
DataclassField
dataclass
¶
Dataclass field representation.
ModdleRegistry
¶
ModdleRegistry()
Registry for Moddle packages.
| METHOD | DESCRIPTION |
|---|---|
dependency_tree |
Create a dependency tree for parsing ModdlePlugins in the correct order. |
get_type |
Get a Moddle type by name. |
register_package |
Register a Moddle package. |
| ATTRIBUTE | DESCRIPTION |
|---|---|
namespace_map |
Mapping of namespace prefixes to their URIs. |
package_map |
Mapping of package prefixes and package URIs to its extension parser class.
TYPE:
|
packages |
List of all Moddle packages.
TYPE:
|
type_map |
Mapping of type names to their extension parser class.
TYPE:
|
Attributes¶
namespace_map
instance-attribute
¶
Mapping of namespace prefixes to their URIs.
package_map
instance-attribute
¶
package_map: dict[str, Optional[ModdlePackage]] = {
"http://www.omg.org/spec/BPMN/20100524/MODEL": bpmn_moddle,
"http://www.omg.org/spec/BPMN/20100524/DI": bpmndi_moddle,
"http://www.omg.org/spec/DD/20100524/DC": dc_moddle,
"http://www.omg.org/spec/DD/20100524/DI": di_moddle,
}
Mapping of package prefixes and package URIs to its extension parser class.
type_map
instance-attribute
¶
type_map: dict[QName, ModdleType | EnumType] = {}
Mapping of type names to their extension parser class.
Functions¶
dependency_tree
¶
Create a dependency tree for parsing ModdlePlugins in the correct order.
Functions¶
convert_moddle_properties
¶
convert_moddle_properties(definition: ModdleType) -> list[DataclassField]
Converts a Moddle definition’s properties into corresponding dataclass fields.
This function processes the properties of a given ModdleType definition. It validates type information, detects circular references, and resolves field types based on the provided element registry. Depending on the property type (attributes, elements, or text body), it constructs the appropriate dataclass field representation. If an unknown field type or mismatched references are encountered, an error is raised. The resulting fields are useful for creating dataclass representations from Moddle definitions.
| PARAMETER | DESCRIPTION |
|---|---|
definition
|
The Moddle definition containing properties to be processed.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
list[DataclassField]
|
A list of dataclass field representations corresponding to the Moddle definition’s properties. |
| RAISES | DESCRIPTION |
|---|---|
ValueError
|
If a field has an unknown or unresolved type or any unsupported format. |
convert_moddle_to_element
¶
convert_moddle_to_element(definition: ModdleType) -> type
Create an Element dataclass model for a Moddle extension type.
| PARAMETER | DESCRIPTION |
|---|---|
definition
|
ModdlePlugin definition
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
type
|
A dynamically created dataclass model |
filter_ignorable_superclasses
¶
Filter out classes that are ignorable.
filter_package_types
¶
filter_package_types(package: ModdlePackage) -> list[ModdleType]
Convert a Moddle package into BPMN elements.
get_parser_base_classes
¶
get_parser_base_classes(moddle_type: ModdleType) -> tuple[type, ...] | None
Figure out the base classes for a Moddle extension type.
get_property_type_hint
¶
get_property_type_hint(fld: TypeProperty) -> type
Returns the appropriate type for a field based on its properties and the available types.
| PARAMETER | DESCRIPTION |
|---|---|
fld
|
PluginProperty object representing the field.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
type
|
The appropriate type hint for the field |
load_moddle_file
¶
load_moddle_file(file_path: Path) -> ModdlePackage
Read a Moddle extension JSON file.