From 470d8f7766ab012a7b4f33848f065ae9a29ad418 Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Wed, 3 Jul 2024 16:29:40 -0700 Subject: [PATCH 1/5] moving docs --- .gitignore | 4 +- Makefile | 6 +- README.md | 1 + docs/api/compiler.md | 19 + docs/api/functions.md | 5 + docs/api/inference.md | 13 + docs/api/session.md | 4 + docs/api/transformer.md | 10 + docs/examples/MetamodelMapping.ipynb | 385 +++++ docs/examples/Tutorial-SQLCompiler.ipynb | 379 +++++ {src/docs => docs}/examples/Tutorial.ipynb | 0 docs/schema/AliasedClass.md | 149 ++ docs/schema/Any.md | 105 ++ docs/schema/Boolean.md | 39 + docs/schema/ClassDerivation.md | 418 +++++ docs/schema/ClassReference.md | 34 + docs/schema/CollectionType.md | 64 + docs/schema/CopyDirective.md | 236 +++ docs/schema/Curie.md | 44 + docs/schema/Date.md | 39 + docs/schema/DateOrDatetime.md | 39 + docs/schema/Datetime.md | 39 + docs/schema/Decimal.md | 38 + docs/schema/Double.md | 38 + docs/schema/ElementDerivation.md | 419 +++++ docs/schema/EnumDerivation.md | 442 +++++ docs/schema/EnumReference.md | 34 + docs/schema/Float.md | 38 + docs/schema/Integer.md | 38 + docs/schema/Inverse.md | 153 ++ docs/schema/Jsonpath.md | 39 + docs/schema/Jsonpointer.md | 39 + docs/schema/KeyVal.md | 158 ++ docs/schema/Ncname.md | 39 + docs/schema/Nodeidentifier.md | 39 + docs/schema/Objectidentifier.md | 43 + docs/schema/PermissibleValueDerivation.md | 415 +++++ docs/schema/PrefixDerivation.md | 291 ++++ docs/schema/SerializationSyntaxType.md | 61 + docs/schema/SlotDerivation.md | 598 +++++++ docs/schema/SlotReference.md | 34 + docs/schema/Sparqlpath.md | 39 + docs/schema/SpecificationComponent.md | 176 ++ docs/schema/String.md | 38 + docs/schema/StringificationConfiguration.md | 190 +++ docs/schema/Time.md | 39 + docs/schema/TransformationSpecification.md | 357 ++++ docs/schema/UnitConversionConfiguration.md | 256 +++ docs/schema/Uri.md | 43 + docs/schema/Uriorcurie.md | 39 + docs/schema/about.md | 1 + docs/schema/add.md | 65 + docs/schema/alias.md | 74 + docs/schema/api.md | 9 + docs/schema/cast_collection_as.md | 65 + docs/schema/class_derivations.md | 76 + docs/schema/class_name.md | 64 + docs/schema/class_named.md | 70 + docs/schema/comments.md | 84 + docs/schema/compiler.md | 17 + docs/schema/copy_all.md | 65 + docs/schema/copy_directives.md | 74 + docs/schema/datamodel.md | 148 ++ docs/schema/delimiter.md | 78 + docs/schema/derived_from.md | 75 + docs/schema/description.md | 78 + docs/schema/dictionary_key.md | 65 + docs/schema/element_name.md | 68 + docs/schema/enum_derivations.md | 75 + docs/schema/exclude.md | 65 + docs/schema/exclude_all.md | 65 + docs/schema/expr.md | 58 + .../expression_to_expression_mappings.md | 80 + docs/schema/expression_to_value_mappings.md | 80 + {src/docs => docs/schema}/faq.md | 0 docs/schema/functions.md | 5 + docs/schema/hide.md | 58 + docs/schema/id.md | 71 + docs/schema/implements.md | 81 + docs/schema/include.md | 65 + docs/schema/inverse_of.md | 74 + docs/schema/is_a.md | 71 + docs/schema/joins.md | 81 + docs/schema/key.md | 68 + docs/schema/mirror_source.md | 70 + docs/schema/mixins.md | 75 + docs/schema/name.md | 62 + docs/schema/over_slots.md | 68 + docs/schema/overrides.md | 76 + docs/schema/overview.md | 1002 ++++++++++++ docs/schema/permissible_value_derivations.md | 75 + docs/schema/populated_from.md | 60 + docs/schema/prefixes.md | 76 + docs/schema/range.md | 66 + docs/schema/reversed.md | 65 + docs/schema/same_as.md | 32 + docs/schema/session.md | 4 + docs/schema/slot_derivations.md | 56 + docs/schema/slot_name.md | 64 + docs/schema/source_magnitude_slot.md | 64 + docs/schema/source_schema.md | 70 + docs/schema/source_unit.md | 64 + docs/schema/source_unit_scheme.md | 74 + docs/schema/source_unit_slot.md | 64 + docs/schema/sources.md | 60 + docs/schema/stringification.md | 65 + docs/schema/syntax.md | 76 + docs/schema/target_magnitude_slot.md | 64 + docs/schema/target_schema.md | 70 + docs/schema/target_unit.md | 64 + docs/schema/target_unit_scheme.md | 74 + docs/schema/target_unit_slot.md | 64 + docs/schema/title.md | 71 + docs/schema/transformer.md | 10 + docs/schema/type_designator.md | 65 + docs/schema/types.md | 6 + docs/schema/unit.md | 62 + docs/schema/unit_conversion.md | 65 + docs/schema/value.md | 65 + docs/schema/value_mappings.md | 80 + .../docs => docs}/specification/compliance.md | 145 +- mkdocs.yml | 23 +- poetry.lock | 1442 +++++++++-------- project.Makefile | 2 +- pyproject.toml | 1 + src/docs/index.md | 180 -- .../test_compliance/test_compliance_suite.py | 61 +- 127 files changed, 12413 insertions(+), 927 deletions(-) create mode 100644 docs/api/compiler.md create mode 100644 docs/api/functions.md create mode 100644 docs/api/inference.md create mode 100644 docs/api/session.md create mode 100644 docs/api/transformer.md create mode 100644 docs/examples/MetamodelMapping.ipynb create mode 100644 docs/examples/Tutorial-SQLCompiler.ipynb rename {src/docs => docs}/examples/Tutorial.ipynb (100%) create mode 100644 docs/schema/AliasedClass.md create mode 100644 docs/schema/Any.md create mode 100644 docs/schema/Boolean.md create mode 100644 docs/schema/ClassDerivation.md create mode 100644 docs/schema/ClassReference.md create mode 100644 docs/schema/CollectionType.md create mode 100644 docs/schema/CopyDirective.md create mode 100644 docs/schema/Curie.md create mode 100644 docs/schema/Date.md create mode 100644 docs/schema/DateOrDatetime.md create mode 100644 docs/schema/Datetime.md create mode 100644 docs/schema/Decimal.md create mode 100644 docs/schema/Double.md create mode 100644 docs/schema/ElementDerivation.md create mode 100644 docs/schema/EnumDerivation.md create mode 100644 docs/schema/EnumReference.md create mode 100644 docs/schema/Float.md create mode 100644 docs/schema/Integer.md create mode 100644 docs/schema/Inverse.md create mode 100644 docs/schema/Jsonpath.md create mode 100644 docs/schema/Jsonpointer.md create mode 100644 docs/schema/KeyVal.md create mode 100644 docs/schema/Ncname.md create mode 100644 docs/schema/Nodeidentifier.md create mode 100644 docs/schema/Objectidentifier.md create mode 100644 docs/schema/PermissibleValueDerivation.md create mode 100644 docs/schema/PrefixDerivation.md create mode 100644 docs/schema/SerializationSyntaxType.md create mode 100644 docs/schema/SlotDerivation.md create mode 100644 docs/schema/SlotReference.md create mode 100644 docs/schema/Sparqlpath.md create mode 100644 docs/schema/SpecificationComponent.md create mode 100644 docs/schema/String.md create mode 100644 docs/schema/StringificationConfiguration.md create mode 100644 docs/schema/Time.md create mode 100644 docs/schema/TransformationSpecification.md create mode 100644 docs/schema/UnitConversionConfiguration.md create mode 100644 docs/schema/Uri.md create mode 100644 docs/schema/Uriorcurie.md create mode 100644 docs/schema/about.md create mode 100644 docs/schema/add.md create mode 100644 docs/schema/alias.md create mode 100644 docs/schema/api.md create mode 100644 docs/schema/cast_collection_as.md create mode 100644 docs/schema/class_derivations.md create mode 100644 docs/schema/class_name.md create mode 100644 docs/schema/class_named.md create mode 100644 docs/schema/comments.md create mode 100644 docs/schema/compiler.md create mode 100644 docs/schema/copy_all.md create mode 100644 docs/schema/copy_directives.md create mode 100644 docs/schema/datamodel.md create mode 100644 docs/schema/delimiter.md create mode 100644 docs/schema/derived_from.md create mode 100644 docs/schema/description.md create mode 100644 docs/schema/dictionary_key.md create mode 100644 docs/schema/element_name.md create mode 100644 docs/schema/enum_derivations.md create mode 100644 docs/schema/exclude.md create mode 100644 docs/schema/exclude_all.md create mode 100644 docs/schema/expr.md create mode 100644 docs/schema/expression_to_expression_mappings.md create mode 100644 docs/schema/expression_to_value_mappings.md rename {src/docs => docs/schema}/faq.md (100%) create mode 100644 docs/schema/functions.md create mode 100644 docs/schema/hide.md create mode 100644 docs/schema/id.md create mode 100644 docs/schema/implements.md create mode 100644 docs/schema/include.md create mode 100644 docs/schema/inverse_of.md create mode 100644 docs/schema/is_a.md create mode 100644 docs/schema/joins.md create mode 100644 docs/schema/key.md create mode 100644 docs/schema/mirror_source.md create mode 100644 docs/schema/mixins.md create mode 100644 docs/schema/name.md create mode 100644 docs/schema/over_slots.md create mode 100644 docs/schema/overrides.md create mode 100644 docs/schema/overview.md create mode 100644 docs/schema/permissible_value_derivations.md create mode 100644 docs/schema/populated_from.md create mode 100644 docs/schema/prefixes.md create mode 100644 docs/schema/range.md create mode 100644 docs/schema/reversed.md create mode 100644 docs/schema/same_as.md create mode 100644 docs/schema/session.md create mode 100644 docs/schema/slot_derivations.md create mode 100644 docs/schema/slot_name.md create mode 100644 docs/schema/source_magnitude_slot.md create mode 100644 docs/schema/source_schema.md create mode 100644 docs/schema/source_unit.md create mode 100644 docs/schema/source_unit_scheme.md create mode 100644 docs/schema/source_unit_slot.md create mode 100644 docs/schema/sources.md create mode 100644 docs/schema/stringification.md create mode 100644 docs/schema/syntax.md create mode 100644 docs/schema/target_magnitude_slot.md create mode 100644 docs/schema/target_schema.md create mode 100644 docs/schema/target_unit.md create mode 100644 docs/schema/target_unit_scheme.md create mode 100644 docs/schema/target_unit_slot.md create mode 100644 docs/schema/title.md create mode 100644 docs/schema/transformer.md create mode 100644 docs/schema/type_designator.md create mode 100644 docs/schema/types.md create mode 100644 docs/schema/unit.md create mode 100644 docs/schema/unit_conversion.md create mode 100644 docs/schema/value.md create mode 100644 docs/schema/value_mappings.md rename {src/docs => docs}/specification/compliance.md (97%) delete mode 100644 src/docs/index.md diff --git a/.gitignore b/.gitignore index 4b6a193..36c8568 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ +*.old +.coverage +coverage.xml .idea project/ -docs/ tmp/ site/ __pycache__ diff --git a/Makefile b/Makefile index 8254f57..47625aa 100644 --- a/Makefile +++ b/Makefile @@ -94,9 +94,11 @@ $(PYMODEL): $(DOCDIR): mkdir -p $@ +#docsync: +# cp -pr $(SRC)/docs/* $(DOCDIR) + gendoc: $(DOCDIR) - cp -pr $(SRC)/docs/* $(DOCDIR) ; \ - $(RUN) gen-doc -d $(DOCDIR) $(SOURCE_SCHEMA_PATH) --index-name datamodel + $(RUN) gen-doc -d $(DOCDIR)/schema $(SOURCE_SCHEMA_PATH) --index-name datamodel testdoc: gendoc serve diff --git a/README.md b/README.md index 1760e6b..b629bd7 100644 --- a/README.md +++ b/README.md @@ -33,4 +33,5 @@ Not all parts of the model are implemented in the reference Python framework. * [Tutorial Notebook](src/docs/examples/Tutorial.ipynb) * [Generated Docs](https://linkml.github.io/linkml-map/) * [Compliance Suite](https://linkml.github.io/linkml-map/specification/compliance) +* [API Docs](https://linkml.github.io/linkml-map/api) diff --git a/docs/api/compiler.md b/docs/api/compiler.md new file mode 100644 index 0000000..058a634 --- /dev/null +++ b/docs/api/compiler.md @@ -0,0 +1,19 @@ +# Compiler Package + +A compiler will compile a Map specification into an alternative representation + +## Compiler (Base Class) + +::: linkml_map.compiler.compiler.Compiler + +## Python Compiler + +::: linkml_map.compiler.python_compiler.PythonCompiler + +## Markdown Compiler + +::: linkml_map.compiler.markdown_compiler.MarkdownCompiler + +### Graphviz Compiler + +::: linkml_map.compiler.graphviz_compiler.GraphvizCompiler \ No newline at end of file diff --git a/docs/api/functions.md b/docs/api/functions.md new file mode 100644 index 0000000..269d291 --- /dev/null +++ b/docs/api/functions.md @@ -0,0 +1,5 @@ +# Functions Package + +## Unit Conversion + +::: linkml_map.functions.unit_conversion diff --git a/docs/api/inference.md b/docs/api/inference.md new file mode 100644 index 0000000..7fb5fc8 --- /dev/null +++ b/docs/api/inference.md @@ -0,0 +1,13 @@ +# Inference Package + +## Inference Utils + +::: linkml_map.inference.inference + +## Inverter + +::: linkml_map.inference.inverter + +## Schema Mapper + +::: linkml_map.inference.schema_mapper.SchemaMapper \ No newline at end of file diff --git a/docs/api/session.md b/docs/api/session.md new file mode 100644 index 0000000..332b3f3 --- /dev/null +++ b/docs/api/session.md @@ -0,0 +1,4 @@ +# Session + +::: linkml_map.session.Session + diff --git a/docs/api/transformer.md b/docs/api/transformer.md new file mode 100644 index 0000000..7612565 --- /dev/null +++ b/docs/api/transformer.md @@ -0,0 +1,10 @@ +# Transformer Package + +## Transformer (Base Class) + +::: linkml_map.transformer.transformer.Transformer + +## ObjectTransformer + +::: linkml_map.transformer.object_transformer.ObjectTransformer + diff --git a/docs/examples/MetamodelMapping.ipynb b/docs/examples/MetamodelMapping.ipynb new file mode 100644 index 0000000..2518ea5 --- /dev/null +++ b/docs/examples/MetamodelMapping.ipynb @@ -0,0 +1,385 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# LinkML Metamodel Mappings\n", + "\n", + "The primary use case of LinkML is to map *data* to *data*. However, because the LinkML metamodel is\n", + "expressed as a LinkML schema, it is possible to map to and from the metamodel itself.\n", + "\n", + "__NOTE__ this workflow is not yet fully matured, and is subject to change." + ], + "metadata": { + "collapsed": false + }, + "id": "20a69830e031dd42" + }, + { + "cell_type": "markdown", + "source": [ + "## Creation of ad-hoc metamodel\n", + "\n", + "Let's assume that we have data represented using models conforming to an ad-hoc metamodel with core constructs: `Schema`, `Table`, and `Column`. We can create a LinkML schema that represents this metamodel as follows:" + ], + "metadata": { + "collapsed": false + }, + "id": "926150383baeb0f1" + }, + { + "cell_type": "code", + "execution_count": 1, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name: test-schema\n", + "id: http://example.org/test-schema\n", + "default_prefix: http://example.org/test-schema/\n", + "classes:\n", + " Schema:\n", + " attributes:\n", + " id:\n", + " description: The name of the schema\n", + " required: true\n", + " tables:\n", + " multivalued: true\n", + " range: Table\n", + " inlined_as_list: true\n", + " tree_root: true\n", + " Table:\n", + " attributes:\n", + " id:\n", + " description: The name of the table\n", + " required: true\n", + " columns:\n", + " multivalued: true\n", + " range: Column\n", + " inlined_as_list: true\n", + " Column:\n", + " attributes:\n", + " id:\n", + " description: The name of the column\n", + " required: true\n", + " primary_key:\n", + " range: boolean\n", + " datatype:\n", + " range: string\n", + "prefixes: {}\n" + ] + } + ], + "source": [ + "import yaml\n", + "from linkml_runtime.linkml_model import SlotDefinition\n", + "from linkml.utils.schema_builder import SchemaBuilder\n", + "\n", + "sb = SchemaBuilder()\n", + "sb.add_class(\"Schema\", \n", + " tree_root=True,\n", + " slots=[\n", + " SlotDefinition(\"id\", required=True, description=\"The name of the schema\"),\n", + " SlotDefinition(\"tables\", range=\"Table\", multivalued=True, inlined_as_list=True),\n", + " ],\n", + " use_attributes=True,\n", + " )\n", + "sb.add_class(\"Table\",\n", + " slots=[\n", + " SlotDefinition(\"id\", required=True, description=\"The name of the table\"),\n", + " SlotDefinition(\"columns\", range=\"Column\", multivalued=True, inlined_as_list=True),\n", + " ],\n", + " use_attributes=True,\n", + " )\n", + "sb.add_class(\"Column\",\n", + " slots=[\n", + " SlotDefinition(\"id\", required=True, description=\"The name of the column\"),\n", + " SlotDefinition(\"primary_key\", range=\"boolean\"),\n", + " SlotDefinition(\"datatype\", range=\"string\"),\n", + " ],\n", + " use_attributes=True,\n", + " )\n", + "\n", + "my_metamodel = sb.as_dict()\n", + "print(yaml.dump(sb.as_dict(), sort_keys=False))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:26.923272Z", + "start_time": "2024-04-11T02:15:26.737620Z" + } + }, + "id": "569394bf0a0aa7c4" + }, + { + "cell_type": "markdown", + "source": [ + "## Example schema conforming to ad-hoc metamodel\n", + "\n", + "Now we'll make an example schema that conforms to this metamodel; this will be a fairly boring schema with a single table `Person` with three columns: `id`, `name`, and `description`:" + ], + "metadata": { + "collapsed": false + }, + "id": "504e5e995a56d9d" + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "my_schema = {\n", + " \"id\": \"my_schema\",\n", + " \"tables\": [\n", + " {\n", + " \"id\": \"Person\",\n", + " \"columns\": [\n", + " {\n", + " \"id\": \"id\",\n", + " \"primary_key\": True,\n", + " \"datatype\": \"integer\"\n", + " },\n", + " {\n", + " \"id\": \"name\",\n", + " \"datatype\": \"string\"\n", + " },\n", + " {\n", + " \"id\": \"description\",\n", + " \"datatype\": \"string\"\n", + " }\n", + " ]\n", + " },\n", + " ]\n", + "}" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:26.927278Z", + "start_time": "2024-04-11T02:15:26.925061Z" + } + }, + "id": "2412c7508be85763" + }, + { + "cell_type": "markdown", + "source": [ + "## Mapping to LinkML metamodel\n", + "\n", + "Now we'll create mappings from the ad-hoc metamodel to the LinkML metamodel, where **Table** maps to a LinkML **ClassDefinition**, **Column** maps to a LinkML **SlotDefinition*." + ], + "metadata": { + "collapsed": false + }, + "id": "a97465ad75c14ab9" + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [], + "source": [ + "metamap = {\n", + " \"class_derivations\": {\n", + " \"SchemaDefinition\": {\n", + " \"populated_from\": \"Schema\",\n", + " \"slot_derivations\": {\n", + " \"name\": {\n", + " \"populated_from\": \"id\",\n", + " },\n", + " \"id\": {\n", + " \"expr\": \"'https://example.org/' + id\",\n", + " },\n", + " \"classes\": {\n", + " \"populated_from\": \"tables\",\n", + " \"dictionary_key\": \"name\",\n", + " \"cast_collection_as\": \"MultiValuedDict\",\n", + " },\n", + " }\n", + " },\n", + " \"ClassDefinition\": {\n", + " \"populated_from\": \"Table\",\n", + " \"slot_derivations\": {\n", + " \"name\": {\n", + " \"populated_from\": \"id\",\n", + " },\n", + " \"attributes\": {\n", + " \"populated_from\": \"columns\",\n", + " \"dictionary_key\": \"name\",\n", + " \"cast_collection_as\": \"MultiValuedDict\",\n", + " },\n", + " }\n", + " },\n", + " \"SlotDefinition\": {\n", + " \"populated_from\": \"Column\",\n", + " \"slot_derivations\": {\n", + " \"name\": {\n", + " \"populated_from\": \"id\",\n", + " },\n", + " \"identifier\": {\n", + " \"populated_from\": \"primary_key\",\n", + " },\n", + " \"range\": {\n", + " \"populated_from\": \"datatype\",\n", + " },\n", + " },\n", + " },\n", + " }\n", + "}" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:26.930857Z", + "start_time": "2024-04-11T02:15:26.929165Z" + } + }, + "id": "781147edebbfeb9c" + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [], + "source": [ + "from linkml_map.session import Session\n", + "\n", + "session = Session()" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:27.366482Z", + "start_time": "2024-04-11T02:15:26.931843Z" + } + }, + "id": "df33c4db991ce4b3" + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [], + "source": [ + "session.set_source_schema(my_metamodel)\n", + "session.set_object_transformer(metamap)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:27.450810Z", + "start_time": "2024-04-11T02:15:27.369239Z" + } + }, + "id": "e5edb3e9efa49ed1" + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:linkml_map.transformer.object_transformer:Unexpected: my_schema for type Schema\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: Person for type Schema\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: id for type Schema\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: True for type boolean\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: integer for type string\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: name for type Schema\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: string for type string\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: description for type Schema\n", + "WARNING:linkml_map.transformer.object_transformer:Unexpected: string for type string\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range SlotDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n", + "WARNING:linkml_map.transformer.transformer:Unknown target range ClassDefinition\n" + ] + }, + { + "data": { + "text/plain": "{'name': 'my_schema',\n 'id': 'https://example.org/my_schema',\n 'classes': {'Person': {'attributes': {'id': {'identifier': True,\n 'range': 'integer'},\n 'name': {'identifier': None, 'range': 'string'},\n 'description': {'identifier': None, 'range': 'string'}}}}}" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "session.transform(my_schema)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:27.464442Z", + "start_time": "2024-04-11T02:15:27.453655Z" + } + }, + "id": "5fcae9c463c7146b" + }, + { + "cell_type": "markdown", + "source": [ + "## Customizing the LinkML model\n", + "\n", + "A different scenario is where you might want to customize the existing LinkML metamodel, in particular, adding additional\n", + "constraints. For example:\n", + "\n", + "- class and names MUST be alphanumeric with no spaces\n", + "- every element MUST have a definition\n", + "\n", + "**TODO**" + ], + "metadata": { + "collapsed": false + }, + "id": "917015b3f12eac2f" + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-04-11T02:15:27.470074Z", + "start_time": "2024-04-11T02:15:27.466371Z" + } + }, + "id": "87c714635c108ea8" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/examples/Tutorial-SQLCompiler.ipynb b/docs/examples/Tutorial-SQLCompiler.ipynb new file mode 100644 index 0000000..06eff30 --- /dev/null +++ b/docs/examples/Tutorial-SQLCompiler.ipynb @@ -0,0 +1,379 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# LinkML-Map tutorial: Compiling to SQL\n", + "\n", + "This tutorial walks through use of the SQL compiler" + ], + "metadata": { + "collapsed": false + }, + "id": "df75d53a3e91e573" + }, + { + "cell_type": "code", + "execution_count": 1, + "outputs": [], + "source": [ + "import yaml" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:30:02.090658Z", + "start_time": "2024-05-02T02:30:02.056825Z" + } + }, + "id": "63a064b31f623bdd" + }, + { + "cell_type": "markdown", + "source": [ + "## Creating an example schema\n", + "\n", + "We will use a LinkML SchemaBuilder object to progressively build up a schema, adding\n", + "additional features as we go.\n", + "\n", + "We'll start with a simple `Person` schema, with a few single valued scalar slots:" + ], + "metadata": { + "collapsed": false + }, + "id": "e2cbd6b8994905f6" + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "name: test-schema\n", + "id: http://example.org/test-schema\n", + "imports:\n", + "- linkml:types\n", + "prefixes:\n", + " linkml: https://w3id.org/linkml/\n", + " test_schema: http://example.org/test-schema/\n", + "default_prefix: test_schema\n", + "default_range: string\n", + "slots:\n", + " family_name:\n", + " range: string\n", + " given_name:\n", + " range: string\n", + " age_in_years:\n", + " range: integer\n", + " height_in_cm:\n", + " range: float\n", + "classes:\n", + " Person:\n", + " slots:\n", + " - family_name\n", + " - given_name\n", + " - age_in_years\n", + " - height_in_cm\n" + ] + } + ], + "source": [ + "from linkml.utils.schema_builder import SchemaBuilder\n", + "from linkml_runtime.linkml_model import SlotDefinition\n", + "\n", + "sb = SchemaBuilder()\n", + "sb.add_class(\"Person\", slots=[SlotDefinition(\"family_name\", range=\"string\"), \n", + " SlotDefinition(\"given_name\", range=\"string\"),\n", + " SlotDefinition(\"age_in_years\", range=\"integer\"),\n", + " SlotDefinition(\"height_in_cm\", range=\"float\"),\n", + " ])\n", + "sb.add_defaults()\n", + "print(yaml.dump(sb.as_dict(), sort_keys=False))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:30:02.502346Z", + "start_time": "2024-05-02T02:30:02.076600Z" + } + }, + "id": "ef2c60ef7fbcbe20" + }, + { + "cell_type": "markdown", + "source": [ + "## Creating a Transformer Session object\n", + "\n", + "We will use a `Session` object which conveniently wraps a number of different capabilities;\n", + "the first of these capabilities is to map (transform) data objects from one schema to another\n", + "(implicit) schema using a *transformer specification*).\n", + "\n", + "Our initial transformer specification will be a trivial isomorphic one that:\n", + "\n", + "- maps the `Person` class to an `Individual` class\n", + "- passes through `name` fields as-is\n", + "- renames measurement fields (`age_in_years` and `height_in_cm` to `age` and `height`)" + ], + "metadata": { + "collapsed": false + }, + "id": "d4228629dd7e2ef2" + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [], + "source": [ + "from linkml_map.session import Session\n", + "\n", + "session = Session()\n", + "session.set_source_schema(sb.as_dict())" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:30:08.124308Z", + "start_time": "2024-05-02T02:30:07.628565Z" + } + }, + "id": "a6257aa9e6ab021e" + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [], + "source": [ + "# Transformer specification (in YAML)\n", + "session.set_object_transformer(\"\"\"\n", + "class_derivations:\n", + " Individual:\n", + " populated_from: Person\n", + " slot_derivations:\n", + " family_name:\n", + " populated_from: family_name\n", + " given_name:\n", + " populated_from: given_name\n", + " age:\n", + " populated_from: age_in_years\n", + " height:\n", + " populated_from: height_in_cm\n", + "\"\"\")" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:30:09.067897Z", + "start_time": "2024-05-02T02:30:08.979545Z" + } + }, + "id": "47b95e209790b423" + }, + { + "cell_type": "markdown", + "source": [ + "## Compiling target schema to SQL INSERTs\n", + "\n", + "The LinkML-Map framework can infer the target schema from the mapping.\n", + "We will take the inferred schema and write SQL INSERT statements for it.\n" + ], + "metadata": { + "collapsed": false + }, + "id": "85bf0dfa91d9003" + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [], + "source": [ + "from linkml_map.compiler.sql_compiler import SQLCompiler\n", + "\n", + "compiler = SQLCompiler(source_schemaview=session.source_schemaview)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:34:48.555908Z", + "start_time": "2024-05-02T02:34:48.549282Z" + } + }, + "id": "f1538dfa61775402" + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CREATE TABLE IF NOT EXISTS Individual (\n", + " family_name TEXT,\n", + " given_name TEXT,\n", + " age INTEGER,\n", + " height REAL\n", + ");\n" + ] + } + ], + "source": [ + "print(compiler.create_target_ddl(session.transformer_specification))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:35:03.185958Z", + "start_time": "2024-05-02T02:35:03.175807Z" + } + }, + "id": "f5de99c1cd54eae4" + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CREATE TABLE IF NOT EXISTS Person (\n", + " family_name TEXT,\n", + " given_name TEXT,\n", + " age_in_years INTEGER,\n", + " height_in_cm REAL\n", + ");\n" + ] + } + ], + "source": [ + "print(compiler.create_ddl(session.source_schemaview))" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:35:42.555450Z", + "start_time": "2024-05-02T02:35:42.550999Z" + } + }, + "id": "d776b301cdd1e079" + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INSERT INTO Individual SELECT \n", + " family_name AS family_name, \n", + " given_name AS given_name, \n", + " age AS age_in_years, \n", + " height AS height_in_cm FROM Individual;\n" + ] + } + ], + "source": [ + "compiled = compiler.compile(session.transformer_specification)\n", + "print(compiled.serialization)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:35:43.059893Z", + "start_time": "2024-05-02T02:35:43.057856Z" + } + }, + "id": "95b6adb322799f1f" + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CREATE TABLE IF NOT EXISTS Individual \n", + " family_name AS family_name, \n", + " given_name AS given_name, \n", + " age AS age_in_years, \n", + " height AS height_in_cm); FROM Individual;\n" + ] + } + ], + "source": [ + "compiler.new_table_when_transforming = True\n", + "compiled = compiler.compile(session.transformer_specification)\n", + "print(compiled.serialization)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-05-02T02:36:33.889820Z", + "start_time": "2024-05-02T02:36:33.873095Z" + } + }, + "id": "c993b563f59d8fe1" + }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + }, + "id": "8313d6acb588178e" + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [], + "source": [ + "import duckdb" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-22T17:13:13.511531Z", + "start_time": "2024-03-22T17:13:10.763461Z" + } + }, + "id": "1c623cdc3c1cfbca" + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "con = duckdb.connect(database=':memory:')\n" + ], + "metadata": { + "collapsed": false + }, + "id": "564d2bd8387d7c77" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/src/docs/examples/Tutorial.ipynb b/docs/examples/Tutorial.ipynb similarity index 100% rename from src/docs/examples/Tutorial.ipynb rename to docs/examples/Tutorial.ipynb diff --git a/docs/schema/AliasedClass.md b/docs/schema/AliasedClass.md new file mode 100644 index 0000000..913f76a --- /dev/null +++ b/docs/schema/AliasedClass.md @@ -0,0 +1,149 @@ + + +# Class: AliasedClass + + +_alias-class key value pairs for classes_ + + + + + +URI: [linkmltr:AliasedClass](https://w3id.org/linkml/transformer/AliasedClass) + + + + +```mermaid + classDiagram + class AliasedClass + AliasedClass : alias + + AliasedClass --> None : alias + + AliasedClass : class_named + + AliasedClass --> None : class_named + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [alias](alias.md) | 0..1
[String](String.md) | name of the class to be aliased | direct | +| [class_named](class_named.md) | 0..1
[String](String.md) | local alias for the class | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [ClassDerivation](ClassDerivation.md) | [joins](joins.md) | range | [AliasedClass](AliasedClass.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:AliasedClass | +| native | linkmltr:AliasedClass | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: AliasedClass +description: alias-class key value pairs for classes +from_schema: https://w3id.org/linkml/transformer +attributes: + alias: + name: alias + description: name of the class to be aliased + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + domain_of: + - AliasedClass + required: true + class_named: + name: class_named + description: local alias for the class + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - AliasedClass + +``` +
+ +### Induced + +
+```yaml +name: AliasedClass +description: alias-class key value pairs for classes +from_schema: https://w3id.org/linkml/transformer +attributes: + alias: + name: alias + description: name of the class to be aliased + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: alias + owner: AliasedClass + domain_of: + - AliasedClass + required: true + class_named: + name: class_named + description: local alias for the class + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: class_named + owner: AliasedClass + domain_of: + - AliasedClass + +``` +
\ No newline at end of file diff --git a/docs/schema/Any.md b/docs/schema/Any.md new file mode 100644 index 0000000..ec7dc70 --- /dev/null +++ b/docs/schema/Any.md @@ -0,0 +1,105 @@ + + +# Class: Any + + + +URI: [linkml:Any](https://w3id.org/linkml/Any) + + + + +```mermaid + classDiagram + class Any + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [ElementDerivation](ElementDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [ClassDerivation](ClassDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [SlotDerivation](SlotDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [EnumDerivation](EnumDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [PrefixDerivation](PrefixDerivation.md) | [overrides](overrides.md) | range | [Any](Any.md) | +| [KeyVal](KeyVal.md) | [value](value.md) | range | [Any](Any.md) | +| [CopyDirective](CopyDirective.md) | [exclude](exclude.md) | range | [Any](Any.md) | +| [CopyDirective](CopyDirective.md) | [include](include.md) | range | [Any](Any.md) | +| [CopyDirective](CopyDirective.md) | [add](add.md) | range | [Any](Any.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkml:Any | +| native | linkmltr:Any | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: Any +from_schema: https://w3id.org/linkml/transformer +class_uri: linkml:Any + +``` +
+ +### Induced + +
+```yaml +name: Any +from_schema: https://w3id.org/linkml/transformer +class_uri: linkml:Any + +``` +
\ No newline at end of file diff --git a/docs/schema/Boolean.md b/docs/schema/Boolean.md new file mode 100644 index 0000000..8518d32 --- /dev/null +++ b/docs/schema/Boolean.md @@ -0,0 +1,39 @@ +# Type: Boolean + + + + +_A binary (true or false) value_ + + + +URI: [xsd:boolean](http://www.w3.org/2001/XMLSchema#boolean) + +* [base](https://w3id.org/linkml/base): Bool + +* [uri](https://w3id.org/linkml/uri): xsd:boolean + +* [repr](https://w3id.org/linkml/repr): bool + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/ClassDerivation.md b/docs/schema/ClassDerivation.md new file mode 100644 index 0000000..ad7f10a --- /dev/null +++ b/docs/schema/ClassDerivation.md @@ -0,0 +1,418 @@ + + +# Class: ClassDerivation + + +_A specification of how to derive a target class from a source class._ + + + + + +URI: [linkmltr:ClassDerivation](https://w3id.org/linkml/transformer/ClassDerivation) + + + + +```mermaid + classDiagram + class ClassDerivation + ElementDerivation <|-- ClassDerivation + + ClassDerivation : comments + + ClassDerivation : copy_directives + + ClassDerivation --> CopyDirective : copy_directives + + ClassDerivation : description + + ClassDerivation --> None : description + + ClassDerivation : expression_to_expression_mappings + + ClassDerivation --> KeyVal : expression_to_expression_mappings + + ClassDerivation : expression_to_value_mappings + + ClassDerivation --> KeyVal : expression_to_value_mappings + + ClassDerivation : implements + + ClassDerivation : is_a + + ClassDerivation --> ElementDerivation : is_a + + ClassDerivation : joins + + ClassDerivation --> AliasedClass : joins + + ClassDerivation : mirror_source + + ClassDerivation : mixins + + ClassDerivation --> ElementDerivation : mixins + + ClassDerivation : name + + ClassDerivation --> None : name + + ClassDerivation : overrides + + ClassDerivation --> Any : overrides + + ClassDerivation : populated_from + + ClassDerivation : slot_derivations + + ClassDerivation --> SlotDerivation : slot_derivations + + ClassDerivation : sources + + ClassDerivation : value_mappings + + ClassDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * [ElementDerivation](ElementDerivation.md) + * **ClassDerivation** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [populated_from](populated_from.md) | 0..1
[ClassReference](ClassReference.md) | Name of the class in the source schema | direct | +| [sources](sources.md) | 0..*
[ClassReference](ClassReference.md) | | direct | +| [joins](joins.md) | 0..*
[AliasedClass](AliasedClass.md) | Additional classes to be joined to derive instances of the target class | direct | +| [slot_derivations](slot_derivations.md) | 0..*
[SlotDerivation](SlotDerivation.md) | | direct | +| [name](name.md) | 1..1
[String](String.md) | Name of the element in the target schema | [ElementDerivation](ElementDerivation.md) | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | [ElementDerivation](ElementDerivation.md) | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | [class_derivations](class_derivations.md) | range | [ClassDerivation](ClassDerivation.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:ClassDerivation | +| native | linkmltr:ClassDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: ClassDerivation +description: A specification of how to derive a target class from a source class. +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + populated_from: + name: populated_from + description: Name of the class in the source schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: ClassReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: ClassReference + joins: + name: joins + description: Additional classes to be joined to derive instances of the target + class + comments: + - not yet implemented + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ClassDerivation + range: AliasedClass + inlined: true + slot_derivations: + name: slot_derivations + from_schema: https://w3id.org/linkml/transformer + multivalued: true + domain_of: + - TransformationSpecification + - ClassDerivation + range: SlotDerivation + inlined: true + +``` +
+ +### Induced + +
+```yaml +name: ClassDerivation +description: A specification of how to derive a target class from a source class. +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + populated_from: + name: populated_from + description: Name of the class in the source schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: populated_from + owner: ClassDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: ClassReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: sources + owner: ClassDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: ClassReference + joins: + name: joins + description: Additional classes to be joined to derive instances of the target + class + comments: + - not yet implemented + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: joins + owner: ClassDerivation + domain_of: + - ClassDerivation + range: AliasedClass + inlined: true + slot_derivations: + name: slot_derivations + from_schema: https://w3id.org/linkml/transformer + multivalued: true + alias: slot_derivations + owner: ClassDerivation + domain_of: + - TransformationSpecification + - ClassDerivation + range: SlotDerivation + inlined: true + name: + name: name + description: Name of the element in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: name + owner: ClassDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + required: true + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: ClassDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: ClassDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: ClassDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: ClassDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: ClassDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: ClassDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: ClassDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: ClassDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: ClassDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: ClassDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: ClassDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/ClassReference.md b/docs/schema/ClassReference.md new file mode 100644 index 0000000..c1ca2fb --- /dev/null +++ b/docs/schema/ClassReference.md @@ -0,0 +1,34 @@ +# Type: ClassReference + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + + +* [typeof](https://w3id.org/linkml/typeof): string + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/CollectionType.md b/docs/schema/CollectionType.md new file mode 100644 index 0000000..53da9a6 --- /dev/null +++ b/docs/schema/CollectionType.md @@ -0,0 +1,64 @@ +# Enum: CollectionType + + + +URI: [CollectionType](CollectionType.md) + +## Permissible Values + +| Value | Meaning | Description | +| --- | --- | --- | +| SingleValued | None | | +| MultiValued | None | | +| MultiValuedList | None | | +| MultiValuedDict | None | | + + + + +## Slots + +| Name | Description | +| --- | --- | +| [cast_collection_as](cast_collection_as.md) | | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: CollectionType +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +permissible_values: + SingleValued: + text: SingleValued + MultiValued: + text: MultiValued + MultiValuedList: + text: MultiValuedList + MultiValuedDict: + text: MultiValuedDict + +``` +
diff --git a/docs/schema/CopyDirective.md b/docs/schema/CopyDirective.md new file mode 100644 index 0000000..0d5d97e --- /dev/null +++ b/docs/schema/CopyDirective.md @@ -0,0 +1,236 @@ + + +# Class: CopyDirective + + +_Instructs a Schema Mapper in how to map to a target schema. Not used for data transformation._ + + + + + +URI: [linkmltr:CopyDirective](https://w3id.org/linkml/transformer/CopyDirective) + + + + +```mermaid + classDiagram + class CopyDirective + CopyDirective : add + + CopyDirective --> Any : add + + CopyDirective : copy_all + + CopyDirective : element_name + + CopyDirective --> None : element_name + + CopyDirective : exclude + + CopyDirective --> Any : exclude + + CopyDirective : exclude_all + + CopyDirective : include + + CopyDirective --> Any : include + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [element_name](element_name.md) | 0..1
[String](String.md) | | direct | +| [copy_all](copy_all.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [exclude_all](exclude_all.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [exclude](exclude.md) | 0..1
[Any](Any.md) | | direct | +| [include](include.md) | 0..1
[Any](Any.md) | | direct | +| [add](add.md) | 0..1
[Any](Any.md) | | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [ElementDerivation](ElementDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | +| [ClassDerivation](ClassDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | +| [SlotDerivation](SlotDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | +| [EnumDerivation](EnumDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | +| [PrefixDerivation](PrefixDerivation.md) | [copy_directives](copy_directives.md) | range | [CopyDirective](CopyDirective.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:CopyDirective | +| native | linkmltr:CopyDirective | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: CopyDirective +description: Instructs a Schema Mapper in how to map to a target schema. Not used + for data transformation. +from_schema: https://w3id.org/linkml/transformer +status: testing +attributes: + element_name: + name: element_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + domain_of: + - CopyDirective + required: true + copy_all: + name: copy_all + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - CopyDirective + range: boolean + exclude_all: + name: exclude_all + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - CopyDirective + range: boolean + exclude: + name: exclude + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - CopyDirective + range: Any + include: + name: include + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - CopyDirective + range: Any + add: + name: add + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - CopyDirective + range: Any + +``` +
+ +### Induced + +
+```yaml +name: CopyDirective +description: Instructs a Schema Mapper in how to map to a target schema. Not used + for data transformation. +from_schema: https://w3id.org/linkml/transformer +status: testing +attributes: + element_name: + name: element_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: element_name + owner: CopyDirective + domain_of: + - CopyDirective + required: true + copy_all: + name: copy_all + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: copy_all + owner: CopyDirective + domain_of: + - CopyDirective + range: boolean + exclude_all: + name: exclude_all + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: exclude_all + owner: CopyDirective + domain_of: + - CopyDirective + range: boolean + exclude: + name: exclude + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: exclude + owner: CopyDirective + domain_of: + - CopyDirective + range: Any + include: + name: include + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: include + owner: CopyDirective + domain_of: + - CopyDirective + range: Any + add: + name: add + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: add + owner: CopyDirective + domain_of: + - CopyDirective + range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/Curie.md b/docs/schema/Curie.md new file mode 100644 index 0000000..a99f0ef --- /dev/null +++ b/docs/schema/Curie.md @@ -0,0 +1,44 @@ +# Type: Curie + + + + +_a compact URI_ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): Curie + +* [uri](https://w3id.org/linkml/uri): xsd:string + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Comments + +* in RDF serializations this MUST be expanded to a URI +* in non-RDF serializations MAY be serialized as the compact representation + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Date.md b/docs/schema/Date.md new file mode 100644 index 0000000..5adf870 --- /dev/null +++ b/docs/schema/Date.md @@ -0,0 +1,39 @@ +# Type: Date + + + + +_a date (year, month and day) in an idealized calendar_ + + + +URI: [xsd:date](http://www.w3.org/2001/XMLSchema#date) + +* [base](https://w3id.org/linkml/base): XSDDate + +* [uri](https://w3id.org/linkml/uri): xsd:date + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/DateOrDatetime.md b/docs/schema/DateOrDatetime.md new file mode 100644 index 0000000..4341277 --- /dev/null +++ b/docs/schema/DateOrDatetime.md @@ -0,0 +1,39 @@ +# Type: DateOrDatetime + + + + +_Either a date or a datetime_ + + + +URI: [linkml:DateOrDatetime](https://w3id.org/linkml/DateOrDatetime) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): linkml:DateOrDatetime + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Datetime.md b/docs/schema/Datetime.md new file mode 100644 index 0000000..3b0dcdf --- /dev/null +++ b/docs/schema/Datetime.md @@ -0,0 +1,39 @@ +# Type: Datetime + + + + +_The combination of a date and time_ + + + +URI: [xsd:dateTime](http://www.w3.org/2001/XMLSchema#dateTime) + +* [base](https://w3id.org/linkml/base): XSDDateTime + +* [uri](https://w3id.org/linkml/uri): xsd:dateTime + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Decimal.md b/docs/schema/Decimal.md new file mode 100644 index 0000000..242ae91 --- /dev/null +++ b/docs/schema/Decimal.md @@ -0,0 +1,38 @@ +# Type: Decimal + + + + +_A real number with arbitrary precision that conforms to the xsd:decimal specification_ + + + +URI: [xsd:decimal](http://www.w3.org/2001/XMLSchema#decimal) + +* [base](https://w3id.org/linkml/base): Decimal + +* [uri](https://w3id.org/linkml/uri): xsd:decimal + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Double.md b/docs/schema/Double.md new file mode 100644 index 0000000..bdae3d4 --- /dev/null +++ b/docs/schema/Double.md @@ -0,0 +1,38 @@ +# Type: Double + + + + +_A real number that conforms to the xsd:double specification_ + + + +URI: [xsd:double](http://www.w3.org/2001/XMLSchema#double) + +* [base](https://w3id.org/linkml/base): float + +* [uri](https://w3id.org/linkml/uri): xsd:double + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/ElementDerivation.md b/docs/schema/ElementDerivation.md new file mode 100644 index 0000000..952b4d4 --- /dev/null +++ b/docs/schema/ElementDerivation.md @@ -0,0 +1,419 @@ + + +# Class: ElementDerivation + + +_An abstract grouping for classes that provide a specification of how to derive a target element from a source element._ + + + + +* __NOTE__: this is an abstract class and should not be instantiated directly + + +URI: [linkmltr:ElementDerivation](https://w3id.org/linkml/transformer/ElementDerivation) + + + + +```mermaid + classDiagram + class ElementDerivation + SpecificationComponent <|-- ElementDerivation + + + ElementDerivation <|-- ClassDerivation + ElementDerivation <|-- SlotDerivation + ElementDerivation <|-- EnumDerivation + ElementDerivation <|-- PermissibleValueDerivation + ElementDerivation <|-- PrefixDerivation + + + ElementDerivation : comments + + ElementDerivation : copy_directives + + ElementDerivation --> CopyDirective : copy_directives + + ElementDerivation : description + + ElementDerivation --> None : description + + ElementDerivation : expression_to_expression_mappings + + ElementDerivation --> KeyVal : expression_to_expression_mappings + + ElementDerivation : expression_to_value_mappings + + ElementDerivation --> KeyVal : expression_to_value_mappings + + ElementDerivation : implements + + ElementDerivation : is_a + + ElementDerivation --> ElementDerivation : is_a + + ElementDerivation : mirror_source + + ElementDerivation : mixins + + ElementDerivation --> ElementDerivation : mixins + + ElementDerivation : name + + ElementDerivation --> None : name + + ElementDerivation : overrides + + ElementDerivation --> Any : overrides + + ElementDerivation : value_mappings + + ElementDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * **ElementDerivation** + * [ClassDerivation](ClassDerivation.md) + * [SlotDerivation](SlotDerivation.md) + * [EnumDerivation](EnumDerivation.md) + * [PermissibleValueDerivation](PermissibleValueDerivation.md) + * [PrefixDerivation](PrefixDerivation.md) + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [name](name.md) | 0..1
[String](String.md) | Name of the element in the target schema | direct | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | direct | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | direct | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | direct | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | direct | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | direct | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | direct | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | direct | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [ElementDerivation](ElementDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [ElementDerivation](ElementDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | +| [ClassDerivation](ClassDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [ClassDerivation](ClassDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | +| [SlotDerivation](SlotDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [SlotDerivation](SlotDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | +| [EnumDerivation](EnumDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [EnumDerivation](EnumDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | +| [PrefixDerivation](PrefixDerivation.md) | [is_a](is_a.md) | range | [ElementDerivation](ElementDerivation.md) | +| [PrefixDerivation](PrefixDerivation.md) | [mixins](mixins.md) | range | [ElementDerivation](ElementDerivation.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:ElementDerivation | +| native | linkmltr:ElementDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: ElementDerivation +description: An abstract grouping for classes that provide a specification of how + to derive a target element from a source element. +from_schema: https://w3id.org/linkml/transformer +is_a: SpecificationComponent +abstract: true +attributes: + name: + name: name + description: Name of the element in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - ElementDerivation + range: boolean + +``` +
+ +### Induced + +
+```yaml +name: ElementDerivation +description: An abstract grouping for classes that provide a specification of how + to derive a target element from a source element. +from_schema: https://w3id.org/linkml/transformer +is_a: SpecificationComponent +abstract: true +attributes: + name: + name: name + description: Name of the element in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: name + owner: ElementDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: ElementDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: ElementDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: ElementDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: ElementDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: ElementDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: ElementDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: ElementDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: ElementDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: ElementDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: ElementDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: ElementDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/EnumDerivation.md b/docs/schema/EnumDerivation.md new file mode 100644 index 0000000..86d9015 --- /dev/null +++ b/docs/schema/EnumDerivation.md @@ -0,0 +1,442 @@ + + +# Class: EnumDerivation + + +_A specification of how to derive the value of a target enum from a source enum_ + + + + + +URI: [linkmltr:EnumDerivation](https://w3id.org/linkml/transformer/EnumDerivation) + + + + +```mermaid + classDiagram + class EnumDerivation + ElementDerivation <|-- EnumDerivation + + EnumDerivation : comments + + EnumDerivation : copy_directives + + EnumDerivation --> CopyDirective : copy_directives + + EnumDerivation : description + + EnumDerivation --> None : description + + EnumDerivation : expr + + EnumDerivation : expression_to_expression_mappings + + EnumDerivation --> KeyVal : expression_to_expression_mappings + + EnumDerivation : expression_to_value_mappings + + EnumDerivation --> KeyVal : expression_to_value_mappings + + EnumDerivation : hide + + EnumDerivation : implements + + EnumDerivation : is_a + + EnumDerivation --> ElementDerivation : is_a + + EnumDerivation : mirror_source + + EnumDerivation : mixins + + EnumDerivation --> ElementDerivation : mixins + + EnumDerivation : name + + EnumDerivation --> None : name + + EnumDerivation : overrides + + EnumDerivation --> Any : overrides + + EnumDerivation : permissible_value_derivations + + EnumDerivation --> PermissibleValueDerivation : permissible_value_derivations + + EnumDerivation : populated_from + + EnumDerivation : sources + + EnumDerivation : value_mappings + + EnumDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * [ElementDerivation](ElementDerivation.md) + * **EnumDerivation** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [name](name.md) | 0..1
[String](String.md) | Target enum name | direct | +| [populated_from](populated_from.md) | 0..1
[EnumReference](EnumReference.md) | Source enum name | direct | +| [sources](sources.md) | 0..*
[EnumReference](EnumReference.md) | | direct | +| [expr](expr.md) | 0..1
[String](String.md) | An expression to be evaluated on the source object to derive the target slot | direct | +| [hide](hide.md) | 0..1
[Boolean](Boolean.md) | True if this is suppressed | direct | +| [permissible_value_derivations](permissible_value_derivations.md) | 0..*
[PermissibleValueDerivation](PermissibleValueDerivation.md) | Instructions on how to derive a set of PVs in the target schema | direct | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | [ElementDerivation](ElementDerivation.md) | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | [enum_derivations](enum_derivations.md) | range | [EnumDerivation](EnumDerivation.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:EnumDerivation | +| native | linkmltr:EnumDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: EnumDerivation +description: A specification of how to derive the value of a target enum from a source + enum +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target enum name + from_schema: https://w3id.org/linkml/transformer + key: true + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + populated_from: + name: populated_from + description: Source enum name + from_schema: https://w3id.org/linkml/transformer + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: EnumReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: EnumReference + expr: + name: expr + description: An expression to be evaluated on the source object to derive the + target slot. Should be specified using the LinkML expression language. + from_schema: https://w3id.org/linkml/transformer + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + hide: + name: hide + description: True if this is suppressed + from_schema: https://w3id.org/linkml/transformer + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + permissible_value_derivations: + name: permissible_value_derivations + description: Instructions on how to derive a set of PVs in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - EnumDerivation + range: PermissibleValueDerivation + inlined: true + +``` +
+ +### Induced + +
+```yaml +name: EnumDerivation +description: A specification of how to derive the value of a target enum from a source + enum +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target enum name + from_schema: https://w3id.org/linkml/transformer + key: true + alias: name + owner: EnumDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + populated_from: + name: populated_from + description: Source enum name + from_schema: https://w3id.org/linkml/transformer + alias: populated_from + owner: EnumDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: EnumReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + alias: sources + owner: EnumDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: EnumReference + expr: + name: expr + description: An expression to be evaluated on the source object to derive the + target slot. Should be specified using the LinkML expression language. + from_schema: https://w3id.org/linkml/transformer + alias: expr + owner: EnumDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + hide: + name: hide + description: True if this is suppressed + from_schema: https://w3id.org/linkml/transformer + alias: hide + owner: EnumDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + permissible_value_derivations: + name: permissible_value_derivations + description: Instructions on how to derive a set of PVs in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: permissible_value_derivations + owner: EnumDerivation + domain_of: + - EnumDerivation + range: PermissibleValueDerivation + inlined: true + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: EnumDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: EnumDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: EnumDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: EnumDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: EnumDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: EnumDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: EnumDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: EnumDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: EnumDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: EnumDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: EnumDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/EnumReference.md b/docs/schema/EnumReference.md new file mode 100644 index 0000000..78acdca --- /dev/null +++ b/docs/schema/EnumReference.md @@ -0,0 +1,34 @@ +# Type: EnumReference + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + + +* [typeof](https://w3id.org/linkml/typeof): string + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Float.md b/docs/schema/Float.md new file mode 100644 index 0000000..47af3cb --- /dev/null +++ b/docs/schema/Float.md @@ -0,0 +1,38 @@ +# Type: Float + + + + +_A real number that conforms to the xsd:float specification_ + + + +URI: [xsd:float](http://www.w3.org/2001/XMLSchema#float) + +* [base](https://w3id.org/linkml/base): float + +* [uri](https://w3id.org/linkml/uri): xsd:float + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Integer.md b/docs/schema/Integer.md new file mode 100644 index 0000000..40483e6 --- /dev/null +++ b/docs/schema/Integer.md @@ -0,0 +1,38 @@ +# Type: Integer + + + + +_An integer_ + + + +URI: [xsd:integer](http://www.w3.org/2001/XMLSchema#integer) + +* [base](https://w3id.org/linkml/base): int + +* [uri](https://w3id.org/linkml/uri): xsd:integer + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Inverse.md b/docs/schema/Inverse.md new file mode 100644 index 0000000..4039b96 --- /dev/null +++ b/docs/schema/Inverse.md @@ -0,0 +1,153 @@ + + +# Class: Inverse + + +_Used for back references in mapping to relational model_ + + + + + +URI: [linkmltr:Inverse](https://w3id.org/linkml/transformer/Inverse) + + + + +```mermaid + classDiagram + class Inverse + Inverse : class_name + + Inverse --> None : class_name + + Inverse : slot_name + + Inverse --> None : slot_name + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [slot_name](slot_name.md) | 0..1
[String](String.md) | | direct | +| [class_name](class_name.md) | 0..1
[String](String.md) | | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | [inverse_of](inverse_of.md) | range | [Inverse](Inverse.md) | + + + + +## Aliases + + +* backref +* back_references + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:Inverse | +| native | linkmltr:Inverse | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: Inverse +description: Used for back references in mapping to relational model +from_schema: https://w3id.org/linkml/transformer +aliases: +- backref +- back_references +attributes: + slot_name: + name: slot_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - Inverse + class_name: + name: class_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - Inverse + +``` +
+ +### Induced + +
+```yaml +name: Inverse +description: Used for back references in mapping to relational model +from_schema: https://w3id.org/linkml/transformer +aliases: +- backref +- back_references +attributes: + slot_name: + name: slot_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: slot_name + owner: Inverse + domain_of: + - Inverse + class_name: + name: class_name + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: class_name + owner: Inverse + domain_of: + - Inverse + +``` +
\ No newline at end of file diff --git a/docs/schema/Jsonpath.md b/docs/schema/Jsonpath.md new file mode 100644 index 0000000..b5c3db6 --- /dev/null +++ b/docs/schema/Jsonpath.md @@ -0,0 +1,39 @@ +# Type: Jsonpath + + + + +_A string encoding a JSON Path. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded in tree form._ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Jsonpointer.md b/docs/schema/Jsonpointer.md new file mode 100644 index 0000000..ac6e805 --- /dev/null +++ b/docs/schema/Jsonpointer.md @@ -0,0 +1,39 @@ +# Type: Jsonpointer + + + + +_A string encoding a JSON Pointer. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to a valid object within the current instance document when encoded in tree form._ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/KeyVal.md b/docs/schema/KeyVal.md new file mode 100644 index 0000000..b09b2c6 --- /dev/null +++ b/docs/schema/KeyVal.md @@ -0,0 +1,158 @@ + + +# Class: KeyVal + + + +URI: [linkmltr:KeyVal](https://w3id.org/linkml/transformer/KeyVal) + + + + +```mermaid + classDiagram + class KeyVal + KeyVal : key + + KeyVal --> None : key + + KeyVal : value + + KeyVal --> Any : value + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [key](key.md) | 0..1
[String](String.md) | | direct | +| [value](value.md) | 0..1
[Any](Any.md) | | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | [prefixes](prefixes.md) | range | [KeyVal](KeyVal.md) | +| [ElementDerivation](ElementDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [ElementDerivation](ElementDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [ElementDerivation](ElementDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | +| [ClassDerivation](ClassDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [ClassDerivation](ClassDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [ClassDerivation](ClassDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | +| [SlotDerivation](SlotDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [SlotDerivation](SlotDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [SlotDerivation](SlotDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | +| [EnumDerivation](EnumDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [EnumDerivation](EnumDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [EnumDerivation](EnumDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PrefixDerivation](PrefixDerivation.md) | [value_mappings](value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PrefixDerivation](PrefixDerivation.md) | [expression_to_value_mappings](expression_to_value_mappings.md) | range | [KeyVal](KeyVal.md) | +| [PrefixDerivation](PrefixDerivation.md) | [expression_to_expression_mappings](expression_to_expression_mappings.md) | range | [KeyVal](KeyVal.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:KeyVal | +| native | linkmltr:KeyVal | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: KeyVal +from_schema: https://w3id.org/linkml/transformer +attributes: + key: + name: key + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + domain_of: + - KeyVal + required: true + value: + name: value + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - KeyVal + range: Any + +``` +
+ +### Induced + +
+```yaml +name: KeyVal +from_schema: https://w3id.org/linkml/transformer +attributes: + key: + name: key + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: key + owner: KeyVal + domain_of: + - KeyVal + required: true + value: + name: value + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: value + owner: KeyVal + domain_of: + - KeyVal + range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/Ncname.md b/docs/schema/Ncname.md new file mode 100644 index 0000000..4f46b0f --- /dev/null +++ b/docs/schema/Ncname.md @@ -0,0 +1,39 @@ +# Type: Ncname + + + + +_Prefix part of CURIE_ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): NCName + +* [uri](https://w3id.org/linkml/uri): xsd:string + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Nodeidentifier.md b/docs/schema/Nodeidentifier.md new file mode 100644 index 0000000..ab1e4c9 --- /dev/null +++ b/docs/schema/Nodeidentifier.md @@ -0,0 +1,39 @@ +# Type: Nodeidentifier + + + + +_A URI, CURIE or BNODE that represents a node in a model._ + + + +URI: [shex:nonLiteral](http://www.w3.org/ns/shex#nonLiteral) + +* [base](https://w3id.org/linkml/base): NodeIdentifier + +* [uri](https://w3id.org/linkml/uri): shex:nonLiteral + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Objectidentifier.md b/docs/schema/Objectidentifier.md new file mode 100644 index 0000000..1c2b304 --- /dev/null +++ b/docs/schema/Objectidentifier.md @@ -0,0 +1,43 @@ +# Type: Objectidentifier + + + + +_A URI or CURIE that represents an object in the model._ + + + +URI: [shex:iri](http://www.w3.org/ns/shex#iri) + +* [base](https://w3id.org/linkml/base): ElementIdentifier + +* [uri](https://w3id.org/linkml/uri): shex:iri + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Comments + +* Used for inheritance and type checking + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/PermissibleValueDerivation.md b/docs/schema/PermissibleValueDerivation.md new file mode 100644 index 0000000..97bb7d2 --- /dev/null +++ b/docs/schema/PermissibleValueDerivation.md @@ -0,0 +1,415 @@ + + +# Class: PermissibleValueDerivation + + +_A specification of how to derive the value of a PV from a source enum_ + + + + + +URI: [linkmltr:PermissibleValueDerivation](https://w3id.org/linkml/transformer/PermissibleValueDerivation) + + + + +```mermaid + classDiagram + class PermissibleValueDerivation + ElementDerivation <|-- PermissibleValueDerivation + + PermissibleValueDerivation : comments + + PermissibleValueDerivation : copy_directives + + PermissibleValueDerivation --> CopyDirective : copy_directives + + PermissibleValueDerivation : description + + PermissibleValueDerivation --> None : description + + PermissibleValueDerivation : expr + + PermissibleValueDerivation : expression_to_expression_mappings + + PermissibleValueDerivation --> KeyVal : expression_to_expression_mappings + + PermissibleValueDerivation : expression_to_value_mappings + + PermissibleValueDerivation --> KeyVal : expression_to_value_mappings + + PermissibleValueDerivation : hide + + PermissibleValueDerivation : implements + + PermissibleValueDerivation : is_a + + PermissibleValueDerivation --> ElementDerivation : is_a + + PermissibleValueDerivation : mirror_source + + PermissibleValueDerivation : mixins + + PermissibleValueDerivation --> ElementDerivation : mixins + + PermissibleValueDerivation : name + + PermissibleValueDerivation --> None : name + + PermissibleValueDerivation : overrides + + PermissibleValueDerivation --> Any : overrides + + PermissibleValueDerivation : populated_from + + PermissibleValueDerivation : sources + + PermissibleValueDerivation : value_mappings + + PermissibleValueDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * [ElementDerivation](ElementDerivation.md) + * **PermissibleValueDerivation** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [name](name.md) | 0..1
[String](String.md) | Target permissible value text | direct | +| [expr](expr.md) | 0..1
[String](String.md) | | direct | +| [populated_from](populated_from.md) | 0..1
[String](String.md) | Source permissible value | direct | +| [sources](sources.md) | 0..*
[String](String.md) | | direct | +| [hide](hide.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | [ElementDerivation](ElementDerivation.md) | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | [permissible_value_derivations](permissible_value_derivations.md) | range | [PermissibleValueDerivation](PermissibleValueDerivation.md) | + + + + + + +## TODOs + +* this is currently under-specified. We will need boolean combinators to express if-then-else + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:PermissibleValueDerivation | +| native | linkmltr:PermissibleValueDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: PermissibleValueDerivation +description: A specification of how to derive the value of a PV from a source enum +todos: +- this is currently under-specified. We will need boolean combinators to express if-then-else +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target permissible value text + from_schema: https://w3id.org/linkml/transformer + key: true + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + expr: + name: expr + from_schema: https://w3id.org/linkml/transformer + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + populated_from: + name: populated_from + description: Source permissible value + from_schema: https://w3id.org/linkml/transformer + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + hide: + name: hide + from_schema: https://w3id.org/linkml/transformer + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + +``` +
+ +### Induced + +
+```yaml +name: PermissibleValueDerivation +description: A specification of how to derive the value of a PV from a source enum +todos: +- this is currently under-specified. We will need boolean combinators to express if-then-else +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target permissible value text + from_schema: https://w3id.org/linkml/transformer + key: true + alias: name + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + expr: + name: expr + from_schema: https://w3id.org/linkml/transformer + alias: expr + owner: PermissibleValueDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + populated_from: + name: populated_from + description: Source permissible value + from_schema: https://w3id.org/linkml/transformer + alias: populated_from + owner: PermissibleValueDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + alias: sources + owner: PermissibleValueDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + hide: + name: hide + from_schema: https://w3id.org/linkml/transformer + alias: hide + owner: PermissibleValueDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: PermissibleValueDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: PermissibleValueDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: PermissibleValueDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: PermissibleValueDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/PrefixDerivation.md b/docs/schema/PrefixDerivation.md new file mode 100644 index 0000000..610ef2a --- /dev/null +++ b/docs/schema/PrefixDerivation.md @@ -0,0 +1,291 @@ + + +# Class: PrefixDerivation + + + +URI: [linkmltr:PrefixDerivation](https://w3id.org/linkml/transformer/PrefixDerivation) + + + + +```mermaid + classDiagram + class PrefixDerivation + ElementDerivation <|-- PrefixDerivation + + PrefixDerivation : comments + + PrefixDerivation : copy_directives + + PrefixDerivation --> CopyDirective : copy_directives + + PrefixDerivation : description + + PrefixDerivation --> None : description + + PrefixDerivation : expression_to_expression_mappings + + PrefixDerivation --> KeyVal : expression_to_expression_mappings + + PrefixDerivation : expression_to_value_mappings + + PrefixDerivation --> KeyVal : expression_to_value_mappings + + PrefixDerivation : implements + + PrefixDerivation : is_a + + PrefixDerivation --> ElementDerivation : is_a + + PrefixDerivation : mirror_source + + PrefixDerivation : mixins + + PrefixDerivation --> ElementDerivation : mixins + + PrefixDerivation : name + + PrefixDerivation --> None : name + + PrefixDerivation : overrides + + PrefixDerivation --> Any : overrides + + PrefixDerivation : value_mappings + + PrefixDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * [ElementDerivation](ElementDerivation.md) + * **PrefixDerivation** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [name](name.md) | 1..1
[String](String.md) | Name of the element in the target schema | [ElementDerivation](ElementDerivation.md) | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | [ElementDerivation](ElementDerivation.md) | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:PrefixDerivation | +| native | linkmltr:PrefixDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: PrefixDerivation +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation + +``` +
+ +### Induced + +
+```yaml +name: PrefixDerivation +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Name of the element in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + key: true + alias: name + owner: PrefixDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + required: true + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: PrefixDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: PrefixDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: PrefixDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: PrefixDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/SerializationSyntaxType.md b/docs/schema/SerializationSyntaxType.md new file mode 100644 index 0000000..17540d0 --- /dev/null +++ b/docs/schema/SerializationSyntaxType.md @@ -0,0 +1,61 @@ +# Enum: SerializationSyntaxType + + + +URI: [SerializationSyntaxType](SerializationSyntaxType.md) + +## Permissible Values + +| Value | Meaning | Description | +| --- | --- | --- | +| JSON | None | | +| YAML | None | | +| TURTLE | None | | + + + + +## Slots + +| Name | Description | +| --- | --- | +| [syntax](syntax.md) | | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: SerializationSyntaxType +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +permissible_values: + JSON: + text: JSON + YAML: + text: YAML + TURTLE: + text: TURTLE + +``` +
diff --git a/docs/schema/SlotDerivation.md b/docs/schema/SlotDerivation.md new file mode 100644 index 0000000..8d8c673 --- /dev/null +++ b/docs/schema/SlotDerivation.md @@ -0,0 +1,598 @@ + + +# Class: SlotDerivation + + +_A specification of how to derive the value of a target slot from a source slot_ + + + + + +URI: [linkmltr:SlotDerivation](https://w3id.org/linkml/transformer/SlotDerivation) + + + + +```mermaid + classDiagram + class SlotDerivation + ElementDerivation <|-- SlotDerivation + + SlotDerivation : cast_collection_as + + SlotDerivation --> CollectionType : cast_collection_as + + SlotDerivation : comments + + SlotDerivation : copy_directives + + SlotDerivation --> CopyDirective : copy_directives + + SlotDerivation : derived_from + + SlotDerivation : description + + SlotDerivation --> None : description + + SlotDerivation : dictionary_key + + SlotDerivation : expr + + SlotDerivation : expression_to_expression_mappings + + SlotDerivation --> KeyVal : expression_to_expression_mappings + + SlotDerivation : expression_to_value_mappings + + SlotDerivation --> KeyVal : expression_to_value_mappings + + SlotDerivation : hide + + SlotDerivation : implements + + SlotDerivation : inverse_of + + SlotDerivation --> Inverse : inverse_of + + SlotDerivation : is_a + + SlotDerivation --> ElementDerivation : is_a + + SlotDerivation : mirror_source + + SlotDerivation : mixins + + SlotDerivation --> ElementDerivation : mixins + + SlotDerivation : name + + SlotDerivation --> None : name + + SlotDerivation : overrides + + SlotDerivation --> Any : overrides + + SlotDerivation : populated_from + + SlotDerivation : range + + SlotDerivation : sources + + SlotDerivation : stringification + + SlotDerivation --> StringificationConfiguration : stringification + + SlotDerivation : type_designator + + SlotDerivation : unit_conversion + + SlotDerivation --> UnitConversionConfiguration : unit_conversion + + SlotDerivation : value_mappings + + SlotDerivation --> KeyVal : value_mappings + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * [ElementDerivation](ElementDerivation.md) + * **SlotDerivation** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [name](name.md) | 0..1
[String](String.md) | Target slot name | direct | +| [populated_from](populated_from.md) | 0..1
[SlotReference](SlotReference.md) | Source slot name | direct | +| [sources](sources.md) | 0..*
[SlotReference](SlotReference.md) | | direct | +| [derived_from](derived_from.md) | 0..*
[SlotReference](SlotReference.md) | Source slots that are used to derive this slot | direct | +| [expr](expr.md) | 0..1
[String](String.md) | An expression to be evaluated on the source object to derive the target slot | direct | +| [range](range.md) | 0..1
[String](String.md) | | direct | +| [unit_conversion](unit_conversion.md) | 0..1
[UnitConversionConfiguration](UnitConversionConfiguration.md) | | direct | +| [inverse_of](inverse_of.md) | 0..1
[Inverse](Inverse.md) | Used to specify a class-slot tuple that is the inverse of the derived/target ... | direct | +| [hide](hide.md) | 0..1
[Boolean](Boolean.md) | True if this is suppressed | direct | +| [type_designator](type_designator.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [cast_collection_as](cast_collection_as.md) | 0..1
[CollectionType](CollectionType.md) | | direct | +| [dictionary_key](dictionary_key.md) | 0..1
[String](String.md) | | direct | +| [stringification](stringification.md) | 0..1
[StringificationConfiguration](StringificationConfiguration.md) | | direct | +| [copy_directives](copy_directives.md) | 0..*
[CopyDirective](CopyDirective.md) | | [ElementDerivation](ElementDerivation.md) | +| [overrides](overrides.md) | 0..1
[Any](Any.md) | overrides source schema slots | [ElementDerivation](ElementDerivation.md) | +| [is_a](is_a.md) | 0..1
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [mixins](mixins.md) | 0..*
[ElementDerivation](ElementDerivation.md) | | [ElementDerivation](ElementDerivation.md) | +| [value_mappings](value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table that is applied directly to mappings, in order of precedence | [ElementDerivation](ElementDerivation.md) | +| [expression_to_value_mappings](expression_to_value_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys are expressions | [ElementDerivation](ElementDerivation.md) | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | 0..*
[KeyVal](KeyVal.md) | A mapping table in which the keys and values are expressions | [ElementDerivation](ElementDerivation.md) | +| [mirror_source](mirror_source.md) | 0..1
[Boolean](Boolean.md) | | [ElementDerivation](ElementDerivation.md) | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | [slot_derivations](slot_derivations.md) | range | [SlotDerivation](SlotDerivation.md) | +| [ClassDerivation](ClassDerivation.md) | [slot_derivations](slot_derivations.md) | range | [SlotDerivation](SlotDerivation.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:SlotDerivation | +| native | linkmltr:SlotDerivation | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: SlotDerivation +description: A specification of how to derive the value of a target slot from a source + slot +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target slot name + from_schema: https://w3id.org/linkml/transformer + key: true + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + populated_from: + name: populated_from + description: Source slot name + from_schema: https://w3id.org/linkml/transformer + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: SlotReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: SlotReference + derived_from: + name: derived_from + description: Source slots that are used to derive this slot. This can be computed + from the expr, if the expr is declarative. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - SlotDerivation + range: SlotReference + expr: + name: expr + description: An expression to be evaluated on the source object to derive the + target slot. Should be specified using the LinkML expression language. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + range: + name: range + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:range + domain_of: + - SlotDerivation + range: string + unit_conversion: + name: unit_conversion + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: UnitConversionConfiguration + inverse_of: + name: inverse_of + description: Used to specify a class-slot tuple that is the inverse of the derived/target + slot. This is used primarily for mapping to relational databases or formalisms + that do not allow multiple values. The class representing the repeated element + has a foreign key slot inserted in that 'back references' the original multivalued + slot. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: Inverse + hide: + name: hide + description: True if this is suppressed + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + type_designator: + name: type_designator + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: boolean + cast_collection_as: + name: cast_collection_as + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: CollectionType + dictionary_key: + name: dictionary_key + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: string + stringification: + name: stringification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - SlotDerivation + range: StringificationConfiguration + +``` +
+ +### Induced + +
+```yaml +name: SlotDerivation +description: A specification of how to derive the value of a target slot from a source + slot +from_schema: https://w3id.org/linkml/transformer +is_a: ElementDerivation +attributes: + name: + name: name + description: Target slot name + from_schema: https://w3id.org/linkml/transformer + key: true + alias: name + owner: SlotDerivation + domain_of: + - ElementDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + required: true + populated_from: + name: populated_from + description: Source slot name + from_schema: https://w3id.org/linkml/transformer + alias: populated_from + owner: SlotDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: SlotReference + sources: + name: sources + from_schema: https://w3id.org/linkml/transformer + multivalued: true + alias: sources + owner: SlotDerivation + domain_of: + - ClassDerivation + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: SlotReference + derived_from: + name: derived_from + description: Source slots that are used to derive this slot. This can be computed + from the expr, if the expr is declarative. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: derived_from + owner: SlotDerivation + domain_of: + - SlotDerivation + range: SlotReference + expr: + name: expr + description: An expression to be evaluated on the source object to derive the + target slot. Should be specified using the LinkML expression language. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: expr + owner: SlotDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: string + range: + name: range + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:range + alias: range + owner: SlotDerivation + domain_of: + - SlotDerivation + range: string + unit_conversion: + name: unit_conversion + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: unit_conversion + owner: SlotDerivation + domain_of: + - SlotDerivation + range: UnitConversionConfiguration + inverse_of: + name: inverse_of + description: Used to specify a class-slot tuple that is the inverse of the derived/target + slot. This is used primarily for mapping to relational databases or formalisms + that do not allow multiple values. The class representing the repeated element + has a foreign key slot inserted in that 'back references' the original multivalued + slot. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: inverse_of + owner: SlotDerivation + domain_of: + - SlotDerivation + range: Inverse + hide: + name: hide + description: True if this is suppressed + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: hide + owner: SlotDerivation + domain_of: + - SlotDerivation + - EnumDerivation + - PermissibleValueDerivation + range: boolean + type_designator: + name: type_designator + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: type_designator + owner: SlotDerivation + domain_of: + - SlotDerivation + range: boolean + cast_collection_as: + name: cast_collection_as + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: cast_collection_as + owner: SlotDerivation + domain_of: + - SlotDerivation + range: CollectionType + dictionary_key: + name: dictionary_key + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: dictionary_key + owner: SlotDerivation + domain_of: + - SlotDerivation + range: string + stringification: + name: stringification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: stringification + owner: SlotDerivation + domain_of: + - SlotDerivation + range: StringificationConfiguration + copy_directives: + name: copy_directives + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: copy_directives + owner: SlotDerivation + domain_of: + - ElementDerivation + range: CopyDirective + inlined: true + overrides: + name: overrides + description: overrides source schema slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: overrides + owner: SlotDerivation + domain_of: + - ElementDerivation + range: Any + is_a: + name: is_a + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:is_a + alias: is_a + owner: SlotDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + mixins: + name: mixins + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: linkml:mixins + multivalued: true + alias: mixins + owner: SlotDerivation + domain_of: + - ElementDerivation + range: ElementDerivation + inlined: false + value_mappings: + name: value_mappings + description: A mapping table that is applied directly to mappings, in order of + precedence + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: value_mappings + owner: SlotDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_value_mappings: + name: expression_to_value_mappings + description: A mapping table in which the keys are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_value_mappings + owner: SlotDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + expression_to_expression_mappings: + name: expression_to_expression_mappings + description: A mapping table in which the keys and values are expressions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: expression_to_expression_mappings + owner: SlotDerivation + domain_of: + - ElementDerivation + range: KeyVal + inlined: true + mirror_source: + name: mirror_source + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: mirror_source + owner: SlotDerivation + domain_of: + - ElementDerivation + range: boolean + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: SlotDerivation + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: SlotDerivation + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: SlotDerivation + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/SlotReference.md b/docs/schema/SlotReference.md new file mode 100644 index 0000000..620137d --- /dev/null +++ b/docs/schema/SlotReference.md @@ -0,0 +1,34 @@ +# Type: SlotReference + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + + +* [typeof](https://w3id.org/linkml/typeof): string + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Sparqlpath.md b/docs/schema/Sparqlpath.md new file mode 100644 index 0000000..f27156c --- /dev/null +++ b/docs/schema/Sparqlpath.md @@ -0,0 +1,39 @@ +# Type: Sparqlpath + + + + +_A string encoding a SPARQL Property Path. The value of the string MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded as RDF._ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/SpecificationComponent.md b/docs/schema/SpecificationComponent.md new file mode 100644 index 0000000..1d02d18 --- /dev/null +++ b/docs/schema/SpecificationComponent.md @@ -0,0 +1,176 @@ + + +# Class: SpecificationComponent + + +* __NOTE__: this is an abstract class and should not be instantiated directly + + +URI: [linkmltr:SpecificationComponent](https://w3id.org/linkml/transformer/SpecificationComponent) + + + + +```mermaid + classDiagram + class SpecificationComponent + SpecificationComponent <|-- TransformationSpecification + SpecificationComponent <|-- ElementDerivation + + SpecificationComponent : comments + + SpecificationComponent : description + + SpecificationComponent --> None : description + + SpecificationComponent : implements + + +``` + + + + + +## Inheritance +* **SpecificationComponent** + * [TransformationSpecification](TransformationSpecification.md) + * [ElementDerivation](ElementDerivation.md) + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | direct | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | direct | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | direct | + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:SpecificationComponent | +| native | linkmltr:SpecificationComponent | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: SpecificationComponent +from_schema: https://w3id.org/linkml/transformer +abstract: true +attributes: + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + domain_of: + - SpecificationComponent + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + domain_of: + - SpecificationComponent + range: string + +``` +
+ +### Induced + +
+```yaml +name: SpecificationComponent +from_schema: https://w3id.org/linkml/transformer +abstract: true +attributes: + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: SpecificationComponent + domain_of: + - SpecificationComponent + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: SpecificationComponent + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: SpecificationComponent + domain_of: + - SpecificationComponent + range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/String.md b/docs/schema/String.md new file mode 100644 index 0000000..82a8a73 --- /dev/null +++ b/docs/schema/String.md @@ -0,0 +1,38 @@ +# Type: String + + + + +_A character string_ + + + +URI: [xsd:string](http://www.w3.org/2001/XMLSchema#string) + +* [base](https://w3id.org/linkml/base): str + +* [uri](https://w3id.org/linkml/uri): xsd:string + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/StringificationConfiguration.md b/docs/schema/StringificationConfiguration.md new file mode 100644 index 0000000..ef940e0 --- /dev/null +++ b/docs/schema/StringificationConfiguration.md @@ -0,0 +1,190 @@ + + +# Class: StringificationConfiguration + + + +URI: [linkmltr:StringificationConfiguration](https://w3id.org/linkml/transformer/StringificationConfiguration) + + + + +```mermaid + classDiagram + class StringificationConfiguration + StringificationConfiguration : delimiter + + StringificationConfiguration : over_slots + + StringificationConfiguration : reversed + + StringificationConfiguration : syntax + + StringificationConfiguration --> SerializationSyntaxType : syntax + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [delimiter](delimiter.md) | 0..1
[String](String.md) | | direct | +| [reversed](reversed.md) | 0..1
[Boolean](Boolean.md) | | direct | +| [over_slots](over_slots.md) | 0..*
[String](String.md) | | direct | +| [syntax](syntax.md) | 0..1
[SerializationSyntaxType](SerializationSyntaxType.md) | | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | [stringification](stringification.md) | range | [StringificationConfiguration](StringificationConfiguration.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:StringificationConfiguration | +| native | linkmltr:StringificationConfiguration | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: StringificationConfiguration +from_schema: https://w3id.org/linkml/transformer +attributes: + delimiter: + name: delimiter + examples: + - value: ',' + - value: '|' + - value: ; + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - StringificationConfiguration + range: string + reversed: + name: reversed + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - StringificationConfiguration + range: boolean + over_slots: + name: over_slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - StringificationConfiguration + range: string + syntax: + name: syntax + examples: + - value: json + - value: yaml + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - StringificationConfiguration + range: SerializationSyntaxType + +``` +
+ +### Induced + +
+```yaml +name: StringificationConfiguration +from_schema: https://w3id.org/linkml/transformer +attributes: + delimiter: + name: delimiter + examples: + - value: ',' + - value: '|' + - value: ; + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: delimiter + owner: StringificationConfiguration + domain_of: + - StringificationConfiguration + range: string + reversed: + name: reversed + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: reversed + owner: StringificationConfiguration + domain_of: + - StringificationConfiguration + range: boolean + over_slots: + name: over_slots + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: over_slots + owner: StringificationConfiguration + domain_of: + - StringificationConfiguration + range: string + syntax: + name: syntax + examples: + - value: json + - value: yaml + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: syntax + owner: StringificationConfiguration + domain_of: + - StringificationConfiguration + range: SerializationSyntaxType + +``` +
\ No newline at end of file diff --git a/docs/schema/Time.md b/docs/schema/Time.md new file mode 100644 index 0000000..b82a242 --- /dev/null +++ b/docs/schema/Time.md @@ -0,0 +1,39 @@ +# Type: Time + + + + +_A time object represents a (local) time of day, independent of any particular day_ + + + +URI: [xsd:time](http://www.w3.org/2001/XMLSchema#time) + +* [base](https://w3id.org/linkml/base): XSDTime + +* [uri](https://w3id.org/linkml/uri): xsd:time + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/TransformationSpecification.md b/docs/schema/TransformationSpecification.md new file mode 100644 index 0000000..980c906 --- /dev/null +++ b/docs/schema/TransformationSpecification.md @@ -0,0 +1,357 @@ + + +# Class: TransformationSpecification + + +_A collection of mappings between source and target classes_ + + + + + +URI: [linkmltr:TransformationSpecification](https://w3id.org/linkml/transformer/TransformationSpecification) + + + + +```mermaid + classDiagram + class TransformationSpecification + SpecificationComponent <|-- TransformationSpecification + + TransformationSpecification : class_derivations + + TransformationSpecification --> ClassDerivation : class_derivations + + TransformationSpecification : comments + + TransformationSpecification : description + + TransformationSpecification --> None : description + + TransformationSpecification : enum_derivations + + TransformationSpecification --> EnumDerivation : enum_derivations + + TransformationSpecification : id + + TransformationSpecification --> None : id + + TransformationSpecification : implements + + TransformationSpecification : prefixes + + TransformationSpecification --> KeyVal : prefixes + + TransformationSpecification : slot_derivations + + TransformationSpecification --> SlotDerivation : slot_derivations + + TransformationSpecification : source_schema + + TransformationSpecification --> None : source_schema + + TransformationSpecification : target_schema + + TransformationSpecification --> None : target_schema + + TransformationSpecification : title + + TransformationSpecification --> None : title + + +``` + + + + + +## Inheritance +* [SpecificationComponent](SpecificationComponent.md) + * **TransformationSpecification** + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [id](id.md) | 0..1
[String](String.md) | Unique identifier for this transformation specification | direct | +| [title](title.md) | 0..1
[String](String.md) | human readable title for this transformation specification | direct | +| [prefixes](prefixes.md) | 0..*
[KeyVal](KeyVal.md) | maps prefixes to URL expansions | direct | +| [source_schema](source_schema.md) | 0..1
[String](String.md) | name of the schema that describes the source (input) objects | direct | +| [target_schema](target_schema.md) | 0..1
[String](String.md) | name of the schema that describes the target (output) objects | direct | +| [class_derivations](class_derivations.md) | 0..*
[ClassDerivation](ClassDerivation.md) | Instructions on how to derive a set of classes in the target schema from clas... | direct | +| [enum_derivations](enum_derivations.md) | 0..*
[EnumDerivation](EnumDerivation.md) | Instructions on how to derive a set of enums in the target schema | direct | +| [slot_derivations](slot_derivations.md) | 0..*
[SlotDerivation](SlotDerivation.md) | Instructions on how to derive a set of top level slots in the target schema | direct | +| [description](description.md) | 0..1
[String](String.md) | description of the specification component | [SpecificationComponent](SpecificationComponent.md) | +| [implements](implements.md) | 0..*
[Uriorcurie](Uriorcurie.md) | A reference to a specification that this component implements | [SpecificationComponent](SpecificationComponent.md) | +| [comments](comments.md) | 0..*
[String](String.md) | A list of comments about this component | [SpecificationComponent](SpecificationComponent.md) | + + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:TransformationSpecification | +| native | linkmltr:TransformationSpecification | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: TransformationSpecification +description: A collection of mappings between source and target classes +from_schema: https://w3id.org/linkml/transformer +is_a: SpecificationComponent +attributes: + id: + name: id + description: Unique identifier for this transformation specification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: schema:identifier + domain_of: + - TransformationSpecification + title: + name: title + description: human readable title for this transformation specification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:title + domain_of: + - TransformationSpecification + prefixes: + name: prefixes + description: maps prefixes to URL expansions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: sh:declare + multivalued: true + domain_of: + - TransformationSpecification + range: KeyVal + inlined: true + source_schema: + name: source_schema + description: name of the schema that describes the source (input) objects + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - TransformationSpecification + target_schema: + name: target_schema + description: name of the schema that describes the target (output) objects + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - TransformationSpecification + class_derivations: + name: class_derivations + description: Instructions on how to derive a set of classes in the target schema + from classes in the source schema. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - TransformationSpecification + range: ClassDerivation + inlined: true + enum_derivations: + name: enum_derivations + description: Instructions on how to derive a set of enums in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - TransformationSpecification + range: EnumDerivation + inlined: true + slot_derivations: + name: slot_derivations + description: Instructions on how to derive a set of top level slots in the target + schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + domain_of: + - TransformationSpecification + - ClassDerivation + range: SlotDerivation + inlined: true +tree_root: true + +``` +
+ +### Induced + +
+```yaml +name: TransformationSpecification +description: A collection of mappings between source and target classes +from_schema: https://w3id.org/linkml/transformer +is_a: SpecificationComponent +attributes: + id: + name: id + description: Unique identifier for this transformation specification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: schema:identifier + alias: id + owner: TransformationSpecification + domain_of: + - TransformationSpecification + title: + name: title + description: human readable title for this transformation specification + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:title + alias: title + owner: TransformationSpecification + domain_of: + - TransformationSpecification + prefixes: + name: prefixes + description: maps prefixes to URL expansions + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: sh:declare + multivalued: true + alias: prefixes + owner: TransformationSpecification + domain_of: + - TransformationSpecification + range: KeyVal + inlined: true + source_schema: + name: source_schema + description: name of the schema that describes the source (input) objects + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: source_schema + owner: TransformationSpecification + domain_of: + - TransformationSpecification + target_schema: + name: target_schema + description: name of the schema that describes the target (output) objects + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: target_schema + owner: TransformationSpecification + domain_of: + - TransformationSpecification + class_derivations: + name: class_derivations + description: Instructions on how to derive a set of classes in the target schema + from classes in the source schema. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: class_derivations + owner: TransformationSpecification + domain_of: + - TransformationSpecification + range: ClassDerivation + inlined: true + enum_derivations: + name: enum_derivations + description: Instructions on how to derive a set of enums in the target schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: enum_derivations + owner: TransformationSpecification + domain_of: + - TransformationSpecification + range: EnumDerivation + inlined: true + slot_derivations: + name: slot_derivations + description: Instructions on how to derive a set of top level slots in the target + schema + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: slot_derivations + owner: TransformationSpecification + domain_of: + - TransformationSpecification + - ClassDerivation + range: SlotDerivation + inlined: true + description: + name: description + description: description of the specification component + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: dcterms:description + alias: description + owner: TransformationSpecification + domain_of: + - SpecificationComponent + range: string + implements: + name: implements + description: A reference to a specification that this component implements. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + multivalued: true + alias: implements + owner: TransformationSpecification + domain_of: + - SpecificationComponent + range: uriorcurie + comments: + name: comments + description: A list of comments about this component. Comments are free text, + and may be used to provide additional information about the component, including + instructions for its use. + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + slot_uri: rdfs:comment + multivalued: true + alias: comments + owner: TransformationSpecification + domain_of: + - SpecificationComponent + range: string +tree_root: true + +``` +
\ No newline at end of file diff --git a/docs/schema/UnitConversionConfiguration.md b/docs/schema/UnitConversionConfiguration.md new file mode 100644 index 0000000..a597e0d --- /dev/null +++ b/docs/schema/UnitConversionConfiguration.md @@ -0,0 +1,256 @@ + + +# Class: UnitConversionConfiguration + + + +URI: [linkmltr:UnitConversionConfiguration](https://w3id.org/linkml/transformer/UnitConversionConfiguration) + + + + +```mermaid + classDiagram + class UnitConversionConfiguration + UnitConversionConfiguration : source_magnitude_slot + + UnitConversionConfiguration --> None : source_magnitude_slot + + UnitConversionConfiguration : source_unit + + UnitConversionConfiguration --> None : source_unit + + UnitConversionConfiguration : source_unit_scheme + + UnitConversionConfiguration : source_unit_slot + + UnitConversionConfiguration --> None : source_unit_slot + + UnitConversionConfiguration : target_magnitude_slot + + UnitConversionConfiguration --> None : target_magnitude_slot + + UnitConversionConfiguration : target_unit + + UnitConversionConfiguration --> None : target_unit + + UnitConversionConfiguration : target_unit_scheme + + UnitConversionConfiguration : target_unit_slot + + UnitConversionConfiguration --> None : target_unit_slot + + +``` + + + + + + + +## Slots + +| Name | Cardinality and Range | Description | Inheritance | +| --- | --- | --- | --- | +| [target_unit](target_unit.md) | 0..1
[String](String.md) | | direct | +| [target_unit_scheme](target_unit_scheme.md) | 0..1
[String](String.md) | | direct | +| [source_unit](source_unit.md) | 0..1
[String](String.md) | | direct | +| [source_unit_scheme](source_unit_scheme.md) | 0..1
[String](String.md) | | direct | +| [source_unit_slot](source_unit_slot.md) | 0..1
[String](String.md) | | direct | +| [source_magnitude_slot](source_magnitude_slot.md) | 0..1
[String](String.md) | | direct | +| [target_unit_slot](target_unit_slot.md) | 0..1
[String](String.md) | | direct | +| [target_magnitude_slot](target_magnitude_slot.md) | 0..1
[String](String.md) | | direct | + + + + + +## Usages + +| used by | used in | type | used | +| --- | --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | [unit_conversion](unit_conversion.md) | range | [UnitConversionConfiguration](UnitConversionConfiguration.md) | + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + + +## Mappings + +| Mapping Type | Mapped Value | +| --- | --- | +| self | linkmltr:UnitConversionConfiguration | +| native | linkmltr:UnitConversionConfiguration | + + + + + +## LinkML Source + + + +### Direct + +
+```yaml +name: UnitConversionConfiguration +from_schema: https://w3id.org/linkml/transformer +attributes: + target_unit: + name: target_unit + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + target_unit_scheme: + name: target_unit_scheme + examples: + - value: ucum + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + range: string + source_unit: + name: source_unit + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + source_unit_scheme: + name: source_unit_scheme + examples: + - value: ucum + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + range: string + source_unit_slot: + name: source_unit_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + source_magnitude_slot: + name: source_magnitude_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + target_unit_slot: + name: target_unit_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + target_magnitude_slot: + name: target_magnitude_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + domain_of: + - UnitConversionConfiguration + +``` +
+ +### Induced + +
+```yaml +name: UnitConversionConfiguration +from_schema: https://w3id.org/linkml/transformer +attributes: + target_unit: + name: target_unit + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: target_unit + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + target_unit_scheme: + name: target_unit_scheme + examples: + - value: ucum + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: target_unit_scheme + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + range: string + source_unit: + name: source_unit + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: source_unit + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + source_unit_scheme: + name: source_unit_scheme + examples: + - value: ucum + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: source_unit_scheme + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + range: string + source_unit_slot: + name: source_unit_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: source_unit_slot + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + source_magnitude_slot: + name: source_magnitude_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: source_magnitude_slot + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + target_unit_slot: + name: target_unit_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: target_unit_slot + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + target_magnitude_slot: + name: target_magnitude_slot + from_schema: https://w3id.org/linkml/transformer + rank: 1000 + alias: target_magnitude_slot + owner: UnitConversionConfiguration + domain_of: + - UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/Uri.md b/docs/schema/Uri.md new file mode 100644 index 0000000..794c8ae --- /dev/null +++ b/docs/schema/Uri.md @@ -0,0 +1,43 @@ +# Type: Uri + + + + +_a complete URI_ + + + +URI: [xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) + +* [base](https://w3id.org/linkml/base): URI + +* [uri](https://w3id.org/linkml/uri): xsd:anyURI + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Comments + +* in RDF serializations a slot with range of uri is treated as a literal or type xsd:anyURI unless it is an identifier or a reference to an identifier, in which case it is translated directly to a node + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/Uriorcurie.md b/docs/schema/Uriorcurie.md new file mode 100644 index 0000000..fbcc010 --- /dev/null +++ b/docs/schema/Uriorcurie.md @@ -0,0 +1,39 @@ +# Type: Uriorcurie + + + + +_a URI or a CURIE_ + + + +URI: [xsd:anyURI](http://www.w3.org/2001/XMLSchema#anyURI) + +* [base](https://w3id.org/linkml/base): URIorCURIE + +* [uri](https://w3id.org/linkml/uri): xsd:anyURI + +* [repr](https://w3id.org/linkml/repr): str + + + + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/about.md b/docs/schema/about.md new file mode 100644 index 0000000..2269d5d --- /dev/null +++ b/docs/schema/about.md @@ -0,0 +1 @@ +# LinkML-Transformer diff --git a/docs/schema/add.md b/docs/schema/add.md new file mode 100644 index 0000000..36da70f --- /dev/null +++ b/docs/schema/add.md @@ -0,0 +1,65 @@ + + +# Slot: add + +URI: [linkmltr:add](https://w3id.org/linkml/transformer/add) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: [Any](Any.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: add +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: add +owner: CopyDirective +domain_of: +- CopyDirective +range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/alias.md b/docs/schema/alias.md new file mode 100644 index 0000000..9527945 --- /dev/null +++ b/docs/schema/alias.md @@ -0,0 +1,74 @@ + + +# Slot: alias + + +_name of the class to be aliased_ + + + +URI: [linkmltr:alias](https://w3id.org/linkml/transformer/alias) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [AliasedClass](AliasedClass.md) | alias-class key value pairs for classes | no | + + + + + + + +## Properties + +* Range: NONE + +* Required: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: alias +description: name of the class to be aliased +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +key: true +alias: alias +owner: AliasedClass +domain_of: +- AliasedClass +required: true + +``` +
\ No newline at end of file diff --git a/docs/schema/api.md b/docs/schema/api.md new file mode 100644 index 0000000..79d8007 --- /dev/null +++ b/docs/schema/api.md @@ -0,0 +1,9 @@ +# Session + +::: linkml_map.session.Session + +# Transformer + + +::: linkml_map.transformer.transformer.Transformer + diff --git a/docs/schema/cast_collection_as.md b/docs/schema/cast_collection_as.md new file mode 100644 index 0000000..2d1170a --- /dev/null +++ b/docs/schema/cast_collection_as.md @@ -0,0 +1,65 @@ + + +# Slot: cast_collection_as + +URI: [linkmltr:cast_collection_as](https://w3id.org/linkml/transformer/cast_collection_as) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [CollectionType](CollectionType.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: cast_collection_as +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: cast_collection_as +owner: SlotDerivation +domain_of: +- SlotDerivation +range: CollectionType + +``` +
\ No newline at end of file diff --git a/docs/schema/class_derivations.md b/docs/schema/class_derivations.md new file mode 100644 index 0000000..318986e --- /dev/null +++ b/docs/schema/class_derivations.md @@ -0,0 +1,76 @@ + + +# Slot: class_derivations + + +_Instructions on how to derive a set of classes in the target schema from classes in the source schema._ + + + +URI: [linkmltr:class_derivations](https://w3id.org/linkml/transformer/class_derivations) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: [ClassDerivation](ClassDerivation.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: class_derivations +description: Instructions on how to derive a set of classes in the target schema from + classes in the source schema. +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: class_derivations +owner: TransformationSpecification +domain_of: +- TransformationSpecification +range: ClassDerivation +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/class_name.md b/docs/schema/class_name.md new file mode 100644 index 0000000..57b3e2c --- /dev/null +++ b/docs/schema/class_name.md @@ -0,0 +1,64 @@ + + +# Slot: class_name + +URI: [linkmltr:class_name](https://w3id.org/linkml/transformer/class_name) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [Inverse](Inverse.md) | Used for back references in mapping to relational model | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: class_name +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: class_name +owner: Inverse +domain_of: +- Inverse + +``` +
\ No newline at end of file diff --git a/docs/schema/class_named.md b/docs/schema/class_named.md new file mode 100644 index 0000000..daa0249 --- /dev/null +++ b/docs/schema/class_named.md @@ -0,0 +1,70 @@ + + +# Slot: class_named + + +_local alias for the class_ + + + +URI: [linkmltr:class_named](https://w3id.org/linkml/transformer/class_named) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [AliasedClass](AliasedClass.md) | alias-class key value pairs for classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: class_named +description: local alias for the class +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: class_named +owner: AliasedClass +domain_of: +- AliasedClass + +``` +
\ No newline at end of file diff --git a/docs/schema/comments.md b/docs/schema/comments.md new file mode 100644 index 0000000..e3e2e1e --- /dev/null +++ b/docs/schema/comments.md @@ -0,0 +1,84 @@ + + +# Slot: comments + + +_A list of comments about this component. Comments are free text, and may be used to provide additional information about the component, including instructions for its use._ + + + +URI: [rdfs:comment](http://www.w3.org/2000/01/rdf-schema#comment) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [SpecificationComponent](SpecificationComponent.md) | | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [String](String.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: comments +description: A list of comments about this component. Comments are free text, and + may be used to provide additional information about the component, including instructions + for its use. +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: rdfs:comment +multivalued: true +alias: comments +owner: SpecificationComponent +domain_of: +- SpecificationComponent +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/compiler.md b/docs/schema/compiler.md new file mode 100644 index 0000000..3e06851 --- /dev/null +++ b/docs/schema/compiler.md @@ -0,0 +1,17 @@ +# Compiler Package + +A compiler will compile a Map specification into an alternative representation + +## Compiler (Base Class) + +::: linkml_map.compiler.compiler.Compiler + +## Python Compiler + +::: linkml_map.compiler.python_compiler.PythonCompiler + +## Markdown Compiler + +::: linkml_map.compiler.markdown_compiler.MarkdownCompiler + + diff --git a/docs/schema/copy_all.md b/docs/schema/copy_all.md new file mode 100644 index 0000000..35adf4a --- /dev/null +++ b/docs/schema/copy_all.md @@ -0,0 +1,65 @@ + + +# Slot: copy_all + +URI: [linkmltr:copy_all](https://w3id.org/linkml/transformer/copy_all) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: [Boolean](Boolean.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: copy_all +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: copy_all +owner: CopyDirective +domain_of: +- CopyDirective +range: boolean + +``` +
\ No newline at end of file diff --git a/docs/schema/copy_directives.md b/docs/schema/copy_directives.md new file mode 100644 index 0000000..246683d --- /dev/null +++ b/docs/schema/copy_directives.md @@ -0,0 +1,74 @@ + + +# Slot: copy_directives + +URI: [linkmltr:copy_directives](https://w3id.org/linkml/transformer/copy_directives) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [CopyDirective](CopyDirective.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: copy_directives +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: copy_directives +owner: ElementDerivation +domain_of: +- ElementDerivation +range: CopyDirective +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/datamodel.md b/docs/schema/datamodel.md new file mode 100644 index 0000000..54918b1 --- /dev/null +++ b/docs/schema/datamodel.md @@ -0,0 +1,148 @@ +# LinkML Data Transformer Model + +Datamodel for LinkML schema transformations. + +A transformer generates instances of a *target* data model from +instances of a *source* data model. This transformation process +is guided by a *TransformationSpecification*. + +The specification is independent of any one method for transforming +data. It allows different approaches, including: + +- direct implementation, transforming python or json objects +- translation of the specification into SQL commands, to operate on relations +- translation of the specification into SPARQL CONSTRUCTs, to operate on triples +- translation into another specification language, such as R2RML + +URI: https://w3id.org/linkml/transformer + +Name: transformer + + + +## Classes + +| Class | Description | +| --- | --- | +| [AliasedClass](AliasedClass.md) | alias-class key value pairs for classes | +| [Any](Any.md) | None | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema. Not used for data transformation. | +| [Inverse](Inverse.md) | Used for back references in mapping to relational model | +| [KeyVal](KeyVal.md) | None | +| [SpecificationComponent](SpecificationComponent.md) | None | +|         [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to derive a target element from a source element. | +|                 [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class. | +|                 [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enum | +|                 [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | +|                 [PrefixDerivation](PrefixDerivation.md) | None | +|                 [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slot | +|         [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | +| [StringificationConfiguration](StringificationConfiguration.md) | None | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | None | + + + +## Slots + +| Slot | Description | +| --- | --- | +| [add](add.md) | | +| [alias](alias.md) | name of the class to be aliased | +| [cast_collection_as](cast_collection_as.md) | | +| [class_derivations](class_derivations.md) | Instructions on how to derive a set of classes in the target schema from clas... | +| [class_name](class_name.md) | | +| [class_named](class_named.md) | local alias for the class | +| [comments](comments.md) | A list of comments about this component | +| [copy_all](copy_all.md) | | +| [copy_directives](copy_directives.md) | | +| [delimiter](delimiter.md) | | +| [derived_from](derived_from.md) | Source slots that are used to derive this slot | +| [description](description.md) | description of the specification component | +| [dictionary_key](dictionary_key.md) | | +| [element_name](element_name.md) | | +| [enum_derivations](enum_derivations.md) | Instructions on how to derive a set of enums in the target schema | +| [exclude](exclude.md) | | +| [exclude_all](exclude_all.md) | | +| [expr](expr.md) | An expression to be evaluated on the source object to derive the target slot | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | A mapping table in which the keys and values are expressions | +| [expression_to_value_mappings](expression_to_value_mappings.md) | A mapping table in which the keys are expressions | +| [hide](hide.md) | True if this is suppressed | +| [id](id.md) | Unique identifier for this transformation specification | +| [implements](implements.md) | A reference to a specification that this component implements | +| [include](include.md) | | +| [inverse_of](inverse_of.md) | Used to specify a class-slot tuple that is the inverse of the derived/target ... | +| [is_a](is_a.md) | | +| [joins](joins.md) | Additional classes to be joined to derive instances of the target class | +| [key](key.md) | | +| [mirror_source](mirror_source.md) | | +| [mixins](mixins.md) | | +| [name](name.md) | Name of the element in the target schema | +| [over_slots](over_slots.md) | | +| [overrides](overrides.md) | overrides source schema slots | +| [permissible_value_derivations](permissible_value_derivations.md) | Instructions on how to derive a set of PVs in the target schema | +| [populated_from](populated_from.md) | Name of the class in the source schema | +| [prefixes](prefixes.md) | maps prefixes to URL expansions | +| [range](range.md) | | +| [reversed](reversed.md) | | +| [slot_derivations](slot_derivations.md) | Instructions on how to derive a set of top level slots in the target schema | +| [slot_name](slot_name.md) | | +| [source_magnitude_slot](source_magnitude_slot.md) | | +| [source_schema](source_schema.md) | name of the schema that describes the source (input) objects | +| [source_unit](source_unit.md) | | +| [source_unit_scheme](source_unit_scheme.md) | | +| [source_unit_slot](source_unit_slot.md) | | +| [sources](sources.md) | | +| [stringification](stringification.md) | | +| [syntax](syntax.md) | | +| [target_magnitude_slot](target_magnitude_slot.md) | | +| [target_schema](target_schema.md) | name of the schema that describes the target (output) objects | +| [target_unit](target_unit.md) | | +| [target_unit_scheme](target_unit_scheme.md) | | +| [target_unit_slot](target_unit_slot.md) | | +| [title](title.md) | human readable title for this transformation specification | +| [type_designator](type_designator.md) | | +| [unit_conversion](unit_conversion.md) | | +| [value](value.md) | | +| [value_mappings](value_mappings.md) | A mapping table that is applied directly to mappings, in order of precedence | + + +## Enumerations + +| Enumeration | Description | +| --- | --- | +| [CollectionType](CollectionType.md) | | +| [SerializationSyntaxType](SerializationSyntaxType.md) | | + + +## Types + +| Type | Description | +| --- | --- | +| [Boolean](Boolean.md) | A binary (true or false) value | +| [ClassReference](ClassReference.md) | | +| [Curie](Curie.md) | a compact URI | +| [Date](Date.md) | a date (year, month and day) in an idealized calendar | +| [DateOrDatetime](DateOrDatetime.md) | Either a date or a datetime | +| [Datetime](Datetime.md) | The combination of a date and time | +| [Decimal](Decimal.md) | A real number with arbitrary precision that conforms to the xsd:decimal speci... | +| [Double](Double.md) | A real number that conforms to the xsd:double specification | +| [EnumReference](EnumReference.md) | | +| [Float](Float.md) | A real number that conforms to the xsd:float specification | +| [Integer](Integer.md) | An integer | +| [Jsonpath](Jsonpath.md) | A string encoding a JSON Path | +| [Jsonpointer](Jsonpointer.md) | A string encoding a JSON Pointer | +| [Ncname](Ncname.md) | Prefix part of CURIE | +| [Nodeidentifier](Nodeidentifier.md) | A URI, CURIE or BNODE that represents a node in a model | +| [Objectidentifier](Objectidentifier.md) | A URI or CURIE that represents an object in the model | +| [SlotReference](SlotReference.md) | | +| [Sparqlpath](Sparqlpath.md) | A string encoding a SPARQL Property Path | +| [String](String.md) | A character string | +| [Time](Time.md) | A time object represents a (local) time of day, independent of any particular... | +| [Uri](Uri.md) | a complete URI | +| [Uriorcurie](Uriorcurie.md) | a URI or a CURIE | + + +## Subsets + +| Subset | Description | +| --- | --- | diff --git a/docs/schema/delimiter.md b/docs/schema/delimiter.md new file mode 100644 index 0000000..dbf0b2a --- /dev/null +++ b/docs/schema/delimiter.md @@ -0,0 +1,78 @@ + + +# Slot: delimiter + +URI: [linkmltr:delimiter](https://w3id.org/linkml/transformer/delimiter) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [StringificationConfiguration](StringificationConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + + +## Examples + +| Value | +| --- | +| , | +| | | +| ; | + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: delimiter +examples: +- value: ',' +- value: '|' +- value: ; +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: delimiter +owner: StringificationConfiguration +domain_of: +- StringificationConfiguration +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/derived_from.md b/docs/schema/derived_from.md new file mode 100644 index 0000000..aae7646 --- /dev/null +++ b/docs/schema/derived_from.md @@ -0,0 +1,75 @@ + + +# Slot: derived_from + + +_Source slots that are used to derive this slot. This can be computed from the expr, if the expr is declarative._ + + + +URI: [linkmltr:derived_from](https://w3id.org/linkml/transformer/derived_from) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [SlotReference](SlotReference.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: derived_from +description: Source slots that are used to derive this slot. This can be computed + from the expr, if the expr is declarative. +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: derived_from +owner: SlotDerivation +domain_of: +- SlotDerivation +range: SlotReference + +``` +
\ No newline at end of file diff --git a/docs/schema/description.md b/docs/schema/description.md new file mode 100644 index 0000000..a3af74c --- /dev/null +++ b/docs/schema/description.md @@ -0,0 +1,78 @@ + + +# Slot: description + + +_description of the specification component_ + + + +URI: [dcterms:description](http://purl.org/dc/terms/description) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [SpecificationComponent](SpecificationComponent.md) | | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: description +description: description of the specification component +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: dcterms:description +alias: description +owner: SpecificationComponent +domain_of: +- SpecificationComponent + +``` +
\ No newline at end of file diff --git a/docs/schema/dictionary_key.md b/docs/schema/dictionary_key.md new file mode 100644 index 0000000..9ad45d6 --- /dev/null +++ b/docs/schema/dictionary_key.md @@ -0,0 +1,65 @@ + + +# Slot: dictionary_key + +URI: [linkmltr:dictionary_key](https://w3id.org/linkml/transformer/dictionary_key) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: dictionary_key +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: dictionary_key +owner: SlotDerivation +domain_of: +- SlotDerivation +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/element_name.md b/docs/schema/element_name.md new file mode 100644 index 0000000..98fe14c --- /dev/null +++ b/docs/schema/element_name.md @@ -0,0 +1,68 @@ + + +# Slot: element_name + +URI: [linkmltr:element_name](https://w3id.org/linkml/transformer/element_name) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: NONE + +* Required: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: element_name +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +key: true +alias: element_name +owner: CopyDirective +domain_of: +- CopyDirective +required: true + +``` +
\ No newline at end of file diff --git a/docs/schema/enum_derivations.md b/docs/schema/enum_derivations.md new file mode 100644 index 0000000..460bc24 --- /dev/null +++ b/docs/schema/enum_derivations.md @@ -0,0 +1,75 @@ + + +# Slot: enum_derivations + + +_Instructions on how to derive a set of enums in the target schema_ + + + +URI: [linkmltr:enum_derivations](https://w3id.org/linkml/transformer/enum_derivations) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: [EnumDerivation](EnumDerivation.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: enum_derivations +description: Instructions on how to derive a set of enums in the target schema +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: enum_derivations +owner: TransformationSpecification +domain_of: +- TransformationSpecification +range: EnumDerivation +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/exclude.md b/docs/schema/exclude.md new file mode 100644 index 0000000..231779a --- /dev/null +++ b/docs/schema/exclude.md @@ -0,0 +1,65 @@ + + +# Slot: exclude + +URI: [linkmltr:exclude](https://w3id.org/linkml/transformer/exclude) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: [Any](Any.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: exclude +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: exclude +owner: CopyDirective +domain_of: +- CopyDirective +range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/exclude_all.md b/docs/schema/exclude_all.md new file mode 100644 index 0000000..880028c --- /dev/null +++ b/docs/schema/exclude_all.md @@ -0,0 +1,65 @@ + + +# Slot: exclude_all + +URI: [linkmltr:exclude_all](https://w3id.org/linkml/transformer/exclude_all) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: [Boolean](Boolean.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: exclude_all +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: exclude_all +owner: CopyDirective +domain_of: +- CopyDirective +range: boolean + +``` +
\ No newline at end of file diff --git a/docs/schema/expr.md b/docs/schema/expr.md new file mode 100644 index 0000000..3990f1c --- /dev/null +++ b/docs/schema/expr.md @@ -0,0 +1,58 @@ + + +# Slot: expr + +URI: [linkmltr:expr](https://w3id.org/linkml/transformer/expr) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: expr +alias: expr +domain_of: +- SlotDerivation +- EnumDerivation +- PermissibleValueDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/expression_to_expression_mappings.md b/docs/schema/expression_to_expression_mappings.md new file mode 100644 index 0000000..ae40067 --- /dev/null +++ b/docs/schema/expression_to_expression_mappings.md @@ -0,0 +1,80 @@ + + +# Slot: expression_to_expression_mappings + + +_A mapping table in which the keys and values are expressions_ + + + +URI: [linkmltr:expression_to_expression_mappings](https://w3id.org/linkml/transformer/expression_to_expression_mappings) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [KeyVal](KeyVal.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: expression_to_expression_mappings +description: A mapping table in which the keys and values are expressions +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: expression_to_expression_mappings +owner: ElementDerivation +domain_of: +- ElementDerivation +range: KeyVal +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/expression_to_value_mappings.md b/docs/schema/expression_to_value_mappings.md new file mode 100644 index 0000000..b1b27d3 --- /dev/null +++ b/docs/schema/expression_to_value_mappings.md @@ -0,0 +1,80 @@ + + +# Slot: expression_to_value_mappings + + +_A mapping table in which the keys are expressions_ + + + +URI: [linkmltr:expression_to_value_mappings](https://w3id.org/linkml/transformer/expression_to_value_mappings) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [KeyVal](KeyVal.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: expression_to_value_mappings +description: A mapping table in which the keys are expressions +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: expression_to_value_mappings +owner: ElementDerivation +domain_of: +- ElementDerivation +range: KeyVal +inlined: true + +``` +
\ No newline at end of file diff --git a/src/docs/faq.md b/docs/schema/faq.md similarity index 100% rename from src/docs/faq.md rename to docs/schema/faq.md diff --git a/docs/schema/functions.md b/docs/schema/functions.md new file mode 100644 index 0000000..269d291 --- /dev/null +++ b/docs/schema/functions.md @@ -0,0 +1,5 @@ +# Functions Package + +## Unit Conversion + +::: linkml_map.functions.unit_conversion diff --git a/docs/schema/hide.md b/docs/schema/hide.md new file mode 100644 index 0000000..7ecb62b --- /dev/null +++ b/docs/schema/hide.md @@ -0,0 +1,58 @@ + + +# Slot: hide + +URI: [linkmltr:hide](https://w3id.org/linkml/transformer/hide) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: hide +alias: hide +domain_of: +- SlotDerivation +- EnumDerivation +- PermissibleValueDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/id.md b/docs/schema/id.md new file mode 100644 index 0000000..bd15b16 --- /dev/null +++ b/docs/schema/id.md @@ -0,0 +1,71 @@ + + +# Slot: id + + +_Unique identifier for this transformation specification_ + + + +URI: [schema:identifier](http://schema.org/identifier) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: id +description: Unique identifier for this transformation specification +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: schema:identifier +alias: id +owner: TransformationSpecification +domain_of: +- TransformationSpecification + +``` +
\ No newline at end of file diff --git a/docs/schema/implements.md b/docs/schema/implements.md new file mode 100644 index 0000000..e229f0f --- /dev/null +++ b/docs/schema/implements.md @@ -0,0 +1,81 @@ + + +# Slot: implements + + +_A reference to a specification that this component implements._ + + + +URI: [linkmltr:implements](https://w3id.org/linkml/transformer/implements) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [SpecificationComponent](SpecificationComponent.md) | | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [Uriorcurie](Uriorcurie.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: implements +description: A reference to a specification that this component implements. +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: implements +owner: SpecificationComponent +domain_of: +- SpecificationComponent +range: uriorcurie + +``` +
\ No newline at end of file diff --git a/docs/schema/include.md b/docs/schema/include.md new file mode 100644 index 0000000..488115c --- /dev/null +++ b/docs/schema/include.md @@ -0,0 +1,65 @@ + + +# Slot: include + +URI: [linkmltr:include](https://w3id.org/linkml/transformer/include) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema | no | + + + + + + + +## Properties + +* Range: [Any](Any.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: include +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: include +owner: CopyDirective +domain_of: +- CopyDirective +range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/inverse_of.md b/docs/schema/inverse_of.md new file mode 100644 index 0000000..4a17626 --- /dev/null +++ b/docs/schema/inverse_of.md @@ -0,0 +1,74 @@ + + +# Slot: inverse_of + + +_Used to specify a class-slot tuple that is the inverse of the derived/target slot. This is used primarily for mapping to relational databases or formalisms that do not allow multiple values. The class representing the repeated element has a foreign key slot inserted in that 'back references' the original multivalued slot._ + + + +URI: [linkmltr:inverse_of](https://w3id.org/linkml/transformer/inverse_of) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [Inverse](Inverse.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: inverse_of +description: Used to specify a class-slot tuple that is the inverse of the derived/target + slot. This is used primarily for mapping to relational databases or formalisms that + do not allow multiple values. The class representing the repeated element has a + foreign key slot inserted in that 'back references' the original multivalued slot. +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: inverse_of +owner: SlotDerivation +domain_of: +- SlotDerivation +range: Inverse + +``` +
\ No newline at end of file diff --git a/docs/schema/is_a.md b/docs/schema/is_a.md new file mode 100644 index 0000000..d60aa32 --- /dev/null +++ b/docs/schema/is_a.md @@ -0,0 +1,71 @@ + + +# Slot: is_a + +URI: [linkml:is_a](https://w3id.org/linkml/is_a) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [ElementDerivation](ElementDerivation.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: is_a +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: linkml:is_a +alias: is_a +owner: ElementDerivation +domain_of: +- ElementDerivation +range: ElementDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/joins.md b/docs/schema/joins.md new file mode 100644 index 0000000..3af1fc4 --- /dev/null +++ b/docs/schema/joins.md @@ -0,0 +1,81 @@ + + +# Slot: joins + + +_Additional classes to be joined to derive instances of the target class_ + + + +URI: [linkmltr:joins](https://w3id.org/linkml/transformer/joins) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | + + + + + + + +## Properties + +* Range: [AliasedClass](AliasedClass.md) + +* Multivalued: True + + + + + +## Comments + +* not yet implemented + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: joins +description: Additional classes to be joined to derive instances of the target class +comments: +- not yet implemented +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: joins +owner: ClassDerivation +domain_of: +- ClassDerivation +range: AliasedClass +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/key.md b/docs/schema/key.md new file mode 100644 index 0000000..cf77dcb --- /dev/null +++ b/docs/schema/key.md @@ -0,0 +1,68 @@ + + +# Slot: key + +URI: [linkmltr:key](https://w3id.org/linkml/transformer/key) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [KeyVal](KeyVal.md) | | no | + + + + + + + +## Properties + +* Range: NONE + +* Required: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: key +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +key: true +alias: key +owner: KeyVal +domain_of: +- KeyVal +required: true + +``` +
\ No newline at end of file diff --git a/docs/schema/mirror_source.md b/docs/schema/mirror_source.md new file mode 100644 index 0000000..0303ec4 --- /dev/null +++ b/docs/schema/mirror_source.md @@ -0,0 +1,70 @@ + + +# Slot: mirror_source + +URI: [linkmltr:mirror_source](https://w3id.org/linkml/transformer/mirror_source) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [Boolean](Boolean.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: mirror_source +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: mirror_source +owner: ElementDerivation +domain_of: +- ElementDerivation +range: boolean + +``` +
\ No newline at end of file diff --git a/docs/schema/mixins.md b/docs/schema/mixins.md new file mode 100644 index 0000000..c455d1e --- /dev/null +++ b/docs/schema/mixins.md @@ -0,0 +1,75 @@ + + +# Slot: mixins + +URI: [linkml:mixins](https://w3id.org/linkml/mixins) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [ElementDerivation](ElementDerivation.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: mixins +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: linkml:mixins +multivalued: true +alias: mixins +owner: ElementDerivation +domain_of: +- ElementDerivation +range: ElementDerivation +inlined: false + +``` +
\ No newline at end of file diff --git a/docs/schema/name.md b/docs/schema/name.md new file mode 100644 index 0000000..450b8df --- /dev/null +++ b/docs/schema/name.md @@ -0,0 +1,62 @@ + + +# Slot: name + +URI: [linkmltr:name](https://w3id.org/linkml/transformer/name) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: name +alias: name +domain_of: +- ElementDerivation +- SlotDerivation +- EnumDerivation +- PermissibleValueDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/over_slots.md b/docs/schema/over_slots.md new file mode 100644 index 0000000..cbbdc33 --- /dev/null +++ b/docs/schema/over_slots.md @@ -0,0 +1,68 @@ + + +# Slot: over_slots + +URI: [linkmltr:over_slots](https://w3id.org/linkml/transformer/over_slots) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [StringificationConfiguration](StringificationConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [String](String.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: over_slots +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: over_slots +owner: StringificationConfiguration +domain_of: +- StringificationConfiguration +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/overrides.md b/docs/schema/overrides.md new file mode 100644 index 0000000..5eb2c42 --- /dev/null +++ b/docs/schema/overrides.md @@ -0,0 +1,76 @@ + + +# Slot: overrides + + +_overrides source schema slots_ + + + +URI: [linkmltr:overrides](https://w3id.org/linkml/transformer/overrides) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [Any](Any.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: overrides +description: overrides source schema slots +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: overrides +owner: ElementDerivation +domain_of: +- ElementDerivation +range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/overview.md b/docs/schema/overview.md new file mode 100644 index 0000000..9f5ae88 --- /dev/null +++ b/docs/schema/overview.md @@ -0,0 +1,1002 @@ +# Mapping Between LinkML Schemas + +# Draft +2022-06-24 + +# Problem: map data from one schema to another + +* Problem: Map d1 → d2 + * Assumption d1 and d2 conform to two separate schemas\, s1→ s2 +* Sub\-problems: + * Ingest/Import: my data warehouse conforms to s2 \(e\.g\. Monarch ingest\) + * Export: make my data ingest friendly + * Migrations: s1 and s2 are different versions of the same schema +* Not in scope: in\-schema syntactic or structural transforms + * JSON to YAML\, JSON to TSV\, JSON to SQL\, JSON to RDF\, ORM\, … + * In LinkML this is already largely solved +* The actual problem space is highly varied + * S1 and S2 may be trivially isomorphic + * S1 and S2 may differ in complex or nuanced ways + +# There are many existing approaches + +* Generic frameworks\, driven by declarative specification in Domain Specific Language \(DSL\) +* JSON\-based + * Google whistle + * _[jsonpath\-lift](https://www.npmjs.com/package/jsonpath-lifter)_ +* XSLT +* Semweb + * YARRML\, R2RML +* Many many more… +* Bespoke transforms: non\-declarative +* Implement in python/awk/etc\. +* Hybrid: bespoke with some declarative mappings in ad\-hoc format +* E\.g\. NMDC ingest framework + +# Traps with declarative mapping + +* Declarative is great\, until it’s not +* Anti\-patterns: + * Insufficient expressivity to carry out real world tasks + * Bolting on features to mapping DSL until it’s a fully\-featured Turing\-complete language + * Optimization/scalability at mercy of framework + * Messy layering between DSL and host language + * It can be useful to leverage host language features \(e\.g arbitrary python function\) + * But this can get confusing: + * NFNF: Neither fish nor fowl + * Limits optimizations \(forces iterative host language calls\) + +# YARRRML + +![](img/Mapping%20Between%20LinkML%20Schemas0.png) + + _[https://rml\.io/yarrrml/](https://rml.io/yarrrml/)_ + +# YARRRML notes + +* Has a playground\, which is great +* Mixes two concerns: + * 1\. Isomorphic structural mapping between JSON/TSVs and RDF \(already covered by JSON\-LD\) + * 2\. Mapping + * This isn’t necessarily bad \- it’s quite practical\, but a little unsatisfying IMO + +# jsonpath-lifter + +![](img/Mapping%20Between%20LinkML%20Schemas1.png) + +![](img/Mapping%20Between%20LinkML%20Schemas2.png) + +![](img/Mapping%20Between%20LinkML%20Schemas3.png) + +![](img/Mapping%20Between%20LinkML%20Schemas4.png) + +![](img/Mapping%20Between%20LinkML%20Schemas5.png) + +![](img/Mapping%20Between%20LinkML%20Schemas6.png) + +![](img/Mapping%20Between%20LinkML%20Schemas7.png) + +Was proposed for CCDH CRDC\-node mappings + +Doesn’t seem widely used + +Is there a big advantage over simply writing javascript functions? + +# Koza (previously: bioweave) + +![](img/Mapping%20Between%20LinkML%20Schemas8.png) + +![](img/Mapping%20Between%20LinkML%20Schemas9.png) + +# ETL frameworks + +* There are many many ETL frameworks + * E\.g\. WebKarma +* Inherently mixing of concerns + * Here we are concerned with the “T” part +* Do existing frameworks separate out the T as a modular composable component? + * I’m not sure + +# Do we need Yet Another Mapping Framework? + +* LinkML philosophy: +* Embrace\, extend\, _parasitize_ +* Develop lightweight ways to map + * Map mappings to existing mapping frameworks + * This actually makes sense even if it sounds kind of meta… + +# Level 0 Mapping: Isomorphic, same URIs + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +classes: + +Agent: + +class\_uri: __sdo:Person__ + +attributes: + +surname: + +slot\_uri: __sdo:familyName__ + +home\_address: + +slot\_uri: __sdo:address__ + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +# Level 0: handled by standard linkml convert to/from RDF + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +classes: + +Agent: + +class\_uri: __sdo:Person__ + +attributes: + +surname: + +slot\_uri: __sdo:familyName__ + +home\_address: + +slot\_uri: __sdo:address__ + +_data2 \(yaml/json\)_ + +_d_ _ata1 \(yaml/json\)_ + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +_d_ _ata1\.ttl == data2\.ttl_ + +\[sdo:familyName “Wu” ; + +sdo:address “1 my street\, Oakville” + +\] + +# Level 0: Enums TODO: add example here. Basically this works the same way + +# Level 0: HOWTO + +Compose two commands: + +linkml\-convert \-s schema1\.yaml data1\.yaml \-o data1\.ttl + +linkml\-convert \-s schema2\.yaml data1\.ttl \-o data2\.yaml + +That’s it\! + +TODO: + +Write a wrapper \(linkml\-map\-data?\) that does this in one command + +# Level 0: other considerations + +* Going via RDF in theory eliminates inlining differences + * E\.g\. s1 inlines address objects\, s2 uses references \(inlined: false\) and includes a separate index slot for addresses +* Current status: + * Currently when going from s1 to s2\, no index slots are generated + * This could be done as part of the general rdflib framework + +# Lessons learned so far: annotate your schema with URIs! + +* Annotating schemas with URIs is _optional_ with LinkML + * But your future self and data users will thank you for careful schema annotation\! +* Hints: + * Schema\-automator can provide suggestions for your element and enum URIs + * Sometimes plain semweb URIs \(e\.g\. schema\.org\) can be easier for interoperation than overly granular OBO ones + * E\.g modeling Personhood as a _role_ vs straightforward schema:Person + +# Level 1 Mapping: Isomorphic, different URIs + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +# Level 1 Mapping: mediated by URI mapping + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +| subject_id | object_id | +| :-: | :-: | +| sdo:Person | NCBITaxon:9606 | +| sdo:familyName | IAO:nnnn | +| sdo:address | IAO:0000422 | + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +\[sdo:familyName “Wu” + +sdo:address “1 my street\, Oakville” + +\] + +\[sdo:familyName “Wu” + +sdo:address “1 my street\, Oakville” + +\] + +# Level 1: HOWTO + +* Compose three commands: +* linkml\-convert \-s schema1\.yaml data1\.yaml \-o data1\.ttl +* sssom\-map\-iris \-i data1\.ttl \-m schema1\-to\-schema2\.sssom\.tsv \-o data2\.ttl +* linkml\-convert \-s schema2\.yaml data2\.ttl \-o data2\.yaml +* That’s it\! +* TODO: +* sssom\-map\-iris does not yet exist \(?\)\, but should be trivial +* Fold into wrapper CLI tool +* Nuances: +* Schemas have nuanced differences: not everything with be skos:exact +* We can distinguish 3 flavors of level 1 mapping: + * Precise\, bidirectional: follow exact only + * Valid\, unidirectional: follow exact \+ broad + * Loose: any mapping + +# Level 1 variant: mappings in schema + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +__ __ exact\_mappings: \[“NCBITaxon:9606”\] + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +__ exact\_mappings: \[“IAO:nnnn”\]__ + +address: + +slot\_uri: __sdo:address__ + +__ exact\_mappings: \[“IAO:0000422”\]__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +\[sdo:familyName “Wu” + +sdo:address “1 my street\, Oakville” + +\] + +\[sdo:familyName “Wu” + +sdo:address “1 my street\, Oakville” + +\] + +# Advantages of RDF as an intermediate + +* Use of IRIs +* Separation of concerns + * Structural differences \(e\.g\. inlining\) are already handled by linkml convert + * Allows us to focus on semantic mappings + +# Lessons learned so far: think about mappings + +![](img/Mapping%20Between%20LinkML%20Schemas10.png) + +![](img/Mapping%20Between%20LinkML%20Schemas11.png) + +_[https://linkml\.io/linkml/faq/modeling\.html\#when\-is\-it\-important\-to\-have\-mappings](https://linkml.io/linkml/faq/modeling.html#when-is-it-important-to-have-mappings)_ + +_[https://github\.com/alliance\-genome/agr\_curation\_schema/blob/main/model/schema/agent\.yaml](https://github.com/alliance-genome/agr_curation_schema/blob/main/model/schema/agent.yaml)_ + +# More complex mappings: level 2 and above + +* TODO: define levels 2 and above +* Examples of kinds of features: + * merging/splitting fields; e\.g\. full\_name = first \+ “ “ \+ last + * Unit conversion or baked\-in units to explicit units + * Normalization/denormalization \(aka flattening\) + * Complex logic + * If conditions A\, B\, C and not D are met then copy field F from X to Y + +# LinkML Rule and Inference Framework + +* Current use case is __intra\-schema__ inference + * Easy to invoke on command line + * Needs more docs\! +* Could form basis of __inter\-schema__ DSL +* Examples + * Schemas differ in units + * Schemas differ in categorical vs quantitative + +![](img/Mapping%20Between%20LinkML%20Schemas12.png) + +Current use case is __intra\-schema__ inference + +Could form basis of __inter\-schema__ DSL + +![](img/Mapping%20Between%20LinkML%20Schemas13.png) + +# Datalog + +Datalog could serve as the powerful basis of an expressive declarative transformation language + +![](img/Mapping%20Between%20LinkML%20Schemas14.png) + +_[https://linkml\.io/linkml\-datalog](https://linkml.io/linkml-datalog)_ + +# Approach for level 2+ + +* Do we even want a generic mapping framework in LinkML here? +* This is a good “ __parasitization__ hook” + * Do complex stuff using an existing framework + * TBD: derive or semi\-derive mapping specification? +* This is also a code bespoke procedural code hook + * Do the generic stuff with linkml\-convert and isomorphic IRI mapping + * Do more complex stuff in code + +# General approach for level 2+; same to same + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +JSON _OR_ XML _OR_ YAML _OR_ RDF _OR_ SQL + +__JSON __ _OR_ __ XML __ _OR_ __ YAML __ _OR_ __ RDF __ _OR_ __ SQL__ + +__\(matches the one on the left\)__ + +__Existing __ __mapping__ __ framework \(X to X\)__ + +# Example of same-to-same: jsonpath-lifter + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +__Jsonpath\-lifter \(JSON to JSON\)__ + +# Example of same-to-same: awk + +# Example of same-to-same: SQL + +INSERT INTO Agent AS SELECT + +Person\.last\_name AS Agent\.surname\, + +CONCAT\(Person\.full\_name\, “ “\, Person\.first\) AS Agent\.full\_name\, + +… + +CONSTRUCT \{ + +\[ + +a schema:Person ; + +my:fullName STRCAT\(\.\.\.\) + +\] + +\} + +WHERE \{ + +?person a schema:Person ; + +schema:firstName ; + +schema:lastName ; + +… + +\} + +__SPARQL CONSTRUCT__ + +__RDF__ __ Engine or Triplestore__ + +# Example of same-to-same: Python (LinkML objects) + +def convert\(p: Person\) \-> Agent: + +return Agent\(p\.id\, + +full\_name=f”\{\.\.\} \{\.\.\}”\, + +… + +__Conversion script__ + +# General approach for level 2+; heteromorphic + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +_L_ _inkml\-convert_ + +_OPTIONAL_ + +_L_ _inkml\-convert_ + +_OPTIONAL_ + +JSON _OR_ XML _OR_ YAML _OR_ RDF _OR_ SQL + +__JSON __ _OR_ __ XML __ _OR_ __ YAML __ _OR_ __ RDF __ _OR_ __ SQL__ + +__\(__ _different_ __ from the one on the left\)__ + +__Existing mapping framework \(X to Y\)__ + +# Example: YARRRML + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +![](img/Mapping%20Between%20LinkML%20Schemas15.png) + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +__YARRRML \(JSON/YAML to RDF\)__ + +# Example: YARRRML, native mappings + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +__mapping\.yarrrml\.yml__ + +# Example: YARRRML, compiled mappings + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +Mappings __:__ + +__ … \< TO BE DEFINED LINKML MAPPING SPEC >__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +__mapping\.yarrrml\.yml__ + +# Hyperparasitism is good + +name: example\-semweb\-schema + +classes: + +Person: + +class\_uri: __sdo:Person__ + +attributes: + +family\_name: + +slot\_uri: __sdo:familyName__ + +address: + +slot\_uri: __sdo:address__ + +Mappings __:__ + +__ … \< TO BE DEFINED LINKML MAPPING SPEC >__ + +name: example\-OBO\-schema + +classes: + +Person: + +class\_uri: __NCBITaxon:9606__ \#\# Homo sapiens + +attributes: + +surname: + +slot\_uri: __IAO:0000590__ \#\# written name + +home\_address: + +slot\_uri: __IAO:0000422__ \#\# postal address + +__mapping\.yarrrml\.yml__ + +family\_name: Wu + +address: 1 my street\, Oakville + +surname: Wu + +home\_address: 1 my street\, Oakville + +# Alternative: Direct translation language + +* Desiderata +* Ability to compile to scalable frameworks + * E\.g\. compile to SQL +* Simple for simple tasks +* Layer on existing expression language + * Provides path to safe subset of host language \(Python\) + * Can be easily implemented in other languages + +![](img/Mapping%20Between%20LinkML%20Schemas16.png) + +![](img/Mapping%20Between%20LinkML%20Schemas17.png) + +# Normalized to Denormalized (modeling SSSOM) + +SQL INSERT \(or CREATE VIEW\) + +![](img/Mapping%20Between%20LinkML%20Schemas18.png) + +SQL FROM Clause + +\(implicit INNER JOIN/WHERE\) + +SQL SELECT … AS clause + +# Relationship to profiles TODO + +Profiles/IGs can be seen as a sub\-case of schema mapping + +# Current progress + +_[https://github\.com/linkml/linkml/issues/533](https://github.com/linkml/linkml/issues/533)_ map to YARRRML + +Vincent Vemonet has started on linkml\->rml + +_[https://github\.com/vemonet/linkml/blob/add\-gen\-rml/linkml/generators/rmlgen\.py](https://github.com/vemonet/linkml/blob/add-gen-rml/linkml/generators/rmlgen.py)_ + +# Relationship to Koza + +# Koza ingests often require multiple files + +![](img/Mapping%20Between%20LinkML%20Schemas19.png) + +![](img/Mapping%20Between%20LinkML%20Schemas20.png) + +# See Also + +Revisiting BioWeave \(Kent Shefchek\, 2020?\) + +_[https://docs\.google\.com/presentation/d/1DYiWXoz3iHM2PvMFD0hRpJ544tnHawg00PBwNuESo44/edit\#slide=id\.gb33d7ddd1b\_0\_93](https://docs.google.com/presentation/d/1DYiWXoz3iHM2PvMFD0hRpJ544tnHawg00PBwNuESo44/edit#slide=id.gb33d7ddd1b_0_93)_ + +# Automating mapping + +* Should we pursue approaches to automate mapping? + * Some of the functionality is already in schema\-automator\. E\.g\. auto\-annotating schema elements using ontologies +* Isomorphic schema mapping discovery analogous to ontology mapping + * Can a boomer type approach help? + * E\.g\. given multiple loose mappings with alternative interpretations\, which ones give coherent results +* Other approaches + * Inductive Logic Programming: transformations as logic programs + * Genetic programming: transformations as lambda functions + * Deep Learning: e\.g\. Language Models for translation +* There is already a rich literature spanning decades here to be parasitized… + +# Summary: just tell me what to do today + +* For isomorphic mappings: + * Stay within LinkML/SSSOM + * No need for custom code\, it all works +* For complex mappings: + * It depends\! + * Do the structural mapping with linkml\-convert + * Implement the complex logic as you see fit\, depending on multiple factors\. Any of the following may be valid + * Koza + * Awk + * SPARQL CONSTRUCTS or SELECTS + * Custom python + * YARRRML + * SQL INSERTs + * XSLT + * Jsonpath\-lifter + * …\. + +# Roadmap + +* 2022: Continue to gather use cases\, experiment +* 2023: If funding permits + * Extend metamodel to include complex mapping + * Implement EITHER + * Parasitizing converters + * Direct mapping framework + * TBD: Is this Koza2? + diff --git a/docs/schema/permissible_value_derivations.md b/docs/schema/permissible_value_derivations.md new file mode 100644 index 0000000..e470ae8 --- /dev/null +++ b/docs/schema/permissible_value_derivations.md @@ -0,0 +1,75 @@ + + +# Slot: permissible_value_derivations + + +_Instructions on how to derive a set of PVs in the target schema_ + + + +URI: [linkmltr:permissible_value_derivations](https://w3id.org/linkml/transformer/permissible_value_derivations) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | + + + + + + + +## Properties + +* Range: [PermissibleValueDerivation](PermissibleValueDerivation.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: permissible_value_derivations +description: Instructions on how to derive a set of PVs in the target schema +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: permissible_value_derivations +owner: EnumDerivation +domain_of: +- EnumDerivation +range: PermissibleValueDerivation +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/populated_from.md b/docs/schema/populated_from.md new file mode 100644 index 0000000..9d3aada --- /dev/null +++ b/docs/schema/populated_from.md @@ -0,0 +1,60 @@ + + +# Slot: populated_from + +URI: [linkmltr:populated_from](https://w3id.org/linkml/transformer/populated_from) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: populated_from +alias: populated_from +domain_of: +- ClassDerivation +- SlotDerivation +- EnumDerivation +- PermissibleValueDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/prefixes.md b/docs/schema/prefixes.md new file mode 100644 index 0000000..309676e --- /dev/null +++ b/docs/schema/prefixes.md @@ -0,0 +1,76 @@ + + +# Slot: prefixes + + +_maps prefixes to URL expansions_ + + + +URI: [sh:declare](http://www.w3.org/ns/shacl#declare) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: [KeyVal](KeyVal.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: prefixes +description: maps prefixes to URL expansions +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: sh:declare +multivalued: true +alias: prefixes +owner: TransformationSpecification +domain_of: +- TransformationSpecification +range: KeyVal +inlined: true + +``` +
\ No newline at end of file diff --git a/docs/schema/range.md b/docs/schema/range.md new file mode 100644 index 0000000..e28aa8e --- /dev/null +++ b/docs/schema/range.md @@ -0,0 +1,66 @@ + + +# Slot: range + +URI: [linkml:range](https://w3id.org/linkml/range) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: range +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: linkml:range +alias: range +owner: SlotDerivation +domain_of: +- SlotDerivation +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/reversed.md b/docs/schema/reversed.md new file mode 100644 index 0000000..b5bc137 --- /dev/null +++ b/docs/schema/reversed.md @@ -0,0 +1,65 @@ + + +# Slot: reversed + +URI: [linkmltr:reversed](https://w3id.org/linkml/transformer/reversed) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [StringificationConfiguration](StringificationConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [Boolean](Boolean.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: reversed +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: reversed +owner: StringificationConfiguration +domain_of: +- StringificationConfiguration +range: boolean + +``` +
\ No newline at end of file diff --git a/docs/schema/same_as.md b/docs/schema/same_as.md new file mode 100644 index 0000000..d9c3d08 --- /dev/null +++ b/docs/schema/same_as.md @@ -0,0 +1,32 @@ +# Slot: same_as +_Name of the class in the source schema_ + + +URI: [https://w3id.org/linkml/transformer/same_as](https://w3id.org/linkml/transformer/same_as) + + + + + + +## Properties + + * Range: [xsd:string](xsd:string) + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + diff --git a/docs/schema/session.md b/docs/schema/session.md new file mode 100644 index 0000000..332b3f3 --- /dev/null +++ b/docs/schema/session.md @@ -0,0 +1,4 @@ +# Session + +::: linkml_map.session.Session + diff --git a/docs/schema/slot_derivations.md b/docs/schema/slot_derivations.md new file mode 100644 index 0000000..81ac4b6 --- /dev/null +++ b/docs/schema/slot_derivations.md @@ -0,0 +1,56 @@ + + +# Slot: slot_derivations + +URI: [linkmltr:slot_derivations](https://w3id.org/linkml/transformer/slot_derivations) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: slot_derivations +alias: slot_derivations +domain_of: +- TransformationSpecification +- ClassDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/slot_name.md b/docs/schema/slot_name.md new file mode 100644 index 0000000..4b9b99b --- /dev/null +++ b/docs/schema/slot_name.md @@ -0,0 +1,64 @@ + + +# Slot: slot_name + +URI: [linkmltr:slot_name](https://w3id.org/linkml/transformer/slot_name) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [Inverse](Inverse.md) | Used for back references in mapping to relational model | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: slot_name +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: slot_name +owner: Inverse +domain_of: +- Inverse + +``` +
\ No newline at end of file diff --git a/docs/schema/source_magnitude_slot.md b/docs/schema/source_magnitude_slot.md new file mode 100644 index 0000000..14b60c0 --- /dev/null +++ b/docs/schema/source_magnitude_slot.md @@ -0,0 +1,64 @@ + + +# Slot: source_magnitude_slot + +URI: [linkmltr:source_magnitude_slot](https://w3id.org/linkml/transformer/source_magnitude_slot) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: source_magnitude_slot +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: source_magnitude_slot +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/source_schema.md b/docs/schema/source_schema.md new file mode 100644 index 0000000..0c68a78 --- /dev/null +++ b/docs/schema/source_schema.md @@ -0,0 +1,70 @@ + + +# Slot: source_schema + + +_name of the schema that describes the source (input) objects_ + + + +URI: [linkmltr:source_schema](https://w3id.org/linkml/transformer/source_schema) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: source_schema +description: name of the schema that describes the source (input) objects +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: source_schema +owner: TransformationSpecification +domain_of: +- TransformationSpecification + +``` +
\ No newline at end of file diff --git a/docs/schema/source_unit.md b/docs/schema/source_unit.md new file mode 100644 index 0000000..7e54fdc --- /dev/null +++ b/docs/schema/source_unit.md @@ -0,0 +1,64 @@ + + +# Slot: source_unit + +URI: [linkmltr:source_unit](https://w3id.org/linkml/transformer/source_unit) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: source_unit +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: source_unit +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/source_unit_scheme.md b/docs/schema/source_unit_scheme.md new file mode 100644 index 0000000..01f2ab7 --- /dev/null +++ b/docs/schema/source_unit_scheme.md @@ -0,0 +1,74 @@ + + +# Slot: source_unit_scheme + +URI: [linkmltr:source_unit_scheme](https://w3id.org/linkml/transformer/source_unit_scheme) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + + +## Examples + +| Value | +| --- | +| ucum | + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: source_unit_scheme +examples: +- value: ucum +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: source_unit_scheme +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/source_unit_slot.md b/docs/schema/source_unit_slot.md new file mode 100644 index 0000000..815dfff --- /dev/null +++ b/docs/schema/source_unit_slot.md @@ -0,0 +1,64 @@ + + +# Slot: source_unit_slot + +URI: [linkmltr:source_unit_slot](https://w3id.org/linkml/transformer/source_unit_slot) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: source_unit_slot +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: source_unit_slot +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/sources.md b/docs/schema/sources.md new file mode 100644 index 0000000..9e8e7c8 --- /dev/null +++ b/docs/schema/sources.md @@ -0,0 +1,60 @@ + + +# Slot: sources + +URI: [linkmltr:sources](https://w3id.org/linkml/transformer/sources) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + + +## LinkML Source + +
+```yaml +name: sources +alias: sources +domain_of: +- ClassDerivation +- SlotDerivation +- EnumDerivation +- PermissibleValueDerivation + +``` +
\ No newline at end of file diff --git a/docs/schema/stringification.md b/docs/schema/stringification.md new file mode 100644 index 0000000..2f9bab9 --- /dev/null +++ b/docs/schema/stringification.md @@ -0,0 +1,65 @@ + + +# Slot: stringification + +URI: [linkmltr:stringification](https://w3id.org/linkml/transformer/stringification) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [StringificationConfiguration](StringificationConfiguration.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: stringification +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: stringification +owner: SlotDerivation +domain_of: +- SlotDerivation +range: StringificationConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/syntax.md b/docs/schema/syntax.md new file mode 100644 index 0000000..263bdb1 --- /dev/null +++ b/docs/schema/syntax.md @@ -0,0 +1,76 @@ + + +# Slot: syntax + +URI: [linkmltr:syntax](https://w3id.org/linkml/transformer/syntax) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [StringificationConfiguration](StringificationConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [SerializationSyntaxType](SerializationSyntaxType.md) + + + + + + +## Examples + +| Value | +| --- | +| json | +| yaml | + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: syntax +examples: +- value: json +- value: yaml +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: syntax +owner: StringificationConfiguration +domain_of: +- StringificationConfiguration +range: SerializationSyntaxType + +``` +
\ No newline at end of file diff --git a/docs/schema/target_magnitude_slot.md b/docs/schema/target_magnitude_slot.md new file mode 100644 index 0000000..1aa58b6 --- /dev/null +++ b/docs/schema/target_magnitude_slot.md @@ -0,0 +1,64 @@ + + +# Slot: target_magnitude_slot + +URI: [linkmltr:target_magnitude_slot](https://w3id.org/linkml/transformer/target_magnitude_slot) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: target_magnitude_slot +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: target_magnitude_slot +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/target_schema.md b/docs/schema/target_schema.md new file mode 100644 index 0000000..ab06533 --- /dev/null +++ b/docs/schema/target_schema.md @@ -0,0 +1,70 @@ + + +# Slot: target_schema + + +_name of the schema that describes the target (output) objects_ + + + +URI: [linkmltr:target_schema](https://w3id.org/linkml/transformer/target_schema) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: target_schema +description: name of the schema that describes the target (output) objects +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: target_schema +owner: TransformationSpecification +domain_of: +- TransformationSpecification + +``` +
\ No newline at end of file diff --git a/docs/schema/target_unit.md b/docs/schema/target_unit.md new file mode 100644 index 0000000..631ab38 --- /dev/null +++ b/docs/schema/target_unit.md @@ -0,0 +1,64 @@ + + +# Slot: target_unit + +URI: [linkmltr:target_unit](https://w3id.org/linkml/transformer/target_unit) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: target_unit +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: target_unit +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/target_unit_scheme.md b/docs/schema/target_unit_scheme.md new file mode 100644 index 0000000..5447d31 --- /dev/null +++ b/docs/schema/target_unit_scheme.md @@ -0,0 +1,74 @@ + + +# Slot: target_unit_scheme + +URI: [linkmltr:target_unit_scheme](https://w3id.org/linkml/transformer/target_unit_scheme) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + + +## Examples + +| Value | +| --- | +| ucum | + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: target_unit_scheme +examples: +- value: ucum +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: target_unit_scheme +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/target_unit_slot.md b/docs/schema/target_unit_slot.md new file mode 100644 index 0000000..16a5030 --- /dev/null +++ b/docs/schema/target_unit_slot.md @@ -0,0 +1,64 @@ + + +# Slot: target_unit_slot + +URI: [linkmltr:target_unit_slot](https://w3id.org/linkml/transformer/target_unit_slot) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: target_unit_slot +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: target_unit_slot +owner: UnitConversionConfiguration +domain_of: +- UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/title.md b/docs/schema/title.md new file mode 100644 index 0000000..3543db3 --- /dev/null +++ b/docs/schema/title.md @@ -0,0 +1,71 @@ + + +# Slot: title + + +_human readable title for this transformation specification_ + + + +URI: [dcterms:title](http://purl.org/dc/terms/title) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | no | + + + + + + + +## Properties + +* Range: NONE + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: title +description: human readable title for this transformation specification +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +slot_uri: dcterms:title +alias: title +owner: TransformationSpecification +domain_of: +- TransformationSpecification + +``` +
\ No newline at end of file diff --git a/docs/schema/transformer.md b/docs/schema/transformer.md new file mode 100644 index 0000000..7612565 --- /dev/null +++ b/docs/schema/transformer.md @@ -0,0 +1,10 @@ +# Transformer Package + +## Transformer (Base Class) + +::: linkml_map.transformer.transformer.Transformer + +## ObjectTransformer + +::: linkml_map.transformer.object_transformer.ObjectTransformer + diff --git a/docs/schema/type_designator.md b/docs/schema/type_designator.md new file mode 100644 index 0000000..5794c49 --- /dev/null +++ b/docs/schema/type_designator.md @@ -0,0 +1,65 @@ + + +# Slot: type_designator + +URI: [linkmltr:type_designator](https://w3id.org/linkml/transformer/type_designator) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [Boolean](Boolean.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: type_designator +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: type_designator +owner: SlotDerivation +domain_of: +- SlotDerivation +range: boolean + +``` +
\ No newline at end of file diff --git a/docs/schema/types.md b/docs/schema/types.md new file mode 100644 index 0000000..557e79b --- /dev/null +++ b/docs/schema/types.md @@ -0,0 +1,6 @@ +# types + +Shared type definitions for the core LinkML mode and metamodel + +URI: https://w3id.org/linkml/types + diff --git a/docs/schema/unit.md b/docs/schema/unit.md new file mode 100644 index 0000000..0afad10 --- /dev/null +++ b/docs/schema/unit.md @@ -0,0 +1,62 @@ +# Slot: unit + +URI: [linkmltr:unit](https://w3id.org/linkml/transformer/unit) + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +[SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [String](String.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: unit +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: unit +owner: SlotDerivation +domain_of: +- SlotDerivation +range: string + +``` +
\ No newline at end of file diff --git a/docs/schema/unit_conversion.md b/docs/schema/unit_conversion.md new file mode 100644 index 0000000..74dc286 --- /dev/null +++ b/docs/schema/unit_conversion.md @@ -0,0 +1,65 @@ + + +# Slot: unit_conversion + +URI: [linkmltr:unit_conversion](https://w3id.org/linkml/transformer/unit_conversion) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | + + + + + + + +## Properties + +* Range: [UnitConversionConfiguration](UnitConversionConfiguration.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: unit_conversion +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: unit_conversion +owner: SlotDerivation +domain_of: +- SlotDerivation +range: UnitConversionConfiguration + +``` +
\ No newline at end of file diff --git a/docs/schema/value.md b/docs/schema/value.md new file mode 100644 index 0000000..b281cf4 --- /dev/null +++ b/docs/schema/value.md @@ -0,0 +1,65 @@ + + +# Slot: value + +URI: [linkmltr:value](https://w3id.org/linkml/transformer/value) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [KeyVal](KeyVal.md) | | no | + + + + + + + +## Properties + +* Range: [Any](Any.md) + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: value +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +alias: value +owner: KeyVal +domain_of: +- KeyVal +range: Any + +``` +
\ No newline at end of file diff --git a/docs/schema/value_mappings.md b/docs/schema/value_mappings.md new file mode 100644 index 0000000..3501dc4 --- /dev/null +++ b/docs/schema/value_mappings.md @@ -0,0 +1,80 @@ + + +# Slot: value_mappings + + +_A mapping table that is applied directly to mappings, in order of precedence_ + + + +URI: [linkmltr:value_mappings](https://w3id.org/linkml/transformer/value_mappings) + + + + + + + + + +## Applicable Classes + +| Name | Description | Modifies Slot | +| --- | --- | --- | +| [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enu... | no | +| [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class | no | +| [PrefixDerivation](PrefixDerivation.md) | | no | +| [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slo... | no | +| [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | no | +| [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to deri... | no | + + + + + + + +## Properties + +* Range: [KeyVal](KeyVal.md) + +* Multivalued: True + + + + + +## Identifier and Mapping Information + + + + + + + +### Schema Source + + +* from schema: https://w3id.org/linkml/transformer + + + + +## LinkML Source + +
+```yaml +name: value_mappings +description: A mapping table that is applied directly to mappings, in order of precedence +from_schema: https://w3id.org/linkml/transformer +rank: 1000 +multivalued: true +alias: value_mappings +owner: ElementDerivation +domain_of: +- ElementDerivation +range: KeyVal +inlined: true + +``` +
\ No newline at end of file diff --git a/src/docs/specification/compliance.md b/docs/specification/compliance.md similarity index 97% rename from src/docs/specification/compliance.md rename to docs/specification/compliance.md index 277d9bd..2befcb5 100644 --- a/src/docs/specification/compliance.md +++ b/docs/specification/compliance.md @@ -18,6 +18,11 @@ LinkML-Map Compliance Suite This is the output from running the full compliance test suite. +``` {.yaml} +Time_executed: 2024-07-03 +Package: /Users/cjm/repos/linkml-map/tests/test_compliance/test_compliance_suite.py +``` + It is organized into **Feature Sets** that test a particular feature or group of features, and **combinations** of different schemas, input objects, and transformation specifications. This is intended to @@ -843,17 +848,17 @@ Test mapping between collection data types (lists and dicts). This makes use of the `cast_collection_as` construct -- **source\_datatype**: -- **target\_datatype**: -- **source\_value**: -- **target\_value**: -- **invertible**: +- **source\_datatype**: linkml datatype of source object +- **target\_datatype**: linkml datatype of target object +- **source\_value**: value of source object +- **target\_value**: expected value of slot in target object +- **invertible**: True if the transformation is invertible ### Combo: test\_map\_collections\[string-string-source\_value0-target\_value0-True\] Mapping `string` =\> `string` -Isomorphic mapping: input should equal output +Isomorphic mapping: **input must equal output** **Source Schema**: @@ -877,8 +882,8 @@ classes: attributes: ds: name: ds - multivalued: true range: D + multivalued: true inlined: true inlined_as_list: true tree_root: true @@ -964,10 +969,10 @@ classes: attributes: ds: name: ds - multivalued: true domain_of: - C range: D + multivalued: true inlined: true inlined_as_list: false tree_root: true @@ -1018,7 +1023,7 @@ class_derivations: Mapping `string` =\> `string` -Isomorphic mapping: input should equal output +Isomorphic mapping: **input must equal output** **Source Schema**: @@ -1042,8 +1047,8 @@ classes: attributes: ds: name: ds - multivalued: true range: D + multivalued: true inlined: true inlined_as_list: false tree_root: true @@ -1128,10 +1133,10 @@ classes: attributes: ds: name: ds - multivalued: true domain_of: - C range: D + multivalued: true inlined: true inlined_as_list: true tree_root: true @@ -1197,6 +1202,11 @@ Limitations: At this time, the framework cannot generate a complete derived schema or inversion for expressions. This will be fixed in future. +- See also: [LinkML + Expressions](https://linkml.io/linkml/schemas/expression-language.html) + + + - **expr**: pythonic expression - **source\_object**: source object - **target\_value**: expected value of slot in target object @@ -1760,12 +1770,12 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true s2: name: s2 - multivalued: true range: string + multivalued: true tree_root: true ``` @@ -1853,8 +1863,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true tree_root: true ``` @@ -2017,7 +2027,7 @@ cases where UCUM uses non-standard units (e.g. Cel, mo), as well as UCUM-specific syntax (e.g. `m.s-1`) and extensions (e.g. using annotations like `{Cre}`). -Developers note: to run this test, the units extension should be +*Developers note*: to run this test, the units extension should be installed: `poetry install -E units` @@ -2035,7 +2045,7 @@ This installs the `pint` framework. ### Combo: test\_simple\_unit\_conversion\[s1-s1-m-cm-ucum\_code-1.0-100.0-None-None\] {#combo-test_simple_unit_conversions1-s1-m-cm-ucum_code-10-1000-none-none} -Unit Conversion: 1.0 `m` =\> 100.0 `cm [with s1]` +Unit Conversion: `1.0` `m` =\> `100.0` `cm` \[with s1\] **Source Schema**: @@ -2144,7 +2154,7 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m-cm-symbol-1.0-100.0-None-None\] {#combo-test_simple_unit_conversions1-s1-m-cm-symbol-10-1000-none-none} -Unit Conversion: 1.0 `m` =\> 100.0 `cm [with s1]` +Unit Conversion: `1.0` `m` =\> `100.0` `cm` \[with s1\] **Source Schema**: @@ -2253,9 +2263,9 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m-m-ucum\_code-1.0-1.0-None-None\] {#combo-test_simple_unit_conversions1-s1-m-m-ucum_code-10-10-none-none} -Unit Conversion: 1.0 `m` =\> 1.0 `m [with s1]` +Unit Conversion: `1.0` `m` =\> `1.0` `m` \[with s1\] -Isomorphic mapping: input should equal output **Source Schema**: +Isomorphic mapping: **input must equal output** **Source Schema**: ``` {.yaml} name: types @@ -2362,7 +2372,7 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-a-mo-ucum\_code-10.0-120.0-None-None\] {#combo-test_simple_unit_conversions1-s1-a-mo-ucum_code-100-1200-none-none} -Unit Conversion: 10.0 `a` =\> 120.0 `mo [with s1]` +Unit Conversion: `10.0` `a` =\> `120.0` `mo` \[with s1\] **Source Schema**: @@ -2471,7 +2481,7 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-a-mo-symbol-10.0-None-UndefinedUnitError-None\] {#combo-test_simple_unit_conversions1-s1-a-mo-symbol-100-none-undefineduniterror-none} -Unit Conversion: 10.0 `a` =\> None `mo [with s1]` +Unit Conversion: `10.0` `a` =\> `None` `mo` \[with s1\] **Source Schema**: @@ -2565,7 +2575,7 @@ classes: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m-ml-ucum\_code-1.0-None-DimensionalityError-None\] {#combo-test_simple_unit_conversions1-s1-m-ml-ucum_code-10-none-dimensionalityerror-none} -Unit Conversion: 1.0 `m` =\> None `ml [with s1]` +Unit Conversion: `1.0` `m` =\> `None` `ml` \[with s1\] **Source Schema**: @@ -2659,7 +2669,7 @@ classes: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m-pinknoodles-ucum\_code-1.0-None-UndefinedUnitError-None\] {#combo-test_simple_unit_conversions1-s1-m-pinknoodles-ucum_code-10-none-undefineduniterror-none} -Unit Conversion: 1.0 `m` =\> None `pinknoodles [with s1]` +Unit Conversion: `1.0` `m` =\> `None` `pinknoodles` \[with s1\] **Source Schema**: @@ -2753,7 +2763,7 @@ classes: ### Combo: test\_simple\_unit\_conversion\[s1-s1-ml-m-ucum\_code-1.0-None-DimensionalityError-None\] {#combo-test_simple_unit_conversions1-s1-ml-m-ucum_code-10-none-dimensionalityerror-none} -Unit Conversion: 1.0 `ml` =\> None `m [with s1]` +Unit Conversion: `1.0` `ml` =\> `None` `m` \[with s1\] **Source Schema**: @@ -2847,7 +2857,7 @@ classes: ### Combo: test\_simple\_unit\_conversion\[s1-s1-pinknoodles-m-ucum\_code-1.0-None-UndefinedUnitError-None\] {#combo-test_simple_unit_conversions1-s1-pinknoodles-m-ucum_code-10-none-undefineduniterror-none} -Unit Conversion: 1.0 `pinknoodles` =\> None `m [with s1]` +Unit Conversion: `1.0` `pinknoodles` =\> `None` `m` \[with s1\] **Source Schema**: @@ -2941,7 +2951,7 @@ classes: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m/s-cm/s-ucum\_code-1.0-100.0-None-None\] {#combo-test_simple_unit_conversions1-s1-ms-cms-ucum_code-10-1000-none-none} -Unit Conversion: 1.0 `m/s` =\> 100.0 `cm/s [with s1]` +Unit Conversion: `1.0` `m/s` =\> `100.0` `cm/s` \[with s1\] **Source Schema**: @@ -3050,7 +3060,7 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m.s-1-cm.s-1-ucum\_code-1.0-100.0-None-None\] {#combo-test_simple_unit_conversions1-s1-ms-1-cms-1-ucum_code-10-1000-none-none} -Unit Conversion: 1.0 `m.s-1` =\> 100.0 `cm.s-1 [with s1]` +Unit Conversion: `1.0` `m.s-1` =\> `100.0` `cm.s-1` \[with s1\] **Source Schema**: @@ -3162,7 +3172,7 @@ class_derivations: s\#\#\# Combo: test\_simple\_unit\_conversion\[height\_in\_m-height\_in\_cm-m-cm-ucum\_code-1.0-100.0-None-None\] -Unit Conversion: 1.0 `m` =\> 100.0 `cm [with height_in_m]` +Unit Conversion: `1.0` `m` =\> `100.0` `cm` \[with height\_in\_m\] **Source Schema**: @@ -3271,9 +3281,10 @@ class_derivations: ### Combo: test\_simple\_unit\_conversion\[s1-s1-m\[H2O\]{35Cel}-m\[H2O\]{35Cel}-ucum\_code-1.0-1.0-None-None\] {#combo-test_simple_unit_conversions1-s1-mh2o35cel-mh2o35cel-ucum_code-10-10-none-none} -Unit Conversion: 1.0 `m[H2O]{35Cel}` =\> 1.0 `m[H2O]{35Cel} [with s1]` +Unit Conversion: `1.0` `m[H2O]{35Cel}` =\> `1.0` `m[H2O]{35Cel}` \[with +s1\] -Isomorphic mapping: input should equal output **Source Schema**: +Isomorphic mapping: **input must equal output** **Source Schema**: ``` {.yaml} name: types @@ -3383,12 +3394,19 @@ Feature Set: test\_complex\_unit\_conversion Test unit conversion, from complex object to simple scalar. -- **source\_unit**: -- **target\_unit**: -- **source\_value**: -- **target\_value**: -- **roundtrip\_object**: -- **err**: +An example complex object would be an object with separate attributes +for representing magnitude (value) and unit. + +For example `magnitude: 1.0, unit: "m"` + +- **source\_unit**: unit of source slot +- **target\_unit**: unit of target slot +- **source\_value**: magnitude of source slot (to be converted) +- **target\_value**: expected magnitude of target slot (output of + conversion) +- **roundtrip\_object**: expected value of passing target object back + through inverted transformation +- **err**: True if expected to raise an Error ### Combo: test\_complex\_unit\_conversion\[m-cm-1.0-100.0-roundtrip\_object0-None\] {#combo-test_complex_unit_conversionm-cm-10-1000-roundtrip_object0-none} @@ -3856,7 +3874,10 @@ methodologies can be used: - flattening lists using an (internal) delimiter - flattening lists or more complex objects using JSON or YAML - +For example, `["a", "b"]` =\> `"a,b"` + +As a convention we use `s1_verbatim` as a slot/attribute name for the +stringified form. - **syntax**: SerializationSyntaxType - **delimiter**: delimiter to use in stringification @@ -3887,8 +3908,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -3947,10 +3968,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -3998,8 +4019,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4058,10 +4079,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4109,8 +4130,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4168,10 +4189,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4219,8 +4240,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4277,10 +4298,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4328,8 +4349,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4388,10 +4409,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4439,8 +4460,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4497,10 +4518,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4548,8 +4569,8 @@ classes: attributes: s1: name: s1 - multivalued: true range: string + multivalued: true ``` @@ -4608,10 +4629,10 @@ classes: attributes: s1_verbatim: name: s1_verbatim - multivalued: false domain_of: - C range: string + multivalued: false ``` @@ -4671,8 +4692,8 @@ classes: attributes: c_list: name: c_list - multivalued: true range: C + multivalued: true d: name: d range: D @@ -4780,10 +4801,10 @@ classes: attributes: c_list: name: c_list - multivalued: true domain_of: - Container range: C + multivalued: true d: name: d domain_of: @@ -4873,8 +4894,8 @@ classes: attributes: c_list: name: c_list - multivalued: true range: C + multivalued: true d: name: d range: D @@ -4982,10 +5003,10 @@ classes: attributes: c_list: name: c_list - multivalued: true domain_of: - Container range: C + multivalued: true d: name: d domain_of: @@ -5227,12 +5248,12 @@ classes: attributes: r_list: name: r_list - multivalued: true range: R + multivalued: true e_list: name: e_list - multivalued: true range: E + multivalued: true inlined_as_list: true tree_root: true @@ -5328,10 +5349,10 @@ classes: attributes: r_list: name: r_list - multivalued: true domain_of: - Container range: R + multivalued: true tree_root: true ``` @@ -5350,9 +5371,9 @@ will be supported, including: -- **source\_value**: -- **mapping**: -- **target\_value**: +- **source\_value**: source enum permissible value to be mapped +- **mapping**: mapping from source to target enum permissible values +- **target\_value**: expected target enum permissible value ### Combo: test\_map\_enum\[A-mapping0-B-False\] @@ -6332,4 +6353,4 @@ classes: ``` -. 55 passed, 2 skipped, 83 warnings in 3.98s +. 55 passed, 2 skipped, 83 warnings in 4.60s diff --git a/mkdocs.yml b/mkdocs.yml index 79712e5..2978058 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -7,8 +7,21 @@ theme: plugins: - search - mermaid2 + - mkdocstrings: + handlers: + python: + options: + show_source: true + show_root_toc_entry: false + show_category_heading: false + toc_depth: 1 + - autorefs - mknotebooks: execute: false +markdown_extensions: +- admonition +- codehilite +- pymdownx.superfences nav: - Index: index.md - Examples: @@ -16,8 +29,16 @@ nav: Compilation to SQL: examples/Tutorial-SQLCompiler.ipynb Metamodel Mapping: examples/MetamodelMapping.ipynb - Specification: - Data Model: datamodel.md + Data Model: schema/datamodel.md Compliance Suite: specification/compliance.md + - API: + - Session: api/session.md + - Transformer: api/transformer.md + - Compiler: api/compiler.md + - Importer: api/importer.md + - Inference: api/inference.md + - Functions: api/functions.md + - Subsetter: api/subsetter.md - FAQ: faq.md site_url: https://linkml.github.io/linkml-map/ repo_url: https://github.com/linkml/linkml-map/ diff --git a/poetry.lock b/poetry.lock index 847b413..8133d97 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,13 +2,13 @@ [[package]] name = "annotated-types" -version = "0.6.0" +version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" files = [ - {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, - {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, ] [[package]] @@ -23,13 +23,13 @@ files = [ [[package]] name = "anyio" -version = "4.3.0" +version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.8" files = [ - {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, - {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] @@ -132,13 +132,13 @@ test = ["dateparser (==1.*)", "pre-commit", "pytest", "pytest-cov", "pytest-mock [[package]] name = "asteval" -version = "0.9.32" +version = "0.9.33" description = "Safe, minimalistic evaluator of python expression using ast module" optional = false python-versions = ">=3.8" files = [ - {file = "asteval-0.9.32-py3-none-any.whl", hash = "sha256:4d0da45a15f15eeb88bb53cf4c352591ccb00f00f81f74649fd7084519adc3fe"}, - {file = "asteval-0.9.32.tar.gz", hash = "sha256:3bef25a973d378fda21c83a38c6292c4d0d94773f49f42073e69dbb19932bb74"}, + {file = "asteval-0.9.33-py3-none-any.whl", hash = "sha256:aae3a0308575a545c8cecc43a6632219e6a90963a56380c74632cf54311e43bf"}, + {file = "asteval-0.9.33.tar.gz", hash = "sha256:94981701f4d252c88aa5e821121b1aabef73a003da138fc6405169c9e675d24d"}, ] [package.extras] @@ -200,13 +200,13 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p [[package]] name = "babel" -version = "2.14.0" +version = "2.15.0" description = "Internationalization utilities" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, + {file = "Babel-2.15.0-py3-none-any.whl", hash = "sha256:08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb"}, + {file = "babel-2.15.0.tar.gz", hash = "sha256:8daf0e265d05768bc6c7a314cf1321e9a123afc328cc635c18622a2f30a04413"}, ] [package.extras] @@ -264,13 +264,13 @@ files = [ [[package]] name = "certifi" -version = "2024.2.2" +version = "2024.6.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, - {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, + {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, + {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, ] [[package]] @@ -504,63 +504,63 @@ test = ["pytest"] [[package]] name = "coverage" -version = "7.5.0" +version = "7.5.4" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:432949a32c3e3f820af808db1833d6d1631664d53dd3ce487aa25d574e18ad1c"}, - {file = "coverage-7.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2bd7065249703cbeb6d4ce679c734bef0ee69baa7bff9724361ada04a15b7e3b"}, - {file = "coverage-7.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbfe6389c5522b99768a93d89aca52ef92310a96b99782973b9d11e80511f932"}, - {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39793731182c4be939b4be0cdecde074b833f6171313cf53481f869937129ed3"}, - {file = "coverage-7.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85a5dbe1ba1bf38d6c63b6d2c42132d45cbee6d9f0c51b52c59aa4afba057517"}, - {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:357754dcdfd811462a725e7501a9b4556388e8ecf66e79df6f4b988fa3d0b39a"}, - {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a81eb64feded34f40c8986869a2f764f0fe2db58c0530d3a4afbcde50f314880"}, - {file = "coverage-7.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:51431d0abbed3a868e967f8257c5faf283d41ec882f58413cf295a389bb22e58"}, - {file = "coverage-7.5.0-cp310-cp310-win32.whl", hash = "sha256:f609ebcb0242d84b7adeee2b06c11a2ddaec5464d21888b2c8255f5fd6a98ae4"}, - {file = "coverage-7.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:6782cd6216fab5a83216cc39f13ebe30adfac2fa72688c5a4d8d180cd52e8f6a"}, - {file = "coverage-7.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e768d870801f68c74c2b669fc909839660180c366501d4cc4b87efd6b0eee375"}, - {file = "coverage-7.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84921b10aeb2dd453247fd10de22907984eaf80901b578a5cf0bb1e279a587cb"}, - {file = "coverage-7.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:710c62b6e35a9a766b99b15cdc56d5aeda0914edae8bb467e9c355f75d14ee95"}, - {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c379cdd3efc0658e652a14112d51a7668f6bfca7445c5a10dee7eabecabba19d"}, - {file = "coverage-7.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fea9d3ca80bcf17edb2c08a4704259dadac196fe5e9274067e7a20511fad1743"}, - {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:41327143c5b1d715f5f98a397608f90ab9ebba606ae4e6f3389c2145410c52b1"}, - {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:565b2e82d0968c977e0b0f7cbf25fd06d78d4856289abc79694c8edcce6eb2de"}, - {file = "coverage-7.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cf3539007202ebfe03923128fedfdd245db5860a36810136ad95a564a2fdffff"}, - {file = "coverage-7.5.0-cp311-cp311-win32.whl", hash = "sha256:bf0b4b8d9caa8d64df838e0f8dcf68fb570c5733b726d1494b87f3da85db3a2d"}, - {file = "coverage-7.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c6384cc90e37cfb60435bbbe0488444e54b98700f727f16f64d8bfda0b84656"}, - {file = "coverage-7.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fed7a72d54bd52f4aeb6c6e951f363903bd7d70bc1cad64dd1f087980d309ab9"}, - {file = "coverage-7.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cbe6581fcff7c8e262eb574244f81f5faaea539e712a058e6707a9d272fe5b64"}, - {file = "coverage-7.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad97ec0da94b378e593ef532b980c15e377df9b9608c7c6da3506953182398af"}, - {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd4bacd62aa2f1a1627352fe68885d6ee694bdaebb16038b6e680f2924a9b2cc"}, - {file = "coverage-7.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adf032b6c105881f9d77fa17d9eebe0ad1f9bfb2ad25777811f97c5362aa07f2"}, - {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ba01d9ba112b55bfa4b24808ec431197bb34f09f66f7cb4fd0258ff9d3711b1"}, - {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f0bfe42523893c188e9616d853c47685e1c575fe25f737adf473d0405dcfa7eb"}, - {file = "coverage-7.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a9a7ef30a1b02547c1b23fa9a5564f03c9982fc71eb2ecb7f98c96d7a0db5cf2"}, - {file = "coverage-7.5.0-cp312-cp312-win32.whl", hash = "sha256:3c2b77f295edb9fcdb6a250f83e6481c679335ca7e6e4a955e4290350f2d22a4"}, - {file = "coverage-7.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:427e1e627b0963ac02d7c8730ca6d935df10280d230508c0ba059505e9233475"}, - {file = "coverage-7.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9dd88fce54abbdbf4c42fb1fea0e498973d07816f24c0e27a1ecaf91883ce69e"}, - {file = "coverage-7.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a898c11dca8f8c97b467138004a30133974aacd572818c383596f8d5b2eb04a9"}, - {file = "coverage-7.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07dfdd492d645eea1bd70fb1d6febdcf47db178b0d99161d8e4eed18e7f62fe7"}, - {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3d117890b6eee85887b1eed41eefe2e598ad6e40523d9f94c4c4b213258e4a4"}, - {file = "coverage-7.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6afd2e84e7da40fe23ca588379f815fb6dbbb1b757c883935ed11647205111cb"}, - {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a9960dd1891b2ddf13a7fe45339cd59ecee3abb6b8326d8b932d0c5da208104f"}, - {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ced268e82af993d7801a9db2dbc1d2322e786c5dc76295d8e89473d46c6b84d4"}, - {file = "coverage-7.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7c211f25777746d468d76f11719e64acb40eed410d81c26cefac641975beb88"}, - {file = "coverage-7.5.0-cp38-cp38-win32.whl", hash = "sha256:262fffc1f6c1a26125d5d573e1ec379285a3723363f3bd9c83923c9593a2ac25"}, - {file = "coverage-7.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:eed462b4541c540d63ab57b3fc69e7d8c84d5957668854ee4e408b50e92ce26a"}, - {file = "coverage-7.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0194d654e360b3e6cc9b774e83235bae6b9b2cac3be09040880bb0e8a88f4a1"}, - {file = "coverage-7.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33c020d3322662e74bc507fb11488773a96894aa82a622c35a5a28673c0c26f5"}, - {file = "coverage-7.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbdf2cae14a06827bec50bd58e49249452d211d9caddd8bd80e35b53cb04631"}, - {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3235d7c781232e525b0761730e052388a01548bd7f67d0067a253887c6e8df46"}, - {file = "coverage-7.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2de4e546f0ec4b2787d625e0b16b78e99c3e21bc1722b4977c0dddf11ca84e"}, - {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0e206259b73af35c4ec1319fd04003776e11e859936658cb6ceffdeba0f5be"}, - {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2055c4fb9a6ff624253d432aa471a37202cd8f458c033d6d989be4499aed037b"}, - {file = "coverage-7.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:075299460948cd12722a970c7eae43d25d37989da682997687b34ae6b87c0ef0"}, - {file = "coverage-7.5.0-cp39-cp39-win32.whl", hash = "sha256:280132aada3bc2f0fac939a5771db4fbb84f245cb35b94fae4994d4c1f80dae7"}, - {file = "coverage-7.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:c58536f6892559e030e6924896a44098bc1290663ea12532c78cef71d0df8493"}, - {file = "coverage-7.5.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:2b57780b51084d5223eee7b59f0d4911c31c16ee5aa12737c7a02455829ff067"}, - {file = "coverage-7.5.0.tar.gz", hash = "sha256:cf62d17310f34084c59c01e027259076479128d11e4661bb6c9acb38c5e19bb8"}, + {file = "coverage-7.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6cfb5a4f556bb51aba274588200a46e4dd6b505fb1a5f8c5ae408222eb416f99"}, + {file = "coverage-7.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2174e7c23e0a454ffe12267a10732c273243b4f2d50d07544a91198f05c48f47"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2214ee920787d85db1b6a0bd9da5f8503ccc8fcd5814d90796c2f2493a2f4d2e"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1137f46adb28e3813dec8c01fefadcb8c614f33576f672962e323b5128d9a68d"}, + {file = "coverage-7.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b385d49609f8e9efc885790a5a0e89f2e3ae042cdf12958b6034cc442de428d3"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b4a474f799456e0eb46d78ab07303286a84a3140e9700b9e154cfebc8f527016"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5cd64adedf3be66f8ccee418473c2916492d53cbafbfcff851cbec5a8454b136"}, + {file = "coverage-7.5.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e564c2cf45d2f44a9da56f4e3a26b2236504a496eb4cb0ca7221cd4cc7a9aca9"}, + {file = "coverage-7.5.4-cp310-cp310-win32.whl", hash = "sha256:7076b4b3a5f6d2b5d7f1185fde25b1e54eb66e647a1dfef0e2c2bfaf9b4c88c8"}, + {file = "coverage-7.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:018a12985185038a5b2bcafab04ab833a9a0f2c59995b3cec07e10074c78635f"}, + {file = "coverage-7.5.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:db14f552ac38f10758ad14dd7b983dbab424e731588d300c7db25b6f89e335b5"}, + {file = "coverage-7.5.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3257fdd8e574805f27bb5342b77bc65578e98cbc004a92232106344053f319ba"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a6612c99081d8d6134005b1354191e103ec9705d7ba2754e848211ac8cacc6b"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d45d3cbd94159c468b9b8c5a556e3f6b81a8d1af2a92b77320e887c3e7a5d080"}, + {file = "coverage-7.5.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed550e7442f278af76d9d65af48069f1fb84c9f745ae249c1a183c1e9d1b025c"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a892be37ca35eb5019ec85402c3371b0f7cda5ab5056023a7f13da0961e60da"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8192794d120167e2a64721d88dbd688584675e86e15d0569599257566dec9bf0"}, + {file = "coverage-7.5.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:820bc841faa502e727a48311948e0461132a9c8baa42f6b2b84a29ced24cc078"}, + {file = "coverage-7.5.4-cp311-cp311-win32.whl", hash = "sha256:6aae5cce399a0f065da65c7bb1e8abd5c7a3043da9dceb429ebe1b289bc07806"}, + {file = "coverage-7.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:d2e344d6adc8ef81c5a233d3a57b3c7d5181f40e79e05e1c143da143ccb6377d"}, + {file = "coverage-7.5.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:54317c2b806354cbb2dc7ac27e2b93f97096912cc16b18289c5d4e44fc663233"}, + {file = "coverage-7.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:042183de01f8b6d531e10c197f7f0315a61e8d805ab29c5f7b51a01d62782747"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6bb74ed465d5fb204b2ec41d79bcd28afccf817de721e8a807d5141c3426638"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3d45ff86efb129c599a3b287ae2e44c1e281ae0f9a9bad0edc202179bcc3a2e"}, + {file = "coverage-7.5.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5013ed890dc917cef2c9f765c4c6a8ae9df983cd60dbb635df8ed9f4ebc9f555"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1014fbf665fef86cdfd6cb5b7371496ce35e4d2a00cda501cf9f5b9e6fced69f"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3684bc2ff328f935981847082ba4fdc950d58906a40eafa93510d1b54c08a66c"}, + {file = "coverage-7.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:581ea96f92bf71a5ec0974001f900db495488434a6928a2ca7f01eee20c23805"}, + {file = "coverage-7.5.4-cp312-cp312-win32.whl", hash = "sha256:73ca8fbc5bc622e54627314c1a6f1dfdd8db69788f3443e752c215f29fa87a0b"}, + {file = "coverage-7.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:cef4649ec906ea7ea5e9e796e68b987f83fa9a718514fe147f538cfeda76d7a7"}, + {file = "coverage-7.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdd31315fc20868c194130de9ee6bfd99755cc9565edff98ecc12585b90be882"}, + {file = "coverage-7.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:02ff6e898197cc1e9fa375581382b72498eb2e6d5fc0b53f03e496cfee3fac6d"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d05c16cf4b4c2fc880cb12ba4c9b526e9e5d5bb1d81313d4d732a5b9fe2b9d53"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5986ee7ea0795a4095ac4d113cbb3448601efca7f158ec7f7087a6c705304e4"}, + {file = "coverage-7.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5df54843b88901fdc2f598ac06737f03d71168fd1175728054c8f5a2739ac3e4"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ab73b35e8d109bffbda9a3e91c64e29fe26e03e49addf5b43d85fc426dde11f9"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:aea072a941b033813f5e4814541fc265a5c12ed9720daef11ca516aeacd3bd7f"}, + {file = "coverage-7.5.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:16852febd96acd953b0d55fc842ce2dac1710f26729b31c80b940b9afcd9896f"}, + {file = "coverage-7.5.4-cp38-cp38-win32.whl", hash = "sha256:8f894208794b164e6bd4bba61fc98bf6b06be4d390cf2daacfa6eca0a6d2bb4f"}, + {file = "coverage-7.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:e2afe743289273209c992075a5a4913e8d007d569a406ffed0bd080ea02b0633"}, + {file = "coverage-7.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b95c3a8cb0463ba9f77383d0fa8c9194cf91f64445a63fc26fb2327e1e1eb088"}, + {file = "coverage-7.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d7564cc09dd91b5a6001754a5b3c6ecc4aba6323baf33a12bd751036c998be4"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44da56a2589b684813f86d07597fdf8a9c6ce77f58976727329272f5a01f99f7"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e16f3d6b491c48c5ae726308e6ab1e18ee830b4cdd6913f2d7f77354b33f91c8"}, + {file = "coverage-7.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbc5958cb471e5a5af41b0ddaea96a37e74ed289535e8deca404811f6cb0bc3d"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a04e990a2a41740b02d6182b498ee9796cf60eefe40cf859b016650147908029"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ddbd2f9713a79e8e7242d7c51f1929611e991d855f414ca9996c20e44a895f7c"}, + {file = "coverage-7.5.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b1ccf5e728ccf83acd313c89f07c22d70d6c375a9c6f339233dcf792094bcbf7"}, + {file = "coverage-7.5.4-cp39-cp39-win32.whl", hash = "sha256:56b4eafa21c6c175b3ede004ca12c653a88b6f922494b023aeb1e836df953ace"}, + {file = "coverage-7.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:65e528e2e921ba8fd67d9055e6b9f9e34b21ebd6768ae1c1723f4ea6ace1234d"}, + {file = "coverage-7.5.4-pp38.pp39.pp310-none-any.whl", hash = "sha256:79b356f3dd5b26f3ad23b35c75dbdaf1f9e2450b6bcefc6d0825ea0aa3f86ca5"}, + {file = "coverage-7.5.4.tar.gz", hash = "sha256:a44963520b069e12789d0faea4e9fdb1e410cdc4aab89d94f7f55cbb7fef0353"}, ] [package.dependencies] @@ -595,33 +595,33 @@ tests = ["coverage", "pytest"] [[package]] name = "debugpy" -version = "1.8.1" +version = "1.8.2" description = "An implementation of the Debug Adapter Protocol for Python" optional = false python-versions = ">=3.8" files = [ - {file = "debugpy-1.8.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:3bda0f1e943d386cc7a0e71bfa59f4137909e2ed947fb3946c506e113000f741"}, - {file = "debugpy-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dda73bf69ea479c8577a0448f8c707691152e6c4de7f0c4dec5a4bc11dee516e"}, - {file = "debugpy-1.8.1-cp310-cp310-win32.whl", hash = "sha256:3a79c6f62adef994b2dbe9fc2cc9cc3864a23575b6e387339ab739873bea53d0"}, - {file = "debugpy-1.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:7eb7bd2b56ea3bedb009616d9e2f64aab8fc7000d481faec3cd26c98a964bcdd"}, - {file = "debugpy-1.8.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:016a9fcfc2c6b57f939673c874310d8581d51a0fe0858e7fac4e240c5eb743cb"}, - {file = "debugpy-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd97ed11a4c7f6d042d320ce03d83b20c3fb40da892f994bc041bbc415d7a099"}, - {file = "debugpy-1.8.1-cp311-cp311-win32.whl", hash = "sha256:0de56aba8249c28a300bdb0672a9b94785074eb82eb672db66c8144fff673146"}, - {file = "debugpy-1.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:1a9fe0829c2b854757b4fd0a338d93bc17249a3bf69ecf765c61d4c522bb92a8"}, - {file = "debugpy-1.8.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3ebb70ba1a6524d19fa7bb122f44b74170c447d5746a503e36adc244a20ac539"}, - {file = "debugpy-1.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2e658a9630f27534e63922ebf655a6ab60c370f4d2fc5c02a5b19baf4410ace"}, - {file = "debugpy-1.8.1-cp312-cp312-win32.whl", hash = "sha256:caad2846e21188797a1f17fc09c31b84c7c3c23baf2516fed5b40b378515bbf0"}, - {file = "debugpy-1.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:edcc9f58ec0fd121a25bc950d4578df47428d72e1a0d66c07403b04eb93bcf98"}, - {file = "debugpy-1.8.1-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7a3afa222f6fd3d9dfecd52729bc2e12c93e22a7491405a0ecbf9e1d32d45b39"}, - {file = "debugpy-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d915a18f0597ef685e88bb35e5d7ab968964b7befefe1aaea1eb5b2640b586c7"}, - {file = "debugpy-1.8.1-cp38-cp38-win32.whl", hash = "sha256:92116039b5500633cc8d44ecc187abe2dfa9b90f7a82bbf81d079fcdd506bae9"}, - {file = "debugpy-1.8.1-cp38-cp38-win_amd64.whl", hash = "sha256:e38beb7992b5afd9d5244e96ad5fa9135e94993b0c551ceebf3fe1a5d9beb234"}, - {file = "debugpy-1.8.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:bfb20cb57486c8e4793d41996652e5a6a885b4d9175dd369045dad59eaacea42"}, - {file = "debugpy-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd3fdd3f67a7e576dd869c184c5dd71d9aaa36ded271939da352880c012e703"}, - {file = "debugpy-1.8.1-cp39-cp39-win32.whl", hash = "sha256:58911e8521ca0c785ac7a0539f1e77e0ce2df753f786188f382229278b4cdf23"}, - {file = "debugpy-1.8.1-cp39-cp39-win_amd64.whl", hash = "sha256:6df9aa9599eb05ca179fb0b810282255202a66835c6efb1d112d21ecb830ddd3"}, - {file = "debugpy-1.8.1-py2.py3-none-any.whl", hash = "sha256:28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242"}, - {file = "debugpy-1.8.1.zip", hash = "sha256:f696d6be15be87aef621917585f9bb94b1dc9e8aced570db1b8a6fc14e8f9b42"}, + {file = "debugpy-1.8.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:7ee2e1afbf44b138c005e4380097d92532e1001580853a7cb40ed84e0ef1c3d2"}, + {file = "debugpy-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f8c3f7c53130a070f0fc845a0f2cee8ed88d220d6b04595897b66605df1edd6"}, + {file = "debugpy-1.8.2-cp310-cp310-win32.whl", hash = "sha256:f179af1e1bd4c88b0b9f0fa153569b24f6b6f3de33f94703336363ae62f4bf47"}, + {file = "debugpy-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:0600faef1d0b8d0e85c816b8bb0cb90ed94fc611f308d5fde28cb8b3d2ff0fe3"}, + {file = "debugpy-1.8.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a"}, + {file = "debugpy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634"}, + {file = "debugpy-1.8.2-cp311-cp311-win32.whl", hash = "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad"}, + {file = "debugpy-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa"}, + {file = "debugpy-1.8.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835"}, + {file = "debugpy-1.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3"}, + {file = "debugpy-1.8.2-cp312-cp312-win32.whl", hash = "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e"}, + {file = "debugpy-1.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859"}, + {file = "debugpy-1.8.2-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:5a019d4574afedc6ead1daa22736c530712465c0c4cd44f820d803d937531b2d"}, + {file = "debugpy-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40f062d6877d2e45b112c0bbade9a17aac507445fd638922b1a5434df34aed02"}, + {file = "debugpy-1.8.2-cp38-cp38-win32.whl", hash = "sha256:c78ba1680f1015c0ca7115671fe347b28b446081dada3fedf54138f44e4ba031"}, + {file = "debugpy-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:cf327316ae0c0e7dd81eb92d24ba8b5e88bb4d1b585b5c0d32929274a66a5210"}, + {file = "debugpy-1.8.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:1523bc551e28e15147815d1397afc150ac99dbd3a8e64641d53425dba57b0ff9"}, + {file = "debugpy-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e24ccb0cd6f8bfaec68d577cb49e9c680621c336f347479b3fce060ba7c09ec1"}, + {file = "debugpy-1.8.2-cp39-cp39-win32.whl", hash = "sha256:7f8d57a98c5a486c5c7824bc0b9f2f11189d08d73635c326abef268f83950326"}, + {file = "debugpy-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:16c8dcab02617b75697a0a925a62943e26a0330da076e2a10437edd9f0bf3755"}, + {file = "debugpy-1.8.2-py2.py3-none-any.whl", hash = "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca"}, + {file = "debugpy-1.8.2.zip", hash = "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00"}, ] [[package]] @@ -694,58 +694,58 @@ files = [ [[package]] name = "duckdb" -version = "0.10.2" +version = "0.10.3" description = "DuckDB in-process database" optional = false python-versions = ">=3.7.0" files = [ - {file = "duckdb-0.10.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3891d3ac03e12a3e5c43afa3020fe701f64060f52d25f429a1ed7b5d914368d3"}, - {file = "duckdb-0.10.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f63877651f1fb940e049dc53038eb763856616319acf4f892b1c3ed074f5ab0"}, - {file = "duckdb-0.10.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:06e3a36f04f4d98d2c0bbdd63e517cfbe114a795306e26ec855e62e076af5043"}, - {file = "duckdb-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf5f95ad5b75c8e65c6508b4df02043dd0b9d97712b9a33236ad77c388ce7861"}, - {file = "duckdb-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ff62bc98278c98fecbd6eecec5d698ad41ebd654110feaadbf8ac8bb59b1ecf"}, - {file = "duckdb-0.10.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cceede13fde095c23cf9a53adf7c414c7bfb21b9a7aa6a4836014fdbecbfca70"}, - {file = "duckdb-0.10.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:acdfff60b7efccd7f731213a9795851256249dfacf80367074b2b2e144f716dd"}, - {file = "duckdb-0.10.2-cp310-cp310-win_amd64.whl", hash = "sha256:4a5d5655cf0bdaf664a6f332afe465e02b08cef715548a0983bb7aef48da06a6"}, - {file = "duckdb-0.10.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a9d15842876d18763e085648656cccc7660a215d16254906db5c4471be2c7732"}, - {file = "duckdb-0.10.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c88cdcdc8452c910e4298223e7d9fca291534ff5aa36090aa49c9e6557550b13"}, - {file = "duckdb-0.10.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:364cd6f5dc8a1010d144d08c410ba9a74c521336ee5bda84fabc6616216a6d6a"}, - {file = "duckdb-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c57c11d1060296f5e9ebfb5bb7e5521e0d77912e8f9ff43c90240c3311e9de9"}, - {file = "duckdb-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:186d86b8dda8e1076170eb770bb2bb73ea88ca907d92885c9695d6515207b205"}, - {file = "duckdb-0.10.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f65b62f31c6bff21afc0261cfe28d238b8f34ec78f339546b12f4740c39552a"}, - {file = "duckdb-0.10.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a860d7466a5c93714cdd94559ce9e1db2ab91914f0941c25e5e93d4ebe36a5fa"}, - {file = "duckdb-0.10.2-cp311-cp311-win_amd64.whl", hash = "sha256:33308190e9c7f05a3a0a2d46008a043effd4eae77011869d7c18fb37acdd9215"}, - {file = "duckdb-0.10.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3a8b2f1229b4aecb79cd28ffdb99032b1497f0a805d0da1136a9b6115e1afc70"}, - {file = "duckdb-0.10.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d23a6dea61963733a0f45a0d0bbb1361fb2a47410ed5ff308b4a1f869d4eeb6f"}, - {file = "duckdb-0.10.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:20ee0aa27e688aa52a40b434ec41a50431d0b06edeab88edc2feaca18d82c62c"}, - {file = "duckdb-0.10.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80a6d43d9044f0997a15a92e0c0ff3afd21151a1e572a92f439cc4f56b7090e1"}, - {file = "duckdb-0.10.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6934758cacd06029a5c9f54556a43bd277a86757e22bf8d0dd11ca15c1813d1c"}, - {file = "duckdb-0.10.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a11e2d68bd79044eea5486b1cddb5b915115f537e5c74eeb94c768ce30f9f4b"}, - {file = "duckdb-0.10.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0bf58385c43b8e448a2fea7e8729054934bf73ea616d1d7ef8184eda07f975e2"}, - {file = "duckdb-0.10.2-cp312-cp312-win_amd64.whl", hash = "sha256:eae75c7014597ded6e7f6dc51e32d48362a31608acd73e9f795748ee94335a54"}, - {file = "duckdb-0.10.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:62e89deff778a7a86f651802b947a3466425f6cce41e9d7d412d39e492932943"}, - {file = "duckdb-0.10.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f87e555fd36ec6da316b727a39fb24c53124a797dfa9b451bdea87b2f20a351f"}, - {file = "duckdb-0.10.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41e8b34b1a944590ebcf82f8cc59d67b084fe99479f048892d60da6c1402c386"}, - {file = "duckdb-0.10.2-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c68c6dde2773774cf2371522a3959ea2716fc2b3a4891d4066f0e426455fe19"}, - {file = "duckdb-0.10.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ff6a8a0980d0f9398fa461deffa59465dac190d707468478011ea8a5fe1f2c81"}, - {file = "duckdb-0.10.2-cp37-cp37m-win_amd64.whl", hash = "sha256:728dd4ff0efda387a424754e5508d4f8c72a272c2d3ccb036a83286f60b46002"}, - {file = "duckdb-0.10.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c461d6b4619e80170044a9eb999bbf4097e330d3a4974ced0a7eaeb79c7c39f6"}, - {file = "duckdb-0.10.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:909351ff72eb3b50b89761251148d8a186594d8a438e12dcf5494794caff6693"}, - {file = "duckdb-0.10.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d9eeb8393d69abafd355b869669957eb85b89e4df677e420b9ef0693b7aa6cb4"}, - {file = "duckdb-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3102bcf5011e8f82ea3c2bde43108774fe5a283a410d292c0843610ea13e2237"}, - {file = "duckdb-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d64d443613e5f16caf7d67102733538c90f7715867c1a98597efd3babca068e3"}, - {file = "duckdb-0.10.2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb31398826d1b7473344e5ee8e0f826370c9752549469ba1327042ace9041f80"}, - {file = "duckdb-0.10.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d09dcec467cd6127d5cc1fb0ce4efbd77e761882d9d772b0f64fc2f79a2a1cde"}, - {file = "duckdb-0.10.2-cp38-cp38-win_amd64.whl", hash = "sha256:82fab1a24faf7c33d8a7afed08b57ee36e8821a3a68a2f1574cd238ea440bba0"}, - {file = "duckdb-0.10.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38607e6e6618e8ea28c8d9b67aa9e22cfd6d6d673f2e8ab328bd6e867b697f69"}, - {file = "duckdb-0.10.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fb0c23bc8c09615bff38aebcf8e92e6ae74959c67b3c9e5b00edddc730bf22be"}, - {file = "duckdb-0.10.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:00576c11c78c83830ab483bad968e07cd9b5f730e7ffaf5aa5fadee5ac4f71e9"}, - {file = "duckdb-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:077db692cdda50c4684ef87dc2a68507665804caa90e539dbe819116bda722ad"}, - {file = "duckdb-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca25984ad9f9a04e46e8359f852668c11569534e3bb8424b80be711303ad2314"}, - {file = "duckdb-0.10.2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a72cc40982c7b92cf555e574618fc711033b013bf258b611ba18d7654c89d8c"}, - {file = "duckdb-0.10.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27b9efd6e788eb561535fdc0cbc7c74aca1ff39f748b7cfc27aa49b00e22da1"}, - {file = "duckdb-0.10.2-cp39-cp39-win_amd64.whl", hash = "sha256:4800469489bc262dda61a7f1d40acedf67cf2454874e9d8bbf07920dc2b147e6"}, - {file = "duckdb-0.10.2.tar.gz", hash = "sha256:0f609c9d5f941f1ecde810f010dd9321cd406a552c1df20318a13fa64247f67f"}, + {file = "duckdb-0.10.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd25cc8d001c09a19340739ba59d33e12a81ab285b7a6bed37169655e1cefb31"}, + {file = "duckdb-0.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f9259c637b917ca0f4c63887e8d9b35ec248f5d987c886dfc4229d66a791009"}, + {file = "duckdb-0.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b48f5f1542f1e4b184e6b4fc188f497be8b9c48127867e7d9a5f4a3e334f88b0"}, + {file = "duckdb-0.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e327f7a3951ea154bb56e3fef7da889e790bd9a67ca3c36afc1beb17d3feb6d6"}, + {file = "duckdb-0.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d8b20ed67da004b4481973f4254fd79a0e5af957d2382eac8624b5c527ec48c"}, + {file = "duckdb-0.10.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d37680b8d7be04e4709db3a66c8b3eb7ceba2a5276574903528632f2b2cc2e60"}, + {file = "duckdb-0.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d34b86d6a2a6dfe8bb757f90bfe7101a3bd9e3022bf19dbddfa4b32680d26a9"}, + {file = "duckdb-0.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:73b1cb283ca0f6576dc18183fd315b4e487a545667ffebbf50b08eb4e8cdc143"}, + {file = "duckdb-0.10.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d917dde19fcec8cadcbef1f23946e85dee626ddc133e1e3f6551f15a61a03c61"}, + {file = "duckdb-0.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46757e0cf5f44b4cb820c48a34f339a9ccf83b43d525d44947273a585a4ed822"}, + {file = "duckdb-0.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:338c14d8ac53ac4aa9ec03b6f1325ecfe609ceeb72565124d489cb07f8a1e4eb"}, + {file = "duckdb-0.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:651fcb429602b79a3cf76b662a39e93e9c3e6650f7018258f4af344c816dab72"}, + {file = "duckdb-0.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3ae3c73b98b6215dab93cc9bc936b94aed55b53c34ba01dec863c5cab9f8e25"}, + {file = "duckdb-0.10.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56429b2cfe70e367fb818c2be19f59ce2f6b080c8382c4d10b4f90ba81f774e9"}, + {file = "duckdb-0.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b46c02c2e39e3676b1bb0dc7720b8aa953734de4fd1b762e6d7375fbeb1b63af"}, + {file = "duckdb-0.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:bcd460feef56575af2c2443d7394d405a164c409e9794a4d94cb5fdaa24a0ba4"}, + {file = "duckdb-0.10.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e229a7c6361afbb0d0ab29b1b398c10921263c52957aefe3ace99b0426fdb91e"}, + {file = "duckdb-0.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:732b1d3b6b17bf2f32ea696b9afc9e033493c5a3b783c292ca4b0ee7cc7b0e66"}, + {file = "duckdb-0.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5380d4db11fec5021389fb85d614680dc12757ef7c5881262742250e0b58c75"}, + {file = "duckdb-0.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:468a4e0c0b13c55f84972b1110060d1b0f854ffeb5900a178a775259ec1562db"}, + {file = "duckdb-0.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fa1e7ff8d18d71defa84e79f5c86aa25d3be80d7cb7bc259a322de6d7cc72da"}, + {file = "duckdb-0.10.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed1063ed97c02e9cf2e7fd1d280de2d1e243d72268330f45344c69c7ce438a01"}, + {file = "duckdb-0.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:22f2aad5bb49c007f3bfcd3e81fdedbc16a2ae41f2915fc278724ca494128b0c"}, + {file = "duckdb-0.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:8f9e2bb00a048eb70b73a494bdc868ce7549b342f7ffec88192a78e5a4e164bd"}, + {file = "duckdb-0.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6c2fc49875b4b54e882d68703083ca6f84b27536d57d623fc872e2f502b1078"}, + {file = "duckdb-0.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a66c125d0c30af210f7ee599e7821c3d1a7e09208196dafbf997d4e0cfcb81ab"}, + {file = "duckdb-0.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99dd7a1d901149c7a276440d6e737b2777e17d2046f5efb0c06ad3b8cb066a6"}, + {file = "duckdb-0.10.3-cp37-cp37m-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5ec3bbdb209e6095d202202893763e26c17c88293b88ef986b619e6c8b6715bd"}, + {file = "duckdb-0.10.3-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:2b3dec4ef8ed355d7b7230b40950b30d0def2c387a2e8cd7efc80b9d14134ecf"}, + {file = "duckdb-0.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:04129f94fb49bba5eea22f941f0fb30337f069a04993048b59e2811f52d564bc"}, + {file = "duckdb-0.10.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d75d67024fc22c8edfd47747c8550fb3c34fb1cbcbfd567e94939ffd9c9e3ca7"}, + {file = "duckdb-0.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f3796e9507c02d0ddbba2e84c994fae131da567ce3d9cbb4cbcd32fadc5fbb26"}, + {file = "duckdb-0.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:78e539d85ebd84e3e87ec44d28ad912ca4ca444fe705794e0de9be3dd5550c11"}, + {file = "duckdb-0.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a99b67ac674b4de32073e9bc604b9c2273d399325181ff50b436c6da17bf00a"}, + {file = "duckdb-0.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1209a354a763758c4017a1f6a9f9b154a83bed4458287af9f71d84664ddb86b6"}, + {file = "duckdb-0.10.3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b735cea64aab39b67c136ab3a571dbf834067f8472ba2f8bf0341bc91bea820"}, + {file = "duckdb-0.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:816ffb9f758ed98eb02199d9321d592d7a32a6cb6aa31930f4337eb22cfc64e2"}, + {file = "duckdb-0.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:1631184b94c3dc38b13bce4045bf3ae7e1b0ecbfbb8771eb8d751d8ffe1b59b3"}, + {file = "duckdb-0.10.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb98c35fc8dd65043bc08a2414dd9f59c680d7e8656295b8969f3f2061f26c52"}, + {file = "duckdb-0.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e75c9f5b6a92b2a6816605c001d30790f6d67ce627a2b848d4d6040686efdf9"}, + {file = "duckdb-0.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ae786eddf1c2fd003466e13393b9348a44b6061af6fe7bcb380a64cac24e7df7"}, + {file = "duckdb-0.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9387da7b7973707b0dea2588749660dd5dd724273222680e985a2dd36787668"}, + {file = "duckdb-0.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:538f943bf9fa8a3a7c4fafa05f21a69539d2c8a68e557233cbe9d989ae232899"}, + {file = "duckdb-0.10.3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6930608f35025a73eb94252964f9f19dd68cf2aaa471da3982cf6694866cfa63"}, + {file = "duckdb-0.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:03bc54a9cde5490918aad82d7d2a34290e3dfb78d5b889c6626625c0f141272a"}, + {file = "duckdb-0.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:372b6e3901d85108cafe5df03c872dfb6f0dbff66165a0cf46c47246c1957aa0"}, + {file = "duckdb-0.10.3.tar.gz", hash = "sha256:c5bd84a92bc708d3a6adffe1f554b94c6e76c795826daaaf482afc3d9c636971"}, ] [[package]] @@ -799,13 +799,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.20.0" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, ] [package.extras] @@ -813,18 +813,18 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc [[package]] name = "filelock" -version = "3.14.0" +version = "3.15.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, - {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, ] [package.extras] docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] typing = ["typing-extensions (>=4.8)"] [[package]] @@ -974,6 +974,20 @@ files = [ docs = ["Sphinx", "furo"] test = ["objgraph", "psutil"] +[[package]] +name = "griffe" +version = "0.47.0" +description = "Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API." +optional = false +python-versions = ">=3.8" +files = [ + {file = "griffe-0.47.0-py3-none-any.whl", hash = "sha256:07a2fd6a8c3d21d0bbb0decf701d62042ccc8a576645c7f8799fe1f10de2b2de"}, + {file = "griffe-0.47.0.tar.gz", hash = "sha256:95119a440a3c932b13293538bdbc405bee4c36428547553dc6b327e7e7d35e5a"}, +] + +[package.dependencies] +colorama = ">=0.4" + [[package]] name = "h11" version = "0.14.0" @@ -1054,22 +1068,22 @@ files = [ [[package]] name = "importlib-metadata" -version = "7.1.0" +version = "8.0.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, + {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "iniconfig" @@ -1084,13 +1098,13 @@ files = [ [[package]] name = "ipykernel" -version = "6.29.4" +version = "6.29.5" description = "IPython Kernel for Jupyter" optional = false python-versions = ">=3.8" files = [ - {file = "ipykernel-6.29.4-py3-none-any.whl", hash = "sha256:1181e653d95c6808039c509ef8e67c4126b3b3af7781496c7cbfb5ed938a27da"}, - {file = "ipykernel-6.29.4.tar.gz", hash = "sha256:3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c"}, + {file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"}, + {file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"}, ] [package.dependencies] @@ -1154,21 +1168,21 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.22)", "pa [[package]] name = "ipywidgets" -version = "8.1.2" +version = "8.1.3" description = "Jupyter interactive widgets" optional = false python-versions = ">=3.7" files = [ - {file = "ipywidgets-8.1.2-py3-none-any.whl", hash = "sha256:bbe43850d79fb5e906b14801d6c01402857996864d1e5b6fa62dd2ee35559f60"}, - {file = "ipywidgets-8.1.2.tar.gz", hash = "sha256:d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9"}, + {file = "ipywidgets-8.1.3-py3-none-any.whl", hash = "sha256:efafd18f7a142248f7cb0ba890a68b96abd4d6e88ddbda483c9130d12667eaf2"}, + {file = "ipywidgets-8.1.3.tar.gz", hash = "sha256:f5f9eeaae082b1823ce9eac2575272952f40d748893972956dc09700a6392d9c"}, ] [package.dependencies] comm = ">=0.1.3" ipython = ">=6.1.0" -jupyterlab-widgets = ">=3.0.10,<3.1.0" +jupyterlab-widgets = ">=3.0.11,<3.1.0" traitlets = ">=4.3.1" -widgetsnbextension = ">=4.0.10,<4.1.0" +widgetsnbextension = ">=4.0.11,<4.1.0" [package.extras] test = ["ipykernel", "jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] @@ -1222,13 +1236,13 @@ testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -1332,13 +1346,13 @@ ply = "*" [[package]] name = "jsonpointer" -version = "2.4" +version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +python-versions = ">=3.7" files = [ - {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, - {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, ] [[package]] @@ -1407,13 +1421,13 @@ qtconsole = "*" [[package]] name = "jupyter-client" -version = "8.6.1" +version = "8.6.2" description = "Jupyter protocol implementation and client libraries" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_client-8.6.1-py3-none-any.whl", hash = "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f"}, - {file = "jupyter_client-8.6.1.tar.gz", hash = "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f"}, + {file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"}, + {file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"}, ] [package.dependencies] @@ -1426,7 +1440,7 @@ traitlets = ">=5.3" [package.extras] docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] +test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] [[package]] name = "jupyter-console" @@ -1514,13 +1528,13 @@ jupyter-server = ">=1.1.2" [[package]] name = "jupyter-server" -version = "2.14.0" +version = "2.14.1" description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_server-2.14.0-py3-none-any.whl", hash = "sha256:fb6be52c713e80e004fac34b35a0990d6d36ba06fd0a2b2ed82b899143a64210"}, - {file = "jupyter_server-2.14.0.tar.gz", hash = "sha256:659154cea512083434fd7c93b7fe0897af7a2fd0b9dd4749282b42eaac4ae677"}, + {file = "jupyter_server-2.14.1-py3-none-any.whl", hash = "sha256:16f7177c3a4ea8fe37784e2d31271981a812f0b2874af17339031dc3510cc2a5"}, + {file = "jupyter_server-2.14.1.tar.gz", hash = "sha256:12558d158ec7a0653bf96cc272bc7ad79e0127d503b982ed144399346694f726"}, ] [package.dependencies] @@ -1545,7 +1559,7 @@ traitlets = ">=5.6.0" websocket-client = ">=1.7" [package.extras] -docs = ["ipykernel", "jinja2", "jupyter-client", "jupyter-server", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] +docs = ["ipykernel", "jinja2", "jupyter-client", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-openapi (>=0.8.0)", "sphinxcontrib-spelling", "sphinxemoji", "tornado", "typing-extensions"] test = ["flaky", "ipykernel", "pre-commit", "pytest (>=7.0,<9)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.7)", "pytest-timeout", "requests"] [[package]] @@ -1569,13 +1583,13 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.1.8" +version = "4.2.3" description = "JupyterLab computational environment" optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab-4.1.8-py3-none-any.whl", hash = "sha256:c3baf3a2f91f89d110ed5786cd18672b9a357129d4e389d2a0dead15e11a4d2c"}, - {file = "jupyterlab-4.1.8.tar.gz", hash = "sha256:3384aded8680e7ce504fd63b8bb89a39df21c9c7694d9e7dc4a68742cdb30f9b"}, + {file = "jupyterlab-4.2.3-py3-none-any.whl", hash = "sha256:0b59d11808e84bb84105c73364edfa867dd475492429ab34ea388a52f2e2e596"}, + {file = "jupyterlab-4.2.3.tar.gz", hash = "sha256:df6e46969ea51d66815167f23d92f105423b7f1f06fa604d4f44aeb018c82c7b"}, ] [package.dependencies] @@ -1590,16 +1604,17 @@ jupyter-server = ">=2.4.0,<3" jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2" packaging = "*" +setuptools = ">=40.1.0" tomli = {version = ">=1.2.2", markers = "python_version < \"3.11\""} tornado = ">=6.2.0" traitlets = "*" [package.extras] -dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.2.0)"] +dev = ["build", "bump2version", "coverage", "hatch", "pre-commit", "pytest-cov", "ruff (==0.3.5)"] docs = ["jsx-lexer", "myst-parser", "pydata-sphinx-theme (>=0.13.0)", "pytest", "pytest-check-links", "pytest-jupyter", "sphinx (>=1.8,<7.3.0)", "sphinx-copybutton"] -docs-screenshots = ["altair (==5.2.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.1)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.0.post6)", "matplotlib (==3.8.2)", "nbconvert (>=7.0.0)", "pandas (==2.2.0)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] +docs-screenshots = ["altair (==5.3.0)", "ipython (==8.16.1)", "ipywidgets (==8.1.2)", "jupyterlab-geojson (==3.4.0)", "jupyterlab-language-pack-zh-cn (==4.1.post2)", "matplotlib (==3.8.3)", "nbconvert (>=7.0.0)", "pandas (==2.2.1)", "scipy (==1.12.0)", "vega-datasets (==0.9.0)"] test = ["coverage", "pytest (>=7.0)", "pytest-check-links (>=0.7)", "pytest-console-scripts", "pytest-cov", "pytest-jupyter (>=0.5.3)", "pytest-timeout", "pytest-tornasync", "requests", "requests-cache", "virtualenv"] -upgrade-extension = ["copier (>=8.0,<9.0)", "jinja2-time (<0.3)", "pydantic (<2.0)", "pyyaml-include (<2.0)", "tomli-w (<2.0)"] +upgrade-extension = ["copier (>=8,<10)", "jinja2-time (<0.3)", "pydantic (<2.0)", "pyyaml-include (<2.0)", "tomli-w (<2.0)"] [[package]] name = "jupyterlab-pygments" @@ -1614,13 +1629,13 @@ files = [ [[package]] name = "jupyterlab-server" -version = "2.27.1" +version = "2.27.2" description = "A set of server components for JupyterLab and JupyterLab like applications." optional = false python-versions = ">=3.8" files = [ - {file = "jupyterlab_server-2.27.1-py3-none-any.whl", hash = "sha256:f5e26156e5258b24d532c84e7c74cc212e203bff93eb856f81c24c16daeecc75"}, - {file = "jupyterlab_server-2.27.1.tar.gz", hash = "sha256:097b5ac709b676c7284ac9c5e373f11930a561f52cd5a86e4fc7e5a9c8a8631d"}, + {file = "jupyterlab_server-2.27.2-py3-none-any.whl", hash = "sha256:54aa2d64fd86383b5438d9f0c032f043c4d8c0264b8af9f60bd061157466ea43"}, + {file = "jupyterlab_server-2.27.2.tar.gz", hash = "sha256:15cbb349dc45e954e09bacf81b9f9bcb10815ff660fb2034ecd7417db3a7ea27"}, ] [package.dependencies] @@ -1640,13 +1655,13 @@ test = ["hatch", "ipykernel", "openapi-core (>=0.18.0,<0.19.0)", "openapi-spec-v [[package]] name = "jupyterlab-widgets" -version = "3.0.10" +version = "3.0.11" description = "Jupyter interactive widgets for JupyterLab" optional = false python-versions = ">=3.7" files = [ - {file = "jupyterlab_widgets-3.0.10-py3-none-any.whl", hash = "sha256:dd61f3ae7a5a7f80299e14585ce6cf3d6925a96c9103c978eda293197730cb64"}, - {file = "jupyterlab_widgets-3.0.10.tar.gz", hash = "sha256:04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0"}, + {file = "jupyterlab_widgets-3.0.11-py3-none-any.whl", hash = "sha256:78287fd86d20744ace330a61625024cf5521e1c012a352ddc0a3cdc2348becd0"}, + {file = "jupyterlab_widgets-3.0.11.tar.gz", hash = "sha256:dd5ac679593c969af29c9bed054c24f26842baa51352114736756bc035deee27"}, ] [[package]] @@ -1668,13 +1683,13 @@ regex = ["regex"] [[package]] name = "linkml" -version = "1.7.8" +version = "1.8.0" description = "Linked Open Data Modeling Language" optional = false python-versions = "<4.0.0,>=3.8.1" files = [ - {file = "linkml-1.7.8-py3-none-any.whl", hash = "sha256:4b8ebe33b422517b08ca01802dc2899ac133c502a71d811c58fa6f4263130709"}, - {file = "linkml-1.7.8.tar.gz", hash = "sha256:af48ee1ad6751c8d20de2832dbeefe225da9be5f39a7f8ea7821a691cf7c0148"}, + {file = "linkml-1.8.0-py3-none-any.whl", hash = "sha256:18551502ce5ba62045fed9f74c85abf05abc954b4d637d2fb6e443b1f7d8f2a2"}, + {file = "linkml-1.8.0.tar.gz", hash = "sha256:120fda1e3bb8763c04d53501909aa8c13daaecb98bae40509564372785a5b907"}, ] [package.dependencies] @@ -1687,7 +1702,7 @@ jinja2 = ">=3.1.0" jsonasobj2 = ">=1.0.3,<2.0.0" jsonschema = {version = ">=4.0.0", extras = ["format"]} linkml-dataops = "*" -linkml-runtime = ">=1.7.4" +linkml-runtime = "1.8.0" openpyxl = "*" parse = "*" prefixcommons = ">=0.1.7" @@ -1728,13 +1743,13 @@ linkml-runtime = ">=1.1.6" [[package]] name = "linkml-runtime" -version = "1.7.5" +version = "1.8.0" description = "Runtime environment for LinkML, the Linked open data modeling language" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "linkml_runtime-1.7.5-py3-none-any.whl", hash = "sha256:c58000c7c68fa97b7d76c50421a85a64e25f07eec5bcac464bc00c4cd79007a6"}, - {file = "linkml_runtime-1.7.5.tar.gz", hash = "sha256:b31197a5398359441ae1ed43470c54377a1d08db961366dda670300dddcd71d7"}, + {file = "linkml_runtime-1.8.0-py3-none-any.whl", hash = "sha256:e99a809eda52640633f07a9e8b391d1a9da863eb68a475dfd74a79335b909931"}, + {file = "linkml_runtime-1.8.0.tar.gz", hash = "sha256:436381a7bf791e9af4ef0a5adcac86762d451b77670fbdb3ba083d2c177fb5f2"}, ] [package.dependencies] @@ -1770,6 +1785,20 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] +[[package]] +name = "markdown-callouts" +version = "0.4.0" +description = "Markdown extension: a classier syntax for admonitions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown_callouts-0.4.0-py3-none-any.whl", hash = "sha256:ed0da38f29158d93116a0d0c6ecaf9df90b37e0d989b5337d678ee6e6d6550b7"}, + {file = "markdown_callouts-0.4.0.tar.gz", hash = "sha256:7ed2c90486967058a73a547781121983839522d67041ae52c4979616f1b2b746"}, +] + +[package.dependencies] +markdown = ">=3.3.3" + [[package]] name = "markupsafe" version = "2.1.5" @@ -1906,6 +1935,22 @@ watchdog = ">=2.0" i18n = ["babel (>=2.9.0)"] min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.4)", "jinja2 (==2.11.1)", "markdown (==3.3.6)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "mkdocs-get-deps (==0.2.0)", "packaging (==20.5)", "pathspec (==0.11.1)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "watchdog (==2.0)"] +[[package]] +name = "mkdocs-autorefs" +version = "1.0.1" +description = "Automatically link across pages in MkDocs." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocs_autorefs-1.0.1-py3-none-any.whl", hash = "sha256:aacdfae1ab197780fb7a2dac92ad8a3d8f7ca8049a9cbe56a4218cd52e8da570"}, + {file = "mkdocs_autorefs-1.0.1.tar.gz", hash = "sha256:f684edf847eced40b570b57846b15f0bf57fb93ac2c510450775dcf16accb971"}, +] + +[package.dependencies] +Markdown = ">=3.3" +markupsafe = ">=2.0.1" +mkdocs = ">=1.1" + [[package]] name = "mkdocs-get-deps" version = "0.2.0" @@ -1925,13 +1970,13 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.5.20" +version = "9.5.28" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.20-py3-none-any.whl", hash = "sha256:ad0094a7597bcb5d0cc3e8e543a10927c2581f7f647b9bb4861600f583180f9b"}, - {file = "mkdocs_material-9.5.20.tar.gz", hash = "sha256:986eef0250d22f70fb06ce0f4eac64cc92bd797a589ec3892ce31fad976fe3da"}, + {file = "mkdocs_material-9.5.28-py3-none-any.whl", hash = "sha256:ff48b11b2a9f705dd210409ec3b418ab443dd36d96915bcba45a41f10ea27bfd"}, + {file = "mkdocs_material-9.5.28.tar.gz", hash = "sha256:9cba305283ad1600e3d0a67abe72d7a058b54793b47be39930911a588fe0336b"}, ] [package.dependencies] @@ -1998,6 +2043,69 @@ files = [ [package.dependencies] mkdocs = "*" +[[package]] +name = "mkdocstrings" +version = "0.25.1" +description = "Automatic documentation from sources, for MkDocs." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocstrings-0.25.1-py3-none-any.whl", hash = "sha256:da01fcc2670ad61888e8fe5b60afe9fee5781017d67431996832d63e887c2e51"}, + {file = "mkdocstrings-0.25.1.tar.gz", hash = "sha256:c3a2515f31577f311a9ee58d089e4c51fc6046dbd9e9b4c3de4c3194667fe9bf"}, +] + +[package.dependencies] +click = ">=7.0" +importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""} +Jinja2 = ">=2.11.1" +Markdown = ">=3.3" +MarkupSafe = ">=1.1" +mkdocs = ">=1.4" +mkdocs-autorefs = ">=0.3.1" +mkdocstrings-crystal = {version = ">=0.3.4", optional = true, markers = "extra == \"crystal\""} +mkdocstrings-python = {version = ">=0.5.2", optional = true, markers = "extra == \"python\""} +platformdirs = ">=2.2.0" +pymdown-extensions = ">=6.3" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.10\""} + +[package.extras] +crystal = ["mkdocstrings-crystal (>=0.3.4)"] +python = ["mkdocstrings-python (>=0.5.2)"] +python-legacy = ["mkdocstrings-python-legacy (>=0.2.1)"] + +[[package]] +name = "mkdocstrings-crystal" +version = "0.3.7" +description = "Crystal language doc generator for mkdocstrings" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocstrings_crystal-0.3.7-py3-none-any.whl", hash = "sha256:91f25700a1e13ee5157aa5875441d333830c392d5ace7ef1c2106d9e5b2883b6"}, + {file = "mkdocstrings_crystal-0.3.7.tar.gz", hash = "sha256:6d0b2fc8ef1256aec2cc4ff22a7d5aff6398c574cede10a5941e5aa3590012c7"}, +] + +[package.dependencies] +jinja2 = ">=2.11.2" +markdown-callouts = ">=0.1.0" +markupsafe = ">=1.1.1" +mkdocs-autorefs = ">=0.3.1" +mkdocstrings = ">=0.19.0" + +[[package]] +name = "mkdocstrings-python" +version = "1.10.5" +description = "A Python handler for mkdocstrings." +optional = false +python-versions = ">=3.8" +files = [ + {file = "mkdocstrings_python-1.10.5-py3-none-any.whl", hash = "sha256:92e3c588ef1b41151f55281d075de7558dd8092e422cb07a65b18ee2b0863ebb"}, + {file = "mkdocstrings_python-1.10.5.tar.gz", hash = "sha256:acdc2a98cd9d46c7ece508193a16ca03ccabcb67520352b7449f84b57c162bdf"}, +] + +[package.dependencies] +griffe = ">=0.47" +mkdocstrings = ">=0.25" + [[package]] name = "mknotebooks" version = "0.8.0" @@ -2109,26 +2217,26 @@ files = [ [[package]] name = "notebook" -version = "7.1.3" +version = "7.2.1" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" files = [ - {file = "notebook-7.1.3-py3-none-any.whl", hash = "sha256:919b911e59f41f6e3857ce93c9d93535ba66bb090059712770e5968c07e1004d"}, - {file = "notebook-7.1.3.tar.gz", hash = "sha256:41fcebff44cf7bb9377180808bcbae066629b55d8c7722f1ebbe75ca44f9cfc1"}, + {file = "notebook-7.2.1-py3-none-any.whl", hash = "sha256:f45489a3995746f2195a137e0773e2130960b51c9ac3ce257dbc2705aab3a6ca"}, + {file = "notebook-7.2.1.tar.gz", hash = "sha256:4287b6da59740b32173d01d641f763d292f49c30e7a51b89c46ba8473126341e"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.1.1,<4.2" -jupyterlab-server = ">=2.22.1,<3" +jupyterlab = ">=4.2.0,<4.3" +jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" [package.extras] dev = ["hatch", "pre-commit"] docs = ["myst-parser", "nbsphinx", "pydata-sphinx-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] -test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.22.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] +test = ["importlib-resources (>=5.0)", "ipykernel", "jupyter-server[test] (>=2.4.0,<3)", "jupyterlab-server[test] (>=2.27.1,<3)", "nbval", "pytest (>=7.0)", "pytest-console-scripts", "pytest-timeout", "pytest-tornasync", "requests"] [[package]] name = "notebook-shim" @@ -2149,13 +2257,13 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "openpyxl" -version = "3.1.2" +version = "3.1.5" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5"}, - {file = "openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"}, + {file = "openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2"}, + {file = "openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"}, ] [package.dependencies] @@ -2188,13 +2296,13 @@ files = [ [[package]] name = "packaging" -version = "24.0" +version = "24.1" description = "Core utilities for Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] @@ -2220,13 +2328,13 @@ files = [ [[package]] name = "parse" -version = "1.20.1" +version = "1.20.2" description = "parse() is the opposite of format()" optional = false python-versions = "*" files = [ - {file = "parse-1.20.1-py2.py3-none-any.whl", hash = "sha256:76ddd5214255ae711db4c512be636151fbabaa948c6f30115aecc440422ca82c"}, - {file = "parse-1.20.1.tar.gz", hash = "sha256:09002ca350ad42e76629995f71f7b518670bcf93548bdde3684fd55d2be51975"}, + {file = "parse-1.20.2-py2.py3-none-any.whl", hash = "sha256:967095588cb802add9177d0c0b6133b5ba33b1ea9007ca800e526f42a85af558"}, + {file = "parse-1.20.2.tar.gz", hash = "sha256:b41d604d16503c79d81af5165155c0b20f6c8d6c559efa66b4b695c3e5a0a0ce"}, ] [[package]] @@ -2297,13 +2405,13 @@ xarray = ["xarray"] [[package]] name = "platformdirs" -version = "4.2.1" +version = "4.2.2" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, - {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] @@ -2385,13 +2493,13 @@ twisted = ["twisted"] [[package]] name = "prompt-toolkit" -version = "3.0.43" +version = "3.0.47" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.7.0" files = [ - {file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"}, - {file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"}, + {file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"}, + {file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"}, ] [package.dependencies] @@ -2399,27 +2507,28 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.8" +version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, ] [package.extras] @@ -2463,109 +2572,121 @@ files = [ [[package]] name = "pydantic" -version = "2.7.1" +version = "2.8.0" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, - {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, + {file = "pydantic-2.8.0-py3-none-any.whl", hash = "sha256:ead4f3a1e92386a734ca1411cb25d94147cf8778ed5be6b56749047676d6364e"}, + {file = "pydantic-2.8.0.tar.gz", hash = "sha256:d970ffb9d030b710795878940bd0489842c638e7252fc4a19c3ae2f7da4d6141"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.18.2" -typing-extensions = ">=4.6.1" +pydantic-core = "2.20.0" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] [package.extras] email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.18.2" +version = "2.20.0" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, - {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, - {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, - {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, - {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, - {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, - {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, - {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, - {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, - {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, - {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, - {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, - {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, - {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, - {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, - {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, - {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, - {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, - {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, - {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, - {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, - {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, - {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, - {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, - {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, - {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, - {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, - {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, - {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, - {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, - {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, - {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, - {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, - {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, - {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, - {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, - {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, - {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, - {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, - {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, + {file = "pydantic_core-2.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e9dcd7fb34f7bfb239b5fa420033642fff0ad676b765559c3737b91f664d4fa9"}, + {file = "pydantic_core-2.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:649a764d9b0da29816889424697b2a3746963ad36d3e0968784ceed6e40c6355"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7701df088d0b05f3460f7ba15aec81ac8b0fb5690367dfd072a6c38cf5b7fdb5"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab760f17c3e792225cdaef31ca23c0aea45c14ce80d8eff62503f86a5ab76bff"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb1ad5b4d73cde784cf64580166568074f5ccd2548d765e690546cff3d80937d"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b81ec2efc04fc1dbf400647d4357d64fb25543bae38d2d19787d69360aad21c9"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4a9732a5cad764ba37f3aa873dccb41b584f69c347a57323eda0930deec8e10"}, + {file = "pydantic_core-2.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6dc85b9e10cc21d9c1055f15684f76fa4facadddcb6cd63abab702eb93c98943"}, + {file = "pydantic_core-2.20.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:21d9f7e24f63fdc7118e6cc49defaab8c1d27570782f7e5256169d77498cf7c7"}, + {file = "pydantic_core-2.20.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8b315685832ab9287e6124b5d74fc12dda31e6421d7f6b08525791452844bc2d"}, + {file = "pydantic_core-2.20.0-cp310-none-win32.whl", hash = "sha256:c3dc8ec8b87c7ad534c75b8855168a08a7036fdb9deeeed5705ba9410721c84d"}, + {file = "pydantic_core-2.20.0-cp310-none-win_amd64.whl", hash = "sha256:85770b4b37bb36ef93a6122601795231225641003e0318d23c6233c59b424279"}, + {file = "pydantic_core-2.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:58e251bb5a5998f7226dc90b0b753eeffa720bd66664eba51927c2a7a2d5f32c"}, + {file = "pydantic_core-2.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:78d584caac52c24240ef9ecd75de64c760bbd0e20dbf6973631815e3ef16ef8b"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5084ec9721f82bef5ff7c4d1ee65e1626783abb585f8c0993833490b63fe1792"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d0f52684868db7c218437d260e14d37948b094493f2646f22d3dda7229bbe3f"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1def125d59a87fe451212a72ab9ed34c118ff771e5473fef4f2f95d8ede26d75"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b34480fd6778ab356abf1e9086a4ced95002a1e195e8d2fd182b0def9d944d11"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d42669d319db366cb567c3b444f43caa7ffb779bf9530692c6f244fc635a41eb"}, + {file = "pydantic_core-2.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:53b06aea7a48919a254b32107647be9128c066aaa6ee6d5d08222325f25ef175"}, + {file = "pydantic_core-2.20.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1f038156b696a1c39d763b2080aeefa87ddb4162c10aa9fabfefffc3dd8180fa"}, + {file = "pydantic_core-2.20.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3f0f3a4a23717280a5ee3ac4fb1f81d6fde604c9ec5100f7f6f987716bb8c137"}, + {file = "pydantic_core-2.20.0-cp311-none-win32.whl", hash = "sha256:316fe7c3fec017affd916a0c83d6f1ec697cbbbdf1124769fa73328e7907cc2e"}, + {file = "pydantic_core-2.20.0-cp311-none-win_amd64.whl", hash = "sha256:2d06a7fa437f93782e3f32d739c3ec189f82fca74336c08255f9e20cea1ed378"}, + {file = "pydantic_core-2.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d6f8c49657f3eb7720ed4c9b26624063da14937fc94d1812f1e04a2204db3e17"}, + {file = "pydantic_core-2.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad1bd2f377f56fec11d5cfd0977c30061cd19f4fa199bf138b200ec0d5e27eeb"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed741183719a5271f97d93bbcc45ed64619fa38068aaa6e90027d1d17e30dc8d"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d82e5ed3a05f2dcb89c6ead2fd0dbff7ac09bc02c1b4028ece2d3a3854d049ce"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2ba34a099576234671f2e4274e5bc6813b22e28778c216d680eabd0db3f7dad"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:879ae6bb08a063b3e1b7ac8c860096d8fd6b48dd9b2690b7f2738b8c835e744b"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0eefc7633a04c0694340aad91fbfd1986fe1a1e0c63a22793ba40a18fcbdc8"}, + {file = "pydantic_core-2.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73deadd6fd8a23e2f40b412b3ac617a112143c8989a4fe265050fd91ba5c0608"}, + {file = "pydantic_core-2.20.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:35681445dc85446fb105943d81ae7569aa7e89de80d1ca4ac3229e05c311bdb1"}, + {file = "pydantic_core-2.20.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0f6dd3612a3b9f91f2e63924ea18a4476656c6d01843ca20a4c09e00422195af"}, + {file = "pydantic_core-2.20.0-cp312-none-win32.whl", hash = "sha256:7e37b6bb6e90c2b8412b06373c6978d9d81e7199a40e24a6ef480e8acdeaf918"}, + {file = "pydantic_core-2.20.0-cp312-none-win_amd64.whl", hash = "sha256:7d4df13d1c55e84351fab51383520b84f490740a9f1fec905362aa64590b7a5d"}, + {file = "pydantic_core-2.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d43e7ab3b65e4dc35a7612cfff7b0fd62dce5bc11a7cd198310b57f39847fd6c"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b6a24d7b5893392f2b8e3b7a0031ae3b14c6c1942a4615f0d8794fdeeefb08b"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b2f13c3e955a087c3ec86f97661d9f72a76e221281b2262956af381224cfc243"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:72432fd6e868c8d0a6849869e004b8bcae233a3c56383954c228316694920b38"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d70a8ff2d4953afb4cbe6211f17268ad29c0b47e73d3372f40e7775904bc28fc"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e49524917b8d3c2f42cd0d2df61178e08e50f5f029f9af1f402b3ee64574392"}, + {file = "pydantic_core-2.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4f0f71653b1c1bad0350bc0b4cc057ab87b438ff18fa6392533811ebd01439c"}, + {file = "pydantic_core-2.20.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:16197e6f4fdecb9892ed2436e507e44f0a1aa2cff3b9306d1c879ea2f9200997"}, + {file = "pydantic_core-2.20.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:763602504bf640b3ded3bba3f8ed8a1cc2fc6a87b8d55c1c5689f428c49c947e"}, + {file = "pydantic_core-2.20.0-cp313-none-win32.whl", hash = "sha256:a3f243f318bd9523277fa123b3163f4c005a3e8619d4b867064de02f287a564d"}, + {file = "pydantic_core-2.20.0-cp313-none-win_amd64.whl", hash = "sha256:03aceaf6a5adaad3bec2233edc5a7905026553916615888e53154807e404545c"}, + {file = "pydantic_core-2.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d6f2d8b8da1f03f577243b07bbdd3412eee3d37d1f2fd71d1513cbc76a8c1239"}, + {file = "pydantic_core-2.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a272785a226869416c6b3c1b7e450506152d3844207331f02f27173562c917e0"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efbb412d55a4ffe73963fed95c09ccb83647ec63b711c4b3752be10a56f0090b"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1e4f46189d8740561b43655263a41aac75ff0388febcb2c9ec4f1b60a0ec12f3"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87d3df115f4a3c8c5e4d5acf067d399c6466d7e604fc9ee9acbe6f0c88a0c3cf"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a340d2bdebe819d08f605e9705ed551c3feb97e4fd71822d7147c1e4bdbb9508"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:616b9c2f882393d422ba11b40e72382fe975e806ad693095e9a3b67c59ea6150"}, + {file = "pydantic_core-2.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25c46bb2ff6084859bbcfdf4f1a63004b98e88b6d04053e8bf324e115398e9e7"}, + {file = "pydantic_core-2.20.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:23425eccef8f2c342f78d3a238c824623836c6c874d93c726673dbf7e56c78c0"}, + {file = "pydantic_core-2.20.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:52527e8f223ba29608d999d65b204676398009725007c9336651c2ec2d93cffc"}, + {file = "pydantic_core-2.20.0-cp38-none-win32.whl", hash = "sha256:1c3c5b7f70dd19a6845292b0775295ea81c61540f68671ae06bfe4421b3222c2"}, + {file = "pydantic_core-2.20.0-cp38-none-win_amd64.whl", hash = "sha256:8093473d7b9e908af1cef30025609afc8f5fd2a16ff07f97440fd911421e4432"}, + {file = "pydantic_core-2.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ee7785938e407418795e4399b2bf5b5f3cf6cf728077a7f26973220d58d885cf"}, + {file = "pydantic_core-2.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0e75794883d635071cf6b4ed2a5d7a1e50672ab7a051454c76446ef1ebcdcc91"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:344e352c96e53b4f56b53d24728217c69399b8129c16789f70236083c6ceb2ac"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:978d4123ad1e605daf1ba5e01d4f235bcf7b6e340ef07e7122e8e9cfe3eb61ab"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c05eaf6c863781eb834ab41f5963604ab92855822a2062897958089d1335dad"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc7e43b4a528ffca8c9151b6a2ca34482c2fdc05e6aa24a84b7f475c896fc51d"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:658287a29351166510ebbe0a75c373600cc4367a3d9337b964dada8d38bcc0f4"}, + {file = "pydantic_core-2.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1dacf660d6de692fe351e8c806e7efccf09ee5184865893afbe8e59be4920b4a"}, + {file = "pydantic_core-2.20.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3e147fc6e27b9a487320d78515c5f29798b539179f7777018cedf51b7749e4f4"}, + {file = "pydantic_core-2.20.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c867230d715a3dd1d962c8d9bef0d3168994ed663e21bf748b6e3a529a129aab"}, + {file = "pydantic_core-2.20.0-cp39-none-win32.whl", hash = "sha256:22b813baf0dbf612752d8143a2dbf8e33ccb850656b7850e009bad2e101fc377"}, + {file = "pydantic_core-2.20.0-cp39-none-win_amd64.whl", hash = "sha256:3a7235b46c1bbe201f09b6f0f5e6c36b16bad3d0532a10493742f91fbdc8035f"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cafde15a6f7feaec2f570646e2ffc5b73412295d29134a29067e70740ec6ee20"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2aec8eeea0b08fd6bc2213d8e86811a07491849fd3d79955b62d83e32fa2ad5f"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:840200827984f1c4e114008abc2f5ede362d6e11ed0b5931681884dd41852ff1"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ea1d8b7df522e5ced34993c423c3bf3735c53df8b2a15688a2f03a7d678800"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d5b8376a867047bf08910573deb95d3c8dfb976eb014ee24f3b5a61ccc5bee1b"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d08264b4460326cefacc179fc1411304d5af388a79910832835e6f641512358b"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7a3639011c2e8a9628466f616ed7fb413f30032b891898e10895a0a8b5857d6c"}, + {file = "pydantic_core-2.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05e83ce2f7eba29e627dd8066aa6c4c0269b2d4f889c0eba157233a353053cea"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:603a843fea76a595c8f661cd4da4d2281dff1e38c4a836a928eac1a2f8fe88e4"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac76f30d5d3454f4c28826d891fe74d25121a346c69523c9810ebba43f3b1cec"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e3b1d4b1b3f6082849f9b28427ef147a5b46a6132a3dbaf9ca1baa40c88609"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2761f71faed820e25ec62eacba670d1b5c2709bb131a19fcdbfbb09884593e5a"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a0586cddbf4380e24569b8a05f234e7305717cc8323f50114dfb2051fcbce2a3"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b8c46a8cf53e849eea7090f331ae2202cd0f1ceb090b00f5902c423bd1e11805"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b4a085bd04af7245e140d1b95619fe8abb445a3d7fdf219b3f80c940853268ef"}, + {file = "pydantic_core-2.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:116b326ac82c8b315e7348390f6d30bcfe6e688a7d3f1de50ff7bcc2042a23c2"}, + {file = "pydantic_core-2.20.0.tar.gz", hash = "sha256:366be8e64e0cb63d87cf79b4e1765c0703dd6313c729b22e7b9e378db6b96877"}, ] [package.dependencies] @@ -2573,17 +2694,16 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pygments" -version = "2.17.2" +version = "2.18.0" description = "Pygments is a syntax highlighting package written in Python." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, ] [package.extras] -plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] @@ -2635,22 +2755,22 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyproject-api" -version = "1.6.1" +version = "1.7.1" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.8" files = [ - {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, - {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, + {file = "pyproject_api-1.7.1-py3-none-any.whl", hash = "sha256:2dc1654062c2b27733d8fd4cdda672b22fe8741ef1dde8e3a998a9547b071eeb"}, + {file = "pyproject_api-1.7.1.tar.gz", hash = "sha256:7ebc6cd10710f89f4cf2a2731710a98abce37ebff19427116ff2174c9236a827"}, ] [package.dependencies] -packaging = ">=23.1" +packaging = ">=24.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] +docs = ["furo (>=2024.5.6)", "sphinx-autodoc-typehints (>=2.2.1)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.2.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=70.1)"] [[package]] name = "pyshex" @@ -2999,13 +3119,13 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qtconsole" -version = "5.5.1" +version = "5.5.2" description = "Jupyter Qt console" optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "qtconsole-5.5.1-py3-none-any.whl", hash = "sha256:8c75fa3e9b4ed884880ff7cea90a1b67451219279ec33deaee1d59e3df1a5d2b"}, - {file = "qtconsole-5.5.1.tar.gz", hash = "sha256:a0e806c6951db9490628e4df80caec9669b65149c7ba40f9bf033c025a5b56bc"}, + {file = "qtconsole-5.5.2-py3-none-any.whl", hash = "sha256:42d745f3d05d36240244a04e1e1ec2a86d5d9b6edb16dbdef582ccb629e87e0b"}, + {file = "qtconsole-5.5.2.tar.gz", hash = "sha256:6b5fb11274b297463706af84dcbbd5c92273b1f619e6d25d08874b0a88516989"}, ] [package.dependencies] @@ -3106,101 +3226,101 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.4.28" +version = "2024.5.15" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd196d056b40af073d95a2879678585f0b74ad35190fac04ca67954c582c6b61"}, - {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8bb381f777351bd534462f63e1c6afb10a7caa9fa2a421ae22c26e796fe31b1f"}, - {file = "regex-2024.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:47af45b6153522733aa6e92543938e97a70ce0900649ba626cf5aad290b737b6"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99d6a550425cc51c656331af0e2b1651e90eaaa23fb4acde577cf15068e2e20f"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf29304a8011feb58913c382902fde3395957a47645bf848eea695839aa101b7"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:92da587eee39a52c91aebea8b850e4e4f095fe5928d415cb7ed656b3460ae79a"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6277d426e2f31bdbacb377d17a7475e32b2d7d1f02faaecc48d8e370c6a3ff31"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28e1f28d07220c0f3da0e8fcd5a115bbb53f8b55cecf9bec0c946eb9a059a94c"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aaa179975a64790c1f2701ac562b5eeb733946eeb036b5bcca05c8d928a62f10"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6f435946b7bf7a1b438b4e6b149b947c837cb23c704e780c19ba3e6855dbbdd3"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:19d6c11bf35a6ad077eb23852827f91c804eeb71ecb85db4ee1386825b9dc4db"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:fdae0120cddc839eb8e3c15faa8ad541cc6d906d3eb24d82fb041cfe2807bc1e"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e672cf9caaf669053121f1766d659a8813bd547edef6e009205378faf45c67b8"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f57515750d07e14743db55d59759893fdb21d2668f39e549a7d6cad5d70f9fea"}, - {file = "regex-2024.4.28-cp310-cp310-win32.whl", hash = "sha256:a1409c4eccb6981c7baabc8888d3550df518add6e06fe74fa1d9312c1838652d"}, - {file = "regex-2024.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:1f687a28640f763f23f8a9801fe9e1b37338bb1ca5d564ddd41619458f1f22d1"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:84077821c85f222362b72fdc44f7a3a13587a013a45cf14534df1cbbdc9a6796"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45d4503de8f4f3dc02f1d28a9b039e5504a02cc18906cfe744c11def942e9eb"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:457c2cd5a646dd4ed536c92b535d73548fb8e216ebee602aa9f48e068fc393f3"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b51739ddfd013c6f657b55a508de8b9ea78b56d22b236052c3a85a675102dc6"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:459226445c7d7454981c4c0ce0ad1a72e1e751c3e417f305722bbcee6697e06a"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:670fa596984b08a4a769491cbdf22350431970d0112e03d7e4eeaecaafcd0fec"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe00f4fe11c8a521b173e6324d862ee7ee3412bf7107570c9b564fe1119b56fb"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36f392dc7763fe7924575475736bddf9ab9f7a66b920932d0ea50c2ded2f5636"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:23a412b7b1a7063f81a742463f38821097b6a37ce1e5b89dd8e871d14dbfd86b"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f1d6e4b7b2ae3a6a9df53efbf199e4bfcff0959dbdb5fd9ced34d4407348e39a"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:499334ad139557de97cbc4347ee921c0e2b5e9c0f009859e74f3f77918339257"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0940038bec2fe9e26b203d636c44d31dd8766abc1fe66262da6484bd82461ccf"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:66372c2a01782c5fe8e04bff4a2a0121a9897e19223d9eab30c54c50b2ebeb7f"}, - {file = "regex-2024.4.28-cp311-cp311-win32.whl", hash = "sha256:c77d10ec3c1cf328b2f501ca32583625987ea0f23a0c2a49b37a39ee5c4c4630"}, - {file = "regex-2024.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:fc0916c4295c64d6890a46e02d4482bb5ccf33bf1a824c0eaa9e83b148291f90"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:08a1749f04fee2811c7617fdd46d2e46d09106fa8f475c884b65c01326eb15c5"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b8eb28995771c087a73338f695a08c9abfdf723d185e57b97f6175c5051ff1ae"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dd7ef715ccb8040954d44cfeff17e6b8e9f79c8019daae2fd30a8806ef5435c0"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb0315a2b26fde4005a7c401707c5352df274460f2f85b209cf6024271373013"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f2fc053228a6bd3a17a9b0a3f15c3ab3cf95727b00557e92e1cfe094b88cc662"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fe9739a686dc44733d52d6e4f7b9c77b285e49edf8570754b322bca6b85b4cc"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74fcf77d979364f9b69fcf8200849ca29a374973dc193a7317698aa37d8b01c"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:965fd0cf4694d76f6564896b422724ec7b959ef927a7cb187fc6b3f4e4f59833"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2fef0b38c34ae675fcbb1b5db760d40c3fc3612cfa186e9e50df5782cac02bcd"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bc365ce25f6c7c5ed70e4bc674f9137f52b7dd6a125037f9132a7be52b8a252f"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ac69b394764bb857429b031d29d9604842bc4cbfd964d764b1af1868eeebc4f0"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:144a1fc54765f5c5c36d6d4b073299832aa1ec6a746a6452c3ee7b46b3d3b11d"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2630ca4e152c221072fd4a56d4622b5ada876f668ecd24d5ab62544ae6793ed6"}, - {file = "regex-2024.4.28-cp312-cp312-win32.whl", hash = "sha256:7f3502f03b4da52bbe8ba962621daa846f38489cae5c4a7b5d738f15f6443d17"}, - {file = "regex-2024.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:0dd3f69098511e71880fb00f5815db9ed0ef62c05775395968299cb400aeab82"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:374f690e1dd0dbdcddea4a5c9bdd97632cf656c69113f7cd6a361f2a67221cb6"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f87ae6b96374db20f180eab083aafe419b194e96e4f282c40191e71980c666"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5dbc1bcc7413eebe5f18196e22804a3be1bfdfc7e2afd415e12c068624d48247"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f85151ec5a232335f1be022b09fbbe459042ea1951d8a48fef251223fc67eee1"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57ba112e5530530fd175ed550373eb263db4ca98b5f00694d73b18b9a02e7185"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:224803b74aab56aa7be313f92a8d9911dcade37e5f167db62a738d0c85fdac4b"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54a047b607fd2d2d52a05e6ad294602f1e0dec2291152b745870afc47c1397"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a2a512d623f1f2d01d881513af9fc6a7c46e5cfffb7dc50c38ce959f9246c94"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c06bf3f38f0707592898428636cbb75d0a846651b053a1cf748763e3063a6925"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1031a5e7b048ee371ab3653aad3030ecfad6ee9ecdc85f0242c57751a05b0ac4"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d7a353ebfa7154c871a35caca7bfd8f9e18666829a1dc187115b80e35a29393e"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7e76b9cfbf5ced1aca15a0e5b6f229344d9b3123439ffce552b11faab0114a02"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5ce479ecc068bc2a74cb98dd8dba99e070d1b2f4a8371a7dfe631f85db70fe6e"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7d77b6f63f806578c604dca209280e4c54f0fa9a8128bb8d2cc5fb6f99da4150"}, - {file = "regex-2024.4.28-cp38-cp38-win32.whl", hash = "sha256:d84308f097d7a513359757c69707ad339da799e53b7393819ec2ea36bc4beb58"}, - {file = "regex-2024.4.28-cp38-cp38-win_amd64.whl", hash = "sha256:2cc1b87bba1dd1a898e664a31012725e48af826bf3971e786c53e32e02adae6c"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7413167c507a768eafb5424413c5b2f515c606be5bb4ef8c5dee43925aa5718b"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:108e2dcf0b53a7c4ab8986842a8edcb8ab2e59919a74ff51c296772e8e74d0ae"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f1c5742c31ba7d72f2dedf7968998730664b45e38827637e0f04a2ac7de2f5f1"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecc6148228c9ae25ce403eade13a0961de1cb016bdb35c6eafd8e7b87ad028b1"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7d893c8cf0e2429b823ef1a1d360a25950ed11f0e2a9df2b5198821832e1947"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4290035b169578ffbbfa50d904d26bec16a94526071ebec3dadbebf67a26b25e"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44a22ae1cfd82e4ffa2066eb3390777dc79468f866f0625261a93e44cdf6482b"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd24fd140b69f0b0bcc9165c397e9b2e89ecbeda83303abf2a072609f60239e2"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:39fb166d2196413bead229cd64a2ffd6ec78ebab83fff7d2701103cf9f4dfd26"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9301cc6db4d83d2c0719f7fcda37229691745168bf6ae849bea2e85fc769175d"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c3d389e8d76a49923683123730c33e9553063d9041658f23897f0b396b2386f"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:99ef6289b62042500d581170d06e17f5353b111a15aa6b25b05b91c6886df8fc"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b91d529b47798c016d4b4c1d06cc826ac40d196da54f0de3c519f5a297c5076a"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:43548ad74ea50456e1c68d3c67fff3de64c6edb85bcd511d1136f9b5376fc9d1"}, - {file = "regex-2024.4.28-cp39-cp39-win32.whl", hash = "sha256:05d9b6578a22db7dedb4df81451f360395828b04f4513980b6bd7a1412c679cc"}, - {file = "regex-2024.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:3986217ec830c2109875be740531feb8ddafe0dfa49767cdcd072ed7e8927962"}, - {file = "regex-2024.4.28.tar.gz", hash = "sha256:83ab366777ea45d58f72593adf35d36ca911ea8bd838483c1823b883a121b0e4"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53"}, + {file = "regex-2024.5.15-cp310-cp310-win32.whl", hash = "sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3"}, + {file = "regex-2024.5.15-cp310-cp310-win_amd64.whl", hash = "sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68"}, + {file = "regex-2024.5.15-cp311-cp311-win32.whl", hash = "sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa"}, + {file = "regex-2024.5.15-cp311-cp311-win_amd64.whl", hash = "sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80"}, + {file = "regex-2024.5.15-cp312-cp312-win32.whl", hash = "sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe"}, + {file = "regex-2024.5.15-cp312-cp312-win_amd64.whl", hash = "sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:87e2a9c29e672fc65523fb47a90d429b70ef72b901b4e4b1bd42387caf0d6835"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3bea0ba8b73b71b37ac833a7f3fd53825924165da6a924aec78c13032f20850"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bfc4f82cabe54f1e7f206fd3d30fda143f84a63fe7d64a81558d6e5f2e5aaba9"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5bb9425fe881d578aeca0b2b4b3d314ec88738706f66f219c194d67179337cb"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c65783e96e563103d641760664125e91bd85d8e49566ee560ded4da0d3e704"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf2430df4148b08fb4324b848672514b1385ae3807651f3567871f130a728cc3"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5397de3219a8b08ae9540c48f602996aa6b0b65d5a61683e233af8605c42b0f2"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:455705d34b4154a80ead722f4f185b04c4237e8e8e33f265cd0798d0e44825fa"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2b6f1b3bb6f640c1a92be3bbfbcb18657b125b99ecf141fb3310b5282c7d4ed"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3ad070b823ca5890cab606c940522d05d3d22395d432f4aaaf9d5b1653e47ced"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5b5467acbfc153847d5adb21e21e29847bcb5870e65c94c9206d20eb4e99a384"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e6662686aeb633ad65be2a42b4cb00178b3fbf7b91878f9446075c404ada552f"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:2b4c884767504c0e2401babe8b5b7aea9148680d2e157fa28f01529d1f7fcf67"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3cd7874d57f13bf70078f1ff02b8b0aa48d5b9ed25fc48547516c6aba36f5741"}, + {file = "regex-2024.5.15-cp38-cp38-win32.whl", hash = "sha256:e4682f5ba31f475d58884045c1a97a860a007d44938c4c0895f41d64481edbc9"}, + {file = "regex-2024.5.15-cp38-cp38-win_amd64.whl", hash = "sha256:d99ceffa25ac45d150e30bd9ed14ec6039f2aad0ffa6bb87a5936f5782fc1569"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456"}, + {file = "regex-2024.5.15-cp39-cp39-win32.whl", hash = "sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694"}, + {file = "regex-2024.5.15-cp39-cp39-win_amd64.whl", hash = "sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388"}, + {file = "regex-2024.5.15.tar.gz", hash = "sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c"}, ] [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -3251,110 +3371,110 @@ files = [ [[package]] name = "rpds-py" -version = "0.18.0" +version = "0.18.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" files = [ - {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, - {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, - {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, - {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, - {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, - {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, - {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, - {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, - {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, - {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, - {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, - {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, - {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d31dea506d718693b6b2cffc0648a8929bdc51c70a311b2770f09611caa10d53"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:732672fbc449bab754e0b15356c077cc31566df874964d4801ab14f71951ea80"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a98a1f0552b5f227a3d6422dbd61bc6f30db170939bd87ed14f3c339aa6c7c9"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f1944ce16401aad1e3f7d312247b3d5de7981f634dc9dfe90da72b87d37887d"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38e14fb4e370885c4ecd734f093a2225ee52dc384b86fa55fe3f74638b2cfb09"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08d74b184f9ab6289b87b19fe6a6d1a97fbfea84b8a3e745e87a5de3029bf944"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d70129cef4a8d979caa37e7fe957202e7eee8ea02c5e16455bc9808a59c6b2f0"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0bb20e3a11bd04461324a6a798af34d503f8d6f1aa3d2aa8901ceaf039176d"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81c5196a790032e0fc2464c0b4ab95f8610f96f1f2fa3d4deacce6a79852da60"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f3027be483868c99b4985fda802a57a67fdf30c5d9a50338d9db646d590198da"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d44607f98caa2961bab4fa3c4309724b185b464cdc3ba6f3d7340bac3ec97cc1"}, + {file = "rpds_py-0.18.1-cp310-none-win32.whl", hash = "sha256:c273e795e7a0f1fddd46e1e3cb8be15634c29ae8ff31c196debb620e1edb9333"}, + {file = "rpds_py-0.18.1-cp310-none-win_amd64.whl", hash = "sha256:8352f48d511de5f973e4f2f9412736d7dea76c69faa6d36bcf885b50c758ab9a"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88"}, + {file = "rpds_py-0.18.1-cp311-none-win32.whl", hash = "sha256:c69882964516dc143083d3795cb508e806b09fc3800fd0d4cddc1df6c36e76bb"}, + {file = "rpds_py-0.18.1-cp311-none-win_amd64.whl", hash = "sha256:70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3dd3cd86e1db5aadd334e011eba4e29d37a104b403e8ca24dcd6703c68ca55b3"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:05f3d615099bd9b13ecf2fc9cf2d839ad3f20239c678f461c753e93755d629ee"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35b2b771b13eee8729a5049c976197ff58a27a3829c018a04341bcf1ae409b2b"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee17cd26b97d537af8f33635ef38be873073d516fd425e80559f4585a7b90c43"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b646bf655b135ccf4522ed43d6902af37d3f5dbcf0da66c769a2b3938b9d8184"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19ba472b9606c36716062c023afa2484d1e4220548751bda14f725a7de17b4f6"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e30ac5e329098903262dc5bdd7e2086e0256aa762cc8b744f9e7bf2a427d3f8"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d58ad6317d188c43750cb76e9deacf6051d0f884d87dc6518e0280438648a9ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e1735502458621921cee039c47318cb90b51d532c2766593be6207eec53e5c4c"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f5bab211605d91db0e2995a17b5c6ee5edec1270e46223e513eaa20da20076ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2fc24a329a717f9e2448f8cd1f960f9dac4e45b6224d60734edeb67499bab03a"}, + {file = "rpds_py-0.18.1-cp312-none-win32.whl", hash = "sha256:1805d5901779662d599d0e2e4159d8a82c0b05faa86ef9222bf974572286b2b6"}, + {file = "rpds_py-0.18.1-cp312-none-win_amd64.whl", hash = "sha256:720edcb916df872d80f80a1cc5ea9058300b97721efda8651efcd938a9c70a72"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:c827576e2fa017a081346dce87d532a5310241648eb3700af9a571a6e9fc7e74"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:aa3679e751408d75a0b4d8d26d6647b6d9326f5e35c00a7ccd82b78ef64f65f8"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0abeee75434e2ee2d142d650d1e54ac1f8b01e6e6abdde8ffd6eeac6e9c38e20"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed402d6153c5d519a0faf1bb69898e97fb31613b49da27a84a13935ea9164dfc"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:338dee44b0cef8b70fd2ef54b4e09bb1b97fc6c3a58fea5db6cc083fd9fc2724"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7750569d9526199c5b97e5a9f8d96a13300950d910cf04a861d96f4273d5b104"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:607345bd5912aacc0c5a63d45a1f73fef29e697884f7e861094e443187c02be5"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:207c82978115baa1fd8d706d720b4a4d2b0913df1c78c85ba73fe6c5804505f0"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6d1e42d2735d437e7e80bab4d78eb2e459af48c0a46e686ea35f690b93db792d"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5463c47c08630007dc0fe99fb480ea4f34a89712410592380425a9b4e1611d8e"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:06d218939e1bf2ca50e6b0ec700ffe755e5216a8230ab3e87c059ebb4ea06afc"}, + {file = "rpds_py-0.18.1-cp38-none-win32.whl", hash = "sha256:312fe69b4fe1ffbe76520a7676b1e5ac06ddf7826d764cc10265c3b53f96dbe9"}, + {file = "rpds_py-0.18.1-cp38-none-win_amd64.whl", hash = "sha256:9437ca26784120a279f3137ee080b0e717012c42921eb07861b412340f85bae2"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:19e515b78c3fc1039dd7da0a33c28c3154458f947f4dc198d3c72db2b6b5dc93"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7b28c5b066bca9a4eb4e2f2663012debe680f097979d880657f00e1c30875a0"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:673fdbbf668dd958eff750e500495ef3f611e2ecc209464f661bc82e9838991e"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d960de62227635d2e61068f42a6cb6aae91a7fe00fca0e3aeed17667c8a34611"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:352a88dc7892f1da66b6027af06a2e7e5d53fe05924cc2cfc56495b586a10b72"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e0ee01ad8260184db21468a6e1c37afa0529acc12c3a697ee498d3c2c4dcaf3"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4c39ad2f512b4041343ea3c7894339e4ca7839ac38ca83d68a832fc8b3748ab"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aaa71ee43a703c321906813bb252f69524f02aa05bf4eec85f0c41d5d62d0f4c"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6cd8098517c64a85e790657e7b1e509b9fe07487fd358e19431cb120f7d96338"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4adec039b8e2928983f885c53b7cc4cda8965b62b6596501a0308d2703f8af1b"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32b7daaa3e9389db3695964ce8e566e3413b0c43e3394c05e4b243a4cd7bef26"}, + {file = "rpds_py-0.18.1-cp39-none-win32.whl", hash = "sha256:2625f03b105328729f9450c8badda34d5243231eef6535f80064d57035738360"}, + {file = "rpds_py-0.18.1-cp39-none-win_amd64.whl", hash = "sha256:bf18932d0003c8c4d51a39f244231986ab23ee057d235a12b2684ea26a353590"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cbfbea39ba64f5e53ae2915de36f130588bba71245b418060ec3330ebf85678e"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3d456ff2a6a4d2adcdf3c1c960a36f4fd2fec6e3b4902a42a384d17cf4e7a65"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7700936ef9d006b7ef605dc53aa364da2de5a3aa65516a1f3ce73bf82ecfc7ae"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51584acc5916212e1bf45edd17f3a6b05fe0cbb40482d25e619f824dccb679de"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:942695a206a58d2575033ff1e42b12b2aece98d6003c6bc739fbf33d1773b12f"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b906b5f58892813e5ba5c6056d6a5ad08f358ba49f046d910ad992196ea61397"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f8e3fecca256fefc91bb6765a693d96692459d7d4c644660a9fff32e517843"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7732770412bab81c5a9f6d20aeb60ae943a9b36dcd990d876a773526468e7163"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:bd1105b50ede37461c1d51b9698c4f4be6e13e69a908ab7751e3807985fc0346"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:618916f5535784960f3ecf8111581f4ad31d347c3de66d02e728de460a46303c"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:17c6d2155e2423f7e79e3bb18151c686d40db42d8645e7977442170c360194d4"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c4c4c3f878df21faf5fac86eda32671c27889e13570645a9eea0a1abdd50922"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:fab6ce90574645a0d6c58890e9bcaac8d94dff54fb51c69e5522a7358b80ab64"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531796fb842b53f2695e94dc338929e9f9dbf473b64710c28af5a160b2a8927d"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:740884bc62a5e2bbb31e584f5d23b32320fd75d79f916f15a788d527a5e83644"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:998125738de0158f088aef3cb264a34251908dd2e5d9966774fdab7402edfab7"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2be6e9dd4111d5b31ba3b74d17da54a8319d8168890fbaea4b9e5c3de630ae5"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0cee71bc618cd93716f3c1bf56653740d2d13ddbd47673efa8bf41435a60daa"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c3caec4ec5cd1d18e5dd6ae5194d24ed12785212a90b37f5f7f06b8bedd7139"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:27bba383e8c5231cd559affe169ca0b96ec78d39909ffd817f28b166d7ddd4d8"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:a888e8bdb45916234b99da2d859566f1e8a1d2275a801bb8e4a9644e3c7e7909"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6031b25fb1b06327b43d841f33842b383beba399884f8228a6bb3df3088485ff"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48c2faaa8adfacefcbfdb5f2e2e7bdad081e5ace8d182e5f4ade971f128e6bb3"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d85164315bd68c0806768dc6bb0429c6f95c354f87485ee3593c4f6b14def2bd"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6afd80f6c79893cfc0574956f78a0add8c76e3696f2d6a15bca2c66c415cf2d4"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa242ac1ff583e4ec7771141606aafc92b361cd90a05c30d93e343a0c2d82a89"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21be4770ff4e08698e1e8e0bce06edb6ea0626e7c8f560bc08222880aca6a6f"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c45a639e93a0c5d4b788b2613bd637468edd62f8f95ebc6fcc303d58ab3f0a8"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910e71711d1055b2768181efa0a17537b2622afeb0424116619817007f8a2b10"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9bb1f182a97880f6078283b3505a707057c42bf55d8fca604f70dedfdc0772a"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d54f74f40b1f7aaa595a02ff42ef38ca654b1469bef7d52867da474243cc633"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:8d2e182c9ee01135e11e9676e9a62dfad791a7a467738f06726872374a83db49"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:636a15acc588f70fda1661234761f9ed9ad79ebed3f2125d44be0862708b666e"}, + {file = "rpds_py-0.18.1.tar.gz", hash = "sha256:dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f"}, ] [[package]] @@ -3452,19 +3572,18 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "69.5.1" +version = "70.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, - {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, + {file = "setuptools-70.2.0-py3-none-any.whl", hash = "sha256:b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05"}, + {file = "setuptools-70.2.0.tar.gz", hash = "sha256:bd63e505105011b25c3c11f753f7e3b8465ea739efddaccef8f0efac2137bac1"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "shexjsg" @@ -3573,64 +3692,64 @@ pandas = ["pandas (>=1.3.5)"] [[package]] name = "sqlalchemy" -version = "2.0.29" +version = "2.0.31" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c142852ae192e9fe5aad5c350ea6befe9db14370b34047e1f0f7cf99e63c63b"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:99a1e69d4e26f71e750e9ad6fdc8614fbddb67cfe2173a3628a2566034e223c7"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ef3fbccb4058355053c51b82fd3501a6e13dd808c8d8cd2561e610c5456013c"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d6753305936eddc8ed190e006b7bb33a8f50b9854823485eed3a886857ab8d1"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0f3ca96af060a5250a8ad5a63699180bc780c2edf8abf96c58af175921df847a"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c4520047006b1d3f0d89e0532978c0688219857eb2fee7c48052560ae76aca1e"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-win32.whl", hash = "sha256:b2a0e3cf0caac2085ff172c3faacd1e00c376e6884b5bc4dd5b6b84623e29e4f"}, - {file = "SQLAlchemy-2.0.29-cp310-cp310-win_amd64.whl", hash = "sha256:01d10638a37460616708062a40c7b55f73e4d35eaa146781c683e0fa7f6c43fb"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:308ef9cb41d099099fffc9d35781638986870b29f744382904bf9c7dadd08513"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:296195df68326a48385e7a96e877bc19aa210e485fa381c5246bc0234c36c78e"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a13b917b4ffe5a0a31b83d051d60477819ddf18276852ea68037a144a506efb9"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f6d971255d9ddbd3189e2e79d743ff4845c07f0633adfd1de3f63d930dbe673"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:61405ea2d563407d316c63a7b5271ae5d274a2a9fbcd01b0aa5503635699fa1e"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:de7202ffe4d4a8c1e3cde1c03e01c1a3772c92858837e8f3879b497158e4cb44"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-win32.whl", hash = "sha256:b5d7ed79df55a731749ce65ec20d666d82b185fa4898430b17cb90c892741520"}, - {file = "SQLAlchemy-2.0.29-cp311-cp311-win_amd64.whl", hash = "sha256:205f5a2b39d7c380cbc3b5dcc8f2762fb5bcb716838e2d26ccbc54330775b003"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d96710d834a6fb31e21381c6d7b76ec729bd08c75a25a5184b1089141356171f"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:52de4736404e53c5c6a91ef2698c01e52333988ebdc218f14c833237a0804f1b"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c7b02525ede2a164c5fa5014915ba3591730f2cc831f5be9ff3b7fd3e30958e"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dfefdb3e54cd15f5d56fd5ae32f1da2d95d78319c1f6dfb9bcd0eb15d603d5d"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a88913000da9205b13f6f195f0813b6ffd8a0c0c2bd58d499e00a30eb508870c"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fecd5089c4be1bcc37c35e9aa678938d2888845a134dd016de457b942cf5a758"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-win32.whl", hash = "sha256:8197d6f7a3d2b468861ebb4c9f998b9df9e358d6e1cf9c2a01061cb9b6cf4e41"}, - {file = "SQLAlchemy-2.0.29-cp312-cp312-win_amd64.whl", hash = "sha256:9b19836ccca0d321e237560e475fd99c3d8655d03da80c845c4da20dda31b6e1"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87a1d53a5382cdbbf4b7619f107cc862c1b0a4feb29000922db72e5a66a5ffc0"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a0732dffe32333211801b28339d2a0babc1971bc90a983e3035e7b0d6f06b93"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90453597a753322d6aa770c5935887ab1fc49cc4c4fdd436901308383d698b4b"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ea311d4ee9a8fa67f139c088ae9f905fcf0277d6cd75c310a21a88bf85e130f5"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5f20cb0a63a3e0ec4e169aa8890e32b949c8145983afa13a708bc4b0a1f30e03"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-win32.whl", hash = "sha256:e5bbe55e8552019c6463709b39634a5fc55e080d0827e2a3a11e18eb73f5cdbd"}, - {file = "SQLAlchemy-2.0.29-cp37-cp37m-win_amd64.whl", hash = "sha256:c2f9c762a2735600654c654bf48dad388b888f8ce387b095806480e6e4ff6907"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7e614d7a25a43a9f54fcce4675c12761b248547f3d41b195e8010ca7297c369c"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:471fcb39c6adf37f820350c28aac4a7df9d3940c6548b624a642852e727ea586"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:988569c8732f54ad3234cf9c561364221a9e943b78dc7a4aaf35ccc2265f1930"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dddaae9b81c88083e6437de95c41e86823d150f4ee94bf24e158a4526cbead01"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:334184d1ab8f4c87f9652b048af3f7abea1c809dfe526fb0435348a6fef3d380"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:38b624e5cf02a69b113c8047cf7f66b5dfe4a2ca07ff8b8716da4f1b3ae81567"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-win32.whl", hash = "sha256:bab41acf151cd68bc2b466deae5deeb9e8ae9c50ad113444151ad965d5bf685b"}, - {file = "SQLAlchemy-2.0.29-cp38-cp38-win_amd64.whl", hash = "sha256:52c8011088305476691b8750c60e03b87910a123cfd9ad48576d6414b6ec2a1d"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3071ad498896907a5ef756206b9dc750f8e57352113c19272bdfdc429c7bd7de"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dba622396a3170974f81bad49aacebd243455ec3cc70615aeaef9e9613b5bca5"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b184e3de58009cc0bf32e20f137f1ec75a32470f5fede06c58f6c355ed42a72"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c37f1050feb91f3d6c32f864d8e114ff5545a4a7afe56778d76a9aec62638ba"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bda7ce59b06d0f09afe22c56714c65c957b1068dee3d5e74d743edec7daba552"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:25664e18bef6dc45015b08f99c63952a53a0a61f61f2e48a9e70cec27e55f699"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-win32.whl", hash = "sha256:77d29cb6c34b14af8a484e831ab530c0f7188f8efed1c6a833a2c674bf3c26ec"}, - {file = "SQLAlchemy-2.0.29-cp39-cp39-win_amd64.whl", hash = "sha256:04c487305ab035a9548f573763915189fc0fe0824d9ba28433196f8436f1449c"}, - {file = "SQLAlchemy-2.0.29-py3-none-any.whl", hash = "sha256:dc4ee2d4ee43251905f88637d5281a8d52e916a021384ec10758826f5cbae305"}, - {file = "SQLAlchemy-2.0.29.tar.gz", hash = "sha256:bd9566b8e58cabd700bc367b60e90d9349cd16f0984973f98a9a09f9c64e86f0"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} + {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f2a213c1b699d3f5768a7272de720387ae0122f1becf0901ed6eaa1abd1baf6c"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9fea3d0884e82d1e33226935dac990b967bef21315cbcc894605db3441347443"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3ad7f221d8a69d32d197e5968d798217a4feebe30144986af71ada8c548e9fa"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2bee229715b6366f86a95d497c347c22ddffa2c7c96143b59a2aa5cc9eebbc"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cd5b94d4819c0c89280b7c6109c7b788a576084bf0a480ae17c227b0bc41e109"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:750900a471d39a7eeba57580b11983030517a1f512c2cb287d5ad0fcf3aebd58"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-win32.whl", hash = "sha256:7bd112be780928c7f493c1a192cd8c5fc2a2a7b52b790bc5a84203fb4381c6be"}, + {file = "SQLAlchemy-2.0.31-cp310-cp310-win_amd64.whl", hash = "sha256:5a48ac4d359f058474fadc2115f78a5cdac9988d4f99eae44917f36aa1476327"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f68470edd70c3ac3b6cd5c2a22a8daf18415203ca1b036aaeb9b0fb6f54e8298"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e2c38c2a4c5c634fe6c3c58a789712719fa1bf9b9d6ff5ebfce9a9e5b89c1ca"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd15026f77420eb2b324dcb93551ad9c5f22fab2c150c286ef1dc1160f110203"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2196208432deebdfe3b22185d46b08f00ac9d7b01284e168c212919891289396"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:352b2770097f41bff6029b280c0e03b217c2dcaddc40726f8f53ed58d8a85da4"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:56d51ae825d20d604583f82c9527d285e9e6d14f9a5516463d9705dab20c3740"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win32.whl", hash = "sha256:6e2622844551945db81c26a02f27d94145b561f9d4b0c39ce7bfd2fda5776dac"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win_amd64.whl", hash = "sha256:ccaf1b0c90435b6e430f5dd30a5aede4764942a695552eb3a4ab74ed63c5b8d3"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd1591329333daf94467e699e11015d9c944f44c94d2091f4ac493ced0119449"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74afabeeff415e35525bf7a4ecdab015f00e06456166a2eba7590e49f8db940e"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b9c01990d9015df2c6f818aa8f4297d42ee71c9502026bb074e713d496e26b67"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:66f63278db425838b3c2b1c596654b31939427016ba030e951b292e32b99553e"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f43e93057cf52a227eda401251c72b6fbe4756f35fa6bfebb5d73b86881e59b0"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d337bf94052856d1b330d5fcad44582a30c532a2463776e1651bd3294ee7e58b"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c06fb43a51ccdff3b4006aafee9fcf15f63f23c580675f7734245ceb6b6a9e05"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:b6e22630e89f0e8c12332b2b4c282cb01cf4da0d26795b7eae16702a608e7ca1"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:79a40771363c5e9f3a77f0e28b3302801db08040928146e6808b5b7a40749c88"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win32.whl", hash = "sha256:501ff052229cb79dd4c49c402f6cb03b5a40ae4771efc8bb2bfac9f6c3d3508f"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win_amd64.whl", hash = "sha256:597fec37c382a5442ffd471f66ce12d07d91b281fd474289356b1a0041bdf31d"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dc6d69f8829712a4fd799d2ac8d79bdeff651c2301b081fd5d3fe697bd5b4ab9"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:23b9fbb2f5dd9e630db70fbe47d963c7779e9c81830869bd7d137c2dc1ad05fb"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a21c97efcbb9f255d5c12a96ae14da873233597dfd00a3a0c4ce5b3e5e79704"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26a6a9837589c42b16693cf7bf836f5d42218f44d198f9343dd71d3164ceeeac"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc251477eae03c20fae8db9c1c23ea2ebc47331bcd73927cdcaecd02af98d3c3"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:2fd17e3bb8058359fa61248c52c7b09a97cf3c820e54207a50af529876451808"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win32.whl", hash = "sha256:c76c81c52e1e08f12f4b6a07af2b96b9b15ea67ccdd40ae17019f1c373faa227"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win_amd64.whl", hash = "sha256:4b600e9a212ed59355813becbcf282cfda5c93678e15c25a0ef896b354423238"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b6cf796d9fcc9b37011d3f9936189b3c8074a02a4ed0c0fbbc126772c31a6d4"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78fe11dbe37d92667c2c6e74379f75746dc947ee505555a0197cfba9a6d4f1a4"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc47dc6185a83c8100b37acda27658fe4dbd33b7d5e7324111f6521008ab4fe"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a41514c1a779e2aa9a19f67aaadeb5cbddf0b2b508843fcd7bafdf4c6864005"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:afb6dde6c11ea4525318e279cd93c8734b795ac8bb5dda0eedd9ebaca7fa23f1"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3f9faef422cfbb8fd53716cd14ba95e2ef655400235c3dfad1b5f467ba179c8c"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-win32.whl", hash = "sha256:fc6b14e8602f59c6ba893980bea96571dd0ed83d8ebb9c4479d9ed5425d562e9"}, + {file = "SQLAlchemy-2.0.31-cp39-cp39-win_amd64.whl", hash = "sha256:3cb8a66b167b033ec72c3812ffc8441d4e9f5f78f5e31e54dcd4c90a4ca5bebc"}, + {file = "SQLAlchemy-2.0.31-py3-none-any.whl", hash = "sha256:69f3e3c08867a8e4856e92d7afb618b95cdee18e0bc1647b77599722c9a28911"}, + {file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} typing-extensions = ">=4.6.0" [package.extras] @@ -3729,50 +3848,50 @@ files = [ [[package]] name = "tornado" -version = "6.4" +version = "6.4.1" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false -python-versions = ">= 3.8" +python-versions = ">=3.8" files = [ - {file = "tornado-6.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:02ccefc7d8211e5a7f9e8bc3f9e5b0ad6262ba2fbb683a6443ecc804e5224ce0"}, - {file = "tornado-6.4-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:27787de946a9cffd63ce5814c33f734c627a87072ec7eed71f7fc4417bb16263"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7894c581ecdcf91666a0912f18ce5e757213999e183ebfc2c3fdbf4d5bd764e"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e43bc2e5370a6a8e413e1e1cd0c91bedc5bd62a74a532371042a18ef19e10579"}, - {file = "tornado-6.4-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0251554cdd50b4b44362f73ad5ba7126fc5b2c2895cc62b14a1c2d7ea32f212"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fd03192e287fbd0899dd8f81c6fb9cbbc69194d2074b38f384cb6fa72b80e9c2"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:88b84956273fbd73420e6d4b8d5ccbe913c65d31351b4c004ae362eba06e1f78"}, - {file = "tornado-6.4-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:71ddfc23a0e03ef2df1c1397d859868d158c8276a0603b96cf86892bff58149f"}, - {file = "tornado-6.4-cp38-abi3-win32.whl", hash = "sha256:6f8a6c77900f5ae93d8b4ae1196472d0ccc2775cc1dfdc9e7727889145c45052"}, - {file = "tornado-6.4-cp38-abi3-win_amd64.whl", hash = "sha256:10aeaa8006333433da48dec9fe417877f8bcc21f48dda8d661ae79da357b2a63"}, - {file = "tornado-6.4.tar.gz", hash = "sha256:72291fa6e6bc84e626589f1c29d90a5a6d593ef5ae68052ee2ef000dfd273dee"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"}, + {file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"}, + {file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"}, + {file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"}, + {file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"}, + {file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"}, + {file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"}, ] [[package]] name = "tox" -version = "4.15.0" +version = "4.16.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.15.0-py3-none-any.whl", hash = "sha256:300055f335d855b2ab1b12c5802de7f62a36d4fd53f30bd2835f6a201dda46ea"}, - {file = "tox-4.15.0.tar.gz", hash = "sha256:7a0beeef166fbe566f54f795b4906c31b428eddafc0102ac00d20998dd1933f6"}, + {file = "tox-4.16.0-py3-none-any.whl", hash = "sha256:61e101061b977b46cf00093d4319438055290ad0009f84497a07bf2d2d7a06d0"}, + {file = "tox-4.16.0.tar.gz", hash = "sha256:43499656f9949edb681c0f907f86fbfee98677af9919d8b11ae5ad77cb800748"}, ] [package.dependencies] -cachetools = ">=5.3.2" +cachetools = ">=5.3.3" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.13.1" -packaging = ">=23.2" -platformdirs = ">=4.1" -pluggy = ">=1.3" -pyproject-api = ">=1.6.1" +filelock = ">=3.15.4" +packaging = ">=24.1" +platformdirs = ">=4.2.2" +pluggy = ">=1.5" +pyproject-api = ">=1.7.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.25" +virtualenv = ">=20.26.3" [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] -testing = ["build[virtualenv] (>=1.0.3)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=8.0.2)", "distlib (>=0.3.8)", "flaky (>=3.7)", "hatch-vcs (>=0.4)", "hatchling (>=1.21)", "psutil (>=5.9.7)", "pytest (>=7.4.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-xdist (>=3.5)", "re-assert (>=1.1)", "time-machine (>=2.13)", "wheel (>=0.42)"] +docs = ["furo (>=2024.5.6)", "sphinx (>=7.3.7)", "sphinx-argparse-cli (>=1.16)", "sphinx-autodoc-typehints (>=2.2.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] +testing = ["build[virtualenv] (>=1.2.1)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=9.1)", "distlib (>=0.3.8)", "flaky (>=3.8.1)", "hatch-vcs (>=0.4)", "hatchling (>=1.25)", "psutil (>=6)", "pytest (>=8.2.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-xdist (>=3.6.1)", "re-assert (>=1.1)", "setuptools (>=70.2)", "time-machine (>=2.14.2)", "wheel (>=0.43)"] [[package]] name = "traitlets" @@ -3802,13 +3921,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.11.0" +version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, - {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -3847,13 +3966,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] @@ -3864,13 +3983,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.26.1" +version = "20.26.3" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.26.1-py3-none-any.whl", hash = "sha256:7aa9982a728ae5892558bff6a2839c00b9ed145523ece2274fad6f414690ae75"}, - {file = "virtualenv-20.26.1.tar.gz", hash = "sha256:604bfdceaeece392802e6ae48e69cec49168b9c5f4a44e483963f9242eb0e78b"}, + {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, + {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, ] [package.dependencies] @@ -3884,40 +4003,43 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess [[package]] name = "watchdog" -version = "4.0.0" +version = "4.0.1" description = "Filesystem events monitoring" optional = false python-versions = ">=3.8" files = [ - {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, - {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, - {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, - {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"}, - {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"}, - {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"}, - {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"}, - {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"}, - {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"}, - {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"}, - {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"}, - {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"}, - {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"}, - {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"}, - {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"}, - {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, - {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, - {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, - {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, - {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, - {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, - {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, - {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, + {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da2dfdaa8006eb6a71051795856bedd97e5b03e57da96f98e375682c48850645"}, + {file = "watchdog-4.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e93f451f2dfa433d97765ca2634628b789b49ba8b504fdde5837cdcf25fdb53b"}, + {file = "watchdog-4.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef0107bbb6a55f5be727cfc2ef945d5676b97bffb8425650dadbb184be9f9a2b"}, + {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:17e32f147d8bf9657e0922c0940bcde863b894cd871dbb694beb6704cfbd2fb5"}, + {file = "watchdog-4.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03e70d2df2258fb6cb0e95bbdbe06c16e608af94a3ffbd2b90c3f1e83eb10767"}, + {file = "watchdog-4.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:123587af84260c991dc5f62a6e7ef3d1c57dfddc99faacee508c71d287248459"}, + {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:093b23e6906a8b97051191a4a0c73a77ecc958121d42346274c6af6520dec175"}, + {file = "watchdog-4.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:611be3904f9843f0529c35a3ff3fd617449463cb4b73b1633950b3d97fa4bfb7"}, + {file = "watchdog-4.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:62c613ad689ddcb11707f030e722fa929f322ef7e4f18f5335d2b73c61a85c28"}, + {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d4925e4bf7b9bddd1c3de13c9b8a2cdb89a468f640e66fbfabaf735bd85b3e35"}, + {file = "watchdog-4.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cad0bbd66cd59fc474b4a4376bc5ac3fc698723510cbb64091c2a793b18654db"}, + {file = "watchdog-4.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a3c2c317a8fb53e5b3d25790553796105501a235343f5d2bf23bb8649c2c8709"}, + {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c9904904b6564d4ee8a1ed820db76185a3c96e05560c776c79a6ce5ab71888ba"}, + {file = "watchdog-4.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:667f3c579e813fcbad1b784db7a1aaa96524bed53437e119f6a2f5de4db04235"}, + {file = "watchdog-4.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d10a681c9a1d5a77e75c48a3b8e1a9f2ae2928eda463e8d33660437705659682"}, + {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0144c0ea9997b92615af1d94afc0c217e07ce2c14912c7b1a5731776329fcfc7"}, + {file = "watchdog-4.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:998d2be6976a0ee3a81fb8e2777900c28641fb5bfbd0c84717d89bca0addcdc5"}, + {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e7921319fe4430b11278d924ef66d4daa469fafb1da679a2e48c935fa27af193"}, + {file = "watchdog-4.0.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f0de0f284248ab40188f23380b03b59126d1479cd59940f2a34f8852db710625"}, + {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bca36be5707e81b9e6ce3208d92d95540d4ca244c006b61511753583c81c70dd"}, + {file = "watchdog-4.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ab998f567ebdf6b1da7dc1e5accfaa7c6992244629c0fdaef062f43249bd8dee"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:dddba7ca1c807045323b6af4ff80f5ddc4d654c8bce8317dde1bd96b128ed253"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_armv7l.whl", hash = "sha256:4513ec234c68b14d4161440e07f995f231be21a09329051e67a2118a7a612d2d"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_i686.whl", hash = "sha256:4107ac5ab936a63952dea2a46a734a23230aa2f6f9db1291bf171dac3ebd53c6"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64.whl", hash = "sha256:6e8c70d2cd745daec2a08734d9f63092b793ad97612470a0ee4cbb8f5f705c57"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f27279d060e2ab24c0aa98363ff906d2386aa6c4dc2f1a374655d4e02a6c5e5e"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_s390x.whl", hash = "sha256:f8affdf3c0f0466e69f5b3917cdd042f89c8c63aebdb9f7c078996f607cdb0f5"}, + {file = "watchdog-4.0.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:ac7041b385f04c047fcc2951dc001671dee1b7e0615cde772e84b01fbf68ee84"}, + {file = "watchdog-4.0.1-py3-none-win32.whl", hash = "sha256:206afc3d964f9a233e6ad34618ec60b9837d0582b500b63687e34011e15bb429"}, + {file = "watchdog-4.0.1-py3-none-win_amd64.whl", hash = "sha256:7577b3c43e5909623149f76b099ac49a1a01ca4e167d1785c76eb52fa585745a"}, + {file = "watchdog-4.0.1-py3-none-win_ia64.whl", hash = "sha256:d7b9f5f3299e8dd230880b6c55504a1f69cf1e4316275d1b215ebdd8187ec88d"}, + {file = "watchdog-4.0.1.tar.gz", hash = "sha256:eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44"}, ] [package.extras] @@ -3936,18 +4058,18 @@ files = [ [[package]] name = "webcolors" -version = "1.13" +version = "24.6.0" description = "A library for working with the color formats defined by HTML and CSS." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "webcolors-1.13-py3-none-any.whl", hash = "sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf"}, - {file = "webcolors-1.13.tar.gz", hash = "sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a"}, + {file = "webcolors-24.6.0-py3-none-any.whl", hash = "sha256:8cf5bc7e28defd1d48b9e83d5fc30741328305a8195c29a8e668fa45586568a1"}, + {file = "webcolors-24.6.0.tar.gz", hash = "sha256:1d160d1de46b3e81e58d0a280d0c78b467dc80f47294b91b1ad8029d2cedb55b"}, ] [package.extras] docs = ["furo", "sphinx", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-notfound-page", "sphinxext-opengraph"] -tests = ["pytest", "pytest-cov"] +tests = ["coverage[toml]"] [[package]] name = "webencodings" @@ -3978,13 +4100,13 @@ test = ["websockets"] [[package]] name = "widgetsnbextension" -version = "4.0.10" +version = "4.0.11" description = "Jupyter interactive widgets for Jupyter Notebook" optional = false python-versions = ">=3.7" files = [ - {file = "widgetsnbextension-4.0.10-py3-none-any.whl", hash = "sha256:d37c3724ec32d8c48400a435ecfa7d3e259995201fbefa37163124a9fcb393cc"}, - {file = "widgetsnbextension-4.0.10.tar.gz", hash = "sha256:64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f"}, + {file = "widgetsnbextension-4.0.11-py3-none-any.whl", hash = "sha256:55d4d6949d100e0d08b94948a42efc3ed6dfdc0e9468b2c4b128c9a2ce3a7a36"}, + {file = "widgetsnbextension-4.0.11.tar.gz", hash = "sha256:8b22a8f1910bfd188e596fe7fc05dcbd87e810c8a4ba010bdb3da86637398474"}, ] [[package]] @@ -4068,20 +4190,20 @@ files = [ [[package]] name = "zipp" -version = "3.18.1" +version = "3.19.2" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, - {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "7809ccee5cc7162c10fc644e92a95f563ed9bfabfce83eb44d26c4b254c4eba5" +content-hash = "49f23df4d8d806c70f7937181a86cf8bec4514531894eaa42214bf0d41b2ef0c" diff --git a/project.Makefile b/project.Makefile index fb04f8f..9953614 100644 --- a/project.Makefile +++ b/project.Makefile @@ -3,7 +3,7 @@ tests/model/%.py: tests/input/%.yaml specification: src/docs/specification/compliance.md -src/docs/specification/compliance.md: tests/test_compliance/test_compliance_suite.py +docs/specification/compliance.md: tests/test_compliance/test_compliance_suite.py mkdir -p docs/specification $(RUN) pytest $< -s -q --tb no --disable-warnings > $@.tmp && perl -pne 's@^\.#@#@' $@.tmp > $@.tmp.md && pandoc -f gfm --toc --toc-depth=2 -s $@.tmp.md -o $@ && rm $@.tmp && rm $@.tmp.md diff --git a/pyproject.toml b/pyproject.toml index e44ece2..261c5c9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ pytest = "^7.3.1" pytest-cov = "^4.0.0" linkml = ">=1.7.0" mkdocs-mermaid2-plugin = "^0.6.0" +mkdocstrings = {extras = ["crystal", "python"], version = "*"} mknotebooks = "^0.8.0" mkdocs-windmill = "*" tox = "*" diff --git a/src/docs/index.md b/src/docs/index.md deleted file mode 100644 index 01cb451..0000000 --- a/src/docs/index.md +++ /dev/null @@ -1,180 +0,0 @@ -# LinkML-Map - -LinkML Map is a framework for specifying and executing mappings between data models. - -Features: - -- YAML-based lightweight syntax -- Python library for executing mappings on data files -- Ability to compile to other frameworks (SQL/DuckDB) -- Derivation of target (implicit) schemas, allowing easy customization of data models (*profiling*) -- Simple YAML dictionaries for simple mappings -- Automatic unit conversion -- Use of subset of Python to specify complex mappings -- Visualizations of mappings -- Mappings are reversible (provided all expressions used are reversible) -- Compatibility with SSSOM - -This documentation are available at: - -- [linkml.io/linkml-map/](https://linkml.io/linkml-map/) - -Status: - -The transformation data model is not yet fully stable, and may be subject to change. -Not all parts of the model are implemented in the reference Python framework. - -## Basic idea - -Given an object that conforms to a LinkML schema,e.g.: - -```yaml -given_name: Jane -family_name: Doe -height_in_cm: 172.0 -age_in_years: 33 -aliases: [Janey, Janie] -``` - -Define a mapping in YAML: - -```yaml -class_derivations: - Individual: - populated_from: Person - slot_derivations: - name: - expr: "{given_name} + ' ' + {family_name}" - description: Concatenating given and family names - note this is a bad assumption for names in general, - this is just for demonstration - height_in_meters: - populated_from: height_in_cm - unit_conversion: - target_unit: m - aliases: - populated_from: aliases - stringification: - delimiter: '|' -``` - -The schema mapping (aka [TransformationSpecification](TransformationSpecification.md)) specifies how to transform the data model. - -The schema mapping is a collection of one or more [ClassDerivation](ClassDerivation.md) objects, -which themselves consist of one or more [SlotDerivation](SlotDerivation.md) objects. - -Transform the data: - -```bash -linkml-tr map-data -T tr.yaml -s schema.yaml my-data.yaml -``` - -Giving: - -```yaml -name: Jane Doe -height_in_meters: 1.72 -aliases: Janey|Janie -``` - -## Installation and usage - -Installation and command line usage: - -```bash -pip[x] install linkml-map -cd tests/input/examples/personinfo_basic -linkml-tr map-data \ - -T transform/personinfo-to-agent.transform.yaml \ - -s source/personinfo.yaml \ - data/Container-001.yaml \ - -o output/Translated-001.yaml -``` - -The command line has subcommands for: - -- `map-data` - map data from a source schema to a target schema -- `derive-schema` - derive a target schema from a source schema and a mapping -- `invert` - reverses a mapping -- `compile` - compiles a mapping to another framework - - `markdown` - for generating static sites - - `graphviz` - for generating visualizations - - `python` - (partial) - - forthcoming: `r2rml`, ... - -## Details - -This repo contains both: - -- A [data model](datamodel) for a data model *transformation language* -- A reference python implementation - -The transformation language is specified in terms of [LinkML](https://linkml.io) schemas. -It is intended to be a *ployglot* transformation language, used for -specifying how to map data models independent of underlying representation -(TSVs, JSON/YAML, RDF, SQL Database, ...). - -Use cases include: - -- ETL and mapping from one data model to another -- Database migrations (one version of a schema to another) -- Creating "profiles" -- Specifying mappings between different serializations of a model (e.g. OO to Relational) -- Mapping between normalized/non-redundant forms and denormalized/query-optimized forms - - -## Data Model - -The data model for transformations mirrors the data model for schemas: - -- A top level [TransformationSpecification](TransformationSpecification.md) class contains: - - Zero or more [ClassDerivation](ClassDerivation.md) objects, specifying how to map to a class, containing - - Zero or more [SlotDerivation](SlotDerivation.md) objects, specifying how to map to a slot - - Zero or more [EnumDerivation](EnumDerivation.md) objects, specifying how to map to an enum - -See the [generated docs](datamodel.md) - -## Conformance Suite - -The Maps conformance suite contains a collection of tests for each feature of the language. - -See: - -* [Compliance Suite](specification/compliance.md) - - -## Running the code - -```bash -linkml-tr --help -Usage: linkml-tr [OPTIONS] COMMAND [ARGS]... - - CLI for linkml-map. - -Options: - -v, --verbose - -q, --quiet TEXT - --help Show this message and exit. - -Commands: - derive-schema Derive a schema from a source schema and a mapping. - map-data Map data in a source schema using a transformation. -``` - -### map-data - -Transforms (maps) data from a source schema to a target schema. This could range from a simple data dictionary mapping -through to a complex mappings. - -``` -cd tests/input/examples/personinfo_basic -linkml-tr map-data -T transform/personinfo-to-agent.transform.yaml -s source/personinfo.yaml data/Container-001.yaml -``` - -### derive-schema - -``` -cd tests/input/examples/personinfo_basic -linkml-tr derive-schema -T transform/personinfo-to-agent.transform.yaml source/personinfo.yaml -``` - diff --git a/tests/test_compliance/test_compliance_suite.py b/tests/test_compliance/test_compliance_suite.py index 62f7353..5a02442 100644 --- a/tests/test_compliance/test_compliance_suite.py +++ b/tests/test_compliance/test_compliance_suite.py @@ -41,15 +41,24 @@ from linkml_map.inference.inverter import TransformationSpecificationInverter from linkml_map.inference.schema_mapper import SchemaMapper from linkml_map.transformer.object_transformer import ObjectTransformer +from datetime import date + +today = date.today() +formatted_date = today.strftime("%Y-%m-%d") logger = logging.getLogger(__name__) print( - """ + f""" # LinkML-Map Compliance Suite This is the output from running the full compliance test suite. +```yaml +Time_executed: {formatted_date} +Package: {__file__} +``` + It is organized into **Feature Sets** that test a particular feature or group of features, and **combinations** of different schemas, input objects, and transformation specifications. This is intended to exhaustively test all combinations of features, and provide informative @@ -352,16 +361,16 @@ def test_map_collections( This makes use of the `cast_collection_as` construct :param invocation_tracker: - :param source_datatype: - :param target_datatype: - :param source_value: - :param target_value: - :param invertible: + :param source_datatype: linkml datatype of source object + :param target_datatype: linkml datatype of target object + :param source_value: value of source object + :param target_value: expected value of slot in target object + :param invertible: True if the transformation is invertible :return: """ print(f"Mapping `{source_datatype}` => `{target_datatype}`\n\n") if source_datatype == target_datatype: - print("Isomorphic mapping: input should equal output\n") + print("Isomorphic mapping: **input must equal output**\n") else: print("Should coerce datatype\n") source_collection_type = ( @@ -459,6 +468,8 @@ def test_expr(invocation_tracker, expr, source_object, target_value): derived schema or inversion for expressions. This will be fixed in future. + - See also: [LinkML Expressions](https://linkml.io/linkml/schemas/expression-language.html) + :param invocation_tracker: pytest fixture to emit metadata :param expr: pythonic expression :param source_object: source object @@ -571,7 +582,7 @@ def test_simple_unit_conversion( can be used. We explicitly test for some known cases where UCUM uses non-standard units (e.g. Cel, mo), as well as UCUM-specific syntax (e.g. `m.s-1`) and extensions (e.g. using annotations like `{Cre}`). - Developers note: to run this test, the units extension should be installed: + *Developers note*: to run this test, the units extension should be installed: `poetry install -E units` @@ -590,11 +601,11 @@ def test_simple_unit_conversion( if skip: pytest.skip(f"TODO: {skip}") print( - f"Unit Conversion: {source_value} `{source_unit}` => " - f"{target_value} `{target_unit} [with {source_slot}]`\n\n" + f"Unit Conversion: `{source_value}` `{source_unit}` => " + f"`{target_value}` `{target_unit}` [with {source_slot}]\n\n" ) if source_unit == target_unit: - print("Isomorphic mapping: input should equal output") + print("Isomorphic mapping: **input must equal output**") classes = { "C": { "attributes": { @@ -649,13 +660,18 @@ def test_complex_unit_conversion( """ Test unit conversion, from complex object to simple scalar. + An example complex object would be an object with separate attributes for + representing magnitude (value) and unit. + + For example `magnitude: 1.0, unit: "m"` + :param invocation_tracker: - :param source_unit: - :param target_unit: - :param source_value: - :param target_value: - :param roundtrip_object: - :param err: + :param source_unit: unit of source slot + :param target_unit: unit of target slot + :param source_value: magnitude of source slot (to be converted) + :param target_value: expected magnitude of target slot (output of conversion) + :param roundtrip_object: expected value of passing target object back through inverted transformation + :param err: True if expected to raise an Error :return: """ target_slot = f"q_in_{target_unit}" @@ -737,6 +753,11 @@ def test_stringify(invocation_tracker, syntax, delimiter, source_value, target_v - flattening lists using an (internal) delimiter - flattening lists or more complex objects using JSON or YAML + For example, `["a", "b"]` => `"a,b"` + + As a convention we use `s1_verbatim` as a slot/attribute name for the + stringified form. + :param invocation_tracker: pytest fixture to emit metadata :param syntax: SerializationSyntaxType :param delimiter: delimiter to use in stringification @@ -1006,9 +1027,9 @@ def test_map_enum(invocation_tracker, source_value, mapping, target_value, mirro - boolean/branching logic :param invocation_tracker: - :param source_value: - :param mapping: - :param target_value: + :param source_value: source enum permissible value to be mapped + :param mapping: mapping from source to target enum permissible values + :param target_value: expected target enum permissible value :return: """ classes = { From c0a18ec8e335aaeafc0da81d84f6ac2956a9acb4 Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Wed, 3 Jul 2024 16:29:55 -0700 Subject: [PATCH 2/5] moving docs --- docs/faq.md | 38 +++++++++++ docs/index.md | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 218 insertions(+) create mode 100644 docs/faq.md create mode 100644 docs/index.md diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..cbccbe0 --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,38 @@ +# FAQ + +## Why another framework? + +There are a number of excellent frameworks for performing mapping and data transformations. +The LinkML Transformer framework was born out of a need for a framework that: + +- was not inherently tied to: + - a particular serialization format (e.g. RDF, JSON, ...) + - a particular programming language (e.g. Python, Java, ...) + - a particular database system or database language (e.g. PostgreSQL or SQL or SPARQL) + - not tied to a particular kind of transformation (e.g. ORM or Tables to RDF) +- was a natural fit for the LinkML data modeling framework +- was declarative and easy to perform machine reasoning over +- is simple for simple use cases + +In its current state, this framework is less powerful and expressive than many other frameworks +or methodologies for performing transformations. If you need to perform complex data transformations, +you might be better off using an expressive query language like SPARQL or SQL, or even just coding +transformations directly in a programming language or library like Python or Pandas (but note that +even for the coding use case, the LinkML Transformer framework can be useful as a standard way +of *documenting* transformations). + +Currently the main use case for this framework is *mostly isomorphic* transformations, with lightweight +manipulations. These lend themselves well to a declarative framework. Uses cases that are a particularly good fit +involve mapping between data-dictionary like standards, with large numbers of metadata elements, where these +elements can often be mapped one-to-one, or with simple manipulations (e.g. unit conversions). + +The origins lie partly in the SSSOM standard, which is intended as an ultra-simple way of specifying +precise mappings between *entities* (e.g. schema.org Person is the same as DBPedia person). We observed +that many people wanted to extend the language to perform more complex mappings. To address this, we +help a workshop at the Biocuration conference in Padua, Italy in 2022. + +- [Discussion](https://github.com/orgs/linkml/discussions/1829) +- [SSSOM paper](https://academic.oup.com/database/article/doi/10.1093/database/baac035/6591806) +- [SSSOM Update 2023](https://ceur-ws.org/Vol-3591/om2023_STpaper3.pdf) +- [SSSOM Complex Mappings Workshop 2023](https://www.youtube.com/playlist?list=PLqu_J7ADQtKyX55F7RqZtaSS7TwGd3MoR) +- [Mapping Data Structures: Challenges and Approaches](https://doi.org/10.5281/zenodo.10343505) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..01cb451 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,180 @@ +# LinkML-Map + +LinkML Map is a framework for specifying and executing mappings between data models. + +Features: + +- YAML-based lightweight syntax +- Python library for executing mappings on data files +- Ability to compile to other frameworks (SQL/DuckDB) +- Derivation of target (implicit) schemas, allowing easy customization of data models (*profiling*) +- Simple YAML dictionaries for simple mappings +- Automatic unit conversion +- Use of subset of Python to specify complex mappings +- Visualizations of mappings +- Mappings are reversible (provided all expressions used are reversible) +- Compatibility with SSSOM + +This documentation are available at: + +- [linkml.io/linkml-map/](https://linkml.io/linkml-map/) + +Status: + +The transformation data model is not yet fully stable, and may be subject to change. +Not all parts of the model are implemented in the reference Python framework. + +## Basic idea + +Given an object that conforms to a LinkML schema,e.g.: + +```yaml +given_name: Jane +family_name: Doe +height_in_cm: 172.0 +age_in_years: 33 +aliases: [Janey, Janie] +``` + +Define a mapping in YAML: + +```yaml +class_derivations: + Individual: + populated_from: Person + slot_derivations: + name: + expr: "{given_name} + ' ' + {family_name}" + description: Concatenating given and family names + note this is a bad assumption for names in general, + this is just for demonstration + height_in_meters: + populated_from: height_in_cm + unit_conversion: + target_unit: m + aliases: + populated_from: aliases + stringification: + delimiter: '|' +``` + +The schema mapping (aka [TransformationSpecification](TransformationSpecification.md)) specifies how to transform the data model. + +The schema mapping is a collection of one or more [ClassDerivation](ClassDerivation.md) objects, +which themselves consist of one or more [SlotDerivation](SlotDerivation.md) objects. + +Transform the data: + +```bash +linkml-tr map-data -T tr.yaml -s schema.yaml my-data.yaml +``` + +Giving: + +```yaml +name: Jane Doe +height_in_meters: 1.72 +aliases: Janey|Janie +``` + +## Installation and usage + +Installation and command line usage: + +```bash +pip[x] install linkml-map +cd tests/input/examples/personinfo_basic +linkml-tr map-data \ + -T transform/personinfo-to-agent.transform.yaml \ + -s source/personinfo.yaml \ + data/Container-001.yaml \ + -o output/Translated-001.yaml +``` + +The command line has subcommands for: + +- `map-data` - map data from a source schema to a target schema +- `derive-schema` - derive a target schema from a source schema and a mapping +- `invert` - reverses a mapping +- `compile` - compiles a mapping to another framework + - `markdown` - for generating static sites + - `graphviz` - for generating visualizations + - `python` - (partial) + - forthcoming: `r2rml`, ... + +## Details + +This repo contains both: + +- A [data model](datamodel) for a data model *transformation language* +- A reference python implementation + +The transformation language is specified in terms of [LinkML](https://linkml.io) schemas. +It is intended to be a *ployglot* transformation language, used for +specifying how to map data models independent of underlying representation +(TSVs, JSON/YAML, RDF, SQL Database, ...). + +Use cases include: + +- ETL and mapping from one data model to another +- Database migrations (one version of a schema to another) +- Creating "profiles" +- Specifying mappings between different serializations of a model (e.g. OO to Relational) +- Mapping between normalized/non-redundant forms and denormalized/query-optimized forms + + +## Data Model + +The data model for transformations mirrors the data model for schemas: + +- A top level [TransformationSpecification](TransformationSpecification.md) class contains: + - Zero or more [ClassDerivation](ClassDerivation.md) objects, specifying how to map to a class, containing + - Zero or more [SlotDerivation](SlotDerivation.md) objects, specifying how to map to a slot + - Zero or more [EnumDerivation](EnumDerivation.md) objects, specifying how to map to an enum + +See the [generated docs](datamodel.md) + +## Conformance Suite + +The Maps conformance suite contains a collection of tests for each feature of the language. + +See: + +* [Compliance Suite](specification/compliance.md) + + +## Running the code + +```bash +linkml-tr --help +Usage: linkml-tr [OPTIONS] COMMAND [ARGS]... + + CLI for linkml-map. + +Options: + -v, --verbose + -q, --quiet TEXT + --help Show this message and exit. + +Commands: + derive-schema Derive a schema from a source schema and a mapping. + map-data Map data in a source schema using a transformation. +``` + +### map-data + +Transforms (maps) data from a source schema to a target schema. This could range from a simple data dictionary mapping +through to a complex mappings. + +``` +cd tests/input/examples/personinfo_basic +linkml-tr map-data -T transform/personinfo-to-agent.transform.yaml -s source/personinfo.yaml data/Container-001.yaml +``` + +### derive-schema + +``` +cd tests/input/examples/personinfo_basic +linkml-tr derive-schema -T transform/personinfo-to-agent.transform.yaml source/personinfo.yaml +``` + From 492eaacb7d39f58a3aa0f367dad5f7be9d76101e Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Wed, 3 Jul 2024 16:51:36 -0700 Subject: [PATCH 3/5] reorganized docs --- Makefile | 4 +- docs/index.md | 18 ++--- docs/schema/Any.md | 6 +- docs/schema/datamodel.md | 8 +-- docs/schema/index.md | 148 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 169 insertions(+), 15 deletions(-) create mode 100644 docs/schema/index.md diff --git a/Makefile b/Makefile index 47625aa..4fb0725 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,9 @@ serve: mkd-serve deploy: mkd-deploy # Deploy gh docs -deploy-gh-doc: gendoc +# https://github.com/linkml/linkml/issues/2193 +#deploy-gh-doc: gendoc +deploy-gh-doc: $(RUN) mkdocs gh-deploy diff --git a/docs/index.md b/docs/index.md index 01cb451..c919181 100644 --- a/docs/index.md +++ b/docs/index.md @@ -58,10 +58,10 @@ class_derivations: delimiter: '|' ``` -The schema mapping (aka [TransformationSpecification](TransformationSpecification.md)) specifies how to transform the data model. +The schema mapping (aka [TransformationSpecification](schema/TransformationSpecification.md)) specifies how to transform the data model. -The schema mapping is a collection of one or more [ClassDerivation](ClassDerivation.md) objects, -which themselves consist of one or more [SlotDerivation](SlotDerivation.md) objects. +The schema mapping is a collection of one or more [ClassDerivation](schema/ClassDerivation.md) objects, +which themselves consist of one or more [SlotDerivation](schema/SlotDerivation.md) objects. Transform the data: @@ -106,7 +106,7 @@ The command line has subcommands for: This repo contains both: -- A [data model](datamodel) for a data model *transformation language* +- A [data model](schema/) for a data model *transformation language* - A reference python implementation The transformation language is specified in terms of [LinkML](https://linkml.io) schemas. @@ -127,12 +127,12 @@ Use cases include: The data model for transformations mirrors the data model for schemas: -- A top level [TransformationSpecification](TransformationSpecification.md) class contains: - - Zero or more [ClassDerivation](ClassDerivation.md) objects, specifying how to map to a class, containing - - Zero or more [SlotDerivation](SlotDerivation.md) objects, specifying how to map to a slot - - Zero or more [EnumDerivation](EnumDerivation.md) objects, specifying how to map to an enum +- A top level [TransformationSpecification](schema/TransformationSpecification.md) class contains: + - Zero or more [ClassDerivation](schema/ClassDerivation.md) objects, specifying how to map to a class, containing + - Zero or more [SlotDerivation](schema/SlotDerivation.md) objects, specifying how to map to a slot + - Zero or more [EnumDerivation](schema/EnumDerivation.md) objects, specifying how to map to an enum -See the [generated docs](datamodel.md) +See the [generated docs](schema/index.md) ## Conformance Suite diff --git a/docs/schema/Any.md b/docs/schema/Any.md index ec7dc70..bee7827 100644 --- a/docs/schema/Any.md +++ b/docs/schema/Any.md @@ -9,9 +9,12 @@ URI: [linkml:Any](https://w3id.org/linkml/Any) + + ```mermaid classDiagram class Any + click Any href "../Any" ``` @@ -66,7 +69,6 @@ URI: [linkml:Any](https://w3id.org/linkml/Any) - ## Mappings | Mapping Type | Mapped Value | @@ -78,6 +80,8 @@ URI: [linkml:Any](https://w3id.org/linkml/Any) + + ## LinkML Source diff --git a/docs/schema/datamodel.md b/docs/schema/datamodel.md index 54918b1..66ff1fe 100644 --- a/docs/schema/datamodel.md +++ b/docs/schema/datamodel.md @@ -1,8 +1,8 @@ -# LinkML Data Transformer Model +# LinkML Map Data Model -Datamodel for LinkML schema transformations. +Datamodel for LinkML schema mappings and transformations. -A transformer generates instances of a *target* data model from +A mapper generates instances of a *target* data model from instances of a *source* data model. This transformation process is guided by a *TransformationSpecification*. @@ -16,7 +16,7 @@ data. It allows different approaches, including: URI: https://w3id.org/linkml/transformer -Name: transformer +Name: linkml-map diff --git a/docs/schema/index.md b/docs/schema/index.md new file mode 100644 index 0000000..66ff1fe --- /dev/null +++ b/docs/schema/index.md @@ -0,0 +1,148 @@ +# LinkML Map Data Model + +Datamodel for LinkML schema mappings and transformations. + +A mapper generates instances of a *target* data model from +instances of a *source* data model. This transformation process +is guided by a *TransformationSpecification*. + +The specification is independent of any one method for transforming +data. It allows different approaches, including: + +- direct implementation, transforming python or json objects +- translation of the specification into SQL commands, to operate on relations +- translation of the specification into SPARQL CONSTRUCTs, to operate on triples +- translation into another specification language, such as R2RML + +URI: https://w3id.org/linkml/transformer + +Name: linkml-map + + + +## Classes + +| Class | Description | +| --- | --- | +| [AliasedClass](AliasedClass.md) | alias-class key value pairs for classes | +| [Any](Any.md) | None | +| [CopyDirective](CopyDirective.md) | Instructs a Schema Mapper in how to map to a target schema. Not used for data transformation. | +| [Inverse](Inverse.md) | Used for back references in mapping to relational model | +| [KeyVal](KeyVal.md) | None | +| [SpecificationComponent](SpecificationComponent.md) | None | +|         [ElementDerivation](ElementDerivation.md) | An abstract grouping for classes that provide a specification of how to derive a target element from a source element. | +|                 [ClassDerivation](ClassDerivation.md) | A specification of how to derive a target class from a source class. | +|                 [EnumDerivation](EnumDerivation.md) | A specification of how to derive the value of a target enum from a source enum | +|                 [PermissibleValueDerivation](PermissibleValueDerivation.md) | A specification of how to derive the value of a PV from a source enum | +|                 [PrefixDerivation](PrefixDerivation.md) | None | +|                 [SlotDerivation](SlotDerivation.md) | A specification of how to derive the value of a target slot from a source slot | +|         [TransformationSpecification](TransformationSpecification.md) | A collection of mappings between source and target classes | +| [StringificationConfiguration](StringificationConfiguration.md) | None | +| [UnitConversionConfiguration](UnitConversionConfiguration.md) | None | + + + +## Slots + +| Slot | Description | +| --- | --- | +| [add](add.md) | | +| [alias](alias.md) | name of the class to be aliased | +| [cast_collection_as](cast_collection_as.md) | | +| [class_derivations](class_derivations.md) | Instructions on how to derive a set of classes in the target schema from clas... | +| [class_name](class_name.md) | | +| [class_named](class_named.md) | local alias for the class | +| [comments](comments.md) | A list of comments about this component | +| [copy_all](copy_all.md) | | +| [copy_directives](copy_directives.md) | | +| [delimiter](delimiter.md) | | +| [derived_from](derived_from.md) | Source slots that are used to derive this slot | +| [description](description.md) | description of the specification component | +| [dictionary_key](dictionary_key.md) | | +| [element_name](element_name.md) | | +| [enum_derivations](enum_derivations.md) | Instructions on how to derive a set of enums in the target schema | +| [exclude](exclude.md) | | +| [exclude_all](exclude_all.md) | | +| [expr](expr.md) | An expression to be evaluated on the source object to derive the target slot | +| [expression_to_expression_mappings](expression_to_expression_mappings.md) | A mapping table in which the keys and values are expressions | +| [expression_to_value_mappings](expression_to_value_mappings.md) | A mapping table in which the keys are expressions | +| [hide](hide.md) | True if this is suppressed | +| [id](id.md) | Unique identifier for this transformation specification | +| [implements](implements.md) | A reference to a specification that this component implements | +| [include](include.md) | | +| [inverse_of](inverse_of.md) | Used to specify a class-slot tuple that is the inverse of the derived/target ... | +| [is_a](is_a.md) | | +| [joins](joins.md) | Additional classes to be joined to derive instances of the target class | +| [key](key.md) | | +| [mirror_source](mirror_source.md) | | +| [mixins](mixins.md) | | +| [name](name.md) | Name of the element in the target schema | +| [over_slots](over_slots.md) | | +| [overrides](overrides.md) | overrides source schema slots | +| [permissible_value_derivations](permissible_value_derivations.md) | Instructions on how to derive a set of PVs in the target schema | +| [populated_from](populated_from.md) | Name of the class in the source schema | +| [prefixes](prefixes.md) | maps prefixes to URL expansions | +| [range](range.md) | | +| [reversed](reversed.md) | | +| [slot_derivations](slot_derivations.md) | Instructions on how to derive a set of top level slots in the target schema | +| [slot_name](slot_name.md) | | +| [source_magnitude_slot](source_magnitude_slot.md) | | +| [source_schema](source_schema.md) | name of the schema that describes the source (input) objects | +| [source_unit](source_unit.md) | | +| [source_unit_scheme](source_unit_scheme.md) | | +| [source_unit_slot](source_unit_slot.md) | | +| [sources](sources.md) | | +| [stringification](stringification.md) | | +| [syntax](syntax.md) | | +| [target_magnitude_slot](target_magnitude_slot.md) | | +| [target_schema](target_schema.md) | name of the schema that describes the target (output) objects | +| [target_unit](target_unit.md) | | +| [target_unit_scheme](target_unit_scheme.md) | | +| [target_unit_slot](target_unit_slot.md) | | +| [title](title.md) | human readable title for this transformation specification | +| [type_designator](type_designator.md) | | +| [unit_conversion](unit_conversion.md) | | +| [value](value.md) | | +| [value_mappings](value_mappings.md) | A mapping table that is applied directly to mappings, in order of precedence | + + +## Enumerations + +| Enumeration | Description | +| --- | --- | +| [CollectionType](CollectionType.md) | | +| [SerializationSyntaxType](SerializationSyntaxType.md) | | + + +## Types + +| Type | Description | +| --- | --- | +| [Boolean](Boolean.md) | A binary (true or false) value | +| [ClassReference](ClassReference.md) | | +| [Curie](Curie.md) | a compact URI | +| [Date](Date.md) | a date (year, month and day) in an idealized calendar | +| [DateOrDatetime](DateOrDatetime.md) | Either a date or a datetime | +| [Datetime](Datetime.md) | The combination of a date and time | +| [Decimal](Decimal.md) | A real number with arbitrary precision that conforms to the xsd:decimal speci... | +| [Double](Double.md) | A real number that conforms to the xsd:double specification | +| [EnumReference](EnumReference.md) | | +| [Float](Float.md) | A real number that conforms to the xsd:float specification | +| [Integer](Integer.md) | An integer | +| [Jsonpath](Jsonpath.md) | A string encoding a JSON Path | +| [Jsonpointer](Jsonpointer.md) | A string encoding a JSON Pointer | +| [Ncname](Ncname.md) | Prefix part of CURIE | +| [Nodeidentifier](Nodeidentifier.md) | A URI, CURIE or BNODE that represents a node in a model | +| [Objectidentifier](Objectidentifier.md) | A URI or CURIE that represents an object in the model | +| [SlotReference](SlotReference.md) | | +| [Sparqlpath](Sparqlpath.md) | A string encoding a SPARQL Property Path | +| [String](String.md) | A character string | +| [Time](Time.md) | A time object represents a (local) time of day, independent of any particular... | +| [Uri](Uri.md) | a complete URI | +| [Uriorcurie](Uriorcurie.md) | a URI or a CURIE | + + +## Subsets + +| Subset | Description | +| --- | --- | From fdeb55ee34b211e06770a0d4de0aa577ac6d37f4 Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Wed, 3 Jul 2024 16:55:49 -0700 Subject: [PATCH 4/5] isort --- tests/test_compliance/test_compliance_suite.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_compliance/test_compliance_suite.py b/tests/test_compliance/test_compliance_suite.py index 5a02442..4d04abb 100644 --- a/tests/test_compliance/test_compliance_suite.py +++ b/tests/test_compliance/test_compliance_suite.py @@ -20,6 +20,7 @@ import logging import re from dataclasses import dataclass +from datetime import date from types import ModuleType from typing import Any, Dict, Optional @@ -41,7 +42,6 @@ from linkml_map.inference.inverter import TransformationSpecificationInverter from linkml_map.inference.schema_mapper import SchemaMapper from linkml_map.transformer.object_transformer import ObjectTransformer -from datetime import date today = date.today() formatted_date = today.strftime("%Y-%m-%d") From 5a8762445b83cf140d09d5e0d495d24089bdc7e9 Mon Sep 17 00:00:00 2001 From: Chris Mungall Date: Wed, 3 Jul 2024 17:01:48 -0700 Subject: [PATCH 5/5] spell --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 261c5c9..f019348 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,4 +66,4 @@ reverse_relative = true skip = '.git,*.pdf,*.svg,go.sum,*.lock' check-hidden = true ignore-regex = '(^\s*"image/\S+": ".*|\b(KEGG.BRITE|mor.nlm.nih.gov)\b)' -ignore-words-list = 'infarction,amination' +ignore-words-list = 'infarction,amination,assertIn'