dmesh-sdk 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dmesh_sdk-0.1.0/.gitignore +28 -0
- dmesh_sdk-0.1.0/.test_venv/.gitignore +1 -0
- dmesh_sdk-0.1.0/.test_venv/.lock +0 -0
- dmesh_sdk-0.1.0/.test_venv/CACHEDIR.TAG +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/_dmesh_sdk.pth +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/_virtualenv.pth +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/_virtualenv.py +101 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/_yaml/__init__.py +33 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types/__init__.py +432 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types/test_cases.py +151 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/METADATA +295 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/RECORD +9 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/__init__.py +104 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/__init__.pyi +389 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_cmp.py +160 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_cmp.pyi +13 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_compat.py +99 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_config.py +31 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_funcs.py +497 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_make.py +3406 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_next_gen.py +674 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_typing_compat.pyi +15 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_version_info.py +89 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/_version_info.pyi +9 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/converters.py +162 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/converters.pyi +19 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/exceptions.py +95 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/exceptions.pyi +17 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/filters.py +72 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/filters.pyi +6 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/setters.py +79 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/setters.pyi +20 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/validators.py +750 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attr/validators.pyi +140 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/__init__.py +72 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/__init__.pyi +314 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/converters.py +3 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/exceptions.py +3 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/filters.py +3 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/setters.py +3 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs/validators.py +3 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/METADATA +199 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/RECORD +37 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/attrs-26.1.0.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi/__init__.py +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi/__main__.py +12 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi/cacert.pem +4494 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi/core.py +83 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/METADATA +78 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/RECORD +12 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/WHEEL +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/licenses/LICENSE +20 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/certifi-2026.2.25.dist-info/top_level.txt +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/__init__.py +48 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/__main__.py +6 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/api.py +988 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/cd.py +454 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/cli/__init__.py +8 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/cli/__main__.py +362 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/constant.py +2050 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/legacy.py +79 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/md.py +936 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/models.py +369 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/utils.py +422 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer/version.py +8 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/METADATA +808 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/RECORD +25 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/METADATA +69 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/RECORD +9 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/direct_url.json +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/uv_build.json +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dmesh_sdk-0.1.1.dist-info/uv_cache.json +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/__init__.py +51 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/__main__.py +6 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/cli.py +236 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/ipython.py +50 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/main.py +480 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/parser.py +182 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/py.typed +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/variables.py +86 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/dotenv/version.py +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/__init__.py +45 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/codec.py +122 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/compat.py +15 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/core.py +437 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/idnadata.py +4309 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/intranges.py +57 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/package_data.py +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna/uts46data.py +8841 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/METADATA +209 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/RECORD +15 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/idna-3.11.dist-info/licenses/LICENSE.md +31 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/__init__.py +120 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/__main__.py +6 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_format.py +546 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_keywords.py +449 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_legacy_keywords.py +449 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_types.py +204 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_typing.py +29 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/_utils.py +355 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/__init__.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/const_vs_enum.py +30 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/contains.py +28 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/import_benchmark.py +31 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/issue232/issue.json +2653 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/issue232.py +25 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/json_schema_test_suite.py +12 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/nested_schemas.py +56 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/subcomponents.py +42 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/unused_registry.py +35 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/useless_applicator_schemas.py +106 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/useless_keywords.py +32 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/benchmarks/validator_creation.py +14 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/cli.py +292 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/exceptions.py +490 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/protocols.py +230 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/_suite.py +285 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/fuzz_validate.py +50 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_cli.py +904 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_deprecations.py +432 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_exceptions.py +759 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_format.py +91 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_jsonschema_test_suite.py +262 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_types.py +221 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_utils.py +138 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/test_validators.py +2573 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/typing/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/tests/typing/test_all_concrete_validators_match_protocol.py +38 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema/validators.py +1410 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/METADATA +170 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/RECORD +46 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/entry_points.txt +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema-4.26.0.dist-info/licenses/COPYING +19 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/__init__.py +12 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/_core.py +38 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/metaschema.json +42 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/applicator +56 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/content +17 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/core +57 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/format +14 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/meta-data +37 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies/validation +98 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/metaschema.json +58 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/applicator +48 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/content +17 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/core +51 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-annotation +14 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/format-assertion +14 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/meta-data +37 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/unevaluated +15 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies/validation +98 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft3/metaschema.json +172 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft4/metaschema.json +149 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft6/metaschema.json +153 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/schemas/draft7/metaschema.json +166 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/tests/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications/tests/test_jsonschema_specifications.py +41 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/METADATA +54 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/RECORD +30 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses/COPYING +19 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/__init__.py +456 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_config.py +383 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_core_metadata.py +97 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_core_utils.py +174 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_dataclasses.py +315 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_decorators.py +858 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_decorators_v1.py +174 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_discriminated_union.py +479 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_docs_extraction.py +113 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_fields.py +635 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_forward_ref.py +23 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_generate_schema.py +2867 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_generics.py +543 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_git.py +27 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_import_utils.py +20 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_internal_dataclass.py +7 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_known_annotated_metadata.py +401 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_mock_val_ser.py +228 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_model_construction.py +848 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_namespace_utils.py +293 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_repr.py +124 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_schema_gather.py +209 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_schema_generation_shared.py +125 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_serializers.py +53 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_signature.py +188 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_typing_extra.py +760 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_utils.py +446 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_validate_call.py +140 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_internal/_validators.py +533 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/_migration.py +316 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/alias_generators.py +62 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/aliases.py +135 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/annotated_handlers.py +122 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/class_validators.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/color.py +604 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/config.py +1288 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/dataclasses.py +413 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/datetime_parse.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/decorator.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/class_validators.py +256 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/config.py +72 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/copy_internals.py +224 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/decorator.py +284 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/json.py +141 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/parse.py +80 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/deprecated/tools.py +103 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/env_settings.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/error_wrappers.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/errors.py +189 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/experimental/__init__.py +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/experimental/arguments_schema.py +44 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/experimental/missing_sentinel.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/experimental/pipeline.py +654 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/fields.py +1834 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/functional_serializers.py +451 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/functional_validators.py +893 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/generics.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/json.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/json_schema.py +2854 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/main.py +1819 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/mypy.py +1374 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/networks.py +1331 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/parse.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/plugin/__init__.py +193 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/plugin/_loader.py +58 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/plugin/_schema_validator.py +140 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/root_model.py +155 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/schema.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/tools.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/type_adapter.py +795 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/types.py +3295 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/typing.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/utils.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/__init__.py +142 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/_hypothesis_plugin.py +391 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/annotated_types.py +72 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/class_validators.py +361 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/color.py +494 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/config.py +191 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/dataclasses.py +500 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/datetime_parse.py +248 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/decorator.py +264 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/env_settings.py +350 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/error_wrappers.py +161 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/errors.py +646 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/fields.py +1253 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/generics.py +400 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/json.py +112 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/main.py +1113 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/mypy.py +949 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/networks.py +747 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/parse.py +66 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/schema.py +1163 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/tools.py +92 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/types.py +1205 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/typing.py +614 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/utils.py +806 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/validators.py +768 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/v1/version.py +38 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/validate_call_decorator.py +116 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/validators.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/version.py +113 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic/warnings.py +122 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/METADATA +1029 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/RECORD +113 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic-2.12.5.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core/__init__.py +171 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core/_pydantic_core.pyi +1046 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core/core_schema.py +4435 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/METADATA +180 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/RECORD +11 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_core-2.41.5.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/__init__.py +69 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/exceptions.py +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/main.py +901 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/__init__.py +84 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/base.py +579 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/__init__.py +45 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/aws.py +86 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/azure.py +159 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/cli.py +1522 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/dotenv.py +170 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/env.py +310 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/gcp.py +241 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/json.py +48 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/nested_secrets.py +166 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/pyproject.py +62 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/secrets.py +132 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/toml.py +67 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/providers/yaml.py +130 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/types.py +99 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/sources/utils.py +283 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/utils.py +43 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings/version.py +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/METADATA +63 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/RECORD +29 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pydantic_settings-2.13.1.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/METADATA +794 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/RECORD +18 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/WHEEL +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/entry_points.txt +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/licenses/LICENSE +27 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/python_dotenv-1.2.2.dist-info/top_level.txt +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/METADATA +59 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/RECORD +26 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/WHEEL +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/licenses/LICENSE +20 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/pyyaml-6.0.3.dist-info/top_level.txt +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/__init__.py +7 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/_attrs.py +31 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/_attrs.pyi +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/_core.py +739 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/exceptions.py +165 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/jsonschema.py +642 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/retrieval.py +94 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/test_core.py +1057 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/test_exceptions.py +34 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/test_jsonschema.py +382 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/test_referencing_suite.py +66 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/tests/test_retrieval.py +106 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing/typing.py +61 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/METADATA +64 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/RECORD +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/referencing-0.37.0.dist-info/licenses/COPYING +19 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/__init__.py +183 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/__version__.py +14 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/_internal_utils.py +51 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/adapters.py +697 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/api.py +157 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/auth.py +314 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/certs.py +18 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/compat.py +106 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/cookies.py +561 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/exceptions.py +152 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/help.py +131 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/hooks.py +34 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/models.py +1041 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/packages.py +23 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/sessions.py +834 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/status_codes.py +128 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/structures.py +99 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests/utils.py +1083 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/METADATA +121 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/RECORD +26 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/WHEEL +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/licenses/LICENSE +175 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/licenses/NOTICE +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/requests-2.33.1.dist-info/top_level.txt +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds/__init__.py +5 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds/__init__.pyi +79 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/METADATA +99 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/RECORD +10 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/rpds_py-0.30.0.dist-info/licenses/LICENSE +19 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/METADATA +72 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/RECORD +7 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE +279 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_extensions.py +4317 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection/introspection.py +587 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection/py.typed +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection/typing_objects.py +607 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection/typing_objects.pyi +417 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/METADATA +49 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/RECORD +11 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/__init__.py +211 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/_base_connection.py +165 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/_collections.py +487 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/_request_methods.py +278 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/_version.py +34 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/connection.py +1099 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/connectionpool.py +1178 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/__init__.py +17 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/connection.py +260 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js +110 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +726 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/request.py +22 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/emscripten/response.py +277 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/pyopenssl.py +564 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/contrib/socks.py +228 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/exceptions.py +335 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/fields.py +341 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/filepost.py +89 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/http2/__init__.py +53 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/http2/connection.py +356 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/http2/probe.py +87 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/poolmanager.py +651 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/py.typed +2 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/response.py +1480 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/__init__.py +42 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/connection.py +137 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/proxy.py +43 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/request.py +263 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/response.py +101 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/retry.py +549 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/ssl_.py +527 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/ssl_match_hostname.py +159 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/ssltransport.py +271 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/timeout.py +275 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/url.py +469 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/util.py +42 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3/util/wait.py +124 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/INSTALLER +1 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/METADATA +164 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/RECORD +44 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/REQUESTED +0 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/WHEEL +4 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/urllib3-2.6.3.dist-info/licenses/LICENSE.txt +21 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/__init__.py +390 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/composer.py +139 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/constructor.py +748 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/cyaml.py +101 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/dumper.py +62 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/emitter.py +1137 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/error.py +75 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/events.py +86 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/loader.py +63 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/nodes.py +49 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/parser.py +589 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/reader.py +185 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/representer.py +389 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/resolver.py +227 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/scanner.py +1435 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/serializer.py +111 -0
- dmesh_sdk-0.1.0/.test_venv/Lib/site-packages/yaml/tokens.py +104 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate +130 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate.bat +71 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate.csh +76 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate.fish +124 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate.nu +102 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate.ps1 +82 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/activate_this.py +59 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/deactivate.bat +39 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/dotenv.exe +0 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/jsonschema.exe +0 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/normalizer.exe +0 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/pydoc.bat +22 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/python.exe +0 -0
- dmesh_sdk-0.1.0/.test_venv/Scripts/pythonw.exe +0 -0
- dmesh_sdk-0.1.0/.test_venv/pyvenv.cfg +5 -0
- dmesh_sdk-0.1.0/Dockerfile +23 -0
- dmesh_sdk-0.1.0/PKG-INFO +153 -0
- dmesh_sdk-0.1.0/PUBLISH.md +104 -0
- dmesh_sdk-0.1.0/README.md +139 -0
- dmesh_sdk-0.1.0/docker/dmesh-db/init.sql +17 -0
- dmesh_sdk-0.1.0/pyproject.toml +24 -0
- dmesh_sdk-0.1.0/quickstart_memory.py +27 -0
- dmesh_sdk-0.1.0/quickstart_postgres.py +32 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/__init__.py +39 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/adapters/psycopg.py +3 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/config.py +152 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/core/enricher.py +58 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/core/id_generator.py +44 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/core/validator.py +102 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/models/__init__.py +14 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/models/core.py +32 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/models/exceptions.py +13 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/operations/data_contract.py +63 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/operations/data_product.py +53 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/operations/discover.py +20 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/operations/utils.py +6 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/persistency/factory.py +78 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/persistency/in_memory.py +62 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/persistency/postgres.py +153 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/ports/repository.py +15 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/schemas/__init__.py +0 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/schemas/odcs-3.1.0.json +3265 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/schemas/odps-1.0.0.json +588 -0
- dmesh_sdk-0.1.0/src/dmesh/sdk/sdk.py +233 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Python-generated files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
|
|
9
|
+
# Virtual environments
|
|
10
|
+
.venv
|
|
11
|
+
test_venv/
|
|
12
|
+
|
|
13
|
+
# project specific
|
|
14
|
+
sandbox/
|
|
15
|
+
.hypothesis/
|
|
16
|
+
dc_results.txt
|
|
17
|
+
|
|
18
|
+
# Config files
|
|
19
|
+
config/
|
|
20
|
+
|
|
21
|
+
# Secrets and environment overrides
|
|
22
|
+
.env
|
|
23
|
+
.env.*
|
|
24
|
+
!.env.development
|
|
25
|
+
|
|
26
|
+
# Test config scripts
|
|
27
|
+
test_config.py
|
|
28
|
+
test_required_secrets.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Signature: 8a477f597d28d172789f06886806bc55
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
C:\Users\Joao\code\dmesh-core\packages\dmesh-sdk\src
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import _virtualenv
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"""Patches that are applied at runtime to the virtual environment."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import sys
|
|
5
|
+
|
|
6
|
+
VIRTUALENV_PATCH_FILE = os.path.join(__file__)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def patch_dist(dist):
|
|
10
|
+
"""
|
|
11
|
+
Distutils allows user to configure some arguments via a configuration file:
|
|
12
|
+
https://docs.python.org/3.11/install/index.html#distutils-configuration-files.
|
|
13
|
+
|
|
14
|
+
Some of this arguments though don't make sense in context of the virtual environment files, let's fix them up.
|
|
15
|
+
""" # noqa: D205
|
|
16
|
+
# we cannot allow some install config as that would get packages installed outside of the virtual environment
|
|
17
|
+
old_parse_config_files = dist.Distribution.parse_config_files
|
|
18
|
+
|
|
19
|
+
def parse_config_files(self, *args, **kwargs):
|
|
20
|
+
result = old_parse_config_files(self, *args, **kwargs)
|
|
21
|
+
install = self.get_option_dict("install")
|
|
22
|
+
|
|
23
|
+
if "prefix" in install: # the prefix governs where to install the libraries
|
|
24
|
+
install["prefix"] = VIRTUALENV_PATCH_FILE, os.path.abspath(sys.prefix)
|
|
25
|
+
for base in ("purelib", "platlib", "headers", "scripts", "data"):
|
|
26
|
+
key = f"install_{base}"
|
|
27
|
+
if key in install: # do not allow global configs to hijack venv paths
|
|
28
|
+
install.pop(key, None)
|
|
29
|
+
return result
|
|
30
|
+
|
|
31
|
+
dist.Distribution.parse_config_files = parse_config_files
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
# Import hook that patches some modules to ignore configuration values that break package installation in case
|
|
35
|
+
# of virtual environments.
|
|
36
|
+
_DISTUTILS_PATCH = "distutils.dist", "setuptools.dist"
|
|
37
|
+
# https://docs.python.org/3/library/importlib.html#setting-up-an-importer
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class _Finder:
|
|
41
|
+
"""A meta path finder that allows patching the imported distutils modules."""
|
|
42
|
+
|
|
43
|
+
fullname = None
|
|
44
|
+
|
|
45
|
+
# lock[0] is threading.Lock(), but initialized lazily to avoid importing threading very early at startup,
|
|
46
|
+
# because there are gevent-based applications that need to be first to import threading by themselves.
|
|
47
|
+
# See https://github.com/pypa/virtualenv/issues/1895 for details.
|
|
48
|
+
lock = [] # noqa: RUF012
|
|
49
|
+
|
|
50
|
+
def find_spec(self, fullname, path, target=None): # noqa: ARG002
|
|
51
|
+
if fullname in _DISTUTILS_PATCH and self.fullname is None:
|
|
52
|
+
# initialize lock[0] lazily
|
|
53
|
+
if len(self.lock) == 0:
|
|
54
|
+
import threading
|
|
55
|
+
|
|
56
|
+
lock = threading.Lock()
|
|
57
|
+
# there is possibility that two threads T1 and T2 are simultaneously running into find_spec,
|
|
58
|
+
# observing .lock as empty, and further going into hereby initialization. However due to the GIL,
|
|
59
|
+
# list.append() operation is atomic and this way only one of the threads will "win" to put the lock
|
|
60
|
+
# - that every thread will use - into .lock[0].
|
|
61
|
+
# https://docs.python.org/3/faq/library.html#what-kinds-of-global-value-mutation-are-thread-safe
|
|
62
|
+
self.lock.append(lock)
|
|
63
|
+
|
|
64
|
+
from functools import partial
|
|
65
|
+
from importlib.util import find_spec
|
|
66
|
+
|
|
67
|
+
with self.lock[0]:
|
|
68
|
+
self.fullname = fullname
|
|
69
|
+
try:
|
|
70
|
+
spec = find_spec(fullname, path)
|
|
71
|
+
if spec is not None:
|
|
72
|
+
# https://www.python.org/dev/peps/pep-0451/#how-loading-will-work
|
|
73
|
+
is_new_api = hasattr(spec.loader, "exec_module")
|
|
74
|
+
func_name = "exec_module" if is_new_api else "load_module"
|
|
75
|
+
old = getattr(spec.loader, func_name)
|
|
76
|
+
func = self.exec_module if is_new_api else self.load_module
|
|
77
|
+
if old is not func:
|
|
78
|
+
try: # noqa: SIM105
|
|
79
|
+
setattr(spec.loader, func_name, partial(func, old))
|
|
80
|
+
except AttributeError:
|
|
81
|
+
pass # C-Extension loaders are r/o such as zipimporter with <3.7
|
|
82
|
+
return spec
|
|
83
|
+
finally:
|
|
84
|
+
self.fullname = None
|
|
85
|
+
return None
|
|
86
|
+
|
|
87
|
+
@staticmethod
|
|
88
|
+
def exec_module(old, module):
|
|
89
|
+
old(module)
|
|
90
|
+
if module.__name__ in _DISTUTILS_PATCH:
|
|
91
|
+
patch_dist(module)
|
|
92
|
+
|
|
93
|
+
@staticmethod
|
|
94
|
+
def load_module(old, name):
|
|
95
|
+
module = old(name)
|
|
96
|
+
if module.__name__ in _DISTUTILS_PATCH:
|
|
97
|
+
patch_dist(module)
|
|
98
|
+
return module
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
sys.meta_path.insert(0, _Finder())
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# This is a stub package designed to roughly emulate the _yaml
|
|
2
|
+
# extension module, which previously existed as a standalone module
|
|
3
|
+
# and has been moved into the `yaml` package namespace.
|
|
4
|
+
# It does not perfectly mimic its old counterpart, but should get
|
|
5
|
+
# close enough for anyone who's relying on it even when they shouldn't.
|
|
6
|
+
import yaml
|
|
7
|
+
|
|
8
|
+
# in some circumstances, the yaml module we imoprted may be from a different version, so we need
|
|
9
|
+
# to tread carefully when poking at it here (it may not have the attributes we expect)
|
|
10
|
+
if not getattr(yaml, '__with_libyaml__', False):
|
|
11
|
+
from sys import version_info
|
|
12
|
+
|
|
13
|
+
exc = ModuleNotFoundError if version_info >= (3, 6) else ImportError
|
|
14
|
+
raise exc("No module named '_yaml'")
|
|
15
|
+
else:
|
|
16
|
+
from yaml._yaml import *
|
|
17
|
+
import warnings
|
|
18
|
+
warnings.warn(
|
|
19
|
+
'The _yaml extension module is now located at yaml._yaml'
|
|
20
|
+
' and its location is subject to change. To use the'
|
|
21
|
+
' LibYAML-based parser and emitter, import from `yaml`:'
|
|
22
|
+
' `from yaml import CLoader as Loader, CDumper as Dumper`.',
|
|
23
|
+
DeprecationWarning
|
|
24
|
+
)
|
|
25
|
+
del warnings
|
|
26
|
+
# Don't `del yaml` here because yaml is actually an existing
|
|
27
|
+
# namespace member of _yaml.
|
|
28
|
+
|
|
29
|
+
__name__ = '_yaml'
|
|
30
|
+
# If the module is top-level (i.e. not a part of any specific package)
|
|
31
|
+
# then the attribute should be set to ''.
|
|
32
|
+
# https://docs.python.org/3.8/library/types.html
|
|
33
|
+
__package__ = ''
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import sys
|
|
3
|
+
import types
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
from datetime import tzinfo
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, SupportsFloat, SupportsIndex, TypeVar, Union
|
|
7
|
+
|
|
8
|
+
if sys.version_info < (3, 8):
|
|
9
|
+
from typing_extensions import Protocol, runtime_checkable
|
|
10
|
+
else:
|
|
11
|
+
from typing import Protocol, runtime_checkable
|
|
12
|
+
|
|
13
|
+
if sys.version_info < (3, 9):
|
|
14
|
+
from typing_extensions import Annotated, Literal
|
|
15
|
+
else:
|
|
16
|
+
from typing import Annotated, Literal
|
|
17
|
+
|
|
18
|
+
if sys.version_info < (3, 10):
|
|
19
|
+
EllipsisType = type(Ellipsis)
|
|
20
|
+
KW_ONLY = {}
|
|
21
|
+
SLOTS = {}
|
|
22
|
+
else:
|
|
23
|
+
from types import EllipsisType
|
|
24
|
+
|
|
25
|
+
KW_ONLY = {"kw_only": True}
|
|
26
|
+
SLOTS = {"slots": True}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
__all__ = (
|
|
30
|
+
'BaseMetadata',
|
|
31
|
+
'GroupedMetadata',
|
|
32
|
+
'Gt',
|
|
33
|
+
'Ge',
|
|
34
|
+
'Lt',
|
|
35
|
+
'Le',
|
|
36
|
+
'Interval',
|
|
37
|
+
'MultipleOf',
|
|
38
|
+
'MinLen',
|
|
39
|
+
'MaxLen',
|
|
40
|
+
'Len',
|
|
41
|
+
'Timezone',
|
|
42
|
+
'Predicate',
|
|
43
|
+
'LowerCase',
|
|
44
|
+
'UpperCase',
|
|
45
|
+
'IsDigits',
|
|
46
|
+
'IsFinite',
|
|
47
|
+
'IsNotFinite',
|
|
48
|
+
'IsNan',
|
|
49
|
+
'IsNotNan',
|
|
50
|
+
'IsInfinite',
|
|
51
|
+
'IsNotInfinite',
|
|
52
|
+
'doc',
|
|
53
|
+
'DocInfo',
|
|
54
|
+
'__version__',
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
__version__ = '0.7.0'
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
T = TypeVar('T')
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# arguments that start with __ are considered
|
|
64
|
+
# positional only
|
|
65
|
+
# see https://peps.python.org/pep-0484/#positional-only-arguments
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class SupportsGt(Protocol):
|
|
69
|
+
def __gt__(self: T, __other: T) -> bool:
|
|
70
|
+
...
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class SupportsGe(Protocol):
|
|
74
|
+
def __ge__(self: T, __other: T) -> bool:
|
|
75
|
+
...
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class SupportsLt(Protocol):
|
|
79
|
+
def __lt__(self: T, __other: T) -> bool:
|
|
80
|
+
...
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class SupportsLe(Protocol):
|
|
84
|
+
def __le__(self: T, __other: T) -> bool:
|
|
85
|
+
...
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class SupportsMod(Protocol):
|
|
89
|
+
def __mod__(self: T, __other: T) -> T:
|
|
90
|
+
...
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class SupportsDiv(Protocol):
|
|
94
|
+
def __div__(self: T, __other: T) -> T:
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class BaseMetadata:
|
|
99
|
+
"""Base class for all metadata.
|
|
100
|
+
|
|
101
|
+
This exists mainly so that implementers
|
|
102
|
+
can do `isinstance(..., BaseMetadata)` while traversing field annotations.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
__slots__ = ()
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@dataclass(frozen=True, **SLOTS)
|
|
109
|
+
class Gt(BaseMetadata):
|
|
110
|
+
"""Gt(gt=x) implies that the value must be greater than x.
|
|
111
|
+
|
|
112
|
+
It can be used with any type that supports the ``>`` operator,
|
|
113
|
+
including numbers, dates and times, strings, sets, and so on.
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
gt: SupportsGt
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
@dataclass(frozen=True, **SLOTS)
|
|
120
|
+
class Ge(BaseMetadata):
|
|
121
|
+
"""Ge(ge=x) implies that the value must be greater than or equal to x.
|
|
122
|
+
|
|
123
|
+
It can be used with any type that supports the ``>=`` operator,
|
|
124
|
+
including numbers, dates and times, strings, sets, and so on.
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
ge: SupportsGe
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
@dataclass(frozen=True, **SLOTS)
|
|
131
|
+
class Lt(BaseMetadata):
|
|
132
|
+
"""Lt(lt=x) implies that the value must be less than x.
|
|
133
|
+
|
|
134
|
+
It can be used with any type that supports the ``<`` operator,
|
|
135
|
+
including numbers, dates and times, strings, sets, and so on.
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
lt: SupportsLt
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
@dataclass(frozen=True, **SLOTS)
|
|
142
|
+
class Le(BaseMetadata):
|
|
143
|
+
"""Le(le=x) implies that the value must be less than or equal to x.
|
|
144
|
+
|
|
145
|
+
It can be used with any type that supports the ``<=`` operator,
|
|
146
|
+
including numbers, dates and times, strings, sets, and so on.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
le: SupportsLe
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
@runtime_checkable
|
|
153
|
+
class GroupedMetadata(Protocol):
|
|
154
|
+
"""A grouping of multiple objects, like typing.Unpack.
|
|
155
|
+
|
|
156
|
+
`GroupedMetadata` on its own is not metadata and has no meaning.
|
|
157
|
+
All of the constraints and metadata should be fully expressable
|
|
158
|
+
in terms of the `BaseMetadata`'s returned by `GroupedMetadata.__iter__()`.
|
|
159
|
+
|
|
160
|
+
Concrete implementations should override `GroupedMetadata.__iter__()`
|
|
161
|
+
to add their own metadata.
|
|
162
|
+
For example:
|
|
163
|
+
|
|
164
|
+
>>> @dataclass
|
|
165
|
+
>>> class Field(GroupedMetadata):
|
|
166
|
+
>>> gt: float | None = None
|
|
167
|
+
>>> description: str | None = None
|
|
168
|
+
...
|
|
169
|
+
>>> def __iter__(self) -> Iterable[object]:
|
|
170
|
+
>>> if self.gt is not None:
|
|
171
|
+
>>> yield Gt(self.gt)
|
|
172
|
+
>>> if self.description is not None:
|
|
173
|
+
>>> yield Description(self.gt)
|
|
174
|
+
|
|
175
|
+
Also see the implementation of `Interval` below for an example.
|
|
176
|
+
|
|
177
|
+
Parsers should recognize this and unpack it so that it can be used
|
|
178
|
+
both with and without unpacking:
|
|
179
|
+
|
|
180
|
+
- `Annotated[int, Field(...)]` (parser must unpack Field)
|
|
181
|
+
- `Annotated[int, *Field(...)]` (PEP-646)
|
|
182
|
+
""" # noqa: trailing-whitespace
|
|
183
|
+
|
|
184
|
+
@property
|
|
185
|
+
def __is_annotated_types_grouped_metadata__(self) -> Literal[True]:
|
|
186
|
+
return True
|
|
187
|
+
|
|
188
|
+
def __iter__(self) -> Iterator[object]:
|
|
189
|
+
...
|
|
190
|
+
|
|
191
|
+
if not TYPE_CHECKING:
|
|
192
|
+
__slots__ = () # allow subclasses to use slots
|
|
193
|
+
|
|
194
|
+
def __init_subclass__(cls, *args: Any, **kwargs: Any) -> None:
|
|
195
|
+
# Basic ABC like functionality without the complexity of an ABC
|
|
196
|
+
super().__init_subclass__(*args, **kwargs)
|
|
197
|
+
if cls.__iter__ is GroupedMetadata.__iter__:
|
|
198
|
+
raise TypeError("Can't subclass GroupedMetadata without implementing __iter__")
|
|
199
|
+
|
|
200
|
+
def __iter__(self) -> Iterator[object]: # noqa: F811
|
|
201
|
+
raise NotImplementedError # more helpful than "None has no attribute..." type errors
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
@dataclass(frozen=True, **KW_ONLY, **SLOTS)
|
|
205
|
+
class Interval(GroupedMetadata):
|
|
206
|
+
"""Interval can express inclusive or exclusive bounds with a single object.
|
|
207
|
+
|
|
208
|
+
It accepts keyword arguments ``gt``, ``ge``, ``lt``, and/or ``le``, which
|
|
209
|
+
are interpreted the same way as the single-bound constraints.
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
gt: Union[SupportsGt, None] = None
|
|
213
|
+
ge: Union[SupportsGe, None] = None
|
|
214
|
+
lt: Union[SupportsLt, None] = None
|
|
215
|
+
le: Union[SupportsLe, None] = None
|
|
216
|
+
|
|
217
|
+
def __iter__(self) -> Iterator[BaseMetadata]:
|
|
218
|
+
"""Unpack an Interval into zero or more single-bounds."""
|
|
219
|
+
if self.gt is not None:
|
|
220
|
+
yield Gt(self.gt)
|
|
221
|
+
if self.ge is not None:
|
|
222
|
+
yield Ge(self.ge)
|
|
223
|
+
if self.lt is not None:
|
|
224
|
+
yield Lt(self.lt)
|
|
225
|
+
if self.le is not None:
|
|
226
|
+
yield Le(self.le)
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
@dataclass(frozen=True, **SLOTS)
|
|
230
|
+
class MultipleOf(BaseMetadata):
|
|
231
|
+
"""MultipleOf(multiple_of=x) might be interpreted in two ways:
|
|
232
|
+
|
|
233
|
+
1. Python semantics, implying ``value % multiple_of == 0``, or
|
|
234
|
+
2. JSONschema semantics, where ``int(value / multiple_of) == value / multiple_of``
|
|
235
|
+
|
|
236
|
+
We encourage users to be aware of these two common interpretations,
|
|
237
|
+
and libraries to carefully document which they implement.
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
multiple_of: Union[SupportsDiv, SupportsMod]
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
@dataclass(frozen=True, **SLOTS)
|
|
244
|
+
class MinLen(BaseMetadata):
|
|
245
|
+
"""
|
|
246
|
+
MinLen() implies minimum inclusive length,
|
|
247
|
+
e.g. ``len(value) >= min_length``.
|
|
248
|
+
"""
|
|
249
|
+
|
|
250
|
+
min_length: Annotated[int, Ge(0)]
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
@dataclass(frozen=True, **SLOTS)
|
|
254
|
+
class MaxLen(BaseMetadata):
|
|
255
|
+
"""
|
|
256
|
+
MaxLen() implies maximum inclusive length,
|
|
257
|
+
e.g. ``len(value) <= max_length``.
|
|
258
|
+
"""
|
|
259
|
+
|
|
260
|
+
max_length: Annotated[int, Ge(0)]
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
@dataclass(frozen=True, **SLOTS)
|
|
264
|
+
class Len(GroupedMetadata):
|
|
265
|
+
"""
|
|
266
|
+
Len() implies that ``min_length <= len(value) <= max_length``.
|
|
267
|
+
|
|
268
|
+
Upper bound may be omitted or ``None`` to indicate no upper length bound.
|
|
269
|
+
"""
|
|
270
|
+
|
|
271
|
+
min_length: Annotated[int, Ge(0)] = 0
|
|
272
|
+
max_length: Optional[Annotated[int, Ge(0)]] = None
|
|
273
|
+
|
|
274
|
+
def __iter__(self) -> Iterator[BaseMetadata]:
|
|
275
|
+
"""Unpack a Len into zone or more single-bounds."""
|
|
276
|
+
if self.min_length > 0:
|
|
277
|
+
yield MinLen(self.min_length)
|
|
278
|
+
if self.max_length is not None:
|
|
279
|
+
yield MaxLen(self.max_length)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
@dataclass(frozen=True, **SLOTS)
|
|
283
|
+
class Timezone(BaseMetadata):
|
|
284
|
+
"""Timezone(tz=...) requires a datetime to be aware (or ``tz=None``, naive).
|
|
285
|
+
|
|
286
|
+
``Annotated[datetime, Timezone(None)]`` must be a naive datetime.
|
|
287
|
+
``Timezone[...]`` (the ellipsis literal) expresses that the datetime must be
|
|
288
|
+
tz-aware but any timezone is allowed.
|
|
289
|
+
|
|
290
|
+
You may also pass a specific timezone string or tzinfo object such as
|
|
291
|
+
``Timezone(timezone.utc)`` or ``Timezone("Africa/Abidjan")`` to express that
|
|
292
|
+
you only allow a specific timezone, though we note that this is often
|
|
293
|
+
a symptom of poor design.
|
|
294
|
+
"""
|
|
295
|
+
|
|
296
|
+
tz: Union[str, tzinfo, EllipsisType, None]
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
@dataclass(frozen=True, **SLOTS)
|
|
300
|
+
class Unit(BaseMetadata):
|
|
301
|
+
"""Indicates that the value is a physical quantity with the specified unit.
|
|
302
|
+
|
|
303
|
+
It is intended for usage with numeric types, where the value represents the
|
|
304
|
+
magnitude of the quantity. For example, ``distance: Annotated[float, Unit('m')]``
|
|
305
|
+
or ``speed: Annotated[float, Unit('m/s')]``.
|
|
306
|
+
|
|
307
|
+
Interpretation of the unit string is left to the discretion of the consumer.
|
|
308
|
+
It is suggested to follow conventions established by python libraries that work
|
|
309
|
+
with physical quantities, such as
|
|
310
|
+
|
|
311
|
+
- ``pint`` : <https://pint.readthedocs.io/en/stable/>
|
|
312
|
+
- ``astropy.units``: <https://docs.astropy.org/en/stable/units/>
|
|
313
|
+
|
|
314
|
+
For indicating a quantity with a certain dimensionality but without a specific unit
|
|
315
|
+
it is recommended to use square brackets, e.g. `Annotated[float, Unit('[time]')]`.
|
|
316
|
+
Note, however, ``annotated_types`` itself makes no use of the unit string.
|
|
317
|
+
"""
|
|
318
|
+
|
|
319
|
+
unit: str
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
@dataclass(frozen=True, **SLOTS)
|
|
323
|
+
class Predicate(BaseMetadata):
|
|
324
|
+
"""``Predicate(func: Callable)`` implies `func(value)` is truthy for valid values.
|
|
325
|
+
|
|
326
|
+
Users should prefer statically inspectable metadata, but if you need the full
|
|
327
|
+
power and flexibility of arbitrary runtime predicates... here it is.
|
|
328
|
+
|
|
329
|
+
We provide a few predefined predicates for common string constraints:
|
|
330
|
+
``IsLower = Predicate(str.islower)``, ``IsUpper = Predicate(str.isupper)``, and
|
|
331
|
+
``IsDigits = Predicate(str.isdigit)``. Users are encouraged to use methods which
|
|
332
|
+
can be given special handling, and avoid indirection like ``lambda s: s.lower()``.
|
|
333
|
+
|
|
334
|
+
Some libraries might have special logic to handle certain predicates, e.g. by
|
|
335
|
+
checking for `str.isdigit` and using its presence to both call custom logic to
|
|
336
|
+
enforce digit-only strings, and customise some generated external schema.
|
|
337
|
+
|
|
338
|
+
We do not specify what behaviour should be expected for predicates that raise
|
|
339
|
+
an exception. For example `Annotated[int, Predicate(str.isdigit)]` might silently
|
|
340
|
+
skip invalid constraints, or statically raise an error; or it might try calling it
|
|
341
|
+
and then propagate or discard the resulting exception.
|
|
342
|
+
"""
|
|
343
|
+
|
|
344
|
+
func: Callable[[Any], bool]
|
|
345
|
+
|
|
346
|
+
def __repr__(self) -> str:
|
|
347
|
+
if getattr(self.func, "__name__", "<lambda>") == "<lambda>":
|
|
348
|
+
return f"{self.__class__.__name__}({self.func!r})"
|
|
349
|
+
if isinstance(self.func, (types.MethodType, types.BuiltinMethodType)) and (
|
|
350
|
+
namespace := getattr(self.func.__self__, "__name__", None)
|
|
351
|
+
):
|
|
352
|
+
return f"{self.__class__.__name__}({namespace}.{self.func.__name__})"
|
|
353
|
+
if isinstance(self.func, type(str.isascii)): # method descriptor
|
|
354
|
+
return f"{self.__class__.__name__}({self.func.__qualname__})"
|
|
355
|
+
return f"{self.__class__.__name__}({self.func.__name__})"
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
@dataclass
|
|
359
|
+
class Not:
|
|
360
|
+
func: Callable[[Any], bool]
|
|
361
|
+
|
|
362
|
+
def __call__(self, __v: Any) -> bool:
|
|
363
|
+
return not self.func(__v)
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
_StrType = TypeVar("_StrType", bound=str)
|
|
367
|
+
|
|
368
|
+
LowerCase = Annotated[_StrType, Predicate(str.islower)]
|
|
369
|
+
"""
|
|
370
|
+
Return True if the string is a lowercase string, False otherwise.
|
|
371
|
+
|
|
372
|
+
A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string.
|
|
373
|
+
""" # noqa: E501
|
|
374
|
+
UpperCase = Annotated[_StrType, Predicate(str.isupper)]
|
|
375
|
+
"""
|
|
376
|
+
Return True if the string is an uppercase string, False otherwise.
|
|
377
|
+
|
|
378
|
+
A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string.
|
|
379
|
+
""" # noqa: E501
|
|
380
|
+
IsDigit = Annotated[_StrType, Predicate(str.isdigit)]
|
|
381
|
+
IsDigits = IsDigit # type: ignore # plural for backwards compatibility, see #63
|
|
382
|
+
"""
|
|
383
|
+
Return True if the string is a digit string, False otherwise.
|
|
384
|
+
|
|
385
|
+
A string is a digit string if all characters in the string are digits and there is at least one character in the string.
|
|
386
|
+
""" # noqa: E501
|
|
387
|
+
IsAscii = Annotated[_StrType, Predicate(str.isascii)]
|
|
388
|
+
"""
|
|
389
|
+
Return True if all characters in the string are ASCII, False otherwise.
|
|
390
|
+
|
|
391
|
+
ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too.
|
|
392
|
+
"""
|
|
393
|
+
|
|
394
|
+
_NumericType = TypeVar('_NumericType', bound=Union[SupportsFloat, SupportsIndex])
|
|
395
|
+
IsFinite = Annotated[_NumericType, Predicate(math.isfinite)]
|
|
396
|
+
"""Return True if x is neither an infinity nor a NaN, and False otherwise."""
|
|
397
|
+
IsNotFinite = Annotated[_NumericType, Predicate(Not(math.isfinite))]
|
|
398
|
+
"""Return True if x is one of infinity or NaN, and False otherwise"""
|
|
399
|
+
IsNan = Annotated[_NumericType, Predicate(math.isnan)]
|
|
400
|
+
"""Return True if x is a NaN (not a number), and False otherwise."""
|
|
401
|
+
IsNotNan = Annotated[_NumericType, Predicate(Not(math.isnan))]
|
|
402
|
+
"""Return True if x is anything but NaN (not a number), and False otherwise."""
|
|
403
|
+
IsInfinite = Annotated[_NumericType, Predicate(math.isinf)]
|
|
404
|
+
"""Return True if x is a positive or negative infinity, and False otherwise."""
|
|
405
|
+
IsNotInfinite = Annotated[_NumericType, Predicate(Not(math.isinf))]
|
|
406
|
+
"""Return True if x is neither a positive or negative infinity, and False otherwise."""
|
|
407
|
+
|
|
408
|
+
try:
|
|
409
|
+
from typing_extensions import DocInfo, doc # type: ignore [attr-defined]
|
|
410
|
+
except ImportError:
|
|
411
|
+
|
|
412
|
+
@dataclass(frozen=True, **SLOTS)
|
|
413
|
+
class DocInfo: # type: ignore [no-redef]
|
|
414
|
+
""" "
|
|
415
|
+
The return value of doc(), mainly to be used by tools that want to extract the
|
|
416
|
+
Annotated documentation at runtime.
|
|
417
|
+
"""
|
|
418
|
+
|
|
419
|
+
documentation: str
|
|
420
|
+
"""The documentation string passed to doc()."""
|
|
421
|
+
|
|
422
|
+
def doc(
|
|
423
|
+
documentation: str,
|
|
424
|
+
) -> DocInfo:
|
|
425
|
+
"""
|
|
426
|
+
Add documentation to a type annotation inside of Annotated.
|
|
427
|
+
|
|
428
|
+
For example:
|
|
429
|
+
|
|
430
|
+
>>> def hi(name: Annotated[int, doc("The name of the user")]) -> None: ...
|
|
431
|
+
"""
|
|
432
|
+
return DocInfo(documentation)
|
|
File without changes
|