palgen.loaders.manifest#

Module Contents#

class palgen.loaders.manifest.ManifestSchema(root=PydanticUndefined, **data)#
palgen.loaders.manifest.ManifestSchema .RootModelRootType .RootModelRootType pydantic.root_model.RootModel pydantic.root_model.RootModel .RootModelRootType->pydantic.root_model.RootModel root palgen.loaders.manifest.ManifestSchema palgen.loaders.manifest.ManifestSchema palgen.loaders.manifest.ManifestSchema palgen.loaders.manifest.ManifestSchema->pydantic.root_model.RootModel pydantic.main.BaseModel pydantic.main.BaseModel pydantic.root_model.RootModel->pydantic.main.BaseModel typing.Generic typing.Generic pydantic.root_model.RootModel->typing.Generic

A Pydantic BaseModel for the root object of the model.

Variables:
  • root – The root object of the model.

  • __pydantic_root_model__ – Whether the model is a RootModel.

  • __pydantic_private__ – Private fields in the model.

  • __pydantic_extra__ – Extra fields in the model.

Parameters:

root (RootModelRootType) –

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

property model_computed_fields: dict[str, pydantic.fields.ComputedFieldInfo]#

Get the computed fields of this model instance.

Returns:

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

Return type:

dict[str, pydantic.fields.ComputedFieldInfo]

property model_extra: dict[str, Any] | None#

Get extra fields set during validation.

Returns:

A dictionary of extra fields, or None if config.extra is not set to “allow”.

Return type:

dict[str, Any] | None

property model_fields_set: set[str]#

Returns the set of fields that have been set on this model instance.

Returns:

A set of strings representing the fields that have been set,

i.e. that were not filled from defaults.

Return type:

set[str]

property __fields__: dict[str, pydantic.fields.FieldInfo]#
Return type:

dict[str, pydantic.fields.FieldInfo]

property __fields_set__: set[str]#
Return type:

set[str]

root: dict[str, str]#
__pydantic_root_model__ = True#
__pydantic_private__#
__pydantic_extra__#
__slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')#
model_config#
__pydantic_complete__ = False#
__repr_name__#
__repr_str__#
__pretty__#
__rich_repr__#
items()#
classmethod model_construct(root, _fields_set=None)#

Create a new model using the provided root object and update fields set.

Parameters:
  • root (RootModelRootType) – The root object of the model.

  • _fields_set (set[str] | None) – The set of fields to be updated.

Returns:

The new model.

Raises:

NotImplemented – If the model is not a subclass of RootModel.

Return type:

Model

__eq__(other)#

Return self==value.

Parameters:

other (Any) –

Return type:

bool

__repr_args__()#
Return type:

pydantic._internal._repr.ReprArgs

model_copy(*, update=None, deep=False)#

Returns a copy of the model.

Parameters:
  • update (dict[str, Any] | None) – Values to change/add in the new model. Note: the data is not validated before creating the new model. You should trust this data.

  • deep (bool) – Set to True to make a deep copy of the model.

Returns:

New model instance.

Return type:

Model

model_dump(*, mode='python', include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True)#

Usage docs: https://docs.pydantic.dev/dev-v2/usage/serialization/#modelmodel_dump

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

Parameters:
  • mode (typing_extensions.Literal[json, python] | str) – The mode in which to_python should run. If mode is ‘json’, the dictionary will only contain JSON serializable types. If mode is ‘python’, the dictionary may contain any Python objects.

  • include (IncEx) – A list of fields to include in the output.

  • exclude (IncEx) – A list of fields to exclude from the output.

  • by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.

  • exclude_unset (bool) – Whether to exclude fields that are unset or None from the output.

  • exclude_defaults (bool) – Whether to exclude fields that are set to their default value from the output.

  • exclude_none (bool) – Whether to exclude fields that have a value of None from the output.

  • round_trip (bool) – Whether to enable serialization and deserialization round-trip support.

  • warnings (bool) – Whether to log warnings when invalid fields are encountered.

Returns:

A dictionary representation of the model.

Return type:

dict[str, Any]

model_dump_json(*, indent=None, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True)#

Usage docs: https://docs.pydantic.dev/dev-v2/usage/serialization/#modelmodel_dump_json

Generates a JSON representation of the model using Pydantic’s to_json method.

Parameters:
  • indent (int | None) – Indentation to use in the JSON output. If None is passed, the output will be compact.

  • include (IncEx) – Field(s) to include in the JSON output. Can take either a string or set of strings.

  • exclude (IncEx) – Field(s) to exclude from the JSON output. Can take either a string or set of strings.

  • by_alias (bool) – Whether to serialize using field aliases.

  • exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.

  • exclude_defaults (bool) – Whether to exclude fields that have the default value.

  • exclude_none (bool) – Whether to exclude fields that have a value of None.

  • round_trip (bool) – Whether to use serialization/deserialization between JSON and class instance.

  • warnings (bool) – Whether to show any warnings that occurred during serialization.

