Build#
Models for intermediate build results
(see PydanticGenerator for example implementation and use)
- class linkml.generators.common.build.BuildResult[source]#
The result of any build phase for any linkML object
BuildResults are merged in the serialization process, and are used to keep track of not only the particular representation of the thing in question, but any “side effects” that need to happen elsewhere in the generation process (like adding imports, injecting classes, etc.)
- abstract merge(other: T) T [source]#
Build results should have some means of merging results of a like kind
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class linkml.generators.common.build.ClassResult(*, source: ClassDefinition)[source]#
Abstract results container for built classes
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=ClassDefinition, required=True, metadata=[SkipValidation()])}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class linkml.generators.common.build.EnumResult(*, source: EnumDefinition)[source]#
Abstract results container for built enums
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=EnumDefinition, required=True, metadata=[SkipValidation()])}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class linkml.generators.common.build.RangeResult[source]#
Abstract results container for just the range part of a slot
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class linkml.generators.common.build.SchemaResult(*, source: SchemaDefinition)[source]#
Abstract results container for built schemas
- merge(other: T) T [source]#
SchemaResults are special and don’t need a merge method, since generating multiple schemas at once is not common or expected behavior for a generator.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=SchemaDefinition, required=True, metadata=[SkipValidation()])}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class linkml.generators.common.build.SkipValidation[source]#
A version of
pydantic.SkipValidation
that actually skips generating the schema for the field entirely - useful for including types that don’t need to be validated like the metamodel dataclasses
- class linkml.generators.common.build.SlotResult(*, source: SlotDefinition)[source]#
Abstract results container for built slots
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=SlotDefinition, required=True, metadata=[SkipValidation()])}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class linkml.generators.common.build.TypeResult(*, source: TypeDefinition)[source]#
Abstract results container for built types
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'source': FieldInfo(annotation=TypeDefinition, required=True, metadata=[SkipValidation()])}#
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.