Drop mitmproxy, pypiSnapshotDate (#1011)

* drop mitm-proxy & pypi snapshot date

* add warning if pypiSnapshotDate is used

* tree-wide: remove pypiSnapshotDate

* pip/tests/packages: support all platforms

* re-lock examples

* apache-airflow: fix override after re-lock

* pip/tests: remove other platforms again

...don't want to maintain 4 lock files per test
This commit is contained in:
Paul Haerle 2024-07-09 10:51:13 +02:00 committed by GitHub
parent 11cfa4eeef
commit c674abab6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
33 changed files with 1263 additions and 1443 deletions

View File

@ -18,5 +18,4 @@
# This is not strictly required, but setting it will keep most dependencies
# locked, even when new dependencies are added via pyproject.toml
pip.pypiSnapshotDate = "2023-09-12";
}

View File

@ -1,235 +1,124 @@
{
"fetchPipMetadata": {
"sources": {
"cmake": {
"sha256": "c36eb106dec60198264b25d4bd23cd9ea30b0af9200a143ec1db887c095306f7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/94/87/68536d2dde5acec492742c63bb71f43534eb7d3d83122cce3067c4abca2b/cmake-3.27.4.1-py2.py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"version": "3.27.4.1"
},
"filelock": {
"sha256": "f067e40ccc40f2b48395a80fcbd4728262fab54e232e090a4063ab804179efeb",
"is_direct": false,
"sha256": "6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/52/90/45223db4e1df30ff14e8aebf9a1bf0222da2e7b49e53692c968f36817812/filelock-3.12.3-py3-none-any.whl",
"version": "3.12.3"
"url": "https://files.pythonhosted.org/packages/ae/f0/48285f0262fe47103a4a45972ed2f9b93e4c80b8fd609fa98da78b2a5706/filelock-3.15.4-py3-none-any.whl",
"version": "3.15.4"
},
"fsspec": {
"is_direct": false,
"sha256": "3cb443f8bcd2efb31295a5b9fdb02aee81d8452c80d28f97a6d0959e6cee101e",
"type": "url",
"url": "https://files.pythonhosted.org/packages/5e/44/73bea497ac69bafde2ee4269292fa3b41f1198f4bb7bbaaabde30ad29d4a/fsspec-2024.6.1-py3-none-any.whl",
"version": "2024.6.1"
},
"jinja2": {
"sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61",
"is_direct": false,
"sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
"version": "3.1.2"
"url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl",
"version": "3.1.4"
},
"joblib": {
"sha256": "ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9",
"is_direct": false,
"sha256": "06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6",
"type": "url",
"url": "https://files.pythonhosted.org/packages/10/40/d551139c85db202f1f384ba8bcf96aca2f329440a844f924c8a0040b6d02/joblib-1.3.2-py3-none-any.whl",
"version": "1.3.2"
},
"lit": {
"sha256": "84623c9c23b6b14763d637f4e63e6b721b3446ada40bf7001d8fee70b8e77a9a",
"type": "url",
"url": "https://files.pythonhosted.org/packages/bf/fa/0b75c53253ebf3ab566be702a9da16f5783862d8c1ae404c907a8830f283/lit-16.0.6.tar.gz",
"version": "16.0.6"
"url": "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl",
"version": "1.4.2"
},
"markupsafe": {
"sha256": "65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52",
"is_direct": false,
"sha256": "a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc",
"type": "url",
"url": "https://files.pythonhosted.org/packages/12/b3/d9ed2c0971e1435b8a62354b18d3060b66c8cb1d368399ec0b9baa7c0ee5/MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.1.3"
"url": "https://files.pythonhosted.org/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl",
"version": "2.1.5"
},
"mpmath": {
"is_direct": false,
"sha256": "a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c",
"type": "url",
"url": "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl",
"version": "1.3.0"
},
"networkx": {
"sha256": "4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36",
"is_direct": false,
"sha256": "28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2",
"type": "url",
"url": "https://files.pythonhosted.org/packages/a8/05/9d4f9b78ead6b2661d6e8ea772e111fc4a9fbd866ad0c81906c11206b55e/networkx-3.1-py3-none-any.whl",
"version": "3.1"
"url": "https://files.pythonhosted.org/packages/38/e9/5f72929373e1a0e8d142a130f3f97e6ff920070f87f91c4e13e40e0fba5a/networkx-3.3-py3-none-any.whl",
"version": "3.3"
},
"numpy": {
"sha256": "f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357",
"is_direct": false,
"sha256": "0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238",
"type": "url",
"url": "https://files.pythonhosted.org/packages/71/3c/3b1981c6a1986adc9ee7db760c0c34ea5b14ac3da9ecfcf1ea2a4ec6c398/numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.25.2"
},
"nvidia-cublas-cu11": {
"sha256": "d32e4d75f94ddfb93ea0a5dda08389bcc65d8916a25cb9f37ac89edaeed3bded",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ce/41/fdeb62b5437996e841d83d7d2714ca75b886547ee8017ee2fe6ea409d983/nvidia_cublas_cu11-11.10.3.66-py3-none-manylinux1_x86_64.whl",
"version": "11.10.3.66"
},
"nvidia-cuda-cupti-cu11": {
"sha256": "e0cfd9854e1f2edaa36ca20d21cd0bdd5dcfca4e3b9e130a082e05b33b6c5895",
"type": "url",
"url": "https://files.pythonhosted.org/packages/e6/9d/dd0cdcd800e642e3c82ee3b5987c751afd4f3fb9cc2752517f42c3bc6e49/nvidia_cuda_cupti_cu11-11.7.101-py3-none-manylinux1_x86_64.whl",
"version": "11.7.101"
},
"nvidia-cuda-nvrtc-cu11": {
"sha256": "9f1562822ea264b7e34ed5930567e89242d266448e936b85bc97a3370feabb03",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ef/25/922c5996aada6611b79b53985af7999fc629aee1d5d001b6a22431e18fec/nvidia_cuda_nvrtc_cu11-11.7.99-2-py3-none-manylinux1_x86_64.whl",
"version": "11.7.99"
},
"nvidia-cuda-runtime-cu11": {
"sha256": "cc768314ae58d2641f07eac350f40f99dcb35719c4faff4bc458a7cd2b119e31",
"type": "url",
"url": "https://files.pythonhosted.org/packages/36/92/89cf558b514125d2ebd8344dd2f0533404b416486ff681d5434a5832a019/nvidia_cuda_runtime_cu11-11.7.99-py3-none-manylinux1_x86_64.whl",
"version": "11.7.99"
},
"nvidia-cudnn-cu11": {
"sha256": "402f40adfc6f418f9dae9ab402e773cfed9beae52333f6d86ae3107a1b9527e7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/dc/30/66d4347d6e864334da5bb1c7571305e501dcb11b9155971421bb7bb5315f/nvidia_cudnn_cu11-8.5.0.96-2-py3-none-manylinux1_x86_64.whl",
"version": "8.5.0.96"
},
"nvidia-cufft-cu11": {
"sha256": "222f9da70c80384632fd6035e4c3f16762d64ea7a843829cb278f98b3cb7dd81",
"type": "url",
"url": "https://files.pythonhosted.org/packages/74/79/b912a77e38e41f15a0581a59f5c3548d1ddfdda3225936fb67c342719e7a/nvidia_cufft_cu11-10.9.0.58-py3-none-manylinux1_x86_64.whl",
"version": "10.9.0.58"
},
"nvidia-curand-cu11": {
"sha256": "eecb269c970fa599a2660c9232fa46aaccbf90d9170b96c462e13bcb4d129e2c",
"type": "url",
"url": "https://files.pythonhosted.org/packages/8f/11/af78d54b2420e64a4dd19e704f5bb69dcb5a6a3138b4465d6a48cdf59a21/nvidia_curand_cu11-10.2.10.91-py3-none-manylinux1_x86_64.whl",
"version": "10.2.10.91"
},
"nvidia-cusolver-cu11": {
"sha256": "72fa7261d755ed55c0074960df5904b65e2326f7adce364cbe4945063c1be412",
"type": "url",
"url": "https://files.pythonhosted.org/packages/3e/77/66149e3153b19312fb782ea367f3f950123b93916a45538b573fe373570a/nvidia_cusolver_cu11-11.4.0.1-2-py3-none-manylinux1_x86_64.whl",
"version": "11.4.0.1"
},
"nvidia-cusparse-cu11": {
"sha256": "a3389de714db63321aa11fbec3919271f415ef19fda58aed7f2ede488c32733d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ea/6f/6d032cc1bb7db88a989ddce3f4968419a7edeafda362847f42f614b1f845/nvidia_cusparse_cu11-11.7.4.91-py3-none-manylinux1_x86_64.whl",
"version": "11.7.4.91"
},
"nvidia-nccl-cu11": {
"sha256": "5e5534257d1284b8e825bc3a182c6f06acd6eb405e9f89d49340e98cd8f136eb",
"type": "url",
"url": "https://files.pythonhosted.org/packages/55/92/914cdb650b6a5d1478f83148597a25e90ea37d739bd563c5096b0e8a5f43/nvidia_nccl_cu11-2.14.3-py3-none-manylinux1_x86_64.whl",
"version": "2.14.3"
},
"nvidia-nvtx-cu11": {
"sha256": "b22c64eee426a62fc00952b507d6d29cf62b4c9df7a480fcc417e540e05fd5ac",
"type": "url",
"url": "https://files.pythonhosted.org/packages/23/d5/09493ff0e64fd77523afbbb075108f27a13790479efe86b9ffb4587671b5/nvidia_nvtx_cu11-11.7.91-py3-none-manylinux1_x86_64.whl",
"version": "11.7.91"
},
"pillow": {
"sha256": "a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf",
"type": "url",
"url": "https://files.pythonhosted.org/packages/3d/36/e78f09d510354977e10102dd811e928666021d9c451e05df962d56477772/Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl",
"version": "10.0.0"
},
"scikit-learn": {
"sha256": "ae80c08834a473d08a204d966982a62e11c976228d306a2648c575e3ead12111",
"type": "url",
"url": "https://files.pythonhosted.org/packages/5c/e9/ee572691a3fb05555bcde41826faad29ae4bc1fb07982e7f53d54a176879/scikit_learn-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.3.0"
},
"scipy": {
"sha256": "d690e1ca993c8f7ede6d22e5637541217fc6a4d3f78b3672a6fe454dbb7eb9a7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/a8/cc/c36f3439f5d47c3b13833ce6687b43a040cc7638c502ac46b41e2d4f3d6f/scipy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.11.2"
},
"setuptools": {
"sha256": "eff96148eb336377ab11beee0c73ed84f1709a40c0b870298b0d058828761bae",
"type": "url",
"url": "https://files.pythonhosted.org/packages/95/79/6b47c6a872b40743a480687dc0c79ffb4202710789f3e4d54a84fff8b550/setuptools-68.2.1-py3-none-any.whl",
"version": "68.2.1"
},
"sympy": {
"sha256": "c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d2/05/e6600db80270777c4a64238a98d442f0fd07cc8915be2a1c16da7f2b9e74/sympy-1.12-py3-none-any.whl",
"version": "1.12"
},
"threadpoolctl": {
"sha256": "2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032",
"type": "url",
"url": "https://files.pythonhosted.org/packages/81/12/fd4dea011af9d69e1cad05c75f3f7202cdcbeac9b712eea58ca779a72865/threadpoolctl-3.2.0-py3-none-any.whl",
"version": "3.2.0"
},
"torch": {
"sha256": "8ced00b3ba471856b993822508f77c98f48a458623596a4c43136158781e306a",
"type": "url",
"url": "https://files.pythonhosted.org/packages/8c/4d/17e07377c9c3d1a0c4eb3fde1c7c16b5a0ce6133ddbabc08ceef6b7f2645/torch-2.0.1-cp310-cp310-manylinux1_x86_64.whl",
"version": "2.0.1"
},
"triton": {
"sha256": "38806ee9663f4b0f7cd64790e96c579374089e58f49aac4a6608121aa55e2505",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ca/31/ff6be541195daf77aa5c72303b2354661a69e717967d44d91eb4f3fdce32/triton-2.0.0-1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"url": "https://files.pythonhosted.org/packages/3b/61/e1e77694c4ed929c8edebde7d2ac30dbf3ed452c1988b633569d3d7ff271/numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl",
"version": "2.0.0"
},
"typing-extensions": {
"sha256": "440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36",
"pillow": {
"is_direct": false,
"sha256": "543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl",
"version": "4.7.1"
"url": "https://files.pythonhosted.org/packages/9a/9e/4143b907be8ea0bce215f2ae4f7480027473f8b61fcedfda9d851082a5d2/pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl",
"version": "10.4.0"
},
"wheel": {
"sha256": "75909db2664838d015e3d9139004ee16711748a52c8f336b52882266540215d8",
"scikit-learn": {
"is_direct": false,
"sha256": "f5b213bc29cc30a89a3130393b0e39c847a15d769d6e59539cd86b75d276b1a7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/b8/8b/31273bf66016be6ad22bb7345c37ff350276cfd46e389a0c2ac5da9d9073/wheel-0.41.2-py3-none-any.whl",
"version": "0.41.2"
"url": "https://files.pythonhosted.org/packages/1f/c6/ba8e5691acca616adc8f0d6f8f5e79d55b927530aa404ee712b077acf0cf/scikit_learn-1.5.1-cp310-cp310-macosx_12_0_arm64.whl",
"version": "1.5.1"
},
"scipy": {
"is_direct": false,
"sha256": "07e179dc0205a50721022344fb85074f772eadbda1e1b3eecdc483f8033709b7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/52/21/05a182fb405a53dfbdf6415308bf185677e89188bc2206de011a3653f48e/scipy-1.14.0-cp310-cp310-macosx_14_0_arm64.whl",
"version": "1.14.0"
},
"sympy": {
"is_direct": false,
"sha256": "9b2cbc7f1a640289430e13d2a56f02f867a1da0190f2f99d8968c2f74da0e515",
"type": "url",
"url": "https://files.pythonhosted.org/packages/61/53/e18c8c97d0b2724d85c9830477e3ebea3acf1dcdc6deb344d5d9c93a9946/sympy-1.12.1-py3-none-any.whl",
"version": "1.12.1"
},
"threadpoolctl": {
"is_direct": false,
"sha256": "56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467",
"type": "url",
"url": "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl",
"version": "3.5.0"
},
"torch": {
"is_direct": false,
"sha256": "7c09a94362778428484bcf995f6004b04952106aee0ef45ff0b4bab484f5498d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/2c/52/7ab0a00b54aa1651e79a9ebc721d45fba86d8c8ab65c4ec6e0a49f09527a/torch-2.3.1-cp310-none-macosx_11_0_arm64.whl",
"version": "2.3.1"
},
"typing-extensions": {
"is_direct": false,
"sha256": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl",
"version": "4.12.2"
}
},
"targets": {
"default": {
"cmake": [],
"filelock": [
"typing-extensions"
],
"filelock": [],
"fsspec": [],
"jinja2": [
"markupsafe"
],
"joblib": [],
"lit": [],
"markupsafe": [],
"mpmath": [],
"networkx": [],
"numpy": [],
"nvidia-cublas-cu11": [
"setuptools",
"wheel"
],
"nvidia-cuda-cupti-cu11": [
"setuptools",
"wheel"
],
"nvidia-cuda-nvrtc-cu11": [],
"nvidia-cuda-runtime-cu11": [
"setuptools",
"wheel"
],
"nvidia-cudnn-cu11": [
"nvidia-cublas-cu11"
],
"nvidia-cufft-cu11": [],
"nvidia-curand-cu11": [
"setuptools",
"wheel"
],
"nvidia-cusolver-cu11": [
"nvidia-cublas-cu11"
],
"nvidia-cusparse-cu11": [
"setuptools",
"wheel"
],
"nvidia-nccl-cu11": [],
"nvidia-nvtx-cu11": [
"setuptools",
"wheel"
],
"pillow": [],
"scikit-learn": [
"joblib",
@ -240,39 +129,21 @@
"scipy": [
"numpy"
],
"setuptools": [],
"sympy": [
"mpmath"
],
"threadpoolctl": [],
"torch": [
"filelock",
"fsspec",
"jinja2",
"networkx",
"nvidia-cublas-cu11",
"nvidia-cuda-cupti-cu11",
"nvidia-cuda-nvrtc-cu11",
"nvidia-cuda-runtime-cu11",
"nvidia-cudnn-cu11",
"nvidia-cufft-cu11",
"nvidia-curand-cu11",
"nvidia-cusolver-cu11",
"nvidia-cusparse-cu11",
"nvidia-nccl-cu11",
"nvidia-nvtx-cu11",
"sympy",
"triton",
"typing-extensions"
],
"triton": [
"cmake",
"filelock",
"lit"
],
"typing-extensions": [],
"wheel": []
"typing-extensions": []
}
}
},
"invalidationHash": "73ea7fe0e9b1f7d10f3140984bfd37279a11627f127cf23ea37cba173487d379"
"invalidationHash": "70927cbb56478f8e952deb1a0a08687c2f8016bffb1e0330c8f9a452a9cbbb2b"
}

View File

@ -33,7 +33,6 @@ in {
];
pip = {
pypiSnapshotDate = "2023-09-19";
requirementsList = [
"${config.paths.package}/subpkg1"
"${config.paths.package}/subpkg2"

View File

@ -2,11 +2,13 @@
"fetchPipMetadata": {
"sources": {
"subpkg1": {
"is_direct": true,
"path": "subpkg1",
"type": "local",
"version": "0.0.1"
},
"subpkg2": {
"is_direct": true,
"path": "subpkg2",
"type": "local",
"version": "0.0.2"
@ -21,5 +23,5 @@
}
}
},
"invalidationHash": "bc71d202ddaae6e0f6c82dd44fd81ed0c6971b9a18e84a24d633365be1ef30fb"
}
"invalidationHash": "1c3ea22f49efe9faefcac00ba72b8bf9f2d9f657dd6c091252f11624a671e25b"
}

View File

@ -3,22 +3,22 @@
"sources": {
"certifi": {
"is_direct": false,
"sha256": "ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56",
"sha256": "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90",
"type": "url",
"url": "https://files.pythonhosted.org/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl",
"version": "2024.6.2"
"url": "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl",
"version": "2024.7.4"
},
"charset-normalizer": {
"is_direct": false,
"sha256": "753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8",
"sha256": "549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e",
"type": "url",
"url": "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"url": "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl",
"version": "3.3.2"
},
"click": {
"is_direct": true,
"rev": "923d197b56caa9ffea21edeef5baf1816585b099",
"sha256": "0952vl5cfbb7inc5v5cl232fw776xfc0ygmyj4hzh70l9v0gpk2n",
"rev": "14f735cf59618941cf2930e633eb77651b1dc7cb",
"sha256": "1mriyhx9gcms5bsbdlg8akjpsj3v7p0g38spabx2vm6g9h1yg4zc",
"type": "git",
"url": "https://github.com/pallets/click.git",
"version": "8.2.0.dev0"
@ -39,17 +39,17 @@
},
"setuptools": {
"is_direct": false,
"sha256": "54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4",
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/de/88/70c5767a0e43eb4451c2200f07d042a4bcd7639276003a9c54a68cfcc1f8/setuptools-70.0.0-py3-none-any.whl",
"version": "70.0.0"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
},
"urllib3": {
"is_direct": false,
"sha256": "450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d",
"sha256": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472",
"type": "url",
"url": "https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl",
"version": "2.2.1"
"url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl",
"version": "2.2.2"
}
},
"targets": {

View File

@ -22,7 +22,6 @@
};
pip = {
pypiSnapshotDate = "2023-01-01";
requirementsList = ["${config.name}==${config.version}"];
};
}

View File

@ -2,76 +2,81 @@
"fetchPipMetadata": {
"sources": {
"ansible": {
"is_direct": false,
"sha256": "e7953472347fcc6dca10839111b576a9f790e00056344f2dcf448e6c452fe939",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ec/ee/1494474b59c6e9cccdfde32da1364b94cdb280ff96b1493deaf4f3ae55f8/ansible-2.7.1.tar.gz",
"version": "2.7.1"
},
"bcrypt": {
"sha256": "ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2",
"is_direct": false,
"sha256": "0d4cf6ef1525f79255ef048b3489602868c47aea61f375377f0d00514fe4a78c",
"type": "url",
"url": "https://files.pythonhosted.org/packages/64/fe/da28a5916128d541da0993328dc5cf4b43dfbf6655f2c7a2abe26ca2dc88/bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl",
"version": "4.0.1"
"url": "https://files.pythonhosted.org/packages/a8/eb/fbea8d2b370a4cc7f5f0aff9f492177a5813e130edeab9dd388ddd3ef1dc/bcrypt-4.1.3-cp39-abi3-macosx_10_12_universal2.whl",
"version": "4.1.3"
},
"cffi": {
"sha256": "5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
"is_direct": false,
"sha256": "b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
"type": "url",
"url": "https://files.pythonhosted.org/packages/2d/86/3ca57cddfa0419f6a95d1c8478f8f622ba597e3581fd501bbb915b20eb75/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.15.1"
"url": "https://files.pythonhosted.org/packages/20/3b/f95e667064141843843df8ca79dd49ba57bb7a7615d6d7d538531e45f002/cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl",
"version": "1.16.0"
},
"cryptography": {
"sha256": "ce127dd0a6a0811c251a6cddd014d292728484e530d80e872ad9806cfb1c5b3c",
"is_direct": false,
"sha256": "dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28",
"type": "url",
"url": "https://files.pythonhosted.org/packages/26/f8/a81170a816679fca9ccd907b801992acfc03c33f952440421c921af2cc57/cryptography-38.0.4-cp36-abi3-manylinux_2_28_x86_64.whl",
"version": "38.0.4"
"url": "https://files.pythonhosted.org/packages/60/12/f064af29190cdb1d38fe07f3db6126091639e1dece7ec77c4ff037d49193/cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl",
"version": "42.0.8"
},
"jinja2": {
"sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61",
"is_direct": false,
"sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
"version": "3.1.2"
"url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl",
"version": "3.1.4"
},
"markupsafe": {
"sha256": "56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77",
"is_direct": false,
"sha256": "7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf",
"type": "url",
"url": "https://files.pythonhosted.org/packages/df/06/c515c5bc43b90462e753bc768e6798193c6520c9c7eb2054c7466779a9db/MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.1.1"
"url": "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl",
"version": "2.1.5"
},
"paramiko": {
"sha256": "b2df1a6325f6996ef55a8789d0462f5b502ea83b3c990cbb5bbe57345c6812c4",
"is_direct": false,
"sha256": "43f0b51115a896f9c00f59618023484cb3a14b98bbceab43394a39c6739b7ee7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/71/6d/95777fd66507106d2f8f81d005255c237187951644f85a5bd0baeec8a88f/paramiko-2.12.0-py2.py3-none-any.whl",
"version": "2.12.0"
"url": "https://files.pythonhosted.org/packages/ad/50/8792484502c8141c20c996b802fefa8435a9c018a2bb440a06b172782118/paramiko-3.4.0-py3-none-any.whl",
"version": "3.4.0"
},
"pycparser": {
"sha256": "8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
"is_direct": false,
"sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc",
"type": "url",
"url": "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl",
"version": "2.21"
"url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl",
"version": "2.22"
},
"pynacl": {
"sha256": "0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d",
"is_direct": false,
"sha256": "401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl",
"url": "https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl",
"version": "1.5.0"
},
"pyyaml": {
"sha256": "40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
"is_direct": false,
"sha256": "c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859",
"type": "url",
"url": "https://files.pythonhosted.org/packages/12/fc/a4d5a7554e0067677823f7265cb3ae22aed8a238560b5133b58cda252dad/PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
"version": "6.0"
"url": "https://files.pythonhosted.org/packages/0e/88/21b2f16cb2123c1e9375f2c93486e35fdc86e63f02e274f0e99c589ef153/PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl",
"version": "6.0.1"
},
"setuptools": {
"sha256": "57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54",
"is_direct": false,
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ef/e3/29d6e1a07e8d90ace4a522d9689d03e833b67b50d1588e693eec15f26251/setuptools-65.6.3-py3-none-any.whl",
"version": "65.6.3"
},
"six": {
"sha256": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl",
"version": "1.16.0"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
}
},
"targets": {
@ -97,18 +102,16 @@
"paramiko": [
"bcrypt",
"cryptography",
"pynacl",
"six"
"pynacl"
],
"pycparser": [],
"pynacl": [
"cffi"
],
"pyyaml": [],
"setuptools": [],
"six": []
"setuptools": []
}
}
},
"invalidationHash": "b351dd845e6472bc9f7472fa28c3d17250ef9fc92409930897a33ce429a08bbf"
"invalidationHash": "fc8132866a8e243bbadc1eac5012604f88c2549ba38935a84381ca72e3cff950"
}