Returns:

A JSON string representation of the model.

Return type:

str

classmethod model_json_schema(by_alias=True, ref_template=DEFAULT_REF_TEMPLATE, schema_generator=GenerateJsonSchema, mode='validation')#

Generates a JSON schema for a model class.

Parameters:
  • by_alias (bool) – Whether to use attribute aliases or not.

  • ref_template (str) – The reference template.

  • schema_generator (type[pydantic.json_schema.GenerateJsonSchema]) – To override the logic used to generate the JSON schema, ass a subclass of GenerateJsonSchema with your desired modifications

  • mode (pydantic.json_schema.JsonSchemaMode) – The mode in which to generate the schema.

Returns:

The JSON schema for the given model class.

Return type:

dict[str, Any]

classmethod model_parametrized_name(params)#

Compute the class name for parametrizations of generic classes.

This method can be overridden to achieve a custom naming scheme for generic BaseModels.

Parameters:

params (tuple[type[Any], Ellipsis]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.

Returns:

String representing the new class where params are passed to cls as type variables.

Raises:

TypeError – Raised when trying to generate concrete names for non-generic models.

Return type:

str

model_post_init(__context)#

Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.

Parameters:

__context (Any) –

Return type:

None

classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)#

Try to rebuild the pydantic-core schema for the model.

This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.

Parameters:
  • force (bool) – Whether to force the rebuilding of the model schema, defaults to False.

  • raise_errors (bool) – Whether to raise errors, defaults to True.

  • _parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.

  • _types_namespace (dict[str, Any] | None) – The types namespace, defaults to None.

Returns:

Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.

Return type:

bool | None

classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)#

Validate a pydantic model instance.

Parameters:
  • obj (Any) – The object to validate.

  • strict (bool | None) – Whether to raise an exception on invalid fields.

  • from_attributes (bool | None) – Whether to extract data from object attributes.

  • context (dict[str, Any] | None) – Additional context to pass to the validator.

Raises:

ValidationError – If the object could not be validated.

Returns:

The validated model instance.

Return type:

Model

classmethod model_validate_json(json_data, *, strict=None, context=None)#

Validate the given JSON data against the Pydantic model.

Parameters:
  • json_data (str | bytes | bytearray) – The JSON data to validate.

  • strict (bool | None) – Whether to enforce types strictly.

  • context (dict[str, Any] | None) – Extra variables to pass to the validator.

Returns:

The validated Pydantic model.

Raises:

ValueError – If json_data is not a JSON string.

Return type:

Model

classmethod __get_pydantic_core_schema__(__source, __handler)#

Hook into generating the model’s CoreSchema.

Parameters:
  • __source (type[BaseModel]) – The class we are generating a schema for. This will generally be the same as the cls argument if this is a classmethod.

  • __handler (pydantic._internal._annotated_handlers.GetCoreSchemaHandler) – Call into Pydantic’s internal JSON schema generation. A callable that calls into Pydantic’s internal CoreSchema generation logic.

Returns:

A pydantic-core CoreSchema.

Return type:

pydantic_core.CoreSchema

classmethod __get_pydantic_json_schema__(__core_schema, __handler)#

Hook into generating the model’s JSON schema.

Parameters:
  • __core_schema (pydantic_core.CoreSchema) – A pydantic-core CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({‘type’: ‘nullable’, ‘schema’: current_schema}), or just call the handler with the original schema.

  • __handler (pydantic._internal._annotated_handlers.GetJsonSchemaHandler) – Call into Pydantic’s internal JSON schema generation. This will raise a pydantic.errors.PydanticInvalidForJsonSchema if JSON schema generation fails. Since this gets called by BaseModel.model_json_schema you can override the schema_generator argument to that function to change JSON schema generation globally for a type.

Returns:

A JSON schema, as a Python object.

Return type:

pydantic.json_schema.JsonSchemaValue

classmethod __pydantic_init_subclass__(**kwargs)#

This is intended to behave just like __init_subclass__, but is called by ModelMetaclass only after the class is actually fully initialized. In particular, attributes like model_fields will be present when this is called.

This is necessary because __init_subclass__ will always be called by type.__new__, and it would require a prohibitively large refactor to the ModelMetaclass to ensure that type.__new__ was called in such a manner that the class would already be sufficiently initialized.

This will receive the same kwargs that would be passed to the standard __init_subclass__, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.

Parameters:

**kwargs (Any) – Any keyword arguments passed to the class definition that aren’t used internally by pydantic.

Return type:

None

classmethod __class_getitem__(typevar_values)#
Parameters:

typevar_values (type[Any] | tuple[type[Any], Ellipsis]) –

Return type:

type[BaseModel] | pydantic._internal._forward_ref.PydanticRecursiveRef

__copy__()#

Returns a shallow copy of the model.

Return type:

Model

__deepcopy__(memo=None)#

Returns a deep copy of the model.

Parameters:

memo (dict[int, Any] | None) –

Return type:

Model

__setattr__(name, value)#

