diff options
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.py | 440 |
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.") |