weaver.formats

Module Contents

weaver.formats.CONTENT_TYPE_APP_FORM = application/x-www-form-urlencoded[source]
weaver.formats.CONTENT_TYPE_APP_NETCDF = application/x-netcdf[source]
weaver.formats.CONTENT_TYPE_APP_GZIP = application/gzip[source]
weaver.formats.CONTENT_TYPE_APP_HDF5 = application/x-hdf5[source]
weaver.formats.CONTENT_TYPE_APP_TAR = application/x-tar[source]
weaver.formats.CONTENT_TYPE_APP_ZIP = application/zip[source]
weaver.formats.CONTENT_TYPE_TEXT_HTML = text/html[source]
weaver.formats.CONTENT_TYPE_TEXT_PLAIN = text/plain[source]
weaver.formats.CONTENT_TYPE_APP_PDF = application/pdf[source]
weaver.formats.CONTENT_TYPE_APP_JSON = application/json[source]
weaver.formats.CONTENT_TYPE_APP_GEOJSON = application/vnd.geo+json[source]
weaver.formats.CONTENT_TYPE_APP_XML = application/xml[source]
weaver.formats.CONTENT_TYPE_IMAGE_GEOTIFF = image/tiff; subtype=geotiff[source]
weaver.formats.CONTENT_TYPE_TEXT_XML = text/xml[source]
weaver.formats.CONTENT_TYPE_ANY_XML[source]
weaver.formats.CONTENT_TYPE_ANY = */*[source]
weaver.formats._CONTENT_TYPE_EXTENSION_MAPPING :Dict[AnyStr, AnyStr][source]
weaver.formats._CONTENT_TYPE_FORMATS :Dict[AnyStr, Format][source]
weaver.formats.get_format(mime_type) → Format[source]

Obtains a Format with predefined extension and encoding details from known MIME-types.

weaver.formats.get_extension(mime_type) → AnyStr[source]

Retrieves the extension corresponding to mime_type if explicitly defined, or by simple parsing otherwise.

weaver.formats.IANA_NAMESPACE = iana[source]
weaver.formats.IANA_NAMESPACE_DEFINITION[source]
weaver.formats.EDAM_NAMESPACE = edam[source]
weaver.formats.EDAM_NAMESPACE_DEFINITION[source]
weaver.formats.EDAM_SCHEMA = http://edamontology.org/EDAM_1.21.owl[source]
weaver.formats.EDAM_MAPPING[source]
weaver.formats.FORMAT_NAMESPACES[source]
weaver.formats.get_cwl_file_format(mime_type, make_reference=False, must_exist=False) → Union[Tuple[Union[JSON, None], Union[AnyStr, None]], Union[AnyStr, None]][source]

Obtains the corresponding IANA/EDAM format value to be applied under a CWL I/O File from the mime_type (Content-Type header) using the first matched one.

If make_reference=False:
  • If there is a match, returns tuple({<namespace-name: namespace-url>}, <format>):
    1. corresponding namespace mapping to be applied under $namespaces in the CWL.
    2. value of format adjusted according to the namespace to be applied to File in the CWL.
  • If there is no match but must_exist=False:
    returns a literal and non-existing definition as tuple({"iana": <iana-url>}, <format>)
  • Otherwise, returns (None, None)
If make_reference=True:
  • If there is a match, returns the explicit format reference as <namespace-url>/<format>.
  • If there is no match but must_exist=False, returns the literal reference as <iana-url>/<format>.
  • Otherwise, returns a single None.

Note

In situations where must_exist=False and the default non-existing namespace is returned, the CWL behaviour is to evaluate corresponding format for literal matching strings.

weaver.formats.clean_mime_type_format(mime_type, base_subtype=False, strip_parameters=False) → AnyStr[source]

Removes any additional namespace key or URL from :paramref:`mime_type` so that it corresponds to the generic representation (e.g.: application/json) instead of the <namespace-name>:<format> mapping variant used in CWL->inputs/outputs->File->format or the complete URL reference.

According to provided arguments, it also cleans up additional parameters or extracts sub-type suffixes.

Parameters:
  • mime_type – MIME-type string that must be cleaned up.
  • base_subtype – remove additional sub-type specializations details marked by + symbol such that an explicit format like application/vnd.api+json returns only its base format defined as``application/json``.
  • strip_parameters – removes additional MIME-type parameters such that only the leading part defining the type/subtype are returned. For example, this will get rid of ; charset=UTF-8 or ; version=4.0 parameters.

Note

Parameters :paramref:`base_subtype` and :paramref:`strip_parameters` are not necessarily exclusive.