Implement setattr(self, name, value).

Parameters:
  • name (str) –

  • value (Any) –

Return type:

None

__delattr__(item)#

Implement delattr(self, name).

Parameters:

item (str) –

Return type:

Any

__getstate__()#

Helper for pickle.

Return type:

dict[Any, Any]

__setstate__(state)#
Parameters:

state (dict[Any, Any]) –

Return type:

None

__iter__()#

So dict(model) works.

Return type:

TupleGenerator

__repr__()#

Return repr(self).

Return type:

str

__str__()#

Return str(self).

Return type:

str

dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)#
Parameters:
  • include (IncEx) –

  • exclude (IncEx) –

  • by_alias (bool) –

  • exclude_unset (bool) –

  • exclude_defaults (bool) –

  • exclude_none (bool) –

Return type:

Dict[str, Any]

json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)#
Parameters:
  • include (IncEx) –

  • exclude (IncEx) –

  • by_alias (bool) –

  • exclude_unset (bool) –

  • exclude_defaults (bool) –

  • exclude_none (bool) –

  • encoder (Callable[[Any], Any] | None) –

  • models_as_dict (bool) –

  • dumps_kwargs (Any) –

Return type:

str

classmethod parse_obj(obj)#
Parameters:

obj (Any) –

Return type:

Model

classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)#
Parameters:
  • b (str | bytes) –

  • content_type (str | None) –

  • encoding (str) –

  • proto (pydantic.deprecated.parse.Protocol | None) –

  • allow_pickle (bool) –

Return type:

Model

classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)#
Parameters:
  • path (str | pathlib.Path) –

  • content_type (str | None) –

  • encoding (str) –

  • proto (pydantic.deprecated.parse.Protocol | None) –

  • allow_pickle (bool) –

Return type:

Model

classmethod from_orm(obj)#
Parameters:

obj (Any) –

Return type:

Model

classmethod construct(_fields_set=None, **values)#
Parameters:
  • _fields_set (set[str] | None) –

  • values (Any) –

Return type:

Model

copy(*, include=None, exclude=None, update=None, deep=False)#

Returns a copy of the model.

!!! warning “Deprecated”

This method is now deprecated; use model_copy instead.

If you need include or exclude, use:

`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `

Parameters:
  • include (pydantic._internal._utils.AbstractSetIntStr | pydantic._internal._utils.MappingIntStrAny | None) – Optional set or mapping specifying which fields to include in the copied model.

  • exclude (pydantic._internal._utils.AbstractSetIntStr | pydantic._internal._utils.MappingIntStrAny | None) – Optional set or mapping specifying which fields to exclude in the copied model.

  • update (Dict[str, Any] | None) – Optional dictionary of field-value pairs to override field values in the copied model.

  • deep (bool) – If True, the values of fields that are Pydantic models will be deep copied.

Returns:

A copy of the model with included, excluded and updated fields as specified.

Return type:

Model

classmethod schema(by_alias=True, ref_template=DEFAULT_REF_TEMPLATE)#
Parameters:
  • by_alias (bool) –

  • ref_template (str) –

Return type:

Dict[str, Any]

classmethod schema_json(*, by_alias=True, ref_template=DEFAULT_REF_TEMPLATE, **dumps_kwargs)#
Parameters:
  • by_alias (bool) –

  • ref_template (str) –

  • dumps_kwargs (Any) –

Return type:

str

classmethod validate(value)#
Parameters:

value (Any) –

Return type:

Model

classmethod update_forward_refs(**localns)#
Parameters:

localns (Any) –

Return type:

None

classmethod __init_subclass__(*args, **kwargs)#
class palgen.loaders.manifest.Manifest#
palgen.loaders.manifest.Manifest palgen.loaders.loader.Loader palgen.loaders.loader.Loader palgen.loaders.loader.Loader palgen.loaders.manifest.Manifest palgen.loaders.manifest.Manifest palgen.loaders.manifest.Manifest palgen.loaders.manifest.Manifest->palgen.loaders.loader.Loader palgen.loaders.python.Python palgen.loaders.python.Python palgen.loaders.python.Python palgen.loaders.python.Python->palgen.loaders.loader.Loader palgen.loaders.python.Python->palgen.loaders.manifest.Manifest python_loader

Loads palgen extensions from manifest files (palgen.manifest).

__slots__ = ('python_loader',)#
ingest(sources)#

Searches the given sources for palgen manifests and loads them.

Parameters:

sources (Iterable[Path]) – An iterable of paths to input files

Yields:

tuple[str, Type[Extension]] – name and class of all discovered palgen extensions

Return type:

Iterable[palgen.loaders.loader.ExtensionInfo]

load(source)#

Attempt loading palgen extensions from manifest at the given path.

Parameters:
  • path (Path) – Path to the manifest

  • source (pathlib.Path) –

Yields:

tuple[str, Type[Extension]] – name and class of all discovered palgen extensions

Return type:

Iterable[palgen.loaders.loader.ExtensionInfo]