pypa / pipenv

Python Development Workflow for Humans.
https://pipenv.pypa.io
MIT License
24.83k stars 1.87k forks source link

`install_search_all_sources = true` is not being respected in latest version of pipenv #5743

Closed CNDW closed 1 year ago

CNDW commented 1 year ago

Issue description

The latest version of pipenv v2023.6.18 has caused our repos to fail install. This is a regression from the solution we found in #5543 - see that issue for more detailed information.

Downgrading to v2023.6.12 makes the repos install correctly.

The issue appears to be caused by this change in PR #5737

image

The change effectively nullifies the install_search_all_sources = true setting in the Pipfile and results in transitive dependencies published on a private registry not being found

Expected result

package installs should be able to locate sub-dependencies when they are not defined in the Pipfile but install_search_all_sources = true is set.

Actual result

Dependency Installs are failing to find sub-dependencies that are not defined in the Pipfile and are published on a private registry despite the inclusion of install_search_all_sources = true in the Pipfile

Steps to replicate

See issue #5543 for more details on reproducing

matteius commented 1 year ago

In testing that change you referenced, I had to change install_search_all_sources = false to get expected behavior for index restricted packages in unit tests. Have you tried removing install_search_all_sources or setting it to false?

There was a big regression in the resolver phase when we upgraded to pip 23 because it began searching all sources for packages when it should have only been searching the default source of the Pipfile. Pipenv uses index package restrictions, which is to say that the default index is where things are searched during locking unless not specified in the Pipfile. This has to be this way to prevent package confusion attacks and have deterministic resolution.

It sounds like you were benefiting from the bug, by not having to specify things in the Pipfile that were unique to a secondary package index. However as https://github.com/pypa/pipenv/issues/5736 pointed out, there are edge cases of that, and it basically revealed to me the whole underlying package confusion attack problem was still possible. In that case the torch hashes were different than the other index, and when the install phase happened they could not be validated.

Please provide the pipenv commands you are running to further diagnose.

CNDW commented 1 year ago

Sorry, this took me some time to get back to.

The command I am running is pipenv sync --dev

The following example works on v2023.6.12 but fails on v2023.6.18

the Pipfile looks like this

[pipenv]
install_search_all_sources = true

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[[source]]
name = "fury"
url = "https://${GEMFURY_TOKEN}:@pypi.fury.io/gain-bot/"
verify_ssl = true

[dev-packages]
pytest = "==7.2.0"
flake8 = "==6.0.0"
black= "==22.12.0"
mock= "==5.0.0"

[packages]
pygain-lib = {version = "==22.0.12", extras = ["graph"], index = "fury"}
pygain-iso8601utils = {version="==0.1.3", index = "fury"}  # TODO: remove me
gain-marshmallow = {version="~=1.0.1", index = "fury"}  # TODO: remove me

[requires]
python_version = "3.11"

[scripts]
update_launchdarkly = "python ./update_launchdarkly.py"

pygain-lib has several dependencies on pypi with the following on the fury index

 "gain-marshmallow~=1.0.1",

The Pipfile.lock file contains the following entry for gain-marshmallow

        "gain-marshmallow": {
            "hashes": [
                "sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4"
            ],
            "index": "fury",
            "version": "==1.0.1"
        },
        "pygain-lib": {
            "extras": [
                "graph"
            ],
            "hashes": [
                "sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e"
            ],
            "index": "fury",
            "version": "==22.0.12"
        },
        "pygain-iso8601utils": {
            "hashes": [
                "sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4"
            ],
            "index": "fury",
            "version": "==0.1.3"
        },

When running pipenv sync --dev I see the following errors

travis@MacBook-Pro structure % pipenv sync --dev
Creating a virtualenv for this project...
Pipfile: /Users/travis/Projects/static-configs/structure/Pipfile
Using /Users/travis/.pyenv/versions/3.11.1/bin/python3 (3.11.1) to create virtualenv...
⠋ Creating virtual environment...created virtual environment CPython3.11.1.final.0-64 in 565ms
  creator CPython3Posix(dest=/Users/travis/.local/share/virtualenvs/structure-Vj8iUQyh, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/travis/Library/Application Support/virtualenv)
    added seed packages: pip==23.1.2, setuptools==67.8.0, wheel==0.40.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

