aboutsummaryrefslogtreecommitdiffstats
path: root/python_openapi_client/fatcat_openapi_client/model/release_entity.py
diff options
context:
space:
mode:
Diffstat (limited to 'python_openapi_client/fatcat_openapi_client/model/release_entity.py')
-rw-r--r--python_openapi_client/fatcat_openapi_client/model/release_entity.py440
1 files changed, 440 insertions, 0 deletions
diff --git a/python_openapi_client/fatcat_openapi_client/model/release_entity.py b/python_openapi_client/fatcat_openapi_client/model/release_entity.py
new file mode 100644
index 00000000..1f0e55c0
--- /dev/null
+++ b/python_openapi_client/fatcat_openapi_client/model/release_entity.py
@@ -0,0 +1,440 @@
+"""
+ fatcat
+
+ Fatcat is a scalable, versioned, API-oriented catalog of bibliographic entities and file metadata. # noqa: E501
+
+ The version of the OpenAPI document: 0.5.0
+ Contact: webservices@archive.org
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+import sys # noqa: F401
+
+from fatcat_openapi_client.model_utils import ( # noqa: F401
+ ApiTypeError,
+ ModelComposed,
+ ModelNormal,
+ ModelSimple,
+ cached_property,
+ change_keys_js_to_python,
+ convert_js_args_to_python_args,
+ date,
+ datetime,
+ file_type,
+ none_type,
+ validate_get_composed_info,
+ OpenApiModel
+)
+from fatcat_openapi_client.exceptions import ApiAttributeError
+
+
+def lazy_import():
+ from fatcat_openapi_client.model.container_entity import ContainerEntity
+ from fatcat_openapi_client.model.file_entity import FileEntity
+ from fatcat_openapi_client.model.fileset_entity import FilesetEntity
+ from fatcat_openapi_client.model.release_abstract import ReleaseAbstract
+ from fatcat_openapi_client.model.release_contrib import ReleaseContrib
+ from fatcat_openapi_client.model.release_ext_ids import ReleaseExtIds
+ from fatcat_openapi_client.model.release_ref import ReleaseRef
+ from fatcat_openapi_client.model.webcapture_entity import WebcaptureEntity
+ globals()['ContainerEntity'] = ContainerEntity
+ globals()['FileEntity'] = FileEntity
+ globals()['FilesetEntity'] = FilesetEntity
+ globals()['ReleaseAbstract'] = ReleaseAbstract
+ globals()['ReleaseContrib'] = ReleaseContrib
+ globals()['ReleaseExtIds'] = ReleaseExtIds
+ globals()['ReleaseRef'] = ReleaseRef
+ globals()['WebcaptureEntity'] = WebcaptureEntity
+
+
+class ReleaseEntity(ModelNormal):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ Attributes:
+ allowed_values (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ with a capitalized key describing the allowed value and an allowed
+ value. These dicts store the allowed enum values.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ discriminator_value_class_map (dict): A dict to go from the discriminator
+ variable value to the discriminator class name.
+ validations (dict): The key is the tuple path to the attribute
+ and the for var_name this is (var_name,). The value is a dict
+ that stores validations for max_length, min_length, max_items,
+ min_items, exclusive_maximum, inclusive_maximum, exclusive_minimum,
+ inclusive_minimum, and regex.
+ additional_properties_type (tuple): A tuple of classes accepted
+ as additional properties values.
+ """
+
+ allowed_values = {
+ ('state',): {
+ 'WIP': "wip",
+ 'ACTIVE': "active",
+ 'REDIRECT': "redirect",
+ 'DELETED': "deleted",
+ },
+ }
+
+ validations = {
+ ('ident',): {
+ 'max_length': 26,
+ 'min_length': 26,
+ },
+ ('revision',): {
+ 'max_length': 36,
+ 'min_length': 36,
+ },
+ ('redirect',): {
+ 'max_length': 26,
+ 'min_length': 26,
+ },
+ }
+
+ @cached_property
+ def additional_properties_type():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+ """
+ lazy_import()
+ return (bool, date, datetime, dict, float, int, list, str, none_type,) # noqa: E501
+
+ _nullable = False
+
+ @cached_property
+ def openapi_types():
+ """
+ This must be a method because a model may have properties that are
+ of type self, this must run after the class is loaded
+
+ Returns
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ """
+ lazy_import()
+ return {
+ 'ext_ids': (ReleaseExtIds,), # noqa: E501
+ 'state': (str,), # noqa: E501
+ 'ident': (str,), # noqa: E501
+ 'revision': (str,), # noqa: E501
+ 'redirect': (str,), # noqa: E501
+ 'extra': ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)},), # noqa: E501
+ 'edit_extra': ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)},), # noqa: E501
+ 'title': (str,), # noqa: E501
+ 'subtitle': (str,), # noqa: E501
+ 'original_title': (str,), # noqa: E501
+ 'work_id': (str,), # noqa: E501
+ 'container': (ContainerEntity,), # noqa: E501
+ 'files': ([FileEntity],), # noqa: E501
+ 'filesets': ([FilesetEntity],), # noqa: E501
+ 'webcaptures': ([WebcaptureEntity],), # noqa: E501
+ 'container_id': (str,), # noqa: E501
+ 'release_type': (str,), # noqa: E501
+ 'release_stage': (str,), # noqa: E501
+ 'release_date': (date,), # noqa: E501
+ 'release_year': (int,), # noqa: E501
+ 'withdrawn_status': (str,), # noqa: E501
+ 'withdrawn_date': (date,), # noqa: E501
+ 'withdrawn_year': (int,), # noqa: E501
+ 'volume': (str,), # noqa: E501
+ 'issue': (str,), # noqa: E501
+ 'pages': (str,), # noqa: E501
+ 'number': (str,), # noqa: E501
+ 'version': (str,), # noqa: E501
+ 'publisher': (str,), # noqa: E501
+ 'language': (str,), # noqa: E501
+ 'license_slug': (str,), # noqa: E501
+ 'contribs': ([ReleaseContrib],), # noqa: E501
+ 'refs': ([ReleaseRef],), # noqa: E501
+ 'abstracts': ([ReleaseAbstract],), # noqa: E501
+ }
+
+ @cached_property
+ def discriminator():
+ return None
+
+
+ attribute_map = {
+ 'ext_ids': 'ext_ids', # noqa: E501
+ 'state': 'state', # noqa: E501
+ 'ident': 'ident', # noqa: E501
+ 'revision': 'revision', # noqa: E501
+ 'redirect': 'redirect', # noqa: E501
+ 'extra': 'extra', # noqa: E501
+ 'edit_extra': 'edit_extra', # noqa: E501
+ 'title': 'title', # noqa: E501
+ 'subtitle': 'subtitle', # noqa: E501
+ 'original_title': 'original_title', # noqa: E501
+ 'work_id': 'work_id', # noqa: E501
+ 'container': 'container', # noqa: E501
+ 'files': 'files', # noqa: E501
+ 'filesets': 'filesets', # noqa: E501
+ 'webcaptures': 'webcaptures', # noqa: E501
+ 'container_id': 'container_id', # noqa: E501
+ 'release_type': 'release_type', # noqa: E501
+ 'release_stage': 'release_stage', # noqa: E501
+ 'release_date': 'release_date', # noqa: E501
+ 'release_year': 'release_year', # noqa: E501
+ 'withdrawn_status': 'withdrawn_status', # noqa: E501
+ 'withdrawn_date': 'withdrawn_date', # noqa: E501
+ 'withdrawn_year': 'withdrawn_year', # noqa: E501
+ 'volume': 'volume', # noqa: E501
+ 'issue': 'issue', # noqa: E501
+ 'pages': 'pages', # noqa: E501
+ 'number': 'number', # noqa: E501
+ 'version': 'version', # noqa: E501
+ 'publisher': 'publisher', # noqa: E501
+ 'language': 'language', # noqa: E501
+ 'license_slug': 'license_slug', # noqa: E501
+ 'contribs': 'contribs', # noqa: E501
+ 'refs': 'refs', # noqa: E501
+ 'abstracts': 'abstracts', # noqa: E501
+ }
+
+ read_only_vars = {
+ }
+
+ _composed_schemas = {}
+
+ @classmethod
+ @convert_js_args_to_python_args
+ def _from_openapi_data(cls, ext_ids, *args, **kwargs): # noqa: E501
+ """ReleaseEntity - a model defined in OpenAPI
+
+ Args:
+ ext_ids (ReleaseExtIds):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ state (str): [optional] # noqa: E501
+ ident (str): base32-encoded unique identifier. [optional] # noqa: E501
+ revision (str): UUID (lower-case, dash-separated, hex-encoded 128-bit). [optional] # noqa: E501
+ redirect (str): base32-encoded unique identifier. [optional] # noqa: E501
+ extra ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)}): Free-form JSON metadata that will be stored with the other entity metadata. See guide for (unenforced) schema conventions. . [optional] # noqa: E501
+ edit_extra ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)}): Free-form JSON metadata that will be stored with specific entity edits (eg, creation/update/delete). . [optional] # noqa: E501
+ title (str): Required for valid entities. The title used in citations and for display. Sometimes the English translation of title e even if release content is not English. . [optional] # noqa: E501
+ subtitle (str): Subtitle of release. In many cases, better to merge with title than include as separate field (unless combined title would be very long). See guide for details. . [optional] # noqa: E501
+ original_title (str): Title in original language if `title` field has been translated. See guide for details. . [optional] # noqa: E501
+ work_id (str): Identifier of work this release is part of. In creation (POST) requests, a work entity will be created automatically if this field is not set. . [optional] # noqa: E501
+ container (ContainerEntity): [optional] # noqa: E501
+ files ([FileEntity]): Complete file entities identified by `file_ids` field. Only included in GET responses when `files` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ filesets ([FilesetEntity]): Complete file entities identified by `filesets_ids` field. Only included in GET responses when `filesets` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ webcaptures ([WebcaptureEntity]): Complete webcapture entities identified by `webcapture_ids` field. Only included in GET responses when `webcaptures` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ container_id (str): Used to link this release to a container entity that the release was published as part of. . [optional] # noqa: E501
+ release_type (str): \"Type\" or \"medium\" that this release is published as. See guide for valid values. . [optional] # noqa: E501
+ release_stage (str): The stage of publication of this specific release. See guide for valid values and semantics. . [optional] # noqa: E501
+ release_date (date): Full date when this release was formally published. ISO format, like `2019-03-05`. See guide for semantics. . [optional] # noqa: E501
+ release_year (int): Year when this release was formally published. Must match `release_date` if that field is set; this field exists because sometimes only the year is known. . [optional] # noqa: E501
+ withdrawn_status (str): Type of withdrawal or retraction of this release, if applicable. If release has not been withdrawn, should be `null` (aka, not set, not the string \"null\" or an empty string). . [optional] # noqa: E501
+ withdrawn_date (date): Full date when this release was formally withdrawn (if applicable). ISO format, like `release_date`. . [optional] # noqa: E501
+ withdrawn_year (int): Year corresponding with `withdrawn_date` like `release_year`/`release_date`. . [optional] # noqa: E501
+ volume (str): Volume number of container that this release was published in. Often corresponds to the \"Nth\" year of publication, but can be any string. See guide. . [optional] # noqa: E501
+ issue (str): Issue number of volume/container that this release was published in. Sometimes corresponds to a month number in the year, but can be any string. See guide. . [optional] # noqa: E501
+ pages (str): Either a single page number (\"first page\") or a range of pages separated by a dash (\"-\"). See guide for details. . [optional] # noqa: E501
+ number (str): For, eg, technical reports, which are published in series or assigned some other institutional or container-specific identifier. . [optional] # noqa: E501
+ version (str): For, eg, updated technical reports or software packages, where the version string may be the only field disambiguating between releases. . [optional] # noqa: E501
+ publisher (str): Name, usually English, of the entity or institution responsible for publication of this release. Not necessarily the imprint/brand. See guide. . [optional] # noqa: E501
+ language (str): Primary language of the content of the full release. Two-letter RFC1766/ISO639-1 language code, with some custom extensions/additions. See guide. . [optional] # noqa: E501
+ license_slug (str): Short string (slug) name of license under which release is openly published (if applicable). . [optional] # noqa: E501
+ contribs ([ReleaseContrib]): [optional] # noqa: E501
+ refs ([ReleaseRef]): [optional] # noqa: E501
+ abstracts ([ReleaseAbstract]): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', True)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ self = super(OpenApiModel, cls).__new__(cls)
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.ext_ids = ext_ids
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ return self
+
+ required_properties = set([
+ '_data_store',
+ '_check_type',
+ '_spec_property_naming',
+ '_path_to_item',
+ '_configuration',
+ '_visited_composed_classes',
+ ])
+
+ @convert_js_args_to_python_args
+ def __init__(self, ext_ids, *args, **kwargs): # noqa: E501
+ """ReleaseEntity - a model defined in OpenAPI
+
+ Args:
+ ext_ids (ReleaseExtIds):
+
+ Keyword Args:
+ _check_type (bool): if True, values for parameters in openapi_types
+ will be type checked and a TypeError will be
+ raised if the wrong type is input.
+ Defaults to True
+ _path_to_item (tuple/list): This is a list of keys or values to
+ drill down to the model in received_data
+ when deserializing a response
+ _spec_property_naming (bool): True if the variable names in the input data
+ are serialized names, as specified in the OpenAPI document.
+ False if the variable names in the input data
+ are pythonic names, e.g. snake case (default)
+ _configuration (Configuration): the instance to use when
+ deserializing a file_type parameter.
+ If passed, type conversion is attempted
+ If omitted no type conversion is done.
+ _visited_composed_classes (tuple): This stores a tuple of
+ classes that we have traveled through so that
+ if we see that class again we will not use its
+ discriminator again.
+ When traveling through a discriminator, the
+ composed schema that is
+ is traveled through is added to this set.
+ For example if Animal has a discriminator
+ petType and we pass in "Dog", and the class Dog
+ allOf includes Animal, we move through Animal
+ once using the discriminator, and pick Dog.
+ Then in Dog, we will make an instance of the
+ Animal class but this time we won't travel
+ through its discriminator because we passed in
+ _visited_composed_classes = (Animal,)
+ state (str): [optional] # noqa: E501
+ ident (str): base32-encoded unique identifier. [optional] # noqa: E501
+ revision (str): UUID (lower-case, dash-separated, hex-encoded 128-bit). [optional] # noqa: E501
+ redirect (str): base32-encoded unique identifier. [optional] # noqa: E501
+ extra ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)}): Free-form JSON metadata that will be stored with the other entity metadata. See guide for (unenforced) schema conventions. . [optional] # noqa: E501
+ edit_extra ({str: (bool, date, datetime, dict, float, int, list, str, none_type,)}): Free-form JSON metadata that will be stored with specific entity edits (eg, creation/update/delete). . [optional] # noqa: E501
+ title (str): Required for valid entities. The title used in citations and for display. Sometimes the English translation of title e even if release content is not English. . [optional] # noqa: E501
+ subtitle (str): Subtitle of release. In many cases, better to merge with title than include as separate field (unless combined title would be very long). See guide for details. . [optional] # noqa: E501
+ original_title (str): Title in original language if `title` field has been translated. See guide for details. . [optional] # noqa: E501
+ work_id (str): Identifier of work this release is part of. In creation (POST) requests, a work entity will be created automatically if this field is not set. . [optional] # noqa: E501
+ container (ContainerEntity): [optional] # noqa: E501
+ files ([FileEntity]): Complete file entities identified by `file_ids` field. Only included in GET responses when `files` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ filesets ([FilesetEntity]): Complete file entities identified by `filesets_ids` field. Only included in GET responses when `filesets` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ webcaptures ([WebcaptureEntity]): Complete webcapture entities identified by `webcapture_ids` field. Only included in GET responses when `webcaptures` included in `expand` parameter; ignored in PUT or POST requests. . [optional] # noqa: E501
+ container_id (str): Used to link this release to a container entity that the release was published as part of. . [optional] # noqa: E501
+ release_type (str): \"Type\" or \"medium\" that this release is published as. See guide for valid values. . [optional] # noqa: E501
+ release_stage (str): The stage of publication of this specific release. See guide for valid values and semantics. . [optional] # noqa: E501
+ release_date (date): Full date when this release was formally published. ISO format, like `2019-03-05`. See guide for semantics. . [optional] # noqa: E501
+ release_year (int): Year when this release was formally published. Must match `release_date` if that field is set; this field exists because sometimes only the year is known. . [optional] # noqa: E501
+ withdrawn_status (str): Type of withdrawal or retraction of this release, if applicable. If release has not been withdrawn, should be `null` (aka, not set, not the string \"null\" or an empty string). . [optional] # noqa: E501
+ withdrawn_date (date): Full date when this release was formally withdrawn (if applicable). ISO format, like `release_date`. . [optional] # noqa: E501
+ withdrawn_year (int): Year corresponding with `withdrawn_date` like `release_year`/`release_date`. . [optional] # noqa: E501
+ volume (str): Volume number of container that this release was published in. Often corresponds to the \"Nth\" year of publication, but can be any string. See guide. . [optional] # noqa: E501
+ issue (str): Issue number of volume/container that this release was published in. Sometimes corresponds to a month number in the year, but can be any string. See guide. . [optional] # noqa: E501
+ pages (str): Either a single page number (\"first page\") or a range of pages separated by a dash (\"-\"). See guide for details. . [optional] # noqa: E501
+ number (str): For, eg, technical reports, which are published in series or assigned some other institutional or container-specific identifier. . [optional] # noqa: E501
+ version (str): For, eg, updated technical reports or software packages, where the version string may be the only field disambiguating between releases. . [optional] # noqa: E501
+ publisher (str): Name, usually English, of the entity or institution responsible for publication of this release. Not necessarily the imprint/brand. See guide. . [optional] # noqa: E501
+ language (str): Primary language of the content of the full release. Two-letter RFC1766/ISO639-1 language code, with some custom extensions/additions. See guide. . [optional] # noqa: E501
+ license_slug (str): Short string (slug) name of license under which release is openly published (if applicable). . [optional] # noqa: E501
+ contribs ([ReleaseContrib]): [optional] # noqa: E501
+ refs ([ReleaseRef]): [optional] # noqa: E501
+ abstracts ([ReleaseAbstract]): [optional] # noqa: E501
+ """
+
+ _check_type = kwargs.pop('_check_type', True)
+ _spec_property_naming = kwargs.pop('_spec_property_naming', False)
+ _path_to_item = kwargs.pop('_path_to_item', ())
+ _configuration = kwargs.pop('_configuration', None)
+ _visited_composed_classes = kwargs.pop('_visited_composed_classes', ())
+
+ if args:
+ for arg in args:
+ if isinstance(arg, dict):
+ kwargs.update(arg)
+ else:
+ raise ApiTypeError(
+ "Invalid positional arguments=%s passed to %s. Remove those invalid positional arguments." % (
+ args,
+ self.__class__.__name__,
+ ),
+ path_to_item=_path_to_item,
+ valid_classes=(self.__class__,),
+ )
+
+ self._data_store = {}
+ self._check_type = _check_type
+ self._spec_property_naming = _spec_property_naming
+ self._path_to_item = _path_to_item
+ self._configuration = _configuration
+ self._visited_composed_classes = _visited_composed_classes + (self.__class__,)
+
+ self.ext_ids = ext_ids
+ for var_name, var_value in kwargs.items():
+ if var_name not in self.attribute_map and \
+ self._configuration is not None and \
+ self._configuration.discard_unknown_keys and \
+ self.additional_properties_type is None:
+ # discard variable.
+ continue
+ setattr(self, var_name, var_value)
+ if var_name in self.read_only_vars:
+ raise ApiAttributeError(f"`{var_name}` is a read-only attribute. Use `from_openapi_data` to instantiate "
+ f"class with read only attributes.")