View File

@ -44,7 +44,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-01-01";
requirementsList = [
"apache-airflow"
"setuptools-scm"
@ -54,7 +53,6 @@ in {
# We include fixes from nixpkgs for pendulum, but keep
# our dependencies to avoid version conflicts
pendulum = {
buildPythonPackage.pyproject = true;
mkDerivation.propagatedBuildInputs = [
python.pkgs.poetry-core
];

View File

@ -33,7 +33,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-04-01";
requirementsList = [
"${src}"
];

View File

@ -2,346 +2,403 @@
"fetchPipMetadata": {
"sources": {
"attrs": {
"sha256": "29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836",
"is_direct": false,
"sha256": "99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1",
"type": "url",
"url": "https://files.pythonhosted.org/packages/fb/6e/6f83bf616d2becdf333a1640f1d463fef3150e2e926b7010cb0f81c95e88/attrs-22.2.0-py3-none-any.whl",
"version": "22.2.0"
"url": "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl",
"version": "23.2.0"
},
"babel": {
"sha256": "b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610",
"is_direct": false,
"sha256": "08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb",
"type": "url",
"url": "https://files.pythonhosted.org/packages/df/c4/1088865e0246d7ecf56d819a233ab2b72f7d6ab043965ef327d0731b5434/Babel-2.12.1-py3-none-any.whl",
"version": "2.12.1"
"url": "https://files.pythonhosted.org/packages/27/45/377f7e32a5c93d94cd56542349b34efab5ca3f9e2fd5a68c5e93169aa32d/Babel-2.15.0-py3-none-any.whl",
"version": "2.15.0"
},
"beautifulsoup4": {
"sha256": "2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591",
"is_direct": false,
"sha256": "b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ee/a7/06b189a2e280e351adcef25df532af3c59442123187e228b960ab3238687/beautifulsoup4-4.12.0-py3-none-any.whl",
"version": "4.12.0"
"url": "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl",
"version": "4.12.3"
},
"certifi": {
"sha256": "4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18",
"is_direct": false,
"sha256": "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90",
"type": "url",
"url": "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl",
"version": "2022.12.7"
"url": "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl",
"version": "2024.7.4"
},
"cffi": {
"sha256": "5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
"is_direct": false,
"sha256": "b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
"type": "url",
"url": "https://files.pythonhosted.org/packages/2d/86/3ca57cddfa0419f6a95d1c8478f8f622ba597e3581fd501bbb915b20eb75/cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.15.1"
"url": "https://files.pythonhosted.org/packages/20/3b/f95e667064141843843df8ca79dd49ba57bb7a7615d6d7d538531e45f002/cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl",
"version": "1.16.0"
},
"chardet": {
"sha256": "362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9",
"is_direct": false,
"sha256": "e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970",
"type": "url",
"url": "https://files.pythonhosted.org/packages/74/8f/8fc49109009e8d2169d94d72e6b1f4cd45c13d147ba7d6170fb41f22b08f/chardet-5.1.0-py3-none-any.whl",
"version": "5.1.0"
"url": "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl",
"version": "5.2.0"
},
"charset-normalizer": {
"sha256": "21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706",
"is_direct": false,
"sha256": "68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0",
"type": "url",
"url": "https://files.pythonhosted.org/packages/33/97/9967fb2d364a9da38557e4af323abcd58cc05bdd8f77e9fd5ae4882772cc/charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "3.1.0"
"url": "https://files.pythonhosted.org/packages/2a/9d/a6d15bd1e3e2914af5955c8eb15f4071997e7078419328fee93dfd497eb7/charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl",
"version": "3.3.2"
},
"cryptography": {
"sha256": "1e0af458515d5e4028aad75f3bb3fe7a31e46ad920648cd59b64d3da842e4356",
"is_direct": false,
"sha256": "dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28",
"type": "url",
"url": "https://files.pythonhosted.org/packages/c0/ea/76eb113bafc97f2e8d9872eda85eb59383892a3559ebbec7595753785fd2/cryptography-40.0.1-cp36-abi3-manylinux_2_28_x86_64.whl",
"version": "40.0.1"
"url": "https://files.pythonhosted.org/packages/60/12/f064af29190cdb1d38fe07f3db6126091639e1dece7ec77c4ff037d49193/cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl",
"version": "42.0.8"
},
"decorator": {
"is_direct": false,
"sha256": "b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl",
"version": "5.1.1"
},
"docopt": {
"is_direct": false,
"sha256": "49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491",
"type": "url",
"url": "https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz",
"version": "0.6.2"
},
"docutils": {
"sha256": "5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc",
"is_direct": false,
"sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2",
"type": "url",
"url": "https://files.pythonhosted.org/packages/93/69/e391bd51bc08ed9141ecd899a0ddb61ab6465309f1eb470905c0c8868081/docutils-0.19-py3-none-any.whl",
"version": "0.19"
"url": "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl",
"version": "0.21.2"
},
"gevent": {
"sha256": "319d8b1699b7b8134de66d656cd739b308ab9c45ace14d60ae44de7775b456c9",
"is_direct": false,
"sha256": "2ae3a25ecce0a5b0cd0808ab716bfca180230112bb4bc89b46ae0061d62d4afe",
"type": "url",
"url": "https://files.pythonhosted.org/packages/76/eb/69d278e3b29dfa081a7af0b16ec616ea43fa68854c258713f6c1c52ebd22/gevent-22.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "22.10.2"
"url": "https://files.pythonhosted.org/packages/78/23/328809bc89c21669434fddaa863c33008486a423eb7ea049b2bf82ae154b/gevent-24.2.1-cp39-cp39-macosx_11_0_universal2.whl",
"version": "24.2.1"
},
"greenlet": {
"sha256": "94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b",
"is_direct": false,
"sha256": "da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53",
"type": "url",
"url": "https://files.pythonhosted.org/packages/e9/29/2ae545c4c0218b042c2bb0760c0f65e114cca1ab5e552dc23b0f118e428a/greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.0.2"
"url": "https://files.pythonhosted.org/packages/0b/8a/f5140c8713f919af0e98e6aaa40cb20edaaf3739d18c4a077581e2422ac4/greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl",
"version": "3.0.3"
},
"idna": {
"sha256": "90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2",
"is_direct": false,
"sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0",
"type": "url",
"url": "https://files.pythonhosted.org/packages/fc/34/3030de6f1370931b9dbb4dad48f6ab1015ab1d32447850b9fc94e60097be/idna-3.4-py3-none-any.whl",
"version": "3.4"
"url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl",
"version": "3.7"
},
"isodate": {
"is_direct": false,
"sha256": "0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96",
"type": "url",
"url": "https://files.pythonhosted.org/packages/b6/85/7882d311924cbcfc70b1890780763e36ff0b140c7e51c110fc59a532f087/isodate-0.6.1-py2.py3-none-any.whl",
"version": "0.6.1"
},
"jinja2": {
"sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61",
"is_direct": false,
"sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
"version": "3.1.2"
"url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl",
"version": "3.1.4"
},
"libsass": {
"sha256": "f1efc1b612299c88aec9e39d6ca0c266d360daa5b19d9430bdeaffffa86993f9",
"is_direct": false,
"sha256": "ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6",
"type": "url",
"url": "https://files.pythonhosted.org/packages/0c/be/178b03e598e86bf1faa70f9ebe4cfad236dcf159af11a39f30ac8d7ce693/libsass-0.22.0-cp36-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
"version": "0.22.0"
"url": "https://files.pythonhosted.org/packages/55/2f/6af938651ff3aec0a0b00742209df1172bc297fa73531f292801693b7315/libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl",
"version": "0.23.0"
},
"lxml": {
"sha256": "5b4545b8a40478183ac06c073e81a5ce4cf01bf1734962577cf2bb569a5b3bbf",
"is_direct": false,
"sha256": "fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30",
"type": "url",
"url": "https://files.pythonhosted.org/packages/95/79/450c6284d26f7f2abd1ec3506f494b6d848eed3ff7233be60220fef70c85/lxml-4.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl",
"version": "4.9.2"
"url": "https://files.pythonhosted.org/packages/51/79/9f7d249850c9f8357538055359bffa91cc9f0606fcea72b6881fdea9ee39/lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl",
"version": "5.2.2"
},
"markupsafe": {
"sha256": "40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4",
"is_direct": false,
"sha256": "7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf",
"type": "url",
"url": "https://files.pythonhosted.org/packages/06/3b/d026c21cd1dbee89f41127e93113dcf5fa85c6660d108847760b59b3a66d/MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.1.2"
"url": "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl",
"version": "2.1.5"
},
"num2words": {
"sha256": "9eeef488658226ab36818c06d7aeb956d19b530fb62030596b6802fb4659f30e",
"is_direct": false,
"sha256": "39e662c663f0a7e15415431ea68eb3dc711b49e3b776d93403e1da0a219ca4ee",
"type": "url",
"url": "https://files.pythonhosted.org/packages/eb/09/b14d798bc02411b1e5a9896d680f8f417cadc53232bbf7ae9d30263dcf45/num2words-0.5.12-py3-none-any.whl",
"version": "0.5.12"
"url": "https://files.pythonhosted.org/packages/8f/f0/ca1228af2bcbce2fdf2b23d58643c84253b88a3c1cd9dba391ca683c4b21/num2words-0.5.13-py3-none-any.whl",
"version": "0.5.13"
},
"odoo": {
"is_direct": true,
"sha256": "6653c7f9169165b5a8a1efa4a6215866dbee5665ed38c1de096f99ef866c7176",
"type": "url",
"url": "https://github.com/odoo/odoo/archive/2d42fd69cada3b1f2716c3d0a20bec6170f9b226.tar.gz",
"version": "16.0"
},
"ofxparse": {
"is_direct": false,
"sha256": "057ab68d31270dece4d1a47662096aa76341968aaee145ffc711cb44cbd5c4a7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/45/ae/98a2acfd06d15869c4b1be7fb74849c8a67cf15b65181f1fe879547e7494/ofxparse-0.21.tar.gz",
"version": "0.21"
},
"passlib": {
"is_direct": false,
"sha256": "aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1",
"type": "url",
"url": "https://files.pythonhosted.org/packages/3b/a4/ab6b7589382ca3df236e03faa71deac88cae040af60c071a78d254a62172/passlib-1.7.4-py2.py3-none-any.whl",
"version": "1.7.4"
},
"pillow": {
"sha256": "e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6",
"is_direct": false,
"sha256": "298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b",
"type": "url",
"url": "https://files.pythonhosted.org/packages/de/e2/d1dda94185dba4fc019744076e52e2c6b450620938b2ded7b31ba90bd559/Pillow-9.4.0-cp39-cp39-manylinux_2_28_x86_64.whl",
"version": "9.4.0"
"url": "https://files.pythonhosted.org/packages/23/9c/343827267eb28d41cd82b4180d33b10d868af9077abcec0af9793aa77d2d/pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl",
"version": "10.4.0"
},
"platformdirs": {
"sha256": "ebe11c0d7a805086e99506aa331612429a72ca7cd52a1f0d277dc4adc20cb10e",
"is_direct": false,
"sha256": "2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee",
"type": "url",
"url": "https://files.pythonhosted.org/packages/b2/f3/4fb5fae710fc9f22a42cd90dc0547da18ec83e2e139294ab94f04c449cf5/platformdirs-3.2.0-py3-none-any.whl",
"version": "3.2.0"
"url": "https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl",
"version": "4.2.2"
},
"polib": {
"is_direct": false,
"sha256": "1c77ee1b81feb31df9bca258cbc58db1bbb32d10214b173882452c73af06d62d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/6b/99/45bb1f9926efe370c6dbe324741c749658e44cb060124f28dad201202274/polib-1.2.0-py2.py3-none-any.whl",
"version": "1.2.0"
},
"psutil": {
"sha256": "54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08",
"is_direct": false,
"sha256": "ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0",
"type": "url",
"url": "https://files.pythonhosted.org/packages/6e/c8/784968329c1c67c28cce91991ef9af8a8913aa5a3399a6a8954b1380572f/psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "5.9.4"
"url": "https://files.pythonhosted.org/packages/7c/06/63872a64c312a24fb9b4af123ee7007a306617da63ff13bcc1432386ead7/psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl",
"version": "6.0.0"
},
"psycopg2": {
"sha256": "a5246d2e683a972e2187a8714b5c2cf8156c064629f9a9b1a873c1730d9e245a",
"is_direct": false,
"sha256": "d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156",
"type": "url",
"url": "https://files.pythonhosted.org/packages/89/d6/cd8c46417e0f7a16b4b0fc321f4ab676a59250d08fce5b64921897fb07cc/psycopg2-2.9.5.tar.gz",
"version": "2.9.5"
"url": "https://files.pythonhosted.org/packages/c9/5e/dc6acaf46d78979d6b03458b7a1618a68e152a6776fce95daac5e0f0301b/psycopg2-2.9.9.tar.gz",
"version": "2.9.9"
},
"pycparser": {
"sha256": "8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
"is_direct": false,
"sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc",
"type": "url",
"url": "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl",
"version": "2.21"
"url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl",
"version": "2.22"
},
"pydot": {
"sha256": "66c98190c65b8d2e2382a441b4c0edfdb4f4c025ef9cb9874de478fb0793a451",
"is_direct": false,
"sha256": "408a47913ea7bd5d2d34b274144880c1310c4aee901f353cf21fe2e526a4ea28",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ea/76/75b1bb82e9bad3e3d656556eaa353d8cd17c4254393b08ec9786ac8ed273/pydot-1.4.2-py2.py3-none-any.whl",
"version": "1.4.2"
"url": "https://files.pythonhosted.org/packages/7f/90/c9b51f3cdff89cd8f93382060330f43d1af098a6624cff439e700791e922/pydot-2.0.0-py3-none-any.whl",
"version": "2.0.0"
},
"pyopenssl": {
"sha256": "9e0c526404a210df9d2b18cd33364beadb0dc858a739b885677bc65e105d4a4c",
"is_direct": false,
"sha256": "17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad",
"type": "url",
"url": "https://files.pythonhosted.org/packages/b7/6d/d7377332703ffd8821878794aca4fb54637da654bf3e467ffb32109c2147/pyOpenSSL-23.1.1-py3-none-any.whl",
"version": "23.1.1"
"url": "https://files.pythonhosted.org/packages/54/a7/2104f674a5a6845b04c8ff01659becc6b8978ca410b82b94287e0b1e018b/pyOpenSSL-24.1.0-py3-none-any.whl",
"version": "24.1.0"
},
"pyparsing": {
"sha256": "5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc",
"is_direct": false,
"sha256": "f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742",
"type": "url",
"url": "https://files.pythonhosted.org/packages/6c/10/a7d0fa5baea8fe7b50f448ab742f26f52b80bfca85ac2be9d35cdd9a3246/pyparsing-3.0.9-py3-none-any.whl",
"version": "3.0.9"
"url": "https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl",
"version": "3.1.2"
},
"pypdf2": {
"is_direct": false,
"sha256": "d16e4205cfee272fbdc0568b68d82be796540b1537508cef59388f839c191928",
"type": "url",
"url": "https://files.pythonhosted.org/packages/8e/5e/c86a5643653825d3c913719e788e41386bee415c2b87b4f955432f2de6b2/pypdf2-3.0.1-py3-none-any.whl",
"version": "3.0.1"
},
"pypng": {
"is_direct": false,
"sha256": "4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c",
"type": "url",
"url": "https://files.pythonhosted.org/packages/3e/b9/3766cc361d93edb2ce81e2e1f87dd98f314d7d513877a342d31b30741680/pypng-0.20220715.0-py3-none-any.whl",
"version": "0.20220715.0"
},
"pyserial": {
"is_direct": false,
"sha256": "c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0",
"type": "url",
"url": "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl",
"version": "3.5"
},
"python-dateutil": {
"sha256": "961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9",
"is_direct": false,
"sha256": "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427",
"type": "url",
"url": "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl",
"version": "2.8.2"
"url": "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl",
"version": "2.9.0.post0"
},
"python-stdnum": {
"sha256": "d7f2a3c7ef4635c957b9cbdd9b1993d1f6ee3a2959f03e172c45440d99f296eb",
"is_direct": false,
"sha256": "111008e10391d54fb2afad2a10df70d5cb0c6c0a7ec82fec6f022cb8712961d3",
"type": "url",
"url": "https://files.pythonhosted.org/packages/2e/fe/ab24ee186f710cf6a6d654b272db07915da4f93c7bd9c037747718c03c28/python_stdnum-1.18-py2.py3-none-any.whl",
"version": "1.18"
"url": "https://files.pythonhosted.org/packages/d6/0f/8639d60f6d7c169836694aa81504c4ee9a95dfb73ccdb16be66df4785f52/python_stdnum-1.20-py2.py3-none-any.whl",
"version": "1.20"
},
"pytz": {
"sha256": "a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb",
"is_direct": false,
"sha256": "328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319",
"type": "url",
"url": "https://files.pythonhosted.org/packages/7f/99/ad6bd37e748257dd70d6f85d916cafe79c0b0f5e2e95b11f7fbc82bf3110/pytz-2023.3-py2.py3-none-any.whl",
"version": "2023.3"
"url": "https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl",
"version": "2024.1"
},
"pyusb": {
"is_direct": false,
"sha256": "2b4c7cb86dbadf044dfb9d3a4ff69fd217013dbe78a792177a3feb172449ea36",
"type": "url",
"url": "https://files.pythonhosted.org/packages/15/a8/4982498b2ab44d1fcd5c49f07ea3795eab01601dc143b009d333fcace3b9/pyusb-1.2.1-py3-none-any.whl",
"version": "1.2.1"
},
"qrcode": {
"is_direct": false,
"sha256": "581dca7a029bcb2deef5d01068e39093e80ef00b4a61098a2182eac59d01643a",
"type": "url",
"url": "https://files.pythonhosted.org/packages/24/79/aaf0c1c7214f2632badb2771d770b1500d3d7cbdf2590ae62e721ec50584/qrcode-7.4.2-py3-none-any.whl",
"version": "7.4.2"
},
"reportlab": {
"sha256": "907f7cd4832bb295d0c1573de15cc5aab5988282caf2ee7a2b1276fb6cdf502b",
"is_direct": false,
"sha256": "927616931637e2f13e2ee3b3b6316d7a07803170e258621cff7d138bde17fbb5",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ba/81/47e4f7b6a5ee0f98e3a06cf73fe63de43afbaeb5c85def5f282629e4a125/reportlab-3.6.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "3.6.12"
"url": "https://files.pythonhosted.org/packages/08/69/1fadb986011de190d0a7c7df404e471b5ccd0d3d3df4b9bf095c29c22d21/reportlab-4.2.2-py3-none-any.whl",
"version": "4.2.2"
},
"requests": {
"sha256": "64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa",
"is_direct": false,
"sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d2/f4/274d1dbe96b41cf4e0efb70cbced278ffd61b5c7bb70338b62af94ccb25b/requests-2.28.2-py3-none-any.whl",
"version": "2.28.2"
"url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl",
"version": "2.32.3"
},
"requests-file": {
"sha256": "dfe5dae75c12481f68ba353183c53a65e6044c923e64c24b2209f6c7570ca953",
"is_direct": false,
"sha256": "cf270de5a4c5874e84599fc5778303d496c10ae5e870bfa378818f35d21bda5c",
"type": "url",
"url": "https://files.pythonhosted.org/packages/77/86/cdb5e8eaed90796aa83a6d9f75cfbd37af553c47a291cd47bc410ef9bdb2/requests_file-1.5.1-py2.py3-none-any.whl",
"version": "1.5.1"
"url": "https://files.pythonhosted.org/packages/d7/25/dd878a121fcfdf38f52850f11c512e13ec87c2ea72385933818e5b6c15ce/requests_file-2.1.0-py2.py3-none-any.whl",
"version": "2.1.0"
},
"requests-toolbelt": {
"sha256": "18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7",
"is_direct": false,
"sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06",
"type": "url",
"url": "https://files.pythonhosted.org/packages/05/d3/bf87a36bff1cb88fd30a509fd366c70ec30676517ee791b2f77e0e29817a/requests_toolbelt-0.10.1-py2.py3-none-any.whl",
"version": "0.10.1"
"url": "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl",
"version": "1.0.0"
},
"setuptools": {
"sha256": "e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078",
"is_direct": false,
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/0b/fc/8781442def77b0aa22f63f266d4dadd486ebc0c5371d6290caf4320da4b7/setuptools-67.6.1-py3-none-any.whl",
"version": "67.6.1"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
},
"six": {
"is_direct": false,
"sha256": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl",
"version": "1.16.0"
},
"soupsieve": {
"sha256": "49e5368c2cda80ee7e84da9dbe3e110b70a4575f196efb74e51b94549d921955",
"is_direct": false,
"sha256": "eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d2/70/2c92d7bc961ba43b7b21032b7622144de5f97dec14b62226533f6940798e/soupsieve-2.4-py3-none-any.whl",
"version": "2.4"
"url": "https://files.pythonhosted.org/packages/4c/f3/038b302fdfbe3be7da016777069f26ceefe11a681055ea1f7817546508e3/soupsieve-2.5-py3-none-any.whl",
"version": "2.5"
},
"typing-extensions": {
"sha256": "fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4",
"is_direct": false,
"sha256": "04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/31/25/5abcd82372d3d4a3932e1fa8c3dbf9efac10cc7c0d16e78467460571b404/typing_extensions-4.5.0-py3-none-any.whl",
"version": "4.5.0"
"url": "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl",
"version": "4.12.2"
},
"urllib3": {
"sha256": "aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42",
"is_direct": false,
"sha256": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472",
"type": "url",
"url": "https://files.pythonhosted.org/packages/7b/f5/890a0baca17a61c1f92f72b81d3c31523c99bec609e60c292ea55b387ae8/urllib3-1.26.15-py2.py3-none-any.whl",
"version": "1.26.15"
"url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl",
"version": "2.2.2"
},
"vobject": {
"sha256": "96512aec74b90abb71f6b53898dd7fe47300cc940104c4f79148f0671f790101",
"is_direct": false,
"sha256": "67ebec81ee39fc60b7355ce077f850d5f13d99d08b110fa1abcfdbb516205e20",
"type": "url",
"url": "https://files.pythonhosted.org/packages/da/ce/27c48c0e39cc69ffe7f6e3751734f6073539bf18a0cfe564e973a3709a52/vobject-0.9.6.1.tar.gz",
"version": "0.9.6.1"
"url": "https://files.pythonhosted.org/packages/a2/f2/ea094c009f962bd2fda9851bd54cd32b20721c9228842df2eefc1122aa40/vobject-0.9.7-py2.py3-none-any.whl",
"version": "0.9.7"
},
"werkzeug": {
"sha256": "56433961bc1f12533306c624f3be5e744389ac61d722175d543e1751285da612",
"is_direct": false,
"sha256": "fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8",
"type": "url",
"url": "https://files.pythonhosted.org/packages/f6/f8/9da63c1617ae2a1dec2fbf6412f3a0cfe9d4ce029eccbda6e1e4258ca45f/Werkzeug-2.2.3-py3-none-any.whl",
"version": "2.2.3"
"url": "https://files.pythonhosted.org/packages/9d/6e/e792999e816d19d7fcbfa94c730936750036d65656a76a5a688b57a656c4/werkzeug-3.0.3-py3-none-any.whl",
"version": "3.0.3"
},
"xlrd": {
"is_direct": false,
"sha256": "6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd",
"type": "url",
"url": "https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl",
"version": "2.0.1"
},
"xlsxwriter": {
"sha256": "5eaaf3c6f791cba1dd1c3065147c35982180f693436093aabe5b7d6c16148e95",
"is_direct": false,
"sha256": "ecfd5405b3e0e228219bcaf24c2ca0915e012ca9464a14048021d21a995d490e",
"type": "url",
"url": "https://files.pythonhosted.org/packages/87/b9/bc9e4fe0c6a2656d0baa40aa324f9c11e07e5bcec51be9e90ee4deebb309/XlsxWriter-3.0.9-py3-none-any.whl",
"version": "3.0.9"
"url": "https://files.pythonhosted.org/packages/a7/ea/53d1fe468e63e092cf16e2c18d16f50c29851242f9dd12d6a66e0d7f0d02/XlsxWriter-3.2.0-py3-none-any.whl",
"version": "3.2.0"
},
"xlwt": {
"is_direct": false,
"sha256": "a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e",
"type": "url",
"url": "https://files.pythonhosted.org/packages/44/48/def306413b25c3d01753603b1a222a011b8621aed27cd7f89cbc27e6b0f4/xlwt-1.3.0-py2.py3-none-any.whl",
"version": "1.3.0"
},
"zeep": {
"is_direct": false,
"sha256": "6754feb4c34a4b6d65fbc359252bf6654dcce3937bf1d95aae4402a60a8f5939",
"type": "url",
"url": "https://files.pythonhosted.org/packages/57/49/1091bd708f8892dc2ed5155bdf71ff51fcde75df137d65ac53f5d7f4fa25/zeep-4.2.1-py3-none-any.whl",
"version": "4.2.1"
},
"zope-event": {
"sha256": "73d9e3ef750cca14816a9c322c7250b0d7c9dbc337df5d1b807ff8d3d0b9e97c",
"is_direct": false,
"sha256": "2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26",
"type": "url",
"url": "https://files.pythonhosted.org/packages/8b/a8/3ab9648dc08d2ab7543145ec174a2d982d08fb996d50d9a4d3e057da7132/zope.event-4.6-py2.py3-none-any.whl",
"version": "4.6"
"url": "https://files.pythonhosted.org/packages/fe/42/f8dbc2b9ad59e927940325a22d6d3931d630c3644dae7e2369ef5d9ba230/zope.event-5.0-py3-none-any.whl",
"version": "5.0"
},
"zope-interface": {
"sha256": "4407b1435572e3e1610797c9203ad2753666c62883b921318c5403fb7139dec2",
"is_direct": false,
"sha256": "3d136e5b8821073e1a09dde3eb076ea9988e7010c54ffe4d39701adf0c303438",
"type": "url",
"url": "https://files.pythonhosted.org/packages/52/a4/0542257be378de62e5c7fc092f26eba284bfb628de76ff3b5f9d152d4819/zope.interface-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "6.0"
"url": "https://files.pythonhosted.org/packages/8b/8e/e7db82689025d75b8095f2673dc6551f0f847eaf60748532e026edc6386c/zope.interface-6.4.post2-cp39-cp39-macosx_11_0_arm64.whl",
"version": "6.4.post2"
}
},
"targets": {
@ -365,7 +422,6 @@
"docutils": [],
"gevent": [
"greenlet",
"setuptools",
"zope-event",
"zope-interface"
],
@ -457,6 +513,7 @@
"typing-extensions"
],
"reportlab": [
"chardet",
"pillow"
],
"requests": [
@ -466,8 +523,7 @@
"urllib3"
],
"requests-file": [
"requests",
"six"
"requests"
],
"requests-toolbelt": [
"requests"
@ -505,5 +561,5 @@
}
}
},
"invalidationHash": "5bfb25a26f8952e3cf46ae5c3a8e4e364312c17306e83b9a7a80e6ffbae478a4"
"invalidationHash": "15429d79da5c72730fbe3adf7ed6aa08d0eabba69e7c5e1371edce5785531eb3"
}

View File

@ -2,6 +2,7 @@
"fetchPipMetadata": {
"sources": {
"pillow": {
"is_direct": false,
"sha256": "bf548479d336726d7a0eceb6e767e179fbde37833ae42794602631a070d630f1",
"type": "url",
"url": "https://files.pythonhosted.org/packages/00/d5/4903f310765e0ff2b8e91ffe55031ac6af77d982f0156061e20a4d1a8b2d/Pillow-9.5.0.tar.gz",

View File

@ -136,7 +136,7 @@ in {
# with the intention to keep modules independent.
fetchPipMetadataScript = import ../../../pkgs/fetchPipMetadata/script.nix {
inherit lib;
inherit (cfg) env pypiSnapshotDate pipFlags pipVersion requirementsList requirementsFiles nativeBuildInputs;
inherit (cfg) env pipFlags pipVersion requirementsList requirementsFiles nativeBuildInputs;
inherit (config.deps) writePureShellScript nix;
inherit (config.paths) findRoot;
inherit (nixpkgs) fetchFromGitHub fetchurl gitMinimal nix-prefetch-scripts openssh python3 rustPlatform writeText;

View File

@ -55,6 +55,10 @@ in {
'';
example = "2023-01-01";
default = null;
apply = d:
if d != null
then l.warn "pypiSnapshot date has been removed, as we didn't see a need for it anymore. Please let us now if you do." d
else d;
};
pipFlags = l.mkOption {
type = t.listOf t.str;

View File

@ -32,7 +32,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-08-27";
requirementsList =
pyproject.build-system.requires
or []

View File

@ -12,21 +12,25 @@
nixpkgs,
...
}: let
system = "x86_64-linux";
# A helper that helps us define the attributes below for
# all systems we care about.
eachSystem = nixpkgs.lib.genAttrs [
"x86_64-linux"
];
in {
# All packages defined in ./packages/<name> are automatically added to the flake outputs
# e.g., 'packages/hello/default.nix' becomes '.#packages.hello'
packages.${system}.default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
packages = eachSystem (system: {
default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
});
};
}

View File

@ -2,10 +2,11 @@
"fetchPipMetadata": {
"sources": {
"setuptools": {
"sha256": "3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b",
"is_direct": false,
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/4f/ab/0bcfebdfc3bfa8554b2b2c97a555569c4c1ebc74ea288741ea8326c51906/setuptools-68.1.2-py3-none-any.whl",
"version": "68.1.2"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
}
},
"targets": {
@ -14,5 +15,5 @@
}
}
},
"invalidationHash": "6be3a43e2b4f000cc9324bfc4eacca5646d482d679a78865167b72f0291a3c63"
"invalidationHash": "9c4b2f66ddde1fefed7b51865798d44fb21ec37b48cd9b3b4ddd76a5f2bbed3c"
}

View File

@ -32,7 +32,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-08-27";
requirementsList =
pyproject.build-system.requires
or []

View File

@ -12,21 +12,25 @@
nixpkgs,
...
}: let
system = "x86_64-linux";
# A helper that helps us define the attributes below for
# all systems we care about.
eachSystem = nixpkgs.lib.genAttrs [
"x86_64-linux"
];
in {
# All packages defined in ./packages/<name> are automatically added to the flake outputs
# e.g., 'packages/hello/default.nix' becomes '.#packages.hello'
packages.${system}.default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
packages = eachSystem (system: {
default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
});
};
}

View File

@ -2,40 +2,46 @@
"fetchPipMetadata": {
"sources": {
"gevent": {
"sha256": "c92b837b60e850c50fc6d723d1e363e786d37fd9d51e564e07df52ad5e8a86d4",
"is_direct": false,
"sha256": "6f947a9abc1a129858391b3d9334c45041c08a0f23d14333d5b844b6e5c17a07",
"type": "url",
"url": "https://files.pythonhosted.org/packages/f7/88/76bde5b2dd9cbe0897257853ca0bf620342bec8cf05a7197b97fec7116de/gevent-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "23.7.0"
"url": "https://files.pythonhosted.org/packages/15/9e/e775a6b261bd871f37a2aae4c335d150f2c64c54c166e8dd8cf63210b445/gevent-24.2.1-cp310-cp310-macosx_11_0_universal2.whl",
"version": "24.2.1"
},
"greenlet": {
"sha256": "d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470",
"is_direct": false,
"sha256": "9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a",
"type": "url",
"url": "https://files.pythonhosted.org/packages/6e/11/a1f1af20b6a1a8069bc75012569d030acb89fd7ef70f888b6af2f85accc6/greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.0.2"
"url": "https://files.pythonhosted.org/packages/a6/64/bea53c592e3e45799f7c8039a8ee7d6883c518eafef1fcae60beb776070f/greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl",
"version": "3.0.3"
},
"setuptools": {
"sha256": "3d8083eed2d13afc9426f227b24fd1659489ec107c0e86cec2ffdde5c92e790b",
"is_direct": false,
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/4f/ab/0bcfebdfc3bfa8554b2b2c97a555569c4c1ebc74ea288741ea8326c51906/setuptools-68.1.2-py3-none-any.whl",
"version": "68.1.2"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
},
"websocket": {
"is_direct": false,
"sha256": "42b506fae914ac5ed654e23ba9742e6a342b1a1c3eb92632b6166c65256469a4",
"type": "url",
"url": "https://files.pythonhosted.org/packages/f2/6d/a60d620ea575c885510c574909d2e3ed62129b121fa2df00ca1c81024c87/websocket-0.2.1.tar.gz",
"version": "0.2.1"
},
"zope-event": {
"is_direct": false,
"sha256": "2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26",
"type": "url",
"url": "https://files.pythonhosted.org/packages/fe/42/f8dbc2b9ad59e927940325a22d6d3931d630c3644dae7e2369ef5d9ba230/zope.event-5.0-py3-none-any.whl",
"version": "5.0"
},
"zope-interface": {
"sha256": "48f4d38cf4b462e75fac78b6f11ad47b06b1c568eb59896db5b6ec1094eb467f",
"is_direct": false,
"sha256": "762e616199f6319bb98e7f4f27d254c84c5fb1c25c908c2a9d0f92b92fb27530",
"type": "url",
"url": "https://files.pythonhosted.org/packages/36/79/a99f5798a53df407554e00c1cc70ac5a900fc879853cc1a9edd7016bf2d2/zope.interface-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "6.0"
"url": "https://files.pythonhosted.org/packages/41/02/cb716bc3e9cc8c18fb94d49dcacadf771120df8866b389302acdb811557d/zope.interface-6.4.post2-cp310-cp310-macosx_11_0_arm64.whl",
"version": "6.4.post2"
}
},
"targets": {
@ -60,5 +66,5 @@
}
}
},
"invalidationHash": "106f9e28cb3d91f0e8ea99c146f59ee00fef841eff5b0846c5e829eeb4fc67e7"
"invalidationHash": "3eb166ae439855ab9d30d807d3c42b4be4d87927881af564cc1a73420219fbe3"
}

