From befbf03d14ade60dcafd9fbe5b60995f9ee64211 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Fri, 3 Mar 2023 00:12:17 +0400 Subject: [PATCH 01/21] feat: add http python impl --- implementations/py/.gitkeep | 0 .../py/polywrap-http-plugin/README.md | 1 + .../py/polywrap-http-plugin/poetry.lock | 993 ++++++++++++++++++ .../polywrap_http_plugin/__init__.py | 113 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 3928 bytes .../polywrap_http_plugin/manifest.json | 468 +++++++++ .../py/polywrap-http-plugin/pyproject.toml | 54 + .../py/polywrap-http-plugin/tests/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 193 bytes .../test_ipfs.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 2468 bytes .../test_plugin.cpython-310-pytest-7.2.1.pyc | Bin 0 -> 2223 bytes .../tests/ipfs-wrapper/wrap.info | Bin 0 -> 9034 bytes .../tests/ipfs-wrapper/wrap.wasm | Bin 0 -> 150523 bytes .../polywrap-http-plugin/tests/test_ipfs.py | 42 + .../polywrap-http-plugin/tests/test_plugin.py | 48 + .../py/polywrap-http-plugin/tox.ini | 30 + .../typings/polywrap_client/__init__.pyi | 6 + .../typings/polywrap_client/client.pyi | 55 + .../typings/polywrap_core/__init__.pyi | 9 + .../polywrap_core/algorithms/__init__.pyi | 6 + .../algorithms/build_clean_uri_history.pyi | 11 + .../typings/polywrap_core/types/__init__.pyi | 18 + .../typings/polywrap_core/types/client.pyi | 60 ++ .../typings/polywrap_core/types/env.pyi | 7 + .../polywrap_core/types/file_reader.pyi | 14 + .../typings/polywrap_core/types/invoke.pyi | 67 ++ .../typings/polywrap_core/types/uri.pyi | 81 ++ .../types/uri_package_wrapper.pyi | 10 + .../types/uri_resolution_context.pyi | 44 + .../types/uri_resolution_step.pyi | 20 + .../polywrap_core/types/uri_resolver.pyi | 35 + .../types/uri_resolver_handler.pyi | 19 + .../polywrap_core/types/wasm_package.pyi | 15 + .../polywrap_core/types/wrap_package.pyi | 22 + .../typings/polywrap_core/types/wrapper.pyi | 34 + .../polywrap_core/uri_resolution/__init__.pyi | 6 + .../uri_resolution/uri_resolution_context.pyi | 41 + .../typings/polywrap_core/utils/__init__.pyi | 9 + .../utils/get_env_from_uri_history.pyi | 10 + .../polywrap_core/utils/init_wrapper.pyi | 10 + .../polywrap_core/utils/instance_of.pyi | 9 + .../polywrap_core/utils/maybe_async.pyi | 12 + .../typings/polywrap_manifest/__init__.pyi | 7 + .../typings/polywrap_manifest/deserialize.pyi | 16 + .../typings/polywrap_manifest/manifest.pyi | 44 + .../typings/polywrap_manifest/wrap_0_1.pyi | 209 ++++ .../typings/polywrap_plugin/__init__.pyi | 8 + .../typings/polywrap_plugin/module.pyi | 25 + .../typings/polywrap_plugin/package.pyi | 24 + .../typings/polywrap_plugin/wrapper.pyi | 26 + .../typings/polywrap_result/__init__.pyi | 322 ++++++ .../polywrap_uri_resolvers/__init__.pyi | 16 + .../polywrap_uri_resolvers/abc/__init__.pyi | 8 + .../abc/resolver_with_history.pyi | 17 + .../abc/uri_resolver_aggregator.pyi | 26 + .../polywrap_uri_resolvers/cache/__init__.pyi | 8 + .../cache/cache_resolver.pyi | 33 + .../cache/wrapper_cache.pyi | 21 + .../cache/wrapper_cache_interface.pyi | 19 + .../errors/__init__.pyi | 6 + .../errors/infinite_loop_error.pyi | 13 + .../helpers/__init__.pyi | 8 + .../helpers/get_uri_resolution_path.pyi | 10 + .../helpers/resolver_like_to_resolver.pyi | 11 + .../helpers/resolver_with_loop_guard.pyi | 4 + .../legacy/__init__.pyi | 8 + .../legacy/base_resolver.pyi | 21 + .../legacy/fs_resolver.pyi | 23 + .../legacy/redirect_resolver.pyi | 18 + .../package_resolver.pyi | 19 + .../recursive_resolver.pyi | 18 + .../redirect_resolver.pyi | 19 + .../static_resolver.pyi | 19 + .../polywrap_uri_resolvers/types/__init__.pyi | 10 + .../types/static_resolver_like.pyi | 8 + .../types/uri_package.pyi | 14 + .../types/uri_redirect.pyi | 14 + .../types/uri_resolver_like.pyi | 12 + .../types/uri_wrapper.pyi | 14 + .../uri_resolver_aggregator.pyi | 24 + .../wrapper_resolver.pyi | 19 + 81 files changed, 3520 insertions(+) create mode 100644 implementations/py/.gitkeep create mode 100644 implementations/py/polywrap-http-plugin/README.md create mode 100644 implementations/py/polywrap-http-plugin/poetry.lock create mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py create mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc create mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json create mode 100644 implementations/py/polywrap-http-plugin/pyproject.toml create mode 100644 implementations/py/polywrap-http-plugin/tests/__init__.py create mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc create mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/test_ipfs.cpython-310-pytest-7.2.1.pyc create mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc create mode 100644 implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.info create mode 100644 implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.wasm create mode 100644 implementations/py/polywrap-http-plugin/tests/test_ipfs.py create mode 100644 implementations/py/polywrap-http-plugin/tests/test_plugin.py create mode 100644 implementations/py/polywrap-http-plugin/tox.ini create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_client/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_client/client.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi diff --git a/implementations/py/.gitkeep b/implementations/py/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/implementations/py/polywrap-http-plugin/README.md b/implementations/py/polywrap-http-plugin/README.md new file mode 100644 index 0000000..2107807 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/README.md @@ -0,0 +1 @@ +# Polywrap HTTP Plugin \ No newline at end of file diff --git a/implementations/py/polywrap-http-plugin/poetry.lock b/implementations/py/polywrap-http-plugin/poetry.lock new file mode 100644 index 0000000..e010608 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/poetry.lock @@ -0,0 +1,993 @@ +# This file is automatically @generated by Poetry and should not be changed by hand. + +[[package]] +name = "anyio" +version = "3.6.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" +optional = false +python-versions = ">=3.6.2" +files = [ + {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, + {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] +trio = ["trio (>=0.16,<0.22)"] + +[[package]] +name = "attrs" +version = "22.2.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, + {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, +] + +[package.extras] +cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] +dev = ["attrs[docs,tests]"] +docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] +tests = ["attrs[tests-no-zope]", "zope.interface"] +tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] + +[[package]] +name = "backoff" +version = "2.2.1" +description = "Function decoration for backoff and retry" +category = "main" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, + {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, +] + +[[package]] +name = "black" +version = "23.1.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "black-23.1.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221"}, + {file = "black-23.1.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26"}, + {file = "black-23.1.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b"}, + {file = "black-23.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"}, + {file = "black-23.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648"}, + {file = "black-23.1.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958"}, + {file = "black-23.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a"}, + {file = "black-23.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481"}, + {file = "black-23.1.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad"}, + {file = "black-23.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8"}, + {file = "black-23.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd"}, + {file = "black-23.1.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580"}, + {file = "black-23.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468"}, + {file = "black-23.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06"}, + {file = "black-23.1.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739"}, + {file = "black-23.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9"}, + {file = "black-23.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555"}, + {file = "black-23.1.0-py3-none-any.whl", hash = "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32"}, + {file = "black-23.1.0.tar.gz", hash = "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "certifi" +version = "2022.12.7" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] + +[[package]] +name = "click" +version = "8.1.3" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.1.0" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, + {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "gql" +version = "3.4.0" +description = "GraphQL client for Python" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "gql-3.4.0-py2.py3-none-any.whl", hash = "sha256:59c8a0b8f0a2f3b0b2ff970c94de86f82f65cb1da3340bfe57143e5f7ea82f71"}, + {file = "gql-3.4.0.tar.gz", hash = "sha256:ca81aa8314fa88a8c57dd1ce34941278e0c352d762eb721edcba0387829ea7c0"}, +] + +[package.dependencies] +backoff = ">=1.11.1,<3.0" +graphql-core = ">=3.2,<3.3" +yarl = ">=1.6,<2.0" + +[package.extras] +aiohttp = ["aiohttp (>=3.7.1,<3.9.0)"] +all = ["aiohttp (>=3.7.1,<3.9.0)", "botocore (>=1.21,<2)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)", "websockets (>=10,<11)", "websockets (>=9,<10)"] +botocore = ["botocore (>=1.21,<2)"] +dev = ["aiofiles", "aiohttp (>=3.7.1,<3.9.0)", "black (==22.3.0)", "botocore (>=1.21,<2)", "check-manifest (>=0.42,<1)", "flake8 (==3.8.1)", "isort (==4.3.21)", "mock (==4.0.2)", "mypy (==0.910)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "sphinx (>=3.0.0,<4)", "sphinx-argparse (==0.2.5)", "sphinx-rtd-theme (>=0.4,<1)", "types-aiofiles", "types-mock", "types-requests", "urllib3 (>=1.26)", "vcrpy (==4.0.2)", "websockets (>=10,<11)", "websockets (>=9,<10)"] +requests = ["requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)"] +test = ["aiofiles", "aiohttp (>=3.7.1,<3.9.0)", "botocore (>=1.21,<2)", "mock (==4.0.2)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)", "vcrpy (==4.0.2)", "websockets (>=10,<11)", "websockets (>=9,<10)"] +test-no-transport = ["aiofiles", "mock (==4.0.2)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "vcrpy (==4.0.2)"] +websockets = ["websockets (>=10,<11)", "websockets (>=9,<10)"] + +[[package]] +name = "graphql-core" +version = "3.2.3" +description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." +category = "main" +optional = false +python-versions = ">=3.6,<4" +files = [ + {file = "graphql-core-3.2.3.tar.gz", hash = "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"}, + {file = "graphql_core-3.2.3-py3-none-any.whl", hash = "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "0.16.3" +description = "A minimal low-level HTTP client." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, + {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"}, +] + +[package.dependencies] +anyio = ">=3.0,<5.0" +certifi = "*" +h11 = ">=0.13,<0.15" +sniffio = ">=1.0.0,<2.0.0" + +[package.extras] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] + +[[package]] +name = "httpx" +version = "0.23.3" +description = "The next generation HTTP client." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, + {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"}, +] + +[package.dependencies] +certifi = "*" +httpcore = ">=0.15.0,<0.17.0" +rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "msgpack" +version = "1.0.4" +description = "MessagePack serializer" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250"}, + {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88"}, + {file = "msgpack-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa"}, + {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e"}, + {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db"}, + {file = "msgpack-1.0.4-cp310-cp310-win32.whl", hash = "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef"}, + {file = "msgpack-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075"}, + {file = "msgpack-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9"}, + {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6"}, + {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae"}, + {file = "msgpack-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6"}, + {file = "msgpack-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661"}, + {file = "msgpack-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227"}, + {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e"}, + {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236"}, + {file = "msgpack-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44"}, + {file = "msgpack-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab"}, + {file = "msgpack-1.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e"}, + {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43"}, + {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243"}, + {file = "msgpack-1.0.4-cp38-cp38-win32.whl", hash = "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2"}, + {file = "msgpack-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55"}, + {file = "msgpack-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92"}, + {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8"}, + {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae"}, + {file = "msgpack-1.0.4-cp39-cp39-win32.whl", hash = "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c"}, + {file = "msgpack-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce"}, + {file = "msgpack-1.0.4.tar.gz", hash = "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"}, +] + +[[package]] +name = "multidict" +version = "6.0.4" +description = "multidict implementation" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, + {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, + {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, + {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, + {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, + {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, + {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, + {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, + {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, + {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, + {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, + {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, + {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, + {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, + {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, + {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, + {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, + {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, + {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, + {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, + {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, + {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, + {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, + {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, + {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, + {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, + {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "packaging" +version = "23.0" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, + {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, +] + +[[package]] +name = "pathspec" +version = "0.11.0" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, + {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, +] + +[[package]] +name = "platformdirs" +version = "3.0.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, + {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, +] + +[package.extras] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "polywrap-client" +version = "0.1.0a4" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_client-0.1.0a4-py3-none-any.whl", hash = "sha256:6eaf0820b9a955394341f6624ca481ba4d20a4a725fae8a2e4ea90c2ff2f3569"}, + {file = "polywrap_client-0.1.0a4.tar.gz", hash = "sha256:3aa2416ecc67cbb4d278c8fe7aa578bdd0a1dcaf0555dd8a496cc236c7ab9659"}, +] + +[package.dependencies] +polywrap-core = "0.1.0a4" +polywrap-manifest = "0.1.0a4" +polywrap-msgpack = "0.1.0a4" +polywrap-result = "0.1.0a4" +polywrap-uri-resolvers = "0.1.0a4" +pycryptodome = ">=3.14.1,<4.0.0" +pysha3 = ">=1.0.2,<2.0.0" +result = ">=0.8.0,<0.9.0" +unsync = ">=1.4.0,<2.0.0" +wasmtime = ">=1.0.1,<2.0.0" + +[[package]] +name = "polywrap-core" +version = "0.1.0a4" +description = "" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_core-0.1.0a4-py3-none-any.whl", hash = "sha256:0523078d8d667ffe9b25ff39b3926f08e4fd924611112df837b79e9c25bddb1c"}, + {file = "polywrap_core-0.1.0a4.tar.gz", hash = "sha256:8b7c0773822b8af615fd189247d7077c01e71de8b08c864d28b5824247eb9899"}, +] + +[package.dependencies] +gql = "3.4.0" +graphql-core = ">=3.2.1,<4.0.0" +polywrap-manifest = "0.1.0a4" +polywrap-result = "0.1.0a4" +pydantic = ">=1.10.2,<2.0.0" + +[[package]] +name = "polywrap-manifest" +version = "0.1.0a4" +description = "WRAP manifest" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_manifest-0.1.0a4-py3-none-any.whl", hash = "sha256:5b3625113847bfba80cfd86fff9b35f39f00dced66ea0e48c07694a67a20f2da"}, + {file = "polywrap_manifest-0.1.0a4.tar.gz", hash = "sha256:b3b47901fcd5a5f33e49214ee668e40d1d13b1328a64118f6c4e70aea564144b"}, +] + +[package.dependencies] +polywrap-msgpack = "0.1.0a4" +polywrap-result = "0.1.0a4" +pydantic = ">=1.10.2,<2.0.0" + +[[package]] +name = "polywrap-msgpack" +version = "0.1.0a4" +description = "WRAP msgpack encoding" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_msgpack-0.1.0a4-py3-none-any.whl", hash = "sha256:d5c2c8760d061b4a1ba55af66cf7043c37734fc9675d6e456319ea00dde33752"}, + {file = "polywrap_msgpack-0.1.0a4.tar.gz", hash = "sha256:e3dbb63bde9185987e9b0c51380fa7e7f1714ec1dcb435bca1b6ae6f48b6c72c"}, +] + +[package.dependencies] +msgpack = ">=1.0.4,<2.0.0" + +[[package]] +name = "polywrap-plugin" +version = "0.1.0a4" +description = "Plugin package" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_plugin-0.1.0a4-py3-none-any.whl", hash = "sha256:7dc1e5403d7e8d9af75e7a0e98c536bf2e5b82cf7633239b3d0be720a7d013ce"}, + {file = "polywrap_plugin-0.1.0a4.tar.gz", hash = "sha256:f0c9e4659a92f6d9188dc18e1c8205490fc9bc4b66cc736dcf4a8e69d4e15ae2"}, +] + +[package.dependencies] +polywrap_core = "0.1.0a4" +polywrap_manifest = "0.1.0a4" +polywrap_msgpack = "0.1.0a4" +polywrap_result = "0.1.0a4" + +[[package]] +name = "polywrap-result" +version = "0.1.0a4" +description = "Result object" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_result-0.1.0a4-py3-none-any.whl", hash = "sha256:794d278753a3fd6583d592e8e0d3d670177b11599195960ce39521bf3e2eb715"}, + {file = "polywrap_result-0.1.0a4.tar.gz", hash = "sha256:81c0b4e90958d6d773bd9d4dc6a3e3184ca11b32feb85ea231b0cdef07a5dd76"}, +] + +[[package]] +name = "polywrap-uri-resolvers" +version = "0.1.0a4" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_uri_resolvers-0.1.0a4-py3-none-any.whl", hash = "sha256:f7612c5ff87626b775937f34e47656328d504d7f70ec6eab19460571ae952d8e"}, + {file = "polywrap_uri_resolvers-0.1.0a4.tar.gz", hash = "sha256:f698f2cea4b99a4582f774c08924f3c00e7b1119cfa7e23c02ca784cb0e138c7"}, +] + +[package.dependencies] +polywrap-core = "0.1.0a4" +polywrap-result = "0.1.0a4" +polywrap-wasm = "0.1.0a4" +wasmtime = ">=1.0.1,<2.0.0" + +[[package]] +name = "polywrap-wasm" +version = "0.1.0a4" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_wasm-0.1.0a4-py3-none-any.whl", hash = "sha256:098346b61582ae4cdc6ee9ad987fb3c28e8b80826f666d692a3919d278b5acd7"}, + {file = "polywrap_wasm-0.1.0a4.tar.gz", hash = "sha256:0af281d7b763d7c294ae80a06ebb32be668aedfaba9c7e10772ed2c58c6bae58"}, +] + +[package.dependencies] +polywrap-core = "0.1.0a4" +polywrap-manifest = "0.1.0a4" +polywrap-msgpack = "0.1.0a4" +polywrap-result = "0.1.0a4" +unsync = ">=1.4.0,<2.0.0" +wasmtime = ">=1.0.1,<2.0.0" + +[[package]] +name = "pycryptodome" +version = "3.17" +description = "Cryptographic library for Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycryptodome-3.17-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:2c5631204ebcc7ae33d11c43037b2dafe25e2ab9c1de6448eb6502ac69c19a56"}, + {file = "pycryptodome-3.17-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:04779cc588ad8f13c80a060b0b1c9d1c203d051d8a43879117fe6b8aaf1cd3fa"}, + {file = "pycryptodome-3.17-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:f812d58c5af06d939b2baccdda614a3ffd80531a26e5faca2c9f8b1770b2b7af"}, + {file = "pycryptodome-3.17-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:9453b4e21e752df8737fdffac619e93c9f0ec55ead9a45df782055eb95ef37d9"}, + {file = "pycryptodome-3.17-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:121d61663267f73692e8bde5ec0d23c9146465a0d75cad75c34f75c752527b01"}, + {file = "pycryptodome-3.17-cp27-cp27m-win32.whl", hash = "sha256:ba2d4fcb844c6ba5df4bbfee9352ad5352c5ae939ac450e06cdceff653280450"}, + {file = "pycryptodome-3.17-cp27-cp27m-win_amd64.whl", hash = "sha256:87e2ca3aa557781447428c4b6c8c937f10ff215202ab40ece5c13a82555c10d6"}, + {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f44c0d28716d950135ff21505f2c764498eda9d8806b7c78764165848aa419bc"}, + {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5a790bc045003d89d42e3b9cb3cc938c8561a57a88aaa5691512e8540d1ae79c"}, + {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:d086d46774e27b280e4cece8ab3d87299cf0d39063f00f1e9290d096adc5662a"}, + {file = "pycryptodome-3.17-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:5587803d5b66dfd99e7caa31ed91fba0fdee3661c5d93684028ad6653fce725f"}, + {file = "pycryptodome-3.17-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:e7debd9c439e7b84f53be3cf4ba8b75b3d0b6e6015212355d6daf44ac672e210"}, + {file = "pycryptodome-3.17-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ca1ceb6303be1282148f04ac21cebeebdb4152590842159877778f9cf1634f09"}, + {file = "pycryptodome-3.17-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:dc22cc00f804485a3c2a7e2010d9f14a705555f67020eb083e833cabd5bd82e4"}, + {file = "pycryptodome-3.17-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80ea8333b6a5f2d9e856ff2293dba2e3e661197f90bf0f4d5a82a0a6bc83a626"}, + {file = "pycryptodome-3.17-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c133f6721fba313722a018392a91e3c69d3706ae723484841752559e71d69dc6"}, + {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:333306eaea01fde50a73c4619e25631e56c4c61bd0fb0a2346479e67e3d3a820"}, + {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:1a30f51b990994491cec2d7d237924e5b6bd0d445da9337d77de384ad7f254f9"}, + {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:909e36a43fe4a8a3163e9c7fc103867825d14a2ecb852a63d3905250b308a4e5"}, + {file = "pycryptodome-3.17-cp35-abi3-win32.whl", hash = "sha256:a3228728a3808bc9f18c1797ec1179a0efb5068c817b2ffcf6bcd012494dffb2"}, + {file = "pycryptodome-3.17-cp35-abi3-win_amd64.whl", hash = "sha256:9ec565e89a6b400eca814f28d78a9ef3f15aea1df74d95b28b7720739b28f37f"}, + {file = "pycryptodome-3.17-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:e1819b67bcf6ca48341e9b03c2e45b1c891fa8eb1a8458482d14c2805c9616f2"}, + {file = "pycryptodome-3.17-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:f8e550caf52472ae9126953415e4fc554ab53049a5691c45b8816895c632e4d7"}, + {file = "pycryptodome-3.17-pp27-pypy_73-win32.whl", hash = "sha256:afbcdb0eda20a0e1d44e3a1ad6d4ec3c959210f4b48cabc0e387a282f4c7deb8"}, + {file = "pycryptodome-3.17-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a74f45aee8c5cc4d533e585e0e596e9f78521e1543a302870a27b0ae2106381e"}, + {file = "pycryptodome-3.17-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38bbd6717eac084408b4094174c0805bdbaba1f57fc250fd0309ae5ec9ed7e09"}, + {file = "pycryptodome-3.17-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f68d6c8ea2974a571cacb7014dbaada21063a0375318d88ac1f9300bc81e93c3"}, + {file = "pycryptodome-3.17-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8198f2b04c39d817b206ebe0db25a6653bb5f463c2319d6f6d9a80d012ac1e37"}, + {file = "pycryptodome-3.17-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a232474cd89d3f51e4295abe248a8b95d0332d153bf46444e415409070aae1e"}, + {file = "pycryptodome-3.17-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4992ec965606054e8326e83db1c8654f0549cdb26fce1898dc1a20bc7684ec1c"}, + {file = "pycryptodome-3.17-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53068e33c74f3b93a8158dacaa5d0f82d254a81b1002e0cd342be89fcb3433eb"}, + {file = "pycryptodome-3.17-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:74794a2e2896cd0cf56fdc9db61ef755fa812b4a4900fa46c49045663a92b8d0"}, + {file = "pycryptodome-3.17.tar.gz", hash = "sha256:bce2e2d8e82fcf972005652371a3e8731956a0c1fbb719cc897943b3695ad91b"}, +] + +[[package]] +name = "pydantic" +version = "1.10.5" +description = "Data validation and settings management using python type hints" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, + {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, + {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, + {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, + {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, + {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, + {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, + {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, + {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, + {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, + {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, + {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, + {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, + {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, + {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, + {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, + {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, + {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, + {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, + {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, + {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, + {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, + {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pysha3" +version = "1.0.2" +description = "SHA-3 (Keccak) for Python 2.7 - 3.5" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "pysha3-1.0.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:6e6a84efb7856f5d760ee55cd2b446972cb7b835676065f6c4f694913ea8f8d9"}, + {file = "pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f9046d59b3e72aa84f6dae83a040bd1184ebd7fef4e822d38186a8158c89e3cf"}, + {file = "pysha3-1.0.2-cp27-cp27m-win32.whl", hash = "sha256:9fdd28884c5d0b4edfed269b12badfa07f1c89dbc5c9c66dd279833894a9896b"}, + {file = "pysha3-1.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:41be70b06c8775a9e4d4eeb52f2f6a3f356f17539a54eac61f43a29e42fd453d"}, + {file = "pysha3-1.0.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:68c3a60a39f9179b263d29e221c1bd6e01353178b14323c39cc70593c30f21c5"}, + {file = "pysha3-1.0.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:59111c08b8f34495575d12e5f2ce3bafb98bea470bc81e70c8b6df99aef0dd2f"}, + {file = "pysha3-1.0.2-cp33-cp33m-win32.whl", hash = "sha256:571a246308a7b63f15f5aa9651f99cf30f2a6acba18eddf28f1510935968b603"}, + {file = "pysha3-1.0.2-cp33-cp33m-win_amd64.whl", hash = "sha256:93abd775dac570cb9951c4e423bcb2bc6303a9d1dc0dc2b7afa2dd401d195b24"}, + {file = "pysha3-1.0.2-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:11a2ba7a2e1d9669d0052fc8fb30f5661caed5512586ecbeeaf6bf9478ab5c48"}, + {file = "pysha3-1.0.2-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:5ec8da7c5c70a53b5fa99094af3ba8d343955b212bc346a0d25f6ff75853999f"}, + {file = "pysha3-1.0.2-cp34-cp34m-win32.whl", hash = "sha256:9c778fa8b161dc9348dc5cc361e94d54aa5ff18413788f4641f6600d4893a608"}, + {file = "pysha3-1.0.2-cp34-cp34m-win_amd64.whl", hash = "sha256:fd7e66999060d079e9c0e8893e78d8017dad4f59721f6fe0be6307cd32127a07"}, + {file = "pysha3-1.0.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:827b308dc025efe9b6b7bae36c2e09ed0118a81f792d888548188e97b9bf9a3d"}, + {file = "pysha3-1.0.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:4416f16b0f1605c25f627966f76873e432971824778b369bd9ce1bb63d6566d9"}, + {file = "pysha3-1.0.2-cp35-cp35m-win32.whl", hash = "sha256:c93a2676e6588abcfaecb73eb14485c81c63b94fca2000a811a7b4fb5937b8e8"}, + {file = "pysha3-1.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:684cb01d87ed6ff466c135f1c83e7e4042d0fc668fa20619f581e6add1d38d77"}, + {file = "pysha3-1.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:386998ee83e313b6911327174e088021f9f2061cbfa1651b97629b761e9ef5c4"}, + {file = "pysha3-1.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c7c2adcc43836223680ebdf91f1d3373543dc32747c182c8ca2e02d1b69ce030"}, + {file = "pysha3-1.0.2-cp36-cp36m-win32.whl", hash = "sha256:cd5c961b603bd2e6c2b5ef9976f3238a561c58569945d4165efb9b9383b050ef"}, + {file = "pysha3-1.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:0060a66be16665d90c432f55a0ba1f6480590cfb7d2ad389e688a399183474f0"}, + {file = "pysha3-1.0.2.tar.gz", hash = "sha256:fe988e73f2ce6d947220624f04d467faf05f1bbdbc64b0a201296bb3af92739e"}, +] + +[[package]] +name = "pytest" +version = "7.2.1" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, + {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, +] + +[package.dependencies] +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.20.3" +description = "Pytest support for asyncio" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-asyncio-0.20.3.tar.gz", hash = "sha256:83cbf01169ce3e8eb71c6c278ccb0574d1a7a3bb8eaaf5e50e0ad342afb33b36"}, + {file = "pytest_asyncio-0.20.3-py3-none-any.whl", hash = "sha256:f129998b209d04fcc65c96fc85c11e5316738358909a8399e93be553d7656442"}, +] + +[package.dependencies] +pytest = ">=6.1.0" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] + +[[package]] +name = "result" +version = "0.8.0" +description = "A Rust-like result type for Python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "result-0.8.0-py3-none-any.whl", hash = "sha256:d6a6258f32c057a4e0478999c6ce43dcadaf8ea435f58ac601ae2768f93ef243"}, + {file = "result-0.8.0.tar.gz", hash = "sha256:c48c909e92181a075ba358228a3fe161e26d205dad416ad81f27f23515a5626d"}, +] + +[[package]] +name = "rfc3986" +version = "1.5.0" +description = "Validating URI References per RFC 3986" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, + {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, +] + +[package.dependencies] +idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} + +[package.extras] +idna2008 = ["idna"] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.5.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, + {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, +] + +[[package]] +name = "unsync" +version = "1.4.0" +description = "Unsynchronize asyncio" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "unsync-1.4.0.tar.gz", hash = "sha256:a29e0f8952ffb0b3a0453ce436819a5a1ba2febbb5caa707c319f6f98d35f3c5"}, +] + +[[package]] +name = "wasmtime" +version = "1.0.1" +description = "A WebAssembly runtime powered by Wasmtime" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "wasmtime-1.0.1-py3-none-any.whl", hash = "sha256:20c1df95a3506408dcf2116502720e7cb248f1e98122b868932dbc9bbacb4ebd"}, + {file = "wasmtime-1.0.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:9ccb42db2511b49c805b23a87e7c191d34112a9568292d475ec966204ac42bc3"}, + {file = "wasmtime-1.0.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:439960f6fb2a48482c8f7beaa2b491ce684f1599d9bfdd519b5320305edc2f39"}, + {file = "wasmtime-1.0.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:b257ec11ba6d39e3cd9eed4f90c4633bcf3b964219948254244347236fe45172"}, + {file = "wasmtime-1.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:f34ac6db5f91ab359566f531dca7c53d2e63f657d5b10ec9cf53d1c29ac718c0"}, + {file = "wasmtime-1.0.1-py3-none-win_amd64.whl", hash = "sha256:0ae7e2d43a5d9da72a884a695049d7b1773717ba059bdb0ad0369e5c1e03a388"}, +] + +[package.extras] +testing = ["coverage", "flake8 (==4.0.1)", "pycparser", "pytest", "pytest-flake8", "pytest-mypy"] + +[[package]] +name = "yarl" +version = "1.8.2" +description = "Yet another URL library" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5"}, + {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863"}, + {file = "yarl-1.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fc056e35fa6fba63248d93ff6e672c096f95f7836938241ebc8260e062832fe"}, + {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58a3c13d1c3005dbbac5c9f0d3210b60220a65a999b1833aa46bd6677c69b08e"}, + {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10b08293cda921157f1e7c2790999d903b3fd28cd5c208cf8826b3b508026996"}, + {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de986979bbd87272fe557e0a8fcb66fd40ae2ddfe28a8b1ce4eae22681728fef"}, + {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4fcfa71e2c6a3cb568cf81aadc12768b9995323186a10827beccf5fa23d4f8"}, + {file = "yarl-1.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae4d7ff1049f36accde9e1ef7301912a751e5bae0a9d142459646114c70ecba6"}, + {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bf071f797aec5b96abfc735ab97da9fd8f8768b43ce2abd85356a3127909d146"}, + {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:74dece2bfc60f0f70907c34b857ee98f2c6dd0f75185db133770cd67300d505f"}, + {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:df60a94d332158b444301c7f569659c926168e4d4aad2cfbf4bce0e8fb8be826"}, + {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:63243b21c6e28ec2375f932a10ce7eda65139b5b854c0f6b82ed945ba526bff3"}, + {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cfa2bbca929aa742b5084fd4663dd4b87c191c844326fcb21c3afd2d11497f80"}, + {file = "yarl-1.8.2-cp310-cp310-win32.whl", hash = "sha256:b05df9ea7496df11b710081bd90ecc3a3db6adb4fee36f6a411e7bc91a18aa42"}, + {file = "yarl-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:24ad1d10c9db1953291f56b5fe76203977f1ed05f82d09ec97acb623a7976574"}, + {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a1fca9588f360036242f379bfea2b8b44cae2721859b1c56d033adfd5893634"}, + {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f37db05c6051eff17bc832914fe46869f8849de5b92dc4a3466cd63095d23dfd"}, + {file = "yarl-1.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77e913b846a6b9c5f767b14dc1e759e5aff05502fe73079f6f4176359d832581"}, + {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0978f29222e649c351b173da2b9b4665ad1feb8d1daa9d971eb90df08702668a"}, + {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388a45dc77198b2460eac0aca1efd6a7c09e976ee768b0d5109173e521a19daf"}, + {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2305517e332a862ef75be8fad3606ea10108662bc6fe08509d5ca99503ac2aee"}, + {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42430ff511571940d51e75cf42f1e4dbdded477e71c1b7a17f4da76c1da8ea76"}, + {file = "yarl-1.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3150078118f62371375e1e69b13b48288e44f6691c1069340081c3fd12c94d5b"}, + {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c15163b6125db87c8f53c98baa5e785782078fbd2dbeaa04c6141935eb6dab7a"}, + {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4d04acba75c72e6eb90745447d69f84e6c9056390f7a9724605ca9c56b4afcc6"}, + {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e7fd20d6576c10306dea2d6a5765f46f0ac5d6f53436217913e952d19237efc4"}, + {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:75c16b2a900b3536dfc7014905a128a2bea8fb01f9ee26d2d7d8db0a08e7cb2c"}, + {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6d88056a04860a98341a0cf53e950e3ac9f4e51d1b6f61a53b0609df342cc8b2"}, + {file = "yarl-1.8.2-cp311-cp311-win32.whl", hash = "sha256:fb742dcdd5eec9f26b61224c23baea46c9055cf16f62475e11b9b15dfd5c117b"}, + {file = "yarl-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8c46d3d89902c393a1d1e243ac847e0442d0196bbd81aecc94fcebbc2fd5857c"}, + {file = "yarl-1.8.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ceff9722e0df2e0a9e8a79c610842004fa54e5b309fe6d218e47cd52f791d7ef"}, + {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f6b4aca43b602ba0f1459de647af954769919c4714706be36af670a5f44c9c1"}, + {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1684a9bd9077e922300ecd48003ddae7a7474e0412bea38d4631443a91d61077"}, + {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebb78745273e51b9832ef90c0898501006670d6e059f2cdb0e999494eb1450c2"}, + {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3adeef150d528ded2a8e734ebf9ae2e658f4c49bf413f5f157a470e17a4a2e89"}, + {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a7c87927a468e5a1dc60c17caf9597161d66457a34273ab1760219953f7f4c"}, + {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:efff27bd8cbe1f9bd127e7894942ccc20c857aa8b5a0327874f30201e5ce83d0"}, + {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a783cd344113cb88c5ff7ca32f1f16532a6f2142185147822187913eb989f739"}, + {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:705227dccbe96ab02c7cb2c43e1228e2826e7ead880bb19ec94ef279e9555b5b"}, + {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:34c09b43bd538bf6c4b891ecce94b6fa4f1f10663a8d4ca589a079a5018f6ed7"}, + {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a48f4f7fea9a51098b02209d90297ac324241bf37ff6be6d2b0149ab2bd51b37"}, + {file = "yarl-1.8.2-cp37-cp37m-win32.whl", hash = "sha256:0414fd91ce0b763d4eadb4456795b307a71524dbacd015c657bb2a39db2eab89"}, + {file = "yarl-1.8.2-cp37-cp37m-win_amd64.whl", hash = "sha256:d881d152ae0007809c2c02e22aa534e702f12071e6b285e90945aa3c376463c5"}, + {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5df5e3d04101c1e5c3b1d69710b0574171cc02fddc4b23d1b2813e75f35a30b1"}, + {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7a66c506ec67eb3159eea5096acd05f5e788ceec7b96087d30c7d2865a243918"}, + {file = "yarl-1.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2b4fa2606adf392051d990c3b3877d768771adc3faf2e117b9de7eb977741229"}, + {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e21fb44e1eff06dd6ef971d4bdc611807d6bd3691223d9c01a18cec3677939e"}, + {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93202666046d9edadfe9f2e7bf5e0782ea0d497b6d63da322e541665d65a044e"}, + {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc77086ce244453e074e445104f0ecb27530d6fd3a46698e33f6c38951d5a0f1"}, + {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dd68a92cab699a233641f5929a40f02a4ede8c009068ca8aa1fe87b8c20ae3"}, + {file = "yarl-1.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b372aad2b5f81db66ee7ec085cbad72c4da660d994e8e590c997e9b01e44901"}, + {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e6f3515aafe0209dd17fb9bdd3b4e892963370b3de781f53e1746a521fb39fc0"}, + {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dfef7350ee369197106805e193d420b75467b6cceac646ea5ed3049fcc950a05"}, + {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:728be34f70a190566d20aa13dc1f01dc44b6aa74580e10a3fb159691bc76909d"}, + {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ff205b58dc2929191f68162633d5e10e8044398d7a45265f90a0f1d51f85f72c"}, + {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baf211dcad448a87a0d9047dc8282d7de59473ade7d7fdf22150b1d23859f946"}, + {file = "yarl-1.8.2-cp38-cp38-win32.whl", hash = "sha256:272b4f1599f1b621bf2aabe4e5b54f39a933971f4e7c9aa311d6d7dc06965165"}, + {file = "yarl-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:326dd1d3caf910cd26a26ccbfb84c03b608ba32499b5d6eeb09252c920bcbe4f"}, + {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f8ca8ad414c85bbc50f49c0a106f951613dfa5f948ab69c10ce9b128d368baf8"}, + {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:418857f837347e8aaef682679f41e36c24250097f9e2f315d39bae3a99a34cbf"}, + {file = "yarl-1.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ae0eec05ab49e91a78700761777f284c2df119376e391db42c38ab46fd662b77"}, + {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:009a028127e0a1755c38b03244c0bea9d5565630db9c4cf9572496e947137a87"}, + {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3edac5d74bb3209c418805bda77f973117836e1de7c000e9755e572c1f7850d0"}, + {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da65c3f263729e47351261351b8679c6429151ef9649bba08ef2528ff2c423b2"}, + {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef8fb25e52663a1c85d608f6dd72e19bd390e2ecaf29c17fb08f730226e3a08"}, + {file = "yarl-1.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcd7bb1e5c45274af9a1dd7494d3c52b2be5e6bd8d7e49c612705fd45420b12d"}, + {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44ceac0450e648de86da8e42674f9b7077d763ea80c8ceb9d1c3e41f0f0a9951"}, + {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:97209cc91189b48e7cfe777237c04af8e7cc51eb369004e061809bcdf4e55220"}, + {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:48dd18adcf98ea9cd721a25313aef49d70d413a999d7d89df44f469edfb38a06"}, + {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e59399dda559688461762800d7fb34d9e8a6a7444fd76ec33220a926c8be1516"}, + {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d617c241c8c3ad5c4e78a08429fa49e4b04bedfc507b34b4d8dceb83b4af3588"}, + {file = "yarl-1.8.2-cp39-cp39-win32.whl", hash = "sha256:cb6d48d80a41f68de41212f3dfd1a9d9898d7841c8f7ce6696cf2fd9cb57ef83"}, + {file = "yarl-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:6604711362f2dbf7160df21c416f81fac0de6dbcf0b5445a2ef25478ecc4c778"}, + {file = "yarl-1.8.2.tar.gz", hash = "sha256:49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "0027e46c9d0a780b38201819ac0360480a8683c36f2b61f036d06cec4053c666" diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py new file mode 100644 index 0000000..c8204c4 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py @@ -0,0 +1,113 @@ +from pathlib import Path +from typing import List, Optional, Dict, TypedDict, cast +from enum import Enum +import json + +from httpx import AsyncClient, Response +from polywrap_plugin import PluginModule, PluginPackage +from polywrap_core import Invoker +from polywrap_result import Ok, Result +from polywrap_manifest import WrapManifest + + +class HttpResponseType(Enum): + TEXT = "TEXT" + BINARY = "BINARY" + + +class FormDataEntry(TypedDict): + name: str + value: Optional[str] + fileName: Optional[str] + type: Optional[str] + + +class HttpRequest(TypedDict): + headers: Optional[Dict[str, str]] + urlParams: Optional[Dict[str, str]] + responseType: HttpResponseType + body: Optional[str] + formData: Optional[List[FormDataEntry]] + timeout: Optional[int] + +class HttpResponse(TypedDict): + status: int + statusText: str + headers: Optional[Dict[str, str]] + body: Optional[str] + + +class ArgsGet(TypedDict): + url: str + request: Optional[HttpRequest] + + +class ArgsPost(TypedDict): + url: str + request: Optional[HttpRequest] + + +class HttpPlugin(PluginModule[None, HttpResponse]): + def __init__(self): + super().__init__(None) + self.client = AsyncClient() + + async def get(self, args: ArgsGet, invoker: Invoker) -> Result[HttpResponse]: + res: Response + if args.get("request") is None: + res = await self.client.get(args["url"]) + elif args["request"] is not None: + res = await self.client.get( + args["url"], + params=args["request"]["urlParams"], + headers=args["request"]["headers"], + timeout=cast(float, args["request"]["timeout"]), + ) + else: + res = await self.client.get(args["url"]) + + return Ok( + HttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=dict(res.headers), + body=res.text, + ) + ) + + async def post(self, args: ArgsPost, invoker: Invoker) -> Result[HttpResponse]: + res: Response + if args.get("request") is None: + res = await self.client.post(args["url"]) + elif args["request"] is not None: + content = ( + args["request"]["body"].encode() + if args["request"]["body"] is not None + else None + ) + res = await self.client.post( + args["url"], + content=content, + params=args["request"]["urlParams"], + headers=args["request"]["headers"], + timeout=cast(float, args["request"]["timeout"]), + ) + else: + res = await self.client.post(args["url"]) + + return Ok( + HttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=dict(res.headers), + body=res.text, + ) + ) + + +def http_plugin(): + manifest_path = Path(__file__).parent.joinpath("manifest.json") + with open(manifest_path, "r") as f: + json_manifest = json.load(f) + manifest = WrapManifest(**json_manifest) + return PluginPackage(module=HttpPlugin(), manifest=manifest) diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c0dd25f2cad313cc3e550af55d9fde15019650c GIT binary patch literal 3928 zcmZ`+NpsxB6>b2HWj1ms?y@X1jyYXCd&A+DGUOb;H_zTIRzo_|Iyp$~a%LaRg ziMnV!VWJV$PAq=~d{eZ*w;~7pD)<>O3w~Df*TJ{N9QZlSzX1N4mfiR>bNP=D#HPA6V!5zsW}(L-F0PIOy1lzuV6X<-I>B z`dJ#rif{FMg{nO`8bm@jc`wWhny{S?lWxaUjm`Wh?cI(0QHqK8qkNF1c?3aoHy-Zy z)Auqlj3d=5x!th$DBO>*fV-1^l0AwfMw;(GQVwPgV_LcSfeZ)lg=v2;%8MT9H~k=b zWgHjKh?s8(=9|LsEn)gxSg?t!_PwGQj5Q(E6@Re(#|O%Jd#Ag3|HCfq^nxG_lPCyO zJqQx5BHGO$_;?t`r9@uC4ssskIg`uOCh~Q@{xFYZzMl4Fc(}fm^@a&7&)0Wlb{O^0 z7-aF$r!Zmt09vf~lR+HOh>$#bCcQ<{TLbN)$&`RPgQ_zK`f0xig4=^5IftErYL*j> zJ;n{s(0!NOV?n+_1Ah%NcF#i=SrHe;9TwSH8`!Cr@t8CEVJ&^M@!akdT4jUb9FYG?oM|QiAkv6Cd zZ7-@-^K8x6wakG(T=>INjS^HJ4}nVM9z>x43RG<<_P#2Bgjwj0Hf0TnFco z?7N-!7NqB$R{^91hXXgAITI%fPI0uuxHtnzvvf*%=9QBp)WclW%ijmlXN6qDHu7bV zZpXW5_$wsS=4!(=I4qxSMi6 zeM11sej2h^BXuBbyX)2l3RH6n*u>!PRG1pC+rjn`x&m?!aQLk z7FdE|4WkRY?R+?hBxU9@@5vgbD5s}y7P@irDBgQ+s9F&8;xNyVPqagH0(lK%-=KXc zD3m;o=g+jdJzi4r5WZDzzr1>sBcoy{(;jI!erN#?-{0`%{{Z>IC{Qk(kj`wRe@6za zFrUGaA(Ly6S|lB@L-W)a8G^6E!W|SA_t;}A{Uv&kkucVfI~Z$^#~xN=D>(pJwGe^A zDtN_txVBAEd&(y(&SI7Nc$LdLLQAbrVHeKGI&|@QMGX{lKpUd*l%E*zdb4}nyuZD9 z_ulr_+P&@j+Zt-eGt*sbuWJxq=zK%cK`f8<_tEND${FY+c-D7e%A3!*{2@*H(PSna z%}!I<1Bv9Oto^8vual7As_eZu3kykEO`mYpD052C%LIxE8HIV427?0`=D36eiWI#y z?jt0f4wr-l`Ew$_pye#&=BeYOA#(=;66Un4`MHP0Ib(Xp3c%wT4&FN6wlVXK=PntZ ziO1l0J)+<6Z;xlD00!mHfrzpg!B>Om?`V91V4ng;6=)U!7UR?`Lp%kRyXY}0u)JHf zabaulyn4o;TF+Pt_&w&d&SACAh#*6=0l=z-3$EaWU2%XIpyWQaCs1l!tw-S$8a9AS zt*8@dG<2H6tDsZsYOs_UiUN5N5nQ>wEG=5LqL#3DU7I#96*gqPs-Sa-|OT7Wy9I%YO!9em-MTnA=wS zTZHw$j_nxcINbkPqFA2~_3TurN!w2I;;lgWN2hm5WtyBNLN`-sC#7XcDyUYKyn0a_ zj}w?y^-UV0Rb5AmAemDZ@{r7~^OtW*>h0m1JmWk?*5-c#DOiE*gdAiM%pN1~BmA{F zG5@mg*eL8%XGFbb;R@boBlEAupN+@X2Y?pGdtwj8u!Cf z6ZyjK9=DRJF28+<^QUm5naU~4XXTA$+V`EhG@%rwb1D{5TvLhw9+Y>O_0s|VZYZ7& zqEvCc6vufNvW+RSNrdd}aDTF4pl29+ev5_&lf8Cm@cCe?#=%(`okO0}ifsg(&hw4` z%~MqT?sL&Dx`)O uIZfL(00+#abl#zOiF6Nw0ZIj*5*{*Gpcl2kq?Y7(Y@YySNbMybDwljVJ literal 0 HcmV?d00001 diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json new file mode 100644 index 0000000..13013a9 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json @@ -0,0 +1,468 @@ +{ + "name": "Http", + "type": "plugin", + "version": "0.1", + "abi": { + "importedEnumTypes": [ + { + "constants": ["TEXT", "BINARY"], + "kind": 520, + "namespace": "Http", + "nativeType": "ResponseType", + "type": "Http_ResponseType", + "uri": "ens/wraps.eth:http@1.1.0" + } + ], + "importedModuleTypes": [ + { + "isInterface": false, + "kind": 256, + "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "url", + "required": true, + "scalar": { + "kind": 4, + "name": "url", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "request", + "object": { + "kind": 8192, + "name": "request", + "type": "Http_Request" + }, + "type": "Http_Request" + } + ], + "kind": 64, + "name": "get", + "required": true, + "return": { + "kind": 34, + "name": "get", + "object": { + "kind": 8192, + "name": "get", + "type": "Http_Response" + }, + "type": "Http_Response" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "url", + "required": true, + "scalar": { + "kind": 4, + "name": "url", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "request", + "object": { + "kind": 8192, + "name": "request", + "type": "Http_Request" + }, + "type": "Http_Request" + } + ], + "kind": 64, + "name": "post", + "required": true, + "return": { + "kind": 34, + "name": "post", + "object": { + "kind": 8192, + "name": "post", + "type": "Http_Response" + }, + "type": "Http_Response" + }, + "type": "Method" + } + ], + "namespace": "Http", + "nativeType": "Module", + "type": "Http_Module", + "uri": "ens/wraps.eth:http@1.1.0" + } + ], + "importedObjectTypes": [ + { + "kind": 1025, + "namespace": "Http", + "nativeType": "Request", + "properties": [ + { + "kind": 34, + "map": { + "key": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + }, + "kind": 262146, + "name": "headers", + "scalar": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + }, + "type": "Map", + "value": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + } + }, + "name": "headers", + "type": "Map" + }, + { + "kind": 34, + "map": { + "key": { + "kind": 4, + "name": "urlParams", + "required": true, + "type": "String" + }, + "kind": 262146, + "name": "urlParams", + "scalar": { + "kind": 4, + "name": "urlParams", + "required": true, + "type": "String" + }, + "type": "Map", + "value": { + "kind": 4, + "name": "urlParams", + "required": true, + "type": "String" + } + }, + "name": "urlParams", + "type": "Map" + }, + { + "enum": { + "kind": 16384, + "name": "responseType", + "required": true, + "type": "Http_ResponseType" + }, + "kind": 34, + "name": "responseType", + "required": true, + "type": "Http_ResponseType" + }, + { + "comment": "The body of the request. If present, the `formData` property will be ignored.", + "kind": 34, + "name": "body", + "scalar": { + "kind": 4, + "name": "body", + "type": "String" + }, + "type": "String" + }, + { + "array": { + "item": { + "kind": 8192, + "name": "formData", + "required": true, + "type": "Http_FormDataEntry" + }, + "kind": 18, + "name": "formData", + "object": { + "kind": 8192, + "name": "formData", + "required": true, + "type": "Http_FormDataEntry" + }, + "type": "[Http_FormDataEntry]" + }, + "comment": " An alternative to the standard request body, 'formData' is expected to be in the 'multipart/form-data' format.\nIf present, the `body` property is not null, `formData` will be ignored.\nOtherwise, if formData is not null, the following header will be added to the request: 'Content-Type: multipart/form-data'.", + "kind": 34, + "name": "formData", + "type": "[Http_FormDataEntry]" + }, + { + "kind": 34, + "name": "timeout", + "scalar": { + "kind": 4, + "name": "timeout", + "type": "UInt32" + }, + "type": "UInt32" + } + ], + "type": "Http_Request", + "uri": "ens/wraps.eth:http@1.1.0" + }, + { + "kind": 1025, + "namespace": "Http", + "nativeType": "FormDataEntry", + "properties": [ + { + "comment": "FormData entry key", + "kind": 34, + "name": "name", + "required": true, + "scalar": { + "kind": 4, + "name": "name", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "comment": "If 'type' is defined, value is treated as a base64 byte string", + "kind": 34, + "name": "value", + "scalar": { + "kind": 4, + "name": "value", + "type": "String" + }, + "type": "String" + }, + { + "comment": "File name to report to the server", + "kind": 34, + "name": "fileName", + "scalar": { + "kind": 4, + "name": "fileName", + "type": "String" + }, + "type": "String" + }, + { + "comment": "MIME type (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types). Defaults to empty string.", + "kind": 34, + "name": "type", + "scalar": { + "kind": 4, + "name": "type", + "type": "String" + }, + "type": "String" + } + ], + "type": "Http_FormDataEntry", + "uri": "ens/wraps.eth:http@1.1.0" + }, + { + "kind": 1025, + "namespace": "Http", + "nativeType": "Response", + "properties": [ + { + "kind": 34, + "name": "status", + "required": true, + "scalar": { + "kind": 4, + "name": "status", + "required": true, + "type": "Int" + }, + "type": "Int" + }, + { + "kind": 34, + "name": "statusText", + "required": true, + "scalar": { + "kind": 4, + "name": "statusText", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "map": { + "key": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + }, + "kind": 262146, + "name": "headers", + "scalar": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + }, + "type": "Map", + "value": { + "kind": 4, + "name": "headers", + "required": true, + "type": "String" + } + }, + "name": "headers", + "type": "Map" + }, + { + "kind": 34, + "name": "body", + "scalar": { + "kind": 4, + "name": "body", + "type": "String" + }, + "type": "String" + } + ], + "type": "Http_Response", + "uri": "ens/wraps.eth:http@1.1.0" + } + ], + "moduleType": { + "imports": [ + { + "type": "Http_Module" + }, + { + "type": "Http_Request" + }, + { + "type": "Http_ResponseType" + }, + { + "type": "Http_FormDataEntry" + }, + { + "type": "Http_Response" + } + ], + "interfaces": [ + { + "kind": 2048, + "type": "Http_Module" + } + ], + "kind": 128, + "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "url", + "required": true, + "scalar": { + "kind": 4, + "name": "url", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "request", + "object": { + "kind": 8192, + "name": "request", + "type": "Http_Request" + }, + "type": "Http_Request" + } + ], + "kind": 64, + "name": "get", + "required": true, + "return": { + "kind": 34, + "name": "get", + "object": { + "kind": 8192, + "name": "get", + "type": "Http_Response" + }, + "type": "Http_Response" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "url", + "required": true, + "scalar": { + "kind": 4, + "name": "url", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "request", + "object": { + "kind": 8192, + "name": "request", + "type": "Http_Request" + }, + "type": "Http_Request" + } + ], + "kind": 64, + "name": "post", + "required": true, + "return": { + "kind": 34, + "name": "post", + "object": { + "kind": 8192, + "name": "post", + "type": "Http_Response" + }, + "type": "Http_Response" + }, + "type": "Method" + } + ], + "type": "Module" + }, + "version": "0.1" + } +} diff --git a/implementations/py/polywrap-http-plugin/pyproject.toml b/implementations/py/polywrap-http-plugin/pyproject.toml new file mode 100644 index 0000000..11bca96 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/pyproject.toml @@ -0,0 +1,54 @@ +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +name = "polywrap-http-plugin" +version = "0.1.0" +description = "" +authors = ["Niraj Kamdar "] +readme = "README.md" +packages = [{include = "polywrap_http_plugin"}] + +[tool.poetry.dependencies] +python = "^3.10" +polywrap-core = "^0.1.0a4" +polywrap-plugin = "^0.1.0a4" +httpx = "^0.23.3" + +[tool.poetry.group.dev.dependencies] +black = "^23.1.0" +polywrap-client = "^0.1.0a4" +pytest = "^7.2.1" +pytest-asyncio = "^0.20.3" + +[tool.bandit] +exclude_dirs = ["tests"] + +[tool.black] +target-version = ["py310"] + +[tool.pyright] +typeCheckingMode = "strict" +reportShadowedImports = false + +[tool.pytest.ini_options] +asyncio_mode = "auto" +testpaths = [ + "tests" +] + +[tool.pylint] +disable = [ + "too-many-return-statements", +] +ignore = [ + "tests/" +] + +[tool.isort] +profile = "black" +multi_line_output = 3 + +[tool.pydocstyle] +# default \ No newline at end of file diff --git a/implementations/py/polywrap-http-plugin/tests/__init__.py b/implementations/py/polywrap-http-plugin/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc b/implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c1b4c84e0d8ea86d7cf52d35f1c93f0c01c1f2d GIT binary patch literal 193 zcmd1j<>g`k0@iMZ6cGIwL?8o3AjbiSi&=m~3PUi1CZpdR;#zcSG@(i z0DOTIe^Br>f}SeP(rd_3dE7*a*0C6Gs!3^^^Ki#zVc;`6Dei$}hHk&-_+YF&3EaUE zwZcu;v3;J*yen@8e%I+WGfCz-b&}E}px`NR4{e%M9{GpCfla>%xdX0+v!~qRPUm7q zeaG(fDRU0(a}}gDJKO9{6O|NRWk%=`Kww*m zv%F4%794W;{l#7f5HO@zQ_9LG@ogw8Y-$kS%^j&qNkt&}(ZH$yd zg*jlq5@kn-`oPTz&PQMuygowmn;U?J8Wl&dqwfK( zniA_Uaxn6-0VlE$Wlyh-l%X1zq7s>&SK>06iE~jo%0ZTusKWjL4z{M$qBpcmY5dW^f=RH z?IhE&IBtFE;T5v>`HM}yedlHO#nw@W?0og`U>|=*zJ7cZ_;mB=dFSBMt>xa%#`eAA zs_@Sss_@rxf~JZy9fx4){|OBa9RYA?vp%$$?mW07_Pn8-gvh0Ed3YURujEZ z*Vmiq_~DJ4;b5i73g3*G#q~wO-9A?VGgd7%AuKa(N(=GLW+7f&Pp7UmS)#*s`z~*4 zNhTaD336MI6%1tUxMDG8Q!X9fYcip{m*@;Sz0Y3%4s8dCOo^z=B3SAba)O42nagw@ zX1wEL6(WLVHPLnhGJw744qNmC4sIIfZc>d5DO_ErMessPf{44AijJpcK`MfX+neSD z(FB1jT%lP(sz4IMG-dtGL=P=0E;(aAaQqOil0ZEWt71GQ;#B#f-u)HKYM7}4JE0&T8 zU$;{sU2%6(So>9>cOj=YcKbOXi?w}+TKnx!f==Iq>aaHS!@k`CCLF&_ZP7h#`5cHD z@_a6>w}kap`l7W(!I-3`Y_)KZ6lD=pyTB1!0iu4ZA{Eut22$UuXWCgIZ-7)mnkw}0 z2Vd>2_IKgTD4u|RAFf}z1`C_l6XU$<^aD^N^Ja>ZR(iZpyB4*NsKcS=7pf#T*3lbc zjm`(5&(y|5d_5WDp!c*QET=r#>6Nq%3UD=27^km^D$f`ID<0CI1 Yeb@dNfyAbOysy+y4b8wP$x+Ju1F5Xr#Q*>R literal 0 HcmV?d00001 diff --git a/implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc b/implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..14cbb51ce86e1549e0ce6c0a5ebc709d5f13311c GIT binary patch literal 2223 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 bx0|E2%delk_Rgb~#oesiqHc!&6HopL3w>fj literal 0 HcmV?d00001 diff --git a/implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.wasm b/implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.wasm new file mode 100644 index 0000000000000000000000000000000000000000..ea5752edf07656a454d362d81317406f92cff322 GIT binary patch literal 150523 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 None: + ... + + def get_config(self): # -> PolywrapClientConfig: + ... + + def get_uri_resolver(self) -> IUriResolver: + ... + + def get_envs(self) -> Dict[Uri, Env]: + ... + + def get_interfaces(self) -> Dict[Uri, List[Uri]]: + ... + + def get_implementations(self, uri: Uri) -> Result[Union[List[Uri], None]]: + ... + + def get_env_by_uri(self, uri: Uri) -> Union[Env, None]: + ... + + async def get_file(self, uri: Uri, options: GetFileOptions) -> Result[Union[bytes, str]]: + ... + + async def get_manifest(self, uri: Uri, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: + ... + + async def try_resolve_uri(self, options: TryResolveUriOptions) -> Result[UriPackageOrWrapper]: + ... + + async def load_wrapper(self, uri: Uri, resolution_context: Optional[IUriResolutionContext] = ...) -> Result[Wrapper]: + ... + + async def invoke(self, options: InvokerOptions) -> Result[Any]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi new file mode 100644 index 0000000..2a0b026 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi @@ -0,0 +1,9 @@ +""" +This type stub file was generated by pyright. +""" + +from .types import * +from .algorithms import * +from .uri_resolution import * +from .utils import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi new file mode 100644 index 0000000..1cf24ef --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi @@ -0,0 +1,6 @@ +""" +This type stub file was generated by pyright. +""" + +from .build_clean_uri_history import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi new file mode 100644 index 0000000..1f0fc93 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi @@ -0,0 +1,11 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List, Optional, Union +from ..types import IUriResolutionStep + +CleanResolutionStep = List[Union[str, "CleanResolutionStep"]] +def build_clean_uri_history(history: List[IUriResolutionStep], depth: Optional[int] = ...) -> CleanResolutionStep: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi new file mode 100644 index 0000000..e1c26d5 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi @@ -0,0 +1,18 @@ +""" +This type stub file was generated by pyright. +""" + +from .client import * +from .file_reader import * +from .invoke import * +from .uri import * +from .env import * +from .uri_package_wrapper import * +from .uri_resolution_context import * +from .uri_resolution_step import * +from .uri_resolver import * +from .uri_resolver_handler import * +from .wasm_package import * +from .wrap_package import * +from .wrapper import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi new file mode 100644 index 0000000..d1a2ab0 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi @@ -0,0 +1,60 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import abstractmethod +from dataclasses import dataclass +from typing import Dict, List, Optional, Union +from polywrap_manifest import AnyWrapManifest, DeserializeManifestOptions +from polywrap_result import Result +from .env import Env +from .invoke import Invoker +from .uri import Uri +from .uri_resolver import IUriResolver +from .uri_resolver_handler import UriResolverHandler + +@dataclass(slots=True, kw_only=True) +class ClientConfig: + envs: Dict[Uri, Env] = ... + interfaces: Dict[Uri, List[Uri]] = ... + resolver: IUriResolver + + +@dataclass(slots=True, kw_only=True) +class GetFileOptions: + path: str + encoding: Optional[str] = ... + + +@dataclass(slots=True, kw_only=True) +class GetManifestOptions(DeserializeManifestOptions): + ... + + +class Client(Invoker, UriResolverHandler): + @abstractmethod + def get_interfaces(self) -> Dict[Uri, List[Uri]]: + ... + + @abstractmethod + def get_envs(self) -> Dict[Uri, Env]: + ... + + @abstractmethod + def get_env_by_uri(self, uri: Uri) -> Union[Env, None]: + ... + + @abstractmethod + def get_uri_resolver(self) -> IUriResolver: + ... + + @abstractmethod + async def get_file(self, uri: Uri, options: GetFileOptions) -> Result[Union[bytes, str]]: + ... + + @abstractmethod + async def get_manifest(self, uri: Uri, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi new file mode 100644 index 0000000..2d02a65 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi @@ -0,0 +1,7 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any, Dict + +Env = Dict[str, Any] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi new file mode 100644 index 0000000..946a80d --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi @@ -0,0 +1,14 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from polywrap_result import Result + +class IFileReader(ABC): + @abstractmethod + async def read_file(self, file_path: str) -> Result[bytes]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi new file mode 100644 index 0000000..59c615a --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi @@ -0,0 +1,67 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from polywrap_result import Result +from .env import Env +from .uri import Uri +from .uri_resolution_context import IUriResolutionContext + +@dataclass(slots=True, kw_only=True) +class InvokeOptions: + """ + Options required for a wrapper invocation. + + Args: + uri: Uri of the wrapper + method: Method to be executed + args: Arguments for the method, structured as a dictionary + config: Override the client's config for all invokes within this invoke. + context_id: Invoke id used to track query context data set internally. + """ + uri: Uri + method: str + args: Optional[Union[Dict[str, Any], bytes]] = ... + env: Optional[Env] = ... + resolution_context: Optional[IUriResolutionContext] = ... + + +@dataclass(slots=True, kw_only=True) +class InvocableResult: + """ + Result of a wrapper invocation + + Args: + data: Invoke result data. The type of this value is the return type of the method. + encoded: It will be set true if result is encoded + """ + result: Optional[Any] = ... + encoded: Optional[bool] = ... + + +@dataclass(slots=True, kw_only=True) +class InvokerOptions(InvokeOptions): + encode_result: Optional[bool] = ... + + +class Invoker(ABC): + @abstractmethod + async def invoke(self, options: InvokerOptions) -> Result[Any]: + ... + + @abstractmethod + def get_implementations(self, uri: Uri) -> Result[Union[List[Uri], None]]: + ... + + + +class Invocable(ABC): + @abstractmethod + async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[InvocableResult]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi new file mode 100644 index 0000000..5371344 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi @@ -0,0 +1,81 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from functools import total_ordering +from typing import Any, Optional, Tuple, Union + +@dataclass(slots=True, kw_only=True) +class UriConfig: + """URI configuration.""" + authority: str + path: str + uri: str + ... + + +@total_ordering +class Uri: + """ + A Polywrap URI. + + Some examples of valid URIs are: + wrap://ipfs/QmHASH + wrap://ens/sub.dimain.eth + wrap://fs/directory/file.txt + wrap://uns/domain.crypto + Breaking down the various parts of the URI, as it applies + to [the URI standard](https://tools.ietf.org/html/rfc3986#section-3): + **wrap://** - URI Scheme: differentiates Polywrap URIs. + **ipfs/** - URI Authority: allows the Polywrap URI resolution algorithm to determine an authoritative URI resolver. + **sub.domain.eth** - URI Path: tells the Authority where the API resides. + """ + def __init__(self, uri: str) -> None: + ... + + def __str__(self) -> str: + ... + + def __repr__(self) -> str: + ... + + def __hash__(self) -> int: + ... + + def __eq__(self, b: object) -> bool: + ... + + def __lt__(self, b: Uri) -> bool: + ... + + @property + def authority(self) -> str: + ... + + @property + def path(self) -> str: + ... + + @property + def uri(self) -> str: + ... + + @staticmethod + def equals(a: Uri, b: Uri) -> bool: + ... + + @staticmethod + def is_uri(value: Any) -> bool: + ... + + @staticmethod + def is_valid_uri(uri: str, parsed: Optional[UriConfig] = ...) -> Tuple[Union[UriConfig, None], bool]: + ... + + @staticmethod + def parse_uri(uri: str) -> UriConfig: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi new file mode 100644 index 0000000..619b7e1 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi @@ -0,0 +1,10 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Union +from .uri import Uri +from .wrap_package import IWrapPackage +from .wrapper import Wrapper + +UriPackageOrWrapper = Union[Uri, Wrapper, IWrapPackage] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi new file mode 100644 index 0000000..90cb7ff --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi @@ -0,0 +1,44 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from typing import List +from .uri import Uri +from .uri_resolution_step import IUriResolutionStep + +class IUriResolutionContext(ABC): + @abstractmethod + def is_resolving(self, uri: Uri) -> bool: + ... + + @abstractmethod + def start_resolving(self, uri: Uri) -> None: + ... + + @abstractmethod + def stop_resolving(self, uri: Uri) -> None: + ... + + @abstractmethod + def track_step(self, step: IUriResolutionStep) -> None: + ... + + @abstractmethod + def get_history(self) -> List[IUriResolutionStep]: + ... + + @abstractmethod + def get_resolution_path(self) -> List[Uri]: + ... + + @abstractmethod + def create_sub_history_context(self) -> IUriResolutionContext: + ... + + @abstractmethod + def create_sub_context(self) -> IUriResolutionContext: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi new file mode 100644 index 0000000..226d83f --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi @@ -0,0 +1,20 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from typing import List, Optional, TYPE_CHECKING +from polywrap_result import Result +from .uri import Uri +from .uri_package_wrapper import UriPackageOrWrapper + +if TYPE_CHECKING: + ... +@dataclass(slots=True, kw_only=True) +class IUriResolutionStep: + source_uri: Uri + result: Result[UriPackageOrWrapper] + description: Optional[str] = ... + sub_history: Optional[List[IUriResolutionStep]] = ... + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi new file mode 100644 index 0000000..3cc6024 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi @@ -0,0 +1,35 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import Optional, TYPE_CHECKING +from polywrap_result import Result +from .uri import Uri +from .uri_resolution_context import IUriResolutionContext +from .client import Client +from .uri_package_wrapper import UriPackageOrWrapper + +if TYPE_CHECKING: + ... +@dataclass(slots=True, kw_only=True) +class TryResolveUriOptions: + """ + Args: + no_cache_read: If set to true, the resolveUri function will not use the cache to resolve the uri. + no_cache_write: If set to true, the resolveUri function will not cache the results + config: Override the client's config for all resolutions. + context_id: Id used to track context data set internally. + """ + uri: Uri + resolution_context: Optional[IUriResolutionContext] = ... + + +class IUriResolver(ABC): + @abstractmethod + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi new file mode 100644 index 0000000..3ec6cea --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING +from polywrap_result import Result +from .uri_resolver import TryResolveUriOptions +from .uri_package_wrapper import UriPackageOrWrapper + +if TYPE_CHECKING: + ... +class UriResolverHandler(ABC): + @abstractmethod + async def try_resolve_uri(self, options: TryResolveUriOptions) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi new file mode 100644 index 0000000..4de7f1f --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi @@ -0,0 +1,15 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from polywrap_result import Result +from .wrap_package import IWrapPackage + +class IWasmPackage(IWrapPackage, ABC): + @abstractmethod + async def get_wasm_module(self) -> Result[bytes]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi new file mode 100644 index 0000000..72015a0 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi @@ -0,0 +1,22 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from typing import Optional +from polywrap_manifest import AnyWrapManifest +from polywrap_result import Result +from .client import GetManifestOptions +from .wrapper import Wrapper + +class IWrapPackage(ABC): + @abstractmethod + async def create_wrapper(self) -> Result[Wrapper]: + ... + + @abstractmethod + async def get_manifest(self, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi new file mode 100644 index 0000000..4a05539 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi @@ -0,0 +1,34 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import abstractmethod +from typing import Any, Dict, Union +from polywrap_manifest import AnyWrapManifest +from polywrap_result import Result +from .client import GetFileOptions +from .invoke import Invocable, InvokeOptions, Invoker + +class Wrapper(Invocable): + """ + Invoke the Wrapper based on the provided [[InvokeOptions]] + + Args: + options: Options for this invocation. + client: The client instance requesting this invocation. This client will be used for any sub-invokes that occur. + """ + @abstractmethod + async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[Any]: + ... + + @abstractmethod + async def get_file(self, options: GetFileOptions) -> Result[Union[str, bytes]]: + ... + + @abstractmethod + def get_manifest(self) -> Result[AnyWrapManifest]: + ... + + + +WrapperCache = Dict[str, Wrapper] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi new file mode 100644 index 0000000..aacd917 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi @@ -0,0 +1,6 @@ +""" +This type stub file was generated by pyright. +""" + +from .uri_resolution_context import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi new file mode 100644 index 0000000..bd999af --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi @@ -0,0 +1,41 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List, Optional, Set +from ..types import IUriResolutionContext, IUriResolutionStep, Uri + +class UriResolutionContext(IUriResolutionContext): + resolving_uri_set: Set[Uri] + resolution_path: List[Uri] + history: List[IUriResolutionStep] + __slots__ = ... + def __init__(self, resolving_uri_set: Optional[Set[Uri]] = ..., resolution_path: Optional[List[Uri]] = ..., history: Optional[List[IUriResolutionStep]] = ...) -> None: + ... + + def is_resolving(self, uri: Uri) -> bool: + ... + + def start_resolving(self, uri: Uri) -> None: + ... + + def stop_resolving(self, uri: Uri) -> None: + ... + + def track_step(self, step: IUriResolutionStep) -> None: + ... + + def get_history(self) -> List[IUriResolutionStep]: + ... + + def get_resolution_path(self) -> List[Uri]: + ... + + def create_sub_history_context(self) -> UriResolutionContext: + ... + + def create_sub_context(self) -> UriResolutionContext: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi new file mode 100644 index 0000000..b2a379f --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi @@ -0,0 +1,9 @@ +""" +This type stub file was generated by pyright. +""" + +from .get_env_from_uri_history import * +from .init_wrapper import * +from .instance_of import * +from .maybe_async import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi new file mode 100644 index 0000000..b75c045 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi @@ -0,0 +1,10 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any, Dict, List, Union +from ..types import Client, Uri + +def get_env_from_uri_history(uri_history: List[Uri], client: Client) -> Union[Dict[str, Any], None]: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi new file mode 100644 index 0000000..87c450a --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi @@ -0,0 +1,10 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any +from ..types import Wrapper + +async def init_wrapper(packageOrWrapper: Any) -> Wrapper: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi new file mode 100644 index 0000000..84ac59e --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi @@ -0,0 +1,9 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any + +def instance_of(obj: Any, cls: Any): # -> bool: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi new file mode 100644 index 0000000..e6e6f0b --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi @@ -0,0 +1,12 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any, Awaitable, Callable, Optional, Union + +def is_coroutine(test: Optional[Union[Awaitable[Any], Any]] = ...) -> bool: + ... + +async def execute_maybe_async_function(func: Callable[..., Any], *args: Any) -> Any: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi new file mode 100644 index 0000000..fa27423 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi @@ -0,0 +1,7 @@ +""" +This type stub file was generated by pyright. +""" + +from .deserialize import * +from .manifest import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi new file mode 100644 index 0000000..5fd1f32 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi @@ -0,0 +1,16 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Optional +from polywrap_result import Result +from .manifest import * + +""" +This file was automatically generated by scripts/templates/deserialize.py.jinja2. +DO NOT MODIFY IT BY HAND. Instead, modify scripts/templates/deserialize.py.jinja2, +and run python ./scripts/generate.py to regenerate this file. +""" +def deserialize_wrap_manifest(manifest: bytes, options: Optional[DeserializeManifestOptions] = ...) -> Result[AnyWrapManifest]: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi new file mode 100644 index 0000000..87aefe5 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi @@ -0,0 +1,44 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from enum import Enum +from .wrap_0_1 import Abi as WrapAbi_0_1_0_1, WrapManifest as WrapManifest_0_1 + +""" +This file was automatically generated by scripts/templates/__init__.py.jinja2. +DO NOT MODIFY IT BY HAND. Instead, modify scripts/templates/__init__.py.jinja2, +and run python ./scripts/generate.py to regenerate this file. +""" +@dataclass(slots=True, kw_only=True) +class DeserializeManifestOptions: + no_validate: Optional[bool] = ... + + +@dataclass(slots=True, kw_only=True) +class serializeManifestOptions: + no_validate: Optional[bool] = ... + + +class WrapManifestVersions(Enum): + VERSION_0_1 = ... + def __new__(cls, value: int, *aliases: str) -> WrapManifestVersions: + ... + + + +class WrapManifestAbiVersions(Enum): + VERSION_0_1 = ... + + +class WrapAbiVersions(Enum): + VERSION_0_1 = ... + + +AnyWrapManifest = WrapManifest_0_1 +AnyWrapAbi = WrapAbi_0_1_0_1 +WrapManifest = WrapManifest_0_1 +WrapAbi = WrapAbi_0_1_0_1 +latest_wrap_manifest_version = ... +latest_wrap_abi_version = ... diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi new file mode 100644 index 0000000..c7bf7d5 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi @@ -0,0 +1,209 @@ +""" +This type stub file was generated by pyright. +""" + +from enum import Enum +from typing import List, Optional, Union +from pydantic import BaseModel + +class Version(Enum): + """ + WRAP Standard Version + """ + VERSION_0_1_0 = ... + VERSION_0_1 = ... + + +class Type(Enum): + """ + Wrapper Package Type + """ + WASM = ... + INTERFACE = ... + PLUGIN = ... + + +class Env(BaseModel): + required: Optional[bool] = ... + + +class GetImplementations(BaseModel): + enabled: bool + ... + + +class CapabilityDefinition(BaseModel): + get_implementations: Optional[GetImplementations] = ... + + +class ImportedDefinition(BaseModel): + uri: str + namespace: str + native_type: str = ... + + +class WithKind(BaseModel): + kind: float + ... + + +class WithComment(BaseModel): + comment: Optional[str] = ... + + +class GenericDefinition(WithKind): + type: Union[str, Enum, None] + name: Optional[str] = ... + required: Optional[bool] = ... + + +class ScalarType(Enum): + U_INT = ... + U_INT8 = ... + U_INT16 = ... + U_INT32 = ... + INT = ... + INT8 = ... + INT16 = ... + INT32 = ... + STRING = ... + BOOLEAN = ... + BYTES = ... + BIG_INT = ... + BIG_NUMBER = ... + JSON = ... + + +class ScalarDefinition(GenericDefinition): + type: ScalarType + ... + + +class MapKeyType(Enum): + U_INT = ... + U_INT8 = ... + U_INT16 = ... + U_INT32 = ... + INT = ... + INT8 = ... + INT16 = ... + INT32 = ... + STRING = ... + + +class ObjectRef(GenericDefinition): + ... + + +class EnumRef(GenericDefinition): + ... + + +class UnresolvedObjectOrEnumRef(GenericDefinition): + ... + + +class ImportedModuleRef(BaseModel): + type: Optional[str] = ... + + +class InterfaceImplementedDefinition(GenericDefinition): + ... + + +class EnumDefinition(GenericDefinition, WithComment): + constants: Optional[List[str]] = ... + + +class InterfaceDefinition(GenericDefinition, ImportedDefinition): + capabilities: Optional[CapabilityDefinition] = ... + + +class ImportedEnumDefinition(EnumDefinition, ImportedDefinition): + ... + + +class WrapManifest(BaseModel): + class Config: + extra = ... + + + version: Version = ... + type: Type = ... + name: str = ... + abi: Abi = ... + + +class Abi(BaseModel): + version: Optional[str] = ... + object_types: Optional[List[ObjectDefinition]] = ... + module_type: Optional[ModuleDefinition] = ... + enum_types: Optional[List[EnumDefinition]] = ... + interface_types: Optional[List[InterfaceDefinition]] = ... + imported_object_types: Optional[List[ImportedObjectDefinition]] = ... + imported_module_types: Optional[List[ImportedModuleDefinition]] = ... + imported_enum_types: Optional[List[ImportedEnumDefinition]] = ... + imported_env_types: Optional[List[ImportedEnvDefinition]] = ... + env_type: Optional[EnvDefinition] = ... + + +class ObjectDefinition(GenericDefinition, WithComment): + properties: Optional[List[PropertyDefinition]] = ... + interfaces: Optional[List[InterfaceImplementedDefinition]] = ... + + +class ModuleDefinition(GenericDefinition, WithComment): + methods: Optional[List[MethodDefinition]] = ... + imports: Optional[List[ImportedModuleRef]] = ... + interfaces: Optional[List[InterfaceImplementedDefinition]] = ... + + +class MethodDefinition(GenericDefinition, WithComment): + arguments: Optional[List[PropertyDefinition]] = ... + env: Optional[Env] = ... + return_: Optional[PropertyDefinition] = ... + + +class ImportedModuleDefinition(GenericDefinition, ImportedDefinition, WithComment): + methods: Optional[List[MethodDefinition]] = ... + is_interface: Optional[bool] = ... + + +class AnyDefinition(GenericDefinition): + array: Optional[ArrayDefinition] = ... + scalar: Optional[ScalarDefinition] = ... + map: Optional[MapDefinition] = ... + object: Optional[ObjectRef] = ... + enum: Optional[EnumRef] = ... + unresolved_object_or_enum: Optional[UnresolvedObjectOrEnumRef] = ... + + +class EnvDefinition(ObjectDefinition): + ... + + +class ImportedObjectDefinition(ObjectDefinition, ImportedDefinition, WithComment): + ... + + +class PropertyDefinition(WithComment, AnyDefinition): + ... + + +class ArrayDefinition(AnyDefinition): + item: Optional[GenericDefinition] = ... + + +class MapKeyDefinition(AnyDefinition): + type: Optional[MapKeyType] = ... + + +class MapDefinition(AnyDefinition, WithComment): + key: Optional[MapKeyDefinition] = ... + value: Optional[GenericDefinition] = ... + + +class ImportedEnvDefinition(ImportedObjectDefinition): + ... + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi new file mode 100644 index 0000000..5052e48 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from .module import * +from .package import * +from .wrapper import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi new file mode 100644 index 0000000..3f83614 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi @@ -0,0 +1,25 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC +from typing import Any, Dict, Generic, TypeVar +from polywrap_core import Invoker +from polywrap_result import Result + +TConfig = TypeVar("TConfig") +TResult = TypeVar("TResult") +class PluginModule(Generic[TConfig, TResult], ABC): + env: Dict[str, Any] + config: TConfig + def __init__(self, config: TConfig) -> None: + ... + + def set_env(self, env: Dict[str, Any]) -> None: + ... + + async def __wrap_invoke__(self, method: str, args: Dict[str, Any], client: Invoker) -> Result[TResult]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi new file mode 100644 index 0000000..3b2f7b3 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi @@ -0,0 +1,24 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Generic, Optional +from polywrap_core import GetManifestOptions, IWrapPackage, Wrapper +from polywrap_manifest import AnyWrapManifest +from polywrap_result import Result +from .module import PluginModule, TConfig, TResult + +class PluginPackage(Generic[TConfig, TResult], IWrapPackage): + module: PluginModule[TConfig, TResult] + manifest: AnyWrapManifest + def __init__(self, module: PluginModule[TConfig, TResult], manifest: AnyWrapManifest) -> None: + ... + + async def create_wrapper(self) -> Result[Wrapper]: + ... + + async def get_manifest(self, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi new file mode 100644 index 0000000..7ed7edc --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi @@ -0,0 +1,26 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Generic, Union +from polywrap_core import GetFileOptions, InvocableResult, InvokeOptions, Invoker, Wrapper +from polywrap_manifest import AnyWrapManifest +from polywrap_result import Result +from .module import PluginModule, TConfig, TResult + +class PluginWrapper(Wrapper, Generic[TConfig, TResult]): + module: PluginModule[TConfig, TResult] + def __init__(self, module: PluginModule[TConfig, TResult], manifest: AnyWrapManifest) -> None: + ... + + async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[InvocableResult]: + ... + + async def get_file(self, options: GetFileOptions) -> Result[Union[str, bytes]]: + ... + + def get_manifest(self) -> Result[AnyWrapManifest]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi new file mode 100644 index 0000000..d704a49 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi @@ -0,0 +1,322 @@ +""" +This type stub file was generated by pyright. +""" + +import inspect +import sys +import types +from __future__ import annotations +from typing import Any, Callable, Generic, NoReturn, ParamSpec, TypeVar, Union, cast, overload +from typing_extensions import ParamSpec + +""" +A simple Rust like Result type for Python 3. + +This project has been forked from the https://github.com/rustedpy/result. +""" +if sys.version_info[: 2] >= (3, 10): + ... +else: + ... +T = TypeVar("T", covariant=True) +U = TypeVar("U") +F = TypeVar("F") +P = ... +R = TypeVar("R") +TBE = TypeVar("TBE", bound=BaseException) +class Ok(Generic[T]): + """ + A value that indicates success and which stores arbitrary data for the return value. + """ + _value: T + __match_args__ = ... + __slots__ = ... + @overload + def __init__(self) -> None: + ... + + @overload + def __init__(self, value: T) -> None: + ... + + def __init__(self, value: Any = ...) -> None: + ... + + def __repr__(self) -> str: + ... + + def __eq__(self, other: Any) -> bool: + ... + + def __ne__(self, other: Any) -> bool: + ... + + def __hash__(self) -> int: + ... + + def is_ok(self) -> bool: + ... + + def is_err(self) -> bool: + ... + + def ok(self) -> T: + """ + Return the value. + """ + ... + + def err(self) -> None: + """ + Return `None`. + """ + ... + + @property + def value(self) -> T: + """ + Return the inner value. + """ + ... + + def expect(self, _message: str) -> T: + """ + Return the value. + """ + ... + + def expect_err(self, message: str) -> NoReturn: + """ + Raise an UnwrapError since this type is `Ok` + """ + ... + + def unwrap(self) -> T: + """ + Return the value. + """ + ... + + def unwrap_err(self) -> NoReturn: + """ + Raise an UnwrapError since this type is `Ok` + """ + ... + + def unwrap_or(self, _default: U) -> T: + """ + Return the value. + """ + ... + + def unwrap_or_else(self, op: Callable[[Exception], T]) -> T: + """ + Return the value. + """ + ... + + def unwrap_or_raise(self) -> T: + """ + Return the value. + """ + ... + + def map(self, op: Callable[[T], U]) -> Result[U]: + """ + The contained result is `Ok`, so return `Ok` with original value mapped to + a new value using the passed in function. + """ + ... + + def map_or(self, default: U, op: Callable[[T], U]) -> U: + """ + The contained result is `Ok`, so return the original value mapped to a new + value using the passed in function. + """ + ... + + def map_or_else(self, default_op: Callable[[], U], op: Callable[[T], U]) -> U: + """ + The contained result is `Ok`, so return original value mapped to + a new value using the passed in `op` function. + """ + ... + + def map_err(self, op: Callable[[Exception], F]) -> Result[T]: + """ + The contained result is `Ok`, so return `Ok` with the original value + """ + ... + + def and_then(self, op: Callable[[T], Result[U]]) -> Result[U]: + """ + The contained result is `Ok`, so return the result of `op` with the + original value passed in + """ + ... + + def or_else(self, op: Callable[[Exception], Result[T]]) -> Result[T]: + """ + The contained result is `Ok`, so return `Ok` with the original value + """ + ... + + + +class Err: + """ + A value that signifies failure and which stores arbitrary data for the error. + """ + __match_args__ = ... + __slots__ = ... + def __init__(self, value: Exception) -> None: + ... + + @classmethod + def from_str(cls, value: str) -> Err: + ... + + def __repr__(self) -> str: + ... + + def __eq__(self, other: Any) -> bool: + ... + + def __ne__(self, other: Any) -> bool: + ... + + def __hash__(self) -> int: + ... + + def is_ok(self) -> bool: + ... + + def is_err(self) -> bool: + ... + + def ok(self) -> None: + """ + Return `None`. + """ + ... + + def err(self) -> Exception: + """ + Return the error. + """ + ... + + @property + def value(self) -> Exception: + """ + Return the inner value. + """ + ... + + def expect(self, message: str) -> NoReturn: + """ + Raises an `UnwrapError`. + """ + ... + + def expect_err(self, _message: str) -> Exception: + """ + Return the inner value + """ + ... + + def unwrap(self) -> NoReturn: + """ + Raises an `UnwrapError`. + """ + ... + + def unwrap_err(self) -> Exception: + """ + Return the inner value + """ + ... + + def unwrap_or(self, default: U) -> U: + """ + Return `default`. + """ + ... + + def unwrap_or_else(self, op: Callable[[Exception], T]) -> T: + """ + The contained result is ``Err``, so return the result of applying + ``op`` to the error value. + """ + ... + + def unwrap_or_raise(self) -> NoReturn: + """ + The contained result is ``Err``, so raise the exception with the value. + """ + ... + + def map(self, op: Callable[[T], U]) -> Result[U]: + """ + Return `Err` with the same value + """ + ... + + def map_or(self, default: U, op: Callable[[T], U]) -> U: + """ + Return the default value + """ + ... + + def map_or_else(self, default_op: Callable[[], U], op: Callable[[T], U]) -> U: + """ + Return the result of the default operation + """ + ... + + def map_err(self, op: Callable[[Exception], Exception]) -> Result[T]: + """ + The contained result is `Err`, so return `Err` with original error mapped to + a new value using the passed in function. + """ + ... + + def and_then(self, op: Callable[[T], Result[U]]) -> Result[U]: + """ + The contained result is `Err`, so return `Err` with the original value + """ + ... + + def or_else(self, op: Callable[[Exception], Result[T]]) -> Result[T]: + """ + The contained result is `Err`, so return the result of `op` with the + original value passed in + """ + ... + + + +Result = Union[Ok[T], Err] +class UnwrapError(Exception): + """ + Exception raised from ``.unwrap_<...>`` and ``.expect_<...>`` calls. + + The original ``Result`` can be accessed via the ``.result`` attribute, but + this is not intended for regular use, as type information is lost: + ``UnwrapError`` doesn't know about both ``T`` and ``E``, since it's raised + from ``Ok()`` or ``Err()`` which only knows about either ``T`` or ``E``, + not both. + """ + _result: Result[Any] + def __init__(self, result: Result[Any], message: str) -> None: + ... + + @property + def result(self) -> Result[Any]: + """ + Returns the original result. + """ + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi new file mode 100644 index 0000000..c7c9676 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi @@ -0,0 +1,16 @@ +""" +This type stub file was generated by pyright. +""" + +from .types import * +from .abc import * +from .errors import * +from .helpers import * +from .legacy import * +from .cache import * +from .recursive_resolver import * +from .static_resolver import * +from .redirect_resolver import * +from .package_resolver import * +from .wrapper_resolver import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi new file mode 100644 index 0000000..ad874c8 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from ..cache.wrapper_cache import * +from .resolver_with_history import * +from .uri_resolver_aggregator import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi new file mode 100644 index 0000000..cdbf5a8 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi @@ -0,0 +1,17 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri + +class IResolverWithHistory(IUriResolver, ABC): + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext): # -> Result[UriPackageOrWrapper]: + ... + + @abstractmethod + def get_step_description(self) -> str: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi new file mode 100644 index 0000000..a3fa29d --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi @@ -0,0 +1,26 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from typing import List +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_result import Result + +class IUriResolverAggregator(IUriResolver, ABC): + @abstractmethod + async def get_uri_resolvers(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[List[IUriResolver]]: + ... + + @abstractmethod + def get_step_description(self) -> str: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + async def try_resolve_uri_with_resolvers(self, uri: Uri, client: Client, resolvers: List[IUriResolver], resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi new file mode 100644 index 0000000..0ef1cef --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from .cache_resolver import * +from .wrapper_cache import * +from .wrapper_cache_interface import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi new file mode 100644 index 0000000..5679919 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi @@ -0,0 +1,33 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Any, Optional +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_manifest import DeserializeManifestOptions +from polywrap_result import Result +from .wrapper_cache_interface import IWrapperCache + +class CacheResolverOptions: + deserialize_manifest_options: DeserializeManifestOptions + end_on_redirect: Optional[bool] + ... + + +class PackageToWrapperCacheResolver: + __slots__ = ... + name: str + resolver_to_cache: IUriResolver + cache: IWrapperCache + options: CacheResolverOptions + def __init__(self, resolver_to_cache: IUriResolver, cache: IWrapperCache, options: CacheResolverOptions) -> None: + ... + + def get_options(self) -> Any: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi new file mode 100644 index 0000000..fd7279d --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi @@ -0,0 +1,21 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Dict, Union +from polywrap_core import Uri, Wrapper +from .wrapper_cache_interface import IWrapperCache + +class WrapperCache(IWrapperCache): + map: Dict[Uri, Wrapper] + def __init__(self) -> None: + ... + + def get(self, uri: Uri) -> Union[Wrapper, None]: + ... + + def set(self, uri: Uri, wrapper: Wrapper) -> None: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi new file mode 100644 index 0000000..fdba241 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from abc import ABC, abstractmethod +from typing import Union +from polywrap_core import Uri, Wrapper + +class IWrapperCache(ABC): + @abstractmethod + def get(self, uri: Uri) -> Union[Wrapper, None]: + ... + + @abstractmethod + def set(self, uri: Uri, wrapper: Wrapper) -> None: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi new file mode 100644 index 0000000..15fea92 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi @@ -0,0 +1,6 @@ +""" +This type stub file was generated by pyright. +""" + +from .infinite_loop_error import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi new file mode 100644 index 0000000..73aa117 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi @@ -0,0 +1,13 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List +from polywrap_core import IUriResolutionStep, Uri + +class InfiniteLoopError(Exception): + def __init__(self, uri: Uri, history: List[IUriResolutionStep]) -> None: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi new file mode 100644 index 0000000..57e134e --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from .resolver_like_to_resolver import * +from .get_uri_resolution_path import * +from .resolver_with_loop_guard import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi new file mode 100644 index 0000000..5a3728f --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi @@ -0,0 +1,10 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List +from polywrap_core import IUriResolutionStep + +def get_uri_resolution_path(history: List[IUriResolutionStep]) -> List[IUriResolutionStep]: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi new file mode 100644 index 0000000..65ae23c --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi @@ -0,0 +1,11 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Optional +from polywrap_core import IUriResolver +from ..types import UriResolverLike + +def resolver_like_to_resolver(resolver_like: UriResolverLike, resolver_name: Optional[str] = ...) -> IUriResolver: + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi new file mode 100644 index 0000000..006bc27 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi @@ -0,0 +1,4 @@ +""" +This type stub file was generated by pyright. +""" + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi new file mode 100644 index 0000000..8d6b9c7 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from .base_resolver import * +from .fs_resolver import * +from .redirect_resolver import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi new file mode 100644 index 0000000..853fc88 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi @@ -0,0 +1,21 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Dict +from polywrap_core import Client, IFileReader, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_result import Result +from .fs_resolver import FsUriResolver +from .redirect_resolver import RedirectUriResolver + +class BaseUriResolver(IUriResolver): + _fs_resolver: FsUriResolver + _redirect_resolver: RedirectUriResolver + def __init__(self, file_reader: IFileReader, redirects: Dict[Uri, Uri]) -> None: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi new file mode 100644 index 0000000..ec10da9 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi @@ -0,0 +1,23 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import Client, IFileReader, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_result import Result + +class SimpleFileReader(IFileReader): + async def read_file(self, file_path: str) -> Result[bytes]: + ... + + + +class FsUriResolver(IUriResolver): + file_reader: IFileReader + def __init__(self, file_reader: IFileReader) -> None: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi new file mode 100644 index 0000000..36deb47 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi @@ -0,0 +1,18 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Dict +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri +from polywrap_result import Result + +class RedirectUriResolver(IUriResolver): + _redirects: Dict[Uri, Uri] + def __init__(self, redirects: Dict[Uri, Uri]) -> None: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[Uri]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi new file mode 100644 index 0000000..60dc4a6 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import IWrapPackage, Uri +from .abc import IResolverWithHistory + +class PackageResolver(IResolverWithHistory): + __slots__ = ... + uri: Uri + wrap_package: IWrapPackage + def __init__(self, uri: Uri, wrap_package: IWrapPackage) -> None: + ... + + def get_step_description(self) -> str: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi new file mode 100644 index 0000000..80e6809 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi @@ -0,0 +1,18 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_result import Result + +class RecursiveResolver(IUriResolver): + __slots__ = ... + resolver: IUriResolver + def __init__(self, resolver: IUriResolver) -> None: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi new file mode 100644 index 0000000..58f5359 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import Uri +from .abc.resolver_with_history import IResolverWithHistory + +class RedirectResolver(IResolverWithHistory): + __slots__ = ... + from_uri: Uri + to_uri: Uri + def __init__(self, from_uri: Uri, to_uri: Uri) -> None: + ... + + def get_step_description(self) -> str: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi new file mode 100644 index 0000000..f684e8b --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper +from polywrap_result import Result +from .types import StaticResolverLike + +class StaticResolver(IUriResolver): + __slots__ = ... + uri_map: StaticResolverLike + def __init__(self, uri_map: StaticResolverLike) -> None: + ... + + async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi new file mode 100644 index 0000000..5663411 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi @@ -0,0 +1,10 @@ +""" +This type stub file was generated by pyright. +""" + +from .static_resolver_like import * +from .uri_package import * +from .uri_redirect import * +from .uri_resolver_like import * +from .uri_wrapper import * + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi new file mode 100644 index 0000000..4930107 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi @@ -0,0 +1,8 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Dict +from polywrap_core import Uri, UriPackageOrWrapper + +StaticResolverLike = Dict[Uri, UriPackageOrWrapper] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi new file mode 100644 index 0000000..478c9d1 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi @@ -0,0 +1,14 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from polywrap_core import IWrapPackage, Uri + +@dataclass(slots=True, kw_only=True) +class UriPackage: + uri: Uri + package: IWrapPackage + ... + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi new file mode 100644 index 0000000..6fbe658 --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi @@ -0,0 +1,14 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from polywrap_core import Uri + +@dataclass(slots=True, kw_only=True) +class UriRedirect: + from_uri: Uri + to_uri: Uri + ... + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi new file mode 100644 index 0000000..2db10fa --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi @@ -0,0 +1,12 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List, Union +from polywrap_core import IUriResolver +from .static_resolver_like import StaticResolverLike +from .uri_package import UriPackage +from .uri_redirect import UriRedirect +from .uri_wrapper import UriWrapper + +UriResolverLike = Union[StaticResolverLike, UriRedirect, UriPackage, UriWrapper, IUriResolver, List["UriResolverLike"],] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi new file mode 100644 index 0000000..0f4d03d --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi @@ -0,0 +1,14 @@ +""" +This type stub file was generated by pyright. +""" + +from dataclasses import dataclass +from polywrap_core import Uri, Wrapper + +@dataclass(slots=True, kw_only=True) +class UriWrapper: + uri: Uri + wrapper: Wrapper + ... + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi new file mode 100644 index 0000000..c410a4f --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi @@ -0,0 +1,24 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import List, Optional +from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri +from polywrap_result import Result +from .abc.uri_resolver_aggregator import IUriResolverAggregator + +class UriResolverAggregator(IUriResolverAggregator): + __slots__ = ... + resolvers: List[IUriResolver] + name: Optional[str] + def __init__(self, resolvers: List[IUriResolver], name: Optional[str] = ...) -> None: + ... + + def get_step_description(self) -> str: + ... + + async def get_uri_resolvers(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[List[IUriResolver]]: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi new file mode 100644 index 0000000..435d9bc --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi @@ -0,0 +1,19 @@ +""" +This type stub file was generated by pyright. +""" + +from polywrap_core import Uri, Wrapper +from .abc.resolver_with_history import IResolverWithHistory + +class WrapperResolver(IResolverWithHistory): + __slots__ = ... + uri: Uri + wrapper: Wrapper + def __init__(self, uri: Uri, wrapper: Wrapper) -> None: + ... + + def get_step_description(self) -> str: + ... + + + From 0c94f168bc8f16a60be71d97855fd579393460ea Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Sun, 5 Mar 2023 11:50:48 +0400 Subject: [PATCH 02/21] fix: issues --- .../py/polywrap-http-plugin/poetry.lock | 106 +++++++++--------- .../polywrap_http_plugin/__init__.py | 50 +++++++-- .../__pycache__/__init__.cpython-310.pyc | Bin 3928 -> 4479 bytes .../py/polywrap-http-plugin/pyproject.toml | 3 +- .../test_ipfs.cpython-310-pytest-7.2.1.pyc | Bin 2468 -> 2383 bytes .../test_plugin.cpython-310-pytest-7.2.1.pyc | Bin 2223 -> 2226 bytes .../polywrap-http-plugin/tests/test_ipfs.py | 7 +- .../polywrap-http-plugin/tests/test_plugin.py | 14 --- .../typings/polywrap_msgpack/__init__.pyi | 90 +++++++++++++++ .../typings/polywrap_msgpack/generic_map.pyi | 33 ++++++ .../typings/polywrap_plugin/module.pyi | 2 +- .../typings/polywrap_plugin/package.pyi | 11 +- .../typings/polywrap_plugin/wrapper.pyi | 12 +- 13 files changed, 236 insertions(+), 92 deletions(-) create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/__init__.pyi create mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi diff --git a/implementations/py/polywrap-http-plugin/poetry.lock b/implementations/py/polywrap-http-plugin/poetry.lock index e010608..7f7ee26 100644 --- a/implementations/py/polywrap-http-plugin/poetry.lock +++ b/implementations/py/polywrap-http-plugin/poetry.lock @@ -492,22 +492,22 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "polywrap-client" -version = "0.1.0a4" +version = "0.1.0a11" description = "" -category = "dev" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_client-0.1.0a4-py3-none-any.whl", hash = "sha256:6eaf0820b9a955394341f6624ca481ba4d20a4a725fae8a2e4ea90c2ff2f3569"}, - {file = "polywrap_client-0.1.0a4.tar.gz", hash = "sha256:3aa2416ecc67cbb4d278c8fe7aa578bdd0a1dcaf0555dd8a496cc236c7ab9659"}, + {file = "polywrap_client-0.1.0a11-py3-none-any.whl", hash = "sha256:da8778a02ce0f9034d25a6aefa509efad184f28391a48190c8fe7f8feaac661f"}, + {file = "polywrap_client-0.1.0a11.tar.gz", hash = "sha256:bfdf10277e2bd2ce83a4c3b50a6f3551d55b672616474baf74f76e0746911933"}, ] [package.dependencies] -polywrap-core = "0.1.0a4" -polywrap-manifest = "0.1.0a4" -polywrap-msgpack = "0.1.0a4" -polywrap-result = "0.1.0a4" -polywrap-uri-resolvers = "0.1.0a4" +polywrap-core = "0.1.0a11" +polywrap-manifest = "0.1.0a11" +polywrap-msgpack = "0.1.0a11" +polywrap-result = "0.1.0a11" +polywrap-uri-resolvers = "0.1.0a11" pycryptodome = ">=3.14.1,<4.0.0" pysha3 = ">=1.0.2,<2.0.0" result = ">=0.8.0,<0.9.0" @@ -516,50 +516,50 @@ wasmtime = ">=1.0.1,<2.0.0" [[package]] name = "polywrap-core" -version = "0.1.0a4" +version = "0.1.0a11" description = "" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_core-0.1.0a4-py3-none-any.whl", hash = "sha256:0523078d8d667ffe9b25ff39b3926f08e4fd924611112df837b79e9c25bddb1c"}, - {file = "polywrap_core-0.1.0a4.tar.gz", hash = "sha256:8b7c0773822b8af615fd189247d7077c01e71de8b08c864d28b5824247eb9899"}, + {file = "polywrap_core-0.1.0a11-py3-none-any.whl", hash = "sha256:b2fcb703b52532d41008fa5edc21afba529312b45e3bc0700dabf74e0548c85d"}, + {file = "polywrap_core-0.1.0a11.tar.gz", hash = "sha256:581138a974cffeebf767d7c0d7740c846ee3b5c01efbac584232215ed41fc59b"}, ] [package.dependencies] gql = "3.4.0" graphql-core = ">=3.2.1,<4.0.0" -polywrap-manifest = "0.1.0a4" -polywrap-result = "0.1.0a4" +polywrap-manifest = "0.1.0a11" +polywrap-result = "0.1.0a11" pydantic = ">=1.10.2,<2.0.0" [[package]] name = "polywrap-manifest" -version = "0.1.0a4" +version = "0.1.0a11" description = "WRAP manifest" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_manifest-0.1.0a4-py3-none-any.whl", hash = "sha256:5b3625113847bfba80cfd86fff9b35f39f00dced66ea0e48c07694a67a20f2da"}, - {file = "polywrap_manifest-0.1.0a4.tar.gz", hash = "sha256:b3b47901fcd5a5f33e49214ee668e40d1d13b1328a64118f6c4e70aea564144b"}, + {file = "polywrap_manifest-0.1.0a11-py3-none-any.whl", hash = "sha256:e8f428ebcbcecd7481f96c5e789b8338010f17cb00ccd6e7d7619b59bab42da1"}, + {file = "polywrap_manifest-0.1.0a11.tar.gz", hash = "sha256:99f31417571a53e9f0de8ec1eeba2384cb8b10816bf17c05cd6b4f92708b976c"}, ] [package.dependencies] -polywrap-msgpack = "0.1.0a4" -polywrap-result = "0.1.0a4" +polywrap-msgpack = "0.1.0a11" +polywrap-result = "0.1.0a11" pydantic = ">=1.10.2,<2.0.0" [[package]] name = "polywrap-msgpack" -version = "0.1.0a4" +version = "0.1.0a11" description = "WRAP msgpack encoding" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_msgpack-0.1.0a4-py3-none-any.whl", hash = "sha256:d5c2c8760d061b4a1ba55af66cf7043c37734fc9675d6e456319ea00dde33752"}, - {file = "polywrap_msgpack-0.1.0a4.tar.gz", hash = "sha256:e3dbb63bde9185987e9b0c51380fa7e7f1714ec1dcb435bca1b6ae6f48b6c72c"}, + {file = "polywrap_msgpack-0.1.0a11-py3-none-any.whl", hash = "sha256:d18647b9d876a57abcde5142f65df542f8cea9d5fd723ef3d32f18fb5eda6845"}, + {file = "polywrap_msgpack-0.1.0a11.tar.gz", hash = "sha256:216f394d98ab3207094f43a13130b3317c2a51a2333d4887704b9a06fbad925a"}, ] [package.dependencies] @@ -567,69 +567,69 @@ msgpack = ">=1.0.4,<2.0.0" [[package]] name = "polywrap-plugin" -version = "0.1.0a4" +version = "0.1.0a11" description = "Plugin package" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_plugin-0.1.0a4-py3-none-any.whl", hash = "sha256:7dc1e5403d7e8d9af75e7a0e98c536bf2e5b82cf7633239b3d0be720a7d013ce"}, - {file = "polywrap_plugin-0.1.0a4.tar.gz", hash = "sha256:f0c9e4659a92f6d9188dc18e1c8205490fc9bc4b66cc736dcf4a8e69d4e15ae2"}, + {file = "polywrap_plugin-0.1.0a11-py3-none-any.whl", hash = "sha256:0a3c9f39d3ffc90fc03272a5eb54a65e2ecd363515603f3be71a2875c285dbfb"}, + {file = "polywrap_plugin-0.1.0a11.tar.gz", hash = "sha256:5feafd6d84583832c7f5294b26e9e2af86ec16cb71d6b5395a9ee54cd5485d07"}, ] [package.dependencies] -polywrap_core = "0.1.0a4" -polywrap_manifest = "0.1.0a4" -polywrap_msgpack = "0.1.0a4" -polywrap_result = "0.1.0a4" +polywrap_core = "0.1.0a11" +polywrap_manifest = "0.1.0a11" +polywrap_msgpack = "0.1.0a11" +polywrap_result = "0.1.0a11" [[package]] name = "polywrap-result" -version = "0.1.0a4" +version = "0.1.0a11" description = "Result object" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_result-0.1.0a4-py3-none-any.whl", hash = "sha256:794d278753a3fd6583d592e8e0d3d670177b11599195960ce39521bf3e2eb715"}, - {file = "polywrap_result-0.1.0a4.tar.gz", hash = "sha256:81c0b4e90958d6d773bd9d4dc6a3e3184ca11b32feb85ea231b0cdef07a5dd76"}, + {file = "polywrap_result-0.1.0a11-py3-none-any.whl", hash = "sha256:03675391244824a0ba4a681f6ed81b3260b68a3bdf90dcfaf5c5c7f9636c8cdc"}, + {file = "polywrap_result-0.1.0a11.tar.gz", hash = "sha256:90a5b0563eda73afb29360a46881aa90fda28222be8fdc30b40d774c5fe2f615"}, ] [[package]] name = "polywrap-uri-resolvers" -version = "0.1.0a4" +version = "0.1.0a11" description = "" -category = "dev" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_uri_resolvers-0.1.0a4-py3-none-any.whl", hash = "sha256:f7612c5ff87626b775937f34e47656328d504d7f70ec6eab19460571ae952d8e"}, - {file = "polywrap_uri_resolvers-0.1.0a4.tar.gz", hash = "sha256:f698f2cea4b99a4582f774c08924f3c00e7b1119cfa7e23c02ca784cb0e138c7"}, + {file = "polywrap_uri_resolvers-0.1.0a11-py3-none-any.whl", hash = "sha256:3454974d73cb730feb596355a000009819196d50d093d1b51c22afc1e4e71273"}, + {file = "polywrap_uri_resolvers-0.1.0a11.tar.gz", hash = "sha256:65994922a7ea508af5df38357d1e0afcad1a5ffe2f2e454ba8334850661f913f"}, ] [package.dependencies] -polywrap-core = "0.1.0a4" -polywrap-result = "0.1.0a4" -polywrap-wasm = "0.1.0a4" +polywrap-core = "0.1.0a11" +polywrap-result = "0.1.0a11" +polywrap-wasm = "0.1.0a11" wasmtime = ">=1.0.1,<2.0.0" [[package]] name = "polywrap-wasm" -version = "0.1.0a4" +version = "0.1.0a11" description = "" -category = "dev" +category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_wasm-0.1.0a4-py3-none-any.whl", hash = "sha256:098346b61582ae4cdc6ee9ad987fb3c28e8b80826f666d692a3919d278b5acd7"}, - {file = "polywrap_wasm-0.1.0a4.tar.gz", hash = "sha256:0af281d7b763d7c294ae80a06ebb32be668aedfaba9c7e10772ed2c58c6bae58"}, + {file = "polywrap_wasm-0.1.0a11-py3-none-any.whl", hash = "sha256:484628ed7cffdd45656edc32f5e0548298f2cdb9247e74b6f9b884d636a02c98"}, + {file = "polywrap_wasm-0.1.0a11.tar.gz", hash = "sha256:14cb7007b78f17476134e18f042a989035aa99f746408f6068d77cac7bc68bb8"}, ] [package.dependencies] -polywrap-core = "0.1.0a4" -polywrap-manifest = "0.1.0a4" -polywrap-msgpack = "0.1.0a4" -polywrap-result = "0.1.0a4" +polywrap-core = "0.1.0a11" +polywrap-manifest = "0.1.0a11" +polywrap-msgpack = "0.1.0a11" +polywrap-result = "0.1.0a11" unsync = ">=1.4.0,<2.0.0" wasmtime = ">=1.0.1,<2.0.0" @@ -637,7 +637,7 @@ wasmtime = ">=1.0.1,<2.0.0" name = "pycryptodome" version = "3.17" description = "Cryptographic library for Python" -category = "dev" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -733,7 +733,7 @@ email = ["email-validator (>=1.0.3)"] name = "pysha3" version = "1.0.2" description = "SHA-3 (Keccak) for Python 2.7 - 3.5" -category = "dev" +category = "main" optional = false python-versions = "*" files = [ @@ -807,7 +807,7 @@ testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy name = "result" version = "0.8.0" description = "A Rust-like result type for Python" -category = "dev" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -873,7 +873,7 @@ files = [ name = "unsync" version = "1.4.0" description = "Unsynchronize asyncio" -category = "dev" +category = "main" optional = false python-versions = "*" files = [ @@ -884,7 +884,7 @@ files = [ name = "wasmtime" version = "1.0.1" description = "A WebAssembly runtime powered by Wasmtime" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -990,4 +990,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "0027e46c9d0a780b38201819ac0360480a8683c36f2b61f036d06cec4053c666" +content-hash = "17e109c87909e27d15253fe5efc72ed6d74dc6dbea49c02392ccef6e91faae1b" diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py index c8204c4..c326f93 100644 --- a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py +++ b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py @@ -1,5 +1,6 @@ +import base64 from pathlib import Path -from typing import List, Optional, Dict, TypedDict, cast +from typing import List, Optional, TypedDict, Union, cast from enum import Enum import json @@ -8,6 +9,7 @@ from polywrap_core import Invoker from polywrap_result import Ok, Result from polywrap_manifest import WrapManifest +from polywrap_msgpack.generic_map import GenericMap class HttpResponseType(Enum): @@ -23,9 +25,9 @@ class FormDataEntry(TypedDict): class HttpRequest(TypedDict): - headers: Optional[Dict[str, str]] - urlParams: Optional[Dict[str, str]] - responseType: HttpResponseType + headers: Optional[GenericMap[str, str]] + urlParams: Optional[GenericMap[str, str]] + responseType: Union[HttpResponseType, str, int] body: Optional[str] formData: Optional[List[FormDataEntry]] timeout: Optional[int] @@ -33,7 +35,7 @@ class HttpRequest(TypedDict): class HttpResponse(TypedDict): status: int statusText: str - headers: Optional[Dict[str, str]] + headers: Optional[GenericMap[str, str]] body: Optional[str] @@ -47,7 +49,19 @@ class ArgsPost(TypedDict): request: Optional[HttpRequest] -class HttpPlugin(PluginModule[None, HttpResponse]): +def isResponseBinary(args: ArgsGet) -> bool: + if args.get("request") is None: + return False + if not args["request"]: + return False + if isinstance(args["request"]["responseType"], int) and args["request"]["responseType"] == 1: + return True + if isinstance(args["request"]["responseType"], str) and args["request"]["responseType"] == "BINARY": + return True + return args["request"]["responseType"] == HttpResponseType.BINARY + + +class HttpPlugin(PluginModule[None]): def __init__(self): super().__init__(None) self.client = AsyncClient() @@ -66,11 +80,21 @@ async def get(self, args: ArgsGet, invoker: Invoker) -> Result[HttpResponse]: else: res = await self.client.get(args["url"]) + if isResponseBinary(args): + return Ok( + HttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=base64.b64encode(res.content).decode(), + ) + ) + return Ok( HttpResponse( status=res.status_code, statusText=res.reason_phrase, - headers=dict(res.headers), + headers=GenericMap(dict(res.headers)), body=res.text, ) ) @@ -95,11 +119,21 @@ async def post(self, args: ArgsPost, invoker: Invoker) -> Result[HttpResponse]: else: res = await self.client.post(args["url"]) + if args["request"] is not None and args["request"]["responseType"] == HttpResponseType.BINARY: + return Ok( + HttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=base64.b64encode(res.content).decode(), + ) + ) + return Ok( HttpResponse( status=res.status_code, statusText=res.reason_phrase, - headers=dict(res.headers), + headers=GenericMap(dict(res.headers)), body=res.text, ) ) diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc index 3c0dd25f2cad313cc3e550af55d9fde15019650c..08e958227d8ecb2afa9dd63c761a5e01d8aef538 100644 GIT binary patch literal 4479 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 delta 2067 zcmZuy&2Jk;6rb6hUGLiKk9^pU^Xa67W(!RqDNrCJ4T(h}p{NA7tdLTZ*@T2$$DLhQ zB^Vi$UVA`uLmb*;MGyQ5LLc=pc(=)@Amr^=C zutM9j70rUQmj-(y$b^pPgjp}E` zQdsuNlzc#VnrH41p7HHN-5UVj;aT9bz6pE<_#DpzpI7`K@CDuje2?OXfbZpf!1wv) zB5W82K|e2opr{N+fG_bf@MS;GnLo6xRS4LP@&R7CL%cE0J|^zqpI9Y%gAR?cmEEm4 zu|N5$>2pQ0t$Gx@G-0(yD_oa9(7Lp>cDWZeh(3S^M3j+6_$QJ-YK!s@?Tum&u+Rb$ zVa+YVs6|DOTrh{_iheWG4?FBE-{efumTy;x;tj>8<@aocdh!=GwU-fHkueBEFc3x%MiDS|p(9`l ziN4#2PmkD@;23DpBFX`zNk8p}Lt=`M4 zV-k$VVV%^&f`AZe5~_OR!!zePJ&kgTsh)cV7Zg*l{>C<8k-?#hZK??ryDYJm#7=a5 zKZ?aA5QtX**2Swxo|oh_C@!N?!Ly+^rrpK{V7q6%6awQaJe-J@;FS%uuEYcR;G z&*&ySC**?iS?KP*TIbzOo_(ryX?ee9^9m#yLmAr zq^S~$jo57Kdns5}Yy-j`zzomaWrq}I%~?NiHfl@DtF@KtYHg#YDteGR6?Hah)mc^S zZYc=o1h!vP5iS6@dSW)~q8>)4vNKz*JYeEww7-Z@MZl}*I*HK~aIX`6$B)G<%2NP| zu^sH&^;qDIhKp6ojCB&m;YCn;6BhfoW0#3JRKJPv7Vgr8A9dXZ)#`arpfW<|+P4;r zMozQn01SvlP59FA6=?3Ml`2t7gCAw^S%^>BvxD4f95=5AE%_ufuKh}+>HNGKo3W}Z z)YFdBSXEV9hg-+BwbxZOk8Ua+^lZgglG@sD#6C>)+o-N0U@gTv0B%-b+G18Vv*pj; zL-ME)NG%{NB3whLA}j&8#+h=6_ffTsa5^EXCMzKO6jt<_G;UE*#~J!zVCElHJ_g3hGg`+3p&_pFOQvwp36IlQj zap)kM7!@<}x7<&(EZg~IIwK$DFV3&wmj9n5$$SCb*=zZn_ zK;Ty8RN-B^E_vbB&7)@(-%FuhBbBx~ib{J16}YJ@lnRQ;Cf0no&s%}N0ROj1gq?NB Xu)0bG4a2IX7mPxxV8Jp53}@*-!yt1q diff --git a/implementations/py/polywrap-http-plugin/pyproject.toml b/implementations/py/polywrap-http-plugin/pyproject.toml index 11bca96..a1b7023 100644 --- a/implementations/py/polywrap-http-plugin/pyproject.toml +++ b/implementations/py/polywrap-http-plugin/pyproject.toml @@ -15,10 +15,11 @@ python = "^3.10" polywrap-core = "^0.1.0a4" polywrap-plugin = "^0.1.0a4" httpx = "^0.23.3" +polywrap-client = "0.1.0a11" [tool.poetry.group.dev.dependencies] black = "^23.1.0" -polywrap-client = "^0.1.0a4" +polywrap-client = "^0.1.0a11" pytest = "^7.2.1" pytest-asyncio = "^0.20.3" diff --git a/implementations/py/polywrap-http-plugin/tests/__pycache__/test_ipfs.cpython-310-pytest-7.2.1.pyc b/implementations/py/polywrap-http-plugin/tests/__pycache__/test_ipfs.cpython-310-pytest-7.2.1.pyc index 27979f7dbb6f2af717fdcd2ffe90799327514a08..024f53d60611525f418faa94318ee5eac7519517 100644 GIT binary patch delta 1002 zcmaJSWjF5? za3SVtx9F8{$+NK?uN8OPE8{Y7m1y?`JVDTP!O_3*`qvyZ6mQi00J7HD|NhakKvf{# zL-=nH`+y$og{iHvND8H%5XnS~(xDutZzUonRQyLl_8>>}P}xMp;QD4_AQCgk9~1_{ zj^Ni}zZj+lh;9KZan?ex&$%=}ah8vAdVq-47mGrqk_;IO)g}V21t}YjjkCjq&7G8w zorLn%M5K^x1l2>mhaw|1{LdtJs`_(ya8&(eT(GKaI66ViMYu*WM|2L3JCnoo#&**Unk}DBv6b{ZI>XxOnH6kx+HRK*YyF1X ztha(u1H2V%oNTpeebi_?0p1rbvZ_+lM>F7K!W9roET`B=W3$S+xqovS%AH!!aGM*{ agmbZX(Pdg7!maZ`_YiZ>EJ4M>oNBurbRrD8_XPCKNN zc1c%pGg(c0q^EoMdNU=Ky$5h3zv5KsPt&J zGz+gVp-sQ=`4gxh+w`H$RT-CUDsk_16SQ}rfnGq@=z0;vcm^aq77tH|dm!vXd6)K; z6tp5sPOy?XQc@dAYV&QS-l!D797`#R;42QQ>B=8%65hUX{nqtc%fIxhEBbs^8(a*< zgg<`_-!H=V+h@*?ryoRo>+01l>260n(&`n6u|Dj$?+-a2F`;rh5to^rTHnp-G{P^8 zm~UmdfHJ-R%Pb?WN}Xa3RAH_J4d7iS?+)`M_!8u;XQl*Qf+3+HA*dcU&O1$T>&BSH znW&yMer~Z9889Z<_iQ+hS}d$`;|lIokBpn2*A_dzr^LB7p59q@{(gOee7GcgIZKD) z(n)gp5n`91_KQ*Vp7~jonICvNp#<@l6u%vH+?D?TrX6j*+RBJ0Zo}(97&~_IVG8S z#YL)<{n?Ghm4U)VI$*0yDho36(uK^s&&(J#c{lShu_)$(O7kkd#Ny)Aq7nsFje<%`&ElxZ z(^8e4Q;*$Qa1gl)1%`RGOJnl9^Xr zq&PW<-B?^6C|slgwz#CSATuw$hzZDvnmmVH9%#-Ub}1lvon014er0bE1sPHVG8l<4 Jn%u>q0RRJgNhkmS diff --git a/implementations/py/polywrap-http-plugin/tests/test_ipfs.py b/implementations/py/polywrap-http-plugin/tests/test_ipfs.py index 5e05015..b3ca821 100644 --- a/implementations/py/polywrap-http-plugin/tests/test_ipfs.py +++ b/implementations/py/polywrap-http-plugin/tests/test_ipfs.py @@ -1,5 +1,5 @@ from typing import cast -from polywrap_http_plugin import HttpResponse, http_plugin +from polywrap_http_plugin import http_plugin from polywrap_client import PolywrapClient, PolywrapClientConfig from polywrap_core import Uri, IUriResolver, InvokerOptions from polywrap_uri_resolvers import StaticResolver, RecursiveResolver @@ -36,7 +36,4 @@ async def test_plugin(): ) assert result.is_err() == False - response = cast(HttpResponse, result.unwrap()) - assert response["status"] == 200 - assert response["body"] is not None - assert response["body"].startswith(b" ExtType: + """Extension hook for extending the msgpack supported types. + + Args: + obj (Any): object to be encoded + + Raises: + TypeError: when given object is not supported + + Returns: + Tuple[int, bytes]: extension type code and payload + """ + ... + +def decode_ext_hook(code: int, data: bytes) -> Any: + """Extension hook for extending the msgpack supported types. + + Args: + code (int): extension type code (>0 & <256) + data (bytes): msgpack deserializable data as payload + + Raises: + UnpackValueError: when given invalid extension type code + + Returns: + Any: decoded object + """ + ... + +def sanitize(value: Any) -> Any: + """Sanitizes the value into msgpack encoder compatible format. + + Args: + value: any valid python value + + Raises: + ValueError: when dict key isn't string + + Returns: + Any: msgpack compatible sanitized value + """ + ... + +def msgpack_encode(value: Any) -> bytes: + """Encode any python object into msgpack bytes. + + Args: + value: any valid python object + + Returns: + bytes: encoded msgpack value + """ + ... + +def msgpack_decode(val: bytes) -> Any: + """Decode msgpack bytes into a valid python object. + + Args: + val: msgpack encoded bytes + + Returns: + Any: python object + """ + ... + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi new file mode 100644 index 0000000..5e512ea --- /dev/null +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi @@ -0,0 +1,33 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Dict, MutableMapping, TypeVar + +K = TypeVar("K") +V = TypeVar("V") +class GenericMap(MutableMapping[K, V]): + _map: Dict[K, V] + def __init__(self, map: Dict[K, V]) -> None: + ... + + def __getitem__(self, key: K) -> V: + ... + + def __setitem__(self, key: K, value: V) -> None: + ... + + def __delitem__(self, key: K) -> None: + ... + + def __iter__(self): # -> Iterator[K@GenericMap]: + ... + + def __len__(self) -> int: + ... + + def __repr__(self) -> str: + ... + + + diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi index 3f83614..8297acb 100644 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi @@ -9,7 +9,7 @@ from polywrap_result import Result TConfig = TypeVar("TConfig") TResult = TypeVar("TResult") -class PluginModule(Generic[TConfig, TResult], ABC): +class PluginModule(Generic[TConfig], ABC): env: Dict[str, Any] config: TConfig def __init__(self, config: TConfig) -> None: diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi index 3b2f7b3..b32b8f7 100644 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi @@ -2,16 +2,17 @@ This type stub file was generated by pyright. """ -from typing import Generic, Optional +from typing import Generic, Optional, TypeVar from polywrap_core import GetManifestOptions, IWrapPackage, Wrapper from polywrap_manifest import AnyWrapManifest from polywrap_result import Result -from .module import PluginModule, TConfig, TResult +from .module import PluginModule -class PluginPackage(Generic[TConfig, TResult], IWrapPackage): - module: PluginModule[TConfig, TResult] +TConfig = TypeVar("TConfig") +class PluginPackage(Generic[TConfig], IWrapPackage): + module: PluginModule[TConfig] manifest: AnyWrapManifest - def __init__(self, module: PluginModule[TConfig, TResult], manifest: AnyWrapManifest) -> None: + def __init__(self, module: PluginModule[TConfig], manifest: AnyWrapManifest) -> None: ... async def create_wrapper(self) -> Result[Wrapper]: diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi index 7ed7edc..07a4059 100644 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi +++ b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi @@ -2,15 +2,17 @@ This type stub file was generated by pyright. """ -from typing import Generic, Union +from typing import Generic, TypeVar, Union from polywrap_core import GetFileOptions, InvocableResult, InvokeOptions, Invoker, Wrapper from polywrap_manifest import AnyWrapManifest from polywrap_result import Result -from .module import PluginModule, TConfig, TResult +from .module import PluginModule -class PluginWrapper(Wrapper, Generic[TConfig, TResult]): - module: PluginModule[TConfig, TResult] - def __init__(self, module: PluginModule[TConfig, TResult], manifest: AnyWrapManifest) -> None: +TConfig = TypeVar("TConfig") +TResult = TypeVar("TResult") +class PluginWrapper(Wrapper, Generic[TConfig]): + module: PluginModule[TConfig] + def __init__(self, module: PluginModule[TConfig], manifest: AnyWrapManifest) -> None: ... async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[InvocableResult]: From 48f8b21322f27c1a4b632fd291cdf13d0bcb23ab Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Sun, 5 Mar 2023 12:14:12 +0400 Subject: [PATCH 03/21] fix: pyproject file --- .../py/polywrap-http-plugin/poetry.lock | 432 +++++++++++++++++- .../py/polywrap-http-plugin/pyproject.toml | 12 +- 2 files changed, 438 insertions(+), 6 deletions(-) diff --git a/implementations/py/polywrap-http-plugin/poetry.lock b/implementations/py/polywrap-http-plugin/poetry.lock index 7f7ee26..25b7f21 100644 --- a/implementations/py/polywrap-http-plugin/poetry.lock +++ b/implementations/py/polywrap-http-plugin/poetry.lock @@ -21,6 +21,26 @@ doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] trio = ["trio (>=0.16,<0.22)"] +[[package]] +name = "astroid" +version = "2.14.2" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.14.2-py3-none-any.whl", hash = "sha256:0e0e3709d64fbffd3037e4ff403580550f14471fd3eaae9fa11cc9a5c7901153"}, + {file = "astroid-2.14.2.tar.gz", hash = "sha256:a3cf9f02c53dd259144a7e8f3ccd75d67c9a8c716ef183e0c1f291bc5d7bb3cf"}, +] + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] + [[package]] name = "attrs" version = "22.2.0" @@ -52,6 +72,29 @@ files = [ {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, ] +[[package]] +name = "bandit" +version = "1.7.4" +description = "Security oriented static analyser for python code." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, + {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, +] + +[package.dependencies] +colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} +GitPython = ">=1.0.1" +PyYAML = ">=5.3.1" +stevedore = ">=1.20.0" + +[package.extras] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml"] +toml = ["toml"] +yaml = ["PyYAML"] + [[package]] name = "black" version = "23.1.0" @@ -140,6 +183,21 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "dill" +version = "0.3.6" +description = "serialize all of python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, + {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] + [[package]] name = "exceptiongroup" version = "1.1.0" @@ -155,6 +213,36 @@ files = [ [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "gitdb" +version = "4.0.10" +description = "Git Object Database" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, + {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.31" +description = "GitPython is a Python library used to interact with Git repositories" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, + {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + [[package]] name = "gql" version = "3.4.0" @@ -276,6 +364,82 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "isort" +version = "5.12.0" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] + +[package.extras] +colors = ["colorama (>=0.4.3)"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] + +[[package]] +name = "lazy-object-proxy" +version = "1.9.0" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + [[package]] name = "msgpack" version = "1.0.4" @@ -434,6 +598,21 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[[package]] +name = "nodeenv" +version = "1.7.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] + +[package.dependencies] +setuptools = "*" + [[package]] name = "packaging" version = "23.0" @@ -458,6 +637,18 @@ files = [ {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, ] +[[package]] +name = "pbr" +version = "5.11.1" +description = "Python Build Reasonableness" +category = "dev" +optional = false +python-versions = ">=2.6" +files = [ + {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, + {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, +] + [[package]] name = "platformdirs" version = "3.0.0" @@ -729,6 +920,54 @@ typing-extensions = ">=4.2.0" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[[package]] +name = "pylint" +version = "2.16.3" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.16.3-py3-none-any.whl", hash = "sha256:3e803be66e3a34c76b0aa1a3cf4714b538335e79bd69718d34fcf36d8fff2a2b"}, + {file = "pylint-2.16.3.tar.gz", hash = "sha256:0decdf8dfe30298cd9f8d82e9a1542da464db47da60e03641631086671a03621"}, +] + +[package.dependencies] +astroid = ">=2.14.2,<=2.16.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pyright" +version = "1.1.296" +description = "Command line wrapper for pyright" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyright-1.1.296-py3-none-any.whl", hash = "sha256:51cc5f05807b1fb53f9f0e14736b8f772b500a3ba4e0edeb99727e68e700d9ea"}, + {file = "pyright-1.1.296.tar.gz", hash = "sha256:6c3cd394473e55a516ebe443d02b83e63456ef29f052dcf8e64e7875c1418fa6"}, +] + +[package.dependencies] +nodeenv = ">=1.6.0" + +[package.extras] +all = ["twine (>=3.4.1)"] +dev = ["twine (>=3.4.1)"] + [[package]] name = "pysha3" version = "1.0.2" @@ -803,6 +1042,56 @@ pytest = ">=6.1.0" docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] + [[package]] name = "result" version = "0.8.0" @@ -833,6 +1122,35 @@ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} [package.extras] idna2008 = ["idna"] +[[package]] +name = "setuptools" +version = "67.4.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setuptools-67.4.0-py3-none-any.whl", hash = "sha256:f106dee1b506dee5102cc3f3e9e68137bbad6d47b616be7991714b0c62204251"}, + {file = "setuptools-67.4.0.tar.gz", hash = "sha256:e5fd0a713141a4a105412233c63dc4e17ba0090c8e8334594ac790ec97792330"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "smmap" +version = "5.0.0" +description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] + [[package]] name = "sniffio" version = "1.3.0" @@ -845,6 +1163,21 @@ files = [ {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, ] +[[package]] +name = "stevedore" +version = "5.0.0" +description = "Manage dynamic plugins for Python applications" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "stevedore-5.0.0-py3-none-any.whl", hash = "sha256:bd5a71ff5e5e5f5ea983880e4a1dd1bb47f8feebbb3d95b592398e2f02194771"}, + {file = "stevedore-5.0.0.tar.gz", hash = "sha256:2c428d2338976279e8eb2196f7a94910960d9f7ba2f41f3988511e95ca447021"}, +] + +[package.dependencies] +pbr = ">=2.0.0,<2.1.0 || >2.1.0" + [[package]] name = "tomli" version = "2.0.1" @@ -857,6 +1190,18 @@ files = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +[[package]] +name = "tomlkit" +version = "0.11.6" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "tomlkit-0.11.6-py3-none-any.whl", hash = "sha256:07de26b0d8cfc18f871aec595fda24d95b08fef89d147caa861939f37230bf4b"}, + {file = "tomlkit-0.11.6.tar.gz", hash = "sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73"}, +] + [[package]] name = "typing-extensions" version = "4.5.0" @@ -899,6 +1244,91 @@ files = [ [package.extras] testing = ["coverage", "flake8 (==4.0.1)", "pycparser", "pytest", "pytest-flake8", "pytest-mypy"] +[[package]] +name = "wrapt" +version = "1.15.0" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] + [[package]] name = "yarl" version = "1.8.2" @@ -990,4 +1420,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "17e109c87909e27d15253fe5efc72ed6d74dc6dbea49c02392ccef6e91faae1b" +content-hash = "99bf46e0901708598337ffb7d5ebb22e198533bcc5edfaf415ece745e88e05eb" diff --git a/implementations/py/polywrap-http-plugin/pyproject.toml b/implementations/py/polywrap-http-plugin/pyproject.toml index a1b7023..71d3690 100644 --- a/implementations/py/polywrap-http-plugin/pyproject.toml +++ b/implementations/py/polywrap-http-plugin/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "polywrap-http-plugin" -version = "0.1.0" +version = "0.1.0a1" description = "" authors = ["Niraj Kamdar "] readme = "README.md" @@ -12,16 +12,18 @@ packages = [{include = "polywrap_http_plugin"}] [tool.poetry.dependencies] python = "^3.10" -polywrap-core = "^0.1.0a4" -polywrap-plugin = "^0.1.0a4" -httpx = "^0.23.3" polywrap-client = "0.1.0a11" +polywrap-plugin = "^0.1.0a11" +httpx = "^0.23.3" [tool.poetry.group.dev.dependencies] black = "^23.1.0" -polywrap-client = "^0.1.0a11" pytest = "^7.2.1" pytest-asyncio = "^0.20.3" +isort = "^5.12.0" +bandit = "^1.7.4" +pyright = "^1.1.296" +pylint = "^2.16.3" [tool.bandit] exclude_dirs = ["tests"] From 2dd7aa95be928208ea0282b9daca8d4eb64c335c Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Sun, 5 Mar 2023 12:44:55 +0400 Subject: [PATCH 04/21] chore: update poetry lock --- .../py/polywrap-http-plugin/poetry.lock | 14 +++++++------- .../py/polywrap-http-plugin/pyproject.toml | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/implementations/py/polywrap-http-plugin/poetry.lock b/implementations/py/polywrap-http-plugin/poetry.lock index 25b7f21..a5a75a7 100644 --- a/implementations/py/polywrap-http-plugin/poetry.lock +++ b/implementations/py/polywrap-http-plugin/poetry.lock @@ -651,14 +651,14 @@ files = [ [[package]] name = "platformdirs" -version = "3.0.0" +version = "3.1.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, - {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, + {file = "platformdirs-3.1.0-py3-none-any.whl", hash = "sha256:13b08a53ed71021350c9e300d4ea8668438fb0046ab3937ac9a29913a1a1350a"}, + {file = "platformdirs-3.1.0.tar.gz", hash = "sha256:accc3665857288317f32c7bebb5a8e482ba717b474f3fc1d18ca7f9214be0cef"}, ] [package.extras] @@ -1001,14 +1001,14 @@ files = [ [[package]] name = "pytest" -version = "7.2.1" +version = "7.2.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, - {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, + {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, + {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, ] [package.dependencies] @@ -1420,4 +1420,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "99bf46e0901708598337ffb7d5ebb22e198533bcc5edfaf415ece745e88e05eb" +content-hash = "06993b18dc7b900d21ea61a7199e60929f62d3d8f50a6d506173bea78c5a8c20" diff --git a/implementations/py/polywrap-http-plugin/pyproject.toml b/implementations/py/polywrap-http-plugin/pyproject.toml index 71d3690..879540f 100644 --- a/implementations/py/polywrap-http-plugin/pyproject.toml +++ b/implementations/py/polywrap-http-plugin/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "polywrap-http-plugin" -version = "0.1.0a1" +version = "0.1.0a2" description = "" authors = ["Niraj Kamdar "] readme = "README.md" @@ -13,7 +13,7 @@ packages = [{include = "polywrap_http_plugin"}] [tool.poetry.dependencies] python = "^3.10" polywrap-client = "0.1.0a11" -polywrap-plugin = "^0.1.0a11" +polywrap-plugin = "0.1.0a11" httpx = "^0.23.3" [tool.poetry.group.dev.dependencies] From cd025bd5e6bf832d3a6bca20513d76d5a87a29fe Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 15 Mar 2023 11:49:23 +0400 Subject: [PATCH 05/21] v0.10.0-pre.10 --- implementations/js/package.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/implementations/js/package.json b/implementations/js/package.json index 249cefa..117c012 100644 --- a/implementations/js/package.json +++ b/implementations/js/package.json @@ -1,7 +1,7 @@ { - "name": "@polywrap/http-plugin-js", + "name": "@wraplib/http-plugin-js", "description": "Polywrap HTTP Javascript Plugin", - "version": "0.10.0-pre.8", + "version": "0.10.0-pre.10", "license": "MIT", "repository": { "type": "git", @@ -27,20 +27,12 @@ "form-data": "4.0.0" }, "devDependencies": { - "polywrap": "0.10.0-pre.8", "@polywrap/client-js": "0.10.0-pre.8", - "temp-fs-plugin-js": "0.10.0-pre.8", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.8", "@polywrap/test-env-js": "0.10.0-pre.8", "@polywrap/uri-resolver-extensions-js": "0.10.0-pre.8", "@polywrap/uri-resolvers-js": "0.10.0-pre.8", "@types/jest": "26.0.8", - "jest": "26.6.3", - "nock": "13.0.7", - "rimraf": "3.0.2", - "ts-jest": "26.5.4", - "ts-node": "8.10.2", - "typescript": "4.1.6", "@types/prettier": "2.6.0", "@typescript-eslint/eslint-plugin": "4.11.1", "@typescript-eslint/parser": "4.11.1", @@ -49,7 +41,15 @@ "eslint-plugin-import": "2.22.1", "eslint-plugin-json": "3.0.0", "eslint-plugin-prettier": "3.4.0", - "prettier": "2.2.1" + "jest": "26.6.3", + "nock": "13.0.7", + "polywrap": "0.10.0-pre.8", + "prettier": "2.2.1", + "rimraf": "3.0.2", + "temp-fs-plugin-js": "0.10.0-pre.8", + "ts-jest": "26.5.4", + "ts-node": "8.10.2", + "typescript": "4.1.6" }, "gitHead": "7346adaf5adb7e6bbb70d9247583e995650d390a", "publishConfig": { From 4d1994a14e35150d52170d23650b626a26d144ed Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Fri, 14 Apr 2023 17:20:23 +0400 Subject: [PATCH 06/21] fix: python http plugin --- .gitignore | 5 +- implementations/py/.gitignore | 4 + .../py/{polywrap-http-plugin => }/README.md | 0 implementations/py/package.json | 9 + implementations/py/poetry.lock | 1180 +++++++ .../py/polywrap-http-plugin/poetry.lock | 1423 -------- .../polywrap_http_plugin/__init__.py | 147 - .../__pycache__/__init__.cpython-310.pyc | Bin 4479 -> 0 bytes .../polywrap_http_plugin/manifest.json | 468 --- .../__pycache__/__init__.cpython-310.pyc | Bin 193 -> 0 bytes .../test_ipfs.cpython-310-pytest-7.2.1.pyc | Bin 2383 -> 0 bytes .../test_plugin.cpython-310-pytest-7.2.1.pyc | Bin 2226 -> 0 bytes .../polywrap-http-plugin/tests/test_ipfs.py | 39 - .../polywrap-http-plugin/tests/test_plugin.py | 34 - .../py/polywrap-http-plugin/tox.ini | 30 - .../typings/polywrap_client/__init__.pyi | 6 - .../typings/polywrap_client/client.pyi | 55 - .../typings/polywrap_core/__init__.pyi | 9 - .../polywrap_core/algorithms/__init__.pyi | 6 - .../algorithms/build_clean_uri_history.pyi | 11 - .../typings/polywrap_core/types/__init__.pyi | 18 - .../typings/polywrap_core/types/client.pyi | 60 - .../typings/polywrap_core/types/env.pyi | 7 - .../polywrap_core/types/file_reader.pyi | 14 - .../typings/polywrap_core/types/invoke.pyi | 67 - .../typings/polywrap_core/types/uri.pyi | 81 - .../types/uri_package_wrapper.pyi | 10 - .../types/uri_resolution_context.pyi | 44 - .../types/uri_resolution_step.pyi | 20 - .../polywrap_core/types/uri_resolver.pyi | 35 - .../types/uri_resolver_handler.pyi | 19 - .../polywrap_core/types/wasm_package.pyi | 15 - .../polywrap_core/types/wrap_package.pyi | 22 - .../typings/polywrap_core/types/wrapper.pyi | 34 - .../polywrap_core/uri_resolution/__init__.pyi | 6 - .../uri_resolution/uri_resolution_context.pyi | 41 - .../typings/polywrap_core/utils/__init__.pyi | 9 - .../utils/get_env_from_uri_history.pyi | 10 - .../polywrap_core/utils/init_wrapper.pyi | 10 - .../polywrap_core/utils/instance_of.pyi | 9 - .../polywrap_core/utils/maybe_async.pyi | 12 - .../typings/polywrap_manifest/__init__.pyi | 7 - .../typings/polywrap_manifest/deserialize.pyi | 16 - .../typings/polywrap_manifest/manifest.pyi | 44 - .../typings/polywrap_manifest/wrap_0_1.pyi | 209 -- .../typings/polywrap_msgpack/__init__.pyi | 90 - .../typings/polywrap_msgpack/generic_map.pyi | 33 - .../typings/polywrap_plugin/__init__.pyi | 8 - .../typings/polywrap_plugin/module.pyi | 25 - .../typings/polywrap_plugin/package.pyi | 25 - .../typings/polywrap_plugin/wrapper.pyi | 28 - .../typings/polywrap_result/__init__.pyi | 322 -- .../polywrap_uri_resolvers/__init__.pyi | 16 - .../polywrap_uri_resolvers/abc/__init__.pyi | 8 - .../abc/resolver_with_history.pyi | 17 - .../abc/uri_resolver_aggregator.pyi | 26 - .../polywrap_uri_resolvers/cache/__init__.pyi | 8 - .../cache/cache_resolver.pyi | 33 - .../cache/wrapper_cache.pyi | 21 - .../cache/wrapper_cache_interface.pyi | 19 - .../errors/__init__.pyi | 6 - .../errors/infinite_loop_error.pyi | 13 - .../helpers/__init__.pyi | 8 - .../helpers/get_uri_resolution_path.pyi | 10 - .../helpers/resolver_like_to_resolver.pyi | 11 - .../helpers/resolver_with_loop_guard.pyi | 4 - .../legacy/__init__.pyi | 8 - .../legacy/base_resolver.pyi | 21 - .../legacy/fs_resolver.pyi | 23 - .../legacy/redirect_resolver.pyi | 18 - .../package_resolver.pyi | 19 - .../recursive_resolver.pyi | 18 - .../redirect_resolver.pyi | 19 - .../static_resolver.pyi | 19 - .../polywrap_uri_resolvers/types/__init__.pyi | 10 - .../types/static_resolver_like.pyi | 8 - .../types/uri_package.pyi | 14 - .../types/uri_redirect.pyi | 14 - .../types/uri_resolver_like.pyi | 12 - .../types/uri_wrapper.pyi | 14 - .../uri_resolver_aggregator.pyi | 24 - .../wrapper_resolver.pyi | 19 - implementations/py/polywrap.yaml | 7 + .../py/polywrap_http_plugin/__init__.py | 95 + .../py.typed} | 0 .../{polywrap-http-plugin => }/pyproject.toml | 11 +- implementations/py/schema.graphql | 4 + .../tests/__init__.py | 0 .../tests/ipfs-wrapper/wrap.info | Bin .../tests/ipfs-wrapper/wrap.wasm | Bin implementations/py/tests/test_ipfs.py | 32 + implementations/py/tests/test_plugin.py | 31 + implementations/py/tox.ini | 30 + implementations/py/yarn.lock | 3115 +++++++++++++++++ 94 files changed, 4519 insertions(+), 4042 deletions(-) create mode 100644 implementations/py/.gitignore rename implementations/py/{polywrap-http-plugin => }/README.md (100%) create mode 100644 implementations/py/package.json create mode 100644 implementations/py/poetry.lock delete mode 100644 implementations/py/polywrap-http-plugin/poetry.lock delete mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py delete mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc delete mode 100644 implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json delete mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc delete mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/test_ipfs.cpython-310-pytest-7.2.1.pyc delete mode 100644 implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc delete mode 100644 implementations/py/polywrap-http-plugin/tests/test_ipfs.py delete mode 100644 implementations/py/polywrap-http-plugin/tests/test_plugin.py delete mode 100644 implementations/py/polywrap-http-plugin/tox.ini delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_client/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_client/client.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi delete mode 100644 implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi create mode 100644 implementations/py/polywrap.yaml create mode 100644 implementations/py/polywrap_http_plugin/__init__.py rename implementations/py/{.gitkeep => polywrap_http_plugin/py.typed} (100%) rename implementations/py/{polywrap-http-plugin => }/pyproject.toml (78%) create mode 100644 implementations/py/schema.graphql rename implementations/py/{polywrap-http-plugin => }/tests/__init__.py (100%) rename implementations/py/{polywrap-http-plugin => }/tests/ipfs-wrapper/wrap.info (100%) rename implementations/py/{polywrap-http-plugin => }/tests/ipfs-wrapper/wrap.wasm (100%) create mode 100644 implementations/py/tests/test_ipfs.py create mode 100644 implementations/py/tests/test_plugin.py create mode 100644 implementations/py/tox.ini create mode 100644 implementations/py/yarn.lock diff --git a/.gitignore b/.gitignore index e96193c..1c63ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,7 @@ bin !packages/cli/bin pkg wasm-pack.log -.env \ No newline at end of file +.env +**/__pycache__/ +.pytest_cache/ +dist/ diff --git a/implementations/py/.gitignore b/implementations/py/.gitignore new file mode 100644 index 0000000..b553442 --- /dev/null +++ b/implementations/py/.gitignore @@ -0,0 +1,4 @@ +**/.vscode/ +**/.pytest_cache/ +**/dist/ +**/node_modules/ \ No newline at end of file diff --git a/implementations/py/polywrap-http-plugin/README.md b/implementations/py/README.md similarity index 100% rename from implementations/py/polywrap-http-plugin/README.md rename to implementations/py/README.md diff --git a/implementations/py/package.json b/implementations/py/package.json new file mode 100644 index 0000000..57ac4c8 --- /dev/null +++ b/implementations/py/package.json @@ -0,0 +1,9 @@ +{ + "name": "@polywrap/python-http-plugin", + "description": "Polywrap Python Http Plugin", + "version": "0.10.0-pre.7", + "private": true, + "devDependencies": { + "polywrap": "0.10.0-pre.7" + } +} diff --git a/implementations/py/poetry.lock b/implementations/py/poetry.lock new file mode 100644 index 0000000..63f3542 --- /dev/null +++ b/implementations/py/poetry.lock @@ -0,0 +1,1180 @@ +# This file is automatically @generated by Poetry and should not be changed by hand. + +[[package]] +name = "anyio" +version = "3.6.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" +optional = false +python-versions = ">=3.6.2" +files = [ + {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, + {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, +] + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] +trio = ["trio (>=0.16,<0.22)"] + +[[package]] +name = "astroid" +version = "2.15.2" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "astroid-2.15.2-py3-none-any.whl", hash = "sha256:dea89d9f99f491c66ac9c04ebddf91e4acf8bd711722175fe6245c0725cc19bb"}, + {file = "astroid-2.15.2.tar.gz", hash = "sha256:6e61b85c891ec53b07471aec5878f4ac6446a41e590ede0f2ce095f39f7d49dd"}, +] + +[package.dependencies] +lazy-object-proxy = ">=1.4.0" +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} +wrapt = [ + {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, + {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, +] + +[[package]] +name = "bandit" +version = "1.7.5" +description = "Security oriented static analyser for python code." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "bandit-1.7.5-py3-none-any.whl", hash = "sha256:75665181dc1e0096369112541a056c59d1c5f66f9bb74a8d686c3c362b83f549"}, + {file = "bandit-1.7.5.tar.gz", hash = "sha256:bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"}, +] + +[package.dependencies] +colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} +GitPython = ">=1.0.1" +PyYAML = ">=5.3.1" +rich = "*" +stevedore = ">=1.20.0" + +[package.extras] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "tomli (>=1.1.0)"] +toml = ["tomli (>=1.1.0)"] +yaml = ["PyYAML"] + +[[package]] +name = "black" +version = "23.3.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "black-23.3.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915"}, + {file = "black-23.3.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9"}, + {file = "black-23.3.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2"}, + {file = "black-23.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c"}, + {file = "black-23.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b"}, + {file = "black-23.3.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d"}, + {file = "black-23.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70"}, + {file = "black-23.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326"}, + {file = "black-23.3.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b"}, + {file = "black-23.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2"}, + {file = "black-23.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331"}, + {file = "black-23.3.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5"}, + {file = "black-23.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961"}, + {file = "black-23.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3"}, + {file = "black-23.3.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266"}, + {file = "black-23.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab"}, + {file = "black-23.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb"}, + {file = "black-23.3.0-py3-none-any.whl", hash = "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4"}, + {file = "black-23.3.0.tar.gz", hash = "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940"}, +] + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "certifi" +version = "2022.12.7" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, +] + +[[package]] +name = "click" +version = "8.1.3" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "dill" +version = "0.3.6" +description = "serialize all of python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, + {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, +] + +[package.extras] +graph = ["objgraph (>=1.7.2)"] + +[[package]] +name = "exceptiongroup" +version = "1.1.1" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, + {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "gitdb" +version = "4.0.10" +description = "Git Object Database" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, + {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, +] + +[package.dependencies] +smmap = ">=3.0.1,<6" + +[[package]] +name = "gitpython" +version = "3.1.31" +description = "GitPython is a Python library used to interact with Git repositories" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, + {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, +] + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "0.16.3" +description = "A minimal low-level HTTP client." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, + {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"}, +] + +[package.dependencies] +anyio = ">=3.0,<5.0" +certifi = "*" +h11 = ">=0.13,<0.15" +sniffio = ">=1.0.0,<2.0.0" + +[package.extras] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] + +[[package]] +name = "httpx" +version = "0.23.3" +description = "The next generation HTTP client." +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, + {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"}, +] + +[package.dependencies] +certifi = "*" +httpcore = ">=0.15.0,<0.17.0" +rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "isort" +version = "5.12.0" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, + {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, +] + +[package.extras] +colors = ["colorama (>=0.4.3)"] +pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] +plugins = ["setuptools"] +requirements-deprecated-finder = ["pip-api", "pipreqs"] + +[[package]] +name = "lazy-object-proxy" +version = "1.9.0" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, + {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, + {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, + {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, + {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, + {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, +] + +[[package]] +name = "markdown-it-py" +version = "2.2.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, + {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "msgpack" +version = "1.0.5" +description = "MessagePack serializer" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, + {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, + {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, + {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, + {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, + {file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"}, + {file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"}, + {file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"}, + {file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"}, + {file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"}, + {file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"}, + {file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"}, + {file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"}, + {file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"}, + {file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, + {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, + {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, + {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, + {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, + {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +category = "dev" +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "nodeenv" +version = "1.7.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +files = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "packaging" +version = "23.1" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] + +[[package]] +name = "pathspec" +version = "0.11.1" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, + {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, +] + +[[package]] +name = "pbr" +version = "5.11.1" +description = "Python Build Reasonableness" +category = "dev" +optional = false +python-versions = ">=2.6" +files = [ + {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, + {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, +] + +[[package]] +name = "platformdirs" +version = "3.2.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "platformdirs-3.2.0-py3-none-any.whl", hash = "sha256:ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e"}, + {file = "platformdirs-3.2.0.tar.gz", hash = "sha256:d5b638ca397f25f979350ff789db335903d7ea010ab28903f57b27e1b16c2b08"}, +] + +[package.extras] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "polywrap-client" +version = "0.1.0a28" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_client-0.1.0a28-py3-none-any.whl", hash = "sha256:9d0d22840e6c1d370933e21ed81af44421c86f238cf7583869dc89c48daa216a"}, + {file = "polywrap_client-0.1.0a28.tar.gz", hash = "sha256:2b28ac962b92cdea36125dd972eb99fc8ee754555730ad05303d288850d8deae"}, +] + +[package.dependencies] +polywrap-core = ">=0.1.0a28,<0.2.0" +polywrap-manifest = ">=0.1.0a28,<0.2.0" +polywrap-msgpack = ">=0.1.0a28,<0.2.0" +polywrap-uri-resolvers = ">=0.1.0a28,<0.2.0" + +[[package]] +name = "polywrap-client-config-builder" +version = "0.1.0a28" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_client_config_builder-0.1.0a28-py3-none-any.whl", hash = "sha256:008c70092348441087e9dd1f042d4a14d72fc1f1c5cf5011b3ee9645d61026f3"}, + {file = "polywrap_client_config_builder-0.1.0a28.tar.gz", hash = "sha256:257d0c1c04b72456cb57b596b20c82035573d37eb23702bdc828a28dd90791f2"}, +] + +[package.dependencies] +polywrap-core = ">=0.1.0a28,<0.2.0" +polywrap-uri-resolvers = ">=0.1.0a28,<0.2.0" + +[[package]] +name = "polywrap-core" +version = "0.1.0a28" +description = "" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_core-0.1.0a28-py3-none-any.whl", hash = "sha256:addf36c93c87500961619ed0b90075b7412f6ef9608a654d56255fb338732211"}, + {file = "polywrap_core-0.1.0a28.tar.gz", hash = "sha256:ef165e4e1b02de2df8711b56a144a9070b687efe565ab8faa5d659f621b3fcb4"}, +] + +[package.dependencies] +polywrap-manifest = ">=0.1.0a28,<0.2.0" +polywrap-msgpack = ">=0.1.0a28,<0.2.0" + +[[package]] +name = "polywrap-manifest" +version = "0.1.0a28" +description = "WRAP manifest" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_manifest-0.1.0a28-py3-none-any.whl", hash = "sha256:6caf12b5fe47ea36754e12f9b389c8f444e76abe59580dd7696a632cec50aa90"}, + {file = "polywrap_manifest-0.1.0a28.tar.gz", hash = "sha256:a7e6ee4667d0f0fd30b48d0833a80de1e023ce30e4f3b41dd94a0717e4f9d266"}, +] + +[package.dependencies] +polywrap-msgpack = ">=0.1.0a28,<0.2.0" +pydantic = ">=1.10.2,<2.0.0" + +[[package]] +name = "polywrap-msgpack" +version = "0.1.0a28" +description = "WRAP msgpack encoding" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_msgpack-0.1.0a28-py3-none-any.whl", hash = "sha256:0cfae5da732c219648b391ed3835715c03f510bd7d96045916f1d1f0e42a38a4"}, + {file = "polywrap_msgpack-0.1.0a28.tar.gz", hash = "sha256:3a73a4d0c4f820509e992abec326e1203519e880837c07eef84a2f5e600c82b5"}, +] + +[package.dependencies] +msgpack = ">=1.0.4,<2.0.0" + +[[package]] +name = "polywrap-plugin" +version = "0.1.0a28" +description = "Plugin package" +category = "main" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_plugin-0.1.0a28-py3-none-any.whl", hash = "sha256:61ef94f90608e57eabd9a237155ee8349fe986faec722dd5de9d549df6dc7663"}, + {file = "polywrap_plugin-0.1.0a28.tar.gz", hash = "sha256:7fbbc5b26bba1fc036185d7b42f17f92c380db316e875a7f207f9b473bb4dc02"}, +] + +[package.dependencies] +polywrap-core = ">=0.1.0a28,<0.2.0" +polywrap-manifest = ">=0.1.0a28,<0.2.0" +polywrap-msgpack = ">=0.1.0a28,<0.2.0" + +[[package]] +name = "polywrap-uri-resolvers" +version = "0.1.0a28" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_uri_resolvers-0.1.0a28-py3-none-any.whl", hash = "sha256:62b72fbe3dbd817507dbaea947ac489d18deaccba0f74b4fb1d6593342ad78e4"}, + {file = "polywrap_uri_resolvers-0.1.0a28.tar.gz", hash = "sha256:fd6cbaf88d0660532883e5e5ad162e3646f62970540e54a31d7bc8da2c8dc196"}, +] + +[package.dependencies] +polywrap-core = ">=0.1.0a28,<0.2.0" +polywrap-wasm = ">=0.1.0a28,<0.2.0" + +[[package]] +name = "polywrap-wasm" +version = "0.1.0a28" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "polywrap_wasm-0.1.0a28-py3-none-any.whl", hash = "sha256:9a39a85d1a32f3530c64a6d7871ac3c23a9f206a765996e36aa9ebc2936cd22d"}, + {file = "polywrap_wasm-0.1.0a28.tar.gz", hash = "sha256:4411e4d6f6457ab67bf601875067b42f2ec2e7be1ac83102f3d30e61970c98b3"}, +] + +[package.dependencies] +polywrap-core = ">=0.1.0a28,<0.2.0" +polywrap-manifest = ">=0.1.0a28,<0.2.0" +polywrap-msgpack = ">=0.1.0a28,<0.2.0" +unsync = ">=1.4.0,<2.0.0" +unsync-stubs = ">=0.1.2,<0.2.0" +wasmtime = ">=6.0.0,<7.0.0" + +[[package]] +name = "pydantic" +version = "1.10.7" +description = "Data validation and settings management using python type hints" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d"}, + {file = "pydantic-1.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e"}, + {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a"}, + {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f"}, + {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209"}, + {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af"}, + {file = "pydantic-1.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a"}, + {file = "pydantic-1.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1"}, + {file = "pydantic-1.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe"}, + {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd"}, + {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb"}, + {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b"}, + {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca"}, + {file = "pydantic-1.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d"}, + {file = "pydantic-1.10.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918"}, + {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe"}, + {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee"}, + {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1"}, + {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a"}, + {file = "pydantic-1.10.7-cp37-cp37m-win_amd64.whl", hash = "sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914"}, + {file = "pydantic-1.10.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd"}, + {file = "pydantic-1.10.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245"}, + {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d"}, + {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3"}, + {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52"}, + {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209"}, + {file = "pydantic-1.10.7-cp38-cp38-win_amd64.whl", hash = "sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e"}, + {file = "pydantic-1.10.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143"}, + {file = "pydantic-1.10.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e"}, + {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d"}, + {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f"}, + {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd"}, + {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5"}, + {file = "pydantic-1.10.7-cp39-cp39-win_amd64.whl", hash = "sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e"}, + {file = "pydantic-1.10.7-py3-none-any.whl", hash = "sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6"}, + {file = "pydantic-1.10.7.tar.gz", hash = "sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pygments" +version = "2.15.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Pygments-2.15.0-py3-none-any.whl", hash = "sha256:77a3299119af881904cd5ecd1ac6a66214b6e9bed1f2db16993b54adede64094"}, + {file = "Pygments-2.15.0.tar.gz", hash = "sha256:f7e36cffc4c517fbc252861b9a6e4644ca0e5abadf9a113c72d1358ad09b9500"}, +] + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pylint" +version = "2.17.2" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.7.2" +files = [ + {file = "pylint-2.17.2-py3-none-any.whl", hash = "sha256:001cc91366a7df2970941d7e6bbefcbf98694e00102c1f121c531a814ddc2ea8"}, + {file = "pylint-2.17.2.tar.gz", hash = "sha256:1b647da5249e7c279118f657ca28b6aaebb299f86bf92affc632acf199f7adbb"}, +] + +[package.dependencies] +astroid = ">=2.15.2,<=2.17.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, +] +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.8" +platformdirs = ">=2.2.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" + +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] + +[[package]] +name = "pyright" +version = "1.1.303" +description = "Command line wrapper for pyright" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyright-1.1.303-py3-none-any.whl", hash = "sha256:8fe3d122d7e965e2df2cef64e1ceb98cff8200f458e7892d92a4c21ee85689c7"}, + {file = "pyright-1.1.303.tar.gz", hash = "sha256:7daa516424555681e8974b21a95c108c5def791bf5381522b1410026d4da62c1"}, +] + +[package.dependencies] +nodeenv = ">=1.6.0" + +[package.extras] +all = ["twine (>=3.4.1)"] +dev = ["twine (>=3.4.1)"] + +[[package]] +name = "pytest" +version = "7.3.0" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.3.0-py3-none-any.whl", hash = "sha256:933051fa1bfbd38a21e73c3960cebdad4cf59483ddba7696c48509727e17f201"}, + {file = "pytest-7.3.0.tar.gz", hash = "sha256:58ecc27ebf0ea643ebfdf7fb1249335da761a00c9f955bcd922349bcb68ee57d"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.20.3" +description = "Pytest support for asyncio" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-asyncio-0.20.3.tar.gz", hash = "sha256:83cbf01169ce3e8eb71c6c278ccb0574d1a7a3bb8eaaf5e50e0ad342afb33b36"}, + {file = "pytest_asyncio-0.20.3-py3-none-any.whl", hash = "sha256:f129998b209d04fcc65c96fc85c11e5316738358909a8399e93be553d7656442"}, +] + +[package.dependencies] +pytest = ">=6.1.0" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] + +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] + +[[package]] +name = "rfc3986" +version = "1.5.0" +description = "Validating URI References per RFC 3986" +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, + {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, +] + +[package.dependencies] +idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} + +[package.extras] +idna2008 = ["idna"] + +[[package]] +name = "rich" +version = "13.3.4" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "dev" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.3.4-py3-none-any.whl", hash = "sha256:22b74cae0278fd5086ff44144d3813be1cedc9115bdfabbfefd86400cb88b20a"}, + {file = "rich-13.3.4.tar.gz", hash = "sha256:b5d573e13605423ec80bdd0cd5f8541f7844a0e71a13f74cf454ccb2f490708b"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0,<3.0.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "setuptools" +version = "67.6.1" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "setuptools-67.6.1-py3-none-any.whl", hash = "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"}, + {file = "setuptools-67.6.1.tar.gz", hash = "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "smmap" +version = "5.0.0" +description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, + {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, +] + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] + +[[package]] +name = "stevedore" +version = "5.0.0" +description = "Manage dynamic plugins for Python applications" +category = "dev" +optional = false +python-versions = ">=3.8" +files = [ + {file = "stevedore-5.0.0-py3-none-any.whl", hash = "sha256:bd5a71ff5e5e5f5ea983880e4a1dd1bb47f8feebbb3d95b592398e2f02194771"}, + {file = "stevedore-5.0.0.tar.gz", hash = "sha256:2c428d2338976279e8eb2196f7a94910960d9f7ba2f41f3988511e95ca447021"}, +] + +[package.dependencies] +pbr = ">=2.0.0,<2.1.0 || >2.1.0" + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tomlkit" +version = "0.11.7" +description = "Style preserving TOML library" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomlkit-0.11.7-py3-none-any.whl", hash = "sha256:5325463a7da2ef0c6bbfefb62a3dc883aebe679984709aee32a317907d0a8d3c"}, + {file = "tomlkit-0.11.7.tar.gz", hash = "sha256:f392ef70ad87a672f02519f99967d28a4d3047133e2d1df936511465fbb3791d"}, +] + +[[package]] +name = "typing-extensions" +version = "4.5.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" +optional = false +python-versions = ">=3.7" +files = [ + {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, + {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, +] + +[[package]] +name = "unsync" +version = "1.4.0" +description = "Unsynchronize asyncio" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "unsync-1.4.0.tar.gz", hash = "sha256:a29e0f8952ffb0b3a0453ce436819a5a1ba2febbb5caa707c319f6f98d35f3c5"}, +] + +[[package]] +name = "unsync-stubs" +version = "0.1.2" +description = "" +category = "dev" +optional = false +python-versions = ">=3.10,<4.0" +files = [ + {file = "unsync_stubs-0.1.2-py3-none-any.whl", hash = "sha256:a65aa80480c6b7ba985681d3833a202f0a33e159801c2a747bfcf6a0fb328a07"}, + {file = "unsync_stubs-0.1.2.tar.gz", hash = "sha256:9f5b7d5cd35a03e36b735be2ba5f1c2c3848c613ad124ccbf5fc0c3cdb21cc50"}, +] + +[[package]] +name = "wasmtime" +version = "6.0.0" +description = "A WebAssembly runtime powered by Wasmtime" +category = "dev" +optional = false +python-versions = ">=3.6" +files = [ + {file = "wasmtime-6.0.0-py3-none-any.whl", hash = "sha256:4b9ccb4c29a6c03729b8eb376de2c7e7e27a92ed5b6f84c2b1a37379eeeeb255"}, + {file = "wasmtime-6.0.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:dfb974d82f09f8b9f4993a9c3256c42b40d9f223128f54da7d9a07043645ed35"}, + {file = "wasmtime-6.0.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:df1e6f735642490de585701c1030dc4e9cc4d853628370183fa3d91e9b5d816c"}, + {file = "wasmtime-6.0.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:5a457ae39c77521aced2a9d66148a38583965ded101cd97803a2f0aa86139b9e"}, + {file = "wasmtime-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:694420c5049d1bdd767daa7969eb73d1dd70a778f2d831d13c4aa14fe63beeef"}, + {file = "wasmtime-6.0.0-py3-none-win_amd64.whl", hash = "sha256:fe77820fecc6f12da97be35d2a3bf0be8e47904e8b7e75e0e07b156a79eadba0"}, +] + +[package.extras] +testing = ["coverage", "flake8 (==4.0.1)", "pycparser", "pytest", "pytest-flake8", "pytest-mypy"] + +[[package]] +name = "wrapt" +version = "1.15.0" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "4a76b0e25dee7a9ea96e1a5c4a13598b9a8d52865bc5e29ee187b207de31f7f0" diff --git a/implementations/py/polywrap-http-plugin/poetry.lock b/implementations/py/polywrap-http-plugin/poetry.lock deleted file mode 100644 index a5a75a7..0000000 --- a/implementations/py/polywrap-http-plugin/poetry.lock +++ /dev/null @@ -1,1423 +0,0 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. - -[[package]] -name = "anyio" -version = "3.6.2" -description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" -optional = false -python-versions = ">=3.6.2" -files = [ - {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, - {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, -] - -[package.dependencies] -idna = ">=2.8" -sniffio = ">=1.1" - -[package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] -trio = ["trio (>=0.16,<0.22)"] - -[[package]] -name = "astroid" -version = "2.14.2" -description = "An abstract syntax tree for Python with inference support." -category = "dev" -optional = false -python-versions = ">=3.7.2" -files = [ - {file = "astroid-2.14.2-py3-none-any.whl", hash = "sha256:0e0e3709d64fbffd3037e4ff403580550f14471fd3eaae9fa11cc9a5c7901153"}, - {file = "astroid-2.14.2.tar.gz", hash = "sha256:a3cf9f02c53dd259144a7e8f3ccd75d67c9a8c716ef183e0c1f291bc5d7bb3cf"}, -] - -[package.dependencies] -lazy-object-proxy = ">=1.4.0" -typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} -wrapt = [ - {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, -] - -[[package]] -name = "attrs" -version = "22.2.0" -description = "Classes Without Boilerplate" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, - {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, -] - -[package.extras] -cov = ["attrs[tests]", "coverage-enable-subprocess", "coverage[toml] (>=5.3)"] -dev = ["attrs[docs,tests]"] -docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope.interface"] -tests = ["attrs[tests-no-zope]", "zope.interface"] -tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] - -[[package]] -name = "backoff" -version = "2.2.1" -description = "Function decoration for backoff and retry" -category = "main" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, - {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, -] - -[[package]] -name = "bandit" -version = "1.7.4" -description = "Security oriented static analyser for python code." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "bandit-1.7.4-py3-none-any.whl", hash = "sha256:412d3f259dab4077d0e7f0c11f50f650cc7d10db905d98f6520a95a18049658a"}, - {file = "bandit-1.7.4.tar.gz", hash = "sha256:2d63a8c573417bae338962d4b9b06fbc6080f74ecd955a092849e1e65c717bd2"}, -] - -[package.dependencies] -colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=1.0.1" -PyYAML = ">=5.3.1" -stevedore = ">=1.20.0" - -[package.extras] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "toml"] -toml = ["toml"] -yaml = ["PyYAML"] - -[[package]] -name = "black" -version = "23.1.0" -description = "The uncompromising code formatter." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "black-23.1.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221"}, - {file = "black-23.1.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26"}, - {file = "black-23.1.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b"}, - {file = "black-23.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104"}, - {file = "black-23.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648"}, - {file = "black-23.1.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958"}, - {file = "black-23.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a"}, - {file = "black-23.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481"}, - {file = "black-23.1.0-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad"}, - {file = "black-23.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8"}, - {file = "black-23.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd"}, - {file = "black-23.1.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580"}, - {file = "black-23.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468"}, - {file = "black-23.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06"}, - {file = "black-23.1.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739"}, - {file = "black-23.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9"}, - {file = "black-23.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555"}, - {file = "black-23.1.0-py3-none-any.whl", hash = "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32"}, - {file = "black-23.1.0.tar.gz", hash = "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac"}, -] - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=0.9.0" -platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)"] - -[[package]] -name = "certifi" -version = "2022.12.7" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, - {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, -] - -[[package]] -name = "click" -version = "8.1.3" -description = "Composable command line interface toolkit" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "dill" -version = "0.3.6" -description = "serialize all of python" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, - {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, -] - -[package.extras] -graph = ["objgraph (>=1.7.2)"] - -[[package]] -name = "exceptiongroup" -version = "1.1.0" -description = "Backport of PEP 654 (exception groups)" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, - {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "gitdb" -version = "4.0.10" -description = "Git Object Database" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.10-py3-none-any.whl", hash = "sha256:c286cf298426064079ed96a9e4a9d39e7f3e9bf15ba60701e95f5492f28415c7"}, - {file = "gitdb-4.0.10.tar.gz", hash = "sha256:6eb990b69df4e15bad899ea868dc46572c3f75339735663b81de79b06f17eb9a"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.31" -description = "GitPython is a Python library used to interact with Git repositories" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.31-py3-none-any.whl", hash = "sha256:f04893614f6aa713a60cbbe1e6a97403ef633103cdd0ef5eb6efe0deb98dbe8d"}, - {file = "GitPython-3.1.31.tar.gz", hash = "sha256:8ce3bcf69adfdf7c7d503e78fd3b1c492af782d58893b650adb2ac8912ddd573"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[[package]] -name = "gql" -version = "3.4.0" -description = "GraphQL client for Python" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "gql-3.4.0-py2.py3-none-any.whl", hash = "sha256:59c8a0b8f0a2f3b0b2ff970c94de86f82f65cb1da3340bfe57143e5f7ea82f71"}, - {file = "gql-3.4.0.tar.gz", hash = "sha256:ca81aa8314fa88a8c57dd1ce34941278e0c352d762eb721edcba0387829ea7c0"}, -] - -[package.dependencies] -backoff = ">=1.11.1,<3.0" -graphql-core = ">=3.2,<3.3" -yarl = ">=1.6,<2.0" - -[package.extras] -aiohttp = ["aiohttp (>=3.7.1,<3.9.0)"] -all = ["aiohttp (>=3.7.1,<3.9.0)", "botocore (>=1.21,<2)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)", "websockets (>=10,<11)", "websockets (>=9,<10)"] -botocore = ["botocore (>=1.21,<2)"] -dev = ["aiofiles", "aiohttp (>=3.7.1,<3.9.0)", "black (==22.3.0)", "botocore (>=1.21,<2)", "check-manifest (>=0.42,<1)", "flake8 (==3.8.1)", "isort (==4.3.21)", "mock (==4.0.2)", "mypy (==0.910)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "sphinx (>=3.0.0,<4)", "sphinx-argparse (==0.2.5)", "sphinx-rtd-theme (>=0.4,<1)", "types-aiofiles", "types-mock", "types-requests", "urllib3 (>=1.26)", "vcrpy (==4.0.2)", "websockets (>=10,<11)", "websockets (>=9,<10)"] -requests = ["requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)"] -test = ["aiofiles", "aiohttp (>=3.7.1,<3.9.0)", "botocore (>=1.21,<2)", "mock (==4.0.2)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "requests (>=2.26,<3)", "requests-toolbelt (>=0.9.1,<1)", "urllib3 (>=1.26)", "vcrpy (==4.0.2)", "websockets (>=10,<11)", "websockets (>=9,<10)"] -test-no-transport = ["aiofiles", "mock (==4.0.2)", "parse (==1.15.0)", "pytest (==6.2.5)", "pytest-asyncio (==0.16.0)", "pytest-console-scripts (==1.3.1)", "pytest-cov (==3.0.0)", "vcrpy (==4.0.2)"] -websockets = ["websockets (>=10,<11)", "websockets (>=9,<10)"] - -[[package]] -name = "graphql-core" -version = "3.2.3" -description = "GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL." -category = "main" -optional = false -python-versions = ">=3.6,<4" -files = [ - {file = "graphql-core-3.2.3.tar.gz", hash = "sha256:06d2aad0ac723e35b1cb47885d3e5c45e956a53bc1b209a9fc5369007fe46676"}, - {file = "graphql_core-3.2.3-py3-none-any.whl", hash = "sha256:5766780452bd5ec8ba133f8bf287dc92713e3868ddd83aee4faab9fc3e303dc3"}, -] - -[[package]] -name = "h11" -version = "0.14.0" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - -[[package]] -name = "httpcore" -version = "0.16.3" -description = "A minimal low-level HTTP client." -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, - {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"}, -] - -[package.dependencies] -anyio = ">=3.0,<5.0" -certifi = "*" -h11 = ">=0.13,<0.15" -sniffio = ">=1.0.0,<2.0.0" - -[package.extras] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] - -[[package]] -name = "httpx" -version = "0.23.3" -description = "The next generation HTTP client." -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, - {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"}, -] - -[package.dependencies] -certifi = "*" -httpcore = ">=0.15.0,<0.17.0" -rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]} -sniffio = "*" - -[package.extras] -brotli = ["brotli", "brotlicffi"] -cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] -http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] - -[[package]] -name = "idna" -version = "3.4" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "isort" -version = "5.12.0" -description = "A Python utility / library to sort Python imports." -category = "dev" -optional = false -python-versions = ">=3.8.0" -files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, -] - -[package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] - -[[package]] -name = "lazy-object-proxy" -version = "1.9.0" -description = "A fast and thorough lazy object proxy." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, - {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, - {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, - {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, - {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, - {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, -] - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] - -[[package]] -name = "msgpack" -version = "1.0.4" -description = "MessagePack serializer" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88"}, - {file = "msgpack-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa"}, - {file = "msgpack-1.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e"}, - {file = "msgpack-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db"}, - {file = "msgpack-1.0.4-cp310-cp310-win32.whl", hash = "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef"}, - {file = "msgpack-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075"}, - {file = "msgpack-1.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9"}, - {file = "msgpack-1.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6"}, - {file = "msgpack-1.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae"}, - {file = "msgpack-1.0.4-cp36-cp36m-win32.whl", hash = "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6"}, - {file = "msgpack-1.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661"}, - {file = "msgpack-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227"}, - {file = "msgpack-1.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e"}, - {file = "msgpack-1.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236"}, - {file = "msgpack-1.0.4-cp37-cp37m-win32.whl", hash = "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44"}, - {file = "msgpack-1.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab"}, - {file = "msgpack-1.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e"}, - {file = "msgpack-1.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43"}, - {file = "msgpack-1.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243"}, - {file = "msgpack-1.0.4-cp38-cp38-win32.whl", hash = "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2"}, - {file = "msgpack-1.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55"}, - {file = "msgpack-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92"}, - {file = "msgpack-1.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8"}, - {file = "msgpack-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae"}, - {file = "msgpack-1.0.4-cp39-cp39-win32.whl", hash = "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c"}, - {file = "msgpack-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce"}, - {file = "msgpack-1.0.4.tar.gz", hash = "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f"}, -] - -[[package]] -name = "multidict" -version = "6.0.4" -description = "multidict implementation" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, - {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, - {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" -optional = false -python-versions = ">=3.5" -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "nodeenv" -version = "1.7.0" -description = "Node.js virtual environment builder" -category = "dev" -optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" -files = [ - {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, - {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, -] - -[package.dependencies] -setuptools = "*" - -[[package]] -name = "packaging" -version = "23.0" -description = "Core utilities for Python packages" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, - {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, -] - -[[package]] -name = "pathspec" -version = "0.11.0" -description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, - {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, -] - -[[package]] -name = "pbr" -version = "5.11.1" -description = "Python Build Reasonableness" -category = "dev" -optional = false -python-versions = ">=2.6" -files = [ - {file = "pbr-5.11.1-py2.py3-none-any.whl", hash = "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b"}, - {file = "pbr-5.11.1.tar.gz", hash = "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3"}, -] - -[[package]] -name = "platformdirs" -version = "3.1.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "platformdirs-3.1.0-py3-none-any.whl", hash = "sha256:13b08a53ed71021350c9e300d4ea8668438fb0046ab3937ac9a29913a1a1350a"}, - {file = "platformdirs-3.1.0.tar.gz", hash = "sha256:accc3665857288317f32c7bebb5a8e482ba717b474f3fc1d18ca7f9214be0cef"}, -] - -[package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] - -[[package]] -name = "pluggy" -version = "1.0.0" -description = "plugin and hook calling mechanisms for python" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "polywrap-client" -version = "0.1.0a11" -description = "" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_client-0.1.0a11-py3-none-any.whl", hash = "sha256:da8778a02ce0f9034d25a6aefa509efad184f28391a48190c8fe7f8feaac661f"}, - {file = "polywrap_client-0.1.0a11.tar.gz", hash = "sha256:bfdf10277e2bd2ce83a4c3b50a6f3551d55b672616474baf74f76e0746911933"}, -] - -[package.dependencies] -polywrap-core = "0.1.0a11" -polywrap-manifest = "0.1.0a11" -polywrap-msgpack = "0.1.0a11" -polywrap-result = "0.1.0a11" -polywrap-uri-resolvers = "0.1.0a11" -pycryptodome = ">=3.14.1,<4.0.0" -pysha3 = ">=1.0.2,<2.0.0" -result = ">=0.8.0,<0.9.0" -unsync = ">=1.4.0,<2.0.0" -wasmtime = ">=1.0.1,<2.0.0" - -[[package]] -name = "polywrap-core" -version = "0.1.0a11" -description = "" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_core-0.1.0a11-py3-none-any.whl", hash = "sha256:b2fcb703b52532d41008fa5edc21afba529312b45e3bc0700dabf74e0548c85d"}, - {file = "polywrap_core-0.1.0a11.tar.gz", hash = "sha256:581138a974cffeebf767d7c0d7740c846ee3b5c01efbac584232215ed41fc59b"}, -] - -[package.dependencies] -gql = "3.4.0" -graphql-core = ">=3.2.1,<4.0.0" -polywrap-manifest = "0.1.0a11" -polywrap-result = "0.1.0a11" -pydantic = ">=1.10.2,<2.0.0" - -[[package]] -name = "polywrap-manifest" -version = "0.1.0a11" -description = "WRAP manifest" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_manifest-0.1.0a11-py3-none-any.whl", hash = "sha256:e8f428ebcbcecd7481f96c5e789b8338010f17cb00ccd6e7d7619b59bab42da1"}, - {file = "polywrap_manifest-0.1.0a11.tar.gz", hash = "sha256:99f31417571a53e9f0de8ec1eeba2384cb8b10816bf17c05cd6b4f92708b976c"}, -] - -[package.dependencies] -polywrap-msgpack = "0.1.0a11" -polywrap-result = "0.1.0a11" -pydantic = ">=1.10.2,<2.0.0" - -[[package]] -name = "polywrap-msgpack" -version = "0.1.0a11" -description = "WRAP msgpack encoding" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_msgpack-0.1.0a11-py3-none-any.whl", hash = "sha256:d18647b9d876a57abcde5142f65df542f8cea9d5fd723ef3d32f18fb5eda6845"}, - {file = "polywrap_msgpack-0.1.0a11.tar.gz", hash = "sha256:216f394d98ab3207094f43a13130b3317c2a51a2333d4887704b9a06fbad925a"}, -] - -[package.dependencies] -msgpack = ">=1.0.4,<2.0.0" - -[[package]] -name = "polywrap-plugin" -version = "0.1.0a11" -description = "Plugin package" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_plugin-0.1.0a11-py3-none-any.whl", hash = "sha256:0a3c9f39d3ffc90fc03272a5eb54a65e2ecd363515603f3be71a2875c285dbfb"}, - {file = "polywrap_plugin-0.1.0a11.tar.gz", hash = "sha256:5feafd6d84583832c7f5294b26e9e2af86ec16cb71d6b5395a9ee54cd5485d07"}, -] - -[package.dependencies] -polywrap_core = "0.1.0a11" -polywrap_manifest = "0.1.0a11" -polywrap_msgpack = "0.1.0a11" -polywrap_result = "0.1.0a11" - -[[package]] -name = "polywrap-result" -version = "0.1.0a11" -description = "Result object" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_result-0.1.0a11-py3-none-any.whl", hash = "sha256:03675391244824a0ba4a681f6ed81b3260b68a3bdf90dcfaf5c5c7f9636c8cdc"}, - {file = "polywrap_result-0.1.0a11.tar.gz", hash = "sha256:90a5b0563eda73afb29360a46881aa90fda28222be8fdc30b40d774c5fe2f615"}, -] - -[[package]] -name = "polywrap-uri-resolvers" -version = "0.1.0a11" -description = "" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_uri_resolvers-0.1.0a11-py3-none-any.whl", hash = "sha256:3454974d73cb730feb596355a000009819196d50d093d1b51c22afc1e4e71273"}, - {file = "polywrap_uri_resolvers-0.1.0a11.tar.gz", hash = "sha256:65994922a7ea508af5df38357d1e0afcad1a5ffe2f2e454ba8334850661f913f"}, -] - -[package.dependencies] -polywrap-core = "0.1.0a11" -polywrap-result = "0.1.0a11" -polywrap-wasm = "0.1.0a11" -wasmtime = ">=1.0.1,<2.0.0" - -[[package]] -name = "polywrap-wasm" -version = "0.1.0a11" -description = "" -category = "main" -optional = false -python-versions = ">=3.10,<4.0" -files = [ - {file = "polywrap_wasm-0.1.0a11-py3-none-any.whl", hash = "sha256:484628ed7cffdd45656edc32f5e0548298f2cdb9247e74b6f9b884d636a02c98"}, - {file = "polywrap_wasm-0.1.0a11.tar.gz", hash = "sha256:14cb7007b78f17476134e18f042a989035aa99f746408f6068d77cac7bc68bb8"}, -] - -[package.dependencies] -polywrap-core = "0.1.0a11" -polywrap-manifest = "0.1.0a11" -polywrap-msgpack = "0.1.0a11" -polywrap-result = "0.1.0a11" -unsync = ">=1.4.0,<2.0.0" -wasmtime = ">=1.0.1,<2.0.0" - -[[package]] -name = "pycryptodome" -version = "3.17" -description = "Cryptographic library for Python" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "pycryptodome-3.17-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:2c5631204ebcc7ae33d11c43037b2dafe25e2ab9c1de6448eb6502ac69c19a56"}, - {file = "pycryptodome-3.17-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:04779cc588ad8f13c80a060b0b1c9d1c203d051d8a43879117fe6b8aaf1cd3fa"}, - {file = "pycryptodome-3.17-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:f812d58c5af06d939b2baccdda614a3ffd80531a26e5faca2c9f8b1770b2b7af"}, - {file = "pycryptodome-3.17-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:9453b4e21e752df8737fdffac619e93c9f0ec55ead9a45df782055eb95ef37d9"}, - {file = "pycryptodome-3.17-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:121d61663267f73692e8bde5ec0d23c9146465a0d75cad75c34f75c752527b01"}, - {file = "pycryptodome-3.17-cp27-cp27m-win32.whl", hash = "sha256:ba2d4fcb844c6ba5df4bbfee9352ad5352c5ae939ac450e06cdceff653280450"}, - {file = "pycryptodome-3.17-cp27-cp27m-win_amd64.whl", hash = "sha256:87e2ca3aa557781447428c4b6c8c937f10ff215202ab40ece5c13a82555c10d6"}, - {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f44c0d28716d950135ff21505f2c764498eda9d8806b7c78764165848aa419bc"}, - {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5a790bc045003d89d42e3b9cb3cc938c8561a57a88aaa5691512e8540d1ae79c"}, - {file = "pycryptodome-3.17-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:d086d46774e27b280e4cece8ab3d87299cf0d39063f00f1e9290d096adc5662a"}, - {file = "pycryptodome-3.17-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:5587803d5b66dfd99e7caa31ed91fba0fdee3661c5d93684028ad6653fce725f"}, - {file = "pycryptodome-3.17-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:e7debd9c439e7b84f53be3cf4ba8b75b3d0b6e6015212355d6daf44ac672e210"}, - {file = "pycryptodome-3.17-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ca1ceb6303be1282148f04ac21cebeebdb4152590842159877778f9cf1634f09"}, - {file = "pycryptodome-3.17-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:dc22cc00f804485a3c2a7e2010d9f14a705555f67020eb083e833cabd5bd82e4"}, - {file = "pycryptodome-3.17-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80ea8333b6a5f2d9e856ff2293dba2e3e661197f90bf0f4d5a82a0a6bc83a626"}, - {file = "pycryptodome-3.17-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c133f6721fba313722a018392a91e3c69d3706ae723484841752559e71d69dc6"}, - {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:333306eaea01fde50a73c4619e25631e56c4c61bd0fb0a2346479e67e3d3a820"}, - {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:1a30f51b990994491cec2d7d237924e5b6bd0d445da9337d77de384ad7f254f9"}, - {file = "pycryptodome-3.17-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:909e36a43fe4a8a3163e9c7fc103867825d14a2ecb852a63d3905250b308a4e5"}, - {file = "pycryptodome-3.17-cp35-abi3-win32.whl", hash = "sha256:a3228728a3808bc9f18c1797ec1179a0efb5068c817b2ffcf6bcd012494dffb2"}, - {file = "pycryptodome-3.17-cp35-abi3-win_amd64.whl", hash = "sha256:9ec565e89a6b400eca814f28d78a9ef3f15aea1df74d95b28b7720739b28f37f"}, - {file = "pycryptodome-3.17-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:e1819b67bcf6ca48341e9b03c2e45b1c891fa8eb1a8458482d14c2805c9616f2"}, - {file = "pycryptodome-3.17-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:f8e550caf52472ae9126953415e4fc554ab53049a5691c45b8816895c632e4d7"}, - {file = "pycryptodome-3.17-pp27-pypy_73-win32.whl", hash = "sha256:afbcdb0eda20a0e1d44e3a1ad6d4ec3c959210f4b48cabc0e387a282f4c7deb8"}, - {file = "pycryptodome-3.17-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a74f45aee8c5cc4d533e585e0e596e9f78521e1543a302870a27b0ae2106381e"}, - {file = "pycryptodome-3.17-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38bbd6717eac084408b4094174c0805bdbaba1f57fc250fd0309ae5ec9ed7e09"}, - {file = "pycryptodome-3.17-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f68d6c8ea2974a571cacb7014dbaada21063a0375318d88ac1f9300bc81e93c3"}, - {file = "pycryptodome-3.17-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:8198f2b04c39d817b206ebe0db25a6653bb5f463c2319d6f6d9a80d012ac1e37"}, - {file = "pycryptodome-3.17-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a232474cd89d3f51e4295abe248a8b95d0332d153bf46444e415409070aae1e"}, - {file = "pycryptodome-3.17-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4992ec965606054e8326e83db1c8654f0549cdb26fce1898dc1a20bc7684ec1c"}, - {file = "pycryptodome-3.17-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53068e33c74f3b93a8158dacaa5d0f82d254a81b1002e0cd342be89fcb3433eb"}, - {file = "pycryptodome-3.17-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:74794a2e2896cd0cf56fdc9db61ef755fa812b4a4900fa46c49045663a92b8d0"}, - {file = "pycryptodome-3.17.tar.gz", hash = "sha256:bce2e2d8e82fcf972005652371a3e8731956a0c1fbb719cc897943b3695ad91b"}, -] - -[[package]] -name = "pydantic" -version = "1.10.5" -description = "Data validation and settings management using python type hints" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pydantic-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5920824fe1e21cbb3e38cf0f3dd24857c8959801d1031ce1fac1d50857a03bfb"}, - {file = "pydantic-1.10.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3bb99cf9655b377db1a9e47fa4479e3330ea96f4123c6c8200e482704bf1eda2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2185a3b3d98ab4506a3f6707569802d2d92c3a7ba3a9a35683a7709ea6c2aaa2"}, - {file = "pydantic-1.10.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f582cac9d11c227c652d3ce8ee223d94eb06f4228b52a8adaafa9fa62e73d5c9"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c9e5b778b6842f135902e2d82624008c6a79710207e28e86966cd136c621bfee"}, - {file = "pydantic-1.10.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72ef3783be8cbdef6bca034606a5de3862be6b72415dc5cb1fb8ddbac110049a"}, - {file = "pydantic-1.10.5-cp310-cp310-win_amd64.whl", hash = "sha256:45edea10b75d3da43cfda12f3792833a3fa70b6eee4db1ed6aed528cef17c74e"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:63200cd8af1af2c07964546b7bc8f217e8bda9d0a2ef0ee0c797b36353914984"}, - {file = "pydantic-1.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:305d0376c516b0dfa1dbefeae8c21042b57b496892d721905a6ec6b79494a66d"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd326aff5d6c36f05735c7c9b3d5b0e933b4ca52ad0b6e4b38038d82703d35b"}, - {file = "pydantic-1.10.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bb0452d7b8516178c969d305d9630a3c9b8cf16fcf4713261c9ebd465af0d73"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9a9d9155e2a9f38b2eb9374c88f02fd4d6851ae17b65ee786a87d032f87008f8"}, - {file = "pydantic-1.10.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f836444b4c5ece128b23ec36a446c9ab7f9b0f7981d0d27e13a7c366ee163f8a"}, - {file = "pydantic-1.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:8481dca324e1c7b715ce091a698b181054d22072e848b6fc7895cd86f79b4449"}, - {file = "pydantic-1.10.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:87f831e81ea0589cd18257f84386bf30154c5f4bed373b7b75e5cb0b5d53ea87"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ce1612e98c6326f10888df951a26ec1a577d8df49ddcaea87773bfbe23ba5cc"}, - {file = "pydantic-1.10.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58e41dd1e977531ac6073b11baac8c013f3cd8706a01d3dc74e86955be8b2c0c"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6a4b0aab29061262065bbdede617ef99cc5914d1bf0ddc8bcd8e3d7928d85bd6"}, - {file = "pydantic-1.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:36e44a4de37b8aecffa81c081dbfe42c4d2bf9f6dff34d03dce157ec65eb0f15"}, - {file = "pydantic-1.10.5-cp37-cp37m-win_amd64.whl", hash = "sha256:261f357f0aecda005934e413dfd7aa4077004a174dafe414a8325e6098a8e419"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b429f7c457aebb7fbe7cd69c418d1cd7c6fdc4d3c8697f45af78b8d5a7955760"}, - {file = "pydantic-1.10.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:663d2dd78596c5fa3eb996bc3f34b8c2a592648ad10008f98d1348be7ae212fb"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51782fd81f09edcf265823c3bf43ff36d00db246eca39ee765ef58dc8421a642"}, - {file = "pydantic-1.10.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c428c0f64a86661fb4873495c4fac430ec7a7cef2b8c1c28f3d1a7277f9ea5ab"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:76c930ad0746c70f0368c4596020b736ab65b473c1f9b3872310a835d852eb19"}, - {file = "pydantic-1.10.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3257bd714de9db2102b742570a56bf7978e90441193acac109b1f500290f5718"}, - {file = "pydantic-1.10.5-cp38-cp38-win_amd64.whl", hash = "sha256:f5bee6c523d13944a1fdc6f0525bc86dbbd94372f17b83fa6331aabacc8fd08e"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:532e97c35719f137ee5405bd3eeddc5c06eb91a032bc755a44e34a712420daf3"}, - {file = "pydantic-1.10.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ca9075ab3de9e48b75fa8ccb897c34ccc1519177ad8841d99f7fd74cf43be5bf"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd46a0e6296346c477e59a954da57beaf9c538da37b9df482e50f836e4a7d4bb"}, - {file = "pydantic-1.10.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3353072625ea2a9a6c81ad01b91e5c07fa70deb06368c71307529abf70d23325"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3f9d9b2be177c3cb6027cd67fbf323586417868c06c3c85d0d101703136e6b31"}, - {file = "pydantic-1.10.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b473d00ccd5c2061fd896ac127b7755baad233f8d996ea288af14ae09f8e0d1e"}, - {file = "pydantic-1.10.5-cp39-cp39-win_amd64.whl", hash = "sha256:5f3bc8f103b56a8c88021d481410874b1f13edf6e838da607dcb57ecff9b4594"}, - {file = "pydantic-1.10.5-py3-none-any.whl", hash = "sha256:7c5b94d598c90f2f46b3a983ffb46ab806a67099d118ae0da7ef21a2a4033b28"}, - {file = "pydantic-1.10.5.tar.gz", hash = "sha256:9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a"}, -] - -[package.dependencies] -typing-extensions = ">=4.2.0" - -[package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] - -[[package]] -name = "pylint" -version = "2.16.3" -description = "python code static checker" -category = "dev" -optional = false -python-versions = ">=3.7.2" -files = [ - {file = "pylint-2.16.3-py3-none-any.whl", hash = "sha256:3e803be66e3a34c76b0aa1a3cf4714b538335e79bd69718d34fcf36d8fff2a2b"}, - {file = "pylint-2.16.3.tar.gz", hash = "sha256:0decdf8dfe30298cd9f8d82e9a1542da464db47da60e03641631086671a03621"}, -] - -[package.dependencies] -astroid = ">=2.14.2,<=2.16.0-dev0" -colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -dill = [ - {version = ">=0.2", markers = "python_version < \"3.11\""}, - {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, -] -isort = ">=4.2.5,<6" -mccabe = ">=0.6,<0.8" -platformdirs = ">=2.2.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -tomlkit = ">=0.10.1" - -[package.extras] -spelling = ["pyenchant (>=3.2,<4.0)"] -testutils = ["gitpython (>3)"] - -[[package]] -name = "pyright" -version = "1.1.296" -description = "Command line wrapper for pyright" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pyright-1.1.296-py3-none-any.whl", hash = "sha256:51cc5f05807b1fb53f9f0e14736b8f772b500a3ba4e0edeb99727e68e700d9ea"}, - {file = "pyright-1.1.296.tar.gz", hash = "sha256:6c3cd394473e55a516ebe443d02b83e63456ef29f052dcf8e64e7875c1418fa6"}, -] - -[package.dependencies] -nodeenv = ">=1.6.0" - -[package.extras] -all = ["twine (>=3.4.1)"] -dev = ["twine (>=3.4.1)"] - -[[package]] -name = "pysha3" -version = "1.0.2" -description = "SHA-3 (Keccak) for Python 2.7 - 3.5" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "pysha3-1.0.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:6e6a84efb7856f5d760ee55cd2b446972cb7b835676065f6c4f694913ea8f8d9"}, - {file = "pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f9046d59b3e72aa84f6dae83a040bd1184ebd7fef4e822d38186a8158c89e3cf"}, - {file = "pysha3-1.0.2-cp27-cp27m-win32.whl", hash = "sha256:9fdd28884c5d0b4edfed269b12badfa07f1c89dbc5c9c66dd279833894a9896b"}, - {file = "pysha3-1.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:41be70b06c8775a9e4d4eeb52f2f6a3f356f17539a54eac61f43a29e42fd453d"}, - {file = "pysha3-1.0.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:68c3a60a39f9179b263d29e221c1bd6e01353178b14323c39cc70593c30f21c5"}, - {file = "pysha3-1.0.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:59111c08b8f34495575d12e5f2ce3bafb98bea470bc81e70c8b6df99aef0dd2f"}, - {file = "pysha3-1.0.2-cp33-cp33m-win32.whl", hash = "sha256:571a246308a7b63f15f5aa9651f99cf30f2a6acba18eddf28f1510935968b603"}, - {file = "pysha3-1.0.2-cp33-cp33m-win_amd64.whl", hash = "sha256:93abd775dac570cb9951c4e423bcb2bc6303a9d1dc0dc2b7afa2dd401d195b24"}, - {file = "pysha3-1.0.2-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:11a2ba7a2e1d9669d0052fc8fb30f5661caed5512586ecbeeaf6bf9478ab5c48"}, - {file = "pysha3-1.0.2-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:5ec8da7c5c70a53b5fa99094af3ba8d343955b212bc346a0d25f6ff75853999f"}, - {file = "pysha3-1.0.2-cp34-cp34m-win32.whl", hash = "sha256:9c778fa8b161dc9348dc5cc361e94d54aa5ff18413788f4641f6600d4893a608"}, - {file = "pysha3-1.0.2-cp34-cp34m-win_amd64.whl", hash = "sha256:fd7e66999060d079e9c0e8893e78d8017dad4f59721f6fe0be6307cd32127a07"}, - {file = "pysha3-1.0.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:827b308dc025efe9b6b7bae36c2e09ed0118a81f792d888548188e97b9bf9a3d"}, - {file = "pysha3-1.0.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:4416f16b0f1605c25f627966f76873e432971824778b369bd9ce1bb63d6566d9"}, - {file = "pysha3-1.0.2-cp35-cp35m-win32.whl", hash = "sha256:c93a2676e6588abcfaecb73eb14485c81c63b94fca2000a811a7b4fb5937b8e8"}, - {file = "pysha3-1.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:684cb01d87ed6ff466c135f1c83e7e4042d0fc668fa20619f581e6add1d38d77"}, - {file = "pysha3-1.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:386998ee83e313b6911327174e088021f9f2061cbfa1651b97629b761e9ef5c4"}, - {file = "pysha3-1.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c7c2adcc43836223680ebdf91f1d3373543dc32747c182c8ca2e02d1b69ce030"}, - {file = "pysha3-1.0.2-cp36-cp36m-win32.whl", hash = "sha256:cd5c961b603bd2e6c2b5ef9976f3238a561c58569945d4165efb9b9383b050ef"}, - {file = "pysha3-1.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:0060a66be16665d90c432f55a0ba1f6480590cfb7d2ad389e688a399183474f0"}, - {file = "pysha3-1.0.2.tar.gz", hash = "sha256:fe988e73f2ce6d947220624f04d467faf05f1bbdbc64b0a201296bb3af92739e"}, -] - -[[package]] -name = "pytest" -version = "7.2.2" -description = "pytest: simple powerful testing with Python" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, - {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, -] - -[package.dependencies] -attrs = ">=19.2.0" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} - -[package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] - -[[package]] -name = "pytest-asyncio" -version = "0.20.3" -description = "Pytest support for asyncio" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pytest-asyncio-0.20.3.tar.gz", hash = "sha256:83cbf01169ce3e8eb71c6c278ccb0574d1a7a3bb8eaaf5e50e0ad342afb33b36"}, - {file = "pytest_asyncio-0.20.3-py3-none-any.whl", hash = "sha256:f129998b209d04fcc65c96fc85c11e5316738358909a8399e93be553d7656442"}, -] - -[package.dependencies] -pytest = ">=6.1.0" - -[package.extras] -docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] -testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] - -[[package]] -name = "pyyaml" -version = "6.0" -description = "YAML parser and emitter for Python" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, -] - -[[package]] -name = "result" -version = "0.8.0" -description = "A Rust-like result type for Python" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "result-0.8.0-py3-none-any.whl", hash = "sha256:d6a6258f32c057a4e0478999c6ce43dcadaf8ea435f58ac601ae2768f93ef243"}, - {file = "result-0.8.0.tar.gz", hash = "sha256:c48c909e92181a075ba358228a3fe161e26d205dad416ad81f27f23515a5626d"}, -] - -[[package]] -name = "rfc3986" -version = "1.5.0" -description = "Validating URI References per RFC 3986" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, - {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"}, -] - -[package.dependencies] -idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} - -[package.extras] -idna2008 = ["idna"] - -[[package]] -name = "setuptools" -version = "67.4.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "setuptools-67.4.0-py3-none-any.whl", hash = "sha256:f106dee1b506dee5102cc3f3e9e68137bbad6d47b616be7991714b0c62204251"}, - {file = "setuptools-67.4.0.tar.gz", hash = "sha256:e5fd0a713141a4a105412233c63dc4e17ba0090c8e8334594ac790ec97792330"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] - -[[package]] -name = "smmap" -version = "5.0.0" -description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "smmap-5.0.0-py3-none-any.whl", hash = "sha256:2aba19d6a040e78d8b09de5c57e96207b09ed71d8e55ce0959eeee6c8e190d94"}, - {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, -] - -[[package]] -name = "sniffio" -version = "1.3.0" -description = "Sniff out which async library your code is running under" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, -] - -[[package]] -name = "stevedore" -version = "5.0.0" -description = "Manage dynamic plugins for Python applications" -category = "dev" -optional = false -python-versions = ">=3.8" -files = [ - {file = "stevedore-5.0.0-py3-none-any.whl", hash = "sha256:bd5a71ff5e5e5f5ea983880e4a1dd1bb47f8feebbb3d95b592398e2f02194771"}, - {file = "stevedore-5.0.0.tar.gz", hash = "sha256:2c428d2338976279e8eb2196f7a94910960d9f7ba2f41f3988511e95ca447021"}, -] - -[package.dependencies] -pbr = ">=2.0.0,<2.1.0 || >2.1.0" - -[[package]] -name = "tomli" -version = "2.0.1" -description = "A lil' TOML parser" -category = "dev" -optional = false -python-versions = ">=3.7" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "tomlkit" -version = "0.11.6" -description = "Style preserving TOML library" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "tomlkit-0.11.6-py3-none-any.whl", hash = "sha256:07de26b0d8cfc18f871aec595fda24d95b08fef89d147caa861939f37230bf4b"}, - {file = "tomlkit-0.11.6.tar.gz", hash = "sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73"}, -] - -[[package]] -name = "typing-extensions" -version = "4.5.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, -] - -[[package]] -name = "unsync" -version = "1.4.0" -description = "Unsynchronize asyncio" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "unsync-1.4.0.tar.gz", hash = "sha256:a29e0f8952ffb0b3a0453ce436819a5a1ba2febbb5caa707c319f6f98d35f3c5"}, -] - -[[package]] -name = "wasmtime" -version = "1.0.1" -description = "A WebAssembly runtime powered by Wasmtime" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "wasmtime-1.0.1-py3-none-any.whl", hash = "sha256:20c1df95a3506408dcf2116502720e7cb248f1e98122b868932dbc9bbacb4ebd"}, - {file = "wasmtime-1.0.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:9ccb42db2511b49c805b23a87e7c191d34112a9568292d475ec966204ac42bc3"}, - {file = "wasmtime-1.0.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:439960f6fb2a48482c8f7beaa2b491ce684f1599d9bfdd519b5320305edc2f39"}, - {file = "wasmtime-1.0.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:b257ec11ba6d39e3cd9eed4f90c4633bcf3b964219948254244347236fe45172"}, - {file = "wasmtime-1.0.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:f34ac6db5f91ab359566f531dca7c53d2e63f657d5b10ec9cf53d1c29ac718c0"}, - {file = "wasmtime-1.0.1-py3-none-win_amd64.whl", hash = "sha256:0ae7e2d43a5d9da72a884a695049d7b1773717ba059bdb0ad0369e5c1e03a388"}, -] - -[package.extras] -testing = ["coverage", "flake8 (==4.0.1)", "pycparser", "pytest", "pytest-flake8", "pytest-mypy"] - -[[package]] -name = "wrapt" -version = "1.15.0" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -files = [ - {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, - {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, - {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, - {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, - {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, - {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, - {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, - {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, - {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, - {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, - {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, - {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, - {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, - {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, - {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, - {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, - {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, - {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, - {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, - {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, - {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, - {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, - {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, - {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, - {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, - {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, - {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, - {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, - {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, - {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, - {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, - {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, - {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, - {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, - {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, - {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, - {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, - {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, -] - -[[package]] -name = "yarl" -version = "1.8.2" -description = "Yet another URL library" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5"}, - {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863"}, - {file = "yarl-1.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3fc056e35fa6fba63248d93ff6e672c096f95f7836938241ebc8260e062832fe"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58a3c13d1c3005dbbac5c9f0d3210b60220a65a999b1833aa46bd6677c69b08e"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10b08293cda921157f1e7c2790999d903b3fd28cd5c208cf8826b3b508026996"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de986979bbd87272fe557e0a8fcb66fd40ae2ddfe28a8b1ce4eae22681728fef"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c4fcfa71e2c6a3cb568cf81aadc12768b9995323186a10827beccf5fa23d4f8"}, - {file = "yarl-1.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae4d7ff1049f36accde9e1ef7301912a751e5bae0a9d142459646114c70ecba6"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bf071f797aec5b96abfc735ab97da9fd8f8768b43ce2abd85356a3127909d146"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:74dece2bfc60f0f70907c34b857ee98f2c6dd0f75185db133770cd67300d505f"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:df60a94d332158b444301c7f569659c926168e4d4aad2cfbf4bce0e8fb8be826"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:63243b21c6e28ec2375f932a10ce7eda65139b5b854c0f6b82ed945ba526bff3"}, - {file = "yarl-1.8.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cfa2bbca929aa742b5084fd4663dd4b87c191c844326fcb21c3afd2d11497f80"}, - {file = "yarl-1.8.2-cp310-cp310-win32.whl", hash = "sha256:b05df9ea7496df11b710081bd90ecc3a3db6adb4fee36f6a411e7bc91a18aa42"}, - {file = "yarl-1.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:24ad1d10c9db1953291f56b5fe76203977f1ed05f82d09ec97acb623a7976574"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2a1fca9588f360036242f379bfea2b8b44cae2721859b1c56d033adfd5893634"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f37db05c6051eff17bc832914fe46869f8849de5b92dc4a3466cd63095d23dfd"}, - {file = "yarl-1.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77e913b846a6b9c5f767b14dc1e759e5aff05502fe73079f6f4176359d832581"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0978f29222e649c351b173da2b9b4665ad1feb8d1daa9d971eb90df08702668a"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:388a45dc77198b2460eac0aca1efd6a7c09e976ee768b0d5109173e521a19daf"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2305517e332a862ef75be8fad3606ea10108662bc6fe08509d5ca99503ac2aee"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42430ff511571940d51e75cf42f1e4dbdded477e71c1b7a17f4da76c1da8ea76"}, - {file = "yarl-1.8.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3150078118f62371375e1e69b13b48288e44f6691c1069340081c3fd12c94d5b"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c15163b6125db87c8f53c98baa5e785782078fbd2dbeaa04c6141935eb6dab7a"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4d04acba75c72e6eb90745447d69f84e6c9056390f7a9724605ca9c56b4afcc6"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e7fd20d6576c10306dea2d6a5765f46f0ac5d6f53436217913e952d19237efc4"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:75c16b2a900b3536dfc7014905a128a2bea8fb01f9ee26d2d7d8db0a08e7cb2c"}, - {file = "yarl-1.8.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6d88056a04860a98341a0cf53e950e3ac9f4e51d1b6f61a53b0609df342cc8b2"}, - {file = "yarl-1.8.2-cp311-cp311-win32.whl", hash = "sha256:fb742dcdd5eec9f26b61224c23baea46c9055cf16f62475e11b9b15dfd5c117b"}, - {file = "yarl-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:8c46d3d89902c393a1d1e243ac847e0442d0196bbd81aecc94fcebbc2fd5857c"}, - {file = "yarl-1.8.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ceff9722e0df2e0a9e8a79c610842004fa54e5b309fe6d218e47cd52f791d7ef"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f6b4aca43b602ba0f1459de647af954769919c4714706be36af670a5f44c9c1"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1684a9bd9077e922300ecd48003ddae7a7474e0412bea38d4631443a91d61077"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebb78745273e51b9832ef90c0898501006670d6e059f2cdb0e999494eb1450c2"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3adeef150d528ded2a8e734ebf9ae2e658f4c49bf413f5f157a470e17a4a2e89"}, - {file = "yarl-1.8.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57a7c87927a468e5a1dc60c17caf9597161d66457a34273ab1760219953f7f4c"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:efff27bd8cbe1f9bd127e7894942ccc20c857aa8b5a0327874f30201e5ce83d0"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a783cd344113cb88c5ff7ca32f1f16532a6f2142185147822187913eb989f739"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:705227dccbe96ab02c7cb2c43e1228e2826e7ead880bb19ec94ef279e9555b5b"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:34c09b43bd538bf6c4b891ecce94b6fa4f1f10663a8d4ca589a079a5018f6ed7"}, - {file = "yarl-1.8.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a48f4f7fea9a51098b02209d90297ac324241bf37ff6be6d2b0149ab2bd51b37"}, - {file = "yarl-1.8.2-cp37-cp37m-win32.whl", hash = "sha256:0414fd91ce0b763d4eadb4456795b307a71524dbacd015c657bb2a39db2eab89"}, - {file = "yarl-1.8.2-cp37-cp37m-win_amd64.whl", hash = "sha256:d881d152ae0007809c2c02e22aa534e702f12071e6b285e90945aa3c376463c5"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5df5e3d04101c1e5c3b1d69710b0574171cc02fddc4b23d1b2813e75f35a30b1"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7a66c506ec67eb3159eea5096acd05f5e788ceec7b96087d30c7d2865a243918"}, - {file = "yarl-1.8.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2b4fa2606adf392051d990c3b3877d768771adc3faf2e117b9de7eb977741229"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e21fb44e1eff06dd6ef971d4bdc611807d6bd3691223d9c01a18cec3677939e"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93202666046d9edadfe9f2e7bf5e0782ea0d497b6d63da322e541665d65a044e"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fc77086ce244453e074e445104f0ecb27530d6fd3a46698e33f6c38951d5a0f1"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dd68a92cab699a233641f5929a40f02a4ede8c009068ca8aa1fe87b8c20ae3"}, - {file = "yarl-1.8.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b372aad2b5f81db66ee7ec085cbad72c4da660d994e8e590c997e9b01e44901"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e6f3515aafe0209dd17fb9bdd3b4e892963370b3de781f53e1746a521fb39fc0"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:dfef7350ee369197106805e193d420b75467b6cceac646ea5ed3049fcc950a05"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:728be34f70a190566d20aa13dc1f01dc44b6aa74580e10a3fb159691bc76909d"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:ff205b58dc2929191f68162633d5e10e8044398d7a45265f90a0f1d51f85f72c"}, - {file = "yarl-1.8.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baf211dcad448a87a0d9047dc8282d7de59473ade7d7fdf22150b1d23859f946"}, - {file = "yarl-1.8.2-cp38-cp38-win32.whl", hash = "sha256:272b4f1599f1b621bf2aabe4e5b54f39a933971f4e7c9aa311d6d7dc06965165"}, - {file = "yarl-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:326dd1d3caf910cd26a26ccbfb84c03b608ba32499b5d6eeb09252c920bcbe4f"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f8ca8ad414c85bbc50f49c0a106f951613dfa5f948ab69c10ce9b128d368baf8"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:418857f837347e8aaef682679f41e36c24250097f9e2f315d39bae3a99a34cbf"}, - {file = "yarl-1.8.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ae0eec05ab49e91a78700761777f284c2df119376e391db42c38ab46fd662b77"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:009a028127e0a1755c38b03244c0bea9d5565630db9c4cf9572496e947137a87"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3edac5d74bb3209c418805bda77f973117836e1de7c000e9755e572c1f7850d0"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da65c3f263729e47351261351b8679c6429151ef9649bba08ef2528ff2c423b2"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef8fb25e52663a1c85d608f6dd72e19bd390e2ecaf29c17fb08f730226e3a08"}, - {file = "yarl-1.8.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcd7bb1e5c45274af9a1dd7494d3c52b2be5e6bd8d7e49c612705fd45420b12d"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44ceac0450e648de86da8e42674f9b7077d763ea80c8ceb9d1c3e41f0f0a9951"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:97209cc91189b48e7cfe777237c04af8e7cc51eb369004e061809bcdf4e55220"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:48dd18adcf98ea9cd721a25313aef49d70d413a999d7d89df44f469edfb38a06"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e59399dda559688461762800d7fb34d9e8a6a7444fd76ec33220a926c8be1516"}, - {file = "yarl-1.8.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d617c241c8c3ad5c4e78a08429fa49e4b04bedfc507b34b4d8dceb83b4af3588"}, - {file = "yarl-1.8.2-cp39-cp39-win32.whl", hash = "sha256:cb6d48d80a41f68de41212f3dfd1a9d9898d7841c8f7ce6696cf2fd9cb57ef83"}, - {file = "yarl-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:6604711362f2dbf7160df21c416f81fac0de6dbcf0b5445a2ef25478ecc4c778"}, - {file = "yarl-1.8.2.tar.gz", hash = "sha256:49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562"}, -] - -[package.dependencies] -idna = ">=2.0" -multidict = ">=4.0" - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "06993b18dc7b900d21ea61a7199e60929f62d3d8f50a6d506173bea78c5a8c20" diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py deleted file mode 100644 index c326f93..0000000 --- a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__init__.py +++ /dev/null @@ -1,147 +0,0 @@ -import base64 -from pathlib import Path -from typing import List, Optional, TypedDict, Union, cast -from enum import Enum -import json - -from httpx import AsyncClient, Response -from polywrap_plugin import PluginModule, PluginPackage -from polywrap_core import Invoker -from polywrap_result import Ok, Result -from polywrap_manifest import WrapManifest -from polywrap_msgpack.generic_map import GenericMap - - -class HttpResponseType(Enum): - TEXT = "TEXT" - BINARY = "BINARY" - - -class FormDataEntry(TypedDict): - name: str - value: Optional[str] - fileName: Optional[str] - type: Optional[str] - - -class HttpRequest(TypedDict): - headers: Optional[GenericMap[str, str]] - urlParams: Optional[GenericMap[str, str]] - responseType: Union[HttpResponseType, str, int] - body: Optional[str] - formData: Optional[List[FormDataEntry]] - timeout: Optional[int] - -class HttpResponse(TypedDict): - status: int - statusText: str - headers: Optional[GenericMap[str, str]] - body: Optional[str] - - -class ArgsGet(TypedDict): - url: str - request: Optional[HttpRequest] - - -class ArgsPost(TypedDict): - url: str - request: Optional[HttpRequest] - - -def isResponseBinary(args: ArgsGet) -> bool: - if args.get("request") is None: - return False - if not args["request"]: - return False - if isinstance(args["request"]["responseType"], int) and args["request"]["responseType"] == 1: - return True - if isinstance(args["request"]["responseType"], str) and args["request"]["responseType"] == "BINARY": - return True - return args["request"]["responseType"] == HttpResponseType.BINARY - - -class HttpPlugin(PluginModule[None]): - def __init__(self): - super().__init__(None) - self.client = AsyncClient() - - async def get(self, args: ArgsGet, invoker: Invoker) -> Result[HttpResponse]: - res: Response - if args.get("request") is None: - res = await self.client.get(args["url"]) - elif args["request"] is not None: - res = await self.client.get( - args["url"], - params=args["request"]["urlParams"], - headers=args["request"]["headers"], - timeout=cast(float, args["request"]["timeout"]), - ) - else: - res = await self.client.get(args["url"]) - - if isResponseBinary(args): - return Ok( - HttpResponse( - status=res.status_code, - statusText=res.reason_phrase, - headers=GenericMap(dict(res.headers)), - body=base64.b64encode(res.content).decode(), - ) - ) - - return Ok( - HttpResponse( - status=res.status_code, - statusText=res.reason_phrase, - headers=GenericMap(dict(res.headers)), - body=res.text, - ) - ) - - async def post(self, args: ArgsPost, invoker: Invoker) -> Result[HttpResponse]: - res: Response - if args.get("request") is None: - res = await self.client.post(args["url"]) - elif args["request"] is not None: - content = ( - args["request"]["body"].encode() - if args["request"]["body"] is not None - else None - ) - res = await self.client.post( - args["url"], - content=content, - params=args["request"]["urlParams"], - headers=args["request"]["headers"], - timeout=cast(float, args["request"]["timeout"]), - ) - else: - res = await self.client.post(args["url"]) - - if args["request"] is not None and args["request"]["responseType"] == HttpResponseType.BINARY: - return Ok( - HttpResponse( - status=res.status_code, - statusText=res.reason_phrase, - headers=GenericMap(dict(res.headers)), - body=base64.b64encode(res.content).decode(), - ) - ) - - return Ok( - HttpResponse( - status=res.status_code, - statusText=res.reason_phrase, - headers=GenericMap(dict(res.headers)), - body=res.text, - ) - ) - - -def http_plugin(): - manifest_path = Path(__file__).parent.joinpath("manifest.json") - with open(manifest_path, "r") as f: - json_manifest = json.load(f) - manifest = WrapManifest(**json_manifest) - return PluginPackage(module=HttpPlugin(), manifest=manifest) diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 08e958227d8ecb2afa9dd63c761a5e01d8aef538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4479 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 diff --git a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json b/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json deleted file mode 100644 index 13013a9..0000000 --- a/implementations/py/polywrap-http-plugin/polywrap_http_plugin/manifest.json +++ /dev/null @@ -1,468 +0,0 @@ -{ - "name": "Http", - "type": "plugin", - "version": "0.1", - "abi": { - "importedEnumTypes": [ - { - "constants": ["TEXT", "BINARY"], - "kind": 520, - "namespace": "Http", - "nativeType": "ResponseType", - "type": "Http_ResponseType", - "uri": "ens/wraps.eth:http@1.1.0" - } - ], - "importedModuleTypes": [ - { - "isInterface": false, - "kind": 256, - "methods": [ - { - "arguments": [ - { - "kind": 34, - "name": "url", - "required": true, - "scalar": { - "kind": 4, - "name": "url", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "request", - "object": { - "kind": 8192, - "name": "request", - "type": "Http_Request" - }, - "type": "Http_Request" - } - ], - "kind": 64, - "name": "get", - "required": true, - "return": { - "kind": 34, - "name": "get", - "object": { - "kind": 8192, - "name": "get", - "type": "Http_Response" - }, - "type": "Http_Response" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "url", - "required": true, - "scalar": { - "kind": 4, - "name": "url", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "request", - "object": { - "kind": 8192, - "name": "request", - "type": "Http_Request" - }, - "type": "Http_Request" - } - ], - "kind": 64, - "name": "post", - "required": true, - "return": { - "kind": 34, - "name": "post", - "object": { - "kind": 8192, - "name": "post", - "type": "Http_Response" - }, - "type": "Http_Response" - }, - "type": "Method" - } - ], - "namespace": "Http", - "nativeType": "Module", - "type": "Http_Module", - "uri": "ens/wraps.eth:http@1.1.0" - } - ], - "importedObjectTypes": [ - { - "kind": 1025, - "namespace": "Http", - "nativeType": "Request", - "properties": [ - { - "kind": 34, - "map": { - "key": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - }, - "kind": 262146, - "name": "headers", - "scalar": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - }, - "type": "Map", - "value": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - } - }, - "name": "headers", - "type": "Map" - }, - { - "kind": 34, - "map": { - "key": { - "kind": 4, - "name": "urlParams", - "required": true, - "type": "String" - }, - "kind": 262146, - "name": "urlParams", - "scalar": { - "kind": 4, - "name": "urlParams", - "required": true, - "type": "String" - }, - "type": "Map", - "value": { - "kind": 4, - "name": "urlParams", - "required": true, - "type": "String" - } - }, - "name": "urlParams", - "type": "Map" - }, - { - "enum": { - "kind": 16384, - "name": "responseType", - "required": true, - "type": "Http_ResponseType" - }, - "kind": 34, - "name": "responseType", - "required": true, - "type": "Http_ResponseType" - }, - { - "comment": "The body of the request. If present, the `formData` property will be ignored.", - "kind": 34, - "name": "body", - "scalar": { - "kind": 4, - "name": "body", - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 8192, - "name": "formData", - "required": true, - "type": "Http_FormDataEntry" - }, - "kind": 18, - "name": "formData", - "object": { - "kind": 8192, - "name": "formData", - "required": true, - "type": "Http_FormDataEntry" - }, - "type": "[Http_FormDataEntry]" - }, - "comment": " An alternative to the standard request body, 'formData' is expected to be in the 'multipart/form-data' format.\nIf present, the `body` property is not null, `formData` will be ignored.\nOtherwise, if formData is not null, the following header will be added to the request: 'Content-Type: multipart/form-data'.", - "kind": 34, - "name": "formData", - "type": "[Http_FormDataEntry]" - }, - { - "kind": 34, - "name": "timeout", - "scalar": { - "kind": 4, - "name": "timeout", - "type": "UInt32" - }, - "type": "UInt32" - } - ], - "type": "Http_Request", - "uri": "ens/wraps.eth:http@1.1.0" - }, - { - "kind": 1025, - "namespace": "Http", - "nativeType": "FormDataEntry", - "properties": [ - { - "comment": "FormData entry key", - "kind": 34, - "name": "name", - "required": true, - "scalar": { - "kind": 4, - "name": "name", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "comment": "If 'type' is defined, value is treated as a base64 byte string", - "kind": 34, - "name": "value", - "scalar": { - "kind": 4, - "name": "value", - "type": "String" - }, - "type": "String" - }, - { - "comment": "File name to report to the server", - "kind": 34, - "name": "fileName", - "scalar": { - "kind": 4, - "name": "fileName", - "type": "String" - }, - "type": "String" - }, - { - "comment": "MIME type (https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types). Defaults to empty string.", - "kind": 34, - "name": "type", - "scalar": { - "kind": 4, - "name": "type", - "type": "String" - }, - "type": "String" - } - ], - "type": "Http_FormDataEntry", - "uri": "ens/wraps.eth:http@1.1.0" - }, - { - "kind": 1025, - "namespace": "Http", - "nativeType": "Response", - "properties": [ - { - "kind": 34, - "name": "status", - "required": true, - "scalar": { - "kind": 4, - "name": "status", - "required": true, - "type": "Int" - }, - "type": "Int" - }, - { - "kind": 34, - "name": "statusText", - "required": true, - "scalar": { - "kind": 4, - "name": "statusText", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "map": { - "key": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - }, - "kind": 262146, - "name": "headers", - "scalar": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - }, - "type": "Map", - "value": { - "kind": 4, - "name": "headers", - "required": true, - "type": "String" - } - }, - "name": "headers", - "type": "Map" - }, - { - "kind": 34, - "name": "body", - "scalar": { - "kind": 4, - "name": "body", - "type": "String" - }, - "type": "String" - } - ], - "type": "Http_Response", - "uri": "ens/wraps.eth:http@1.1.0" - } - ], - "moduleType": { - "imports": [ - { - "type": "Http_Module" - }, - { - "type": "Http_Request" - }, - { - "type": "Http_ResponseType" - }, - { - "type": "Http_FormDataEntry" - }, - { - "type": "Http_Response" - } - ], - "interfaces": [ - { - "kind": 2048, - "type": "Http_Module" - } - ], - "kind": 128, - "methods": [ - { - "arguments": [ - { - "kind": 34, - "name": "url", - "required": true, - "scalar": { - "kind": 4, - "name": "url", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "request", - "object": { - "kind": 8192, - "name": "request", - "type": "Http_Request" - }, - "type": "Http_Request" - } - ], - "kind": 64, - "name": "get", - "required": true, - "return": { - "kind": 34, - "name": "get", - "object": { - "kind": 8192, - "name": "get", - "type": "Http_Response" - }, - "type": "Http_Response" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "url", - "required": true, - "scalar": { - "kind": 4, - "name": "url", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "request", - "object": { - "kind": 8192, - "name": "request", - "type": "Http_Request" - }, - "type": "Http_Request" - } - ], - "kind": 64, - "name": "post", - "required": true, - "return": { - "kind": 34, - "name": "post", - "object": { - "kind": 8192, - "name": "post", - "type": "Http_Response" - }, - "type": "Http_Response" - }, - "type": "Method" - } - ], - "type": "Module" - }, - "version": "0.1" - } -} diff --git a/implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc b/implementations/py/polywrap-http-plugin/tests/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 4c1b4c84e0d8ea86d7cf52d35f1c93f0c01c1f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmd1j<>g`k0@iMZ6cGIwL?8o3AjbiSi&=m~3PUi1CZpdE)pp3w~b`s(^icumHlYkV0qbSgq(PVmdJ?nX?yVuT| z8HunQxa1Fjk+Me)TsR{x`~!}2<-}izL_&4X+Sy2e*ws|mtGlbazN(Ju^@;+&tzC`$ zT2PcfgfRV6LAU`Q`wj?E2=Wz-Kj237bUOxrJ#(}vv@X`!*fzD`t!j8UXXmrUksM;Qm~AdrCj#U1ZVMC z;47s1je^e+bYC%Re?ol9T@z)xV>1q8b&vDdiv2;)3r#g^+>89-A+_Ue-*ZEr&A%>h zM`73NnOdejpk7wH19aDAk$>RQtZ^qii1uCjY0SMSWMZ-V+~%Hh>M^tHIs?kQ1NTG) z0W3_dakJN>ZqMcsh1vBTHf73M_q`zY-5t+|**0;hIK(}h?>XW~C%+~zW%z!BkNtua ztdj(^`y>zCv#Kr`~+*|@%$|J{;zn-lelV=u@3Rg9~%%;V-i#2pJIZz zYH6J)0M`XTDz0`RcHG$z9>+SXS8i1liCx|?%d2yGm z3b)v$M_QM4GR?6$Zhscw%Vgt|hui%2rN`ZeJBJS0{ruK`AAd}~xO*6dbo=muv;Wb~ zdT;mU?aia6Sf9bJV!gH(nJU&Ck6^j}JsKT&0*+7=11Jh3fQTZJ={D`L9TPoQx3)}l zbnER4@$jPISObRR2HXK`1Ud zkGRdaO*uRC_#P<4F|V2oPGTB#5u%|>f-D0Ov0o8kUd4Jmgiy{?(P(K^5Ybd=QIMJ- zbwNaJQ$r9<5a`7U6$hjZAX&+>Bv`D>h;1tRSE(O)VGLa&GrYV#mB0}j`Tb^<8}X34 zj9WI%W-Q0{eE?caohT6Vvl^JKM+492UI=&ZN8rJ-WsB`a1D{A&tLI0LY~Kp)z|G1Q zv%9WXA#2=}sen#+i_(Z@b5=K^fz2)VaqQb6^u;L5jQrBF%B%Y_n^g3$%y49@#fBpr zF`g0FvnE)!#EEe0H5FiwE{K^`5prjAGwlhl$$7!R|mOk8dkcwucI>Q^dKQA=G!>I?Oy{<2aofz(iSRp{Xlqy9qw ztMc-=dW`5QOfk=ArIQ@f6;NbntQ-~X{1zcoZR#FUk3)t}RatSOqi>2i1|P;=*pr~e z^CyS2#2F^9t3)hro|^K+=I9kT#`RaGh`Kq-CHy617f-E_X@Fk->ax5dMA6{(KYO&N z{Vn_SiIqi$-}skFKD@)u@KxnyMS(frdn7AOUYtz$6nRhFL+N@Dk%8}i0B^6tW`Vq; P)KCk}!zacXs%d`%=6S=h diff --git a/implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc b/implementations/py/polywrap-http-plugin/tests/__pycache__/test_plugin.cpython-310-pytest-7.2.1.pyc deleted file mode 100644 index 9a4749df6f28fdcde755594081e5e006beb7e789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb_d&2Jk;6rb5$ukBrbC2^c4fE0l$)ri_jDJ_KtwJNQe3skKtq!rR?+Kr;mxd_ZY8*3Yu?WLn)hbjZ{8%$riI}5lX%aIZl&uFzIDJOF z^iCM~F&Eu8`8!E`7>xV6&>z!4H1>gla}pl=RJ8Wvjoaff^~WAhD0nyTv64!39tBYv`uBnmyglO6k=)qw*M>3Lsg_r>Dm&q=(>AGR)k91y zDL>Ta2C;ePbY+f?5&H`Cs~N0CzlPbGoW&UQa&FAA`c@WSbB;;lrO`uqjWkIss|6V5 zb>0Q5^{hUJY`+Ki87MbkRA5wd6L#Cn^wW(wnrXR}S){#*a+`oYv$M(s=Z&nvet{L* zq?0uu%M~e?S*qCf>m11HOAX>R$r|ZqO%=Pfh}|m1wjpjKukZ_}n?*Fpx}sv5MNBvu z8S@Vnv#w&U|35Ja0wP9n$Y>Jsz9IB~R3W+j@)Zh|F+oCpj(1s+k z&rx}^Xj77wB(gKoswBE3&>j)301;+Tw19fSs4WZYRyyTAx1Q4*yd z^+f~J?!hDoc@V>Kgb7$MalvIzl1WIEsXGpn121%AFY-m*W!|ALR}ih+>U5yn+@&<3 zV$D5FXykF%f1ZY34813bsiAV2#ImUgN;gtXO_(Fq^5}*X+A^!+ z@OR71hh^qknfa(-iVQw3wpB2@I|_HI#g;vG%FLCr`x|Rr{~6IwA*WYI!^Z#yHjD%6 z9SuKEMw19yG#fsk$&o*TNxJCW3duv&E~SM!2hdK>4K7Q_UtU}dSsOM~6)GfybSmr; zFTudx2cmteVGVb*9@hTW&WtmwUc*LP!zM^gZ2V=Ny{xtH5q^&89+>yv7PVzz=|vET zO}Bu;pg375&w%>RXuzSY=OR&E$mo0ELqCv?CZDE3JXUBF-Q_-AxsAn3RzOh|yM3-- zR8(S9p;RP_}oy^H)q=A?Ka{a0=n6 q8%<01N*5;6(>&){K0Y!%46sDV51@4}F?hW-y%`jk=t diff --git a/implementations/py/polywrap-http-plugin/tests/test_ipfs.py b/implementations/py/polywrap-http-plugin/tests/test_ipfs.py deleted file mode 100644 index b3ca821..0000000 --- a/implementations/py/polywrap-http-plugin/tests/test_ipfs.py +++ /dev/null @@ -1,39 +0,0 @@ -from typing import cast -from polywrap_http_plugin import http_plugin -from polywrap_client import PolywrapClient, PolywrapClientConfig -from polywrap_core import Uri, IUriResolver, InvokerOptions -from polywrap_uri_resolvers import StaticResolver, RecursiveResolver -from polywrap_uri_resolvers.uri_resolver_aggregator import UriResolverAggregator -from polywrap_uri_resolvers.legacy import FsUriResolver, SimpleFileReader -from pathlib import Path - - -async def test_plugin(): - resolver = RecursiveResolver( - UriResolverAggregator( - [ - cast(IUriResolver, FsUriResolver(file_reader=SimpleFileReader())), - cast(IUriResolver, StaticResolver({Uri("wrap://ens/wraps.eth:http@1.1.0"): http_plugin()})), - ] - ) - ) - - config = PolywrapClientConfig(resolver=resolver) - client = PolywrapClient(config) - - ipfs_wrapper_path = Path(__file__).parent.joinpath("ipfs-wrapper") - ipfs_wrapper_uri = Uri(f"fs/{ipfs_wrapper_path}") - - result = await client.invoke( - InvokerOptions( - uri=ipfs_wrapper_uri, - method="cat", - args={ - "cid": "QmZ4d7KWCtH3xfWFwcdRXEkjZJdYNwonrCwUckGF1gRAH9", - "ipfsProvider": "https://ipfs.io", - }, - ) - ) - - assert result.is_err() == False - assert result.unwrap().startswith(b" None: - ... - - def get_config(self): # -> PolywrapClientConfig: - ... - - def get_uri_resolver(self) -> IUriResolver: - ... - - def get_envs(self) -> Dict[Uri, Env]: - ... - - def get_interfaces(self) -> Dict[Uri, List[Uri]]: - ... - - def get_implementations(self, uri: Uri) -> Result[Union[List[Uri], None]]: - ... - - def get_env_by_uri(self, uri: Uri) -> Union[Env, None]: - ... - - async def get_file(self, uri: Uri, options: GetFileOptions) -> Result[Union[bytes, str]]: - ... - - async def get_manifest(self, uri: Uri, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: - ... - - async def try_resolve_uri(self, options: TryResolveUriOptions) -> Result[UriPackageOrWrapper]: - ... - - async def load_wrapper(self, uri: Uri, resolution_context: Optional[IUriResolutionContext] = ...) -> Result[Wrapper]: - ... - - async def invoke(self, options: InvokerOptions) -> Result[Any]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi deleted file mode 100644 index 2a0b026..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/__init__.pyi +++ /dev/null @@ -1,9 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .types import * -from .algorithms import * -from .uri_resolution import * -from .utils import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi deleted file mode 100644 index 1cf24ef..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/__init__.pyi +++ /dev/null @@ -1,6 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .build_clean_uri_history import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi deleted file mode 100644 index 1f0fc93..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/algorithms/build_clean_uri_history.pyi +++ /dev/null @@ -1,11 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List, Optional, Union -from ..types import IUriResolutionStep - -CleanResolutionStep = List[Union[str, "CleanResolutionStep"]] -def build_clean_uri_history(history: List[IUriResolutionStep], depth: Optional[int] = ...) -> CleanResolutionStep: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi deleted file mode 100644 index e1c26d5..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/__init__.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .client import * -from .file_reader import * -from .invoke import * -from .uri import * -from .env import * -from .uri_package_wrapper import * -from .uri_resolution_context import * -from .uri_resolution_step import * -from .uri_resolver import * -from .uri_resolver_handler import * -from .wasm_package import * -from .wrap_package import * -from .wrapper import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi deleted file mode 100644 index d1a2ab0..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/client.pyi +++ /dev/null @@ -1,60 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import abstractmethod -from dataclasses import dataclass -from typing import Dict, List, Optional, Union -from polywrap_manifest import AnyWrapManifest, DeserializeManifestOptions -from polywrap_result import Result -from .env import Env -from .invoke import Invoker -from .uri import Uri -from .uri_resolver import IUriResolver -from .uri_resolver_handler import UriResolverHandler - -@dataclass(slots=True, kw_only=True) -class ClientConfig: - envs: Dict[Uri, Env] = ... - interfaces: Dict[Uri, List[Uri]] = ... - resolver: IUriResolver - - -@dataclass(slots=True, kw_only=True) -class GetFileOptions: - path: str - encoding: Optional[str] = ... - - -@dataclass(slots=True, kw_only=True) -class GetManifestOptions(DeserializeManifestOptions): - ... - - -class Client(Invoker, UriResolverHandler): - @abstractmethod - def get_interfaces(self) -> Dict[Uri, List[Uri]]: - ... - - @abstractmethod - def get_envs(self) -> Dict[Uri, Env]: - ... - - @abstractmethod - def get_env_by_uri(self, uri: Uri) -> Union[Env, None]: - ... - - @abstractmethod - def get_uri_resolver(self) -> IUriResolver: - ... - - @abstractmethod - async def get_file(self, uri: Uri, options: GetFileOptions) -> Result[Union[bytes, str]]: - ... - - @abstractmethod - async def get_manifest(self, uri: Uri, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi deleted file mode 100644 index 2d02a65..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/env.pyi +++ /dev/null @@ -1,7 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any, Dict - -Env = Dict[str, Any] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi deleted file mode 100644 index 946a80d..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/file_reader.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from polywrap_result import Result - -class IFileReader(ABC): - @abstractmethod - async def read_file(self, file_path: str) -> Result[bytes]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi deleted file mode 100644 index 59c615a..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/invoke.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from dataclasses import dataclass -from typing import Any, Dict, List, Optional, Union -from polywrap_result import Result -from .env import Env -from .uri import Uri -from .uri_resolution_context import IUriResolutionContext - -@dataclass(slots=True, kw_only=True) -class InvokeOptions: - """ - Options required for a wrapper invocation. - - Args: - uri: Uri of the wrapper - method: Method to be executed - args: Arguments for the method, structured as a dictionary - config: Override the client's config for all invokes within this invoke. - context_id: Invoke id used to track query context data set internally. - """ - uri: Uri - method: str - args: Optional[Union[Dict[str, Any], bytes]] = ... - env: Optional[Env] = ... - resolution_context: Optional[IUriResolutionContext] = ... - - -@dataclass(slots=True, kw_only=True) -class InvocableResult: - """ - Result of a wrapper invocation - - Args: - data: Invoke result data. The type of this value is the return type of the method. - encoded: It will be set true if result is encoded - """ - result: Optional[Any] = ... - encoded: Optional[bool] = ... - - -@dataclass(slots=True, kw_only=True) -class InvokerOptions(InvokeOptions): - encode_result: Optional[bool] = ... - - -class Invoker(ABC): - @abstractmethod - async def invoke(self, options: InvokerOptions) -> Result[Any]: - ... - - @abstractmethod - def get_implementations(self, uri: Uri) -> Result[Union[List[Uri], None]]: - ... - - - -class Invocable(ABC): - @abstractmethod - async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[InvocableResult]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi deleted file mode 100644 index 5371344..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from functools import total_ordering -from typing import Any, Optional, Tuple, Union - -@dataclass(slots=True, kw_only=True) -class UriConfig: - """URI configuration.""" - authority: str - path: str - uri: str - ... - - -@total_ordering -class Uri: - """ - A Polywrap URI. - - Some examples of valid URIs are: - wrap://ipfs/QmHASH - wrap://ens/sub.dimain.eth - wrap://fs/directory/file.txt - wrap://uns/domain.crypto - Breaking down the various parts of the URI, as it applies - to [the URI standard](https://tools.ietf.org/html/rfc3986#section-3): - **wrap://** - URI Scheme: differentiates Polywrap URIs. - **ipfs/** - URI Authority: allows the Polywrap URI resolution algorithm to determine an authoritative URI resolver. - **sub.domain.eth** - URI Path: tells the Authority where the API resides. - """ - def __init__(self, uri: str) -> None: - ... - - def __str__(self) -> str: - ... - - def __repr__(self) -> str: - ... - - def __hash__(self) -> int: - ... - - def __eq__(self, b: object) -> bool: - ... - - def __lt__(self, b: Uri) -> bool: - ... - - @property - def authority(self) -> str: - ... - - @property - def path(self) -> str: - ... - - @property - def uri(self) -> str: - ... - - @staticmethod - def equals(a: Uri, b: Uri) -> bool: - ... - - @staticmethod - def is_uri(value: Any) -> bool: - ... - - @staticmethod - def is_valid_uri(uri: str, parsed: Optional[UriConfig] = ...) -> Tuple[Union[UriConfig, None], bool]: - ... - - @staticmethod - def parse_uri(uri: str) -> UriConfig: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi deleted file mode 100644 index 619b7e1..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_package_wrapper.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Union -from .uri import Uri -from .wrap_package import IWrapPackage -from .wrapper import Wrapper - -UriPackageOrWrapper = Union[Uri, Wrapper, IWrapPackage] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi deleted file mode 100644 index 90cb7ff..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_context.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from typing import List -from .uri import Uri -from .uri_resolution_step import IUriResolutionStep - -class IUriResolutionContext(ABC): - @abstractmethod - def is_resolving(self, uri: Uri) -> bool: - ... - - @abstractmethod - def start_resolving(self, uri: Uri) -> None: - ... - - @abstractmethod - def stop_resolving(self, uri: Uri) -> None: - ... - - @abstractmethod - def track_step(self, step: IUriResolutionStep) -> None: - ... - - @abstractmethod - def get_history(self) -> List[IUriResolutionStep]: - ... - - @abstractmethod - def get_resolution_path(self) -> List[Uri]: - ... - - @abstractmethod - def create_sub_history_context(self) -> IUriResolutionContext: - ... - - @abstractmethod - def create_sub_context(self) -> IUriResolutionContext: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi deleted file mode 100644 index 226d83f..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolution_step.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from typing import List, Optional, TYPE_CHECKING -from polywrap_result import Result -from .uri import Uri -from .uri_package_wrapper import UriPackageOrWrapper - -if TYPE_CHECKING: - ... -@dataclass(slots=True, kw_only=True) -class IUriResolutionStep: - source_uri: Uri - result: Result[UriPackageOrWrapper] - description: Optional[str] = ... - sub_history: Optional[List[IUriResolutionStep]] = ... - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi deleted file mode 100644 index 3cc6024..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver.pyi +++ /dev/null @@ -1,35 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from dataclasses import dataclass -from typing import Optional, TYPE_CHECKING -from polywrap_result import Result -from .uri import Uri -from .uri_resolution_context import IUriResolutionContext -from .client import Client -from .uri_package_wrapper import UriPackageOrWrapper - -if TYPE_CHECKING: - ... -@dataclass(slots=True, kw_only=True) -class TryResolveUriOptions: - """ - Args: - no_cache_read: If set to true, the resolveUri function will not use the cache to resolve the uri. - no_cache_write: If set to true, the resolveUri function will not cache the results - config: Override the client's config for all resolutions. - context_id: Id used to track context data set internally. - """ - uri: Uri - resolution_context: Optional[IUriResolutionContext] = ... - - -class IUriResolver(ABC): - @abstractmethod - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi deleted file mode 100644 index 3ec6cea..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/uri_resolver_handler.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from typing import TYPE_CHECKING -from polywrap_result import Result -from .uri_resolver import TryResolveUriOptions -from .uri_package_wrapper import UriPackageOrWrapper - -if TYPE_CHECKING: - ... -class UriResolverHandler(ABC): - @abstractmethod - async def try_resolve_uri(self, options: TryResolveUriOptions) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi deleted file mode 100644 index 4de7f1f..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wasm_package.pyi +++ /dev/null @@ -1,15 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from polywrap_result import Result -from .wrap_package import IWrapPackage - -class IWasmPackage(IWrapPackage, ABC): - @abstractmethod - async def get_wasm_module(self) -> Result[bytes]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi deleted file mode 100644 index 72015a0..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrap_package.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from typing import Optional -from polywrap_manifest import AnyWrapManifest -from polywrap_result import Result -from .client import GetManifestOptions -from .wrapper import Wrapper - -class IWrapPackage(ABC): - @abstractmethod - async def create_wrapper(self) -> Result[Wrapper]: - ... - - @abstractmethod - async def get_manifest(self, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi deleted file mode 100644 index 4a05539..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/types/wrapper.pyi +++ /dev/null @@ -1,34 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import abstractmethod -from typing import Any, Dict, Union -from polywrap_manifest import AnyWrapManifest -from polywrap_result import Result -from .client import GetFileOptions -from .invoke import Invocable, InvokeOptions, Invoker - -class Wrapper(Invocable): - """ - Invoke the Wrapper based on the provided [[InvokeOptions]] - - Args: - options: Options for this invocation. - client: The client instance requesting this invocation. This client will be used for any sub-invokes that occur. - """ - @abstractmethod - async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[Any]: - ... - - @abstractmethod - async def get_file(self, options: GetFileOptions) -> Result[Union[str, bytes]]: - ... - - @abstractmethod - def get_manifest(self) -> Result[AnyWrapManifest]: - ... - - - -WrapperCache = Dict[str, Wrapper] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi deleted file mode 100644 index aacd917..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/__init__.pyi +++ /dev/null @@ -1,6 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .uri_resolution_context import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi deleted file mode 100644 index bd999af..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/uri_resolution/uri_resolution_context.pyi +++ /dev/null @@ -1,41 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List, Optional, Set -from ..types import IUriResolutionContext, IUriResolutionStep, Uri - -class UriResolutionContext(IUriResolutionContext): - resolving_uri_set: Set[Uri] - resolution_path: List[Uri] - history: List[IUriResolutionStep] - __slots__ = ... - def __init__(self, resolving_uri_set: Optional[Set[Uri]] = ..., resolution_path: Optional[List[Uri]] = ..., history: Optional[List[IUriResolutionStep]] = ...) -> None: - ... - - def is_resolving(self, uri: Uri) -> bool: - ... - - def start_resolving(self, uri: Uri) -> None: - ... - - def stop_resolving(self, uri: Uri) -> None: - ... - - def track_step(self, step: IUriResolutionStep) -> None: - ... - - def get_history(self) -> List[IUriResolutionStep]: - ... - - def get_resolution_path(self) -> List[Uri]: - ... - - def create_sub_history_context(self) -> UriResolutionContext: - ... - - def create_sub_context(self) -> UriResolutionContext: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi deleted file mode 100644 index b2a379f..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/__init__.pyi +++ /dev/null @@ -1,9 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .get_env_from_uri_history import * -from .init_wrapper import * -from .instance_of import * -from .maybe_async import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi deleted file mode 100644 index b75c045..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/get_env_from_uri_history.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any, Dict, List, Union -from ..types import Client, Uri - -def get_env_from_uri_history(uri_history: List[Uri], client: Client) -> Union[Dict[str, Any], None]: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi deleted file mode 100644 index 87c450a..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/init_wrapper.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any -from ..types import Wrapper - -async def init_wrapper(packageOrWrapper: Any) -> Wrapper: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi deleted file mode 100644 index 84ac59e..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/instance_of.pyi +++ /dev/null @@ -1,9 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any - -def instance_of(obj: Any, cls: Any): # -> bool: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi deleted file mode 100644 index e6e6f0b..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_core/utils/maybe_async.pyi +++ /dev/null @@ -1,12 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any, Awaitable, Callable, Optional, Union - -def is_coroutine(test: Optional[Union[Awaitable[Any], Any]] = ...) -> bool: - ... - -async def execute_maybe_async_function(func: Callable[..., Any], *args: Any) -> Any: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi deleted file mode 100644 index fa27423..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/__init__.pyi +++ /dev/null @@ -1,7 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .deserialize import * -from .manifest import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi deleted file mode 100644 index 5fd1f32..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/deserialize.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Optional -from polywrap_result import Result -from .manifest import * - -""" -This file was automatically generated by scripts/templates/deserialize.py.jinja2. -DO NOT MODIFY IT BY HAND. Instead, modify scripts/templates/deserialize.py.jinja2, -and run python ./scripts/generate.py to regenerate this file. -""" -def deserialize_wrap_manifest(manifest: bytes, options: Optional[DeserializeManifestOptions] = ...) -> Result[AnyWrapManifest]: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi deleted file mode 100644 index 87aefe5..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/manifest.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from enum import Enum -from .wrap_0_1 import Abi as WrapAbi_0_1_0_1, WrapManifest as WrapManifest_0_1 - -""" -This file was automatically generated by scripts/templates/__init__.py.jinja2. -DO NOT MODIFY IT BY HAND. Instead, modify scripts/templates/__init__.py.jinja2, -and run python ./scripts/generate.py to regenerate this file. -""" -@dataclass(slots=True, kw_only=True) -class DeserializeManifestOptions: - no_validate: Optional[bool] = ... - - -@dataclass(slots=True, kw_only=True) -class serializeManifestOptions: - no_validate: Optional[bool] = ... - - -class WrapManifestVersions(Enum): - VERSION_0_1 = ... - def __new__(cls, value: int, *aliases: str) -> WrapManifestVersions: - ... - - - -class WrapManifestAbiVersions(Enum): - VERSION_0_1 = ... - - -class WrapAbiVersions(Enum): - VERSION_0_1 = ... - - -AnyWrapManifest = WrapManifest_0_1 -AnyWrapAbi = WrapAbi_0_1_0_1 -WrapManifest = WrapManifest_0_1 -WrapAbi = WrapAbi_0_1_0_1 -latest_wrap_manifest_version = ... -latest_wrap_abi_version = ... diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi deleted file mode 100644 index c7bf7d5..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_manifest/wrap_0_1.pyi +++ /dev/null @@ -1,209 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from enum import Enum -from typing import List, Optional, Union -from pydantic import BaseModel - -class Version(Enum): - """ - WRAP Standard Version - """ - VERSION_0_1_0 = ... - VERSION_0_1 = ... - - -class Type(Enum): - """ - Wrapper Package Type - """ - WASM = ... - INTERFACE = ... - PLUGIN = ... - - -class Env(BaseModel): - required: Optional[bool] = ... - - -class GetImplementations(BaseModel): - enabled: bool - ... - - -class CapabilityDefinition(BaseModel): - get_implementations: Optional[GetImplementations] = ... - - -class ImportedDefinition(BaseModel): - uri: str - namespace: str - native_type: str = ... - - -class WithKind(BaseModel): - kind: float - ... - - -class WithComment(BaseModel): - comment: Optional[str] = ... - - -class GenericDefinition(WithKind): - type: Union[str, Enum, None] - name: Optional[str] = ... - required: Optional[bool] = ... - - -class ScalarType(Enum): - U_INT = ... - U_INT8 = ... - U_INT16 = ... - U_INT32 = ... - INT = ... - INT8 = ... - INT16 = ... - INT32 = ... - STRING = ... - BOOLEAN = ... - BYTES = ... - BIG_INT = ... - BIG_NUMBER = ... - JSON = ... - - -class ScalarDefinition(GenericDefinition): - type: ScalarType - ... - - -class MapKeyType(Enum): - U_INT = ... - U_INT8 = ... - U_INT16 = ... - U_INT32 = ... - INT = ... - INT8 = ... - INT16 = ... - INT32 = ... - STRING = ... - - -class ObjectRef(GenericDefinition): - ... - - -class EnumRef(GenericDefinition): - ... - - -class UnresolvedObjectOrEnumRef(GenericDefinition): - ... - - -class ImportedModuleRef(BaseModel): - type: Optional[str] = ... - - -class InterfaceImplementedDefinition(GenericDefinition): - ... - - -class EnumDefinition(GenericDefinition, WithComment): - constants: Optional[List[str]] = ... - - -class InterfaceDefinition(GenericDefinition, ImportedDefinition): - capabilities: Optional[CapabilityDefinition] = ... - - -class ImportedEnumDefinition(EnumDefinition, ImportedDefinition): - ... - - -class WrapManifest(BaseModel): - class Config: - extra = ... - - - version: Version = ... - type: Type = ... - name: str = ... - abi: Abi = ... - - -class Abi(BaseModel): - version: Optional[str] = ... - object_types: Optional[List[ObjectDefinition]] = ... - module_type: Optional[ModuleDefinition] = ... - enum_types: Optional[List[EnumDefinition]] = ... - interface_types: Optional[List[InterfaceDefinition]] = ... - imported_object_types: Optional[List[ImportedObjectDefinition]] = ... - imported_module_types: Optional[List[ImportedModuleDefinition]] = ... - imported_enum_types: Optional[List[ImportedEnumDefinition]] = ... - imported_env_types: Optional[List[ImportedEnvDefinition]] = ... - env_type: Optional[EnvDefinition] = ... - - -class ObjectDefinition(GenericDefinition, WithComment): - properties: Optional[List[PropertyDefinition]] = ... - interfaces: Optional[List[InterfaceImplementedDefinition]] = ... - - -class ModuleDefinition(GenericDefinition, WithComment): - methods: Optional[List[MethodDefinition]] = ... - imports: Optional[List[ImportedModuleRef]] = ... - interfaces: Optional[List[InterfaceImplementedDefinition]] = ... - - -class MethodDefinition(GenericDefinition, WithComment): - arguments: Optional[List[PropertyDefinition]] = ... - env: Optional[Env] = ... - return_: Optional[PropertyDefinition] = ... - - -class ImportedModuleDefinition(GenericDefinition, ImportedDefinition, WithComment): - methods: Optional[List[MethodDefinition]] = ... - is_interface: Optional[bool] = ... - - -class AnyDefinition(GenericDefinition): - array: Optional[ArrayDefinition] = ... - scalar: Optional[ScalarDefinition] = ... - map: Optional[MapDefinition] = ... - object: Optional[ObjectRef] = ... - enum: Optional[EnumRef] = ... - unresolved_object_or_enum: Optional[UnresolvedObjectOrEnumRef] = ... - - -class EnvDefinition(ObjectDefinition): - ... - - -class ImportedObjectDefinition(ObjectDefinition, ImportedDefinition, WithComment): - ... - - -class PropertyDefinition(WithComment, AnyDefinition): - ... - - -class ArrayDefinition(AnyDefinition): - item: Optional[GenericDefinition] = ... - - -class MapKeyDefinition(AnyDefinition): - type: Optional[MapKeyType] = ... - - -class MapDefinition(AnyDefinition, WithComment): - key: Optional[MapKeyDefinition] = ... - value: Optional[GenericDefinition] = ... - - -class ImportedEnvDefinition(ImportedObjectDefinition): - ... - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/__init__.pyi deleted file mode 100644 index 585e95b..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/__init__.pyi +++ /dev/null @@ -1,90 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import msgpack -from enum import Enum -from typing import Any, Dict, List, Set, Tuple, cast -from msgpack.ext import ExtType -from msgpack.exceptions import UnpackValueError -from .generic_map import GenericMap - -""" -polywrap-msgpack adds ability to encode/decode to/from msgpack format. - -It provides msgpack_encode and msgpack_decode functions -which allows user to encode and decode to/from msgpack bytes - -It also defines the default Extension types and extension hook for -custom extension types defined by wrap standard -""" -class ExtensionTypes(Enum): - """Wrap msgpack extension types.""" - GENERIC_MAP = ... - - -def encode_ext_hook(obj: Any) -> ExtType: - """Extension hook for extending the msgpack supported types. - - Args: - obj (Any): object to be encoded - - Raises: - TypeError: when given object is not supported - - Returns: - Tuple[int, bytes]: extension type code and payload - """ - ... - -def decode_ext_hook(code: int, data: bytes) -> Any: - """Extension hook for extending the msgpack supported types. - - Args: - code (int): extension type code (>0 & <256) - data (bytes): msgpack deserializable data as payload - - Raises: - UnpackValueError: when given invalid extension type code - - Returns: - Any: decoded object - """ - ... - -def sanitize(value: Any) -> Any: - """Sanitizes the value into msgpack encoder compatible format. - - Args: - value: any valid python value - - Raises: - ValueError: when dict key isn't string - - Returns: - Any: msgpack compatible sanitized value - """ - ... - -def msgpack_encode(value: Any) -> bytes: - """Encode any python object into msgpack bytes. - - Args: - value: any valid python object - - Returns: - bytes: encoded msgpack value - """ - ... - -def msgpack_decode(val: bytes) -> Any: - """Decode msgpack bytes into a valid python object. - - Args: - val: msgpack encoded bytes - - Returns: - Any: python object - """ - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi deleted file mode 100644 index 5e512ea..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_msgpack/generic_map.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Dict, MutableMapping, TypeVar - -K = TypeVar("K") -V = TypeVar("V") -class GenericMap(MutableMapping[K, V]): - _map: Dict[K, V] - def __init__(self, map: Dict[K, V]) -> None: - ... - - def __getitem__(self, key: K) -> V: - ... - - def __setitem__(self, key: K, value: V) -> None: - ... - - def __delitem__(self, key: K) -> None: - ... - - def __iter__(self): # -> Iterator[K@GenericMap]: - ... - - def __len__(self) -> int: - ... - - def __repr__(self) -> str: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi deleted file mode 100644 index 5052e48..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .module import * -from .package import * -from .wrapper import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi deleted file mode 100644 index 8297acb..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/module.pyi +++ /dev/null @@ -1,25 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC -from typing import Any, Dict, Generic, TypeVar -from polywrap_core import Invoker -from polywrap_result import Result - -TConfig = TypeVar("TConfig") -TResult = TypeVar("TResult") -class PluginModule(Generic[TConfig], ABC): - env: Dict[str, Any] - config: TConfig - def __init__(self, config: TConfig) -> None: - ... - - def set_env(self, env: Dict[str, Any]) -> None: - ... - - async def __wrap_invoke__(self, method: str, args: Dict[str, Any], client: Invoker) -> Result[TResult]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi deleted file mode 100644 index b32b8f7..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/package.pyi +++ /dev/null @@ -1,25 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Generic, Optional, TypeVar -from polywrap_core import GetManifestOptions, IWrapPackage, Wrapper -from polywrap_manifest import AnyWrapManifest -from polywrap_result import Result -from .module import PluginModule - -TConfig = TypeVar("TConfig") -class PluginPackage(Generic[TConfig], IWrapPackage): - module: PluginModule[TConfig] - manifest: AnyWrapManifest - def __init__(self, module: PluginModule[TConfig], manifest: AnyWrapManifest) -> None: - ... - - async def create_wrapper(self) -> Result[Wrapper]: - ... - - async def get_manifest(self, options: Optional[GetManifestOptions] = ...) -> Result[AnyWrapManifest]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi deleted file mode 100644 index 07a4059..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_plugin/wrapper.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Generic, TypeVar, Union -from polywrap_core import GetFileOptions, InvocableResult, InvokeOptions, Invoker, Wrapper -from polywrap_manifest import AnyWrapManifest -from polywrap_result import Result -from .module import PluginModule - -TConfig = TypeVar("TConfig") -TResult = TypeVar("TResult") -class PluginWrapper(Wrapper, Generic[TConfig]): - module: PluginModule[TConfig] - def __init__(self, module: PluginModule[TConfig], manifest: AnyWrapManifest) -> None: - ... - - async def invoke(self, options: InvokeOptions, invoker: Invoker) -> Result[InvocableResult]: - ... - - async def get_file(self, options: GetFileOptions) -> Result[Union[str, bytes]]: - ... - - def get_manifest(self) -> Result[AnyWrapManifest]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi deleted file mode 100644 index d704a49..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_result/__init__.pyi +++ /dev/null @@ -1,322 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -import inspect -import sys -import types -from __future__ import annotations -from typing import Any, Callable, Generic, NoReturn, ParamSpec, TypeVar, Union, cast, overload -from typing_extensions import ParamSpec - -""" -A simple Rust like Result type for Python 3. - -This project has been forked from the https://github.com/rustedpy/result. -""" -if sys.version_info[: 2] >= (3, 10): - ... -else: - ... -T = TypeVar("T", covariant=True) -U = TypeVar("U") -F = TypeVar("F") -P = ... -R = TypeVar("R") -TBE = TypeVar("TBE", bound=BaseException) -class Ok(Generic[T]): - """ - A value that indicates success and which stores arbitrary data for the return value. - """ - _value: T - __match_args__ = ... - __slots__ = ... - @overload - def __init__(self) -> None: - ... - - @overload - def __init__(self, value: T) -> None: - ... - - def __init__(self, value: Any = ...) -> None: - ... - - def __repr__(self) -> str: - ... - - def __eq__(self, other: Any) -> bool: - ... - - def __ne__(self, other: Any) -> bool: - ... - - def __hash__(self) -> int: - ... - - def is_ok(self) -> bool: - ... - - def is_err(self) -> bool: - ... - - def ok(self) -> T: - """ - Return the value. - """ - ... - - def err(self) -> None: - """ - Return `None`. - """ - ... - - @property - def value(self) -> T: - """ - Return the inner value. - """ - ... - - def expect(self, _message: str) -> T: - """ - Return the value. - """ - ... - - def expect_err(self, message: str) -> NoReturn: - """ - Raise an UnwrapError since this type is `Ok` - """ - ... - - def unwrap(self) -> T: - """ - Return the value. - """ - ... - - def unwrap_err(self) -> NoReturn: - """ - Raise an UnwrapError since this type is `Ok` - """ - ... - - def unwrap_or(self, _default: U) -> T: - """ - Return the value. - """ - ... - - def unwrap_or_else(self, op: Callable[[Exception], T]) -> T: - """ - Return the value. - """ - ... - - def unwrap_or_raise(self) -> T: - """ - Return the value. - """ - ... - - def map(self, op: Callable[[T], U]) -> Result[U]: - """ - The contained result is `Ok`, so return `Ok` with original value mapped to - a new value using the passed in function. - """ - ... - - def map_or(self, default: U, op: Callable[[T], U]) -> U: - """ - The contained result is `Ok`, so return the original value mapped to a new - value using the passed in function. - """ - ... - - def map_or_else(self, default_op: Callable[[], U], op: Callable[[T], U]) -> U: - """ - The contained result is `Ok`, so return original value mapped to - a new value using the passed in `op` function. - """ - ... - - def map_err(self, op: Callable[[Exception], F]) -> Result[T]: - """ - The contained result is `Ok`, so return `Ok` with the original value - """ - ... - - def and_then(self, op: Callable[[T], Result[U]]) -> Result[U]: - """ - The contained result is `Ok`, so return the result of `op` with the - original value passed in - """ - ... - - def or_else(self, op: Callable[[Exception], Result[T]]) -> Result[T]: - """ - The contained result is `Ok`, so return `Ok` with the original value - """ - ... - - - -class Err: - """ - A value that signifies failure and which stores arbitrary data for the error. - """ - __match_args__ = ... - __slots__ = ... - def __init__(self, value: Exception) -> None: - ... - - @classmethod - def from_str(cls, value: str) -> Err: - ... - - def __repr__(self) -> str: - ... - - def __eq__(self, other: Any) -> bool: - ... - - def __ne__(self, other: Any) -> bool: - ... - - def __hash__(self) -> int: - ... - - def is_ok(self) -> bool: - ... - - def is_err(self) -> bool: - ... - - def ok(self) -> None: - """ - Return `None`. - """ - ... - - def err(self) -> Exception: - """ - Return the error. - """ - ... - - @property - def value(self) -> Exception: - """ - Return the inner value. - """ - ... - - def expect(self, message: str) -> NoReturn: - """ - Raises an `UnwrapError`. - """ - ... - - def expect_err(self, _message: str) -> Exception: - """ - Return the inner value - """ - ... - - def unwrap(self) -> NoReturn: - """ - Raises an `UnwrapError`. - """ - ... - - def unwrap_err(self) -> Exception: - """ - Return the inner value - """ - ... - - def unwrap_or(self, default: U) -> U: - """ - Return `default`. - """ - ... - - def unwrap_or_else(self, op: Callable[[Exception], T]) -> T: - """ - The contained result is ``Err``, so return the result of applying - ``op`` to the error value. - """ - ... - - def unwrap_or_raise(self) -> NoReturn: - """ - The contained result is ``Err``, so raise the exception with the value. - """ - ... - - def map(self, op: Callable[[T], U]) -> Result[U]: - """ - Return `Err` with the same value - """ - ... - - def map_or(self, default: U, op: Callable[[T], U]) -> U: - """ - Return the default value - """ - ... - - def map_or_else(self, default_op: Callable[[], U], op: Callable[[T], U]) -> U: - """ - Return the result of the default operation - """ - ... - - def map_err(self, op: Callable[[Exception], Exception]) -> Result[T]: - """ - The contained result is `Err`, so return `Err` with original error mapped to - a new value using the passed in function. - """ - ... - - def and_then(self, op: Callable[[T], Result[U]]) -> Result[U]: - """ - The contained result is `Err`, so return `Err` with the original value - """ - ... - - def or_else(self, op: Callable[[Exception], Result[T]]) -> Result[T]: - """ - The contained result is `Err`, so return the result of `op` with the - original value passed in - """ - ... - - - -Result = Union[Ok[T], Err] -class UnwrapError(Exception): - """ - Exception raised from ``.unwrap_<...>`` and ``.expect_<...>`` calls. - - The original ``Result`` can be accessed via the ``.result`` attribute, but - this is not intended for regular use, as type information is lost: - ``UnwrapError`` doesn't know about both ``T`` and ``E``, since it's raised - from ``Ok()`` or ``Err()`` which only knows about either ``T`` or ``E``, - not both. - """ - _result: Result[Any] - def __init__(self, result: Result[Any], message: str) -> None: - ... - - @property - def result(self) -> Result[Any]: - """ - Returns the original result. - """ - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi deleted file mode 100644 index c7c9676..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/__init__.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .types import * -from .abc import * -from .errors import * -from .helpers import * -from .legacy import * -from .cache import * -from .recursive_resolver import * -from .static_resolver import * -from .redirect_resolver import * -from .package_resolver import * -from .wrapper_resolver import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi deleted file mode 100644 index ad874c8..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from ..cache.wrapper_cache import * -from .resolver_with_history import * -from .uri_resolver_aggregator import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi deleted file mode 100644 index cdbf5a8..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/resolver_with_history.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri - -class IResolverWithHistory(IUriResolver, ABC): - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext): # -> Result[UriPackageOrWrapper]: - ... - - @abstractmethod - def get_step_description(self) -> str: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi deleted file mode 100644 index a3fa29d..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/abc/uri_resolver_aggregator.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from typing import List -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_result import Result - -class IUriResolverAggregator(IUriResolver, ABC): - @abstractmethod - async def get_uri_resolvers(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[List[IUriResolver]]: - ... - - @abstractmethod - def get_step_description(self) -> str: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - async def try_resolve_uri_with_resolvers(self, uri: Uri, client: Client, resolvers: List[IUriResolver], resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi deleted file mode 100644 index 0ef1cef..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .cache_resolver import * -from .wrapper_cache import * -from .wrapper_cache_interface import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi deleted file mode 100644 index 5679919..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/cache_resolver.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Any, Optional -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_manifest import DeserializeManifestOptions -from polywrap_result import Result -from .wrapper_cache_interface import IWrapperCache - -class CacheResolverOptions: - deserialize_manifest_options: DeserializeManifestOptions - end_on_redirect: Optional[bool] - ... - - -class PackageToWrapperCacheResolver: - __slots__ = ... - name: str - resolver_to_cache: IUriResolver - cache: IWrapperCache - options: CacheResolverOptions - def __init__(self, resolver_to_cache: IUriResolver, cache: IWrapperCache, options: CacheResolverOptions) -> None: - ... - - def get_options(self) -> Any: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi deleted file mode 100644 index fd7279d..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache.pyi +++ /dev/null @@ -1,21 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Dict, Union -from polywrap_core import Uri, Wrapper -from .wrapper_cache_interface import IWrapperCache - -class WrapperCache(IWrapperCache): - map: Dict[Uri, Wrapper] - def __init__(self) -> None: - ... - - def get(self, uri: Uri) -> Union[Wrapper, None]: - ... - - def set(self, uri: Uri, wrapper: Wrapper) -> None: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi deleted file mode 100644 index fdba241..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/cache/wrapper_cache_interface.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from abc import ABC, abstractmethod -from typing import Union -from polywrap_core import Uri, Wrapper - -class IWrapperCache(ABC): - @abstractmethod - def get(self, uri: Uri) -> Union[Wrapper, None]: - ... - - @abstractmethod - def set(self, uri: Uri, wrapper: Wrapper) -> None: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi deleted file mode 100644 index 15fea92..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/__init__.pyi +++ /dev/null @@ -1,6 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .infinite_loop_error import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi deleted file mode 100644 index 73aa117..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/errors/infinite_loop_error.pyi +++ /dev/null @@ -1,13 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List -from polywrap_core import IUriResolutionStep, Uri - -class InfiniteLoopError(Exception): - def __init__(self, uri: Uri, history: List[IUriResolutionStep]) -> None: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi deleted file mode 100644 index 57e134e..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .resolver_like_to_resolver import * -from .get_uri_resolution_path import * -from .resolver_with_loop_guard import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi deleted file mode 100644 index 5a3728f..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/get_uri_resolution_path.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List -from polywrap_core import IUriResolutionStep - -def get_uri_resolution_path(history: List[IUriResolutionStep]) -> List[IUriResolutionStep]: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi deleted file mode 100644 index 65ae23c..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_like_to_resolver.pyi +++ /dev/null @@ -1,11 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Optional -from polywrap_core import IUriResolver -from ..types import UriResolverLike - -def resolver_like_to_resolver(resolver_like: UriResolverLike, resolver_name: Optional[str] = ...) -> IUriResolver: - ... - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi deleted file mode 100644 index 006bc27..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/helpers/resolver_with_loop_guard.pyi +++ /dev/null @@ -1,4 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi deleted file mode 100644 index 8d6b9c7..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/__init__.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .base_resolver import * -from .fs_resolver import * -from .redirect_resolver import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi deleted file mode 100644 index 853fc88..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/base_resolver.pyi +++ /dev/null @@ -1,21 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Dict -from polywrap_core import Client, IFileReader, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_result import Result -from .fs_resolver import FsUriResolver -from .redirect_resolver import RedirectUriResolver - -class BaseUriResolver(IUriResolver): - _fs_resolver: FsUriResolver - _redirect_resolver: RedirectUriResolver - def __init__(self, file_reader: IFileReader, redirects: Dict[Uri, Uri]) -> None: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi deleted file mode 100644 index ec10da9..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/fs_resolver.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import Client, IFileReader, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_result import Result - -class SimpleFileReader(IFileReader): - async def read_file(self, file_path: str) -> Result[bytes]: - ... - - - -class FsUriResolver(IUriResolver): - file_reader: IFileReader - def __init__(self, file_reader: IFileReader) -> None: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi deleted file mode 100644 index 36deb47..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/legacy/redirect_resolver.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Dict -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri -from polywrap_result import Result - -class RedirectUriResolver(IUriResolver): - _redirects: Dict[Uri, Uri] - def __init__(self, redirects: Dict[Uri, Uri]) -> None: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[Uri]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi deleted file mode 100644 index 60dc4a6..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/package_resolver.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import IWrapPackage, Uri -from .abc import IResolverWithHistory - -class PackageResolver(IResolverWithHistory): - __slots__ = ... - uri: Uri - wrap_package: IWrapPackage - def __init__(self, uri: Uri, wrap_package: IWrapPackage) -> None: - ... - - def get_step_description(self) -> str: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi deleted file mode 100644 index 80e6809..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/recursive_resolver.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_result import Result - -class RecursiveResolver(IUriResolver): - __slots__ = ... - resolver: IUriResolver - def __init__(self, resolver: IUriResolver) -> None: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi deleted file mode 100644 index 58f5359..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/redirect_resolver.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import Uri -from .abc.resolver_with_history import IResolverWithHistory - -class RedirectResolver(IResolverWithHistory): - __slots__ = ... - from_uri: Uri - to_uri: Uri - def __init__(self, from_uri: Uri, to_uri: Uri) -> None: - ... - - def get_step_description(self) -> str: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi deleted file mode 100644 index f684e8b..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/static_resolver.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri, UriPackageOrWrapper -from polywrap_result import Result -from .types import StaticResolverLike - -class StaticResolver(IUriResolver): - __slots__ = ... - uri_map: StaticResolverLike - def __init__(self, uri_map: StaticResolverLike) -> None: - ... - - async def try_resolve_uri(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[UriPackageOrWrapper]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi deleted file mode 100644 index 5663411..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/__init__.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from .static_resolver_like import * -from .uri_package import * -from .uri_redirect import * -from .uri_resolver_like import * -from .uri_wrapper import * - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi deleted file mode 100644 index 4930107..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/static_resolver_like.pyi +++ /dev/null @@ -1,8 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import Dict -from polywrap_core import Uri, UriPackageOrWrapper - -StaticResolverLike = Dict[Uri, UriPackageOrWrapper] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi deleted file mode 100644 index 478c9d1..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_package.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from polywrap_core import IWrapPackage, Uri - -@dataclass(slots=True, kw_only=True) -class UriPackage: - uri: Uri - package: IWrapPackage - ... - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi deleted file mode 100644 index 6fbe658..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_redirect.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from polywrap_core import Uri - -@dataclass(slots=True, kw_only=True) -class UriRedirect: - from_uri: Uri - to_uri: Uri - ... - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi deleted file mode 100644 index 2db10fa..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_resolver_like.pyi +++ /dev/null @@ -1,12 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List, Union -from polywrap_core import IUriResolver -from .static_resolver_like import StaticResolverLike -from .uri_package import UriPackage -from .uri_redirect import UriRedirect -from .uri_wrapper import UriWrapper - -UriResolverLike = Union[StaticResolverLike, UriRedirect, UriPackage, UriWrapper, IUriResolver, List["UriResolverLike"],] diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi deleted file mode 100644 index 0f4d03d..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/types/uri_wrapper.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from dataclasses import dataclass -from polywrap_core import Uri, Wrapper - -@dataclass(slots=True, kw_only=True) -class UriWrapper: - uri: Uri - wrapper: Wrapper - ... - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi deleted file mode 100644 index c410a4f..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/uri_resolver_aggregator.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from typing import List, Optional -from polywrap_core import Client, IUriResolutionContext, IUriResolver, Uri -from polywrap_result import Result -from .abc.uri_resolver_aggregator import IUriResolverAggregator - -class UriResolverAggregator(IUriResolverAggregator): - __slots__ = ... - resolvers: List[IUriResolver] - name: Optional[str] - def __init__(self, resolvers: List[IUriResolver], name: Optional[str] = ...) -> None: - ... - - def get_step_description(self) -> str: - ... - - async def get_uri_resolvers(self, uri: Uri, client: Client, resolution_context: IUriResolutionContext) -> Result[List[IUriResolver]]: - ... - - - diff --git a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi b/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi deleted file mode 100644 index 435d9bc..0000000 --- a/implementations/py/polywrap-http-plugin/typings/polywrap_uri_resolvers/wrapper_resolver.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -from polywrap_core import Uri, Wrapper -from .abc.resolver_with_history import IResolverWithHistory - -class WrapperResolver(IResolverWithHistory): - __slots__ = ... - uri: Uri - wrapper: Wrapper - def __init__(self, uri: Uri, wrapper: Wrapper) -> None: - ... - - def get_step_description(self) -> str: - ... - - - diff --git a/implementations/py/polywrap.yaml b/implementations/py/polywrap.yaml new file mode 100644 index 0000000..ac84459 --- /dev/null +++ b/implementations/py/polywrap.yaml @@ -0,0 +1,7 @@ +format: 0.3.0 +project: + name: Http + type: plugin/python +source: + schema: ./schema.graphql + module: ./polywrap_http_plugin/__init__.py \ No newline at end of file diff --git a/implementations/py/polywrap_http_plugin/__init__.py b/implementations/py/polywrap_http_plugin/__init__.py new file mode 100644 index 0000000..f948900 --- /dev/null +++ b/implementations/py/polywrap_http_plugin/__init__.py @@ -0,0 +1,95 @@ +import base64 +from typing import Optional, cast + +from httpx import AsyncClient, Response as HttpxResponse +from polywrap_plugin import PluginPackage +from polywrap_core import InvokerClient, UriPackageOrWrapper +from polywrap_msgpack import GenericMap + +from .wrap import HttpHttpResponse, HttpHttpResponseType, ArgsGet, ArgsPost, manifest, Module + + +def isResponseBinary(args: ArgsGet) -> bool: + if args.get("request") is None: + return False + if not args["request"]: + return False + if args["request"]["responseType"] == 1: + return True + if args["request"]["responseType"] == "BINARY": + return True + return args["request"]["responseType"] == HttpHttpResponseType.BINARY + + +class HttpPlugin(Module[None]): + def __init__(self): + super().__init__(None) + self.client = AsyncClient() + + async def get(self, args: ArgsGet, client: InvokerClient[UriPackageOrWrapper], env: None) -> Optional[HttpHttpResponse]: + res: HttpxResponse + if args.get("request") is None: + res = await self.client.get(args["url"]) + elif args["request"] is not None: + res = await self.client.get( + args["url"], + params=args["request"]["urlParams"], + headers=args["request"]["headers"], + timeout=cast(float, args["request"]["timeout"]), + ) + else: + res = await self.client.get(args["url"]) + + if isResponseBinary(args): + return HttpHttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=base64.b64encode(res.content).decode(), + ) + + return HttpHttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=res.text, + ) + + async def post(self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], env: None) -> Optional[HttpHttpResponse]: + res: HttpxResponse + if args.get("request") is None: + res = await self.client.post(args["url"]) + elif args["request"] is not None: + content = ( + args["request"]["body"].encode() + if args["request"]["body"] is not None + else None + ) + res = await self.client.post( + args["url"], + content=content, + params=args["request"]["urlParams"], + headers=args["request"]["headers"], + timeout=cast(float, args["request"]["timeout"]), + ) + else: + res = await self.client.post(args["url"]) + + if args["request"] is not None and args["request"]["responseType"] == HttpHttpResponseType.BINARY: + return HttpHttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=base64.b64encode(res.content).decode(), + ) + + return HttpHttpResponse( + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=res.text, + ) + + +def http_plugin(): + return PluginPackage(module=HttpPlugin(), manifest=manifest) diff --git a/implementations/py/.gitkeep b/implementations/py/polywrap_http_plugin/py.typed similarity index 100% rename from implementations/py/.gitkeep rename to implementations/py/polywrap_http_plugin/py.typed diff --git a/implementations/py/polywrap-http-plugin/pyproject.toml b/implementations/py/pyproject.toml similarity index 78% rename from implementations/py/polywrap-http-plugin/pyproject.toml rename to implementations/py/pyproject.toml index 879540f..dc320dd 100644 --- a/implementations/py/polywrap-http-plugin/pyproject.toml +++ b/implementations/py/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "polywrap-http-plugin" -version = "0.1.0a2" +version = "0.1.0a4" description = "" authors = ["Niraj Kamdar "] readme = "README.md" @@ -12,11 +12,14 @@ packages = [{include = "polywrap_http_plugin"}] [tool.poetry.dependencies] python = "^3.10" -polywrap-client = "0.1.0a11" -polywrap-plugin = "0.1.0a11" +polywrap-plugin = "0.1.0a28" httpx = "^0.23.3" +polywrap-core = "^0.1.0a28" +polywrap-msgpack = "^0.1.0a28" +polywrap-manifest = "^0.1.0a28" [tool.poetry.group.dev.dependencies] +polywrap-client = "0.1.0a28" black = "^23.1.0" pytest = "^7.2.1" pytest-asyncio = "^0.20.3" @@ -24,6 +27,8 @@ isort = "^5.12.0" bandit = "^1.7.4" pyright = "^1.1.296" pylint = "^2.16.3" +polywrap-uri-resolvers = "^0.1.0a28" +polywrap-client-config-builder = "^0.1.0a28" [tool.bandit] exclude_dirs = ["tests"] diff --git a/implementations/py/schema.graphql b/implementations/py/schema.graphql new file mode 100644 index 0000000..a350d5e --- /dev/null +++ b/implementations/py/schema.graphql @@ -0,0 +1,4 @@ +#import { Module } into Http from "ens/wraps.eth:http@1.1.0" + +type Module implements Http_Module { +} \ No newline at end of file diff --git a/implementations/py/polywrap-http-plugin/tests/__init__.py b/implementations/py/tests/__init__.py similarity index 100% rename from implementations/py/polywrap-http-plugin/tests/__init__.py rename to implementations/py/tests/__init__.py diff --git a/implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.info b/implementations/py/tests/ipfs-wrapper/wrap.info similarity index 100% rename from implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.info rename to implementations/py/tests/ipfs-wrapper/wrap.info diff --git a/implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.wasm b/implementations/py/tests/ipfs-wrapper/wrap.wasm similarity index 100% rename from implementations/py/polywrap-http-plugin/tests/ipfs-wrapper/wrap.wasm rename to implementations/py/tests/ipfs-wrapper/wrap.wasm diff --git a/implementations/py/tests/test_ipfs.py b/implementations/py/tests/test_ipfs.py new file mode 100644 index 0000000..6fcdec9 --- /dev/null +++ b/implementations/py/tests/test_ipfs.py @@ -0,0 +1,32 @@ +from polywrap_http_plugin import http_plugin +from polywrap_client import PolywrapClient +from polywrap_core import Uri, InvokerOptions +from polywrap_uri_resolvers import FsUriResolver, SimpleFileReader +from polywrap_client_config_builder import PolywrapClientConfigBuilder +from pathlib import Path + + +async def test_plugin(): + builder = ( + PolywrapClientConfigBuilder() + .add_resolver(FsUriResolver(file_reader=SimpleFileReader())) + .set_package(Uri.from_str("wrap://ens/wraps.eth:http@1.1.0"), http_plugin()) + ) + + config = builder.build() + client = PolywrapClient(config) + + ipfs_wrapper_path = Path(__file__).parent.joinpath("ipfs-wrapper") + ipfs_wrapper_uri = Uri.from_str(f"fs/{ipfs_wrapper_path}") + + result = await client.invoke( + InvokerOptions( + uri=ipfs_wrapper_uri, + method="cat", + args={ + "cid": "QmZ4d7KWCtH3xfWFwcdRXEkjZJdYNwonrCwUckGF1gRAH9", + "ipfsProvider": "https://ipfs.io", + }, + ) + ) + assert result.startswith(b"= 2.1.2 < 3.0.0" + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +intl-messageformat-parser@6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.4.2.tgz#e2d28c3156c27961ead9d613ca55b6a155078d7d" + integrity sha512-IVNGy24lNEYr/KPWId5tF3KXRHFFbMgzIMI4kUonNa/ide2ywUYyBuOUro1IBGZJqjA2ncBVUyXdYKlMfzqpAA== + dependencies: + "@formatjs/ecma402-abstract" "1.6.2" + tslib "^2.1.0" + +intl-messageformat@9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.5.2.tgz#e72d32152c760b7411e413780e462909987c005a" + integrity sha512-sBGXcSQLyBuBA/kzAYhTpzhzkOGfSwGIau2W6FuwLZk0JE+VF3C+y0077FhVDOcRSi60iSfWzT8QC3Z7//dFxw== + dependencies: + fast-memoize "^2.5.2" + intl-messageformat-parser "6.4.2" + tslib "^2.1.0" + +invert-kv@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" + integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ipfs-core-utils@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/ipfs-core-utils/-/ipfs-core-utils-0.5.4.tgz#c7fa508562086be65cebb51feb13c58abbbd3d8d" + integrity sha512-V+OHCkqf/263jHU0Fc9Rx/uDuwlz3PHxl3qu6a5ka/mNi6gucbFuI53jWsevCrOOY9giWMLB29RINGmCV5dFeQ== + dependencies: + any-signal "^2.0.0" + blob-to-it "^1.0.1" + browser-readablestream-to-it "^1.0.1" + cids "^1.0.0" + err-code "^2.0.3" + ipfs-utils "^5.0.0" + it-all "^1.0.4" + it-map "^1.0.4" + it-peekable "^1.0.1" + multiaddr "^8.0.0" + multiaddr-to-uri "^6.0.0" + parse-duration "^0.4.4" + timeout-abort-controller "^1.1.1" + uint8arrays "^1.1.0" + +ipfs-http-client@48.1.3: + version "48.1.3" + resolved "https://registry.yarnpkg.com/ipfs-http-client/-/ipfs-http-client-48.1.3.tgz#d9b91b1f65d54730de92290d3be5a11ef124b400" + integrity sha512-+JV4cdMaTvYN3vd4r6+mcVxV3LkJXzc4kn2ToVbObpVpdqmG34ePf1KlvFF8A9gjcel84WpiP5xCEV/IrisPBA== + dependencies: + any-signal "^2.0.0" + bignumber.js "^9.0.0" + cids "^1.0.0" + debug "^4.1.1" + form-data "^3.0.0" + ipfs-core-utils "^0.5.4" + ipfs-utils "^5.0.0" + ipld-block "^0.11.0" + ipld-dag-cbor "^0.17.0" + ipld-dag-pb "^0.20.0" + ipld-raw "^6.0.0" + it-last "^1.0.4" + it-map "^1.0.4" + it-tar "^1.2.2" + it-to-stream "^0.1.2" + merge-options "^2.0.0" + multiaddr "^8.0.0" + multibase "^3.0.0" + multicodec "^2.0.1" + multihashes "^3.0.1" + nanoid "^3.1.12" + native-abort-controller "~0.0.3" + parse-duration "^0.4.4" + stream-to-it "^0.2.2" + uint8arrays "^1.1.0" + +ipfs-utils@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ipfs-utils/-/ipfs-utils-5.0.1.tgz#7c0053d5e77686f45577257a73905d4523e6b4f7" + integrity sha512-28KZPgO4Uf5duT2ORLAYfboUp98iUshDD7yRAfbNxNAR8Dtidfn6o20rZfoXnkri2zKBVIPlJkuCPmPJB+6erg== + dependencies: + abort-controller "^3.0.0" + any-signal "^2.1.0" + buffer "^6.0.1" + electron-fetch "^1.7.2" + err-code "^2.0.0" + fs-extra "^9.0.1" + is-electron "^2.2.0" + iso-url "^1.0.0" + it-glob "0.0.10" + it-to-stream "^0.1.2" + merge-options "^2.0.0" + nanoid "^3.1.3" + native-abort-controller "0.0.3" + native-fetch "^2.0.0" + node-fetch "^2.6.0" + stream-to-it "^0.2.0" + +ipld-block@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/ipld-block/-/ipld-block-0.11.1.tgz#c3a7b41aee3244187bd87a73f980e3565d299b6e" + integrity sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw== + dependencies: + cids "^1.0.0" + +ipld-dag-cbor@^0.17.0: + version "0.17.1" + resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz#842e6c250603e5791049168831a425ec03471fb1" + integrity sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw== + dependencies: + borc "^2.1.2" + cids "^1.0.0" + is-circular "^1.0.2" + multicodec "^3.0.1" + multihashing-async "^2.0.0" + uint8arrays "^2.1.3" + +ipld-dag-pb@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz#025c0343aafe6cb9db395dd1dc93c8c60a669360" + integrity sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + protons "^2.0.0" + reset "^0.1.0" + run "^1.4.0" + stable "^0.1.8" + uint8arrays "^1.0.0" + +ipld-raw@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ipld-raw/-/ipld-raw-6.0.0.tgz#74d947fcd2ce4e0e1d5bb650c1b5754ed8ea6da0" + integrity sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg== + dependencies: + cids "^1.0.0" + multicodec "^2.0.0" + multihashing-async "^2.0.0" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-circular@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.2.tgz#2e0ab4e9835f4c6b0ea2b9855a84acd501b8366c" + integrity sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA== + +is-electron@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.2.tgz#3778902a2044d76de98036f5dc58089ac4d80bb9" + integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-ipfs@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-1.0.3.tgz#4b8c4995c46beac38f0c05f8cecd77093dd6a6b3" + integrity sha512-7SAfhxp39rxMvr95qjHMtsle1xa7zXpIbhX/Q77iXKtMVnQ0Fr9AVpAUq+bl3HPXGXDpZJFP0hzWBZaMwD6vGg== + dependencies: + buffer "^5.6.0" + cids "~0.8.0" + iso-url "~0.4.7" + mafmt "^7.1.0" + multiaddr "^7.4.3" + multibase "~0.7.0" + multihashes "~0.4.19" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typed-array@^1.1.10, is-typed-array@^1.1.3: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +iso-constants@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4" + integrity sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ== + +iso-url@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-1.2.1.tgz#db96a49d8d9a64a1c889fc07cc525d093afb1811" + integrity sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng== + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +it-all@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" + integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== + +it-concat@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-concat/-/it-concat-1.0.3.tgz#84db9376e4c77bf7bc1fd933bb90f184e7cef32b" + integrity sha512-sjeZQ1BWQ9U/W2oI09kZgUyvSWzQahTkOkLIsnEPgyqZFaF9ME5gV6An4nMjlyhXKWQMKEakQU8oRHs2SdmeyA== + dependencies: + bl "^4.0.0" + +it-glob@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/it-glob/-/it-glob-0.0.10.tgz#4defd9286f693847c3ff483d2ff65f22e1359ad8" + integrity sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA== + dependencies: + fs-extra "^9.0.1" + minimatch "^3.0.4" + +it-last@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-last/-/it-last-1.0.6.tgz#4106232e5905ec11e16de15a0e9f7037eaecfc45" + integrity sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q== + +it-map@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/it-map/-/it-map-1.0.6.tgz#6aa547e363eedcf8d4f69d8484b450bc13c9882c" + integrity sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ== + +it-peekable@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/it-peekable/-/it-peekable-1.0.3.tgz#8ebe933767d9c5aa0ae4ef8e9cb3a47389bced8c" + integrity sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ== + +it-reader@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-2.1.0.tgz#b1164be343f8538d8775e10fb0339f61ccf71b0f" + integrity sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw== + dependencies: + bl "^4.0.0" + +it-tar@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/it-tar/-/it-tar-1.2.2.tgz#8d79863dad27726c781a4bcc491f53c20f2866cf" + integrity sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA== + dependencies: + bl "^4.0.0" + buffer "^5.4.3" + iso-constants "^0.1.2" + it-concat "^1.0.0" + it-reader "^2.0.0" + p-defer "^3.0.0" + +it-to-stream@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/it-to-stream/-/it-to-stream-0.1.2.tgz#7163151f75b60445e86b8ab1a968666acaacfe7b" + integrity sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ== + dependencies: + buffer "^5.6.0" + fast-fifo "^1.0.0" + get-iterator "^1.0.2" + p-defer "^3.0.0" + p-fifo "^1.0.0" + readable-stream "^3.6.0" + +iterable-ndjson@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" + integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== + dependencies: + string_decoder "^1.2.0" + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-schema-ref-parser@9.0.9: + version "9.0.9" + resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#66ea538e7450b12af342fa3d5b8458bc1e1e013f" + integrity sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.9" + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w== + dependencies: + delimit-stream "0.1.0" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonschema@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.0.tgz#1afa34c4bc22190d8e42271ec17ac8b3404f87b2" + integrity sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw== + +lcid@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" + integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== + dependencies: + invert-kv "^3.0.0" + +lodash.merge@4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +mafmt@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" + integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== + dependencies: + multiaddr "^7.3.0" + +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +mem@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" + integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^2.1.0" + p-is-promise "^2.1.0" + +merge-options@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-2.0.0.tgz#36ca5038badfc3974dbde5e58ba89d3df80882c3" + integrity sha512-S7xYIeWHl2ZUKF7SDeBhGg6rfv5bKxVBdk95s/I7wVF8d+hjLSztJ/B271cnUiF6CAFduEQ5Zn3HYwAjT16DlQ== + dependencies: + is-plain-obj "^2.0.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@*: + version "9.0.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.0.tgz#bfc8e88a1c40ffd40c172ddac3decb8451503b56" + integrity sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multiaddr-to-uri@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz#8f08a75c6eeb2370d5d24b77b8413e3f0fa9bcc0" + integrity sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A== + dependencies: + multiaddr "^8.0.0" + +multiaddr@^7.3.0, multiaddr@^7.4.3: + version "7.5.0" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" + integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== + dependencies: + buffer "^5.5.0" + cids "~0.8.0" + class-is "^1.1.0" + is-ip "^3.1.0" + multibase "^0.7.0" + varint "^5.0.0" + +multiaddr@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" + integrity sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ== + dependencies: + cids "^1.0.0" + class-is "^1.1.0" + dns-over-http-resolver "^1.0.0" + err-code "^2.0.3" + is-ip "^3.1.0" + multibase "^3.0.0" + uint8arrays "^1.1.0" + varint "^5.0.0" + +multibase@^0.7.0, multibase@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@^1.0.0, multibase@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" + integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@^3.0.0, multibase@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" + integrity sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw== + dependencies: + "@multiformats/base-x" "^4.0.1" + web-encoding "^1.0.6" + +multibase@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559" + integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ== + dependencies: + "@multiformats/base-x" "^4.0.1" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0, multicodec@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multicodec@^2.0.0, multicodec@^2.0.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-2.1.3.tgz#b9850635ad4e2a285a933151b55b4a2294152a5d" + integrity sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA== + dependencies: + uint8arrays "1.1.0" + varint "^6.0.0" + +multicodec@^3.0.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2" + integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw== + dependencies: + uint8arrays "^3.0.0" + varint "^6.0.0" + +multiformats@9.7.0: + version "9.7.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.7.0.tgz#845799e8df70fbb6b15922500e45cb87cf12f7e5" + integrity sha512-uv/tcgwk0yN4DStopnBN4GTgvaAlYdy6KnZpuzEPFOYQd71DYFJjs0MN1ERElAflrZaYyGBWXyGxL5GgrxIx0Q== + +multiformats@^9.4.2: + version "9.9.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" + integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== + +multihashes@^0.4.15, multihashes@~0.4.15, multihashes@~0.4.19: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +multihashes@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" + integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== + dependencies: + buffer "^5.6.0" + multibase "^1.0.1" + varint "^5.0.0" + +multihashes@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" + integrity sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ== + dependencies: + multibase "^3.1.0" + uint8arrays "^2.0.5" + varint "^6.0.0" + +multihashes@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05" + integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA== + dependencies: + multibase "^4.0.1" + uint8arrays "^3.0.0" + varint "^5.0.2" + +multihashing-async@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843" + integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg== + dependencies: + blakejs "^1.1.0" + err-code "^3.0.0" + js-sha3 "^0.8.0" + multihashes "^4.0.1" + murmurhash3js-revisited "^3.0.0" + uint8arrays "^3.0.0" + +murmurhash3js-revisited@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz#6bd36e25de8f73394222adc6e41fa3fac08a5869" + integrity sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g== + +mustache@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2" + integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA== + +nanoid@^3.1.12, nanoid@^3.1.3: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +native-abort-controller@0.0.3, native-abort-controller@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-0.0.3.tgz#4c528a6c9c7d3eafefdc2c196ac9deb1a5edf2f8" + integrity sha512-YIxU5nWqSHG1Xbu3eOu3pdFRD882ivQpIcu6AiPVe2oSVoRbfYW63DVkZm3g1gHiMtZSvZzF6THSzTGEBYl8YA== + dependencies: + globalthis "^1.0.1" + +native-abort-controller@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251" + integrity sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ== + +native-fetch@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-2.0.1.tgz#319d53741a7040def92d5dc8ea5fe9416b1fad89" + integrity sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ== + dependencies: + globalthis "^1.0.1" + +native-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/native-fetch/-/native-fetch-3.0.0.tgz#06ccdd70e79e171c365c75117959cf4fe14a09bb" + integrity sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw== + +node-fetch@^2.6.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +os-locale@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" + integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== + dependencies: + execa "^4.0.0" + lcid "^3.0.0" + mem "^5.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-fifo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-fifo/-/p-fifo-1.0.0.tgz#e29d5cf17c239ba87f51dde98c1d26a9cfe20a63" + integrity sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A== + dependencies: + fast-fifo "^1.0.0" + p-defer "^3.0.0" + +p-is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +parse-duration@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-0.4.4.tgz#11c0f51a689e97d06c57bd772f7fda7dc013243c" + integrity sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +polywrap@0.10.0-pre.7: + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/polywrap/-/polywrap-0.10.0-pre.7.tgz#b4819fe161e64af4c021fc34a20ce030d12a9f77" + integrity sha512-3pND6kxG+n6J5DW/3X45YK68/swpgSQLW2OP7dPcOz1pra9aDGbJ1KUNtFVilBpElPCJZw+TjqZ2Gp5JxDrrpA== + dependencies: + "@ethersproject/providers" "5.6.8" + "@ethersproject/wallet" "5.6.2" + "@formatjs/intl" "1.8.2" + "@polywrap/asyncify-js" "0.10.0-pre.7" + "@polywrap/client-config-builder-js" "0.10.0-pre.7" + "@polywrap/client-js" "0.10.0-pre.7" + "@polywrap/core-js" "0.10.0-pre.7" + "@polywrap/ens-resolver-plugin-js" "0.10.0-pre.7" + "@polywrap/ethereum-plugin-js" "0.10.0-pre.7" + "@polywrap/ipfs-plugin-js" "0.10.0-pre.7" + "@polywrap/logging-js" "0.10.0-pre.7" + "@polywrap/os-js" "0.10.0-pre.7" + "@polywrap/polywrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/schema-bind" "0.10.0-pre.7" + "@polywrap/schema-compose" "0.10.0-pre.7" + "@polywrap/schema-parse" "0.10.0-pre.7" + "@polywrap/test-env-js" "0.10.0-pre.7" + "@polywrap/wasm-js" "0.10.0-pre.7" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + axios "0.21.2" + chalk "4.1.0" + chokidar "3.5.1" + commander "9.2.0" + content-hash "2.5.2" + copyfiles "2.4.1" + docker-compose "0.23.17" + extract-zip "2.0.1" + form-data "4.0.0" + fs-extra "9.0.1" + ipfs-http-client "48.1.3" + json-schema "0.4.0" + json-schema-ref-parser "9.0.9" + jsonschema "1.4.0" + mustache "4.0.1" + os-locale "5.0.0" + regex-parser "2.2.11" + rimraf "3.0.2" + toml "3.0.0" + typescript "4.1.6" + yaml "2.1.3" + yesno "0.4.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +protocol-buffers-schema@^3.3.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz#77bc75a48b2ff142c1ad5b5b90c94cd0fa2efd03" + integrity sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw== + +protons@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/protons/-/protons-2.0.3.tgz#94f45484d04b66dfedc43ad3abff1e8907994bb2" + integrity sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA== + dependencies: + protocol-buffers-schema "^3.3.1" + signed-varint "^2.0.1" + uint8arrays "^3.0.0" + varint "^5.0.0" + +pull-stream-to-async-iterator@^1.0.1, pull-stream-to-async-iterator@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz#5cc1a3a146ef6bbf01c17755647369b683b24986" + integrity sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA== + dependencies: + pull-stream "^3.6.9" + +pull-stream@^3.6.9: + version "3.7.0" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" + integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +receptacle@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/receptacle/-/receptacle-1.3.2.tgz#a7994c7efafc7a01d0e2041839dab6c4951360d2" + integrity sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A== + dependencies: + ms "^2.1.1" + +regex-parser@2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +reset@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/reset/-/reset-0.1.0.tgz#9fc7314171995ae6cb0b7e58b06ce7522af4bafb" + integrity sha512-RF7bp2P2ODreUPA71FZ4DSK52gNLJJ8dSwA1nhOCoC0mI4KZ4D/W6zhd2nfBqX/JlR+QZ/iUqAYPjq1UQU8l0Q== + +retimer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" + integrity sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg== + +rimraf@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/run/-/run-1.4.0.tgz#e17d9e9043ab2fe17776cb299e1237f38f0b4ffa" + integrity sha512-962oBW07IjQ9SizyMHdoteVbDKt/e2nEsnTRZ0WjK/zs+jfQQICqH0qj0D5lqZNuy0JkbzfA6IOqw0Sk7C3DlQ== + dependencies: + minimatch "*" + +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +semver@7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signed-varint@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" + integrity sha512-abgDPg1106vuZZOvw7cFwdCABddfJRz5akcCcchzTbhyhYnsG31y4AlZEgp315T7W3nQq5P4xeOm186ZiPVFzw== + dependencies: + varint "~5.0.0" + +spawn-command@0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stream-to-it@^0.2.0, stream-to-it@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/stream-to-it/-/stream-to-it-0.2.4.tgz#d2fd7bfbd4a899b4c0d6a7e6a533723af5749bd0" + integrity sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ== + dependencies: + get-iterator "^1.0.2" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1, string_decoder@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timeout-abort-controller@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz#2c3c3c66f13c783237987673c276cbd7a9762f29" + integrity sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ== + dependencies: + abort-controller "^3.0.0" + retimer "^2.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toml@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tslib@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +typescript@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138" + integrity sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow== + +uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-1.1.0.tgz#d034aa65399a9fd213a1579e323f0b29f67d0ed2" + integrity sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA== + dependencies: + multibase "^3.0.0" + web-encoding "^1.0.2" + +uint8arrays@^2.0.5, uint8arrays@^2.1.3: + version "2.1.10" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a" + integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A== + dependencies: + multiformats "^9.4.2" + +uint8arrays@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" + integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== + dependencies: + multiformats "^9.4.2" + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.3: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +varint@^5.0.0, varint@^5.0.2, varint@~5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + +web-encoding@^1.0.2, web-encoding@^1.0.6: + version "1.1.5" + resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" + integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== + dependencies: + util "^0.12.3" + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-typed-array@^1.1.2: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" + integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== + +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yesno@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/yesno/-/yesno-0.4.0.tgz#5d674f14d339f0bd4b0edc47f899612c74fcd895" + integrity sha512-tdBxmHvbXPBKYIg81bMCB7bVeDmHkRzk5rVJyYYXurwKkHq/MCd8rz4HSJUP7hW0H2NlXiq8IFiWvYKEHhlotA== From 5729a3a04e7575e7d11a2a8d8cf94a6ad68b3e77 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 12:42:11 +0400 Subject: [PATCH 07/21] fix: tests --- implementations/py/poetry.lock | 275 +++++++++++++++--- .../py/polywrap_http_plugin/__init__.py | 59 ++-- implementations/py/pyproject.toml | 28 +- implementations/py/tests/conftest.py | 24 ++ .../py/tests/integration/conftest.py | 22 ++ .../py/tests/integration/test_get.py | 61 ++++ .../py/tests/integration/test_post.py | 57 ++++ .../tests/integration/wrapper/schema.graphql | 13 + .../py/tests/integration/wrapper/wrap.info | Bin 0 -> 4475 bytes .../py/tests/integration/wrapper/wrap.wasm | Bin 0 -> 77946 bytes .../py/tests/ipfs-wrapper/wrap.info | Bin 9034 -> 0 bytes .../py/tests/ipfs-wrapper/wrap.wasm | Bin 150523 -> 0 bytes implementations/py/tests/test_get.py | 53 ++++ implementations/py/tests/test_ipfs.py | 32 -- implementations/py/tests/test_plugin.py | 31 -- implementations/py/tests/test_post.py | 56 ++++ implementations/py/tox.ini | 1 - 17 files changed, 569 insertions(+), 143 deletions(-) create mode 100644 implementations/py/tests/conftest.py create mode 100644 implementations/py/tests/integration/conftest.py create mode 100644 implementations/py/tests/integration/test_get.py create mode 100644 implementations/py/tests/integration/test_post.py create mode 100644 implementations/py/tests/integration/wrapper/schema.graphql create mode 100644 implementations/py/tests/integration/wrapper/wrap.info create mode 100755 implementations/py/tests/integration/wrapper/wrap.wasm delete mode 100644 implementations/py/tests/ipfs-wrapper/wrap.info delete mode 100644 implementations/py/tests/ipfs-wrapper/wrap.wasm create mode 100644 implementations/py/tests/test_get.py delete mode 100644 implementations/py/tests/test_ipfs.py delete mode 100644 implementations/py/tests/test_plugin.py create mode 100644 implementations/py/tests/test_post.py diff --git a/implementations/py/poetry.lock b/implementations/py/poetry.lock index 63f3542..c661512 100644 --- a/implementations/py/poetry.lock +++ b/implementations/py/poetry.lock @@ -23,14 +23,14 @@ trio = ["trio (>=0.16,<0.22)"] [[package]] name = "astroid" -version = "2.15.2" +version = "2.15.3" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false python-versions = ">=3.7.2" files = [ - {file = "astroid-2.15.2-py3-none-any.whl", hash = "sha256:dea89d9f99f491c66ac9c04ebddf91e4acf8bd711722175fe6245c0725cc19bb"}, - {file = "astroid-2.15.2.tar.gz", hash = "sha256:6e61b85c891ec53b07471aec5878f4ac6446a41e590ede0f2ce095f39f7d49dd"}, + {file = "astroid-2.15.3-py3-none-any.whl", hash = "sha256:f11e74658da0f2a14a8d19776a8647900870a63de71db83713a8e77a6af52662"}, + {file = "astroid-2.15.3.tar.gz", hash = "sha256:44224ad27c54d770233751315fa7f74c46fa3ee0fab7beef1065f99f09897efe"}, ] [package.dependencies] @@ -168,6 +168,18 @@ files = [ [package.extras] graph = ["objgraph (>=1.7.2)"] +[[package]] +name = "distlib" +version = "0.3.6" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] + [[package]] name = "exceptiongroup" version = "1.1.1" @@ -183,6 +195,22 @@ files = [ [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "filelock" +version = "3.11.0" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "filelock-3.11.0-py3-none-any.whl", hash = "sha256:f08a52314748335c6460fc8fe40cd5638b85001225db78c2aa01c8c0db83b318"}, + {file = "filelock-3.11.0.tar.gz", hash = "sha256:3618c0da67adcc0506b015fd11ef7faf1b493f0b40d87728e19986b536890c37"}, +] + +[package.extras] +docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.2)", "diff-cover (>=7.5)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] + [[package]] name = "gitdb" version = "4.0.10" @@ -578,80 +606,80 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "polywrap-client" -version = "0.1.0a28" +version = "0.1.0a29" description = "" category = "dev" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_client-0.1.0a28-py3-none-any.whl", hash = "sha256:9d0d22840e6c1d370933e21ed81af44421c86f238cf7583869dc89c48daa216a"}, - {file = "polywrap_client-0.1.0a28.tar.gz", hash = "sha256:2b28ac962b92cdea36125dd972eb99fc8ee754555730ad05303d288850d8deae"}, + {file = "polywrap_client-0.1.0a29-py3-none-any.whl", hash = "sha256:59cce6ec8105a4cb7da03a8db335068f1b747511b3334191feb2886b0391ab5a"}, + {file = "polywrap_client-0.1.0a29.tar.gz", hash = "sha256:11cfa8a068980c772becca08597ef62c125411def87e125bae5df85b1c93c209"}, ] [package.dependencies] -polywrap-core = ">=0.1.0a28,<0.2.0" -polywrap-manifest = ">=0.1.0a28,<0.2.0" -polywrap-msgpack = ">=0.1.0a28,<0.2.0" -polywrap-uri-resolvers = ">=0.1.0a28,<0.2.0" +polywrap-core = ">=0.1.0a29,<0.2.0" +polywrap-manifest = ">=0.1.0a29,<0.2.0" +polywrap-msgpack = ">=0.1.0a29,<0.2.0" +polywrap-uri-resolvers = ">=0.1.0a29,<0.2.0" [[package]] name = "polywrap-client-config-builder" -version = "0.1.0a28" +version = "0.1.0a29" description = "" category = "dev" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_client_config_builder-0.1.0a28-py3-none-any.whl", hash = "sha256:008c70092348441087e9dd1f042d4a14d72fc1f1c5cf5011b3ee9645d61026f3"}, - {file = "polywrap_client_config_builder-0.1.0a28.tar.gz", hash = "sha256:257d0c1c04b72456cb57b596b20c82035573d37eb23702bdc828a28dd90791f2"}, + {file = "polywrap_client_config_builder-0.1.0a29-py3-none-any.whl", hash = "sha256:4238ebd9f459c68afa860453d08725e31fd217bc52e25ef9562878bf77f51190"}, + {file = "polywrap_client_config_builder-0.1.0a29.tar.gz", hash = "sha256:e5c04c64dbc20cbd587cccffd5a2a557d4214126d8587d033c2f30948f67375a"}, ] [package.dependencies] -polywrap-core = ">=0.1.0a28,<0.2.0" -polywrap-uri-resolvers = ">=0.1.0a28,<0.2.0" +polywrap-core = ">=0.1.0a29,<0.2.0" +polywrap-uri-resolvers = ">=0.1.0a29,<0.2.0" [[package]] name = "polywrap-core" -version = "0.1.0a28" +version = "0.1.0a29" description = "" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_core-0.1.0a28-py3-none-any.whl", hash = "sha256:addf36c93c87500961619ed0b90075b7412f6ef9608a654d56255fb338732211"}, - {file = "polywrap_core-0.1.0a28.tar.gz", hash = "sha256:ef165e4e1b02de2df8711b56a144a9070b687efe565ab8faa5d659f621b3fcb4"}, + {file = "polywrap_core-0.1.0a29-py3-none-any.whl", hash = "sha256:ea3111a0a2a4287c0f7a180fd7bb024530e720cd5ec97767b52502679d42a097"}, + {file = "polywrap_core-0.1.0a29.tar.gz", hash = "sha256:b879c8b621eaa4ae5ad1cc48a6b304596fe9586163395782584207886e793eba"}, ] [package.dependencies] -polywrap-manifest = ">=0.1.0a28,<0.2.0" -polywrap-msgpack = ">=0.1.0a28,<0.2.0" +polywrap-manifest = ">=0.1.0a29,<0.2.0" +polywrap-msgpack = ">=0.1.0a29,<0.2.0" [[package]] name = "polywrap-manifest" -version = "0.1.0a28" +version = "0.1.0a29" description = "WRAP manifest" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_manifest-0.1.0a28-py3-none-any.whl", hash = "sha256:6caf12b5fe47ea36754e12f9b389c8f444e76abe59580dd7696a632cec50aa90"}, - {file = "polywrap_manifest-0.1.0a28.tar.gz", hash = "sha256:a7e6ee4667d0f0fd30b48d0833a80de1e023ce30e4f3b41dd94a0717e4f9d266"}, + {file = "polywrap_manifest-0.1.0a29-py3-none-any.whl", hash = "sha256:1d13b2075aca5a65c86b9d0ec9c35f564eab4c9cc8caa77674ed720193dcd60b"}, + {file = "polywrap_manifest-0.1.0a29.tar.gz", hash = "sha256:9f2bcf10b7ffd73a750e712bee8a24f5d6e0cd59a3d131a7d32b37b2366075c2"}, ] [package.dependencies] -polywrap-msgpack = ">=0.1.0a28,<0.2.0" +polywrap-msgpack = ">=0.1.0a29,<0.2.0" pydantic = ">=1.10.2,<2.0.0" [[package]] name = "polywrap-msgpack" -version = "0.1.0a28" +version = "0.1.0a29" description = "WRAP msgpack encoding" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_msgpack-0.1.0a28-py3-none-any.whl", hash = "sha256:0cfae5da732c219648b391ed3835715c03f510bd7d96045916f1d1f0e42a38a4"}, - {file = "polywrap_msgpack-0.1.0a28.tar.gz", hash = "sha256:3a73a4d0c4f820509e992abec326e1203519e880837c07eef84a2f5e600c82b5"}, + {file = "polywrap_msgpack-0.1.0a29-py3-none-any.whl", hash = "sha256:898af76cb278630c0e826ffd1052d9cc1fa832082046ebf8d96f9eddacba7ba1"}, + {file = "polywrap_msgpack-0.1.0a29.tar.gz", hash = "sha256:286c93c3bdc97c18c5afcd8be93b286012ffb937d75f15336f6293b632070c89"}, ] [package.dependencies] @@ -659,57 +687,69 @@ msgpack = ">=1.0.4,<2.0.0" [[package]] name = "polywrap-plugin" -version = "0.1.0a28" +version = "0.1.0a29" description = "Plugin package" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_plugin-0.1.0a28-py3-none-any.whl", hash = "sha256:61ef94f90608e57eabd9a237155ee8349fe986faec722dd5de9d549df6dc7663"}, - {file = "polywrap_plugin-0.1.0a28.tar.gz", hash = "sha256:7fbbc5b26bba1fc036185d7b42f17f92c380db316e875a7f207f9b473bb4dc02"}, + {file = "polywrap_plugin-0.1.0a29-py3-none-any.whl", hash = "sha256:85896cd27cd89ba1c52447afd6084130af0a74d9c69dc59180608d40b725c841"}, + {file = "polywrap_plugin-0.1.0a29.tar.gz", hash = "sha256:7797ff07c08eff395d17db22d7bcbe1431b0b32bcf6a4c3ab09521ac7dcf4f0a"}, ] [package.dependencies] -polywrap-core = ">=0.1.0a28,<0.2.0" -polywrap-manifest = ">=0.1.0a28,<0.2.0" -polywrap-msgpack = ">=0.1.0a28,<0.2.0" +polywrap-core = ">=0.1.0a29,<0.2.0" +polywrap-manifest = ">=0.1.0a29,<0.2.0" +polywrap-msgpack = ">=0.1.0a29,<0.2.0" [[package]] name = "polywrap-uri-resolvers" -version = "0.1.0a28" +version = "0.1.0a29" description = "" category = "dev" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_uri_resolvers-0.1.0a28-py3-none-any.whl", hash = "sha256:62b72fbe3dbd817507dbaea947ac489d18deaccba0f74b4fb1d6593342ad78e4"}, - {file = "polywrap_uri_resolvers-0.1.0a28.tar.gz", hash = "sha256:fd6cbaf88d0660532883e5e5ad162e3646f62970540e54a31d7bc8da2c8dc196"}, + {file = "polywrap_uri_resolvers-0.1.0a29-py3-none-any.whl", hash = "sha256:d8e1eb8284640dbcff754ef81d7558d241d4b7c23334be93596bd924cc1ab502"}, + {file = "polywrap_uri_resolvers-0.1.0a29.tar.gz", hash = "sha256:0c1784f03ad54000b3caf46ebeaaeae50cfb4070134e66ce67e270977e99e80c"}, ] [package.dependencies] -polywrap-core = ">=0.1.0a28,<0.2.0" -polywrap-wasm = ">=0.1.0a28,<0.2.0" +polywrap-core = ">=0.1.0a29,<0.2.0" +polywrap-wasm = ">=0.1.0a29,<0.2.0" [[package]] name = "polywrap-wasm" -version = "0.1.0a28" +version = "0.1.0a29" description = "" category = "dev" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "polywrap_wasm-0.1.0a28-py3-none-any.whl", hash = "sha256:9a39a85d1a32f3530c64a6d7871ac3c23a9f206a765996e36aa9ebc2936cd22d"}, - {file = "polywrap_wasm-0.1.0a28.tar.gz", hash = "sha256:4411e4d6f6457ab67bf601875067b42f2ec2e7be1ac83102f3d30e61970c98b3"}, + {file = "polywrap_wasm-0.1.0a29-py3-none-any.whl", hash = "sha256:462ae2d043abbed45f94b9615339834029af7d503d2f8e6037959fef953edd7b"}, + {file = "polywrap_wasm-0.1.0a29.tar.gz", hash = "sha256:97c2bb2c057e260376a99e5cea44ce2a78097c1ee670be1b6f0269f233f772fe"}, ] [package.dependencies] -polywrap-core = ">=0.1.0a28,<0.2.0" -polywrap-manifest = ">=0.1.0a28,<0.2.0" -polywrap-msgpack = ">=0.1.0a28,<0.2.0" +polywrap-core = ">=0.1.0a29,<0.2.0" +polywrap-manifest = ">=0.1.0a29,<0.2.0" +polywrap-msgpack = ">=0.1.0a29,<0.2.0" unsync = ">=1.4.0,<2.0.0" unsync-stubs = ">=0.1.2,<0.2.0" wasmtime = ">=6.0.0,<7.0.0" +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] + [[package]] name = "pydantic" version = "1.10.7" @@ -763,6 +803,24 @@ typing-extensions = ">=4.2.0" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[[package]] +name = "pydocstyle" +version = "6.3.0" +description = "Python docstring style checker" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pydocstyle-6.3.0-py3-none-any.whl", hash = "sha256:118762d452a49d6b05e194ef344a55822987a462831ade91ec5c06fd2169d019"}, + {file = "pydocstyle-6.3.0.tar.gz", hash = "sha256:7ce43f0c0ac87b07494eb9c0b462c0b73e6ff276807f204d6b53edc72b7e44e1"}, +] + +[package.dependencies] +snowballstemmer = ">=2.2.0" + +[package.extras] +toml = ["tomli (>=1.2.3)"] + [[package]] name = "pygments" version = "2.15.0" @@ -828,14 +886,14 @@ dev = ["twine (>=3.4.1)"] [[package]] name = "pytest" -version = "7.3.0" +version = "7.3.1" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.3.0-py3-none-any.whl", hash = "sha256:933051fa1bfbd38a21e73c3960cebdad4cf59483ddba7696c48509727e17f201"}, - {file = "pytest-7.3.0.tar.gz", hash = "sha256:58ecc27ebf0ea643ebfdf7fb1249335da761a00c9f955bcd922349bcb68ee57d"}, + {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, + {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, ] [package.dependencies] @@ -868,6 +926,24 @@ pytest = ">=6.1.0" docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] +[[package]] +name = "pytest-mock" +version = "3.10.0" +description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-mock-3.10.0.tar.gz", hash = "sha256:fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"}, + {file = "pytest_mock-3.10.0-py3-none-any.whl", hash = "sha256:f4c973eeae0282963eb293eb173ce91b091a79c1334455acfac9ddee8a1c784b"}, +] + +[package.dependencies] +pytest = ">=5.0" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] + [[package]] name = "pyyaml" version = "6.0" @@ -972,6 +1048,18 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-g testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + [[package]] name = "smmap" version = "5.0.0" @@ -996,6 +1084,18 @@ files = [ {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, ] +[[package]] +name = "snowballstemmer" +version = "2.2.0" +description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + [[package]] name = "stevedore" version = "5.0.0" @@ -1011,6 +1111,18 @@ files = [ [package.dependencies] pbr = ">=2.0.0,<2.1.0 || >2.1.0" +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -1035,6 +1147,52 @@ files = [ {file = "tomlkit-0.11.7.tar.gz", hash = "sha256:f392ef70ad87a672f02519f99967d28a4d3047133e2d1df936511465fbb3791d"}, ] +[[package]] +name = "tox" +version = "3.28.0" +description = "tox is a generic virtualenv management and test command line tool" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "tox-3.28.0-py2.py3-none-any.whl", hash = "sha256:57b5ab7e8bb3074edc3c0c0b4b192a4f3799d3723b2c5b76f1fa9f2d40316eea"}, + {file = "tox-3.28.0.tar.gz", hash = "sha256:d0d28f3fe6d6d7195c27f8b054c3e99d5451952b54abdae673b71609a581f640"}, +] + +[package.dependencies] +colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} +filelock = ">=3.0.0" +packaging = ">=14" +pluggy = ">=0.12.0" +py = ">=1.4.17" +six = ">=1.14.0" +tomli = {version = ">=2.0.1", markers = "python_version >= \"3.7\" and python_version < \"3.11\""} +virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" + +[package.extras] +docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] +testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)"] + +[[package]] +name = "tox-poetry" +version = "0.4.1" +description = "Tox poetry plugin" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "tox-poetry-0.4.1.tar.gz", hash = "sha256:2395808e1ce487b5894c10f2202e14702bfa6d6909c0d1e525170d14809ac7ef"}, + {file = "tox_poetry-0.4.1-py2.py3-none-any.whl", hash = "sha256:11d9cd4e51d4cd9484b3ba63f2650ab4cfb4096e5f0682ecf561ddfc3c8e8c92"}, +] + +[package.dependencies] +pluggy = "*" +toml = "*" +tox = {version = ">=3.7.0", markers = "python_version >= \"3\""} + +[package.extras] +test = ["coverage", "pycodestyle", "pylint", "pytest"] + [[package]] name = "typing-extensions" version = "4.5.0" @@ -1070,6 +1228,27 @@ files = [ {file = "unsync_stubs-0.1.2.tar.gz", hash = "sha256:9f5b7d5cd35a03e36b735be2ba5f1c2c3848c613ad124ccbf5fc0c3cdb21cc50"}, ] +[[package]] +name = "virtualenv" +version = "20.21.0" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = ">=3.7" +files = [ + {file = "virtualenv-20.21.0-py3-none-any.whl", hash = "sha256:31712f8f2a17bd06234fa97fdf19609e789dd4e3e4bf108c3da71d710651adbc"}, + {file = "virtualenv-20.21.0.tar.gz", hash = "sha256:f50e3e60f990a0757c9b68333c9fdaa72d7188caa417f96af9e52407831a3b68"}, +] + +[package.dependencies] +distlib = ">=0.3.6,<1" +filelock = ">=3.4.1,<4" +platformdirs = ">=2.4,<4" + +[package.extras] +docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23)", "pytest (>=7.2.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"] + [[package]] name = "wasmtime" version = "6.0.0" @@ -1177,4 +1356,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "4a76b0e25dee7a9ea96e1a5c4a13598b9a8d52865bc5e29ee187b207de31f7f0" +content-hash = "10cc711ea7eea20a3efcb5fe2b2c665eb911aacef1f7565964973a9adda92c04" diff --git a/implementations/py/polywrap_http_plugin/__init__.py b/implementations/py/polywrap_http_plugin/__init__.py index f948900..a6091fa 100644 --- a/implementations/py/polywrap_http_plugin/__init__.py +++ b/implementations/py/polywrap_http_plugin/__init__.py @@ -1,19 +1,30 @@ +"""This package contains the HTTP plugin.""" import base64 from typing import Optional, cast -from httpx import AsyncClient, Response as HttpxResponse -from polywrap_plugin import PluginPackage +from httpx import AsyncClient +from httpx import Response as HttpxResponse from polywrap_core import InvokerClient, UriPackageOrWrapper from polywrap_msgpack import GenericMap +from polywrap_plugin import PluginPackage -from .wrap import HttpHttpResponse, HttpHttpResponseType, ArgsGet, ArgsPost, manifest, Module +from .wrap import ( + ArgsGet, + ArgsPost, + HttpHttpResponse, + HttpHttpResponseType, + Module, + manifest, +) -def isResponseBinary(args: ArgsGet) -> bool: +def _is_response_binary(args: ArgsGet) -> bool: if args.get("request") is None: return False if not args["request"]: return False + if not args["request"].get("responseType"): + return False if args["request"]["responseType"] == 1: return True if args["request"]["responseType"] == "BINARY": @@ -22,25 +33,31 @@ def isResponseBinary(args: ArgsGet) -> bool: class HttpPlugin(Module[None]): + """HTTP plugin.""" + def __init__(self): + """Initialize the HTTP plugin.""" super().__init__(None) self.client = AsyncClient() - async def get(self, args: ArgsGet, client: InvokerClient[UriPackageOrWrapper], env: None) -> Optional[HttpHttpResponse]: + async def get( + self, args: ArgsGet, client: InvokerClient[UriPackageOrWrapper], env: None + ) -> Optional[HttpHttpResponse]: + """Make a GET request to the given URL.""" res: HttpxResponse if args.get("request") is None: res = await self.client.get(args["url"]) elif args["request"] is not None: res = await self.client.get( args["url"], - params=args["request"]["urlParams"], - headers=args["request"]["headers"], - timeout=cast(float, args["request"]["timeout"]), + params=args["request"].get("urlParams"), + headers=args["request"].get("headers"), + timeout=cast(float, args["request"].get("timeout")), ) else: res = await self.client.get(args["url"]) - if isResponseBinary(args): + if _is_response_binary(args): return HttpHttpResponse( status=res.status_code, statusText=res.reason_phrase, @@ -55,7 +72,10 @@ async def get(self, args: ArgsGet, client: InvokerClient[UriPackageOrWrapper], e body=res.text, ) - async def post(self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], env: None) -> Optional[HttpHttpResponse]: + async def post( + self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], env: None + ) -> Optional[HttpHttpResponse]: + """Make a POST request to the given URL.""" res: HttpxResponse if args.get("request") is None: res = await self.client.post(args["url"]) @@ -68,14 +88,14 @@ async def post(self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], res = await self.client.post( args["url"], content=content, - params=args["request"]["urlParams"], - headers=args["request"]["headers"], - timeout=cast(float, args["request"]["timeout"]), + params=args["request"].get("urlParams"), + headers=args["request"].get("headers"), + timeout=cast(float, args["request"].get("timeout")), ) else: res = await self.client.post(args["url"]) - if args["request"] is not None and args["request"]["responseType"] == HttpHttpResponseType.BINARY: + if _is_response_binary(args): return HttpHttpResponse( status=res.status_code, statusText=res.reason_phrase, @@ -84,12 +104,13 @@ async def post(self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], ) return HttpHttpResponse( - status=res.status_code, - statusText=res.reason_phrase, - headers=GenericMap(dict(res.headers)), - body=res.text, - ) + status=res.status_code, + statusText=res.reason_phrase, + headers=GenericMap(dict(res.headers)), + body=res.text, + ) def http_plugin(): + """Factory function for the HTTP plugin.""" return PluginPackage(module=HttpPlugin(), manifest=manifest) diff --git a/implementations/py/pyproject.toml b/implementations/py/pyproject.toml index dc320dd..e23b992 100644 --- a/implementations/py/pyproject.toml +++ b/implementations/py/pyproject.toml @@ -4,22 +4,22 @@ build-backend = "poetry.core.masonry.api" [tool.poetry] name = "polywrap-http-plugin" -version = "0.1.0a4" +version = "0.1.0a5" description = "" -authors = ["Niraj Kamdar "] +authors = ["Niraj "] readme = "README.md" packages = [{include = "polywrap_http_plugin"}] [tool.poetry.dependencies] python = "^3.10" -polywrap-plugin = "0.1.0a28" +polywrap-plugin = "0.1.0a29" httpx = "^0.23.3" -polywrap-core = "^0.1.0a28" -polywrap-msgpack = "^0.1.0a28" -polywrap-manifest = "^0.1.0a28" +polywrap-core = "^0.1.0a29" +polywrap-msgpack = "^0.1.0a29" +polywrap-manifest = "^0.1.0a29" [tool.poetry.group.dev.dependencies] -polywrap-client = "0.1.0a28" +polywrap-client = "0.1.0a29" black = "^23.1.0" pytest = "^7.2.1" pytest-asyncio = "^0.20.3" @@ -27,8 +27,12 @@ isort = "^5.12.0" bandit = "^1.7.4" pyright = "^1.1.296" pylint = "^2.16.3" -polywrap-uri-resolvers = "^0.1.0a28" -polywrap-client-config-builder = "^0.1.0a28" +polywrap-uri-resolvers = "^0.1.0a29" +polywrap-client-config-builder = "^0.1.0a29" +tox = "^3.26.0" +tox-poetry = "^0.4.1" +pytest-mock = "^3.10.0" +pydocstyle = "^6.3.0" [tool.bandit] exclude_dirs = ["tests"] @@ -43,15 +47,15 @@ reportShadowedImports = false [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = [ - "tests" + "tests", ] [tool.pylint] disable = [ "too-many-return-statements", ] -ignore = [ - "tests/" +ignore-paths = [ + "polywrap_http_plugin/wrap" ] [tool.isort] diff --git a/implementations/py/tests/conftest.py b/implementations/py/tests/conftest.py new file mode 100644 index 0000000..51f9a32 --- /dev/null +++ b/implementations/py/tests/conftest.py @@ -0,0 +1,24 @@ +from typing import Any +from pytest import fixture +from pytest_mock import MockerFixture + +from polywrap_http_plugin import http_plugin +from polywrap_client import PolywrapClient +from polywrap_core import Uri +from polywrap_uri_resolvers import FsUriResolver, SimpleFileReader +from polywrap_client_config_builder import PolywrapClientConfigBuilder + + +@fixture +def builder(): + return PolywrapClientConfigBuilder().add_resolver( + FsUriResolver(file_reader=SimpleFileReader()) + ).set_package( + Uri.from_str("plugin/http"), http_plugin() + ) + + +@fixture +def client(builder: PolywrapClientConfigBuilder): + config = builder.build() + return PolywrapClient(config) diff --git a/implementations/py/tests/integration/conftest.py b/implementations/py/tests/integration/conftest.py new file mode 100644 index 0000000..2435472 --- /dev/null +++ b/implementations/py/tests/integration/conftest.py @@ -0,0 +1,22 @@ +from pathlib import Path +from polywrap_client import PolywrapClient +from polywrap_core import Uri +from pytest import fixture + +from polywrap_client_config_builder.types import ClientConfigBuilder + + +@fixture +def client(builder: ClientConfigBuilder): + wrapper_path = Path(__file__).parent.joinpath("wrapper") + wrapper_uri = Uri.from_str(f"fs/{wrapper_path}") + + config = ( + builder.set_redirect( + Uri.from_str("wrap://ens/wraps.eth:http@1.1.0"), Uri.from_str("plugin/http") + ) + .set_redirect(Uri.from_str("wrapper/integration"), wrapper_uri) + .build() + ) + + return PolywrapClient(config) diff --git a/implementations/py/tests/integration/test_get.py b/implementations/py/tests/integration/test_get.py new file mode 100644 index 0000000..2d724b1 --- /dev/null +++ b/implementations/py/tests/integration/test_get.py @@ -0,0 +1,61 @@ +from base64 import b64decode +import json + +from polywrap_http_plugin import HttpHttpResponse +from polywrap_client import PolywrapClient +from polywrap_core import Uri, InvokerOptions + + +async def test_simple_get(client: PolywrapClient): + response: HttpHttpResponse = await client.invoke( + InvokerOptions( + uri=Uri.from_str("wrapper/integration"), + method="get", + args={"url": "https://jsonplaceholder.typicode.com/todos/1"}, + ) + ) + + assert response["status"] == 200 + assert response["body"] is not None + assert json.loads(response["body"])["id"] == 1 + + +async def test_params_get(client: PolywrapClient): + response: HttpHttpResponse = await client.invoke( + InvokerOptions( + uri=Uri.from_str("wrapper/integration"), + method="get", + args={ + "url": "https://jsonplaceholder.typicode.com/todos", + "request": { + "urlParams": { + "id": "1", + }, + "responseType": 0, + }, + }, + ) + ) + + assert response["status"] == 200 + assert response["body"] is not None + assert len(json.loads(response["body"])) == 1 + + +async def test_binary_get(client: PolywrapClient): + response: HttpHttpResponse = await client.invoke( + InvokerOptions( + uri=Uri.from_str("wrapper/integration"), + method="get", + args={ + "url": "https://jsonplaceholder.typicode.com/todos/1", + "request": { + "responseType": 1, + }, + }, + ) + ) + + assert response["status"] == 200 + assert response["body"] is not None + assert json.loads(b64decode(response["body"]).decode("utf-8"))["id"] == 1 diff --git a/implementations/py/tests/integration/test_post.py b/implementations/py/tests/integration/test_post.py new file mode 100644 index 0000000..1ee7b16 --- /dev/null +++ b/implementations/py/tests/integration/test_post.py @@ -0,0 +1,57 @@ +from base64 import b64decode +import json +from polywrap_http_plugin import HttpHttpResponse +from polywrap_client import PolywrapClient +from polywrap_core import Uri, InvokerOptions + + +async def test_simple_post(client: PolywrapClient): + response: HttpHttpResponse = await client.invoke( + InvokerOptions( + uri=Uri.from_str("wrapper/integration"), + method="post", + args={ + "url": "https://jsonplaceholder.typicode.com/todos", + "request": { + "responseType": 0, + "body": json.dumps( + { + "title": "foo", + "body": "bar", + "userId": 1, + } + ), + }, + }, + ) + ) + + assert response["status"] == 201 + assert response["body"] is not None + assert json.loads(response["body"])["id"] == 201 + + +async def test_binary_post(client: PolywrapClient): + response: HttpHttpResponse = await client.invoke( + InvokerOptions( + uri=Uri.from_str("wrapper/integration"), + method="post", + args={ + "url": "https://jsonplaceholder.typicode.com/todos", + "request": { + "responseType": 1, + "body": json.dumps( + { + "title": "foo", + "body": "bar", + "userId": 1, + } + ), + }, + }, + ) + ) + + assert response["status"] == 201 + assert response["body"] is not None + assert json.loads(b64decode(response["body"]).decode("utf-8"))["id"] == 201 diff --git a/implementations/py/tests/integration/wrapper/schema.graphql b/implementations/py/tests/integration/wrapper/schema.graphql new file mode 100644 index 0000000..6fdd8a8 --- /dev/null +++ b/implementations/py/tests/integration/wrapper/schema.graphql @@ -0,0 +1,13 @@ +#import { Module, Request, Response } into HTTP from "ens/wraps.eth:http@1.1.0" + +type Module { + get( + url: String! + request: HTTP_Request + ): HTTP_Response + + post( + url: String! + request: HTTP_Request + ): HTTP_Response +} diff --git a/implementations/py/tests/integration/wrapper/wrap.info b/implementations/py/tests/integration/wrapper/wrap.info new file mode 100644 index 0000000000000000000000000000000000000000..cbf0dc3692e2482099d605386a6c8d6f4e56a08e GIT binary patch literal 4475 zcmeHK&2Jk;6i=!gP>=itLoNo%u^YY)5vtPCMC6dRN?id$C>?vBou#`o%gk(2a{`f+ zGv(tSuxlr2D$$k$XSh=C<*#Ahyxq;Ly=~HPt9ptv`@ZM*e(%lhcpH=sr5IdjEDi;a z;kQp(t?LVG!az@PW4{bdKY`&6*YSY2!#!W&FqT0YLCXs4j>9;S%IIIda|#d8%;viL zPA5n1WCOlVK^r=HlpX0r3hm6$`D1s!Dph=i8@?ip>eGjZB?aebL_UVMLlOM_?KlRr zB?Eo$u1jXn12a-!QYChs^n?LS7-gLH{7AOHf{yvVP_0ryKTp|A=G%F5+ROXOrWPs) z{yN~Qm&PEBzPCqmH;f8JkL;!@Iu^|w>kf~&+ARcptqI{dN~Baxr#D9bwzL(w6rb=a z%bHm_RIXtn^@;UzLKRNv96d}F`PHo06T&+L*BofD2lP*O-NltEJV;ge2MFEVQ9RKN z3z(%XW0K{?#$w~b0Rm7byaPi-_MxyHw+(1(oHdFo^wYW7!$iphlnFuqN(gwe&XbP_ zSan8!FA@;8fCsj#2Qg15peoUkkGXNC@*>>1NdB3bn>knZavS;t+|wAjzs;i*PA^Y5 zJ0al%+fvuL;_=I*e5~{mNgpc>inNcC9Lhs|1H+BNL*%rtim+cM~nJ2FOcd$!)%0){6{cA2riGXiR`wJu9+XjZ81KHTbN zRDR2zI~e!bP8db34J_;lX-Ts|>1L=T3U==NqB@y5itG0;ria9rt}6Svw>;8+XFp)< zl3+YCps2-|kuEZAxCpok^4MKIbymww)L5t)+)3bjqH;waCCBQ;?>07fx8Ya>xsxz-XlVv%7%~n?Jgc|BB>^k!}6EUn~eJp-gMv>gH zQ-)D57X{`)K%skAw8Uy3OFQC)SwON`VpX|hS8|^##ru2Z(z;uzyn<|q67Y(v@W6?n zs~GU^ZgH?8`raId1~TxT!3Ocg=%(Fb-g}qW%7ih>NCqhUSToj`4X)=Wxs(Yq_bA?{Si;) zo%8IX#c>S_;~F7=ZYUtAGsohHL8E|UXK>9pYjX`BzR%iy15DG#XloN~>316J z3Us-p4_iRVAWlp_D_A8BqSAEmgq8BHbw*(BZ)9_%3X?>)1KUduP9sa1Ce;&2%1cgd zpUJqGQE@`J0(OUFwFP%3h0B&bIlm&44o+AY@=fJc+mQV3q2W2*f6p1J#X3vRsTSh& z#~;p!r|eDkAk_GdR9(B@{^_pEe-#qeW@lbM+48C6KR;hT*(?G}4=I|2|L2kWD1Wl8 v*v*&_P9!?L10QtkT5Wej`-C61Rz7QuF0Wm^wDI{F`{5|(S9D6aKljFeZd`FQ literal 0 HcmV?d00001 diff --git a/implementations/py/tests/integration/wrapper/wrap.wasm b/implementations/py/tests/integration/wrapper/wrap.wasm new file mode 100755 index 0000000000000000000000000000000000000000..9755abf7b15eed72f1801f7e22a51f602e1147f3 GIT binary patch literal 77946 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

E(`5t#1&~ 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 bx0|E2%delk_Rgb~#oesiqHc!&6HopL3w>fj diff --git a/implementations/py/tests/ipfs-wrapper/wrap.wasm b/implementations/py/tests/ipfs-wrapper/wrap.wasm deleted file mode 100644 index ea5752edf07656a454d362d81317406f92cff322..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150523 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 Date: Tue, 18 Apr 2023 12:46:00 +0400 Subject: [PATCH 08/21] fix: package.json --- implementations/js/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/implementations/js/package.json b/implementations/js/package.json index 117c012..d69a996 100644 --- a/implementations/js/package.json +++ b/implementations/js/package.json @@ -1,7 +1,7 @@ { - "name": "@wraplib/http-plugin-js", + "name": "@polywrap/http-plugin-js", "description": "Polywrap HTTP Javascript Plugin", - "version": "0.10.0-pre.10", + "version": "0.10.0-pre.8", "license": "MIT", "repository": { "type": "git", From b8c54a0d14a440701b4bff9a89b6a08e42c0089d Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 12:47:56 +0400 Subject: [PATCH 09/21] fix: package.json --- implementations/js/package.json | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/implementations/js/package.json b/implementations/js/package.json index f438759..4ac31f8 100644 --- a/implementations/js/package.json +++ b/implementations/js/package.json @@ -37,6 +37,12 @@ "@polywrap/client-js": "0.10.0-pre.10", "@polywrap/test-env-js": "0.10.0-pre.10", "@types/jest": "26.0.8", + "jest": "26.6.3", + "nock": "13.0.7", + "rimraf": "3.0.2", + "ts-jest": "26.5.4", + "ts-node": "8.10.2", + "typescript": "4.1.6", "@types/prettier": "2.6.0", "@typescript-eslint/eslint-plugin": "4.11.1", "@typescript-eslint/parser": "4.11.1", @@ -45,15 +51,7 @@ "eslint-plugin-import": "2.22.1", "eslint-plugin-json": "3.0.0", "eslint-plugin-prettier": "3.4.0", - "jest": "26.6.3", - "nock": "13.0.7", - "polywrap": "0.10.0-pre.8", - "prettier": "2.2.1", - "rimraf": "3.0.2", - "temp-fs-plugin-js": "0.10.0-pre.8", - "ts-jest": "26.5.4", - "ts-node": "8.10.2", - "typescript": "4.1.6" + "prettier": "2.2.1" }, "gitHead": "7346adaf5adb7e6bbb70d9247583e995650d390a", "publishConfig": { From 337bb1ca78d6e4cb33a0664f6bd238496f81a868 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 12:52:28 +0400 Subject: [PATCH 10/21] feat: add readme --- implementations/py/README.md | 53 +++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/implementations/py/README.md b/implementations/py/README.md index 2107807..75f25fd 100644 --- a/implementations/py/README.md +++ b/implementations/py/README.md @@ -1 +1,52 @@ -# Polywrap HTTP Plugin \ No newline at end of file +# @polywrap/http-plugin-js + +Http plugin currently supports two different methods `GET` and `POST`. Similar to calling axios, when defining request you need to specify a response type. Headers and query parameters may also be defined. + +## Response Types + +`TEXT` - The server will respond with text, the HTTP plugin will return the text as-is. + +`BINARY` - The server will respond with binary data (_bytes_), the HTTP plugin will encode as a **base64** string and return it. + +## GET request + +Below is sample invocation of the `GET` request with custom request headers and query parameters (`urlParams`). + +```python +result = await client.invoke( + InvokerOptions( + uri="wrap://ens/http.polywrap.eth", + method="get", + args={ + "url": "http://www.example.com/api", + "request": { + "responseType": "TEXT", + "urlParams": [{"key": "query", "value": "foo"}], + "headers": [{"key": "X-Request-Header", "value": "req-foo"}], + }, + }, + ) +) +``` + +## POST request + +Below is sample invocation of the `POST` request with custom request headers and query parameters (`urlParams`). It is also possible to set request body as shown below. + +```python +response = await polywrap_client.invoke( + InvokerOptions( + uri="wrap://ens/http.polywrap.eth", + method="post", + args={ + "url": "http://www.example.com/api", + "request": { + "responseType": "TEXT", + "urlParams": [{"key": "query", "value": "foo"}], + "headers": [{"key": "X-Request-Header", "value": "req-foo"}], + "body": "{data: 'test-request'}", + } + } + ) +) +``` From eb6d54beeeeccab271e96f622d0ccb3f71c00299 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar <51387861+Niraj-Kamdar@users.noreply.github.com> Date: Tue, 18 Apr 2023 01:53:22 -0700 Subject: [PATCH 11/21] Update README.md --- implementations/py/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/implementations/py/README.md b/implementations/py/README.md index 75f25fd..b4ab231 100644 --- a/implementations/py/README.md +++ b/implementations/py/README.md @@ -34,7 +34,7 @@ result = await client.invoke( Below is sample invocation of the `POST` request with custom request headers and query parameters (`urlParams`). It is also possible to set request body as shown below. ```python -response = await polywrap_client.invoke( +response = await client.invoke( InvokerOptions( uri="wrap://ens/http.polywrap.eth", method="post", From c21d1bf129211c6f86980130bb602c6c7ab6867a Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 14:25:20 +0400 Subject: [PATCH 12/21] fix: ignore tox dir --- implementations/py/.gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/implementations/py/.gitignore b/implementations/py/.gitignore index b553442..b5048d7 100644 --- a/implementations/py/.gitignore +++ b/implementations/py/.gitignore @@ -1,4 +1,5 @@ **/.vscode/ **/.pytest_cache/ **/dist/ -**/node_modules/ \ No newline at end of file +**/node_modules/ +**/.tox/ \ No newline at end of file From e9d747fabe1b04634d143ad9161d5aafb5a03582 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 14:47:37 +0400 Subject: [PATCH 13/21] feat: add ci/cd --- .github/workflows/http-plugin-py-cd.yaml | 46 ++++++++++++++++++++++++ .github/workflows/http-plugin-py-ci.yaml | 43 ++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 .github/workflows/http-plugin-py-cd.yaml create mode 100644 .github/workflows/http-plugin-py-ci.yaml diff --git a/.github/workflows/http-plugin-py-cd.yaml b/.github/workflows/http-plugin-py-cd.yaml new file mode 100644 index 0000000..c79385b --- /dev/null +++ b/.github/workflows/http-plugin-py-cd.yaml @@ -0,0 +1,46 @@ +name: http-plugin-py-cd + +on: + pull_request: + types: [closed] + branches: + - main + paths: + - "implementations/py/**" + +jobs: + cd: + name: http-plugin-py-cd + if: | + github.event.pull_request.merged && + startsWith(github.event.pull_request.title, '[CD]') != true && + github.event.pull_request.user.login != 'github-actions' + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Read VERSION into env.RELEASE_VERSION + working-directory: ./implementations/py + run: | + echo RELEASE_VERSION=$(poetry version | awk '{print $2}') >> $GITHUB_ENV + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install poetry + run: curl -sSL https://install.python-poetry.org | python3 - + + - name: Install dependencies + run: poetry install + working-directory: ./implementations/py + + - name: Publish + run: poetry publish --build -u __token__ -p {{ env.PYPI_TOKEN }} + working-directory: ./implementations/py + env: + PYPI_TOKEN: ${{ secrets.POLYWRAP_BUILD_BOT_PYPI_PAT }} + diff --git a/.github/workflows/http-plugin-py-ci.yaml b/.github/workflows/http-plugin-py-ci.yaml new file mode 100644 index 0000000..6f0ba13 --- /dev/null +++ b/.github/workflows/http-plugin-py-ci.yaml @@ -0,0 +1,43 @@ +name: http-plugin-py-ci + +on: + pull_request: + paths: + - "implementations/py/**" + +jobs: + ci: + name: http-plugin-py-ci + runs-on: ubuntu-latest + timeout-minutes: 60 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install poetry + run: curl -sSL https://install.python-poetry.org | python3 - + + - name: Install dependencies + run: poetry install + working-directory: ./implementations/py + + - name: Typecheck + run: poetry run tox -e typecheck + working-directory: ./implementations/py + + - name: Lint + run: poetry run tox -e lint + working-directory: ./implementations/py + + - name: Security + run: poetry run tox -e secure + working-directory: ./implementations/py + + - name: Test + run: poetry run tox + working-directory: ./implementations/py From 0c1d8fc1a9f28bca7e3ae270357edb312cbc4d33 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 14:58:33 +0400 Subject: [PATCH 14/21] fix: issues in ci/cd --- .github/workflows/http-plugin-py-cd.yaml | 19 ++++++++++++++++--- .github/workflows/http-plugin-py-ci.yaml | 18 ++++++++++++++++++ implementations/py/.nvmrc | 1 + implementations/py/package.json | 3 +++ implementations/py/pyproject.toml | 3 +++ 5 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 implementations/py/.nvmrc diff --git a/.github/workflows/http-plugin-py-cd.yaml b/.github/workflows/http-plugin-py-cd.yaml index c79385b..35079da 100644 --- a/.github/workflows/http-plugin-py-cd.yaml +++ b/.github/workflows/http-plugin-py-cd.yaml @@ -21,10 +21,23 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Read VERSION into env.RELEASE_VERSION + - name: Read .nvmrc + run: echo ::set-output name=NVMRC::$(cat .nvmrc) + id: nvm + working-directory: ./implementations/py + + - name: Setup Node.js + uses: actions/setup-node@master + with: + node-version: '${{ steps.nvm.outputs.NVMRC }}' + + - name: Install dependencies + run: yarn install --nonInteractive --frozen-lockfile --prefer-offline + working-directory: ./implementations/py + + - name: Codegen + run: yarn codegen working-directory: ./implementations/py - run: | - echo RELEASE_VERSION=$(poetry version | awk '{print $2}') >> $GITHUB_ENV - name: Set up Python 3.10 uses: actions/setup-python@v4 diff --git a/.github/workflows/http-plugin-py-ci.yaml b/.github/workflows/http-plugin-py-ci.yaml index 6f0ba13..246dfe5 100644 --- a/.github/workflows/http-plugin-py-ci.yaml +++ b/.github/workflows/http-plugin-py-ci.yaml @@ -14,6 +14,24 @@ jobs: - name: Checkout uses: actions/checkout@v2 + - name: Read .nvmrc + run: echo ::set-output name=NVMRC::$(cat .nvmrc) + id: nvm + working-directory: ./implementations/py + + - name: Setup Node.js + uses: actions/setup-node@master + with: + node-version: '${{ steps.nvm.outputs.NVMRC }}' + + - name: Install dependencies + run: yarn install --nonInteractive --frozen-lockfile --prefer-offline + working-directory: ./implementations/py + + - name: Codegen + run: yarn codegen + working-directory: ./implementations/py + - name: Set up Python 3.10 uses: actions/setup-python@v4 with: diff --git a/implementations/py/.nvmrc b/implementations/py/.nvmrc new file mode 100644 index 0000000..5015706 --- /dev/null +++ b/implementations/py/.nvmrc @@ -0,0 +1 @@ +v17.9.1 \ No newline at end of file diff --git a/implementations/py/package.json b/implementations/py/package.json index 57ac4c8..439ebe0 100644 --- a/implementations/py/package.json +++ b/implementations/py/package.json @@ -5,5 +5,8 @@ "private": true, "devDependencies": { "polywrap": "0.10.0-pre.7" + }, + "scripts": { + "codegen": "npx polywrap codegen" } } diff --git a/implementations/py/pyproject.toml b/implementations/py/pyproject.toml index e23b992..e972d3e 100644 --- a/implementations/py/pyproject.toml +++ b/implementations/py/pyproject.toml @@ -43,6 +43,9 @@ target-version = ["py310"] [tool.pyright] typeCheckingMode = "strict" reportShadowedImports = false +exclude = [ + "**/wrap/" +] [tool.pytest.ini_options] asyncio_mode = "auto" From 668c635f4e196af1e99325866b777e0940b29497 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 15:00:41 +0400 Subject: [PATCH 15/21] fix: package.json --- implementations/py/package.json | 4 +- implementations/py/yarn.lock | 1031 +++++++++++++------------------ 2 files changed, 436 insertions(+), 599 deletions(-) diff --git a/implementations/py/package.json b/implementations/py/package.json index 439ebe0..0661336 100644 --- a/implementations/py/package.json +++ b/implementations/py/package.json @@ -1,10 +1,10 @@ { "name": "@polywrap/python-http-plugin", "description": "Polywrap Python Http Plugin", - "version": "0.10.0-pre.7", + "version": "0.10.0", "private": true, "devDependencies": { - "polywrap": "0.10.0-pre.7" + "polywrap": "0.10.0" }, "scripts": { "codegen": "npx polywrap codegen" diff --git a/implementations/py/yarn.lock b/implementations/py/yarn.lock index 31bd6be..6a86fac 100644 --- a/implementations/py/yarn.lock +++ b/implementations/py/yarn.lock @@ -20,7 +20,7 @@ graphql "15.5.0" graphql-json-transform "^1.1.0-alpha.0" -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -35,7 +35,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -48,7 +48,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -59,18 +59,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.7.tgz#ee7fd7d3b3a400dec6035c7b3f0b7e4652207308" - integrity sha512-+63DiYG+2og6rFNvQmLlLw8i5LtyT65n+jtHd06Ic81rLHc+JUKRpeZFhBa+gqh9f+P8V0xtKR5NI/EHXOfgSw== - dependencies: - "@ethersproject/bignumber" "^5.0.10" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/rlp" "^5.0.3" - -"@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -81,22 +70,14 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.0.7.tgz#2f7026b12c9dee6cdc7b7bf1805461836e635495" - integrity sha512-OsXnRsujGmYD9LYyJlX+cVe5KfwgLUbUJrJMWdzRWogrygXd5HvGd7ygX1AYjlu1z8W/+t2FoQnczDR/H2iBjA== - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/properties" "^5.0.7" - -"@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -104,7 +85,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -113,21 +94,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.0.0": +"@ethersproject/contracts@5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -143,7 +124,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -158,7 +139,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== @@ -176,7 +157,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== @@ -195,7 +176,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -203,19 +184,26 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== @@ -223,38 +211,13 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" - integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.3" - "@ethersproject/abstract-signer" "^5.0.3" - "@ethersproject/address" "^5.0.3" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.6" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.3" - "@ethersproject/hash" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.3" - "@ethersproject/transactions" "^5.0.3" - "@ethersproject/web" "^5.0.4" - bech32 "1.1.4" - ws "7.2.3" - "@ethersproject/providers@5.6.8": version "5.6.8" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" @@ -281,10 +244,10 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/providers@^5.0.0": - version "5.7.2" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" - integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== +"@ethersproject/providers@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== dependencies: "@ethersproject/abstract-provider" "^5.7.0" "@ethersproject/abstract-signer" "^5.7.0" @@ -307,7 +270,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -315,7 +278,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -323,7 +286,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -332,7 +295,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -344,7 +307,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@^5.0.0": +"@ethersproject/solidity@5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== @@ -356,7 +319,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -365,7 +328,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -380,7 +343,7 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@^5.0.0": +"@ethersproject/units@5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== @@ -410,7 +373,7 @@ "@ethersproject/transactions" "^5.6.2" "@ethersproject/wordlists" "^5.6.1" -"@ethersproject/wallet@^5.0.0": +"@ethersproject/wallet@5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== @@ -431,7 +394,18 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -442,7 +416,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== @@ -621,297 +595,279 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz#ed410c9eb0070491cff9fe914246ce41f88d6f74" integrity sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ== -"@polywrap/asyncify-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/asyncify-js/-/asyncify-js-0.10.0-pre.7.tgz#1edd34d5edd6bd1c34e6124ad1e6c6a34c2f51b7" - integrity sha512-egvWNt6mjfsO0TQImHIifAFmV9pn+LbHzDJhsUyLrKJo0Z9/QkMjOkMhR+NOqn6SeymCa+wFEWVbHe2YUSP8dg== - -"@polywrap/client-config-builder-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.7.tgz#b9931a6d20f8f989d5d35376a3886f218f13e711" - integrity sha512-B/9pbbTVD7Xh+Nq9NtqA9AnGdKOq63oC7OC7KDPtOAy7bQXQLSwIRf4pakVEoWkdG0nxN7tY2/aO6f0HVoEYjA== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/ens-resolver-plugin-js" "0.10.0-pre.7" - "@polywrap/ethereum-plugin-js" "0.10.0-pre.7" - "@polywrap/fs-plugin-js" "0.10.0-pre.7" - "@polywrap/fs-resolver-plugin-js" "0.10.0-pre.7" - "@polywrap/http-plugin-js" "0.10.0-pre.7" - "@polywrap/http-resolver-plugin-js" "0.10.0-pre.7" - "@polywrap/ipfs-plugin-js" "0.10.0-pre.7" - "@polywrap/ipfs-resolver-plugin-js" "0.10.0-pre.7" - "@polywrap/logger-plugin-js" "0.10.0" - "@polywrap/uri-resolver-extensions-js" "0.10.0-pre.7" - "@polywrap/uri-resolvers-js" "0.10.0-pre.7" - concurrent-plugin-js "0.1.1" - -"@polywrap/client-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/client-js/-/client-js-0.10.0-pre.7.tgz#5c3bb5be0def15cd061551aa5912be2a9de9ba7b" - integrity sha512-uyoY+8/fgTUqHF7v7F1tG7KrfGUwFXQWM+TpSPyL96AtEgAx3zv0Iaf/MaFVPV7YQtN4jgIfAIQsC7iKb+zmGg== - dependencies: - "@polywrap/client-config-builder-js" "0.10.0-pre.7" - "@polywrap/core-client-js" "0.10.0-pre.7" - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/msgpack-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/tracing-js" "0.10.0-pre.7" - "@polywrap/uri-resolver-extensions-js" "0.10.0-pre.7" - "@polywrap/uri-resolvers-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/core-client-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/core-client-js/-/core-client-js-0.10.0-pre.7.tgz#7122e76dc5cc9d8e0cd36531994b84f290470dfd" - integrity sha512-F35gAozvJKz1cPTxrzuPpMeJFaw097T1J+rDpSSlemzGygfFv1dqCSDl3ynZqA59a9+/dBYwN9Ki/Oxrh66n6g== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/msgpack-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/tracing-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/core-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.5.tgz#8457f168235faae19342a87aed6ddce44a56fb59" - integrity sha512-E92OGSBN5EdeYMj8wtZq4Hibh5qnAAzfSbDE40/LH6tWkrCv/gvJxtlA8gPDiMHXZFSx02zETrz7AZawCg8UXA== - dependencies: - "@polywrap/result" "0.10.0-pre.5" - "@polywrap/tracing-js" "0.10.0-pre.5" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.5" - graphql "15.5.0" - graphql-tag "2.10.4" - -"@polywrap/core-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.7.tgz#525aca1d6569e2eaca33ca15668a77dd270c8293" - integrity sha512-06Uc5fux9Dl3cv+nLmLliaBNwzU9J953Haul5OWvIb0+af/ZyxardxfqZim2+jCylSDw7KhXGeaKkJrvpPLsVw== - dependencies: - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/tracing-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/ens-resolver-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/ens-resolver-plugin-js/-/ens-resolver-plugin-js-0.10.0-pre.7.tgz#3072335486102bf001de31154cd671ca75f267ab" - integrity sha512-laTN5mXFUdkFj0pFaoM+xgC4tGzie5fVYV94NCAqeHZozEScjHYYWQ16hBZ+yc6bDZs3p9vN/Z7wxXrfnjzI3A== - dependencies: - "@ethersproject/address" "5.0.7" - "@ethersproject/basex" "5.0.7" - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - ethers "5.0.7" - -"@polywrap/ethereum-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/ethereum-plugin-js/-/ethereum-plugin-js-0.10.0-pre.7.tgz#9b82227bdf738bc5414822753ceed4cd623d2837" - integrity sha512-Z45a3uuefcgggQjHv2kidqcEOCfycfOcBc6UFMzsJcow4cBuSj0kw8zjbp4snVQRA3BltisdJpfWbcmkFl0MAg== - dependencies: - "@ethersproject/address" "5.0.7" - "@ethersproject/providers" "5.0.7" - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - ethers "5.0.7" - -"@polywrap/fs-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/fs-plugin-js/-/fs-plugin-js-0.10.0-pre.7.tgz#d066fac96869363de512978bb66204b589ffa9a1" - integrity sha512-zhNOrzaK+X95orrD9FgHRt6etUMq2kjzfZtbPGHcBxN3JR81rtO+7UsVfCdz1U2VoHXsKOZ6t59JhHVfvVRP/g== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - -"@polywrap/fs-resolver-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/fs-resolver-plugin-js/-/fs-resolver-plugin-js-0.10.0-pre.7.tgz#b4a3eb54030bb1505e07b7ef02cae7c19c82e941" - integrity sha512-KRurku5oz12rfxMtUDLnOHC+UQel89+PZvyXnTdOK3THVF6j/Y7zaS9DdeM6kRUq2+JCY9P+T8dj4cFXXnColw== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - -"@polywrap/http-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/http-plugin-js/-/http-plugin-js-0.10.0-pre.7.tgz#2ce3106f1e32c78e68b71d58f2331bd79b88f659" - integrity sha512-1WXrx9etHq2qd88XzxC1ofqZA+RI4f5rz8BzH2e9lIzxiBQf4m8zj00dIB2xm+IaEAMq48l9u18CNiYDowIXUg== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - axios "0.21.4" - form-data "4.0.0" +"@polywrap/asyncify-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/asyncify-js/-/asyncify-js-0.10.0.tgz#0570ce34501e91710274285b6b4740f1094f08a3" + integrity sha512-/ZhREKykF1hg5H/mm8vQHqv7MSedfCnwzbsNwYuLmH/IUtQi2t7NyD2XXavSLq5PFOHA/apPueatbSFTeIgBdA== + +"@polywrap/client-config-builder-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0.tgz#e583f32dca97dfe0b9575db244fdad74a4f42d6f" + integrity sha512-9hZd5r/5rkLoHdeB76NDUNOYcUCzS+b8WjCI9kv5vNQiOR83dZnW3rTnQmcXOWWErRY70h6xvAQWWQ1WrW/SpQ== + dependencies: + "@polywrap/concurrent-plugin-js" "~0.10.0-pre" + "@polywrap/core-js" "0.10.0" + "@polywrap/ethereum-provider-js" "npm:@polywrap/ethereum-provider-js@~0.3.0" + "@polywrap/ethereum-provider-js-v1" "npm:@polywrap/ethereum-provider-js@~0.2.4" + "@polywrap/file-system-plugin-js" "~0.10.0-pre" + "@polywrap/http-plugin-js" "~0.10.0-pre" + "@polywrap/logger-plugin-js" "0.10.0-pre.10" + "@polywrap/uri-resolver-extensions-js" "0.10.0" + "@polywrap/uri-resolvers-js" "0.10.0" + "@polywrap/wasm-js" "0.10.0" + base64-to-uint8array "1.0.0" + +"@polywrap/client-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/client-js/-/client-js-0.10.0.tgz#607c24cd65c03f57ca8325f4a8ecc02a5485c993" + integrity sha512-wRr4HZ7a4oLrKuw8CchM5JYcE8er43GGKQnhtf/ylld5Q7FpNpfzhsi8eWknORugQYuvR3CSG7qZey4Ijgj6qQ== + dependencies: + "@polywrap/client-config-builder-js" "0.10.0" + "@polywrap/core-client-js" "0.10.0" + "@polywrap/core-js" "0.10.0" + "@polywrap/msgpack-js" "0.10.0" + "@polywrap/plugin-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/tracing-js" "0.10.0" + "@polywrap/uri-resolver-extensions-js" "0.10.0" + "@polywrap/uri-resolvers-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" + +"@polywrap/concurrent-plugin-js@~0.10.0-pre": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/concurrent-plugin-js/-/concurrent-plugin-js-0.10.0-pre.10.tgz#106e015173cabed5b043cbc2fac00a6ccf58f9a0" + integrity sha512-CZUbEEhplLzXpl1xRsF5aRgZLeu4sJxhXA0GWTMqzmGjhqvMPClOMfqklFPmPuCyq76q068XPpYavHjGKNmN2g== + dependencies: + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/msgpack-js" "0.10.0-pre.10" + "@polywrap/plugin-js" "0.10.0-pre.10" + +"@polywrap/core-client-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/core-client-js/-/core-client-js-0.10.0.tgz#bec91479d1294ca86b7fa77f5ed407dab4d2a0b4" + integrity sha512-Sv1fVHM/5ynobtT2N25jbXOKNju1y0Wk4TwFnTJXrAUcARrRMoAfmwLVfTwrqRZ2OjWMQ/AWTc7ziNBtH5dNAg== + dependencies: + "@polywrap/core-js" "0.10.0" + "@polywrap/msgpack-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/tracing-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" -"@polywrap/http-resolver-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/http-resolver-plugin-js/-/http-resolver-plugin-js-0.10.0-pre.7.tgz#b982093dae3675621cfb0a00b78d0ffe69eeb8c8" - integrity sha512-3JqZdKDbOk/B4CNz1utA4bj52gZG7jhNYrM45TvFc0eY7DqVyAF2hewdFQUqhbgW2CYllr0aCqWkVY/++Fs46Q== +"@polywrap/core-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0.tgz#5ddc31ff47019342659a2208eec05299b072b216" + integrity sha512-fx9LqRFnxAxLOhDK4M+ymrxMnXQbwuNPMLjCk5Ve5CPa9RFms0/Fzvj5ayMLidZSPSt/dLISkbDgW44vfv6wwA== dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/plugin-js" "0.10.0-pre.7" - abort-controller "3.0.0" + "@polywrap/result" "0.10.0" + "@polywrap/tracing-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" -"@polywrap/ipfs-http-client-lite@0.3.0": +"@polywrap/core-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.10.tgz#3209dbcd097d3533574f1231c10ef633c2466d5c" + integrity sha512-a/1JtfrHafRh2y0XgK5dNc82gVzjCbXSdKof7ojDghCSRSHUxTw/cJ+pcLrPJhrsTi7VfTM0BFjw3/wC5RutuA== + dependencies: + "@polywrap/result" "0.10.0-pre.10" + "@polywrap/tracing-js" "0.10.0-pre.10" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.10" + +"@polywrap/core-js@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.12.tgz#125e88439007cc13f2405d3f402b504af9dc173e" + integrity sha512-krDcDUyUq2Xdukgkqwy5ldHF+jyecZy/L14Et8bOJ4ONpTZUdedhkVp5lRumcNjYOlybpF86B0o6kO0eUEGkpQ== + dependencies: + "@polywrap/result" "0.10.0-pre.12" + "@polywrap/tracing-js" "0.10.0-pre.12" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.12" + +"@polywrap/ethereum-provider-js-v1@npm:@polywrap/ethereum-provider-js@~0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@polywrap/ethereum-provider-js/-/ethereum-provider-js-0.2.4.tgz#3df1a6548da191618bb5cae7928c7427e69e0030" + integrity sha512-64xRnniboxxHNZ4/gD6SS4T+QmJPUMbIYZ2hyLODb2QgH3qDBiU+i4gdiQ/BL3T8Sn/0iOxvTIgZalVDJRh2iw== + dependencies: + "@ethersproject/address" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/plugin-js" "0.10.0-pre.10" + ethers "5.7.0" + +"@polywrap/ethereum-provider-js@npm:@polywrap/ethereum-provider-js@~0.3.0": version "0.3.0" - resolved "https://registry.yarnpkg.com/@polywrap/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz#b8caf4b4f39413e591aff4367023a04cb6df83a1" - integrity sha512-BriJXaflESPSml0lfsAtp4Prl6i8FC0RoEQpEoTx74E3LIAdiPhdPb8hKDTyOR77oX829WDp0EKsRpQmcvCArg== + resolved "https://registry.yarnpkg.com/@polywrap/ethereum-provider-js/-/ethereum-provider-js-0.3.0.tgz#65f12dc2ab7d6812dad9a28ee051deee2a98a1ed" + integrity sha512-+gMML3FNMfvz/yY+j2tZhOdxa6vgw9i/lFobrmkjkGArLRuOZhYLg/mwmK5BSrzIbng4omh6PgV0DPHgU1m/2w== + dependencies: + "@ethersproject/address" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@polywrap/core-js" "0.10.0-pre.12" + "@polywrap/plugin-js" "0.10.0-pre.12" + ethers "5.7.0" + +"@polywrap/file-system-plugin-js@~0.10.0-pre": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/file-system-plugin-js/-/file-system-plugin-js-0.10.0-pre.10.tgz#93e796d4c25203f05605e7e36446facd6c88902d" + integrity sha512-rqiaHJQ62UoN8VdkoSbpaI5owMrZHhza9ixUS65TCgnoI3aYn3QnMjCfCEkEiwmCeKnB9YH/0S2+6NWQR17XJA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/plugin-js" "0.10.0-pre.10" + +"@polywrap/http-plugin-js@~0.10.0-pre": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/http-plugin-js/-/http-plugin-js-0.10.0-pre.10.tgz#b746af5c0afbfa4d179c6a1c923708257cb2277e" + integrity sha512-xBFYAISARtHQmDKssBYK0FrJVDltI8BqseYA5eDcxipd6nd8CTAojqh9FFxeOGdxpMM6Vq940w6ggrqo0BXqAg== + dependencies: + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/plugin-js" "0.10.0-pre.10" + axios "0.21.4" + form-data "4.0.0" + +"@polywrap/logger-plugin-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/logger-plugin-js/-/logger-plugin-js-0.10.0-pre.10.tgz#de4a995c083edc26d72abb7420628b40d81efed2" + integrity sha512-6wBgBvphQRI+LP22+xi1KPcCq4B9dUMB/ZAXOpVTb/X/fOqdNBOS1LTXV+BtCe2KfdqGS6DKIXwGITcMOxIDCg== dependencies: - abort-controller "^3.0.0" - async-iterator-to-pull-stream "^1.3.0" - buffer "^5.2.1" - cids "^0.7.1" - explain-error "^1.0.4" - form-data "^2.4.0" - iterable-ndjson "^1.1.0" - node-fetch "^2.6.0" - pull-stream-to-async-iterator "^1.0.2" - querystring "^0.2.0" - -"@polywrap/ipfs-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/ipfs-plugin-js/-/ipfs-plugin-js-0.10.0-pre.7.tgz#bf54e6b26b34fb0b6c6c04935a074f56e5e34bb6" - integrity sha512-3lgRc86WC+uOjstZVX6WIO/Tvza8XaOKGIHIQYFf+NyTEG/TueQvkNaUZo7RbHoDaXrvDUvmNyzeW0O0OQzfUA== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/ipfs-http-client-lite" "0.3.0" - "@polywrap/plugin-js" "0.10.0-pre.7" - abort-controller "3.0.0" - is-ipfs "1.0.3" - multiformats "9.7.0" - -"@polywrap/ipfs-resolver-plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/ipfs-resolver-plugin-js/-/ipfs-resolver-plugin-js-0.10.0-pre.7.tgz#e82ebae17eacc542d8f83c183674e82715c5bd9c" - integrity sha512-jI+KqpAq0b8P7nmItUwUJ1JTibMfFUvt5mYuylJj9w3Ua15foTpML60uhOCt1kZ4TeaZoq7C1QcytbWTMsfhUQ== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/ipfs-http-client-lite" "0.3.0" - "@polywrap/plugin-js" "0.10.0-pre.7" - abort-controller "3.0.0" - is-ipfs "1.0.3" - -"@polywrap/logger-plugin-js@0.10.0": + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/plugin-js" "0.10.0-pre.10" + +"@polywrap/logging-js@0.10.0": version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/logger-plugin-js/-/logger-plugin-js-0.10.0.tgz#9fc10532e86642d7e8eb3fc7a34494cb077610bd" - integrity sha512-Pb+VcXhSGq2ks2bcPPARSLYksRzcadnBsCzf+tv5B3fisZjD+dEEdI8Apj7ol+186njhNVKzoeR5UYdtINUE0g== - dependencies: - "@polywrap/core-js" "0.10.0-pre.5" - "@polywrap/plugin-js" "0.10.0-pre.5" + resolved "https://registry.yarnpkg.com/@polywrap/logging-js/-/logging-js-0.10.0.tgz#d80369960a25f4b5e9bca8d492040c2f03578693" + integrity sha512-bYsy6WulcSn1UtIjCqr+Vr4rxKtYN2MmzsEeU+mzuOE+UnXD4FIHptyFyl9fI7uhIi1DrQmrbPUf38nv16kFfQ== -"@polywrap/logging-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/logging-js/-/logging-js-0.10.0-pre.7.tgz#11aa03792b95b4ecc8a883ff3d3a8158f18cea1e" - integrity sha512-wpFHCSEbUvIxjph/t3CQD4ct+qMXxmvma/ka/1Okudr5KvZSxlpJR9f03q6rQGSvABb4/6cbtlklXFPf5T9/cw== +"@polywrap/msgpack-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0.tgz#7303da87ed7bc21858f0ef392aec575c5da6df63" + integrity sha512-xt2Rkad1MFXuBlOKg9N/Tl3LTUFmE8iviwUiHXDU7ClQyYSsZ/NVAAfm0rXJktmBWB8c0/N7CgcFqJTI+XsQVQ== + dependencies: + "@msgpack/msgpack" "2.7.2" -"@polywrap/msgpack-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0-pre.5.tgz#c7295e2f5b299654462426afd05a02737de839c6" - integrity sha512-R0NCooOY3d4JPVz7CP6rCmOTraQe6us+b9i213z+Dgu9y8lIEZGEmX+ipCULGvAbcDrSxWHBc8ImtkX0oNv+2g== +"@polywrap/msgpack-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0-pre.10.tgz#ac15d960dba2912f7ed657634f873e3c22c71843" + integrity sha512-z+lMVYKIYRyDrRDW5jFxt8Q6rVXBfMohI48Ht79X9DU1g6FdJInxhgXwVnUUQfrgtVoSgDLChdFlqnpi2JkEaQ== dependencies: "@msgpack/msgpack" "2.7.2" -"@polywrap/msgpack-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0-pre.7.tgz#b3b48639e04874f9881a1423d375e927e5b72da0" - integrity sha512-P1Htd76w7fBNM5/aRUaPpKGcfO/tkRo6FImRo8vFM5hvMKaxlc5yO48r/4O6LOlCBSG7mWce5+9QXg/rCWzfZw== +"@polywrap/msgpack-js@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0-pre.12.tgz#45bb73394a8858487871dd7e6b725011164f7826" + integrity sha512-kzDMFls4V814CG9FJTlwkcEHV/0eApMmluB8rnVs8K2cHZDDaxXnFCcrLscZwvB4qUy+u0zKfa5JB+eRP3abBg== dependencies: "@msgpack/msgpack" "2.7.2" -"@polywrap/os-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/os-js/-/os-js-0.10.0-pre.7.tgz#ad6f8677aef6c62d33db78030f53dc849faac110" - integrity sha512-7nqy7NMmOUKd3vz7iaN+ReSa7jO+uzS0NmBJPvWYZuSyPapeJEMPZKc5WwwFWqkzbVOJ8ELNE2iWSifNy6VHGw== - -"@polywrap/plugin-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.5.tgz#5bd416cb7f52f001144222e5bc83d1e94ff23cb4" - integrity sha512-WQXJs0AOQKr+mZ4jNFECiOTpjrZCdJnKkwa5QcgyTh8Ni7qgDbDfpVbR0SsiuqdJjqFbc8aSivGnubZcg/resg== - dependencies: - "@polywrap/core-js" "0.10.0-pre.5" - "@polywrap/msgpack-js" "0.10.0-pre.5" - "@polywrap/result" "0.10.0-pre.5" - "@polywrap/tracing-js" "0.10.0-pre.5" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.5" - -"@polywrap/plugin-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.7.tgz#d2129546417d113b773467a58a64ab45f6a11854" - integrity sha512-XdHfXaIKH2Pv3Bh5XTnYQOOmCLA2Cx8qdYHCJWbpDA7Ug6F3aSA4e6PNy8R9GzA6/WS5jzN+Wu/YNJdj6mZXHw== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/msgpack-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/tracing-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/polywrap-manifest-schemas@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-schemas/-/polywrap-manifest-schemas-0.10.0-pre.7.tgz#9b94a3b04f88609e101d2cc3ea8d71be818cb733" - integrity sha512-DW388MFz3BYV1B0c5nMGG2g3KSOswMTJrWx63AQJj2HJHbUZpV7R1PinoT0NoMXRl7XrHQpAMdP/gNg0qK8esQ== - -"@polywrap/polywrap-manifest-types-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-types-js/-/polywrap-manifest-types-js-0.10.0-pre.7.tgz#697077ca74f87b654020746957c8ed2bcc8c9f82" - integrity sha512-QLy080M06fNMw0bJO+Cw2LZ4BIO0e56xdPYpQdlJuq1Ig9Crq4sL8uDH3nSFnzaIdtMZTtmoAqjoldLCGIOEpA== - dependencies: - "@polywrap/logging-js" "0.10.0-pre.7" - "@polywrap/polywrap-manifest-schemas" "0.10.0-pre.7" +"@polywrap/os-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/os-js/-/os-js-0.10.0.tgz#d69872face3272c685b610b5bb2798fce736e486" + integrity sha512-UWKk1/KQpW+0ma4oMmLev78qhJxyqZQIiuRUc+3xLFgab2pLFbVhbm1F6JgiQDykuYn06kNFcNPc7iw1xvQU/g== + +"@polywrap/plugin-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0.tgz#e3bc81bf7832df9c84a4a319515228b159a05ba5" + integrity sha512-f0bjAKnveSu7u68NzWznYLWlzWo4MT8D6fudAF/wlV6S6R1euNJtIb8CTpAzfs6N173f81fzM/4OLS0pSYWdgQ== + dependencies: + "@polywrap/core-js" "0.10.0" + "@polywrap/msgpack-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/tracing-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" + +"@polywrap/plugin-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.10.tgz#090c1963f40ab862a09deda8c18e6d522fd2e3f2" + integrity sha512-J/OEGEdalP83MnO4bBTeqC7eX+NBMQq6TxmUf68iNIydl8fgN7MNB7+koOTKdkTtNzrwXOnhavHecdSRZxuhDA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.10" + "@polywrap/msgpack-js" "0.10.0-pre.10" + "@polywrap/result" "0.10.0-pre.10" + "@polywrap/tracing-js" "0.10.0-pre.10" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.10" + +"@polywrap/plugin-js@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.12.tgz#71675e66944167d4d9bb0684a9fc41fee0abd62c" + integrity sha512-GZ/l07wVPYiRsHJkfLarX8kpnA9PBjcKwLqS+v/YbTtA1d400BHC8vAu9Fq4WSF78VHZEPQQZbWoLBnoM7fIeA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.12" + "@polywrap/msgpack-js" "0.10.0-pre.12" + "@polywrap/result" "0.10.0-pre.12" + "@polywrap/tracing-js" "0.10.0-pre.12" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.12" + +"@polywrap/polywrap-manifest-schemas@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-schemas/-/polywrap-manifest-schemas-0.10.0.tgz#ad56de22b307aa5e73054571130176c6e83d3912" + integrity sha512-+XV1mvTYUYRPiAXbsQfQnx9SQ606uDmtyKkP88E04ODWthDvggLBFal9fOnMI9NY7q7bO5M+rBhgGhfs4Ssn+w== + +"@polywrap/polywrap-manifest-types-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-types-js/-/polywrap-manifest-types-js-0.10.0.tgz#c01f728e5b205292a74d2e992492e535aa68f3ed" + integrity sha512-UjYWlhz7bEtzQnMAxISBzl5j6CMkS6y2+aCKZ8tIdLEWZ3e6XrhCP8nVtRufta0xG0WfOQHVu7NrSBlsCTBn/A== + dependencies: + "@polywrap/logging-js" "0.10.0" + "@polywrap/polywrap-manifest-schemas" "0.10.0" jsonschema "1.4.0" - semver "7.3.5" + semver "7.4.0" yaml "2.1.3" -"@polywrap/result@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.5.tgz#b703878cf7426dee0edc1a2649f79a06153b403e" - integrity sha512-5ATKBdqSS/qmSfJDrQBBq4d34b3Al381bJWJ8nWlcyt8ybo2CqHwQuv/dD02elmhS2G3EK/p/sZCbD1st8CZYw== +"@polywrap/result@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0.tgz#712339223fba524dfabfb0bf868411f357d52e34" + integrity sha512-IxTBfGP89/OPNlUPMkjOrdYt/hwyvgI7TsYap6S35MHo4pXkR9mskzrHJ/AGE5DyGqP81CIIJNSYfooF97KY3A== + +"@polywrap/result@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.10.tgz#6e88ac447d92d8a10c7e7892a6371af29a072240" + integrity sha512-SqNnEbXky4dFXgps2B2juFShq1024do0f1HLUbuj3MlIPp5aW9g9sfBslsy3YTnpg2QW7LFVT15crrJMgbowIQ== -"@polywrap/result@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.7.tgz#0805b8c78f505eb4ade9c79c638f559b89ce7750" - integrity sha512-yxY8urJ+8sCwwdjMhZalt/5xzsGkBxbrPRIRJOQc85Qk2RRcm1khpmrFggCE2OY93gUueRXKH94Gd2biCjd+bg== +"@polywrap/result@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.12.tgz#530f8f5ced2bef189466f9fb8b41a520b12e9372" + integrity sha512-KnGRJMBy1SCJt3mymO3ob0e1asqYOyY+NNKySQ5ocvG/iMlhtODs4dy2EeEtcIFZ+c7TyBPVD4SI863qHQGOUQ== -"@polywrap/schema-bind@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/schema-bind/-/schema-bind-0.10.0-pre.7.tgz#7723ea2890b649312f7dfef50a35008cabc03395" - integrity sha512-l+umQrR+ZzLI8FzMDJkDia6r5WJ5PdQMSnxXkBYmCF8eiLstvLkF/EfJrIqSjHSZgfqgSB2eqQakLGVPzLRfjQ== +"@polywrap/schema-bind@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/schema-bind/-/schema-bind-0.10.0.tgz#6cccb00dfbee1f0b4ddfcb2e1e2bde437fbe475d" + integrity sha512-89VUVL3F2BcoyzSOoTXgFRt0VClBDovxBacwPh1gzy5d1kVlyJovSawVx2GWI2V8uDDIj24RrVWQQPdp8FRCYw== dependencies: - "@polywrap/os-js" "0.10.0-pre.7" - "@polywrap/schema-parse" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/os-js" "0.10.0" + "@polywrap/schema-parse" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" mustache "4.0.1" -"@polywrap/schema-compose@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/schema-compose/-/schema-compose-0.10.0-pre.7.tgz#a4208d258b2f242b08b4db33705e97aeb26545c2" - integrity sha512-ByA3KxjOkEaELqSPOeqdKwCr6yEXk2a0d2eXxCs1ApcvmzlDe3Mzcabw96AeuoKQVQwtTIA0EEdokLrVN1bxfQ== +"@polywrap/schema-compose@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/schema-compose/-/schema-compose-0.10.0.tgz#c34341161d38a7a384f52dc32d60a811b08b2e6c" + integrity sha512-Vi6lGPeWSeQ85oEjvVWqJqBIFwX47b0PF20RAV+alN6EZC6XD1HUPpH5KxWpMNnwN1FNajYam2HFIbqbi9PEHQ== dependencies: - "@polywrap/schema-parse" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/schema-parse" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" graphql "15.5.0" mustache "4.0.1" -"@polywrap/schema-parse@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/schema-parse/-/schema-parse-0.10.0-pre.7.tgz#6a7ce5237004321838cc1e0497d29ee9173f1923" - integrity sha512-vm7ZnX+hiKNJIB/dRzPh6N9rcZ+mLu3n5CGSuC2rB1y15kCD3CG9F9PtUcK+oi6JaEbIXM99+5Y89XW7s5oStA== +"@polywrap/schema-parse@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/schema-parse/-/schema-parse-0.10.0.tgz#59df053bb9f67cd0151376ece8cbbe295eae8033" + integrity sha512-VAPUkmRIIuRbhNizKPMCm8c5zs5ooH690EKR81z0sDVNn9Zl0jE6dnDOyFGJJ3pJ4+0sEVtXObqmy78g1hEq1g== dependencies: "@dorgjelli/graphql-schema-cycles" "1.1.4" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/wrap-manifest-types-js" "0.10.0" graphql "15.5.0" -"@polywrap/test-env-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/test-env-js/-/test-env-js-0.10.0-pre.7.tgz#c62d2113ca0694df4227aa16b28828f5a3c9aa44" - integrity sha512-V7GRCQaB5t2yNFACESy1tgvg+hNdqghueHvEUaXUj1TnRrMDRTMgo8OWlP5OnYUUfwBhpsDncas6yEs3GfPjmw== +"@polywrap/tracing-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0.tgz#31d7ca9cc73a1dbd877fc684000652aa2c22acdc" + integrity sha512-077oN9VfbCNsYMRjX9NA6D1vFV+Y3TH92LjZATKQ2W2fRx/IGRARamAjhNfR4qRKstrOCd9D4E2DmaqFax3QIg== dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/polywrap-manifest-types-js" "0.10.0-pre.7" - axios "0.21.2" - spawn-command "0.0.2-1" - yaml "2.1.3" + "@fetsorn/opentelemetry-console-exporter" "0.0.3" + "@opentelemetry/api" "1.2.0" + "@opentelemetry/exporter-trace-otlp-http" "0.32.0" + "@opentelemetry/resources" "1.6.0" + "@opentelemetry/sdk-trace-base" "1.6.0" + "@opentelemetry/sdk-trace-web" "1.6.0" -"@polywrap/tracing-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.5.tgz#3408c469c64a1f4e6f059f40d04c6b6e6328e76f" - integrity sha512-7sUl3K1rCuCxr6LJ2mucf4KcvUgpNbyhiv7Q68BOFEzFgJCpai6IGi4domgYvz/MPsanqVhkMwdf5D1iuK6PwQ== +"@polywrap/tracing-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.10.tgz#f50fb01883dcba4217a1711718aa53f3dd61cb1c" + integrity sha512-6wFw/zANVPG0tWMTSxwDzIpABVSSR9wO4/XxhCnKKgXwW6YANhtLj86uSRMTWqXeX2rpHwpMoWh4MDgYeAf+ng== dependencies: "@fetsorn/opentelemetry-console-exporter" "0.0.3" "@opentelemetry/api" "1.2.0" @@ -920,10 +876,10 @@ "@opentelemetry/sdk-trace-base" "1.6.0" "@opentelemetry/sdk-trace-web" "1.6.0" -"@polywrap/tracing-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.7.tgz#8866bbc6d9cc834499d2e3460c90b80e26c5e682" - integrity sha512-26uVWLJ2WBwcbY1wTFaWaItktMUI/QTMwvewu2pnQhdowXsviubaxn9txM2Of0orBOiM2aZ4djBUlcVpSr5vZg== +"@polywrap/tracing-js@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.12.tgz#61052f06ca23cd73e5de2a58a874b269fcc84be0" + integrity sha512-RUKEQxwHbrcMzQIV8IiRvnEfEfvsgO8/YI9/SqLjkV8V0QUj7UWjuIP7VfQ/ctJJAkm3sZqzeoE+BN+SYAeZSw== dependencies: "@fetsorn/opentelemetry-console-exporter" "0.0.3" "@opentelemetry/api" "1.2.0" @@ -932,55 +888,64 @@ "@opentelemetry/sdk-trace-base" "1.6.0" "@opentelemetry/sdk-trace-web" "1.6.0" -"@polywrap/uri-resolver-extensions-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/uri-resolver-extensions-js/-/uri-resolver-extensions-js-0.10.0-pre.7.tgz#e648ea74f94953ccc56e4fe04311d5335fb333a2" - integrity sha512-B0yxYizkCwHWM3N6Qa2CCCCNQdNbhUSx+yBCbdt0bSGSkjj+zunY6vcHIaNDs75mgMpxUhziX2hS5eLNsyWQTg== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/uri-resolvers-js" "0.10.0-pre.7" - "@polywrap/wasm-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/uri-resolvers-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/uri-resolvers-js/-/uri-resolvers-js-0.10.0-pre.7.tgz#e7bace9fd8a17c8c5b80a0bd0870e7219f0376af" - integrity sha512-l/BJ5vuDOaXWs0vAL0V52SNY68YAgIROPoGcw6LXstajBNg1srOeZHOQFDHr4hhWD+YnEga7q+6N/iZMSEFiCA== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/wasm-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/wasm-js/-/wasm-js-0.10.0-pre.7.tgz#fa44cc32883a66256b2c70ca44a74a7fa7b03caa" - integrity sha512-eRt2widiDd+8oY23oQ/11vNvp7Ur+0dr4Sbqp6XiWuoXEIKUFiD0MiFluhSnZp/Yo8u6dkkYpgR1DwHduJ7bcQ== - dependencies: - "@polywrap/asyncify-js" "0.10.0-pre.7" - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/msgpack-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/tracing-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" - -"@polywrap/wrap-manifest-types-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.5.tgz#bf37741becd9856458400f4f972f8c4a4fc1ac5e" - integrity sha512-7IbPpt76PXjhBkd8SPJARw4P9bpekb44YdrnsKXTeT5d8JQ5OgY4syiMVsmTraMdmHJxkJTZ/raqSZHLAxWLiw== - dependencies: - json-schema-ref-parser "9.0.9" +"@polywrap/uri-resolver-extensions-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolver-extensions-js/-/uri-resolver-extensions-js-0.10.0.tgz#ef0012e9b2231be44b0739f57b023a1c009c1b2b" + integrity sha512-mP8nLESuQFImhxeEV646m4qzJ1rc3d2LLgly9vPFUffXM7YMfJriL0nYNTzbyvZbhvH7PHfeEQ/m5DZFADMc7w== + dependencies: + "@polywrap/core-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/uri-resolvers-js" "0.10.0" + "@polywrap/wasm-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" + +"@polywrap/uri-resolvers-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolvers-js/-/uri-resolvers-js-0.10.0.tgz#d80163666a5110a4a7bd36be7e0961364af761ce" + integrity sha512-lZP+sN4lnp8xRklYWkrAJFECFNXDsBawGqVk7jUrbcw1CX8YODHyDEB0dSV8vN30DMP4h70W7V4QeNwPiE1EzQ== + dependencies: + "@polywrap/core-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" + +"@polywrap/wasm-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/wasm-js/-/wasm-js-0.10.0.tgz#6947b44669514cc0cb0653db8278f40631c45c7d" + integrity sha512-kI0Q9DQ/PlA0BTEj+Mye4fdt/aLh07l8YHjhbXQheuu46mcZuG9vfgnn78eug9c7wjGEECxlsK+B4hy/FPgYxQ== + dependencies: + "@polywrap/asyncify-js" "0.10.0" + "@polywrap/core-js" "0.10.0" + "@polywrap/msgpack-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/tracing-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" + +"@polywrap/wrap-manifest-types-js@0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0.tgz#f009a69d1591ee770dd13d67989d88f51e345d36" + integrity sha512-T3G/7NvNTuS1XyguRggTF4k7/h7yZCOcCbbUOTVoyVNfiNUY31hlrNZaFL4iriNqQ9sBDl9x6oRdOuFB7L9mlw== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.9" + jsonschema "1.4.0" + semver "7.4.0" + +"@polywrap/wrap-manifest-types-js@0.10.0-pre.10": + version "0.10.0-pre.10" + resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.10.tgz#81b339f073c48880b34f06f151aa41373f442f88" + integrity sha512-Hgsa6nJIh0cCqKO14ufjAsN0WEKuLuvFBfBycjoRLfkwD3fcxP/xrvWgE2NRSvwQ77aV6PGMbhlSMDGI5jahrw== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.9" jsonschema "1.4.0" - semver "7.3.5" + semver "7.3.8" -"@polywrap/wrap-manifest-types-js@0.10.0-pre.7": - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.7.tgz#adf8758cc99d52c0cba52e559dcc5d186eb0a15c" - integrity sha512-UlX9FOJyh1vcuKkKXwo2rvt1g4eiJQRj2BakNWA0qdrVGER1abhRyEYCbogOgiooloCHkMQ7Vqz6Lv3pLvHRsQ== +"@polywrap/wrap-manifest-types-js@0.10.0-pre.12": + version "0.10.0-pre.12" + resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.12.tgz#a8498b71f89ba9d8b90972faa7bfddffd5dd52c1" + integrity sha512-Bc3yAm5vHOKBwS8rkbKPNwa2puV5Oa6jws6EP6uPpr2Y/Iv4zyEBmzMWZuO1eWi2x7DM5M9cbfRbDfT6oR/Lhw== dependencies: - json-schema-ref-parser "9.0.9" + "@apidevtools/json-schema-ref-parser" "9.0.9" jsonschema "1.4.0" - semver "7.3.5" + semver "7.3.8" "@types/json-schema@^7.0.6": version "7.0.11" @@ -1004,7 +969,7 @@ resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== -abort-controller@3.0.0, abort-controller@^3.0.0: +abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== @@ -1049,14 +1014,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -async-iterator-to-pull-stream@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/async-iterator-to-pull-stream/-/async-iterator-to-pull-stream-1.3.0.tgz#3a6b9f3cceadff972ca20eb480e3cb43f8789732" - integrity sha512-NjyhAEz/sx32olqgKIk/2xbWEM6o8qef1yetIgb0U/R3oBgndP1kE/0CslowH3jvnA94BO4I6OXpOkTKH7Z1AA== - dependencies: - get-iterator "^1.0.2" - pull-stream-to-async-iterator "^1.0.1" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1103,6 +1060,11 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64-to-uint8array@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64-to-uint8array/-/base64-to-uint8array-1.0.0.tgz#725f9e9886331b43785cadd807e76803d5494e05" + integrity sha512-drjWQcees55+XQSVHYxiUF05Fj6ko3XJUoxykZEXbm0BMmNz2ieWiZGJ+6TFWnjN2saucG6pI13LS92O4kaiAg== + bech32@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" @@ -1199,7 +1161,7 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== -buffer@^5.2.1, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -1272,17 +1234,6 @@ cids@^1.0.0: multihashes "^4.0.1" uint8arrays "^3.0.0" -cids@~0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.8.3.tgz#aaf48ac8ed857c3d37dad94d8db1d8c9407b92db" - integrity sha512-yoXTbV3llpm+EBGWKeL9xKtksPE/s6DPoDSY4fn8I8TEW1zehWXPSB0pwAXVDlLaOlrw+sNynj995uD9abmPhA== - dependencies: - buffer "^5.6.0" - class-is "^1.1.0" - multibase "^1.0.0" - multicodec "^1.0.1" - multihashes "^1.0.1" - class-is@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" @@ -1309,7 +1260,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.6, combined-stream@^1.0.8: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1331,14 +1282,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concurrent-plugin-js@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/concurrent-plugin-js/-/concurrent-plugin-js-0.1.1.tgz#565a11f8ef57192f27f2f2cf53a2c25cc76bd9a2" - integrity sha512-pjOwIYBFAeTSkh0KPwuJr09eZjo/wkazovaFBA/Zg7O17j1jBm6jm34B3JcG71K4Lr/VLYlt901cu29ROsS+7Q== - dependencies: - "@polywrap/core-js" "0.10.0-pre.5" - "@polywrap/msgpack-js" "0.10.0-pre.5" - content-hash@2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" @@ -1470,40 +1413,41 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -ethers@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.0.7.tgz#41c3d774e0a57bfde12b0198885789fb41a14976" - integrity sha512-1Zu9s+z4BgsDAZcGIYACJdWBB6mVtCCmUonj68Njul7STcSdgwOyj0sCAxCUr2Nsmsamckr4E12q3ecvZPGAUw== - dependencies: - "@ethersproject/abi" "^5.0.0" - "@ethersproject/abstract-provider" "^5.0.0" - "@ethersproject/abstract-signer" "^5.0.0" - "@ethersproject/address" "^5.0.0" - "@ethersproject/base64" "^5.0.0" - "@ethersproject/bignumber" "^5.0.0" - "@ethersproject/bytes" "^5.0.0" - "@ethersproject/constants" "^5.0.0" - "@ethersproject/contracts" "^5.0.0" - "@ethersproject/hash" "^5.0.0" - "@ethersproject/hdnode" "^5.0.0" - "@ethersproject/json-wallets" "^5.0.0" - "@ethersproject/keccak256" "^5.0.0" - "@ethersproject/logger" "^5.0.0" - "@ethersproject/networks" "^5.0.0" - "@ethersproject/pbkdf2" "^5.0.0" - "@ethersproject/properties" "^5.0.0" - "@ethersproject/providers" "^5.0.0" - "@ethersproject/random" "^5.0.0" - "@ethersproject/rlp" "^5.0.0" - "@ethersproject/sha2" "^5.0.0" - "@ethersproject/signing-key" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@ethersproject/strings" "^5.0.0" - "@ethersproject/transactions" "^5.0.0" - "@ethersproject/units" "^5.0.0" - "@ethersproject/wallet" "^5.0.0" - "@ethersproject/web" "^5.0.0" - "@ethersproject/wordlists" "^5.0.0" +ethers@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" event-target-shim@^5.0.0: version "5.0.1" @@ -1525,11 +1469,6 @@ execa@^4.0.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -explain-error@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/explain-error/-/explain-error-1.0.4.tgz#a793d3ac0cad4c6ab571e9968fbbab6cb2532929" - integrity sha512-/wSgNMxFusiYRy1rd19LT2SQlIXDppHpumpWo06wxjflD1OYxDLbl6rMVw+U3bxD5Nuhex4TKqv9Aem4D0lVzQ== - extract-zip@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" @@ -1586,15 +1525,6 @@ form-data@4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -1708,11 +1638,6 @@ graphql-json-transform@^1.1.0-alpha.0: resolved "https://registry.yarnpkg.com/graphql-json-transform/-/graphql-json-transform-1.1.0-alpha.0.tgz#fb0c88d24840067e6c55ac64bbc8d4e5de245d2d" integrity sha512-I6lR/lYEezSz4iru0f7a/wR8Rzi3pCafk7S0bX2b/WQOtK0vKabxLShGBXIslsi0arMehIjvOPHJl7MpOUqj0w== -graphql-tag@2.10.4: - version "2.10.4" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.4.tgz#2f301a98219be8b178a6453bb7e33b79b66d8f83" - integrity sha512-O7vG5BT3w6Sotc26ybcvLKNTdfr4GfsIVMD+LdYqXCeJIYPRyp8BIsDOUtxw7S1PYvRw5vH3278J2EDezR6mfA== - graphql@15.5.0: version "15.5.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.5.0.tgz#39d19494dbe69d1ea719915b578bf920344a69d5" @@ -2000,19 +1925,6 @@ is-ip@^3.1.0: dependencies: ip-regex "^4.0.0" -is-ipfs@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-1.0.3.tgz#4b8c4995c46beac38f0c05f8cecd77093dd6a6b3" - integrity sha512-7SAfhxp39rxMvr95qjHMtsle1xa7zXpIbhX/Q77iXKtMVnQ0Fr9AVpAUq+bl3HPXGXDpZJFP0hzWBZaMwD6vGg== - dependencies: - buffer "^5.6.0" - cids "~0.8.0" - iso-url "~0.4.7" - mafmt "^7.1.0" - multiaddr "^7.4.3" - multibase "~0.7.0" - multihashes "~0.4.19" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2135,13 +2047,6 @@ it-to-stream@^0.1.2: p-fifo "^1.0.0" readable-stream "^3.6.0" -iterable-ndjson@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz#36f7e8a5bb04fd087d384f29e44fc4280fc014fc" - integrity sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg== - dependencies: - string_decoder "^1.2.0" - js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -2154,13 +2059,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -json-schema-ref-parser@9.0.9: - version "9.0.9" - resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#66ea538e7450b12af342fa3d5b8458bc1e1e013f" - integrity sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q== - dependencies: - "@apidevtools/json-schema-ref-parser" "9.0.9" - json-schema@0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" @@ -2206,13 +2104,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -mafmt@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-7.1.0.tgz#4126f6d0eded070ace7dbbb6fb04977412d380b5" - integrity sha512-vpeo9S+hepT3k2h5iFxzEHvvR0GPBx9uKaErmnRzYNcaKb03DgOArjEMlgG4a9LcuZZ89a3I8xbeto487n26eA== - dependencies: - multiaddr "^7.3.0" - map-age-cleaner@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -2304,18 +2195,6 @@ multiaddr-to-uri@^6.0.0: dependencies: multiaddr "^8.0.0" -multiaddr@^7.3.0, multiaddr@^7.4.3: - version "7.5.0" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-7.5.0.tgz#976c88e256e512263445ab03b3b68c003d5f485e" - integrity sha512-GvhHsIGDULh06jyb6ev+VfREH9evJCFIRnh3jUt9iEZ6XDbyoisZRFEI9bMvK/AiR6y66y6P+eoBw9mBYMhMvw== - dependencies: - buffer "^5.5.0" - cids "~0.8.0" - class-is "^1.1.0" - is-ip "^3.1.0" - multibase "^0.7.0" - varint "^5.0.0" - multiaddr@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-8.1.2.tgz#74060ff8636ba1c01b2cf0ffd53950b852fa9b1f" @@ -2330,7 +2209,7 @@ multiaddr@^8.0.0: uint8arrays "^1.1.0" varint "^5.0.0" -multibase@^0.7.0, multibase@~0.7.0: +multibase@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== @@ -2338,14 +2217,6 @@ multibase@^0.7.0, multibase@~0.7.0: base-x "^3.0.8" buffer "^5.5.0" -multibase@^1.0.0, multibase@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-1.0.1.tgz#4adbe1de0be8a1ab0274328b653c3f1903476724" - integrity sha512-KcCxpBVY8fdVKu4dJMAahq4F/2Z/9xqEjIiR7PiMe7LRGeorFn2NLmicN6nLBCqQvft6MG2Lc9X5P0IdyvnxEw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - multibase@^3.0.0, multibase@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/multibase/-/multibase-3.1.2.tgz#59314e1e2c35d018db38e4c20bb79026827f0f2f" @@ -2376,7 +2247,7 @@ multicodec@^0.5.5: dependencies: varint "^5.0.0" -multicodec@^1.0.0, multicodec@^1.0.1: +multicodec@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== @@ -2400,17 +2271,12 @@ multicodec@^3.0.1: uint8arrays "^3.0.0" varint "^6.0.0" -multiformats@9.7.0: - version "9.7.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.7.0.tgz#845799e8df70fbb6b15922500e45cb87cf12f7e5" - integrity sha512-uv/tcgwk0yN4DStopnBN4GTgvaAlYdy6KnZpuzEPFOYQd71DYFJjs0MN1ERElAflrZaYyGBWXyGxL5GgrxIx0Q== - multiformats@^9.4.2: version "9.9.0" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== -multihashes@^0.4.15, multihashes@~0.4.15, multihashes@~0.4.19: +multihashes@^0.4.15, multihashes@~0.4.15: version "0.4.21" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== @@ -2419,15 +2285,6 @@ multihashes@^0.4.15, multihashes@~0.4.15, multihashes@~0.4.19: multibase "^0.7.0" varint "^5.0.0" -multihashes@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-1.0.1.tgz#a89415d68283cf6287c6e219e304e75ce7fb73fe" - integrity sha512-S27Tepg4i8atNiFaU5ZOm3+gl3KQlUanLs/jWcBxQHFttgq+5x1OgbQmf2d8axJ/48zYGBd/wT9d723USMFduw== - dependencies: - buffer "^5.6.0" - multibase "^1.0.1" - varint "^5.0.0" - multihashes@^3.0.1: version "3.1.2" resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-3.1.2.tgz#ffa5e50497aceb7911f7b4a3b6cada9b9730edfc" @@ -2600,30 +2457,31 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -polywrap@0.10.0-pre.7: - version "0.10.0-pre.7" - resolved "https://registry.yarnpkg.com/polywrap/-/polywrap-0.10.0-pre.7.tgz#b4819fe161e64af4c021fc34a20ce030d12a9f77" - integrity sha512-3pND6kxG+n6J5DW/3X45YK68/swpgSQLW2OP7dPcOz1pra9aDGbJ1KUNtFVilBpElPCJZw+TjqZ2Gp5JxDrrpA== +polywrap@0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/polywrap/-/polywrap-0.10.0.tgz#2039246630a77b4a09af9b2e78185f47773140fa" + integrity sha512-0TSxlbmzvzZQX05m/+Z0VyWadc01bdGRloprjY4BLPBzB/gAlUAT0k3ocH4SG6kvaZlQIEcY5pIYC0/pcqN7vQ== dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.9" "@ethersproject/providers" "5.6.8" "@ethersproject/wallet" "5.6.2" "@formatjs/intl" "1.8.2" - "@polywrap/asyncify-js" "0.10.0-pre.7" - "@polywrap/client-config-builder-js" "0.10.0-pre.7" - "@polywrap/client-js" "0.10.0-pre.7" - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/ens-resolver-plugin-js" "0.10.0-pre.7" - "@polywrap/ethereum-plugin-js" "0.10.0-pre.7" - "@polywrap/ipfs-plugin-js" "0.10.0-pre.7" - "@polywrap/logging-js" "0.10.0-pre.7" - "@polywrap/os-js" "0.10.0-pre.7" - "@polywrap/polywrap-manifest-types-js" "0.10.0-pre.7" - "@polywrap/schema-bind" "0.10.0-pre.7" - "@polywrap/schema-compose" "0.10.0-pre.7" - "@polywrap/schema-parse" "0.10.0-pre.7" - "@polywrap/test-env-js" "0.10.0-pre.7" - "@polywrap/wasm-js" "0.10.0-pre.7" - "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/asyncify-js" "0.10.0" + "@polywrap/client-config-builder-js" "0.10.0" + "@polywrap/client-js" "0.10.0" + "@polywrap/core-js" "0.10.0" + "@polywrap/ethereum-provider-js-v1" "npm:@polywrap/ethereum-provider-js@~0.2.4" + "@polywrap/logging-js" "0.10.0" + "@polywrap/os-js" "0.10.0" + "@polywrap/polywrap-manifest-types-js" "0.10.0" + "@polywrap/result" "0.10.0" + "@polywrap/schema-bind" "0.10.0" + "@polywrap/schema-compose" "0.10.0" + "@polywrap/schema-parse" "0.10.0" + "@polywrap/uri-resolver-extensions-js" "0.10.0" + "@polywrap/uri-resolvers-js" "0.10.0" + "@polywrap/wasm-js" "0.10.0" + "@polywrap/wrap-manifest-types-js" "0.10.0" axios "0.21.2" chalk "4.1.0" chokidar "3.5.1" @@ -2636,14 +2494,13 @@ polywrap@0.10.0-pre.7: fs-extra "9.0.1" ipfs-http-client "48.1.3" json-schema "0.4.0" - json-schema-ref-parser "9.0.9" jsonschema "1.4.0" mustache "4.0.1" os-locale "5.0.0" regex-parser "2.2.11" rimraf "3.0.2" toml "3.0.0" - typescript "4.1.6" + typescript "4.9.5" yaml "2.1.3" yesno "0.4.0" @@ -2667,18 +2524,6 @@ protons@^2.0.0: uint8arrays "^3.0.0" varint "^5.0.0" -pull-stream-to-async-iterator@^1.0.1, pull-stream-to-async-iterator@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pull-stream-to-async-iterator/-/pull-stream-to-async-iterator-1.0.2.tgz#5cc1a3a146ef6bbf01c17755647369b683b24986" - integrity sha512-c3KRs2EneuxP7b6pG9fvQTIjatf33RbIErhbQ75s5r2MI6E8R74NZC1nJgXc8kcmqiQxmr+TWY+WwK2mWaUnlA== - dependencies: - pull-stream "^3.6.9" - -pull-stream@^3.6.9: - version "3.7.0" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" - integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2687,11 +2532,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -querystring@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" - integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== - readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -2792,10 +2632,17 @@ scrypt-js@3.0.1: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -semver@7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@7.3.8: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +semver@7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.4.0.tgz#8481c92feffc531ab1e012a8ffc15bdd3a0f4318" + integrity sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw== dependencies: lru-cache "^6.0.0" @@ -2823,11 +2670,6 @@ signed-varint@^2.0.1: dependencies: varint "~5.0.0" -spawn-command@0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -2849,7 +2691,7 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1, string_decoder@^1.2.0: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -2925,10 +2767,10 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== -typescript@4.1.6: - version "4.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138" - integrity sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow== +typescript@4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== uint8arrays@1.1.0, uint8arrays@^1.0.0, uint8arrays@^1.1.0: version "1.1.0" @@ -3048,11 +2890,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From f0d253379a9fac9b3afc106077448d08ddb9e101 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Tue, 18 Apr 2023 15:05:50 +0400 Subject: [PATCH 16/21] fix: linting issues --- implementations/py/pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/implementations/py/pyproject.toml b/implementations/py/pyproject.toml index e972d3e..fc03245 100644 --- a/implementations/py/pyproject.toml +++ b/implementations/py/pyproject.toml @@ -39,6 +39,9 @@ exclude_dirs = ["tests"] [tool.black] target-version = ["py310"] +exclude = [ + "polywrap_http_plugin/wrap" +] [tool.pyright] typeCheckingMode = "strict" @@ -64,6 +67,7 @@ ignore-paths = [ [tool.isort] profile = "black" multi_line_output = 3 +skip = ["polywrap_http_plugin/wrap"] [tool.pydocstyle] # default \ No newline at end of file From 36872b4b8bd8b9d22810e0dfaf775b4e0a8696b9 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Mon, 24 Apr 2023 00:36:20 +0400 Subject: [PATCH 17/21] Temp: fix --- implementations/py/poetry.lock | 48 +++++++++---------- .../py/polywrap_http_plugin/__init__.py | 18 +++---- implementations/py/schema.graphql | 5 +- implementations/py/tests/conftest.py | 2 - .../py/tests/integration/test_get.py | 8 ++-- .../py/tests/integration/test_post.py | 6 +-- implementations/py/tests/test_get.py | 8 ++-- implementations/py/tests/test_post.py | 6 +-- 8 files changed, 48 insertions(+), 53 deletions(-) diff --git a/implementations/py/poetry.lock b/implementations/py/poetry.lock index c661512..9d00b68 100644 --- a/implementations/py/poetry.lock +++ b/implementations/py/poetry.lock @@ -197,19 +197,19 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.11.0" +version = "3.12.0" description = "A platform independent file lock." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "filelock-3.11.0-py3-none-any.whl", hash = "sha256:f08a52314748335c6460fc8fe40cd5638b85001225db78c2aa01c8c0db83b318"}, - {file = "filelock-3.11.0.tar.gz", hash = "sha256:3618c0da67adcc0506b015fd11ef7faf1b493f0b40d87728e19986b536890c37"}, + {file = "filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"}, + {file = "filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"}, ] [package.extras] -docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.2)", "diff-cover (>=7.5)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] [[package]] name = "gitdb" @@ -807,7 +807,7 @@ email = ["email-validator (>=1.0.3)"] name = "pydocstyle" version = "6.3.0" description = "Python docstring style checker" -category = "main" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -823,14 +823,14 @@ toml = ["tomli (>=1.2.3)"] [[package]] name = "pygments" -version = "2.15.0" +version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.15.0-py3-none-any.whl", hash = "sha256:77a3299119af881904cd5ecd1ac6a66214b6e9bed1f2db16993b54adede64094"}, - {file = "Pygments-2.15.0.tar.gz", hash = "sha256:f7e36cffc4c517fbc252861b9a6e4644ca0e5abadf9a113c72d1358ad09b9500"}, + {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, + {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, ] [package.extras] @@ -867,14 +867,14 @@ testutils = ["gitpython (>3)"] [[package]] name = "pyright" -version = "1.1.303" +version = "1.1.304" description = "Command line wrapper for pyright" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pyright-1.1.303-py3-none-any.whl", hash = "sha256:8fe3d122d7e965e2df2cef64e1ceb98cff8200f458e7892d92a4c21ee85689c7"}, - {file = "pyright-1.1.303.tar.gz", hash = "sha256:7daa516424555681e8974b21a95c108c5def791bf5381522b1410026d4da62c1"}, + {file = "pyright-1.1.304-py3-none-any.whl", hash = "sha256:70021bbae07fc28ed16e435f5efa65cd71e06a1888d9ca998798c283d4b3d010"}, + {file = "pyright-1.1.304.tar.gz", hash = "sha256:87adec38081904c939e3657ab23d5fc40b7ccc22709be0af1859fc785ae4ea61"}, ] [package.dependencies] @@ -1033,14 +1033,14 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "setuptools" -version = "67.6.1" +version = "67.7.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "setuptools-67.6.1-py3-none-any.whl", hash = "sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078"}, - {file = "setuptools-67.6.1.tar.gz", hash = "sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a"}, + {file = "setuptools-67.7.1-py3-none-any.whl", hash = "sha256:6f0839fbdb7e3cfef1fc38d7954f5c1c26bf4eebb155a55c9bf8faf997b9fb67"}, + {file = "setuptools-67.7.1.tar.gz", hash = "sha256:bb16732e8eb928922eabaa022f881ae2b7cdcfaf9993ef1f5e841a96d32b8e0c"}, ] [package.extras] @@ -1088,7 +1088,7 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "main" +category = "dev" optional = false python-versions = "*" files = [ @@ -1230,24 +1230,24 @@ files = [ [[package]] name = "virtualenv" -version = "20.21.0" +version = "20.22.0" description = "Virtual Python Environment builder" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.21.0-py3-none-any.whl", hash = "sha256:31712f8f2a17bd06234fa97fdf19609e789dd4e3e4bf108c3da71d710651adbc"}, - {file = "virtualenv-20.21.0.tar.gz", hash = "sha256:f50e3e60f990a0757c9b68333c9fdaa72d7188caa417f96af9e52407831a3b68"}, + {file = "virtualenv-20.22.0-py3-none-any.whl", hash = "sha256:48fd3b907b5149c5aab7c23d9790bea4cac6bc6b150af8635febc4cfeab1275a"}, + {file = "virtualenv-20.22.0.tar.gz", hash = "sha256:278753c47aaef1a0f14e6db8a4c5e1e040e90aea654d0fc1dc7e0d8a42616cc3"}, ] [package.dependencies] distlib = ">=0.3.6,<1" -filelock = ">=3.4.1,<4" -platformdirs = ">=2.4,<4" +filelock = ">=3.11,<4" +platformdirs = ">=3.2,<4" [package.extras] -docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] -test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23)", "pytest (>=7.2.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"] [[package]] name = "wasmtime" @@ -1356,4 +1356,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "10cc711ea7eea20a3efcb5fe2b2c665eb911aacef1f7565964973a9adda92c04" +content-hash = "93cc444857ea7c7aeadb14bbf9e9af89ea957c8e4f8030003bcba7a9ce9ef61c" diff --git a/implementations/py/polywrap_http_plugin/__init__.py b/implementations/py/polywrap_http_plugin/__init__.py index a6091fa..8c45f6b 100644 --- a/implementations/py/polywrap_http_plugin/__init__.py +++ b/implementations/py/polywrap_http_plugin/__init__.py @@ -11,8 +11,8 @@ from .wrap import ( ArgsGet, ArgsPost, - HttpHttpResponse, - HttpHttpResponseType, + Response, + ResponseType, Module, manifest, ) @@ -29,7 +29,7 @@ def _is_response_binary(args: ArgsGet) -> bool: return True if args["request"]["responseType"] == "BINARY": return True - return args["request"]["responseType"] == HttpHttpResponseType.BINARY + return args["request"]["responseType"] == ResponseType.BINARY class HttpPlugin(Module[None]): @@ -42,7 +42,7 @@ def __init__(self): async def get( self, args: ArgsGet, client: InvokerClient[UriPackageOrWrapper], env: None - ) -> Optional[HttpHttpResponse]: + ) -> Optional[Response]: """Make a GET request to the given URL.""" res: HttpxResponse if args.get("request") is None: @@ -58,14 +58,14 @@ async def get( res = await self.client.get(args["url"]) if _is_response_binary(args): - return HttpHttpResponse( + return Response( status=res.status_code, statusText=res.reason_phrase, headers=GenericMap(dict(res.headers)), body=base64.b64encode(res.content).decode(), ) - return HttpHttpResponse( + return Response( status=res.status_code, statusText=res.reason_phrase, headers=GenericMap(dict(res.headers)), @@ -74,7 +74,7 @@ async def get( async def post( self, args: ArgsPost, client: InvokerClient[UriPackageOrWrapper], env: None - ) -> Optional[HttpHttpResponse]: + ) -> Optional[Response]: """Make a POST request to the given URL.""" res: HttpxResponse if args.get("request") is None: @@ -96,14 +96,14 @@ async def post( res = await self.client.post(args["url"]) if _is_response_binary(args): - return HttpHttpResponse( + return Response( status=res.status_code, statusText=res.reason_phrase, headers=GenericMap(dict(res.headers)), body=base64.b64encode(res.content).decode(), ) - return HttpHttpResponse( + return Response( status=res.status_code, statusText=res.reason_phrase, headers=GenericMap(dict(res.headers)), diff --git a/implementations/py/schema.graphql b/implementations/py/schema.graphql index a350d5e..c85d3f8 100644 --- a/implementations/py/schema.graphql +++ b/implementations/py/schema.graphql @@ -1,4 +1 @@ -#import { Module } into Http from "ens/wraps.eth:http@1.1.0" - -type Module implements Http_Module { -} \ No newline at end of file +#import * from "ipfs/Qmb7k3fZq8sPQpBtL1NWBNdudKoj44hrB85fANUo6wHExK" diff --git a/implementations/py/tests/conftest.py b/implementations/py/tests/conftest.py index 51f9a32..6c4c5fb 100644 --- a/implementations/py/tests/conftest.py +++ b/implementations/py/tests/conftest.py @@ -1,6 +1,4 @@ -from typing import Any from pytest import fixture -from pytest_mock import MockerFixture from polywrap_http_plugin import http_plugin from polywrap_client import PolywrapClient diff --git a/implementations/py/tests/integration/test_get.py b/implementations/py/tests/integration/test_get.py index 2d724b1..0bd7cff 100644 --- a/implementations/py/tests/integration/test_get.py +++ b/implementations/py/tests/integration/test_get.py @@ -1,13 +1,13 @@ from base64 import b64decode import json -from polywrap_http_plugin import HttpHttpResponse +from polywrap_http_plugin import Response from polywrap_client import PolywrapClient from polywrap_core import Uri, InvokerOptions async def test_simple_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("wrapper/integration"), method="get", @@ -21,7 +21,7 @@ async def test_simple_get(client: PolywrapClient): async def test_params_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("wrapper/integration"), method="get", @@ -43,7 +43,7 @@ async def test_params_get(client: PolywrapClient): async def test_binary_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("wrapper/integration"), method="get", diff --git a/implementations/py/tests/integration/test_post.py b/implementations/py/tests/integration/test_post.py index 1ee7b16..de9e717 100644 --- a/implementations/py/tests/integration/test_post.py +++ b/implementations/py/tests/integration/test_post.py @@ -1,12 +1,12 @@ from base64 import b64decode import json -from polywrap_http_plugin import HttpHttpResponse +from polywrap_http_plugin import Response from polywrap_client import PolywrapClient from polywrap_core import Uri, InvokerOptions async def test_simple_post(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("wrapper/integration"), method="post", @@ -32,7 +32,7 @@ async def test_simple_post(client: PolywrapClient): async def test_binary_post(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("wrapper/integration"), method="post", diff --git a/implementations/py/tests/test_get.py b/implementations/py/tests/test_get.py index bcf5965..e7cd4c8 100644 --- a/implementations/py/tests/test_get.py +++ b/implementations/py/tests/test_get.py @@ -1,12 +1,12 @@ from base64 import b64decode import json -from polywrap_http_plugin import HttpHttpResponse +from polywrap_http_plugin import Response from polywrap_client import PolywrapClient from polywrap_core import Uri, InvokerOptions async def test_simple_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("plugin/http"), method="get", @@ -20,7 +20,7 @@ async def test_simple_get(client: PolywrapClient): async def test_params_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("plugin/http"), method="get", @@ -38,7 +38,7 @@ async def test_params_get(client: PolywrapClient): async def test_binary_get(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("plugin/http"), method="get", diff --git a/implementations/py/tests/test_post.py b/implementations/py/tests/test_post.py index 7b6b304..69e6dd9 100644 --- a/implementations/py/tests/test_post.py +++ b/implementations/py/tests/test_post.py @@ -1,12 +1,12 @@ from base64 import b64decode import json -from polywrap_http_plugin import HttpHttpResponse +from polywrap_http_plugin import Response from polywrap_client import PolywrapClient from polywrap_core import Uri, InvokerOptions async def test_simple_post(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("plugin/http"), method="post", @@ -31,7 +31,7 @@ async def test_simple_post(client: PolywrapClient): async def test_binary_post(client: PolywrapClient): - response: HttpHttpResponse = await client.invoke( + response: Response = await client.invoke( InvokerOptions( uri=Uri.from_str("plugin/http"), method="post", From 76ecaaa12668ae705e4dec2eb5fc02871b17fc44 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar <51387861+Niraj-Kamdar@users.noreply.github.com> Date: Mon, 24 Apr 2023 03:45:58 -0700 Subject: [PATCH 18/21] Update .github/workflows/http-plugin-py-cd.yaml Co-authored-by: Cesar Brazon --- .github/workflows/http-plugin-py-cd.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/http-plugin-py-cd.yaml b/.github/workflows/http-plugin-py-cd.yaml index 35079da..0da7be3 100644 --- a/.github/workflows/http-plugin-py-cd.yaml +++ b/.github/workflows/http-plugin-py-cd.yaml @@ -13,7 +13,7 @@ jobs: name: http-plugin-py-cd if: | github.event.pull_request.merged && - startsWith(github.event.pull_request.title, '[CD]') != true && + startsWith(github.event.pull_request.title, '[CD]') == true && github.event.pull_request.user.login != 'github-actions' runs-on: ubuntu-latest timeout-minutes: 60 From 0c16deb8a1f4484b9affcae5032c2792e7713a6d Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 26 Apr 2023 17:00:38 +0400 Subject: [PATCH 19/21] chore: bump polywrap version --- implementations/py/package.json | 4 +- implementations/py/yarn.lock | 107 +++++++++++++++++--------------- 2 files changed, 59 insertions(+), 52 deletions(-) diff --git a/implementations/py/package.json b/implementations/py/package.json index 0661336..48ab762 100644 --- a/implementations/py/package.json +++ b/implementations/py/package.json @@ -1,10 +1,10 @@ { "name": "@polywrap/python-http-plugin", "description": "Polywrap Python Http Plugin", - "version": "0.10.0", + "version": "0.10.2", "private": true, "devDependencies": { - "polywrap": "0.10.0" + "polywrap": "0.10.2" }, "scripts": { "codegen": "npx polywrap codegen" diff --git a/implementations/py/yarn.lock b/implementations/py/yarn.lock index 6a86fac..ee8fe80 100644 --- a/implementations/py/yarn.lock +++ b/implementations/py/yarn.lock @@ -728,10 +728,10 @@ "@polywrap/core-js" "0.10.0-pre.10" "@polywrap/plugin-js" "0.10.0-pre.10" -"@polywrap/logging-js@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/logging-js/-/logging-js-0.10.0.tgz#d80369960a25f4b5e9bca8d492040c2f03578693" - integrity sha512-bYsy6WulcSn1UtIjCqr+Vr4rxKtYN2MmzsEeU+mzuOE+UnXD4FIHptyFyl9fI7uhIi1DrQmrbPUf38nv16kFfQ== +"@polywrap/logging-js@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/logging-js/-/logging-js-0.10.2.tgz#cc89544e82440400de682ed7af4ad0eaef89f864" + integrity sha512-mglQRHNJULl3F4YPRPkUUL1Zp/IjRfaNarXgXR4NLlEINU3+pzshGuJoMGCj2/mUWjsox3L8OjfzCjVBy+N+vw== "@polywrap/msgpack-js@0.10.0": version "0.10.0" @@ -754,10 +754,10 @@ dependencies: "@msgpack/msgpack" "2.7.2" -"@polywrap/os-js@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/os-js/-/os-js-0.10.0.tgz#d69872face3272c685b610b5bb2798fce736e486" - integrity sha512-UWKk1/KQpW+0ma4oMmLev78qhJxyqZQIiuRUc+3xLFgab2pLFbVhbm1F6JgiQDykuYn06kNFcNPc7iw1xvQU/g== +"@polywrap/os-js@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/os-js/-/os-js-0.10.2.tgz#26ea20d96ffbe328900bc6bf6b646a9d1cbcac9a" + integrity sha512-bTShjmw9vBcI6ZdC/rLdFlWuWXh2Xha6B/He+vzA4/vF5I9eyAxABfrsl4/ySqFFSsLdMITeQRzyFQXfcd0+FQ== "@polywrap/plugin-js@0.10.0": version "0.10.0" @@ -792,21 +792,21 @@ "@polywrap/tracing-js" "0.10.0-pre.12" "@polywrap/wrap-manifest-types-js" "0.10.0-pre.12" -"@polywrap/polywrap-manifest-schemas@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-schemas/-/polywrap-manifest-schemas-0.10.0.tgz#ad56de22b307aa5e73054571130176c6e83d3912" - integrity sha512-+XV1mvTYUYRPiAXbsQfQnx9SQ606uDmtyKkP88E04ODWthDvggLBFal9fOnMI9NY7q7bO5M+rBhgGhfs4Ssn+w== +"@polywrap/polywrap-manifest-schemas@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-schemas/-/polywrap-manifest-schemas-0.10.2.tgz#369c9e12d9260b971ac2ff57dda2b886595435bb" + integrity sha512-5AggU1dz6pIXs0FfpxToyXcZdF31+3Ap3TdmOCnlOImhTDiYBaHj9wnvaffIm5TCe97QTTiND7KSljKtMd51Pg== -"@polywrap/polywrap-manifest-types-js@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-types-js/-/polywrap-manifest-types-js-0.10.0.tgz#c01f728e5b205292a74d2e992492e535aa68f3ed" - integrity sha512-UjYWlhz7bEtzQnMAxISBzl5j6CMkS6y2+aCKZ8tIdLEWZ3e6XrhCP8nVtRufta0xG0WfOQHVu7NrSBlsCTBn/A== +"@polywrap/polywrap-manifest-types-js@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/polywrap-manifest-types-js/-/polywrap-manifest-types-js-0.10.2.tgz#5777888497429db6767c68ba2cf8ae1e4c0a44b3" + integrity sha512-bHlCp74W0dXMPI3ZZslTIWIuHMVaWKRv/OQ6UAS+d1pMoIgDdAA5xkNorW+rfRaRQWeGMTRdqBi7i/PPh+mrYA== dependencies: - "@polywrap/logging-js" "0.10.0" - "@polywrap/polywrap-manifest-schemas" "0.10.0" + "@polywrap/logging-js" "0.10.2" + "@polywrap/polywrap-manifest-schemas" "0.10.2" jsonschema "1.4.0" - semver "7.4.0" - yaml "2.1.3" + semver "7.5.0" + yaml "2.2.2" "@polywrap/result@0.10.0": version "0.10.0" @@ -823,30 +823,30 @@ resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.12.tgz#530f8f5ced2bef189466f9fb8b41a520b12e9372" integrity sha512-KnGRJMBy1SCJt3mymO3ob0e1asqYOyY+NNKySQ5ocvG/iMlhtODs4dy2EeEtcIFZ+c7TyBPVD4SI863qHQGOUQ== -"@polywrap/schema-bind@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/schema-bind/-/schema-bind-0.10.0.tgz#6cccb00dfbee1f0b4ddfcb2e1e2bde437fbe475d" - integrity sha512-89VUVL3F2BcoyzSOoTXgFRt0VClBDovxBacwPh1gzy5d1kVlyJovSawVx2GWI2V8uDDIj24RrVWQQPdp8FRCYw== +"@polywrap/schema-bind@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/schema-bind/-/schema-bind-0.10.2.tgz#219c5fe618357be2d83a28739cf7048706cbbd7d" + integrity sha512-7PObwLAgdd/uwReG1yi70SvtlFlL4KtYqBaLtjQeDO8Iocx0y+MnI11VnGdAI/vY+Qu8L5IlG3yFN/hhXZu5hQ== dependencies: - "@polywrap/os-js" "0.10.0" - "@polywrap/schema-parse" "0.10.0" + "@polywrap/os-js" "0.10.2" + "@polywrap/schema-parse" "0.10.2" "@polywrap/wrap-manifest-types-js" "0.10.0" mustache "4.0.1" -"@polywrap/schema-compose@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/schema-compose/-/schema-compose-0.10.0.tgz#c34341161d38a7a384f52dc32d60a811b08b2e6c" - integrity sha512-Vi6lGPeWSeQ85oEjvVWqJqBIFwX47b0PF20RAV+alN6EZC6XD1HUPpH5KxWpMNnwN1FNajYam2HFIbqbi9PEHQ== +"@polywrap/schema-compose@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/schema-compose/-/schema-compose-0.10.2.tgz#6a4bf769605d5508e4ab5655b8e5a3526b1640b3" + integrity sha512-S1b0W2yhqLZduXVVh2k18aQ96SFoqmmQOxXL8zG4dbOOFs1k5VvO45rKHhC/Yy8TmT0TGs0IWSiU5Iq5P6KdGA== dependencies: - "@polywrap/schema-parse" "0.10.0" + "@polywrap/schema-parse" "0.10.2" "@polywrap/wrap-manifest-types-js" "0.10.0" graphql "15.5.0" mustache "4.0.1" -"@polywrap/schema-parse@0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@polywrap/schema-parse/-/schema-parse-0.10.0.tgz#59df053bb9f67cd0151376ece8cbbe295eae8033" - integrity sha512-VAPUkmRIIuRbhNizKPMCm8c5zs5ooH690EKR81z0sDVNn9Zl0jE6dnDOyFGJJ3pJ4+0sEVtXObqmy78g1hEq1g== +"@polywrap/schema-parse@0.10.2": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@polywrap/schema-parse/-/schema-parse-0.10.2.tgz#d4436555602dbd645051a5686ec05a342f749a99" + integrity sha512-9lO5l4pOlc4+VW4XJrWEXkiXjtsUvqiiZRJAX57Q58zRXenUrDq/DS4SukmY+Bls8By+4+WMya+Mgfg4LZS7kQ== dependencies: "@dorgjelli/graphql-schema-cycles" "1.1.4" "@polywrap/wrap-manifest-types-js" "0.10.0" @@ -2457,10 +2457,10 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -polywrap@0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/polywrap/-/polywrap-0.10.0.tgz#2039246630a77b4a09af9b2e78185f47773140fa" - integrity sha512-0TSxlbmzvzZQX05m/+Z0VyWadc01bdGRloprjY4BLPBzB/gAlUAT0k3ocH4SG6kvaZlQIEcY5pIYC0/pcqN7vQ== +polywrap@0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/polywrap/-/polywrap-0.10.2.tgz#ed70f76459c7a57c99932aea220b1ccba054e778" + integrity sha512-MH28MdM9XcdE2Y3kvK8wyvJ7GXKe9X34i3IdbcrGzy/tc1ki3RAzUazse7tLMX1qnatUsJSgNC+wF8Bfae/Jhg== dependencies: "@apidevtools/json-schema-ref-parser" "9.0.9" "@ethersproject/providers" "5.6.8" @@ -2471,13 +2471,13 @@ polywrap@0.10.0: "@polywrap/client-js" "0.10.0" "@polywrap/core-js" "0.10.0" "@polywrap/ethereum-provider-js-v1" "npm:@polywrap/ethereum-provider-js@~0.2.4" - "@polywrap/logging-js" "0.10.0" - "@polywrap/os-js" "0.10.0" - "@polywrap/polywrap-manifest-types-js" "0.10.0" + "@polywrap/logging-js" "0.10.2" + "@polywrap/os-js" "0.10.2" + "@polywrap/polywrap-manifest-types-js" "0.10.2" "@polywrap/result" "0.10.0" - "@polywrap/schema-bind" "0.10.0" - "@polywrap/schema-compose" "0.10.0" - "@polywrap/schema-parse" "0.10.0" + "@polywrap/schema-bind" "0.10.2" + "@polywrap/schema-compose" "0.10.2" + "@polywrap/schema-parse" "0.10.2" "@polywrap/uri-resolver-extensions-js" "0.10.0" "@polywrap/uri-resolvers-js" "0.10.0" "@polywrap/wasm-js" "0.10.0" @@ -2501,7 +2501,7 @@ polywrap@0.10.0: rimraf "3.0.2" toml "3.0.0" typescript "4.9.5" - yaml "2.1.3" + yaml "2.2.2" yesno "0.4.0" process-nextick-args@~2.0.0: @@ -2646,6 +2646,13 @@ semver@7.4.0: dependencies: lru-cache "^6.0.0" +semver@7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" + integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA== + dependencies: + lru-cache "^6.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2910,10 +2917,10 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207" - integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg== +yaml@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" + integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== yaml@^1.10.2: version "1.10.2" From 1cbcada487728a5286911616511a670ee3536ec4 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 26 Apr 2023 17:00:52 +0400 Subject: [PATCH 20/21] feat: create workspace file --- http-monorepo.code-workspace | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 http-monorepo.code-workspace diff --git a/http-monorepo.code-workspace b/http-monorepo.code-workspace new file mode 100644 index 0000000..a673b00 --- /dev/null +++ b/http-monorepo.code-workspace @@ -0,0 +1,27 @@ +{ + "folders": [ + { + "name": "root", + "path": "." + }, + { + "name": "interface", + "path": "interface" + }, + { + "name": "python-plugin", + "path": "implementations/py" + }, + { + "name": "javascript-plugin", + "path": "implementations/js" + }, + ], + "settings": { + "files.exclude": { + "**/interface/*": true, + "**/implementations/*": true + }, + "liveServer.settings.multiRootWorkspaceName": "root", + } +} From 99670d2ab618d171625c72f858d1218e6076a19b Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 26 Apr 2023 17:04:54 +0400 Subject: [PATCH 21/21] chore: import sort --- implementations/py/polywrap_http_plugin/__init__.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/implementations/py/polywrap_http_plugin/__init__.py b/implementations/py/polywrap_http_plugin/__init__.py index 8c45f6b..c22491f 100644 --- a/implementations/py/polywrap_http_plugin/__init__.py +++ b/implementations/py/polywrap_http_plugin/__init__.py @@ -8,14 +8,7 @@ from polywrap_msgpack import GenericMap from polywrap_plugin import PluginPackage -from .wrap import ( - ArgsGet, - ArgsPost, - Response, - ResponseType, - Module, - manifest, -) +from .wrap import ArgsGet, ArgsPost, Module, Response, ResponseType, manifest def _is_response_binary(args: ArgsGet) -> bool: