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"
class SoftwareVersion(pa_api.xmlapi.types.utils.XMLBaseModel):
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"

!!! abstract "Usage Documentation" 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_fields__: A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects.
__pydantic_computed_fields__: A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects.

__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 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
filename: typing.Annotated[str, BeforeValidator(func=<function ensure_str at 0x7f4bd793fac0>, json_schema_input_type=PydanticUndefined)]
released_on: Optional[Annotated[datetime.datetime, PlainValidator(func=<function parse_datetime at 0x7f4bd7a6e710>, json_schema_input_type=Any)]]
downloaded: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f4bd793fa30>, json_schema_input_type=PydanticUndefined)]
current: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f4bd793fa30>, json_schema_input_type=PydanticUndefined)]
latest: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f4bd793fa30>, json_schema_input_type=PydanticUndefined)]
uploaded: typing.Annotated[bool, BeforeValidator(func=<function xml_text at 0x7f4bd793fa30>, json_schema_input_type=PydanticUndefined)]
base_minor_version: str
25    @property
26    def base_minor_version(self) -> str:
27        major, minor, _ = self.version.split(".")
28        return f"{major}.{minor}.0"
base_major_version: str
30    @property
31    def base_major_version(self) -> str:
32        major, _, _ = self.version.split(".")
33        return f"{major}.0.0"