View File

@ -24,7 +24,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-08-27";
requirementsList =
pyproject.build-system.requires
or []

View File

@ -9,9 +9,7 @@
lib,
dream2nix,
...
}: let
l = lib // builtins;
in {
}: {
imports = [
dream2nix.modules.dream2nix.nodejs-package-lock
dream2nix.modules.dream2nix.nodejs-granular
@ -64,7 +62,6 @@ in {
};
pip = {
pypiSnapshotDate = "2023-05-30";
requirementsList = [
"${config.name}==${config.version}"
"setuptools"

View File

@ -12,21 +12,25 @@
nixpkgs,
...
}: let
system = "x86_64-linux";
# A helper that helps us define the attributes below for
# all systems we care about.
eachSystem = nixpkgs.lib.genAttrs [
"x86_64-linux"
];
in {
# All packages defined in ./packages/<name> are automatically added to the flake outputs
# e.g., 'packages/hello/default.nix' becomes '.#packages.hello'
packages.${system}.default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
packages = eachSystem (system: {
default = dream2nix.lib.evalModules {
packageSets.nixpkgs = inputs.dream2nix.inputs.nixpkgs.legacyPackages.${system};
modules = [
./default.nix
{
paths.projectRoot = ./.;
# can be changed to ".git" or "flake.nix" to get rid of .project-root
paths.projectRootFile = "flake.nix";
paths.package = ./.;
}
];
};
});
};
}

View File

@ -2,82 +2,95 @@
"fetchPipMetadata": {
"sources": {
"bleach": {
"sha256": "33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4",
"is_direct": false,
"sha256": "3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6",
"type": "url",
"url": "https://files.pythonhosted.org/packages/ac/e2/dfcab68c9b2e7800c8f06b85c76e5f978d05b195a958daa9b1dda54a1db6/bleach-6.0.0-py3-none-any.whl",
"version": "6.0.0"
"url": "https://files.pythonhosted.org/packages/ea/63/da7237f805089ecc28a3f36bca6a21c31fcbc2eb380f3b8f1be3312abd14/bleach-6.1.0-py3-none-any.whl",
"version": "6.1.0"
},
"cffi": {
"sha256": "dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
"is_direct": false,
"sha256": "e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614",
"type": "url",
"url": "https://files.pythonhosted.org/packages/88/89/c34caf63029fb7628ec2ebd5c88ae0c9bd17db98c812e4065a4d020ca41f/cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.15.1"
"url": "https://files.pythonhosted.org/packages/c9/7c/43d81bdd5a915923c3bad5bb4bff401ea00ccc8e28433fb6083d2e3bf58e/cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "1.16.0"
},
"html5lib": {
"is_direct": false,
"sha256": "0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl",
"version": "1.1"
},
"isso": {
"is_direct": false,
"sha256": "ab514c5ebddd1af8329b13eeaa6ddf90a9a68303603653e7daffb7b89f092834",
"type": "url",
"url": "https://files.pythonhosted.org/packages/27/a0/068411a0be2bdf2e5b8d569ac5c71f9199be4223620dc600264c2c69d5a9/isso-0.13.0-py3-none-any.whl",
"version": "0.13.0"
},
"itsdangerous": {
"sha256": "2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44",
"is_direct": false,
"sha256": "c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef",
"type": "url",
"url": "https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl",
"version": "2.1.2"
"url": "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl",
"version": "2.2.0"
},
"jinja2": {
"sha256": "6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61",
"is_direct": false,
"sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d",
"type": "url",
"url": "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl",
"version": "3.1.2"
"url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl",
"version": "3.1.4"
},
"markupsafe": {
"sha256": "28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323",
"is_direct": false,
"sha256": "2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f",
"type": "url",
"url": "https://files.pythonhosted.org/packages/3d/66/2f636ba803fd6eb4cee7b3106ae02538d1e84a7fb7f4f8775c6528a87d31/MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.1.2"
"url": "https://files.pythonhosted.org/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"version": "2.1.5"
},
"misaka": {
"is_direct": false,
"sha256": "62f35254550095d899fc2ab8b33e156fc5e674176f074959cbca43cf7912ecd7",
"type": "url",
"url": "https://files.pythonhosted.org/packages/fa/87/b1020510a00aba1b936477e54180b143df654c565b84936b0b3e85272cf2/misaka-2.1.1.tar.gz",
"version": "2.1.1"
},
"pycparser": {
"sha256": "8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
"is_direct": false,
"sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc",
"type": "url",
"url": "https://files.pythonhosted.org/packages/62/d5/5f610ebe421e85889f2e55e33b7f9a6795bd982198517d912eb1c76e1a53/pycparser-2.21-py2.py3-none-any.whl",
"version": "2.21"
"url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl",
"version": "2.22"
},
"setuptools": {
"sha256": "5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f",
"is_direct": false,
"sha256": "b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05",
"type": "url",
"url": "https://files.pythonhosted.org/packages/f5/2c/074ab1c5be9c7d523d8d6d69d1f46f450fe7f11713147dc9e779aa4ca4ea/setuptools-67.8.0-py3-none-any.whl",
"version": "67.8.0"
"url": "https://files.pythonhosted.org/packages/42/54/2a8ecfcc9a714a6fbf86559a4b0f50b126a4ac4269ea8134f2c75c3e73de/setuptools-70.2.0-py3-none-any.whl",
"version": "70.2.0"
},
"six": {
"is_direct": false,
"sha256": "8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254",
"type": "url",
"url": "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl",
"version": "1.16.0"
},
"webencodings": {
"is_direct": false,
"sha256": "a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78",
"type": "url",
"url": "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl",
"version": "0.5.1"
},
"werkzeug": {
"sha256": "48e5e61472fee0ddee27ebad085614ebedb7af41e88f687aaf881afb723a162f",
"is_direct": false,
"sha256": "fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8",
"type": "url",
"url": "https://files.pythonhosted.org/packages/c2/2f/f0dc628295bd23571c962d5a349307d9c8796a05bfca6571659eaded38e2/Werkzeug-2.3.4-py3-none-any.whl",
"version": "2.3.4"
"url": "https://files.pythonhosted.org/packages/9d/6e/e792999e816d19d7fcbfa94c730936750036d65656a76a5a688b57a656c4/werkzeug-3.0.3-py3-none-any.whl",
"version": "3.0.3"
}
},
"targets": {
@ -119,5 +132,5 @@
}
}
},
"invalidationHash": "255d7306e2485fb3c4e4419fc044fed9dade9ea3d0748396036c0e31ea72a03f"
"invalidationHash": "4a6973513f7886d3dad9a4d53e0cf3774b9271c713f4caed6041e082f68d09dc"
}