✔ Successfully created virtual environment!
Virtualenv location: /Users/travis/.local/share/virtualenvs/structure-Vj8iUQyh
Installing dependencies from Pipfile.lock (62de44)...
An error occurred while installing cachetools==4.1.1 ; python_version ~= '3.5' --hash=sha256:513d4ff98dd27f85743a8dc0e92f55ddb1b49e060c2d5961512855cda2c01a98 --hash=sha256:bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20! Will try again.
An error occurred while installing camel-snake-kebab==0.3.2 --hash=sha256:eaf0689903df11dbc04f4e9e3b8c6979e2196198cd4566d2364ef33aee9dc0de --hash=sha256:fc21bfdaa969f1e5c6a0ec87125cc162de7801dd526bb2ec2bd26fd37f3b005e! Will try again.
An error occurred while installing certifi==2023.5.7 ; python_version >= '3.6' --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716! Will try again.
An error occurred while installing charset-normalizer==3.1.0 ; python_full_version >= '3.7.0' --hash=sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6 --hash=sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1 --hash=sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e --hash=sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373 --hash=sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62 --hash=sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230 --hash=sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be --hash=sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c --hash=sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0 --hash=sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448 --hash=sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f --hash=sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649 --hash=sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d --hash=sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0 --hash=sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706 --hash=sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a --hash=sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59 --hash=sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23 --hash=sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5 --hash=sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb --hash=sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e --hash=sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e --hash=sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c --hash=sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28 --hash=sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d --hash=sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41 --hash=sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974 --hash=sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce --hash=sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f --hash=sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1 --hash=sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d --hash=sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8 --hash=sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017 --hash=sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31 --hash=sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7 --hash=sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8 --hash=sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e --hash=sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14 --hash=sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd --hash=sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d --hash=sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795 --hash=sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b --hash=sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b --hash=sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b --hash=sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203 --hash=sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f --hash=sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19 --hash=sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1 --hash=sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a --hash=sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac --hash=sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9 --hash=sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0 --hash=sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137 --hash=sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f --hash=sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6 --hash=sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5 --hash=sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909 --hash=sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f --hash=sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0 --hash=sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324 --hash=sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755 --hash=sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb --hash=sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854 --hash=sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c --hash=sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60 --hash=sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84 --hash=sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0 --hash=sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b --hash=sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1 --hash=sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531 --hash=sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1 --hash=sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11 --hash=sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326 --hash=sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df --hash=sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab! Will try again.
An error occurred while installing cython==0.29.34 ; python_version >= '3.9' --hash=sha256:03daae07f8cbf797506446adae512c3dd86e7f27a62a541fa1ee254baf43e32c --hash=sha256:0963266dad685812c1dbb758fcd4de78290e3adc7db271c8664dcde27380b13e --hash=sha256:0ab3cbf3d62b0354631a45dc93cfcdf79098663b1c65a6033af4a452b52217a7 --hash=sha256:0e9032cd650b0cb1d2c2ef2623f5714c14d14c28d7647d589c3eeed0baf7428e --hash=sha256:11b1b278b8edef215caaa5250ad65a10023bfa0b5a93c776552248fc6f60098d --hash=sha256:1909688f5d7b521a60c396d20bba9e47a1b2d2784bfb085401e1e1e7d29a29a8 --hash=sha256:1d6c809e2f9ce5950bbc52a1d2352ef3d4fc56186b64cb0d50c8c5a3c1d17661 --hash=sha256:21b88200620d80cfe193d199b259cdad2b9af56f916f0f7f474b5a3631ca0caa --hash=sha256:308c8f1e58bf5e6e8a1c4dcf8abbd2d13d0f9b1e582f4d9ae8b89857342d8bb5 --hash=sha256:44733366f1604b0c327613b6918469284878d2f5084297d10d26072fc6948d51 --hash=sha256:459994d1de0f99bb18fad9f2325f760c4b392b1324aef37bcc1cd94922dfce41 --hash=sha256:4a2723447d1334484681d5aede34184f2da66317891f94b80e693a2f96a8f1a7 --hash=sha256:56866323f1660cecb4d5ff3a1fba92a56b91b7cfae0a8253777aa4bdb3bdf9a8 --hash=sha256:5718319a01489688fdd22ddebb8e2fcbbd60be5f30de4336ea7063c3ae29fbe5 --hash=sha256:5a8de3e793a576e40ca9b4f5518610cd416273c7dc5e254115656b6e4ec70663 --hash=sha256:5c121dc185040f4333bfded68963b4529698e1b6d994da56be32c97a90c896b6 --hash=sha256:60969d38e6a456a67e7ef8ae20668eff54e32ba439d4068ccf2854a44275a30f --hash=sha256:67b850cf46b861bc27226d31e1d87c0e69869a02f8d3cc5d5bef549764029879 --hash=sha256:742544024ddb74314e2d597accdb747ed76bd126e61fcf49940a5b5be0a8f381 --hash=sha256:7595d29eaee95633dd8060f50f0e54b27472d01587659557ebcfe39da3ea946b --hash=sha256:7879992487d9060a61393eeefe00d299210256928dce44d887b6be313d342bac --hash=sha256:8c3cd8bb8e880a3346f5685601004d96e0a2221e73edcaeea57ea848618b4ac6 --hash=sha256:9489de5b2044dcdfd9d6ca8242a02d560137b3c41b1f5ae1c4f6707d66d6e44d --hash=sha256:a0f4229df10bc4545ebbeaaf96ebb706011d8b333e54ed202beb03f2bee0a50e --hash=sha256:a8ad755f9364e720f10a36734a1c7a5ced5c679446718b589259261438a517c9 --hash=sha256:b6149f7cc5b31bccb158c5b968e5a8d374fdc629792e7b928a9b66e08b03fca5 --hash=sha256:bdb3285660e3068438791ace7dd7b1efd6b442a10b5c8d7a4f0c9d184d08c8ed --hash=sha256:be4f6b7be75a201c290c8611c0978549c60353890204573078e865423dbe3c83 --hash=sha256:ccb223b5f0fd95d8d27561efc0c14502c0945f1a32274835831efa5d5baddfc1 --hash=sha256:cfb2302ef617d647ee590a4c0a00ba3c2da05f301dcefe7721125565d2e51351 --hash=sha256:d7ef5f68f4c5baa93349ea54a352f8716d18bee9a37f3e93eff38a5d4e9b7262 --hash=sha256:d8f822fb6ecd5d88c42136561f82960612421154fc5bf23c57103a367bb91356 --hash=sha256:dbd79221869ee9a6ccc4953b2c8838bb6ae08ab4d50ea4b60d7894f03739417b --hash=sha256:dce0a36d163c05ae8b21200059511217d79b47baf2b7b0f926e8367bd7a3cc24 --hash=sha256:e40cf86aadc29ecd1cb6de67b0d9488705865deea4fc185c7ad56d7a6fc78703 --hash=sha256:e4401270b0dc464c23671e2e9d52a60985f988318febaf51b047190e855bbe7d --hash=sha256:e6ef7879668214d80ea3914c17e7d4e1ebf4242e0dd4dabe95ca5ccbe75589a5 --hash=sha256:e971db8aeb12e7c0697cefafe65eefcc33ff1224ae3d8c7f83346cbc42c6c270 --hash=sha256:f674ceb5f722d364395f180fbac273072fc1a266aab924acc9cfd5afc645aae1 --hash=sha256:fd1ea21f1cebf33ae288caa0f3e9b5563a709f4df8925d53bad99be693fc0d9b! Will try again.
An error occurred while installing first==2.0.2 ; python_version >= '3.9' --hash=sha256:8d8e46e115ea8ac652c76123c0865e3ff18372aef6f03c22809ceefcea9dec86 --hash=sha256:ff285b08c55f8c97ce4ea7012743af2495c9f1291785f163722bd36f6af6d3bf! Will try again.
An error occurred while installing gain-marshmallow==1.0.1 --hash=sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4! Will try again.
An error occurred while installing gain-requests-futures==0.9.7 --hash=sha256:0e1b42f01967affa960da792200ba248dce5712e3656fc121b387dc3743c794d --hash=sha256:848377c2f829c933fcdb40e7f1f07ac2c13a4f6ce1c1ab724d77658049f5b312 --hash=sha256:8c4e4ec67866479eb99fd931396e5de34714ec9b05c68889a79516c400e2f8e6! Will try again.
An error occurred while installing google-api-core[grpc]==2.11.0 ; python_version >= '3.7' --hash=sha256:4b9bb5d5a380a0befa0573b302651b8a9a89262c1730e37bf423cec511804c22 --hash=sha256:ce222e27b0de0d7bc63eb043b956996d6dccab14cc3b690aaea91c9cc99dc16e! Will try again.
An error occurred while installing google-auth==2.18.1 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' --hash=sha256:55a395cdfd3f3dd3f649131d41f97c17b4ed8a2aac1be3502090c716314e8a37 --hash=sha256:d7a3249027e7f464fbbfd7ee8319a08ad09d2eea51578575c4bd360ffa049ccb! Will try again.
An error occurred while installing google-cloud-secret-manager==2.16.1 ; python_version >= '3.9' --hash=sha256:149d11ce9be7ea81d4ac3544d3fcd4c716a9edb2cb775d9c075231570b079fbb --hash=sha256:dad28c24921fb62961aafe808be0e7935a99096f03ac29eeeefa04b85534c1f3! Will try again.
An error occurred while installing googleapis-common-protos==1.59.0 ; python_version >= '3.7' --hash=sha256:4168fcb568a826a52f23510412da405abd93f4d23ba544bb68d943b14ba3cb44 --hash=sha256:b287dc48449d1d41af0c69f4ea26242b5ae4c3d7249a38b0984c86a4caffff1f! Will try again.
An error occurred while installing grpc-google-iam-v1==0.12.6 ; python_version >= '3.7' --hash=sha256:2bc4b8fdf22115a65d751c9317329322602c39b7c86a289c9b72d228d960ef5f --hash=sha256:5c10f3d8dc2d88678ab1a9b0cb5482735c5efee71e6c0cd59f872eef22913f5c! Will try again.
An error occurred while installing grpcio==1.54.2 --hash=sha256:0212e2f7fdf7592e4b9d365087da30cb4d71e16a6f213120c89b4f8fb35a3ab3 --hash=sha256:09d4bfd84686cd36fd11fd45a0732c7628308d094b14d28ea74a81db0bce2ed3 --hash=sha256:1e623e0cf99a0ac114f091b3083a1848dbc64b0b99e181473b5a4a68d4f6f821 --hash=sha256:2288d76e4d4aa7ef3fe7a73c1c470b66ea68e7969930e746a8cd8eca6ef2a2ea --hash=sha256:2296356b5c9605b73ed6a52660b538787094dae13786ba53080595d52df13a98 --hash=sha256:2a1e601ee31ef30a9e2c601d0867e236ac54c922d32ed9f727b70dd5d82600d5 --hash=sha256:2be88c081e33f20630ac3343d8ad9f1125f32987968e9c8c75c051c9800896e8 --hash=sha256:33d40954199bddbb6a78f8f6f2b2082660f381cd2583ec860a6c2fa7c8400c08 --hash=sha256:40e1cbf69d6741b40f750f3cccc64326f927ac6145a9914d33879e586002350c --hash=sha256:46a057329938b08e5f0e12ea3d7aed3ecb20a0c34c4a324ef34e00cecdb88a12 --hash=sha256:4864f99aac207e3e45c5e26c6cbb0ad82917869abc2f156283be86c05286485c --hash=sha256:4c44e1a765b31e175c391f22e8fc73b2a2ece0e5e6ff042743d8109b5d2eff9f --hash=sha256:4cb283f630624ebb16c834e5ac3d7880831b07cbe76cb08ab7a271eeaeb8943e --hash=sha256:5008964885e8d23313c8e5ea0d44433be9bfd7e24482574e8cc43c02c02fc796 --hash=sha256:50a9f075eeda5097aa9a182bb3877fe1272875e45370368ac0ee16ab9e22d019 --hash=sha256:51630c92591d6d3fe488a7c706bd30a61594d144bac7dee20c8e1ce78294f474 --hash=sha256:5cc928cfe6c360c1df636cf7991ab96f059666ac7b40b75a769410cc6217df9c --hash=sha256:61f7203e2767800edee7a1e1040aaaf124a35ce0c7fe0883965c6b762defe598 --hash=sha256:66233ccd2a9371158d96e05d082043d47dadb18cbb294dc5accfdafc2e6b02a7 --hash=sha256:70fcac7b94f4c904152809a050164650ac81c08e62c27aa9f156ac518029ebbe --hash=sha256:714242ad0afa63a2e6dabd522ae22e1d76e07060b5af2ddda5474ba4f14c2c94 --hash=sha256:782f4f8662a2157c4190d0f99eaaebc602899e84fb1e562a944e5025929e351c --hash=sha256:7fc2b4edb938c8faa4b3c3ea90ca0dd89b7565a049e8e4e11b77e60e4ed2cc05 --hash=sha256:881d058c5ccbea7cc2c92085a11947b572498a27ef37d3eef4887f499054dca8 --hash=sha256:89dde0ac72a858a44a2feb8e43dc68c0c66f7857a23f806e81e1b7cc7044c9cf --hash=sha256:8cdbcbd687e576d48f7886157c95052825ca9948c0ed2afdc0134305067be88b --hash=sha256:8d6192c37a30a115f4663592861f50e130caed33efc4eec24d92ec881c92d771 --hash=sha256:96a41817d2c763b1d0b32675abeb9179aa2371c72aefdf74b2d2b99a1b92417b --hash=sha256:9bdbb7624d65dc0ed2ed8e954e79ab1724526f09b1efa88dcd9a1815bf28be5f --hash=sha256:9bf88004fe086c786dc56ef8dd6cb49c026833fdd6f42cb853008bce3f907148 --hash=sha256:a08920fa1a97d4b8ee5db2f31195de4a9def1a91bc003544eb3c9e6b8977960a --hash=sha256:a2f5a1f1080ccdc7cbaf1171b2cf384d852496fe81ddedeb882d42b85727f610 --hash=sha256:b04202453941a63b36876a7172b45366dc0cde10d5fd7855c0f4a4e673c0357a --hash=sha256:b38b3de8cff5bc70f8f9c615f51b48eff7313fc9aca354f09f81b73036e7ddfa --hash=sha256:b52d00d1793d290c81ad6a27058f5224a7d5f527867e5b580742e1bd211afeee --hash=sha256:b74ae837368cfffeb3f6b498688a123e6b960951be4dec0e869de77e7fa0439e --hash=sha256:be48496b0e00460717225e7680de57c38be1d8629dc09dadcd1b3389d70d942b --hash=sha256:c0e3155fc5335ec7b3b70f15230234e529ca3607b20a562b6c75fb1b1218874c --hash=sha256:c2392f5b5d84b71d853918687d806c1aa4308109e5ca158a16e16a6be71041eb --hash=sha256:c72956972e4b508dd39fdc7646637a791a9665b478e768ffa5f4fe42123d5de1 --hash=sha256:dc80c9c6b608bf98066a038e0172013a49cfa9a08d53335aefefda2c64fc68f4 --hash=sha256:e416c8baf925b5a1aff31f7f5aecc0060b25d50cce3a5a7255dc5cf2f1d4e5eb --hash=sha256:f8da84bbc61a4e92af54dc96344f328e5822d574f767e9b08e1602bb5ddc254a --hash=sha256:f900ed4ad7a0f1f05d35f955e0943944d5a75f607a836958c6b8ab2a81730ef2 --hash=sha256:fd6c6c29717724acf9fc1847c4515d57e4dc12762452457b9cb37461f30a81bb! Will try again.
An error occurred while installing grpcio-status==1.54.2 --hash=sha256:2a7cb4838225f1b53bd0448a3008c5b5837941e1f3a0b13fa38768f08a7b68c2 --hash=sha256:3255cbec5b7c706caa3d4dd584606c080e6415e15631bb2f6215e2b70055836d! Will try again.
An error occurred while installing idna==3.4 ; python_version >= '3.5' --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2! Will try again.
An error occurred while installing jsonpointer==2.3 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' --hash=sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9 --hash=sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a! Will try again.
An error occurred while installing monthdelta==1.0b0 --hash=sha256:a7b80ca49b6900a09749f72c8d1ec8f71f0c12fe01115e452923ff70a0dc0dce --hash=sha256:ab93015bea3a10dee0e6b386a2ab8ff14b7d40766b9b14257a1381473c885c11 --hash=sha256:db376cdafea66bb767eb8829cbe55c52138b579754ae2020c1001b4587722eae! Will try again.
An error occurred while installing munch==2.5.0 ; python_version >= '3.9' --hash=sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2 --hash=sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd! Will try again.
An error occurred while installing networkx==2.8.8 --hash=sha256:230d388117af870fce5647a3c52401fcf753e94720e6ea6b4197a5355648885e --hash=sha256:e435dfa75b1d7195c7b8378c3859f0445cd88c6b0375c181ed66823a9ceb7524! Will try again.
An error occurred while installing orjson==3.8.12 ; python_version >= '3.9' --hash=sha256:062e67108c218fdb9475edd5272b1629c05b56c66416fa915de5656adde30e73 --hash=sha256:06e528f9a84fbb4000fd0eee573b5db543ee70ae586fdbc53e740b0ac981701c --hash=sha256:0ba645c92801417933fa74448622ba614a275ea82df05e888095c7742d913bb4 --hash=sha256:135f29cf936283a0cd1b8bce86540ca181108f2a4d4483eedad6b8026865d2a9 --hash=sha256:29706dd8189835bcf1781faed286e99ae54fd6165437d364dfdbf0276bf39b19 --hash=sha256:2ad149ed76dce2bbdfbadd61c35959305e77141badf364a158beb4ef3d88ec37 --hash=sha256:355055e0977c43b0e5325b9312b7208c696fe20cd54eed1d6fc80b0a4d6721f5 --hash=sha256:397670665f94cf5cff779054781d80395084ba97191d82f7b3a86f0a20e6102b --hash=sha256:3fa58ca064c640fa9d823f98fbbc8e71940ecb78cea3ac2507da1cbf49d60b51 --hash=sha256:44f7bb4c995652106276442de1147c9993716d1e2d79b7fd435afa154ff236b9 --hash=sha256:4fd240e736ce52cd757d74142d9933fd35a3184396be887c435f0574e0388654 --hash=sha256:62f999798f2fa55e567d483864ebfc30120fb055c2696a255979439323a5b15c --hash=sha256:6cae2ff288a80e81ce30313e735c5436495ab58cf8d4fbe84900e616d0ee7a78 --hash=sha256:6d1acf52d3a4b9384af09a5c2658c3a7a472a4d62a0ad1fe2c8fab8ef460c9b4 --hash=sha256:6f1b01f641f5e87168b819ac1cbd81aa6278e7572c326f3d27e92dea442a2c0d --hash=sha256:6f568205519bb0197ca91915c5da6058cfbb59993e557b02dfc3b2718b34770a --hash=sha256:710c40c214b753392e46f9275fd795e9630dd737a5ab4ac6e4ee1a02fe83cc0d --hash=sha256:77710774faed337ac4ad919dadc5f3b655b0cd40518e5386e6f1f116de9c6c25 --hash=sha256:7d50d9b1ae409ea15534365fec0ce8a5a5f7dc94aa790aacfb8cfec87ab51aa4 --hash=sha256:7d63f524048825e05950db3b6998c756d5377a5e8c469b2e3bdb9f3217523d74 --hash=sha256:7e405d54c84c30d9b1c918c290bcf4ef484a45c69d5583a95db81ffffba40b44 --hash=sha256:7e549468867991f6f9cfbd9c5bbc977330173bd8f6ceb79973bbd4634e13e1b9 --hash=sha256:82d65e478a21f98107b4eb8390104746bb3024c27084b57edab7d427385f1f70 --hash=sha256:834b50df79f1fe89bbaced3a1c1d8c8c92cc99e84cdcd374d8da4974b3560d2a --hash=sha256:83e8c740a718fa6d511a82e463adc7ab17631c6eea81a716b723e127a9c51d57 --hash=sha256:8682f752c19f6a7d9fc727fd98588b4c8b0dce791b5794bb814c7379ccd64a79 --hash=sha256:8d153b228b6e24f8bccf732a51e01e8e938eef59efed9030c5c257778fbe0804 --hash=sha256:8f00038bf5d07439d13c0c2c5cd6ad48eb86df7dbd7a484013ce6a113c421b14 --hash=sha256:96fb1eb82b578eb6c0e53e3cf950839fe98ea210626f87c8204bd4fc2cc6ba02 --hash=sha256:9a6c1594d5a9ff56e5babc4a87ac372af38d37adef9e06744e9f158431e33f43 --hash=sha256:9f0f042cf002a474a6aea006dd9f8d7a5497e35e5fb190ec78eb4d232ec19955 --hash=sha256:a72b50719bdd6bb0acfca3d4d1c841aa4b191f3ff37268e7aba04e5d6be44ccd --hash=sha256:aff761de5ed5543a0a51e9f703668624749aa2239de5d7d37d9c9693daeaf5dc --hash=sha256:becbd5af6d035a7ec2ee3239d4700929d52d8517806b97dd04efcc37289403f7 --hash=sha256:c6390ce0bce24c107fc275736aa8a4f768ef7eb5df935d7dca0cc99815eb5d99 --hash=sha256:c84046e890e13a119404a83f2e09e622509ed4692846ff94c4ca03654fbc7fb5 --hash=sha256:cd6fbd1413559572e81b5ac64c45388147c3ba85cc3df2eaa11002945e0dbd1f --hash=sha256:d937503e4dfba5edc8d5e0426d3cc97ed55716e93212b2e12a198664487b9965 --hash=sha256:dc27a8ec13f28e92dc1ea89bf1232d77e7d3ebfd5c1ccf4f3729a70561cb63bd --hash=sha256:de3d096dde3e46d01841abc1982b906694ab3c92f338d37a2e6184739dc8a958 --hash=sha256:eb16e0195febd24b44f4db1ab3be85ecf6038f92fd511370cebc004b3d422294 --hash=sha256:ebb03e4c7648f7bb299872002a6120082da018f41ba7a9ebf4ceae8d765443d2 --hash=sha256:ec4f0130d9a27cb400423e09e0f9e46480e9e977f05fdcf663a7a2c68735513e --hash=sha256:efb3a10030462a22c731682434df5c137a67632a8339f821cd501920b169007e --hash=sha256:f480ae7b84369b1860d8867f0baf8d885fede400fda390ce088bfa8edf97ffdc --hash=sha256:f4e22b0aa70c963ac01fcd620de15be21a5027711b0e5d4b96debcdeea43e3ae! Will try again.
An error occurred while installing proto-plus==1.22.2 ; python_version >= '3.6' --hash=sha256:0e8cda3d5a634d9895b75c573c9352c16486cb75deb0e078b5fda34db4243165 --hash=sha256:de34e52d6c9c6fcd704192f09767cb561bb4ee64e70eede20b0834d841f0be4d! Will try again.
An error occurred while installing protobuf==4.23.1 ; python_version >= '3.7' --hash=sha256:2036a3a1e7fc27f973fa0a7888dce712393af644f4695385f117886abc792e39 --hash=sha256:32e78beda26d7a101fecf15d7a4a792278a0d26a31bc327ff05564a9d68ab8ee --hash=sha256:346990f634272caac1f09efbcfbbacb23098b1f606d172534c6fa2d9758bb436 --hash=sha256:3b8905eafe4439076e1f58e9d1fa327025fd2777cf90f14083092ae47f77b0aa --hash=sha256:3ce113b3f3362493bddc9069c2163a38f240a9ed685ff83e7bcb756b05e1deb0 --hash=sha256:410bcc0a5b279f634d3e16082ce221dfef7c3392fac723500e2e64d1806dd2be --hash=sha256:5b9cd6097e6acae48a68cb29b56bc79339be84eca65b486910bb1e7a30e2b7c1 --hash=sha256:65f0ac96ef67d7dd09b19a46aad81a851b6f85f89725577f16de38f2d68ad477 --hash=sha256:91fac0753c3c4951fbb98a93271c43cc7cf3b93cf67747b3e600bb1e5cc14d61 --hash=sha256:95789b569418a3e32a53f43d7763be3d490a831e9c08042539462b6d972c2d7e --hash=sha256:ac50be82491369a9ec3710565777e4da87c6d2e20404e0abb1f3a8f10ffd20f0 --hash=sha256:decf119d54e820f298ee6d89c72d6b289ea240c32c521f00433f9dc420595f38 --hash=sha256:f9510cac91e764e86acd74e2b7f7bc5e6127a7f3fb646d7c8033cfb84fd1176a! Will try again.
An error occurred while installing pyasn1==0.5.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde! Will try again.
An error occurred while installing pyasn1-modules==0.3.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' --hash=sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c --hash=sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d! Will try again.
An error occurred while installing pydantic==1.10.7 ; python_version >= '3.9' --hash=sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e --hash=sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6 --hash=sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd --hash=sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca --hash=sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b --hash=sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a --hash=sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245 --hash=sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d --hash=sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee --hash=sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1 --hash=sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3 --hash=sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d --hash=sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5 --hash=sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914 --hash=sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd --hash=sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1 --hash=sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e --hash=sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e --hash=sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a --hash=sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd --hash=sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f --hash=sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209 --hash=sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d --hash=sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a --hash=sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143 --hash=sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918 --hash=sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52 --hash=sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e --hash=sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f --hash=sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e --hash=sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb --hash=sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe --hash=sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe --hash=sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d --hash=sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209 --hash=sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af! Will try again.
An error occurred while installing pygain-iso8601utils==0.1.3 --hash=sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4! Will try again.
An error occurred while installing pygain-lib[graph]==22.0.12 --hash=sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e! Will try again.
An error occurred while installing pyjwt==2.7.0 ; python_version >= '3.9' --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074! Will try again.
An error occurred while installing python-dateutil==2.8.2 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9! Will try again.
An error occurred while installing pyyaml==5.4.1 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' --hash=sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf --hash=sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696 --hash=sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393 --hash=sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77 --hash=sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922 --hash=sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5 --hash=sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8 --hash=sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10 --hash=sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc --hash=sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018 --hash=sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e --hash=sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253 --hash=sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347 --hash=sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183 --hash=sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541 --hash=sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb --hash=sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185 --hash=sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc --hash=sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db --hash=sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa --hash=sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46 --hash=sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122 --hash=sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b --hash=sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63 --hash=sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df --hash=sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc --hash=sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247 --hash=sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6 --hash=sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0! Will try again.
An error occurred while installing requests==2.30.0 ; python_version >= '3.9' --hash=sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294 --hash=sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4! Will try again.
An error occurred while installing rsa==4.9 ; python_version >= '3.6' and python_version < '4' --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21! Will try again.
An error occurred while installing singleton-decorator==1.0.0 --hash=sha256:1a90ad8a8a738be591c9c167fdd677c5d4a43d1bc6b1c128227be1c5e03bee07! Will try again.
An error occurred while installing six==1.16.0 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254! Will try again.
An error occurred while installing typing-extensions==4.5.0 ; python_version >= '3.7' --hash=sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb --hash=sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4! Will try again.
An error occurred while installing urllib3==1.26.15 ; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' --hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 --hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42! Will try again.
Installing initially failed dependencies...
[pipenv.exceptions.InstallError]: Looking in indexes: https://pypi.org/simple, https://aDIwQ-miOvNUWg6Z3yvEjUIvoLOkSVPQ:****@pypi.fury.io/gain-bot/
[pipenv.exceptions.InstallError]: Collecting cachetools==4.1.1 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 1))
[pipenv.exceptions.InstallError]:   Using cached cachetools-4.1.1-py3-none-any.whl (10 kB)
[pipenv.exceptions.InstallError]: Collecting camel-snake-kebab==0.3.2 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 2))
[pipenv.exceptions.InstallError]:   Using cached camel_snake_kebab-0.3.2-py2.py3-none-any.whl (7.5 kB)
[pipenv.exceptions.InstallError]: Collecting certifi==2023.5.7 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 3))
[pipenv.exceptions.InstallError]:   Using cached certifi-2023.5.7-py3-none-any.whl (156 kB)
[pipenv.exceptions.InstallError]: Collecting charset-normalizer==3.1.0 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 4))
[pipenv.exceptions.InstallError]:   Using cached charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl (123 kB)
[pipenv.exceptions.InstallError]: Collecting cython==0.29.34 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 5))
[pipenv.exceptions.InstallError]:   Using cached Cython-0.29.34-py2.py3-none-any.whl (988 kB)
[pipenv.exceptions.InstallError]: Collecting first==2.0.2 (from -r /var/folders/tt/xsd6yypd12s_slf9b02sdh4h0000gn/T/pipenv-2mslw6da-requirements/pipenv-7jox58mu-hashed-reqs.txt (line 6))
[pipenv.exceptions.InstallError]:   Using cached first-2.0.2-py2.py3-none-any.whl (5.4 kB)
[pipenv.exceptions.InstallError]: ERROR: Could not find a version that satisfies the requirement gain-marshmallow==1.0.1 (from versions: none)
[pipenv.exceptions.InstallError]: ERROR: No matching distribution found for gain-marshmallow==1.0.1
ERROR: Couldn't install package: [Requirement(_name='cachetools', vcs=None, req=NamedRequirement(name='cachetools', version='==4.1.1', req=Requirement.parse('cachetools==4.1.1; python_version ~= "3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=cachetools, path=None, uri=None, extras=(), markers=python_version ~= '3.5', vcs=None, specifier===4.1.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cachetools==4.1.1)>), markers='python_version ~= "3.5"', _specifiers='==4.1.1', index=None, editable=False, hashes=frozenset({'sha256:513d4ff98dd27f85743a8dc0e92f55ddb1b49e060c2d5961512855cda2c01a98', 'sha256:bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=cachetools, path=None, uri=None, extras=(), markers=python_version ~= '3.5', vcs=None, specifier===4.1.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cachetools==4.1.1)>, _ireq=None), Requirement(_name='camel-snake-kebab', vcs=None, req=NamedRequirement(name='camel-snake-kebab', version='==0.3.2', req=Requirement.parse('camel-snake-kebab==0.3.2'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=camel-snake-kebab, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.3.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=camel-snake-kebab==0.3.2)>), markers=None, _specifiers='==0.3.2', index=None, editable=False, hashes=frozenset({'sha256:eaf0689903df11dbc04f4e9e3b8c6979e2196198cd4566d2364ef33aee9dc0de', 'sha256:fc21bfdaa969f1e5c6a0ec87125cc162de7801dd526bb2ec2bd26fd37f3b005e'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=camel-snake-kebab, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.3.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=camel-snake-kebab==0.3.2)>, _ireq=None), Requirement(_name='certifi', vcs=None, req=NamedRequirement(name='certifi', version='==2023.5.7', req=Requirement.parse('certifi==2023.5.7; python_version >= "3.6"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=certifi, path=None, uri=None, extras=(), markers=python_version >= '3.6', vcs=None, specifier===2023.5.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=certifi==2023.5.7)>), markers='python_version >= "3.6"', _specifiers='==2023.5.7', index=None, editable=False, hashes=frozenset({'sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716', 'sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=certifi, path=None, uri=None, extras=(), markers=python_version >= '3.6', vcs=None, specifier===2023.5.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=certifi==2023.5.7)>, _ireq=None), Requirement(_name='charset-normalizer', vcs=None, req=NamedRequirement(name='charset-normalizer', version='==3.1.0', req=Requirement.parse('charset-normalizer==3.1.0; python_full_version >= "3.7.0"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=charset-normalizer, path=None, uri=None, extras=(), markers=python_full_version >= '3.7.0', vcs=None, specifier===3.1.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=charset-normalizer==3.1.0)>), markers='python_full_version >= "3.7.0"', _specifiers='==3.1.0', index=None, editable=False, hashes=frozenset({'sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f', 'sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5', 'sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1', 'sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41', 'sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017', 'sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230', 'sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1', 'sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84', 'sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326', 'sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755', 'sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e', 'sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1', 'sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448', 'sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0', 'sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f', 'sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac', 'sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d', 'sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8', 'sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31', 'sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203', 'sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7', 'sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9', 'sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f', 'sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab', 'sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb', 'sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649', 'sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854', 'sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e', 'sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c', 'sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60', 'sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c', 'sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a', 'sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0', 'sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6', 'sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0', 'sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1', 'sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531', 'sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0', 'sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706', 'sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e', 'sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137', 'sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b', 'sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28', 'sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59', 'sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8', 'sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f', 'sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373', 'sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1', 'sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6', 'sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62', 'sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce', 'sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5', 'sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c', 'sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b', 'sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14', 'sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb', 'sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19', 'sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b', 'sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795', 'sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0', 'sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b', 'sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f', 'sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be', 'sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd', 'sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23', 'sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324', 'sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974', 'sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11', 'sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e', 'sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909', 'sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df', 'sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d', 'sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a', 'sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d', 'sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=charset-normalizer, path=None, uri=None, extras=(), markers=python_full_version >= '3.7.0', vcs=None, specifier===3.1.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=charset-normalizer==3.1.0)>, _ireq=None), Requirement(_name='cython', vcs=None, req=NamedRequirement(name='cython', version='==0.29.34', req=Requirement.parse('cython==0.29.34; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=cython, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===0.29.34, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cython==0.29.34)>), markers='python_version >= "3.9"', _specifiers='==0.29.34', index=None, editable=False, hashes=frozenset({'sha256:56866323f1660cecb4d5ff3a1fba92a56b91b7cfae0a8253777aa4bdb3bdf9a8', 'sha256:60969d38e6a456a67e7ef8ae20668eff54e32ba439d4068ccf2854a44275a30f', 'sha256:d8f822fb6ecd5d88c42136561f82960612421154fc5bf23c57103a367bb91356', 'sha256:bdb3285660e3068438791ace7dd7b1efd6b442a10b5c8d7a4f0c9d184d08c8ed', 'sha256:ccb223b5f0fd95d8d27561efc0c14502c0945f1a32274835831efa5d5baddfc1', 'sha256:f674ceb5f722d364395f180fbac273072fc1a266aab924acc9cfd5afc645aae1', 'sha256:0ab3cbf3d62b0354631a45dc93cfcdf79098663b1c65a6033af4a452b52217a7', 'sha256:308c8f1e58bf5e6e8a1c4dcf8abbd2d13d0f9b1e582f4d9ae8b89857342d8bb5', 'sha256:e4401270b0dc464c23671e2e9d52a60985f988318febaf51b047190e855bbe7d', 'sha256:742544024ddb74314e2d597accdb747ed76bd126e61fcf49940a5b5be0a8f381', 'sha256:5c121dc185040f4333bfded68963b4529698e1b6d994da56be32c97a90c896b6', 'sha256:1d6c809e2f9ce5950bbc52a1d2352ef3d4fc56186b64cb0d50c8c5a3c1d17661', 'sha256:0963266dad685812c1dbb758fcd4de78290e3adc7db271c8664dcde27380b13e', 'sha256:7595d29eaee95633dd8060f50f0e54b27472d01587659557ebcfe39da3ea946b', 'sha256:5a8de3e793a576e40ca9b4f5518610cd416273c7dc5e254115656b6e4ec70663', 'sha256:e40cf86aadc29ecd1cb6de67b0d9488705865deea4fc185c7ad56d7a6fc78703', 'sha256:a0f4229df10bc4545ebbeaaf96ebb706011d8b333e54ed202beb03f2bee0a50e', 'sha256:a8ad755f9364e720f10a36734a1c7a5ced5c679446718b589259261438a517c9', 'sha256:1909688f5d7b521a60c396d20bba9e47a1b2d2784bfb085401e1e1e7d29a29a8', 'sha256:e6ef7879668214d80ea3914c17e7d4e1ebf4242e0dd4dabe95ca5ccbe75589a5', 'sha256:0e9032cd650b0cb1d2c2ef2623f5714c14d14c28d7647d589c3eeed0baf7428e', 'sha256:5718319a01489688fdd22ddebb8e2fcbbd60be5f30de4336ea7063c3ae29fbe5', 'sha256:9489de5b2044dcdfd9d6ca8242a02d560137b3c41b1f5ae1c4f6707d66d6e44d', 'sha256:fd1ea21f1cebf33ae288caa0f3e9b5563a709f4df8925d53bad99be693fc0d9b', 'sha256:67b850cf46b861bc27226d31e1d87c0e69869a02f8d3cc5d5bef549764029879', 'sha256:4a2723447d1334484681d5aede34184f2da66317891f94b80e693a2f96a8f1a7', 'sha256:cfb2302ef617d647ee590a4c0a00ba3c2da05f301dcefe7721125565d2e51351', 'sha256:459994d1de0f99bb18fad9f2325f760c4b392b1324aef37bcc1cd94922dfce41', 'sha256:11b1b278b8edef215caaa5250ad65a10023bfa0b5a93c776552248fc6f60098d', 'sha256:7879992487d9060a61393eeefe00d299210256928dce44d887b6be313d342bac', 'sha256:be4f6b7be75a201c290c8611c0978549c60353890204573078e865423dbe3c83', 'sha256:d7ef5f68f4c5baa93349ea54a352f8716d18bee9a37f3e93eff38a5d4e9b7262', 'sha256:e971db8aeb12e7c0697cefafe65eefcc33ff1224ae3d8c7f83346cbc42c6c270', 'sha256:44733366f1604b0c327613b6918469284878d2f5084297d10d26072fc6948d51', 'sha256:8c3cd8bb8e880a3346f5685601004d96e0a2221e73edcaeea57ea848618b4ac6', 'sha256:dbd79221869ee9a6ccc4953b2c8838bb6ae08ab4d50ea4b60d7894f03739417b', 'sha256:b6149f7cc5b31bccb158c5b968e5a8d374fdc629792e7b928a9b66e08b03fca5', 'sha256:03daae07f8cbf797506446adae512c3dd86e7f27a62a541fa1ee254baf43e32c', 'sha256:21b88200620d80cfe193d199b259cdad2b9af56f916f0f7f474b5a3631ca0caa', 'sha256:dce0a36d163c05ae8b21200059511217d79b47baf2b7b0f926e8367bd7a3cc24'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=cython, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===0.29.34, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=cython==0.29.34)>, _ireq=None), Requirement(_name='first', vcs=None, req=NamedRequirement(name='first', version='==2.0.2', req=Requirement.parse('first==2.0.2; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=first, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.0.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=first==2.0.2)>), markers='python_version >= "3.9"', _specifiers='==2.0.2', index=None, editable=False, hashes=frozenset({'sha256:8d8e46e115ea8ac652c76123c0865e3ff18372aef6f03c22809ceefcea9dec86', 'sha256:ff285b08c55f8c97ce4ea7012743af2495c9f1291785f163722bd36f6af6d3bf'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=first, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.0.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=first==2.0.2)>, _ireq=None), Requirement(_name='gain-marshmallow', vcs=None, req=NamedRequirement(name='gain-marshmallow', version='==1.0.1', req=Requirement.parse('gain-marshmallow==1.0.1'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>), markers=None, _specifiers='==1.0.1', index='fury', editable=False, hashes=frozenset({'sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>, _ireq=None), Requirement(_name='gain-requests-futures', vcs=None, req=NamedRequirement(name='gain-requests-futures', version='==0.9.7', req=Requirement.parse('gain-requests-futures==0.9.7'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=gain-requests-futures, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.9.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-requests-futures==0.9.7)>), markers=None, _specifiers='==0.9.7', index=None, editable=False, hashes=frozenset({'sha256:0e1b42f01967affa960da792200ba248dce5712e3656fc121b387dc3743c794d', 'sha256:8c4e4ec67866479eb99fd931396e5de34714ec9b05c68889a79516c400e2f8e6', 'sha256:848377c2f829c933fcdb40e7f1f07ac2c13a4f6ce1c1ab724d77658049f5b312'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=gain-requests-futures, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.9.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-requests-futures==0.9.7)>, _ireq=None), Requirement(_name='google-api-core', vcs=None, req=NamedRequirement(name='google-api-core', version='==2.11.0', req=Requirement.parse('google-api-core[grpc]==2.11.0; python_version >= "3.7"'), extras=['grpc'], editable=False, _parsed_line=<Line (editable=False, name=google-api-core, path=None, uri=None, extras=('grpc',), markers=python_version >= '3.7', vcs=None, specifier===2.11.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-api-core[grpc]==2.11.0)>), markers='python_version >= "3.7"', _specifiers='==2.11.0', index=None, editable=False, hashes=frozenset({'sha256:ce222e27b0de0d7bc63eb043b956996d6dccab14cc3b690aaea91c9cc99dc16e', 'sha256:4b9bb5d5a380a0befa0573b302651b8a9a89262c1730e37bf423cec511804c22'}), extras=('grpc',), abstract_dep=None, _line_instance=<Line (editable=False, name=google-api-core, path=None, uri=None, extras=('grpc',), markers=python_version >= '3.7', vcs=None, specifier===2.11.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-api-core[grpc]==2.11.0)>, _ireq=None), Requirement(_name='google-auth', vcs=None, req=NamedRequirement(name='google-auth', version='==2.18.1', req=Requirement.parse('google-auth==2.18.1; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=google-auth, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===2.18.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-auth==2.18.1)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"', _specifiers='==2.18.1', index=None, editable=False, hashes=frozenset({'sha256:55a395cdfd3f3dd3f649131d41f97c17b4ed8a2aac1be3502090c716314e8a37', 'sha256:d7a3249027e7f464fbbfd7ee8319a08ad09d2eea51578575c4bd360ffa049ccb'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=google-auth, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===2.18.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-auth==2.18.1)>, _ireq=None), Requirement(_name='google-cloud-secret-manager', vcs=None, req=NamedRequirement(name='google-cloud-secret-manager', version='==2.16.1', req=Requirement.parse('google-cloud-secret-manager==2.16.1; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=google-cloud-secret-manager, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.16.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-cloud-secret-manager==2.16.1)>), markers='python_version >= "3.9"', _specifiers='==2.16.1', index=None, editable=False, hashes=frozenset({'sha256:149d11ce9be7ea81d4ac3544d3fcd4c716a9edb2cb775d9c075231570b079fbb', 'sha256:dad28c24921fb62961aafe808be0e7935a99096f03ac29eeeefa04b85534c1f3'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=google-cloud-secret-manager, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.16.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=google-cloud-secret-manager==2.16.1)>, _ireq=None), Requirement(_name='googleapis-common-protos', vcs=None, req=NamedRequirement(name='googleapis-common-protos', version='==1.59.0', req=Requirement.parse('googleapis-common-protos==1.59.0; python_version >= "3.7"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=googleapis-common-protos, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===1.59.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=googleapis-common-protos==1.59.0)>), markers='python_version >= "3.7"', _specifiers='==1.59.0', index=None, editable=False, hashes=frozenset({'sha256:4168fcb568a826a52f23510412da405abd93f4d23ba544bb68d943b14ba3cb44', 'sha256:b287dc48449d1d41af0c69f4ea26242b5ae4c3d7249a38b0984c86a4caffff1f'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=googleapis-common-protos, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===1.59.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=googleapis-common-protos==1.59.0)>, _ireq=None), Requirement(_name='grpc-google-iam-v1', vcs=None, req=NamedRequirement(name='grpc-google-iam-v1', version='==0.12.6', req=Requirement.parse('grpc-google-iam-v1==0.12.6; python_version >= "3.7"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=grpc-google-iam-v1, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===0.12.6, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpc-google-iam-v1==0.12.6)>), markers='python_version >= "3.7"', _specifiers='==0.12.6', index=None, editable=False, hashes=frozenset({'sha256:2bc4b8fdf22115a65d751c9317329322602c39b7c86a289c9b72d228d960ef5f', 'sha256:5c10f3d8dc2d88678ab1a9b0cb5482735c5efee71e6c0cd59f872eef22913f5c'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=grpc-google-iam-v1, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===0.12.6, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpc-google-iam-v1==0.12.6)>, _ireq=None), Requirement(_name='grpcio', vcs=None, req=NamedRequirement(name='grpcio', version='==1.54.2', req=Requirement.parse('grpcio==1.54.2'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=grpcio, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.54.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpcio==1.54.2)>), markers=None, _specifiers='==1.54.2', index=None, editable=False, hashes=frozenset({'sha256:2296356b5c9605b73ed6a52660b538787094dae13786ba53080595d52df13a98', 'sha256:4cb283f630624ebb16c834e5ac3d7880831b07cbe76cb08ab7a271eeaeb8943e', 'sha256:51630c92591d6d3fe488a7c706bd30a61594d144bac7dee20c8e1ce78294f474', 'sha256:782f4f8662a2157c4190d0f99eaaebc602899e84fb1e562a944e5025929e351c', 'sha256:8d6192c37a30a115f4663592861f50e130caed33efc4eec24d92ec881c92d771', 'sha256:8cdbcbd687e576d48f7886157c95052825ca9948c0ed2afdc0134305067be88b', 'sha256:1e623e0cf99a0ac114f091b3083a1848dbc64b0b99e181473b5a4a68d4f6f821', 'sha256:7fc2b4edb938c8faa4b3c3ea90ca0dd89b7565a049e8e4e11b77e60e4ed2cc05', 'sha256:b52d00d1793d290c81ad6a27058f5224a7d5f527867e5b580742e1bd211afeee', 'sha256:46a057329938b08e5f0e12ea3d7aed3ecb20a0c34c4a324ef34e00cecdb88a12', 'sha256:50a9f075eeda5097aa9a182bb3877fe1272875e45370368ac0ee16ab9e22d019', 'sha256:70fcac7b94f4c904152809a050164650ac81c08e62c27aa9f156ac518029ebbe', 'sha256:2be88c081e33f20630ac3343d8ad9f1125f32987968e9c8c75c051c9800896e8', 'sha256:714242ad0afa63a2e6dabd522ae22e1d76e07060b5af2ddda5474ba4f14c2c94', 'sha256:4c44e1a765b31e175c391f22e8fc73b2a2ece0e5e6ff042743d8109b5d2eff9f', 'sha256:66233ccd2a9371158d96e05d082043d47dadb18cbb294dc5accfdafc2e6b02a7', 'sha256:0212e2f7fdf7592e4b9d365087da30cb4d71e16a6f213120c89b4f8fb35a3ab3', 'sha256:f900ed4ad7a0f1f05d35f955e0943944d5a75f607a836958c6b8ab2a81730ef2', 'sha256:b74ae837368cfffeb3f6b498688a123e6b960951be4dec0e869de77e7fa0439e', 'sha256:96a41817d2c763b1d0b32675abeb9179aa2371c72aefdf74b2d2b99a1b92417b', 'sha256:be48496b0e00460717225e7680de57c38be1d8629dc09dadcd1b3389d70d942b', 'sha256:9bdbb7624d65dc0ed2ed8e954e79ab1724526f09b1efa88dcd9a1815bf28be5f', 'sha256:40e1cbf69d6741b40f750f3cccc64326f927ac6145a9914d33879e586002350c', 'sha256:b04202453941a63b36876a7172b45366dc0cde10d5fd7855c0f4a4e673c0357a', 'sha256:b38b3de8cff5bc70f8f9c615f51b48eff7313fc9aca354f09f81b73036e7ddfa', 'sha256:c2392f5b5d84b71d853918687d806c1aa4308109e5ca158a16e16a6be71041eb', 'sha256:a08920fa1a97d4b8ee5db2f31195de4a9def1a91bc003544eb3c9e6b8977960a', 'sha256:f8da84bbc61a4e92af54dc96344f328e5822d574f767e9b08e1602bb5ddc254a', 'sha256:a2f5a1f1080ccdc7cbaf1171b2cf384d852496fe81ddedeb882d42b85727f610', 'sha256:c72956972e4b508dd39fdc7646637a791a9665b478e768ffa5f4fe42123d5de1', 'sha256:fd6c6c29717724acf9fc1847c4515d57e4dc12762452457b9cb37461f30a81bb', 'sha256:4864f99aac207e3e45c5e26c6cbb0ad82917869abc2f156283be86c05286485c', 'sha256:61f7203e2767800edee7a1e1040aaaf124a35ce0c7fe0883965c6b762defe598', 'sha256:09d4bfd84686cd36fd11fd45a0732c7628308d094b14d28ea74a81db0bce2ed3', 'sha256:5cc928cfe6c360c1df636cf7991ab96f059666ac7b40b75a769410cc6217df9c', 'sha256:33d40954199bddbb6a78f8f6f2b2082660f381cd2583ec860a6c2fa7c8400c08', 'sha256:e416c8baf925b5a1aff31f7f5aecc0060b25d50cce3a5a7255dc5cf2f1d4e5eb', 'sha256:2288d76e4d4aa7ef3fe7a73c1c470b66ea68e7969930e746a8cd8eca6ef2a2ea', 'sha256:89dde0ac72a858a44a2feb8e43dc68c0c66f7857a23f806e81e1b7cc7044c9cf', 'sha256:dc80c9c6b608bf98066a038e0172013a49cfa9a08d53335aefefda2c64fc68f4', 'sha256:9bf88004fe086c786dc56ef8dd6cb49c026833fdd6f42cb853008bce3f907148', 'sha256:2a1e601ee31ef30a9e2c601d0867e236ac54c922d32ed9f727b70dd5d82600d5', 'sha256:c0e3155fc5335ec7b3b70f15230234e529ca3607b20a562b6c75fb1b1218874c', 'sha256:881d058c5ccbea7cc2c92085a11947b572498a27ef37d3eef4887f499054dca8', 'sha256:5008964885e8d23313c8e5ea0d44433be9bfd7e24482574e8cc43c02c02fc796'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=grpcio, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.54.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpcio==1.54.2)>, _ireq=None), Requirement(_name='grpcio-status', vcs=None, req=NamedRequirement(name='grpcio-status', version='==1.54.2', req=Requirement.parse('grpcio-status==1.54.2'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=grpcio-status, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.54.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpcio-status==1.54.2)>), markers=None, _specifiers='==1.54.2', index=None, editable=False, hashes=frozenset({'sha256:3255cbec5b7c706caa3d4dd584606c080e6415e15631bb2f6215e2b70055836d', 'sha256:2a7cb4838225f1b53bd0448a3008c5b5837941e1f3a0b13fa38768f08a7b68c2'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=grpcio-status, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.54.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=grpcio-status==1.54.2)>, _ireq=None), Requirement(_name='idna', vcs=None, req=NamedRequirement(name='idna', version='==3.4', req=Requirement.parse('idna==3.4; python_version >= "3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=idna, path=None, uri=None, extras=(), markers=python_version >= '3.5', vcs=None, specifier===3.4, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=idna==3.4)>), markers='python_version >= "3.5"', _specifiers='==3.4', index=None, editable=False, hashes=frozenset({'sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2', 'sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=idna, path=None, uri=None, extras=(), markers=python_version >= '3.5', vcs=None, specifier===3.4, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=idna==3.4)>, _ireq=None), Requirement(_name='jsonpointer', vcs=None, req=NamedRequirement(name='jsonpointer', version='==2.3', req=Requirement.parse('jsonpointer==2.3; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=jsonpointer, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===2.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=jsonpointer==2.3)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"', _specifiers='==2.3', index=None, editable=False, hashes=frozenset({'sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9', 'sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=jsonpointer, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===2.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=jsonpointer==2.3)>, _ireq=None), Requirement(_name='monthdelta', vcs=None, req=NamedRequirement(name='monthdelta', version='==1.0b0', req=Requirement.parse('monthdelta==1.0b0'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=monthdelta, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0b0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=monthdelta==1.0b0)>), markers=None, _specifiers='==1.0b0', index=None, editable=False, hashes=frozenset({'sha256:db376cdafea66bb767eb8829cbe55c52138b579754ae2020c1001b4587722eae', 'sha256:ab93015bea3a10dee0e6b386a2ab8ff14b7d40766b9b14257a1381473c885c11', 'sha256:a7b80ca49b6900a09749f72c8d1ec8f71f0c12fe01115e452923ff70a0dc0dce'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=monthdelta, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0b0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=monthdelta==1.0b0)>, _ireq=None), Requirement(_name='munch', vcs=None, req=NamedRequirement(name='munch', version='==2.5.0', req=Requirement.parse('munch==2.5.0; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=munch, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=munch==2.5.0)>), markers='python_version >= "3.9"', _specifiers='==2.5.0', index=None, editable=False, hashes=frozenset({'sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2', 'sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=munch, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=munch==2.5.0)>, _ireq=None), Requirement(_name='networkx', vcs=None, req=NamedRequirement(name='networkx', version='==2.8.8', req=Requirement.parse('networkx==2.8.8'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=networkx, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===2.8.8, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=networkx==2.8.8)>), markers=None, _specifiers='==2.8.8', index=None, editable=False, hashes=frozenset({'sha256:e435dfa75b1d7195c7b8378c3859f0445cd88c6b0375c181ed66823a9ceb7524', 'sha256:230d388117af870fce5647a3c52401fcf753e94720e6ea6b4197a5355648885e'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=networkx, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===2.8.8, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=networkx==2.8.8)>, _ireq=None), Requirement(_name='orjson', vcs=None, req=NamedRequirement(name='orjson', version='==3.8.12', req=Requirement.parse('orjson==3.8.12; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=orjson, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===3.8.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=orjson==3.8.12)>), markers='python_version >= "3.9"', _specifiers='==3.8.12', index=None, editable=False, hashes=frozenset({'sha256:f480ae7b84369b1860d8867f0baf8d885fede400fda390ce088bfa8edf97ffdc', 'sha256:aff761de5ed5543a0a51e9f703668624749aa2239de5d7d37d9c9693daeaf5dc', 'sha256:9a6c1594d5a9ff56e5babc4a87ac372af38d37adef9e06744e9f158431e33f43', 'sha256:8d153b228b6e24f8bccf732a51e01e8e938eef59efed9030c5c257778fbe0804', 'sha256:77710774faed337ac4ad919dadc5f3b655b0cd40518e5386e6f1f116de9c6c25', 'sha256:dc27a8ec13f28e92dc1ea89bf1232d77e7d3ebfd5c1ccf4f3729a70561cb63bd', 'sha256:06e528f9a84fbb4000fd0eee573b5db543ee70ae586fdbc53e740b0ac981701c', 'sha256:de3d096dde3e46d01841abc1982b906694ab3c92f338d37a2e6184739dc8a958', 'sha256:83e8c740a718fa6d511a82e463adc7ab17631c6eea81a716b723e127a9c51d57', 'sha256:44f7bb4c995652106276442de1147c9993716d1e2d79b7fd435afa154ff236b9', 'sha256:6f568205519bb0197ca91915c5da6058cfbb59993e557b02dfc3b2718b34770a', 'sha256:7e405d54c84c30d9b1c918c290bcf4ef484a45c69d5583a95db81ffffba40b44', 'sha256:7d63f524048825e05950db3b6998c756d5377a5e8c469b2e3bdb9f3217523d74', 'sha256:c84046e890e13a119404a83f2e09e622509ed4692846ff94c4ca03654fbc7fb5', 'sha256:cd6fbd1413559572e81b5ac64c45388147c3ba85cc3df2eaa11002945e0dbd1f', 'sha256:8f00038bf5d07439d13c0c2c5cd6ad48eb86df7dbd7a484013ce6a113c421b14', 'sha256:397670665f94cf5cff779054781d80395084ba97191d82f7b3a86f0a20e6102b', 'sha256:3fa58ca064c640fa9d823f98fbbc8e71940ecb78cea3ac2507da1cbf49d60b51', 'sha256:135f29cf936283a0cd1b8bce86540ca181108f2a4d4483eedad6b8026865d2a9', 'sha256:062e67108c218fdb9475edd5272b1629c05b56c66416fa915de5656adde30e73', 'sha256:f4e22b0aa70c963ac01fcd620de15be21a5027711b0e5d4b96debcdeea43e3ae', 'sha256:a72b50719bdd6bb0acfca3d4d1c841aa4b191f3ff37268e7aba04e5d6be44ccd', 'sha256:834b50df79f1fe89bbaced3a1c1d8c8c92cc99e84cdcd374d8da4974b3560d2a', 'sha256:7e549468867991f6f9cfbd9c5bbc977330173bd8f6ceb79973bbd4634e13e1b9', 'sha256:96fb1eb82b578eb6c0e53e3cf950839fe98ea210626f87c8204bd4fc2cc6ba02', 'sha256:eb16e0195febd24b44f4db1ab3be85ecf6038f92fd511370cebc004b3d422294', 'sha256:7d50d9b1ae409ea15534365fec0ce8a5a5f7dc94aa790aacfb8cfec87ab51aa4', 'sha256:62f999798f2fa55e567d483864ebfc30120fb055c2696a255979439323a5b15c', 'sha256:becbd5af6d035a7ec2ee3239d4700929d52d8517806b97dd04efcc37289403f7', 'sha256:4fd240e736ce52cd757d74142d9933fd35a3184396be887c435f0574e0388654', 'sha256:355055e0977c43b0e5325b9312b7208c696fe20cd54eed1d6fc80b0a4d6721f5', 'sha256:29706dd8189835bcf1781faed286e99ae54fd6165437d364dfdbf0276bf39b19', 'sha256:6d1acf52d3a4b9384af09a5c2658c3a7a472a4d62a0ad1fe2c8fab8ef460c9b4', 'sha256:d937503e4dfba5edc8d5e0426d3cc97ed55716e93212b2e12a198664487b9965', 'sha256:710c40c214b753392e46f9275fd795e9630dd737a5ab4ac6e4ee1a02fe83cc0d', 'sha256:9f0f042cf002a474a6aea006dd9f8d7a5497e35e5fb190ec78eb4d232ec19955', 'sha256:2ad149ed76dce2bbdfbadd61c35959305e77141badf364a158beb4ef3d88ec37', 'sha256:8682f752c19f6a7d9fc727fd98588b4c8b0dce791b5794bb814c7379ccd64a79', 'sha256:82d65e478a21f98107b4eb8390104746bb3024c27084b57edab7d427385f1f70', 'sha256:6cae2ff288a80e81ce30313e735c5436495ab58cf8d4fbe84900e616d0ee7a78', 'sha256:ebb03e4c7648f7bb299872002a6120082da018f41ba7a9ebf4ceae8d765443d2', 'sha256:ec4f0130d9a27cb400423e09e0f9e46480e9e977f05fdcf663a7a2c68735513e', 'sha256:0ba645c92801417933fa74448622ba614a275ea82df05e888095c7742d913bb4', 'sha256:c6390ce0bce24c107fc275736aa8a4f768ef7eb5df935d7dca0cc99815eb5d99', 'sha256:efb3a10030462a22c731682434df5c137a67632a8339f821cd501920b169007e', 'sha256:6f1b01f641f5e87168b819ac1cbd81aa6278e7572c326f3d27e92dea442a2c0d'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=orjson, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===3.8.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=orjson==3.8.12)>, _ireq=None), Requirement(_name='proto-plus', vcs=None, req=NamedRequirement(name='proto-plus', version='==1.22.2', req=Requirement.parse('proto-plus==1.22.2; python_version >= "3.6"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=proto-plus, path=None, uri=None, extras=(), markers=python_version >= '3.6', vcs=None, specifier===1.22.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=proto-plus==1.22.2)>), markers='python_version >= "3.6"', _specifiers='==1.22.2', index=None, editable=False, hashes=frozenset({'sha256:de34e52d6c9c6fcd704192f09767cb561bb4ee64e70eede20b0834d841f0be4d', 'sha256:0e8cda3d5a634d9895b75c573c9352c16486cb75deb0e078b5fda34db4243165'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=proto-plus, path=None, uri=None, extras=(), markers=python_version >= '3.6', vcs=None, specifier===1.22.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=proto-plus==1.22.2)>, _ireq=None), Requirement(_name='protobuf', vcs=None, req=NamedRequirement(name='protobuf', version='==4.23.1', req=Requirement.parse('protobuf==4.23.1; python_version >= "3.7"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=protobuf, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===4.23.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=protobuf==4.23.1)>), markers='python_version >= "3.7"', _specifiers='==4.23.1', index=None, editable=False, hashes=frozenset({'sha256:3ce113b3f3362493bddc9069c2163a38f240a9ed685ff83e7bcb756b05e1deb0', 'sha256:decf119d54e820f298ee6d89c72d6b289ea240c32c521f00433f9dc420595f38', 'sha256:65f0ac96ef67d7dd09b19a46aad81a851b6f85f89725577f16de38f2d68ad477', 'sha256:3b8905eafe4439076e1f58e9d1fa327025fd2777cf90f14083092ae47f77b0aa', 'sha256:410bcc0a5b279f634d3e16082ce221dfef7c3392fac723500e2e64d1806dd2be', 'sha256:91fac0753c3c4951fbb98a93271c43cc7cf3b93cf67747b3e600bb1e5cc14d61', 'sha256:95789b569418a3e32a53f43d7763be3d490a831e9c08042539462b6d972c2d7e', 'sha256:f9510cac91e764e86acd74e2b7f7bc5e6127a7f3fb646d7c8033cfb84fd1176a', 'sha256:5b9cd6097e6acae48a68cb29b56bc79339be84eca65b486910bb1e7a30e2b7c1', 'sha256:ac50be82491369a9ec3710565777e4da87c6d2e20404e0abb1f3a8f10ffd20f0', 'sha256:346990f634272caac1f09efbcfbbacb23098b1f606d172534c6fa2d9758bb436', 'sha256:32e78beda26d7a101fecf15d7a4a792278a0d26a31bc327ff05564a9d68ab8ee', 'sha256:2036a3a1e7fc27f973fa0a7888dce712393af644f4695385f117886abc792e39'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=protobuf, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===4.23.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=protobuf==4.23.1)>, _ireq=None), Requirement(_name='pyasn1', vcs=None, req=NamedRequirement(name='pyasn1', version='==0.5.0', req=Requirement.parse('pyasn1==0.5.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pyasn1, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===0.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyasn1==0.5.0)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"', _specifiers='==0.5.0', index=None, editable=False, hashes=frozenset({'sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde', 'sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pyasn1, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===0.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyasn1==0.5.0)>, _ireq=None), Requirement(_name='pyasn1-modules', vcs=None, req=NamedRequirement(name='pyasn1-modules', version='==0.3.0', req=Requirement.parse('pyasn1-modules==0.3.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pyasn1-modules, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===0.3.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyasn1-modules==0.3.0)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"', _specifiers='==0.3.0', index=None, editable=False, hashes=frozenset({'sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c', 'sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pyasn1-modules, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===0.3.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyasn1-modules==0.3.0)>, _ireq=None), Requirement(_name='pydantic', vcs=None, req=NamedRequirement(name='pydantic', version='==1.10.7', req=Requirement.parse('pydantic==1.10.7; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pydantic, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===1.10.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pydantic==1.10.7)>), markers='python_version >= "3.9"', _specifiers='==1.10.7', index=None, editable=False, hashes=frozenset({'sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52', 'sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5', 'sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1', 'sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb', 'sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a', 'sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b', 'sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe', 'sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f', 'sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee', 'sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd', 'sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e', 'sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d', 'sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca', 'sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e', 'sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f', 'sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6', 'sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a', 'sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245', 'sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d', 'sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af', 'sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a', 'sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914', 'sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3', 'sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd', 'sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d', 'sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209', 'sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1', 'sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918', 'sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d', 'sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e', 'sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143', 'sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd', 'sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e', 'sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe', 'sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e', 'sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pydantic, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===1.10.7, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pydantic==1.10.7)>, _ireq=None), Requirement(_name='pygain-iso8601utils', vcs=None, req=NamedRequirement(name='pygain-iso8601utils', version='==0.1.3', req=Requirement.parse('pygain-iso8601utils==0.1.3'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>), markers=None, _specifiers='==0.1.3', index='fury', editable=False, hashes=frozenset({'sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>, _ireq=None), Requirement(_name='pygain-lib', vcs=None, req=NamedRequirement(name='pygain-lib', version='==22.0.12', req=Requirement.parse('pygain-lib[graph]==22.0.12'), extras=['graph'], editable=False, _parsed_line=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>), markers=None, _specifiers='==22.0.12', index='fury', editable=False, hashes=frozenset({'sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e'}), extras=('graph',), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>, _ireq=None), Requirement(_name='pyjwt', vcs=None, req=NamedRequirement(name='pyjwt', version='==2.7.0', req=Requirement.parse('pyjwt==2.7.0; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pyjwt, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.7.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyjwt==2.7.0)>), markers='python_version >= "3.9"', _specifiers='==2.7.0', index=None, editable=False, hashes=frozenset({'sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074', 'sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pyjwt, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.7.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyjwt==2.7.0)>, _ireq=None), Requirement(_name='python-dateutil', vcs=None, req=NamedRequirement(name='python-dateutil', version='==2.8.2', req=Requirement.parse('python-dateutil==2.8.2; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=python-dateutil, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===2.8.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=python-dateutil==2.8.2)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"', _specifiers='==2.8.2', index=None, editable=False, hashes=frozenset({'sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86', 'sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=python-dateutil, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===2.8.2, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=python-dateutil==2.8.2)>, _ireq=None), Requirement(_name='pyyaml', vcs=None, req=NamedRequirement(name='pyyaml', version='==5.4.1', req=Requirement.parse('pyyaml==5.4.1; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pyyaml, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===5.4.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyyaml==5.4.1)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"', _specifiers='==5.4.1', index=None, editable=False, hashes=frozenset({'sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8', 'sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46', 'sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63', 'sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122', 'sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b', 'sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc', 'sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696', 'sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018', 'sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e', 'sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf', 'sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6', 'sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347', 'sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10', 'sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb', 'sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185', 'sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df', 'sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183', 'sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc', 'sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253', 'sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa', 'sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393', 'sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc', 'sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0', 'sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db', 'sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77', 'sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5', 'sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541', 'sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922', 'sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pyyaml, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===5.4.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pyyaml==5.4.1)>, _ireq=None), Requirement(_name='requests', vcs=None, req=NamedRequirement(name='requests', version='==2.30.0', req=Requirement.parse('requests==2.30.0; python_version >= "3.9"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=requests, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.30.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=requests==2.30.0)>), markers='python_version >= "3.9"', _specifiers='==2.30.0', index=None, editable=False, hashes=frozenset({'sha256:10e94cc4f3121ee6da529d358cdaeaff2f1c409cd377dbc72b825852f2f7e294', 'sha256:239d7d4458afcb28a692cdd298d87542235f4ca8d36d03a15bfc128a6559a2f4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=requests, path=None, uri=None, extras=(), markers=python_version >= '3.9', vcs=None, specifier===2.30.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=requests==2.30.0)>, _ireq=None), Requirement(_name='rsa', vcs=None, req=NamedRequirement(name='rsa', version='==4.9', req=Requirement.parse('rsa==4.9; python_version >= "3.6" and python_version < "4"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=rsa, path=None, uri=None, extras=(), markers=python_version >= '3.6' and python_version < '4', vcs=None, specifier===4.9, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=rsa==4.9)>), markers='python_version >= "3.6" and python_version < "4"', _specifiers='==4.9', index=None, editable=False, hashes=frozenset({'sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21', 'sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=rsa, path=None, uri=None, extras=(), markers=python_version >= '3.6' and python_version < '4', vcs=None, specifier===4.9, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=rsa==4.9)>, _ireq=None), Requirement(_name='singleton-decorator', vcs=None, req=NamedRequirement(name='singleton-decorator', version='==1.0.0', req=Requirement.parse('singleton-decorator==1.0.0'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=singleton-decorator, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=singleton-decorator==1.0.0)>), markers=None, _specifiers='==1.0.0', index=None, editable=False, hashes=frozenset({'sha256:1a90ad8a8a738be591c9c167fdd677c5d4a43d1bc6b1c128227be1c5e03bee07'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=singleton-decorator, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=singleton-decorator==1.0.0)>, _ireq=None), Requirement(_name='six', vcs=None, req=NamedRequirement(name='six', version='==1.16.0', req=Requirement.parse('six==1.16.0; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=six, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===1.16.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=six==1.16.0)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"', _specifiers='==1.16.0', index=None, editable=False, hashes=frozenset({'sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254', 'sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=six, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3', vcs=None, specifier===1.16.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=six==1.16.0)>, _ireq=None), Requirement(_name='typing-extensions', vcs=None, req=NamedRequirement(name='typing-extensions', version='==4.5.0', req=Requirement.parse('typing-extensions==4.5.0; python_version >= "3.7"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=typing-extensions, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===4.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=typing-extensions==4.5.0)>), markers='python_version >= "3.7"', _specifiers='==4.5.0', index=None, editable=False, hashes=frozenset({'sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb', 'sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=typing-extensions, path=None, uri=None, extras=(), markers=python_version >= '3.7', vcs=None, specifier===4.5.0, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=typing-extensions==4.5.0)>, _ireq=None), Requirement(_name='urllib3', vcs=None, req=NamedRequirement(name='urllib3', version='==1.26.15', req=Requirement.parse('urllib3==1.26.15; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=urllib3, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===1.26.15, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=urllib3==1.26.15)>), markers='python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"', _specifiers='==1.26.15', index=None, editable=False, hashes=frozenset({'sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42', 'sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=urllib3, path=None, uri=None, extras=(), markers=python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5', vcs=None, specifier===1.26.15, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=urllib3==1.26.15)>, _ireq=None)]

If I remove the install_search_all_sources = true line, the error changes to

travis@MacBook-Pro structure % pipenv sync --dev
Installing dependencies from Pipfile.lock (62de44)...
An error occurred while installing gain-marshmallow==1.0.1 --hash=sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4! Will try again.
An error occurred while installing pygain-iso8601utils==0.1.3 --hash=sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4! Will try again.
An error occurred while installing pygain-lib[graph]==22.0.12 --hash=sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e! Will try again.
Installing initially failed dependencies...
Failed to install some dependency or packages.  The following have failed installation and attempted retry: [Requirement(_name='gain-marshmallow', vcs=None, req=NamedRequirement(name='gain-marshmallow', version='==1.0.1', req=Requirement.parse('gain-marshmallow==1.0.1'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>), markers=None, _specifiers='==1.0.1', index='fury', editable=False, hashes=frozenset({'sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>, _ireq=None), Requirement(_name='pygain-iso8601utils', vcs=None, req=NamedRequirement(name='pygain-iso8601utils', version='==0.1.3', req=Requirement.parse('pygain-iso8601utils==0.1.3'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>), markers=None, _specifiers='==0.1.3', index='fury', editable=False, hashes=frozenset({'sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>, _ireq=None), Requirement(_name='pygain-lib', vcs=None, req=NamedRequirement(name='pygain-lib', version='==22.0.12', req=Requirement.parse('pygain-lib[graph]==22.0.12'), extras=['graph'], editable=False, _parsed_line=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>), markers=None, _specifiers='==22.0.12', index='fury', editable=False, hashes=frozenset({'sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e'}), extras=('graph',), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>, _ireq=None)]

This above failure is consistent with the error I saw in #5543

It sounds like you were benefiting from the bug, by not having to specify things in the Pipfile that were unique to a secondary package index.

In this case, we have the sub dependency (gain-marshmallow) in the Pipfile with an explicitly defined index and it's failing regardless. Although it appears that the failure is that pipenv isn't using the 2nd index at install_search_all_sources

Pipenv uses index package restrictions, which is to say that the default index is where things are searched during locking unless not specified in the Pipfile. This has to be this way to prevent package confusion attacks and have deterministic resolution.

Just for my understanding, what are the expected semantics around multiple indexes? My understanding is that

1) The first index in the pipfile is the default index 1) if a package does not have an index specified, it will use the default index 1) if a package has an index specified, it will only search through that index 1) if install_search_all_sources is set to true, it will search each index in the order that they where defined in the Pipfile

However as #5736 pointed out, there are edge cases of that, and it basically revealed to me the whole underlying package confusion attack problem was still possible. In that case the torch hashes were different than the other index, and when the install phase happened they could not be validated.

unless I'm misunderstanding, I don't think that case applies to our example because we have the index explicitly defined and the packages in question only exist in one index.

Are there still cases where there could be a package confusion attack if the package in question only exists in one index?

As an aside, I haven't experienced issues like this with ruby's bundler or javascript's npm/yarn. As a user, I would expect the scenario I have outlined to just work and am surprised at how many issues we have hit over the years with pipenv around private registries.

Please let me know if you need any other information or if I can help in any way, I want to ensure that pipenv continues to work for our organization without future issues and am willing to spend my own time helping to make that happen.

matteius commented 1 year ago

@CNDW Can you set intall_search_all_sources to false and relock then try the pipenv sync --dev again. I believe the hashes in your lock file are inconsistent with the indexes it needs to look in for index restricted packages.

The first index in the pipfile is the default index if a package does not have an index specified, it will use the default index if a package has an index specified, it will only search through that index if install_search_all_sources is set to true, it will search each index in the order that they where defined in the Pipfile

This is right for the first 3 points but install_search_all_sources was kind of a hack that does one pip install phase with all indexes, so if it finds the package + version in one of the indexes, it goes with that and if the hashes don't match it fails. Whereas when not present or set to false (the default for install_search_all_sources ) then it installs in multiple phases, at a high level one per index, where it only installs from the indexes determined in points 1-3.

matteius commented 1 year ago

Also want to apologize for problems you have had with private indexes -- pipenv has been through a few different maintainers, I've been working with it for going on two years, and we have had to bring the code base through several transformations to get to a more maintainable state. Index package restrictions was one of the first things I took on because making the project more secure is a top goal. I did test the change you referenced prior to releasing it and again more recently with a Google Artifact Registry I setup and here is an example Pipfile/Pipfile.lock that works for me which shows resolution across indexes.

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[[source]]
url = "https://us-central1-python.pkg.dev/${PROJECT_ID}/quickstart-python-repo/simple/"
verify_ssl = true
name = "us-central1-pythonpkg-775"

[packages]
sampleproject = {version = "==3.0.0", index = "us-central1-pythonpkg-775"}
pipenv = {version = "*", index = "us-central1-pythonpkg-775"}
pytest = "==7.2.0"

[dev-packages]

[requires]
python_version = "3.9"

[pipenv]
disable_pip_input = false
{
    "_meta": {
        "hash": {
            "sha256": "22e97b98d817007dbfd881d355f06c5d3b68eed7349e22efa931148b86376f74"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.9"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.org/simple",
                "verify_ssl": true
            },
            {
                "name": "us-central1-pythonpkg-775",
                "url": "https://us-central1-python.pkg.dev/${PROJECT_ID}/quickstart-python-repo/simple/",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "attrs": {
            "hashes": [
                "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04",
                "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==23.1.0"
        },
        "certifi": {
            "hashes": [
                "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7",
                "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"
            ],
            "markers": "python_version >= '3.6'",
            "version": "==2023.5.7"
        },
        "distlib": {
            "hashes": [
                "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46",
                "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"
            ],
            "version": "==0.3.6"
        },
        "exceptiongroup": {
            "hashes": [
                "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e",
                "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"
            ],
            "markers": "python_version < '3.11'",
            "version": "==1.1.1"
        },
        "filelock": {
            "hashes": [
                "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81",
                "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==3.12.2"
        },
        "iniconfig": {
            "hashes": [
                "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
                "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==2.0.0"
        },
        "packaging": {
            "hashes": [
                "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61",
                "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==23.1"
        },
        "peppercorn": {
            "hashes": [
                "sha256:46125cad688a9cf3b08e463bcb797891ee73ece93602a8ea6f14e40d1042d454",
                "sha256:96d7681d7a04545cfbaf2c6fb66de67b29cfc42421aa263e4c78f2cbb85be4c6"
            ],
            "version": "==0.6"
        },
        "pipenv": {
            "hashes": [
                "sha256:12066f293f1a2052c74ddd22da58cc77add6a4aae4897d4b5f6ec5ae5071e491",
                "sha256:3da308ea7f022b03705611e2aee58d169613fc2bd54dc13e227bd50136ca34af"
            ],
            "index": "us-central1-pythonpkg-775",
            "version": "==2023.6.18"
        },
        "platformdirs": {
            "hashes": [
                "sha256:b0cabcb11063d21a0b261d557acb0a9d2126350e63b70cdf7db6347baea456dc",
                "sha256:ca9ed98ce73076ba72e092b23d3c93ea6c4e186b3f1c3dad6edd98ff6ffcca2e"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==3.8.0"
        },
        "pluggy": {
            "hashes": [
                "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849",
                "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==1.2.0"
        },
        "pytest": {
            "hashes": [
                "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71",
                "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"
            ],
            "index": "pypi",
            "version": "==7.2.0"
        },
        "sampleproject": {
            "hashes": [
                "sha256:2e52702990c22cf1ce50206606b769fe0dbd5646a32873916144bd5aec5473b3"
            ],
            "index": "us-central1-pythonpkg-775",
            "version": "==3.0.0"
        },
        "setuptools": {
            "hashes": [
                "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f",
                "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==68.0.0"
        },
        "tomli": {
            "hashes": [
                "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
                "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
            ],
            "markers": "python_version < '3.11'",
            "version": "==2.0.1"
        },
        "virtualenv": {
            "hashes": [
                "sha256:34da10f14fea9be20e0fd7f04aba9732f84e593dac291b757ce42e3368a39419",
                "sha256:8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"
            ],
            "markers": "python_version >= '3.7'",
            "version": "==20.23.1"
        },
        "virtualenv-clone": {
            "hashes": [
                "sha256:418ee935c36152f8f153c79824bb93eaf6f0f7984bae31d3f48f350b9183501a",
                "sha256:44d5263bceed0bac3e1424d64f798095233b64def1c5689afa43dc3223caf5b0"
            ],
            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
            "version": "==0.5.7"
        }
    },
    "develop": {}
}

I invited you to a slack group in case there is more opportunity to collaborate on figuring out the issue: https://pyslackers.com/web/slack

CNDW commented 1 year ago

I did run the command with install_search_all_sources = false in my huge post above, for brevity, I'll paste the output here

travis@MacBook-Pro structure % pipenv sync --dev
Installing dependencies from Pipfile.lock (62de44)...
An error occurred while installing gain-marshmallow==1.0.1 --hash=sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4! Will try again.
An error occurred while installing pygain-iso8601utils==0.1.3 --hash=sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4! Will try again.
An error occurred while installing pygain-lib[graph]==22.0.12 --hash=sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e! Will try again.
Installing initially failed dependencies...
Failed to install some dependency or packages.  The following have failed installation and attempted retry: [Requirement(_name='gain-marshmallow', vcs=None, req=NamedRequirement(name='gain-marshmallow', version='==1.0.1', req=Requirement.parse('gain-marshmallow==1.0.1'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>), markers=None, _specifiers='==1.0.1', index='fury', editable=False, hashes=frozenset({'sha256:ff589ab02550c6f2860ea5b5d1958d73a8c5ac6dde392cb7e03613c9183155e4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=gain-marshmallow, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===1.0.1, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=gain-marshmallow==1.0.1)>, _ireq=None), Requirement(_name='pygain-iso8601utils', vcs=None, req=NamedRequirement(name='pygain-iso8601utils', version='==0.1.3', req=Requirement.parse('pygain-iso8601utils==0.1.3'), extras=[], editable=False, _parsed_line=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>), markers=None, _specifiers='==0.1.3', index='fury', editable=False, hashes=frozenset({'sha256:a22d7e15768876ac2a84f21fdd60d754337c992ca5c40275d6c293e45febf0c4'}), extras=(), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-iso8601utils, path=None, uri=None, extras=(), markers=None, vcs=None, specifier===0.1.3, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-iso8601utils==0.1.3)>, _ireq=None), Requirement(_name='pygain-lib', vcs=None, req=NamedRequirement(name='pygain-lib', version='==22.0.12', req=Requirement.parse('pygain-lib[graph]==22.0.12'), extras=['graph'], editable=False, _parsed_line=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>), markers=None, _specifiers='==22.0.12', index='fury', editable=False, hashes=frozenset({'sha256:09550900cec08506d69d36bd8db30d2aad5476736a62cdf3a89ab0b20e798e2e'}), extras=('graph',), abstract_dep=None, _line_instance=<Line (editable=False, name=pygain-lib, path=None, uri=None, extras=('graph',), markers=None, vcs=None, specifier===22.0.12, pyproject=None, pyproject_requires=None, pyproject_backend=None, ireq=pygain-lib[graph]==22.0.12)>, _ireq=None)]
CNDW commented 1 year ago

Also want to apologize for problems you have had with private indexes -- pipenv has been through a few different maintainers, I've been working with it for going on two years, and we have had to bring the code base through several transformations to get to a more maintainable state.

I appreciate your work on all of this and am very grateful to your responsiveness on these issues. I've joined the slack you posted if you want to take further conversations there

CNDW commented 1 year ago

I've spent probably too much time troubleshooting this issue from my end with no real info.

My key takeaways 1) there is something wrong with our dependency chain, although it's disappointing that the tooling is brittle enough to break every 6 months. 2) pipenv itself is highly susceptable to install-based module resolution issues - the signal to noise ratio while testing for this issue is uncomfortably high. I had multiple local machine issues come up while trying to debug the issue.

I've created a test that approximates the issue I experienced here, however the test passes

I've reproduced the scenario using a public gemfury account here along with some stripped down versions of our private dependencies. This fill fail intermittently for different reasons as I tweak the Pipenv settings, but nothing consistent.

At this point, I need to start focusing my time on making changes on my end to work around pipenv - I'm not convinced that this is worth chasing down given the difficulty.

@matteius thank you for your time, I'm going to close this issue out so you can focus on other issues.

matteius commented 1 year ago

Thanks for your feedback @CNDW -- we restored the patch to place the active running pipenv in the sys.path for the imports so hopefully 2 is less of an issue now.

I am trying to consider if there is a minimal way to further patch the package finder so the resolve can use index restricted packages but we can possibly fix the usage of install_search_all_sources = true