schema_salad.metaschema
=======================

.. py:module:: schema_salad.metaschema


Attributes
----------

.. autoapisummary::

   schema_salad.metaschema.IdxType
   schema_salad.metaschema.S
   schema_salad.metaschema.save_type
   schema_salad.metaschema.strtype
   schema_salad.metaschema.inttype
   schema_salad.metaschema.floattype
   schema_salad.metaschema.booltype
   schema_salad.metaschema.None_type
   schema_salad.metaschema.Any_type
   schema_salad.metaschema.PrimitiveTypeLoader
   schema_salad.metaschema.AnyLoader
   schema_salad.metaschema.RecordFieldLoader
   schema_salad.metaschema.RecordSchemaLoader
   schema_salad.metaschema.EnumSchemaLoader
   schema_salad.metaschema.ArraySchemaLoader
   schema_salad.metaschema.MapSchemaLoader
   schema_salad.metaschema.UnionSchemaLoader
   schema_salad.metaschema.JsonldPredicateLoader
   schema_salad.metaschema.SpecializeDefLoader
   schema_salad.metaschema.SaladRecordFieldLoader
   schema_salad.metaschema.SaladRecordSchemaLoader
   schema_salad.metaschema.SaladEnumSchemaLoader
   schema_salad.metaschema.SaladMapSchemaLoader
   schema_salad.metaschema.SaladUnionSchemaLoader
   schema_salad.metaschema.DocumentationLoader
   schema_salad.metaschema.array_of_strtype
   schema_salad.metaschema.union_of_None_type_or_strtype_or_array_of_strtype
   schema_salad.metaschema.uri_strtype_True_False_None_None
   schema_salad.metaschema.union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   schema_salad.metaschema.array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   schema_salad.metaschema.union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   schema_salad.metaschema.typedsl_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_2
   schema_salad.metaschema.array_of_RecordFieldLoader
   schema_salad.metaschema.union_of_None_type_or_array_of_RecordFieldLoader
   schema_salad.metaschema.idmap_fields_union_of_None_type_or_array_of_RecordFieldLoader
   schema_salad.metaschema.Record_nameLoader
   schema_salad.metaschema.typedsl_Record_nameLoader_2
   schema_salad.metaschema.union_of_None_type_or_strtype
   schema_salad.metaschema.uri_union_of_None_type_or_strtype_True_False_None_None
   schema_salad.metaschema.uri_array_of_strtype_True_False_None_None
   schema_salad.metaschema.Enum_nameLoader
   schema_salad.metaschema.typedsl_Enum_nameLoader_2
   schema_salad.metaschema.uri_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_False_True_2_None
   schema_salad.metaschema.Array_nameLoader
   schema_salad.metaschema.typedsl_Array_nameLoader_2
   schema_salad.metaschema.Map_nameLoader
   schema_salad.metaschema.typedsl_Map_nameLoader_2
   schema_salad.metaschema.Union_nameLoader
   schema_salad.metaschema.typedsl_Union_nameLoader_2
   schema_salad.metaschema.union_of_None_type_or_booltype
   schema_salad.metaschema.union_of_None_type_or_inttype
   schema_salad.metaschema.uri_strtype_False_False_1_None
   schema_salad.metaschema.uri_union_of_None_type_or_strtype_False_False_None_None
   schema_salad.metaschema.uri_union_of_None_type_or_strtype_or_array_of_strtype_False_False_None_None
   schema_salad.metaschema.union_of_None_type_or_strtype_or_JsonldPredicateLoader
   schema_salad.metaschema.union_of_None_type_or_Any_type
   schema_salad.metaschema.array_of_SaladRecordFieldLoader
   schema_salad.metaschema.union_of_None_type_or_array_of_SaladRecordFieldLoader
   schema_salad.metaschema.idmap_fields_union_of_None_type_or_array_of_SaladRecordFieldLoader
   schema_salad.metaschema.uri_union_of_None_type_or_strtype_or_array_of_strtype_False_False_1_None
   schema_salad.metaschema.array_of_SpecializeDefLoader
   schema_salad.metaschema.union_of_None_type_or_array_of_SpecializeDefLoader
   schema_salad.metaschema.idmap_specialize_union_of_None_type_or_array_of_SpecializeDefLoader
   schema_salad.metaschema.Documentation_nameLoader
   schema_salad.metaschema.typedsl_Documentation_nameLoader_2
   schema_salad.metaschema.union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader
   schema_salad.metaschema.array_of_union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader
   schema_salad.metaschema.union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader_or_array_of_union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader


Classes
-------

.. autoapisummary::

   schema_salad.metaschema.LoadingOptions
   schema_salad.metaschema.Saveable
   schema_salad.metaschema.Documented
   schema_salad.metaschema.RecordField
   schema_salad.metaschema.RecordSchema
   schema_salad.metaschema.EnumSchema
   schema_salad.metaschema.ArraySchema
   schema_salad.metaschema.MapSchema
   schema_salad.metaschema.UnionSchema
   schema_salad.metaschema.JsonldPredicate
   schema_salad.metaschema.SpecializeDef
   schema_salad.metaschema.NamedType
   schema_salad.metaschema.DocType
   schema_salad.metaschema.SchemaDefinedType
   schema_salad.metaschema.SaladRecordField
   schema_salad.metaschema.SaladRecordSchema
   schema_salad.metaschema.SaladEnumSchema
   schema_salad.metaschema.SaladMapSchema
   schema_salad.metaschema.SaladUnionSchema
   schema_salad.metaschema.Documentation


Functions
---------

.. autoapisummary::

   schema_salad.metaschema.load_field
   schema_salad.metaschema.extract_type
   schema_salad.metaschema.convert_typing
   schema_salad.metaschema.parse_errors
   schema_salad.metaschema.save
   schema_salad.metaschema.save_with_metadata
   schema_salad.metaschema.expand_url
   schema_salad.metaschema.file_uri
   schema_salad.metaschema.prefix_url
   schema_salad.metaschema.save_relative_uri
   schema_salad.metaschema.shortname
   schema_salad.metaschema.parser_info
   schema_salad.metaschema.load_document
   schema_salad.metaschema.load_document_with_metadata
   schema_salad.metaschema.load_document_by_string
   schema_salad.metaschema.load_document_by_yaml


Module Contents
---------------

.. py:type:: IdxType
   :canonical: MutableMapping[str, tuple[Any, 'LoadingOptions']]


.. py:data:: S

.. py:class:: LoadingOptions(fetcher = None, namespaces = None, schemas = None, fileuri = None, copyfrom = None, original_doc = None, addl_metadata = None, baseuri = None, idx = None, imports = None, includes = None, no_link_check = None, container = None)

   .. py:attribute:: idx
      :type:  Final[IdxType]


   .. py:attribute:: fileuri
      :type:  Final[str | None]


   .. py:attribute:: baseuri
      :type:  Final[str]


   .. py:attribute:: namespaces
      :type:  Final[collections.abc.MutableMapping[str, str]]


   .. py:attribute:: schemas
      :type:  Final[collections.abc.MutableSequence[str]]


   .. py:attribute:: original_doc
      :type:  Final[Any | None]


   .. py:attribute:: addl_metadata
      :type:  Final[collections.abc.MutableMapping[str, Any]]


   .. py:attribute:: fetcher
      :type:  Final[schema_salad.fetcher.Fetcher]


   .. py:attribute:: vocab
      :type:  Final[dict[str, str]]


   .. py:attribute:: rvocab
      :type:  Final[dict[str, str]]


   .. py:attribute:: cache
      :type:  Final[schema_salad.utils.CacheType]


   .. py:attribute:: imports
      :type:  Final[list[str]]


   .. py:attribute:: includes
      :type:  Final[list[str]]


   .. py:attribute:: no_link_check
      :type:  Final[bool | None]


   .. py:attribute:: container
      :type:  Final[str | None]


   .. py:property:: graph
      :type: rdflib.Graph


      Generate a merged rdflib.Graph from all entries in self.schemas.



.. py:class:: Saveable

   Mark classes than have a save() and fromDoc() function.


   .. py:method:: fromDoc(_doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:

      :abstractmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)
      :abstractmethod:


      Convert this object to a JSON/YAML friendly dictionary.



.. py:function:: load_field(val, fieldtype, baseuri, loadingOptions, lc = None)

   Load field.


.. py:type:: save_type
   :canonical: None | MutableMapping[str, Any] | MutableSequence[Any] | int | float | bool | str


.. py:function:: extract_type(val_type)

   Take a type of value, and extracts the value as a string.


.. py:function:: convert_typing(val_type)

   Normalize type names to schema-salad types.


.. py:function:: parse_errors(error_message)

   Parse error messages from several loaders into one error message.


.. py:function:: save(val, top = True, base_url = '', relative_uris = True)

.. py:function:: save_with_metadata(val, valLoadingOpts, top = True, base_url = '', relative_uris = True)

   Save and set $namespaces, $schemas, $base and any other metadata fields at the top level.


.. py:function:: expand_url(url, base_url, loadingOptions, scoped_id = False, vocab_term = False, scoped_ref = None)

.. py:function:: file_uri(path, split_frag = False)

   Transform a file path into a URL with file scheme.


.. py:function:: prefix_url(url, namespaces)

   Expand short forms into full URLs using the given namespace dictionary.


.. py:function:: save_relative_uri(uri, base_url, scoped_id, ref_scope, relative_uris)

   Convert any URI to a relative one, obeying the scoping rules.


.. py:function:: shortname(inputid)

   Compute the shortname of a fully qualified identifier.

   See https://w3id.org/cwl/v1.2/SchemaSalad.html#Short_names.


.. py:function:: parser_info()

.. py:class:: Documented

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.Documented
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


.. py:class:: RecordField(name, type_, doc = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Documented`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.RecordField
      :parts: 1


   A field of a record.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: RecordSchema(type_, fields = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.RecordSchema
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: fields
      :value: None



   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: EnumSchema(symbols, type_, name = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.EnumSchema
      :parts: 1


   Define an enumerated type.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: symbols


   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: ArraySchema(items, type_, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.ArraySchema
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: items


   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: MapSchema(type_, values, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.MapSchema
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: type_


   .. py:attribute:: values


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: UnionSchema(names, type_, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.UnionSchema
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: names


   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: JsonldPredicate(_id = None, _type = None, _container = None, identity = None, noLinkCheck = None, mapSubject = None, mapPredicate = None, refScope = None, typeDSL = None, secondaryFilesDSL = None, subscope = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.JsonldPredicate
      :parts: 1


   Attached to a record field to define how the parent record field is handled for URI resolution and JSON-LD context generation.



   .. py:attribute:: identity
      :value: None



   .. py:attribute:: noLinkCheck
      :value: None



   .. py:attribute:: mapSubject
      :value: None



   .. py:attribute:: mapPredicate
      :value: None



   .. py:attribute:: refScope
      :value: None



   .. py:attribute:: typeDSL
      :value: None



   .. py:attribute:: secondaryFilesDSL
      :value: None



   .. py:attribute:: subscope
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: SpecializeDef(specializeFrom, specializeTo, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SpecializeDef
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: specializeFrom


   .. py:attribute:: specializeTo


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: NamedType

   Bases: :py:obj:`Saveable`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.NamedType
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


.. py:class:: DocType

   Bases: :py:obj:`Documented`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.DocType
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


.. py:class:: SchemaDefinedType

   Bases: :py:obj:`DocType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SchemaDefinedType
      :parts: 1


   Abstract base for schema-defined types.



.. py:class:: SaladRecordField(name, type_, doc = None, jsonldPredicate = None, default = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`RecordField`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SaladRecordField
      :parts: 1


   A field of a record.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: type_


   .. py:attribute:: jsonldPredicate
      :value: None



   .. py:attribute:: default
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: SaladRecordSchema(name, type_, inVocab = None, fields = None, doc = None, docParent = None, docChild = None, docAfter = None, jsonldPredicate = None, documentRoot = None, abstract = None, extends = None, specialize = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`NamedType`, :py:obj:`RecordSchema`, :py:obj:`SchemaDefinedType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SaladRecordSchema
      :parts: 1


   Mark classes than have a save() and fromDoc() function.


   .. py:attribute:: name
      :type:  str


   .. py:attribute:: inVocab
      :value: None



   .. py:attribute:: fields
      :value: None



   .. py:attribute:: type_


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: docParent
      :value: None



   .. py:attribute:: docChild
      :value: None



   .. py:attribute:: docAfter
      :value: None



   .. py:attribute:: jsonldPredicate
      :value: None



   .. py:attribute:: documentRoot
      :value: None



   .. py:attribute:: abstract
      :value: None



   .. py:attribute:: extends
      :value: None



   .. py:attribute:: specialize
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: SaladEnumSchema(symbols, type_, name = None, inVocab = None, doc = None, docParent = None, docChild = None, docAfter = None, jsonldPredicate = None, documentRoot = None, extends = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`NamedType`, :py:obj:`EnumSchema`, :py:obj:`SchemaDefinedType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SaladEnumSchema
      :parts: 1


   Define an enumerated type.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: inVocab
      :value: None



   .. py:attribute:: symbols


   .. py:attribute:: type_


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: docParent
      :value: None



   .. py:attribute:: docChild
      :value: None



   .. py:attribute:: docAfter
      :value: None



   .. py:attribute:: jsonldPredicate
      :value: None



   .. py:attribute:: documentRoot
      :value: None



   .. py:attribute:: extends
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: SaladMapSchema(name, type_, values, inVocab = None, doc = None, docParent = None, docChild = None, docAfter = None, jsonldPredicate = None, documentRoot = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`NamedType`, :py:obj:`MapSchema`, :py:obj:`SchemaDefinedType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SaladMapSchema
      :parts: 1


   Define a map type.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: inVocab
      :value: None



   .. py:attribute:: type_


   .. py:attribute:: values


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: docParent
      :value: None



   .. py:attribute:: docChild
      :value: None



   .. py:attribute:: docAfter
      :value: None



   .. py:attribute:: jsonldPredicate
      :value: None



   .. py:attribute:: documentRoot
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: SaladUnionSchema(name, names, type_, inVocab = None, doc = None, docParent = None, docChild = None, docAfter = None, documentRoot = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`NamedType`, :py:obj:`UnionSchema`, :py:obj:`DocType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.SaladUnionSchema
      :parts: 1


   Define a union type.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: inVocab
      :value: None



   .. py:attribute:: names


   .. py:attribute:: type_


   .. py:attribute:: doc
      :value: None



   .. py:attribute:: docParent
      :value: None



   .. py:attribute:: docChild
      :value: None



   .. py:attribute:: docAfter
      :value: None



   .. py:attribute:: documentRoot
      :value: None



   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:class:: Documentation(name, type_, inVocab = None, doc = None, docParent = None, docChild = None, docAfter = None, extension_fields = None, loadingOptions = None)

   Bases: :py:obj:`NamedType`, :py:obj:`DocType`

   .. autoapi-inheritance-diagram:: schema_salad.metaschema.Documentation
      :parts: 1


   A documentation section.  This type exists to facilitate self-documenting schemas but has no role in formal validation.



   .. py:attribute:: name
      :type:  str


   .. py:attribute:: inVocab
      :value: None



   .. py:attribute:: doc
      :value: None



   .. py:attribute:: docParent
      :value: None



   .. py:attribute:: docChild
      :value: None



   .. py:attribute:: docAfter
      :value: None



   .. py:attribute:: type_


   .. py:method:: __eq__(other)


   .. py:method:: __hash__()


   .. py:method:: fromDoc(doc, baseuri, loadingOptions, docRoot = None)
      :classmethod:


      Construct this object from the result of yaml.load().



   .. py:method:: save(top = False, base_url = '', relative_uris = True)

      Convert this object to a JSON/YAML friendly dictionary.



   .. py:attribute:: attrs
      :type:  ClassVar[collections.abc.Collection[str]]


.. py:data:: strtype
   :type:  Final

.. py:data:: inttype
   :type:  Final

.. py:data:: floattype
   :type:  Final

.. py:data:: booltype
   :type:  Final

.. py:data:: None_type
   :type:  Final

.. py:data:: Any_type
   :type:  Final

.. py:data:: PrimitiveTypeLoader
   :type:  Final

   Names of salad data types (based on Avro schema declarations).

   Refer to the `Avro schema declaration documentation <https://avro.apache.org/docs/current/spec.html#schemas>`__ for detailed information.

   null: no value

   boolean: a binary value

   int: 32-bit signed integer

   long: 64-bit signed integer

   float: single precision (32-bit) IEEE 754 floating-point number

   double: double precision (64-bit) IEEE 754 floating-point number

   string: Unicode character sequence


.. py:data:: AnyLoader
   :type:  Final

   The **Any** type validates for any non-null value.


.. py:data:: RecordFieldLoader
   :type:  Final

.. py:data:: RecordSchemaLoader
   :type:  Final

.. py:data:: EnumSchemaLoader
   :type:  Final

.. py:data:: ArraySchemaLoader
   :type:  Final

.. py:data:: MapSchemaLoader
   :type:  Final

.. py:data:: UnionSchemaLoader
   :type:  Final

.. py:data:: JsonldPredicateLoader
   :type:  Final

.. py:data:: SpecializeDefLoader
   :type:  Final

.. py:data:: SaladRecordFieldLoader
   :type:  Final

.. py:data:: SaladRecordSchemaLoader
   :type:  Final

.. py:data:: SaladEnumSchemaLoader
   :type:  Final

.. py:data:: SaladMapSchemaLoader
   :type:  Final

.. py:data:: SaladUnionSchemaLoader
   :type:  Final

.. py:data:: DocumentationLoader
   :type:  Final

.. py:data:: array_of_strtype
   :type:  Final

.. py:data:: union_of_None_type_or_strtype_or_array_of_strtype
   :type:  Final

.. py:data:: uri_strtype_True_False_None_None
   :type:  Final

.. py:data:: union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   :type:  Final

.. py:data:: array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   :type:  Final

.. py:data:: union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype
   :type:  Final

.. py:data:: typedsl_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_2
   :type:  Final

.. py:data:: array_of_RecordFieldLoader
   :type:  Final

.. py:data:: union_of_None_type_or_array_of_RecordFieldLoader
   :type:  Final

.. py:data:: idmap_fields_union_of_None_type_or_array_of_RecordFieldLoader
   :type:  Final

.. py:data:: Record_nameLoader
   :type:  Final

.. py:data:: typedsl_Record_nameLoader_2
   :type:  Final

.. py:data:: union_of_None_type_or_strtype
   :type:  Final

.. py:data:: uri_union_of_None_type_or_strtype_True_False_None_None
   :type:  Final

.. py:data:: uri_array_of_strtype_True_False_None_None
   :type:  Final

.. py:data:: Enum_nameLoader
   :type:  Final

.. py:data:: typedsl_Enum_nameLoader_2
   :type:  Final

.. py:data:: uri_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_or_array_of_union_of_PrimitiveTypeLoader_or_RecordSchemaLoader_or_EnumSchemaLoader_or_ArraySchemaLoader_or_MapSchemaLoader_or_UnionSchemaLoader_or_strtype_False_True_2_None
   :type:  Final

.. py:data:: Array_nameLoader
   :type:  Final

.. py:data:: typedsl_Array_nameLoader_2
   :type:  Final

.. py:data:: Map_nameLoader
   :type:  Final

.. py:data:: typedsl_Map_nameLoader_2
   :type:  Final

.. py:data:: Union_nameLoader
   :type:  Final

.. py:data:: typedsl_Union_nameLoader_2
   :type:  Final

.. py:data:: union_of_None_type_or_booltype
   :type:  Final

.. py:data:: union_of_None_type_or_inttype
   :type:  Final

.. py:data:: uri_strtype_False_False_1_None
   :type:  Final

.. py:data:: uri_union_of_None_type_or_strtype_False_False_None_None
   :type:  Final

.. py:data:: uri_union_of_None_type_or_strtype_or_array_of_strtype_False_False_None_None
   :type:  Final

.. py:data:: union_of_None_type_or_strtype_or_JsonldPredicateLoader
   :type:  Final

.. py:data:: union_of_None_type_or_Any_type
   :type:  Final

.. py:data:: array_of_SaladRecordFieldLoader
   :type:  Final

.. py:data:: union_of_None_type_or_array_of_SaladRecordFieldLoader
   :type:  Final

.. py:data:: idmap_fields_union_of_None_type_or_array_of_SaladRecordFieldLoader
   :type:  Final

.. py:data:: uri_union_of_None_type_or_strtype_or_array_of_strtype_False_False_1_None
   :type:  Final

.. py:data:: array_of_SpecializeDefLoader
   :type:  Final

.. py:data:: union_of_None_type_or_array_of_SpecializeDefLoader
   :type:  Final

.. py:data:: idmap_specialize_union_of_None_type_or_array_of_SpecializeDefLoader
   :type:  Final

.. py:data:: Documentation_nameLoader
   :type:  Final

.. py:data:: typedsl_Documentation_nameLoader_2
   :type:  Final

.. py:data:: union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader
   :type:  Final

.. py:data:: array_of_union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader
   :type:  Final

.. py:data:: union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader_or_array_of_union_of_SaladRecordSchemaLoader_or_SaladEnumSchemaLoader_or_SaladMapSchemaLoader_or_SaladUnionSchemaLoader_or_DocumentationLoader
   :type:  Final

.. py:function:: load_document(doc, baseuri = None, loadingOptions = None)

.. py:function:: load_document_with_metadata(doc, baseuri = None, loadingOptions = None, addl_metadata_fields = None)

.. py:function:: load_document_by_string(string, uri, loadingOptions = None)

.. py:function:: load_document_by_yaml(yaml, uri, loadingOptions = None)

   Shortcut to load via a YAML object.
   yaml: must be from ruamel.yaml.main.YAML.load with preserve_quotes=True