View File

@ -1,58 +0,0 @@
{
lib,
buildPythonPackage,
certifi,
cryptography,
fetchFromGitHub,
pylsqpack,
pyopenssl,
pytestCheckHook,
pythonOlder,
service-identity,
setuptools,
wheel,
}:
buildPythonPackage rec {
pname = "aioquic-mitmproxy";
version = "0.9.21.1";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "meitinger";
repo = "aioquic_mitmproxy";
rev = "refs/tags/${version}";
hash = "sha256-eD3eICE9jS1jyqMgWwcv6w3gkR0EyGcKwgSXhasXNeA=";
};
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [
certifi
cryptography
pylsqpack
pyopenssl
service-identity
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"aioquic"
];
doCheck = false;
meta = with lib; {
description = "QUIC and HTTP/3 implementation in Python";
homepage = "https://github.com/meitinger/aioquic_mitmproxy";
license = licenses.bsd3;
maintainers = with maintainers; [fab];
};
}

View File

@ -1,111 +0,0 @@
"""
This script is part of fetchPipMetadata
It is meant to be used with mitmproxy via `--script`
It will filter api repsonses from the pypi.org api (used by pip),
to only contain files with release date < pypiSnapshotDate
For retrieving the release dates for files, it uses the pypi.org json api
It has to do one extra api request for each queried package name
"""
import json
import os
import sys
import ssl
from urllib.request import Request, urlopen
from pathlib import Path
import dateutil.parser
import gzip
from mitmproxy import http
"""
Query the pypi json api to get timestamps for all release files of the given pname.
return all file names which are newer than the given timestamp
"""
def get_files_to_hide(pname, max_ts):
ca_file = Path(os.getenv("HOME")) / ".ca-cert.pem"
context = ssl.create_default_context(cafile=ca_file)
if not ca_file.exists():
print("mitmproxy ca not found")
sys.exit(1)
# query the api
url = f"https://pypi.org/pypi/{pname}/json"
req = Request(url)
req.add_header("Accept-Encoding", "gzip")
with urlopen(req, context=context) as response:
content = gzip.decompress(response.read())
resp = json.loads(content)
# collect files to hide
files = set()
for ver, releases in resp["releases"].items():
for release in releases:
ts = dateutil.parser.parse(release["upload_time"]).timestamp()
if ts > max_ts:
files.add(release["filename"])
return files
# accept unix timestamp or human readable format
try:
max_ts = int(os.getenv("pypiSnapshotDate"))
except ValueError:
max_date = dateutil.parser.parse(os.getenv("pypiSnapshotDate"))
max_ts = max_date.timestamp()
"""
Response format:
{
"files": [
{
"filename": "pip-0.2.tar.gz",
"hashes": {
"sha256": "88bb8d029e1bf4acd0e04d300104b7440086f94cc1ce1c5c3c31e3293aee1f81"
},
"requires-python": null,
"url": "https://files.pythonhosted.org/packages/3d/9d/1e313763bdfb6a48977b65829c6ce2a43eaae29ea2f907c8bbef024a7219/pip-0.2.tar.gz",
"yanked": false
},
{
"filename": "pip-0.2.1.tar.gz",
"hashes": {
"sha256": "83522005c1266cc2de97e65072ff7554ac0f30ad369c3b02ff3a764b962048da"
},
"requires-python": null,
"url": "https://files.pythonhosted.org/packages/18/ad/c0fe6cdfe1643a19ef027c7168572dac6283b80a384ddf21b75b921877da/pip-0.2.1.tar.gz",
"yanked": false
}
}
"""
def responseheaders(flow: http.HTTPFlow) -> None:
if "/simple/" not in flow.request.url:
flow.response.stream = True
def response(flow: http.HTTPFlow) -> None:
if not "/simple/" in flow.request.url:
return
pname = flow.request.url.strip("/").split("/")[-1]
badFiles = get_files_to_hide(pname, max_ts)
keepFile = lambda file: file["filename"] not in badFiles
data = json.loads(flow.response.text)
if badFiles:
print(f"removing the following files form the API response:\n {badFiles}")
data["files"] = list(filter(keepFile, data["files"]))
flow.response.text = json.dumps(data)
# prevent the modified response from ending up in the pip cache
flow.response.headers["Vary"] = "*"
# See this comment in cachecontrol/controller.py in pip:
# https://tools.ietf.org/html/rfc7234#section-4.1:
# A Vary header field-value of "*" always fails to match.
# Storing such a response leads to a deserialization warning
# during cache lookup and is not allowed to ever be served,
# so storing it can be avoided.

