feat: introduce Poetry support
diff --git a/examples/poetry/.gitignore b/examples/poetry/.gitignore
new file mode 100644
index 0000000..ac51a05
--- /dev/null
+++ b/examples/poetry/.gitignore
@@ -0,0 +1 @@
+bazel-*
diff --git a/examples/poetry/README.md b/examples/poetry/README.md
new file mode 100644
index 0000000..2a62d01
--- /dev/null
+++ b/examples/poetry/README.md
@@ -0,0 +1,38 @@
+# Using Poetry with rules_python
+
+Use Poetry's `poetry.lock` file to declare your rules_python dependencies.
+
+This is a fully hermetic approach which doesn't rely on a system Python interpreter nor any installation of Poetry on your machine.
+
+## Why?
+
+- Your team might simply prefer Poetry for aesthetic reasons.
+- Migrating to Bazel is already hard, so you want to continue using your existing Poetry setup. It also allows less disruption for non-Bazel workflows.
+- The Poetry lockfile supports multiple platforms, avoiding the awkwardness of the [`requirements_{darwin,linux,windows}.txt`](https://github.com/bazelbuild/rules_python/blob/main/docs/pip.md#compile_pip_requirements-requirements_darwin) triple which is hard to update without having access to all three platforms.
+
+## Approach
+
+We simply treat Poetry as a "frontend" to the existing [`pip_parse`](https://github.com/bazelbuild/rules_python/blob/main/README.md#installing-third_party-packages) repository rule.
+Essentially we teach it how to parse an additional format.
+
+Internally, it simply exports the Poetry lockfile within a repository rule, producing a requirements.txt file (for the host platform) which is supported by `pip_parse`.
+This is inspired by https://github.com/AndrewGuenther/rules_python_poetry.
+
+Also inspired by https://github.com/jvolkman/rules_pycross/blob/main/update_pypi_requirements_bzl.sh
+which had a similar idea of bringing in poetry as a whl_library repository rule so it can be called
+under Bazel.
+
+Also inspired by https://docs.aspect.build/rules/aspect_rules_js/docs/pnpm/#update_pnpm_lock which allows JavaScript developers to author one lockfile format (yarn or npm) and translates that on-the-fly to what the Bazel rules expect (pnpm).
+
+See https://github.com/bazelbuild/rules_python/issues/340
+
+## Usage
+
+This folder contains a typical Poetry setup, with direct dependencies and their constraints declared in a `pyproject.toml` file.
+
+You can `bazel run @poetry_poetry//:bin update` to create/update the `poetry.lock` file.
+This is typically checked into version control, as shown in this folder.
+
+To illustrate the translation, you can `bazel run @poetry_poetry//:bin export` to write a `requirements.txt` file to stdout. This is what we do internally.
+
+TODO: write a `poetry_export` repository rule around it?
diff --git a/examples/poetry/WORKSPACE.bazel b/examples/poetry/WORKSPACE.bazel
new file mode 100644
index 0000000..221e54c
--- /dev/null
+++ b/examples/poetry/WORKSPACE.bazel
@@ -0,0 +1,48 @@
+workspace(name = "rules_python_pip_parse_example")
+
+local_repository(
+ name = "rules_python",
+ path = "../..",
+)
+
+load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")
+
+py_repositories()
+
+load("@rules_python//python/pip_install:repositories.bzl", "pip_install_dependencies")
+
+pip_install_dependencies()
+python_register_toolchains(
+ name = "python3_10",
+ python_version = "3.10",
+)
+
+load("@python3_10//:defs.bzl", "interpreter")
+load("@rules_python//poetry:poetry_requirements.bzl", "poetry_repositories")
+
+poetry_repositories()
+
+load("@poetry_poetry//:requirements.bzl", _poetry_install_deps = "install_deps")
+_poetry_install_deps(
+ python_interpreter_target = interpreter,
+)
+
+
+# TODO:
+# poetry_export(
+# name = "poetry_deps",
+# lockfile=poetry.lock
+#)
+
+# load("@rules_python//python:pip.bzl", "pip_parse")
+# pip_parse(
+# name = "pip",
+# requirements_txt = "@poetry_deps//:requirements.txt",
+# )
+
+# OR MAYBE syntax sugar, as pip parse could parse more formats?
+
+# pip_parse(
+# name = "pip",
+# poetry_lock = "poetry.lock",
+# )
diff --git a/examples/poetry/poetry.lock b/examples/poetry/poetry.lock
new file mode 100644
index 0000000..610c864
--- /dev/null
+++ b/examples/poetry/poetry.lock
@@ -0,0 +1,76 @@
+# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
+
+[[package]]
+name = "pendulum"
+version = "2.1.2"
+description = "Python datetimes made easy"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "pendulum-2.1.2-cp27-cp27m-macosx_10_15_x86_64.whl", hash = "sha256:b6c352f4bd32dff1ea7066bd31ad0f71f8d8100b9ff709fb343f3b86cee43efe"},
+ {file = "pendulum-2.1.2-cp27-cp27m-win_amd64.whl", hash = "sha256:318f72f62e8e23cd6660dbafe1e346950281a9aed144b5c596b2ddabc1d19739"},
+ {file = "pendulum-2.1.2-cp35-cp35m-macosx_10_15_x86_64.whl", hash = "sha256:0731f0c661a3cb779d398803655494893c9f581f6488048b3fb629c2342b5394"},
+ {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:3481fad1dc3f6f6738bd575a951d3c15d4b4ce7c82dce37cf8ac1483fde6e8b0"},
+ {file = "pendulum-2.1.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9702069c694306297ed362ce7e3c1ef8404ac8ede39f9b28b7c1a7ad8c3959e3"},
+ {file = "pendulum-2.1.2-cp35-cp35m-win_amd64.whl", hash = "sha256:fb53ffa0085002ddd43b6ca61a7b34f2d4d7c3ed66f931fe599e1a531b42af9b"},
+ {file = "pendulum-2.1.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c501749fdd3d6f9e726086bf0cd4437281ed47e7bca132ddb522f86a1645d360"},
+ {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c807a578a532eeb226150d5006f156632df2cc8c5693d778324b43ff8c515dd0"},
+ {file = "pendulum-2.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2d1619a721df661e506eff8db8614016f0720ac171fe80dda1333ee44e684087"},
+ {file = "pendulum-2.1.2-cp36-cp36m-win_amd64.whl", hash = "sha256:f888f2d2909a414680a29ae74d0592758f2b9fcdee3549887779cd4055e975db"},
+ {file = "pendulum-2.1.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:e95d329384717c7bf627bf27e204bc3b15c8238fa8d9d9781d93712776c14002"},
+ {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4c9c689747f39d0d02a9f94fcee737b34a5773803a64a5fdb046ee9cac7442c5"},
+ {file = "pendulum-2.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:1245cd0075a3c6d889f581f6325dd8404aca5884dea7223a5566c38aab94642b"},
+ {file = "pendulum-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:db0a40d8bcd27b4fb46676e8eb3c732c67a5a5e6bfab8927028224fbced0b40b"},
+ {file = "pendulum-2.1.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:f5e236e7730cab1644e1b87aca3d2ff3e375a608542e90fe25685dae46310116"},
+ {file = "pendulum-2.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:de42ea3e2943171a9e95141f2eecf972480636e8e484ccffaf1e833929e9e052"},
+ {file = "pendulum-2.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7c5ec650cb4bec4c63a89a0242cc8c3cebcec92fcfe937c417ba18277d8560be"},
+ {file = "pendulum-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:33fb61601083f3eb1d15edeb45274f73c63b3c44a8524703dc143f4212bf3269"},
+ {file = "pendulum-2.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:29c40a6f2942376185728c9a0347d7c0f07905638c83007e1d262781f1e6953a"},
+ {file = "pendulum-2.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:94b1fc947bfe38579b28e1cccb36f7e28a15e841f30384b5ad6c5e31055c85d7"},
+ {file = "pendulum-2.1.2.tar.gz", hash = "sha256:b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207"},
+]
+
+[package.dependencies]
+python-dateutil = ">=2.6,<3.0"
+pytzdata = ">=2020.1"
+
+[[package]]
+name = "python-dateutil"
+version = "2.8.2"
+description = "Extensions to the standard Python datetime module"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+files = [
+ {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
+ {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
+]
+
+[package.dependencies]
+six = ">=1.5"
+
+[[package]]
+name = "pytzdata"
+version = "2020.1"
+description = "The Olson timezone database for Python."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "pytzdata-2020.1-py2.py3-none-any.whl", hash = "sha256:e1e14750bcf95016381e4d472bad004eef710f2d6417240904070b3d6654485f"},
+ {file = "pytzdata-2020.1.tar.gz", hash = "sha256:3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540"},
+]
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+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"},
+]
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.10"
+content-hash = "80e2b3ba17e1d5c850af464bdc7c258cef6452442e8015a41345f832b5c1b5e4"
diff --git a/examples/poetry/pyproject.toml b/examples/poetry/pyproject.toml
new file mode 100644
index 0000000..1b8a208
--- /dev/null
+++ b/examples/poetry/pyproject.toml
@@ -0,0 +1,10 @@
+[tool.poetry]
+name = "poetry-demo"
+version = "0.1.0"
+description = ""
+authors = ["Alex Eagle <alex@aspect.dev>"]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+pendulum = "^2.1"
+python = "^3.10"
diff --git a/poetry/BUILD.bazel b/poetry/BUILD.bazel
new file mode 100644
index 0000000..7073116
--- /dev/null
+++ b/poetry/BUILD.bazel
@@ -0,0 +1 @@
+"No targets in this package"
diff --git a/poetry/poetry_requirements.bzl b/poetry/poetry_requirements.bzl
new file mode 100644
index 0000000..35f31a5
--- /dev/null
+++ b/poetry/poetry_requirements.bzl
@@ -0,0 +1,19 @@
+"""Starlark representation of locked requirements.
+"""
+
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+_POETRY_VERSION = "1.5.1"
+
+def poetry_repositories():
+ # Avoid circular dependency with poetry_plugin_export
+ # https://github.com/python-poetry/poetry/pull/5980
+ # By fetching the top-level package outside of a whl_library
+ http_archive(
+ name = "poetry_poetry",
+ sha256 = "dfc7ce3a38ae216c0465694e2e674bef6eb1a2ba81aa47a26f9dc03362fe2f5f",
+ patch_args = ["-p1"],
+ patches = ["@rules_python//poetry:poetry_wheel.patch"],
+ type = "zip",
+ urls = ["https://files.pythonhosted.org/packages/ac/da/506b45c82484efb896cadb27348cca8a4ba960968428804417e7b6e866cd/poetry-{}-py3-none-any.whl".format(_POETRY_VERSION)],
+ )
diff --git a/poetry/poetry_wheel.patch b/poetry/poetry_wheel.patch
new file mode 100644
index 0000000..29627c8
--- /dev/null
+++ b/poetry/poetry_wheel.patch
@@ -0,0 +1,130 @@
+commit 5f26c755b501e550b31d0a983f545a16c3094903
+Author: Alex Eagle <alex@aspect.dev>
+Date: Fri Jul 7 17:22:26 2023 -0700
+
+ Introduce Bazel files for running poetry
+
+ Allows you to run directly from its wheel distribution.
+
+diff --git a/BUILD.bazel b/BUILD.bazel
+new file mode 100644
+index 00000000..28de84a5
+--- /dev/null
++++ b/BUILD.bazel
+@@ -0,0 +1,40 @@
++load("@rules_python//python:defs.bzl", "py_library")
++load("@poetry_poetry//:requirements.bzl", "all_requirements")
++
++package(default_visibility = ["//visibility:public"])
++
++# Workaround https://github.com/python-poetry/poetry/issues/6441:
++# Make the export plugin not a dep of poetry, but a runtime dep when we execute it.
++lib_deps = [r for r in all_requirements if r.find("poetry_plugin") < 0]
++plugins = [r for r in all_requirements if r.find("poetry_plugin") >= 0]
++
++py_library(
++ name = "pkg",
++ srcs = glob(["**/*.py"]),
++ data = glob(["**/*"], exclude=[
++ # These entries include those put into user-installed dependencies by
++ # data_exclude in /python/pip_install/tools/bazel.py
++ # to avoid non-determinism following pip install's behavior.
++ "**/*.py",
++ "**/*.pyc",
++ "**/* *",
++ "**/*.dist-info/RECORD",
++ "BUILD",
++ "WORKSPACE",
++ ]),
++ imports = ["."],
++ deps = lib_deps,
++)
++
++py_binary(
++ name = "bin",
++ main = "__main__.py",
++ srcs = ["__main__.py"],
++ imports = ["."],
++ deps = [":pkg"] + plugins,
++ # Disable Poetry accessing the system keyring which is a PITA
++ # https://github.com/python-poetry/poetry/issues/2692#issuecomment-1043066254
++ env = {
++ "PYTHON_KEYRING_BACKEND": "keyring.backends.null.Keyring",
++ },
++)
+diff --git a/__main__.py b/__main__.py
+new file mode 100644
+index 00000000..a814d861
+--- /dev/null
++++ b/__main__.py
+@@ -0,0 +1,12 @@
++import sys
++import os
++
++
++if __name__ == "__main__":
++ # Under 'bazel run' we want to be in the same directory as the user was
++ if "BUILD_WORKING_DIRECTORY" in os.environ:
++ os.chdir(os.environ["BUILD_WORKING_DIRECTORY"])
++
++ from poetry.console.application import main
++
++ sys.exit(main())
+diff --git a/requirements.bzl b/requirements.bzl
+new file mode 100644
+index 00000000..9cd00914
+--- /dev/null
++++ b/requirements.bzl
+@@ -0,0 +1,52 @@
++"""Starlark representation of locked requirements.
++
++@generated by rules_python pip_parse repository rule
++from //:requirements.txt
++"""
++
++load("@rules_python//python/pip_install:pip_repository.bzl", "whl_library")
++
++all_requirements = ["@poetry_attrs//:pkg", "@poetry_build//:pkg", "@poetry_cachecontrol//:pkg", "@poetry_certifi//:pkg", "@poetry_cffi//:pkg", "@poetry_charset_normalizer//:pkg", "@poetry_cleo//:pkg", "@poetry_crashtest//:pkg", "@poetry_cryptography//:pkg", "@poetry_distlib//:pkg", "@poetry_dulwich//:pkg", "@poetry_filelock//:pkg", "@poetry_html5lib//:pkg", "@poetry_idna//:pkg", "@poetry_importlib_metadata//:pkg", "@poetry_installer//:pkg", "@poetry_jaraco_classes//:pkg", "@poetry_jeepney//:pkg", "@poetry_jsonschema//:pkg", "@poetry_jsonschema_specifications//:pkg", "@poetry_keyring//:pkg", "@poetry_lockfile//:pkg", "@poetry_more_itertools//:pkg", "@poetry_msgpack//:pkg", "@poetry_packaging//:pkg", "@poetry_pexpect//:pkg", "@poetry_pkginfo//:pkg", "@poetry_platformdirs//:pkg", "@poetry_poetry_core//:pkg", "@poetry_poetry_plugin_export//:pkg", "@poetry_ptyprocess//:pkg", "@poetry_pycparser//:pkg", "@poetry_pyproject_hooks//:pkg", "@poetry_rapidfuzz//:pkg", "@poetry_referencing//:pkg", "@poetry_requests//:pkg", "@poetry_requests_toolbelt//:pkg", "@poetry_rpds_py//:pkg", "@poetry_secretstorage//:pkg", "@poetry_shellingham//:pkg", "@poetry_six//:pkg", "@poetry_tomli//:pkg", "@poetry_tomlkit//:pkg", "@poetry_trove_classifiers//:pkg", "@poetry_urllib3//:pkg", "@poetry_virtualenv//:pkg", "@poetry_webencodings//:pkg", "@poetry_zipp//:pkg"]
++
++all_whl_requirements = ["@poetry_attrs//:whl", "@poetry_build//:whl", "@poetry_cachecontrol//:whl", "@poetry_certifi//:whl", "@poetry_cffi//:whl", "@poetry_charset_normalizer//:whl", "@poetry_cleo//:whl", "@poetry_crashtest//:whl", "@poetry_cryptography//:whl", "@poetry_distlib//:whl", "@poetry_dulwich//:whl", "@poetry_filelock//:whl", "@poetry_html5lib//:whl", "@poetry_idna//:whl", "@poetry_importlib_metadata//:whl", "@poetry_installer//:whl", "@poetry_jaraco_classes//:whl", "@poetry_jeepney//:whl", "@poetry_jsonschema//:whl", "@poetry_jsonschema_specifications//:whl", "@poetry_keyring//:whl", "@poetry_lockfile//:whl", "@poetry_more_itertools//:whl", "@poetry_msgpack//:whl", "@poetry_packaging//:whl", "@poetry_pexpect//:whl", "@poetry_pkginfo//:whl", "@poetry_platformdirs//:whl", "@poetry_poetry_core//:whl", "@poetry_poetry_plugin_export//:whl", "@poetry_ptyprocess//:whl", "@poetry_pycparser//:whl", "@poetry_pyproject_hooks//:whl", "@poetry_rapidfuzz//:whl", "@poetry_referencing//:whl", "@poetry_requests//:whl", "@poetry_requests_toolbelt//:whl", "@poetry_rpds_py//:whl", "@poetry_secretstorage//:whl", "@poetry_shellingham//:whl", "@poetry_six//:whl", "@poetry_tomli//:whl", "@poetry_tomlkit//:whl", "@poetry_trove_classifiers//:whl", "@poetry_urllib3//:whl", "@poetry_virtualenv//:whl", "@poetry_webencodings//:whl", "@poetry_zipp//:whl"]
++
++_packages = [("poetry_attrs", "attrs==23.1.0 --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"), ("poetry_build", "build==0.10.0 --hash=sha256:af266720050a66c893a6096a2f410989eeac74ff9a68ba194b3f6473e8e26171 --hash=sha256:d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269"), ("poetry_cachecontrol", "cachecontrol[filecache]==0.12.14 --hash=sha256:1c2939be362a70c4e5f02c6249462b3b7a24441e4f1ced5e9ef028172edf356a --hash=sha256:d1087f45781c0e00616479bfd282c78504371ca71da017b49df9f5365a95feba"), ("poetry_certifi", "certifi==2023.5.7 --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"), ("poetry_cffi", "cffi==1.15.1 --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"), ("poetry_charset_normalizer", "charset-normalizer==3.2.0 --hash=sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96 --hash=sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c --hash=sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710 --hash=sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706 --hash=sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020 --hash=sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252 --hash=sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad --hash=sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329 --hash=sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a --hash=sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f --hash=sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6 --hash=sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4 --hash=sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a --hash=sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46 --hash=sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2 --hash=sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23 --hash=sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace --hash=sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd --hash=sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982 --hash=sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10 --hash=sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2 --hash=sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea --hash=sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09 --hash=sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5 --hash=sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149 --hash=sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489 --hash=sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9 --hash=sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80 --hash=sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592 --hash=sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3 --hash=sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6 --hash=sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed --hash=sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c --hash=sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200 --hash=sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a --hash=sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e --hash=sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d --hash=sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6 --hash=sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623 --hash=sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669 --hash=sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3 --hash=sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa --hash=sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9 --hash=sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2 --hash=sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f --hash=sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1 --hash=sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4 --hash=sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a --hash=sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8 --hash=sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3 --hash=sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029 --hash=sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f --hash=sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959 --hash=sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22 --hash=sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7 --hash=sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952 --hash=sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346 --hash=sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e --hash=sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d --hash=sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299 --hash=sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd --hash=sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a --hash=sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3 --hash=sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037 --hash=sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94 --hash=sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c --hash=sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858 --hash=sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a --hash=sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449 --hash=sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c --hash=sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918 --hash=sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1 --hash=sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c --hash=sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac --hash=sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"), ("poetry_cleo", "cleo==2.0.1 --hash=sha256:6eb133670a3ed1f3b052d53789017b6e50fca66d1287e6e6696285f4cb8ea448 --hash=sha256:eb4b2e1f3063c11085cebe489a6e9124163c226575a3c3be69b2e51af4a15ec5"), ("poetry_crashtest", "crashtest==0.4.1 --hash=sha256:80d7b1f316ebfbd429f648076d6275c877ba30ba48979de4191714a75266f0ce --hash=sha256:8d23eac5fa660409f57472e3851dab7ac18aba459a8d19cbbba86d3d5aecd2a5"), ("poetry_cryptography", "cryptography==41.0.1 --hash=sha256:059e348f9a3c1950937e1b5d7ba1f8e968508ab181e75fc32b879452f08356db --hash=sha256:1a5472d40c8f8e91ff7a3d8ac6dfa363d8e3138b961529c996f3e2df0c7a411a --hash=sha256:1a8e6c2de6fbbcc5e14fd27fb24414507cb3333198ea9ab1258d916f00bc3039 --hash=sha256:1fee5aacc7367487b4e22484d3c7e547992ed726d14864ee33c0176ae43b0d7c --hash=sha256:5d092fdfedaec4cbbffbf98cddc915ba145313a6fdaab83c6e67f4e6c218e6f3 --hash=sha256:5f0ff6e18d13a3de56f609dd1fd11470918f770c6bd5d00d632076c727d35485 --hash=sha256:7bfc55a5eae8b86a287747053140ba221afc65eb06207bedf6e019b8934b477c --hash=sha256:7fa01527046ca5facdf973eef2535a27fec4cb651e4daec4d043ef63f6ecd4ca --hash=sha256:8dde71c4169ec5ccc1087bb7521d54251c016f126f922ab2dfe6649170a3b8c5 --hash=sha256:8f4ab7021127a9b4323537300a2acfb450124b2def3756f64dc3a3d2160ee4b5 --hash=sha256:948224d76c4b6457349d47c0c98657557f429b4e93057cf5a2f71d603e2fc3a3 --hash=sha256:9a6c7a3c87d595608a39980ebaa04d5a37f94024c9f24eb7d10262b92f739ddb --hash=sha256:b46e37db3cc267b4dea1f56da7346c9727e1209aa98487179ee8ebed09d21e43 --hash=sha256:b4ceb5324b998ce2003bc17d519080b4ec8d5b7b70794cbd2836101406a9be31 --hash=sha256:cb33ccf15e89f7ed89b235cff9d49e2e62c6c981a6061c9c8bb47ed7951190bc --hash=sha256:d198820aba55660b4d74f7b5fd1f17db3aa5eb3e6893b0a41b75e84e4f9e0e4b --hash=sha256:d34579085401d3f49762d2f7d6634d6b6c2ae1242202e860f4d26b046e3a1006 --hash=sha256:eb8163f5e549a22888c18b0d53d6bb62a20510060a22fd5a995ec8a05268df8a --hash=sha256:f73bff05db2a3e5974a6fd248af2566134d8981fd7ab012e5dd4ddb1d9a70699"), ("poetry_distlib", "distlib==0.3.6 --hash=sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46 --hash=sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"), ("poetry_dulwich", "dulwich==0.21.5 --hash=sha256:0aa44b812d978fc22a04531f5090c3c369d5facd03fa6e0501d460a661800c7f --hash=sha256:0ab86d6d42e385bf3438e70f3c9b16de68018bd88929379e3484c0ef7990bd3c --hash=sha256:1b20a3656b48c941d49c536824e1e5278a695560e8de1a83b53a630143c4552e --hash=sha256:1cc0c9ba19ac1b2372598802bc9201a9c45e5d6f1f7a80ec40deeb10acc4e9ae --hash=sha256:1e39b7c2c9bda6acae83b25054650a8bb7e373e886e2334721d384e1479bf04b --hash=sha256:26456dba39d1209fca17187db06967130e27eeecad2b3c2bbbe63467b0bf09d6 --hash=sha256:281310644e02e3aa6d76bcaffe2063b9031213c4916b5f1a6e68c25bdecfaba4 --hash=sha256:2aba0fdad2a19bd5bb3aad6882580cb33359c67b48412ccd4cfccd932012b35e --hash=sha256:32493a456358a3a6c15bbda07106fc3d4cc50834ee18bc7717968d18be59b223 --hash=sha256:3800cdc17d144c1f7e114972293bd6c46688f5bcc2c9228ed0537ded72394082 --hash=sha256:3932b5e17503b265a85f1eda77ede647681c3bab53bc9572955b6b282abd26ea --hash=sha256:3e68b162af2aae995355e7920f89d50d72b53d56021e5ac0a546d493b17cbf7e --hash=sha256:3e8f6d4f4f4d01dd1d3c968e486d4cd77f96f772da7265941bc506de0944ddb9 --hash=sha256:45d6198e804b539708b73a003419e48fb42ff2c3c6dd93f63f3b134dff6dd259 --hash=sha256:4814ca3209dabe0fe7719e9545fbdad7f8bb250c5a225964fe2a31069940c4cf --hash=sha256:494024f74c2eef9988adb4352b3651ac1b6c0466176ec62b69d3d3672167ba68 --hash=sha256:4db330fb59fe3b9d253bdf0e49a521739db83689520c4921ab1c5242aaf77b82 --hash=sha256:5e56b2c1911c344527edb2bf1a4356e2fb7e086b1ba309666e1e5c2224cdca8a --hash=sha256:5e8a79c1ed7166f32ad21974fa98d11bf6fd74e94a47e754c777c320e01257c6 --hash=sha256:6155ab7388ee01c670f7c5d8003d4e133eebebc7085a856c007989f0ba921b36 --hash=sha256:61e10242b5a7a82faa8996b2c76239cfb633620b02cdd2946e8af6e7eb31d651 --hash=sha256:6616132d219234580de88ceb85dd51480dc43b1bdc05887214b8dd9cfd4a9d40 --hash=sha256:684c52cff867d10c75a7238151ca307582b3d251bbcd6db9e9cffbc998ef804e --hash=sha256:6f46bcb6777e5f9f4af24a2bd029e88b77316269d24ce66be590e546a0d8f7b7 --hash=sha256:70955e4e249ddda6e34a4636b90f74e931e558f993b17c52570fa6144b993103 --hash=sha256:7dc358c2ee727322a09b7c6da43d47a1026049dbd3ad8d612eddca1f9074b298 --hash=sha256:7f357639b56146a396f48e5e0bc9bbaca3d6d51c8340bd825299272b588fff5f --hash=sha256:7fe62685bf356bfb4d0738f84a3fcf0d1fc9e11fee152e488a20b8c66a52429e --hash=sha256:823091d6b6a1ea07dc4839c9752198fb39193213d103ac189c7669736be2eaff --hash=sha256:82cdf482f8f51fcc965ffad66180b54a9abaea9b1e985a32e1acbfedf6e0e363 --hash=sha256:82f632afb9c7c341a875d46aaa3e6c5e586c7a64ce36c9544fa400f7e4f29754 --hash=sha256:85d3401d08b1ec78c7d58ae987c4bb7b768a438f3daa74aeb8372bebc7fb16fa --hash=sha256:8864719bc176cdd27847332a2059127e2f7bab7db2ff99a999873cb7fff54116 --hash=sha256:891d5c73e2b66d05dbb502e44f027dc0dbbd8f6198bc90dae348152e69d0befc --hash=sha256:9019189d7a8f7394df6a22cd5b484238c5776e42282ad5d6d6c626b4c5f43597 --hash=sha256:90479608e49db93d8c9e4323bc0ec5496678b535446e29d8fd67dc5bbb5d51bf --hash=sha256:a605e10d72f90a39ea2e634fbfd80f866fc4df29a02ea6db52ae92e5fd4a2003 --hash=sha256:a917fd3b4493db3716da2260f16f6b18f68d46fbe491d851d154fc0c2d984ae4 --hash=sha256:aae448da7d80306dda4fc46292fed7efaa466294571ab3448be16714305076f1 --hash=sha256:aeb736d777ee21f2117a90fc453ee181aa7eedb9e255b5ef07c51733f3fe5cb6 --hash=sha256:b24cb1fad0525dba4872e9381bc576ea2a6dcdf06b0ed98f8e953e3b1d719b89 --hash=sha256:b2c9931b657f2206abec0964ec2355ee2c1e04d05f8864e823ffa23c548c4548 --hash=sha256:b943517e30bd651fbc275a892bb96774f3893d95fe5a4dedd84496a98eaaa8ab --hash=sha256:baecef0d8b9199822c7912876a03a1af17833f6c0d461efb62decebd45897e49 --hash=sha256:be12a46f73023970125808a4a78f610c055373096c1ecea3280edee41613eba8 --hash=sha256:c2a565d4e704d7f784cdf9637097141f6d47129c8fffc2fac699d57cb075a169 --hash=sha256:c8ded43dc0bd2e65420eb01e778034be5ca7f72e397a839167eda7dcb87c4248 --hash=sha256:c922a4573267486be0ef85216f2da103fb38075b8465dc0e90457843884e4860 --hash=sha256:daa607370722c3dce99a0022397c141caefb5ed32032a4f72506f4817ea6405b --hash=sha256:e2f676bfed8146966fe934ee734969d7d81548fbd250a8308582973670a9dab1 --hash=sha256:e52b20c4368171b7d32bd3ab0f1d2402e76ad4f2ea915ff9aa73bc9fa2b54d6d --hash=sha256:eaf6c7fb6b13495c19c9aace88821c2ade3c8c55b4e216cd7cc55d3e3807d7fa --hash=sha256:f2eeca6d61366cf5ee8aef45bed4245a67d4c0f0d731dc2383eabb80fa695683 --hash=sha256:f9a6bf99f57bcac4c77fc60a58f1b322c91cc4d8c65dc341f76bf402622f89cb --hash=sha256:f9b6ac1b1c67fc6083c42b7b6cd3b211292c8a6517216c733caf23e8b103ab6d --hash=sha256:fd4ad079758514375f11469e081723ba8831ce4eaa1a64b41f06a3a866d5ac34"), ("poetry_filelock", "filelock==3.12.2 --hash=sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81 --hash=sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"), ("poetry_html5lib", "html5lib==1.1 --hash=sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d --hash=sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"), ("poetry_idna", "idna==3.4 --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"), ("poetry_importlib_metadata", "importlib-metadata==6.8.0 --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"), ("poetry_installer", "installer==0.7.0 --hash=sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53 --hash=sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631"), ("poetry_jaraco_classes", "jaraco-classes==3.2.3 --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 --hash=sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a"), ("poetry_jeepney", "jeepney==0.8.0 --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"), ("poetry_jsonschema", "jsonschema==4.18.0 --hash=sha256:8caf5b57a990a98e9b39832ef3cb35c176fe331414252b6e1b26fd5866f891a4 --hash=sha256:b508dd6142bd03f4c3670534c80af68cd7bbff9ea830b9cf2625d4a3c49ddf60"), ("poetry_jsonschema_specifications", "jsonschema-specifications==2023.6.1 --hash=sha256:3d2b82663aff01815f744bb5c7887e2121a63399b49b104a3c96145474d091d7 --hash=sha256:ca1c4dd059a9e7b34101cf5b3ab7ff1d18b139f35950d598d629837ef66e8f28"), ("poetry_keyring", "keyring==23.13.1 --hash=sha256:771ed2a91909389ed6148631de678f82ddc73737d85a927f382a8a1b157898cd --hash=sha256:ba2e15a9b35e21908d0aaf4e0a47acc52d6ae33444df0da2b49d41a46ef6d678"), ("poetry_lockfile", "lockfile==0.12.2 --hash=sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799 --hash=sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"), ("poetry_more_itertools", "more-itertools==9.1.0 --hash=sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d --hash=sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3"), ("poetry_msgpack", "msgpack==1.0.5 --hash=sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164 --hash=sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b --hash=sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c --hash=sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf --hash=sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd --hash=sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d --hash=sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c --hash=sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a --hash=sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e --hash=sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd --hash=sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025 --hash=sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5 --hash=sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705 --hash=sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a --hash=sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d --hash=sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb --hash=sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11 --hash=sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f --hash=sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c --hash=sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d --hash=sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea --hash=sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba --hash=sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87 --hash=sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a --hash=sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c --hash=sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080 --hash=sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198 --hash=sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9 --hash=sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a --hash=sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b --hash=sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f --hash=sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437 --hash=sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f --hash=sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7 --hash=sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2 --hash=sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0 --hash=sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48 --hash=sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898 --hash=sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0 --hash=sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57 --hash=sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8 --hash=sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282 --hash=sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1 --hash=sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82 --hash=sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc --hash=sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb --hash=sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6 --hash=sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7 --hash=sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9 --hash=sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c --hash=sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1 --hash=sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed --hash=sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c --hash=sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c --hash=sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77 --hash=sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81 --hash=sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a --hash=sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3 --hash=sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086 --hash=sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9 --hash=sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f --hash=sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b --hash=sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"), ("poetry_packaging", "packaging==23.1 --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"), ("poetry_pexpect", "pexpect==4.8.0 --hash=sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937 --hash=sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"), ("poetry_pkginfo", "pkginfo==1.9.6 --hash=sha256:4b7a555a6d5a22169fcc9cf7bfd78d296b0361adad412a346c1226849af5e546 --hash=sha256:8fd5896e8718a4372f0ea9cc9d96f6417c9b986e23a4d116dda26b62cc29d046"), ("poetry_platformdirs", "platformdirs==3.8.1 --hash=sha256:cec7b889196b9144d088e4c57d9ceef7374f6c39694ad1577a0aab50d27ea28c --hash=sha256:f87ca4fcff7d2b0f81c6a748a77973d7af0f4d526f98f308477c3c436c74d528"), ("poetry_poetry_core", "poetry-core==1.6.1 --hash=sha256:0f9b0de39665f36d6594657e7d57b6f463cc10f30c28e6d1c3b9ff54c26c9ac3 --hash=sha256:70707340447dee0e7f334f9495ae652481c67b32d8d218f296a376ac2ed73573"), ("poetry_poetry_plugin_export", "poetry-plugin-export==1.4.0 --hash=sha256:5d9186d6f77cf2bf35fc96bd11fe650cc7656e515b17d99cb65018d50ba22589 --hash=sha256:f16974cd9f222d4ef640fa97a8d661b04d4fb339e51da93973f1bc9d578e183f"), ("poetry_ptyprocess", "ptyprocess==0.7.0 --hash=sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 --hash=sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"), ("poetry_pycparser", "pycparser==2.21 --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"), ("poetry_pyproject_hooks", "pyproject-hooks==1.0.0 --hash=sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8 --hash=sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5"), ("poetry_rapidfuzz", "rapidfuzz==2.15.1 --hash=sha256:040faca2e26d9dab5541b45ce72b3f6c0e36786234703fc2ac8c6f53bb576743 --hash=sha256:074ee9e17912e025c72a5780ee4c7c413ea35cd26449719cc399b852d4e42533 --hash=sha256:099e4c6befaa8957a816bdb67ce664871f10aaec9bebf2f61368cf7e0869a7a1 --hash=sha256:0f73a04135a03a6e40393ecd5d46a7a1049d353fc5c24b82849830d09817991f --hash=sha256:19b7460e91168229768be882ea365ba0ac7da43e57f9416e2cfadc396a7df3c2 --hash=sha256:2084d36b95139413cef25e9487257a1cc892b93bd1481acd2a9656f7a1d9930c --hash=sha256:22b9d22022b9d09fd4ece15102270ab9b6a5cfea8b6f6d1965c1df7e3783f5ff --hash=sha256:2492330bc38b76ed967eab7bdaea63a89b6ceb254489e2c65c3824efcbf72993 --hash=sha256:2577463d10811386e704a3ab58b903eb4e2a31b24dfd9886d789b0084d614b01 --hash=sha256:2d93ba3ae59275e7a3a116dac4ffdb05e9598bf3ee0861fecc5b60fb042d539e --hash=sha256:2dd03477feefeccda07b7659dd614f6738cfc4f9b6779dd61b262a73b0a9a178 --hash=sha256:2e597b9dfd6dd180982684840975c458c50d447e46928efe3e0120e4ec6f6686 --hash=sha256:3c53d57ba7a88f7bf304d4ea5a14a0ca112db0e0178fff745d9005acf2879f7d --hash=sha256:3c89cfa88dc16fd8c9bcc0c7f0b0073f7ef1e27cceb246c9f5a3f7004fa97c4d --hash=sha256:3fac40972cf7b6c14dded88ae2331eb50dfbc278aa9195473ef6fc6bfe49f686 --hash=sha256:41dfea282844d0628279b4db2929da0dacb8ac317ddc5dcccc30093cf16357c1 --hash=sha256:46599b2ad4045dd3f794a24a6db1e753d23304699d4984462cf1ead02a51ddf3 --hash=sha256:46754fe404a9a6f5cbf7abe02d74af390038d94c9b8c923b3f362467606bfa28 --hash=sha256:47e81767a962e41477a85ad7ac937e34d19a7d2a80be65614f008a5ead671c56 --hash=sha256:49c4bcdb9238f11f8c4eba1b898937f09b92280d6f900023a8216008f299b41a --hash=sha256:4d9f7d10065f657f960b48699e7dddfce14ab91af4bab37a215f0722daf0d716 --hash=sha256:4f69e6199fec0f58f9a89afbbaea78d637c7ce77f656a03a1d6ea6abdc1d44f8 --hash=sha256:509c5b631cd64df69f0f011893983eb15b8be087a55bad72f3d616b6ae6a0f96 --hash=sha256:53de456ef020a77bf9d7c6c54860a48e2e902584d55d3001766140ac45c54bc7 --hash=sha256:558224b6fc6124d13fa32d57876f626a7d6188ba2a97cbaea33a6ee38a867e31 --hash=sha256:591f19d16758a3c55c9d7a0b786b40d95599a5b244d6eaef79c7a74fcf5104d8 --hash=sha256:5a738fcd24e34bce4b19126b92fdae15482d6d3a90bd687fd3d24ce9d28ce82d --hash=sha256:5efe035aa76ff37d1b5fa661de3c4b4944de9ff227a6c0b2e390a95c101814c0 --hash=sha256:60368e1add6e550faae65614844c43f8a96e37bf99404643b648bf2dba92c0fb --hash=sha256:6534afc787e32c4104f65cdeb55f6abe4d803a2d0553221d00ef9ce12788dcde --hash=sha256:6986413cb37035eb796e32f049cbc8c13d8630a4ac1e0484e3e268bb3662bd1b --hash=sha256:6d89c421702474c6361245b6b199e6e9783febacdbfb6b002669e6cb3ef17a09 --hash=sha256:6e2a3b23e1e9aa13474b3c710bba770d0dcc34d517d3dd6f97435a32873e3f28 --hash=sha256:7025fb105a11f503943f17718cdb8241ea3bb4d812c710c609e69bead40e2ff0 --hash=sha256:785744f1270828cc632c5a3660409dee9bcaac6931a081bae57542c93e4d46c4 --hash=sha256:79fc574aaf2d7c27ec1022e29c9c18f83cdaf790c71c05779528901e0caad89b --hash=sha256:7c3ff75e647908ddbe9aa917fbe39a112d5631171f3fcea5809e2363e525a59d --hash=sha256:7d150d90a7c6caae7962f29f857a4e61d42038cfd82c9df38508daf30c648ae7 --hash=sha256:7e24a1b802cea04160b3fccd75d2d0905065783ebc9de157d83c14fb9e1c6ce2 --hash=sha256:82b86d5b8c1b9bcbc65236d75f81023c78d06a721c3e0229889ff4ed5c858169 --hash=sha256:87c30e9184998ff6eb0fa9221f94282ce7c908fd0da96a1ef66ecadfaaa4cdb7 --hash=sha256:8ba013500a2b68c64b2aecc5fb56a2dad6c2872cf545a0308fd044827b6e5f6a --hash=sha256:8c99d53138a2dfe8ada67cb2855719f934af2733d726fbf73247844ce4dd6dd5 --hash=sha256:91abb8bf7610efe326394adc1d45e1baca8f360e74187f3fa0ef3df80cdd3ba6 --hash=sha256:93c33c03e7092642c38f8a15ca2d8fc38da366f2526ec3b46adf19d5c7aa48ba --hash=sha256:94e1c97f0ad45b05003806f8a13efc1fc78983e52fa2ddb00629003acf4676ef --hash=sha256:a0e441d4c2025110ec3eba5d54f11f78183269a10152b3a757a739ffd1bb12bf --hash=sha256:a3a769ca7580686a66046b77df33851b3c2d796dc1eb60c269b68f690f3e1b65 --hash=sha256:a48ee83916401ac73938526d7bd804e01d2a8fe61809df7f1577b0b3b31049a3 --hash=sha256:a4a54efe17cc9f53589c748b53f28776dfdfb9bc83619685740cb7c37985ac2f --hash=sha256:a6ee758eec4cf2215dc8d8eafafcea0d1f48ad4b0135767db1b0f7c5c40a17dd --hash=sha256:a72f26e010d4774b676f36e43c0fc8a2c26659efef4b3be3fd7714d3491e9957 --hash=sha256:a7381c11cb590bbd4e6f2d8779a0b34fdd2234dfa13d0211f6aee8ca166d9d05 --hash=sha256:aa1e5aad325168e29bf8e17006479b97024aa9d2fdbe12062bd2f8f09080acf8 --hash=sha256:abde47e1595902a490ed14d4338d21c3509156abb2042a99e6da51f928e0c117 --hash=sha256:b1b393f4a1eaa6867ffac6aef58cfb04bab2b3d7d8e40b9fe2cf40dd1d384601 --hash=sha256:b5cd54c98a387cca111b3b784fc97a4f141244bbc28a92d4bde53f164464112e --hash=sha256:b7461b0a7651d68bc23f0896bffceea40f62887e5ab8397bf7caa883592ef5cb --hash=sha256:b89d1126be65c85763d56e3b47d75f1a9b7c5529857b4d572079b9a636eaa8a7 --hash=sha256:bb8318116ecac4dfb84841d8b9b461f9bb0c3be5b616418387d104f72d2a16d1 --hash=sha256:be7ccc45c4d1a7dfb595f260e8022a90c6cb380c2a346ee5aae93f85c96d362b --hash=sha256:c2bb68832b140c551dbed691290bef4ee6719d4e8ce1b7226a3736f61a9d1a83 --hash=sha256:c35da09ab9797b020d0d4f07a66871dfc70ea6566363811090353ea971748b5a --hash=sha256:c525a3da17b6d79d61613096c8683da86e3573e807dfaecf422eea09e82b5ba6 --hash=sha256:c71580052f9dbac443c02f60484e5a2e5f72ad4351b84b2009fbe345b1f38422 --hash=sha256:ca8f1747007a3ce919739a60fa95c5325f7667cccf6f1c1ef18ae799af119f5e --hash=sha256:cac095cbdf44bc286339a77214bbca6d4d228c9ebae3da5ff6a80aaeb7c35634 --hash=sha256:cfdcdedfd12a0077193f2cf3626ff6722c5a184adf0d2d51f1ec984bf21c23c3 --hash=sha256:d0ae6ec79a1931929bb9dd57bc173eb5ba4c7197461bf69e3a34b6dd314feed2 --hash=sha256:d14752c9dd2036c5f36ebe8db5f027275fa7d6b3ec6484158f83efb674bab84e --hash=sha256:d4deae6a918ecc260d0c4612257be8ba321d8e913ccb43155403842758c46fbe --hash=sha256:d50622efefdb03a640a51a6123748cd151d305c1f0431af762e833d6ffef71f0 --hash=sha256:d59fb3a410d253f50099d7063855c2b95df1ef20ad93ea3a6b84115590899f25 --hash=sha256:d62137c2ca37aea90a11003ad7dc109c8f1739bfbe5a9a217f3cdb07d7ac00f6 --hash=sha256:d7927722ff43690e52b3145b5bd3089151d841d350c6f8378c3cfac91f67573a --hash=sha256:da7fac7c3da39f93e6b2ebe386ed0ffe1cefec91509b91857f6e1204509e931f --hash=sha256:dc3cafa68cfa54638632bdcadf9aab89a3d182b4a3f04d2cad7585ed58ea8731 --hash=sha256:dffdf03499e0a5b3442951bb82b556333b069e0661e80568752786c79c5b32de --hash=sha256:e1e0e569108a5760d8f01d0f2148dd08cc9a39ead79fbefefca9e7c7723c7e88 --hash=sha256:e40a2f60024f9d3c15401e668f732800114a023f3f8d8c40f1521a62081ff054 --hash=sha256:e9296c530e544f68858c3416ad1d982a1854f71e9d2d3dcedb5b216e6d54f067 --hash=sha256:ebb40a279e134bb3fef099a8b58ed5beefb201033d29bdac005bddcdb004ef71 --hash=sha256:ed17359061840eb249f8d833cb213942e8299ffc4f67251a6ed61833a9f2ea20 --hash=sha256:ed2cf7c69102c7a0a06926d747ed855bc836f52e8d59a5d1e3adfd980d1bd165 --hash=sha256:f01fa757f0fb332a1f045168d29b0d005de6c39ee5ce5d6c51f2563bb53c601b --hash=sha256:f0e456cbdc0abf39352800309dab82fd3251179fa0ff6573fa117f51f4e84be8 --hash=sha256:f3dd4bcef2d600e0aa121e19e6e62f6f06f22a89f82ef62755e205ce14727874 --hash=sha256:f67d5f56aa48c0da9de4ab81bffb310683cf7815f05ea38e5aa64f3ba4368339 --hash=sha256:f85bece1ec59bda8b982bd719507d468d4df746dfb1988df11d916b5e9fe19e8 --hash=sha256:f976e76ac72f650790b3a5402431612175b2ac0363179446285cb3c901136ca9 --hash=sha256:fc0bc259ebe3b93e7ce9df50b3d00e7345335d35acbd735163b7c4b1957074d3 --hash=sha256:fc4528b7736e5c30bc954022c2cf410889abc19504a023abadbc59cdf9f37cae"), ("poetry_referencing", "referencing==0.29.1 --hash=sha256:90cb53782d550ba28d2166ef3f55731f38397def8832baac5d45235f1995e35e --hash=sha256:d3c8f323ee1480095da44d55917cfb8278d73d6b4d5f677e3e40eb21314ac67f"), ("poetry_requests", "requests==2.31.0 --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"), ("poetry_requests_toolbelt", "requests-toolbelt==1.0.0 --hash=sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6 --hash=sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"), ("poetry_rpds_py", "rpds-py==0.8.8 --hash=sha256:0c62fdb01111da948e8446caaefebf2ca4307a58fcbc10039b48d0db7205397c --hash=sha256:0df2ae878fd99342415a42659f3bcee34b12441a509033e0ab04c6e301895607 --hash=sha256:0dfec14a64759186153115d987f9e60b1fa7e8e14a00004a02482e696199e554 --hash=sha256:0e8da63b9baa154ec9ddd6dd397893830d17e5812ceb50edbae8122d8ecb9f2e --hash=sha256:13aed64f2e0bef04a0eae6d1d1295f901f6c1640d1e20264dc3b19d62ef1721d --hash=sha256:180963bb3e1fcc6ed6313ece5e065f0df4021a7eb7016084d3cbc90cd2a8af3e --hash=sha256:1891903e567d728175c0475a1f0ffc1d1580013b0b265b9e2f1b8c93d58b2d05 --hash=sha256:18a97bb7f211b247346983092186927c517153ac155c611f43ca83d5ee93a3e2 --hash=sha256:1f60a7eb96fedcc5bf59761d33ac0f2f127d75f8c4b99ed0f138fc0f3601c537 --hash=sha256:22afed13c6ad4ccdc650ad44cbc06f835f4f30de201bd4ee2afc09bde06a357a --hash=sha256:246a410e540ce7f635c6ad1b7aa00b7dcfc966c5f97217e41092c3f764dac4bf --hash=sha256:247a1fd9bcdb373380cb8c0041417c9995fc163c9d88a39f5ec3d960114aca22 --hash=sha256:25a4b357ba7540d7cc709915699d67d505c8177cdb30824127092e1b4886b504 --hash=sha256:2d6a26953d3b291dd7e79e43bb203ed134ca889e63c8ebbc65e3ff98154303ef --hash=sha256:300b8579740b06e246238b730e636f314a7d8dc475be1868650f5d3ddc29a0d8 --hash=sha256:316a66b0379a9e954872593aa2eb6d61949da2ecc8f572b4dafb07aa0e247171 --hash=sha256:358c7a976482537d26fcbdc7808e7cc25f64816fe89681f9aa8bef13e16c7370 --hash=sha256:36266e2e49b36ec6cc148e36667030d8e7f1c009edd2ca978ab09ed9c5a7589a --hash=sha256:3660bd2afb23e1ca685df0d3092208fe6c7b2cae8c0be199b3da6d1a4bc91dc5 --hash=sha256:42eb3030665ee7a5c03fd4db6b8db1983aa91bcdffbed0f4687751deb2a94a7c --hash=sha256:4333b5c2801e44bf342207a7700378a1013f300116c9553ce1ffbc73047d2a02 --hash=sha256:4b5164fdad37847e90683d3748dca7c4604f47ecd21e2d651dafc80393d1d314 --hash=sha256:4c66a5f9ca9c5fcb2527ad969541521f7216db713a7bd63aee52c3f5efa5924a --hash=sha256:5b7c87503843a036f898d44c47326a117d23b6269a9f1574adf83d7bb051b839 --hash=sha256:657348b35a4c2e7c2340bf0bc37597900037bd87e9db7e6282711aaa77256e16 --hash=sha256:681ef7a21e6990583533c3a3038b7176f5e51e5d345fe2d9109b54f6bffcabcd --hash=sha256:6b1b235b890373f785507f8f6a644a4f191b7195939e7f6108dc0e5e4fab57fd --hash=sha256:6e85ea159f2d2132d4fcb71abb7df9683314f6073bf8ee9f9bd576440245e59c --hash=sha256:6ee396f63a1f540fb3aecb8cc698180d30573a661be47fb3fff45cbd2b5d4686 --hash=sha256:7110854662ccf8db84b90e4624301ef5311cafff7e5f2a63f2d7cc0fc1a75b60 --hash=sha256:755a837fb7053dbf511fba26343423bd80d3b75a5d7f57f6e407c2fe5ae46682 --hash=sha256:7628b2080538faa4a1243b0002678cae7111af68ae7b5aa6cd8526762cace868 --hash=sha256:78c5577f99d2edc9eed9ec39fae27b73d04d1b2462aff6f6b11207e0364fc40d --hash=sha256:79ac819182795a2168ed11075c7362de368f360244fb7cea8274c222b2d55365 --hash=sha256:7bd8dbc1c63668124e5e48e601d32f1053cfd5a86004ae0e55dc9ba8b1e7de29 --hash=sha256:87d74c2526115daa9d805a66377997602185a837ff7ecceed9d27e625c383572 --hash=sha256:8ac1e47ee4cb2dbd714537e63c67086eec63f56b13208fe450ae5be4f3d65671 --hash=sha256:8e1251d6690f356a305192089017da83999cded1d7e2405660d14c1dff976af7 --hash=sha256:8f64ef5700ff8fded62b12d1ea55463031cc5a353b670ed7146126c6cbf28788 --hash=sha256:961828c668140796c4963edb14cd968666d5414b9b5829997a4f475fd917906e --hash=sha256:9af40bb89e40932e04c0cc1fb516249d6b3ae68ceebd984fdc592a6673244e50 --hash=sha256:9b331fa451d725258c1ad0ae6816cf36d55294e5cb68338cf91550b9a448a48f --hash=sha256:a747477838a90b9264f434b5399309f9badb32c80ff3e9c4f6d5b87fddcbaa09 --hash=sha256:ac596301c7723809ecb6ec4cb2564b2cadc06f8c07b6348a56fcbf1ae043d751 --hash=sha256:b189640d59afa8aeff59865fa9d314bca97987c378950f215297e15d64ae1124 --hash=sha256:b3ed0d3498b69159db0d5db1393c8bae4df51cf936b2ef5cda53d800acab0019 --hash=sha256:b5a55fd01f61df19e4f53fd67b63ca9bf47559632c3f7d4037faa06d3a6fed54 --hash=sha256:b5cbcbd6451a4af2048fc0b21c15981462f6a378cb039aa53612c6e39958064e --hash=sha256:b949e86affe17c8828d82936c51d7aa9b686511f9ac99a4b1de596d7140c8083 --hash=sha256:bfe98ad05400e7ac7a1df791645db08c66adc92d7a6449a406111303a265b71a --hash=sha256:c0fe018430e5e8e1d8b513bcbccdb0ea34b9fd81c32b3a49c41a109fade17cfb --hash=sha256:c26b1a0425c038cc23cf5770a47d7a7382fe68d6d10fb2a52c2896ca94e72550 --hash=sha256:c7019b2522af6b835118177b6b53f7ed08da28061aa5d44e06286be09799e7a4 --hash=sha256:c97e4cbe722474d17c309ee49e09331ceffe345bb72e2b10c6c740788871b122 --hash=sha256:cafbfa8f3a27e592bdcc420497e0c9a957c9f812b6c6ebfb7f961409215ba82d --hash=sha256:cea42c2f52e37877e6b877bce64d109a6b0213e32545ecc70d4492d2a4641b8f --hash=sha256:d2f8666fde7cfd9cdbc6c223876b39697d387f0215d12ed25147e9efec2dff5a --hash=sha256:d418d2fd8c0fffe2897bc3e15a2e2ec87abf29076f0c36898cc33fb7881c2cbe --hash=sha256:d4334405f6c73c29ff94521f78ad53ebb76a9c1b8dafea75852f9f64c3679cf7 --hash=sha256:d6696c2a002e982e89975063939a2579623d6d6b24634b147848ec9f35dad7d6 --hash=sha256:d7e46f52272ceecc42c05ad869b068b2dbfb6eb5643bcccecd2327d3cded5a2e --hash=sha256:db71c665fc7ddb9ac53d7b69dc588493c0b71635b28fc8ff64b31eb9db5b3461 --hash=sha256:ddb5226b11f4fce98c6e47c07819fbbfdda6d3fd529cd176ad8a1e0b98a70b05 --hash=sha256:df3097abf5fd09bfcd8f6fd02d052b25cc3e160b3ee71b6fbd831b2cd516c958 --hash=sha256:e086610118163400a1822af0ee857581c0e047aa50a9c3543d17fbe65183a339 --hash=sha256:e1700fba17dd63c9c7d5cb03cf838db23cf938dd5cdb1eecb6ba8b8da62c3e73 --hash=sha256:e261fa453ad50fe1d9287fa21d962cdbcd3d495cf1160dd0f893883040c455b6 --hash=sha256:e4e11f71673905d9e8735b8dd4ef8fa85a82e6003851fe46f9bdc51aebc2cd5d --hash=sha256:ea8c4a1232c7bacf73366b0490dda7f67d25958aec1c2f099b6753c8bfe84427 --hash=sha256:ed823997c3300b541da0fcc9eee8fbe6740e07939ffa432824cfca287472d652 --hash=sha256:ee42ce4ef46ea334ce8ab63d5a57c7fd78238c9c7293b3caa6dfedf11bd28773 --hash=sha256:f1c84912d77b01651488bbe392df593b4c5852e213477e268ebbb7c799059d78 --hash=sha256:f81a570a20f9fce617d728f4e3bdc05bfbb68afa2e795ec0c52544a7923de517 --hash=sha256:f8a1cc37e2395002381510a6862c29634acd67edfe5774661a6c48d8617acae7 --hash=sha256:fffd98c1fd6b38df35e471549c2486d826af0fda6ca55c0bbbb956b291e7f2ae"), ("poetry_secretstorage", "secretstorage==3.3.3 --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"), ("poetry_shellingham", "shellingham==1.5.0.post1 --hash=sha256:368bf8c00754fd4f55afb7bbb86e272df77e4dc76ac29dbcbb81a59e9fc15744 --hash=sha256:823bc5fb5c34d60f285b624e7264f4dda254bc803a3774a147bf99c0e3004a28"), ("poetry_six", "six==1.16.0 --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"), ("poetry_tomli", "tomli==2.0.1 --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"), ("poetry_tomlkit", "tomlkit==0.11.8 --hash=sha256:8c726c4c202bdb148667835f68d68780b9a003a9ec34167b6c673b38eff2a171 --hash=sha256:9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"), ("poetry_trove_classifiers", "trove-classifiers==2023.7.6 --hash=sha256:8a8e168b51d20fed607043831d37632bb50919d1c80a64e0f1393744691a8b22 --hash=sha256:b420d5aa048ee7c456233a49203f7d58d1736af4a6cde637657d78c13ab7969b"), ("poetry_urllib3", "urllib3==1.26.16 --hash=sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f --hash=sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"), ("poetry_virtualenv", "virtualenv==20.23.1 --hash=sha256:34da10f14fea9be20e0fd7f04aba9732f84e593dac291b757ce42e3368a39419 --hash=sha256:8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"), ("poetry_webencodings", "webencodings==0.5.1 --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"), ("poetry_zipp", "zipp==3.15.0 --hash=sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b --hash=sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556")]
++_config = {"download_only": False, "enable_implicit_namespace_pkgs": False, "environment": {}, "extra_pip_args": [], "isolated": True, "pip_data_exclude": [], "python_interpreter": "python3", "quiet": True, "repo": "poetry", "repo_prefix": "poetry_", "timeout": 600}
++_annotations = {}
++
++def _clean_name(name):
++ return name.replace("-", "_").replace(".", "_").lower()
++
++def requirement(name):
++ return "@poetry_" + _clean_name(name) + "//:pkg"
++
++def whl_requirement(name):
++ return "@poetry_" + _clean_name(name) + "//:whl"
++
++def data_requirement(name):
++ return "@poetry_" + _clean_name(name) + "//:data"
++
++def dist_info_requirement(name):
++ return "@poetry_" + _clean_name(name) + "//:dist_info"
++
++def entry_point(pkg, script = None):
++ if not script:
++ script = pkg
++ return "@poetry_" + _clean_name(pkg) + "//:rules_python_wheel_entry_point_" + script
++
++def _get_annotation(requirement):
++ # This expects to parse `setuptools==58.2.0 --hash=sha256:2551203ae6955b9876741a26ab3e767bb3242dafe86a32a749ea0d78b6792f11`
++ # down to `setuptools`.
++ name = requirement.split(" ")[0].split("=")[0].split("[")[0]
++ return _annotations.get(name)
++
++def install_deps(**whl_library_kwargs):
++ whl_config = dict(_config)
++ whl_config.update(whl_library_kwargs)
++ for name, requirement in _packages:
++ whl_library(
++ name = name,
++ requirement = requirement,
++ annotation = _get_annotation(requirement),
++ **whl_config
++ )