pa_api.xmlapi.types.operations.software
1from typing import Optional 2 3from pydantic import ConfigDict, Field 4 5from pa_api.xmlapi.types.utils import ( 6 Bool, 7 Datetime, 8 String, 9 XMLBaseModel, 10) 11 12 13class SoftwareVersion(XMLBaseModel): 14 model_config = ConfigDict(extra="ignore") 15 16 version: String 17 filename: String 18 released_on: Optional[Datetime] = Field(alias="released-on") 19 downloaded: Bool 20 current: Bool 21 latest: Bool 22 uploaded: Bool 23 24 @property 25 def base_minor_version(self) -> str: 26 major, minor, _ = self.version.split(".") 27 return f"{major}.{minor}.0" 28 29 @property 30 def base_major_version(self) -> str: 31 major, _, _ = self.version.split(".") 32 return f"{major}.0.0"
14class SoftwareVersion(XMLBaseModel): 15 model_config = ConfigDict(extra="ignore") 16 17 version: String 18 filename: String 19 released_on: Optional[Datetime] = Field(alias="released-on") 20 downloaded: Bool 21 current: Bool 22 latest: Bool 23 uploaded: Bool 24 25 @property 26 def base_minor_version(self) -> str: 27 major, minor, _ = self.version.split(".") 28 return f"{major}.{minor}.0" 29 30 @property 31 def base_major_version(self) -> str: 32 major, _, _ = self.version.split(".") 33 return f"{major}.0.0"
Usage docs: https://docs.pydantic.dev/2.9/concepts/models/
A base class for creating Pydantic models.
Attributes:
__class_vars__: The names of the class variables defined on the model.
__private_attributes__: Metadata about the private attributes of the model.
__signature__: The synthesized __init__
[Signature
][inspect.Signature] of the model.
__pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
__pydantic_core_schema__: The core schema of the model.
__pydantic_custom_init__: Whether the model has a custom `__init__` function.
__pydantic_decorators__: Metadata containing the decorators defined on the model.
This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1.
__pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to
__args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
__pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
__pydantic_post_init__: The name of the post-init method for the model, if defined.
__pydantic_root_model__: Whether the model is a [`RootModel`][pydantic.root_model.RootModel].
__pydantic_serializer__: The `pydantic-core` `SchemaSerializer` used to dump instances of the model.
__pydantic_validator__: The `pydantic-core` `SchemaValidator` used to validate instances of the model.
__pydantic_extra__: A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra]
is set to `'allow'`.
__pydantic_fields_set__: The names of fields explicitly set during instantiation.
__pydantic_private__: Values of private attributes set on the model instance.
model_config =
{'extra': 'ignore'}
Configuration for the model, should be a dictionary conforming to [ConfigDict
][pydantic.config.ConfigDict].
version: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]
filename: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f0db0c89bd0>, json_schema_input_type=PydanticUndefined)]
released_on: Optional[Annotated[datetime.datetime, PlainValidator(func=<function parse_datetime at 0x7f0db0d50670>, json_schema_input_type=Any)]]
downloaded: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f0db0c89b40>, json_schema_input_type=PydanticUndefined)]
current: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f0db0c89b40>, json_schema_input_type=PydanticUndefined)]
latest: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f0db0c89b40>, json_schema_input_type=PydanticUndefined)]
uploaded: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f0db0c89b40>, json_schema_input_type=PydanticUndefined)]
model_fields: ClassVar[Dict[str, pydantic.fields.FieldInfo]] =
{'version': FieldInfo(annotation=str, required=True, metadata=[BeforeValidator(func=<function ensure_str>, json_schema_input_type=PydanticUndefined)]), 'filename': FieldInfo(annotation=str, required=True, metadata=[BeforeValidator(func=<function ensure_str>, json_schema_input_type=PydanticUndefined)]), 'released_on': FieldInfo(annotation=Union[Annotated[datetime, PlainValidator], NoneType], required=True, alias='released-on', alias_priority=2), 'downloaded': FieldInfo(annotation=bool, required=True, metadata=[BeforeValidator(func=<function xml_text>, json_schema_input_type=PydanticUndefined)]), 'current': FieldInfo(annotation=bool, required=True, metadata=[BeforeValidator(func=<function xml_text>, json_schema_input_type=PydanticUndefined)]), 'latest': FieldInfo(annotation=bool, required=True, metadata=[BeforeValidator(func=<function xml_text>, json_schema_input_type=PydanticUndefined)]), 'uploaded': FieldInfo(annotation=bool, required=True, metadata=[BeforeValidator(func=<function xml_text>, json_schema_input_type=PydanticUndefined)])}
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.
model_computed_fields: ClassVar[Dict[str, pydantic.fields.ComputedFieldInfo]] =
{}
A dictionary of computed field names and their corresponding ComputedFieldInfo
objects.
Inherited Members
- pydantic.main.BaseModel
- BaseModel
- model_extra
- model_fields_set
- model_construct
- model_copy
- model_dump
- model_dump_json
- model_json_schema
- model_parametrized_name
- model_post_init
- model_rebuild
- model_validate
- model_validate_json
- model_validate_strings
- dict
- json
- parse_obj
- parse_raw
- parse_file
- from_orm
- construct
- copy
- schema
- schema_json
- validate
- update_forward_refs