View File

@ -1,153 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
buildPythonPackage,
pythonOlder,
# Mitmproxy requirements
aioquic-mitmproxy,
asgiref,
blinker,
brotli,
certifi,
cryptography,
flask,
h11,
h2,
hyperframe,
kaitaistruct,
ldap3,
mitmproxy-macos,
mitmproxy-rs,
msgpack,
passlib,
protobuf,
publicsuffix2,
pyopenssl,
pyparsing,
pyperclip,
ruamel-yaml,
setuptools,
sortedcontainers,
tornado,
urwid-mitmproxy,
wsproto,
zstandard,
# Additional check requirements
hypothesis,
parver,
pytest-asyncio,
pytest-timeout,
pytest-xdist,
pytestCheckHook,
requests,
pythonRelaxDepsHook,
}:
buildPythonPackage rec {
pname = "mitmproxy";
version = "10.1.6";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "mitmproxy";
repo = "mitmproxy";
rev = "refs/tags/${version}";
hash = "sha256-W+gxK5bNCit1jK9ojwE/HVjUz6OJcNw6Ac1lN5FxGgw=";
};
pythonRelaxDeps = [
"pyopenssl"
"cryptography"
];
nativeBuildInputs = [
pythonRelaxDepsHook
];
propagatedBuildInputs =
[
aioquic-mitmproxy
asgiref
blinker
brotli
certifi
cryptography
flask
h11
h2
hyperframe
kaitaistruct
ldap3
mitmproxy-rs
msgpack
passlib
protobuf
publicsuffix2
pyopenssl
pyparsing
pyperclip
ruamel-yaml
setuptools
sortedcontainers
tornado
urwid-mitmproxy
wsproto
zstandard
]
++ lib.optionals stdenv.isDarwin [
mitmproxy-macos
];
nativeCheckInputs = [
hypothesis
parver
pytest-asyncio
pytest-timeout
pytest-xdist
pytestCheckHook
requests
];
__darwinAllowLocalNetworking = true;
preCheck = ''
export HOME=$(mktemp -d)
'';
disabledTests = [
# Tests require a git repository
"test_get_version"
# https://github.com/mitmproxy/mitmproxy/commit/36ebf11916704b3cdaf4be840eaafa66a115ac03
# Tests require terminal
"test_integration"
"test_contentview_flowview"
"test_flowview"
# ValueError: Exceeds the limit (4300) for integer string conversion
"test_roundtrip_big_integer"
"test_wireguard"
"test_commands_exist"
"test_statusbar"
# AssertionError: Playbook mismatch!
"test_untrusted_cert"
"test_mitmproxy_ca_is_untrusted"
];
disabledTestPaths = [
# teardown of half the tests broken
"test/mitmproxy/addons/test_onboarding.py"
];
dontUsePytestXdist = true;
pythonImportsCheck = ["mitmproxy"];
meta = with lib; {
description = "Man-in-the-middle proxy";
homepage = "https://mitmproxy.org/";
changelog = "https://github.com/mitmproxy/mitmproxy/blob/${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [kamilchm SuperSandro2000];
};
}

View File

@ -15,10 +15,8 @@
];
propagatedBuildInputs = with python3.pkgs; [
packaging
certifi
flit-core
nix-prefetch-scripts
python-dateutil
pip
];

View File

@ -1,14 +1,6 @@
# fetchPipMetadata downloads python packages specified by executing
# `pip download` on a source tree, or a list of requirements.
# This fetcher requires a maximum date 'pypiSnapshotDate' being specified.
# The result will be the same as if `pip download` would have been executed
# at the point in time specified by pypiSnapshotDate.
# This is ensured by putting pip behind a local proxy filtering the
# api responses from pypi.org to only contain files for which the
# release date is lower than the specified pypiSnapshotDate.
# TODO: ignore if packages are yanked
# TODO: for pypiSnapshotDate only allow timestamp or format 2023-01-01
# TODO: Error if pypiSnapshotDate points to the future
{
lib,
writeText,
@ -29,8 +21,6 @@
env ? {},
wheelVersion ? "0.40.0",
nativeBuildInputs ? [],
# maximum release date for packages
pypiSnapshotDate ? null,
# executable that returns the project root
findRoot,
nix,
@ -51,97 +41,9 @@
;
};
pythonFixed = python3.override {
packageOverrides = curr: prev: {
/*
downgrading to version 10.1.*, as 10.2.0 introduces a breakage triggering:
[17:42:11.824][[::1]:56958] client connect
[17:42:11.909][[::1]:56958] server connect pypi.org:443 (151.101.64.223:443)
[17:42:11.958] Deferring layer decision, not enough data: [...]
*/
aioquic-mitmproxy = curr.callPackage ./aioquic-mitmproxy.nix {};
urwid-mitmproxy = curr.callPackage ./urwid-mitmproxy.nix {};
mitmproxy = curr.callPackage ./mitmproxy.nix {};
# mitmproxy = prev.mitmproxy.overridePythonAttrs (old: rec {
# version = "10.1.6";
# src = fetchFromGitHub {
# owner = "mitmproxy";
# repo = "mitmproxy";
# rev = "refs/tags/${version}";
# hash = "sha256-W+gxK5bNCit1jK9ojwE/HVjUz6OJcNw6Ac1lN5FxGgw=";
# };
# doCheck = false;
# pyproject = true;
# pythonRelaxDeps = [
# "pyopenssl"
# "cryptography"
# ];
# propagatedBuildInputs = [
# curr.aioquic-mitmproxy
# ];
# });
mitmproxy-rs = prev.mitmproxy-rs.overrideAttrs (old: rec {
version = "0.4.1";
src = fetchFromGitHub {
owner = "mitmproxy";
repo = "mitmproxy_rs";
rev = version;
hash = "sha256-Vc7ez/W40CefO2ZLAHot14p478pDPtQor865675vCtI=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = "${src}/Cargo.lock";
outputHashes = {
"internet-packet-0.1.0" = "sha256-VtEuCE1sulBIFVymh7YW7VHCuIBjtb6tHoPz2tjxX+Q=";
};
};
});
mitmproxy-macos = prev.buildPythonPackage rec {
pname = "mitmproxy-macos";
version = "0.4.1";
format = "wheel";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/85/79/f11ba4cf6e89408ed52d9317c00d3ae4ad18c51cf710821c9342fc95cd0f/mitmproxy_macos-0.5.1-py3-none-any.whl";
hash = "sha256-P7T8mTCzMQEphnWuumZF3ucb4XYgyMsHyBC6i+1sKkI=";
};
pythonImportsCheck = ["mitmproxy_macos"];
nativeBuildInputs = [
prev.hatchling
];
};
};
};
# We use nixpkgs python3 to run mitmproxy, see function parameters
pythonWithMitmproxy =
pythonFixed.withPackages
(ps: [ps.mitmproxy ps.python-dateutil]);
path = [nix gitMinimal openssh] ++ nativeBuildInputs;
args = writeText "pip-args" (builtins.toJSON {
# convert pypiSnapshotDate to string and integrate into finalAttrs
pypiSnapshotDate =
if pypiSnapshotDate == null
then null
else builtins.toString pypiSnapshotDate;
filterPypiResponsesScript =
if pypiSnapshotDate == null
then null
else ./filter-pypi-responses.py;
# the python interpreter used to run the proxy script
mitmProxy =
if pypiSnapshotDate == null
then null
else "${pythonWithMitmproxy}/bin/mitmdump";
# add some variables to the derivation to integrate them into finalAttrs
inherit
pipVersion

View File

@ -4,23 +4,14 @@ import sys
import subprocess
import tempfile
import json
import dateutil.parser
from pathlib import Path
from .lock_file_from_report import lock_file_from_report
from .pypi_proxy import PypiProxy
__version__ = "1.0.0"
def get_max_date(snapshot_date):
try:
return int(snapshot_date)
except ValueError:
return dateutil.parser.parse(snapshot_date)
def prepare_venv(venv_path, pip_version, wheel_version, python_interpreter: Path):
subprocess.run([python_interpreter, "-m", "venv", venv_path], check=True)
subprocess.run(
@ -64,24 +55,6 @@ def fetch_pip_metadata():
with tempfile.TemporaryDirectory() as home:
home = Path(home)
if json_args.get("pypiSnapshotDate", False):
print(
f"selected maximum release date for python packages: {get_max_date(json_args['pypiSnapshotDate'])}", # noqa: E501
file=sys.stderr,
)
proxy = PypiProxy(
executable=json_args["mitmProxy"],
args=[
"--ignore-hosts",
".*files.pythonhosted.org.*",
"--script",
json_args["filterPypiResponsesScript"],
],
env={"pypiSnapshotDate": json_args["pypiSnapshotDate"], "HOME": home},
)
else:
proxy = False
venv_path = prepare_venv(
(home / ".venv").absolute(),
json_args["pipVersion"],
@ -95,13 +68,6 @@ def fetch_pip_metadata():
"--report",
str(home / "report.json"),
]
if proxy:
flags += [
"--proxy",
f"https://localhost:{proxy.port}",
"--cert",
proxy.cafile,
]
for req in json_args["requirementsList"]:
if req:
flags.append(req)
@ -122,9 +88,6 @@ def fetch_pip_metadata():
stdout=sys.stderr,
stderr=sys.stderr,
)
if proxy:
proxy.kill()
with open(home / "report.json", "r") as f:
report = json.load(f)

View File

@ -1,88 +0,0 @@
import sys
import socket
import subprocess
import time
import urllib.request
from pathlib import Path
import certifi
class PypiProxy:
"""
Wrapper for mitmproxy.org
We start an instance of mitmproxy to intercept requests by pip
to ensure that pip doesn't see files which were published after
the pypiSnapshotDate given to our script.
It's generic enough that it should work with python mirrors
besides pypi.org as well, but URLs for actual distribution files
should not be intercepted for performance reasons and we
currently just ignore files.pythonhosted.org by default.
"""
def __init__(self, executable, args, env):
self.env = env
self.port = self.find_free_port()
self.proc = subprocess.Popen(
[
executable,
"--listen-port",
str(self.port),
"--anticache",
*args,
],
stdout=sys.stderr,
stderr=sys.stderr,
env=env,
)
self.wait("http://pypi.org", 10)
self.cafile = self.generate_ca_bundle(".ca-cert.pem")
def find_free_port(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("", 0))
port = sock.getsockname()[1]
sock.close()
return port
def wait(self, test_url, timeout):
"""
Wait for a bit until a given url is reachable via the proxy,
as the latter starts asynchronous.
"""
timeout = time.time() + timeout
req = urllib.request.Request(test_url)
req.set_proxy(f"127.0.0.1:{self.port}", "http")
while time.time() < timeout:
try:
res = urllib.request.urlopen(req, None, 5)
if res.status < 400:
break
except urllib.error.URLError:
pass
finally:
time.sleep(1)
def generate_ca_bundle(self, path):
"""
Because we only proxy *some* calls, but ignore i.e.
files.pythonhosted.org we need to combine upstream ca certificates
and the one generated by mitm proxy.
"""
home = Path(self.env["HOME"])
path = home / path
with open(home / ".mitmproxy/mitmproxy-ca-cert.pem", "r") as f:
mitmproxy_cacert = f.read()
with open(certifi.where(), "r") as f:
certifi_cacert = f.read()
with open(path, "w") as f:
f.write(mitmproxy_cacert)
f.write("\n")
f.write(certifi_cacert)
return path
def kill(self):
self.proc.kill()

View File

@ -11,7 +11,7 @@ name = "fetch_pip_metadata"
description = "internal tooling of dream2nix python subsystem"
authors = [{name = "Paul Haerle", email = "hello@phaer.org"}]
dynamic = ["version"]
dependencies = ["packaging", "certifi", "python-dateutil"]
dependencies = ["packaging"]
scripts = {fetch_pip_metadata = "fetch_pip_metadata:fetch_pip_metadata"}
[tool.pytest.ini_options]

View File

@ -1,37 +0,0 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
fetchpatch,
glibcLocales,
pythonOlder,
unittestCheckHook,
}:
buildPythonPackage rec {
pname = "urwid-mitmproxy";
version = "2.1.2.1";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "mitmproxy";
repo = "urwid-mitmproxy";
rev = "refs/tags/${version}";
hash = "sha256-93AauYWbrG/2smAhbNKGE0twGJZ2u9gBetlXGCpciH8=";
};
pythonImportsCheck = [
"urwid"
];
# Tests which assert on strings don't decode results correctly, see urwid
doCheck = false;
meta = with lib; {
description = "Urwid fork used by mitmproxy";
homepage = "https://github.com/mitmproxy/urwid-mitmproxy";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [fab];
};
}