From 49a1961faaa3c97ece6bc010fa97c0884326d8e8 Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 15:47:28 +0200 Subject: [PATCH 1/6] pip: set sys-specific default for paths.lockFile --- modules/dream2nix/pip/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/dream2nix/pip/default.nix b/modules/dream2nix/pip/default.nix index ba55b84e..3c78d67c 100644 --- a/modules/dream2nix/pip/default.nix +++ b/modules/dream2nix/pip/default.nix @@ -147,6 +147,9 @@ in { inherit (writers) writePureShellScript; }; + # pips lock files are platform-specific, so lets make this visible in its path + paths.lockFile = l.mkDefault "lock.${config.deps.python.system}.json"; + # Keep package metadata fetched by Pip in our lockfile lock.fields.fetchPipMetadata = { script = config.deps.fetchPipMetadataScript; From 2e5cf4294dc1889b3619668ad20eefc506660740 Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 16:23:42 +0200 Subject: [PATCH 2/6] set paths.lockfile for pip example... even with the new default, it's good to be explicit. And the examples will still refer to the main branch while running ci checks for this --- .../python-local-development-multiple-packages/default.nix | 1 + examples/packages/languages/python-local-development/default.nix | 1 + examples/packages/languages/python-packaging-ansible/default.nix | 1 + .../languages/python-packaging-apache-airflow/default.nix | 1 + examples/packages/languages/python-packaging-odoo/default.nix | 1 + examples/packages/languages/python-packaging-pillow/default.nix | 1 + 6 files changed, 6 insertions(+) diff --git a/examples/packages/languages/python-local-development-multiple-packages/default.nix b/examples/packages/languages/python-local-development-multiple-packages/default.nix index f5d6bb54..24f8e116 100644 --- a/examples/packages/languages/python-local-development-multiple-packages/default.nix +++ b/examples/packages/languages/python-local-development-multiple-packages/default.nix @@ -32,6 +32,7 @@ in { "subpkg2" ]; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { requirementsList = [ "${config.paths.package}/subpkg1" diff --git a/examples/packages/languages/python-local-development/default.nix b/examples/packages/languages/python-local-development/default.nix index 9c875684..b22f00f1 100644 --- a/examples/packages/languages/python-local-development/default.nix +++ b/examples/packages/languages/python-local-development/default.nix @@ -36,6 +36,7 @@ in { ]; }; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { # Setting editables.$pkg.null will link the current project root as an editable # for the root package (my-tool here), or otherwise copy the contents of mkDerivation.src diff --git a/examples/packages/languages/python-packaging-ansible/default.nix b/examples/packages/languages/python-packaging-ansible/default.nix index 58ccf1f2..49557eab 100644 --- a/examples/packages/languages/python-packaging-ansible/default.nix +++ b/examples/packages/languages/python-packaging-ansible/default.nix @@ -21,6 +21,7 @@ ]; }; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { requirementsList = ["${config.name}==${config.version}"]; }; diff --git a/examples/packages/languages/python-packaging-apache-airflow/default.nix b/examples/packages/languages/python-packaging-apache-airflow/default.nix index b075bc60..79ef9f6b 100644 --- a/examples/packages/languages/python-packaging-apache-airflow/default.nix +++ b/examples/packages/languages/python-packaging-apache-airflow/default.nix @@ -43,6 +43,7 @@ in { ]; }; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { requirementsList = [ "apache-airflow" diff --git a/examples/packages/languages/python-packaging-odoo/default.nix b/examples/packages/languages/python-packaging-odoo/default.nix index 33960300..749d586b 100644 --- a/examples/packages/languages/python-packaging-odoo/default.nix +++ b/examples/packages/languages/python-packaging-odoo/default.nix @@ -32,6 +32,7 @@ in { inherit src; }; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { requirementsList = [ "${src}" diff --git a/examples/packages/languages/python-packaging-pillow/default.nix b/examples/packages/languages/python-packaging-pillow/default.nix index 55be6a82..8f9e93e6 100644 --- a/examples/packages/languages/python-packaging-pillow/default.nix +++ b/examples/packages/languages/python-packaging-pillow/default.nix @@ -39,6 +39,7 @@ ]; }; + paths.lockFile = "lock.${config.deps.stdenv.system}.json"; pip = { requirementsList = ["${config.name}==${config.version}"]; pipFlags = [ From f679e624b44952aba6060402cc9b2df55c22701a Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 16:26:41 +0200 Subject: [PATCH 3/6] add x86_64-linux lock files --- .../lock.x86_64-linux.json | 275 +++ .../lock.x86_64-linux.json | 27 + .../lock.x86_64-linux.json | 73 + .../lock.x86_64-linux.json | 117 ++ .../lock.x86_64-linux.json | 1473 +++++++++++++++++ .../lock.x86_64-linux.json | 565 +++++++ .../lock.x86_64-linux.json | 19 + 7 files changed, 2549 insertions(+) create mode 100644 examples/packages/languages/python-local-development-machine-learning/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-local-development-multiple-packages/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-local-development/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-packaging-ansible/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-packaging-apache-airflow/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-packaging-odoo/lock.x86_64-linux.json create mode 100644 examples/packages/languages/python-packaging-pillow/lock.x86_64-linux.json diff --git a/examples/packages/languages/python-local-development-machine-learning/lock.x86_64-linux.json b/examples/packages/languages/python-local-development-machine-learning/lock.x86_64-linux.json new file mode 100644 index 00000000..c9476afd --- /dev/null +++ b/examples/packages/languages/python-local-development-machine-learning/lock.x86_64-linux.json @@ -0,0 +1,275 @@ +{ + "fetchPipMetadata": { + "sources": { + "filelock": { + "is_direct": false, + "sha256": "6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7", + "type": "url", + "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": { + "is_direct": false, + "sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", + "version": "3.1.4" + }, + "joblib": { + "is_direct": false, + "sha256": "06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", + "version": "1.4.2" + }, + "markupsafe": { + "is_direct": false, + "sha256": "2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "type": "url", + "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" + }, + "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": { + "is_direct": false, + "sha256": "28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/38/e9/5f72929373e1a0e8d142a130f3f97e6ff920070f87f91c4e13e40e0fba5a/networkx-3.3-py3-none-any.whl", + "version": "3.3" + }, + "numpy": { + "is_direct": false, + "sha256": "6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d6/a8/6a2419c40c7b6f7cb4ef52c532c88e55490c4fa92885964757d507adddce/numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "2.0.0" + }, + "nvidia-cublas-cu12": { + "is_direct": false, + "sha256": "ee53ccca76a6fc08fb9701aa95b6ceb242cdaab118c3bb152af4e579af792728", + "type": "url", + "url": "https://files.pythonhosted.org/packages/37/6d/121efd7382d5b0284239f4ab1fc1590d86d34ed4a4a2fdb13b30ca8e5740/nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl", + "version": "12.1.3.1" + }, + "nvidia-cuda-cupti-cu12": { + "is_direct": false, + "sha256": "e54fde3983165c624cb79254ae9818a456eb6e87a7fd4d56a2352c24ee542d7e", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7e/00/6b218edd739ecfc60524e585ba8e6b00554dd908de2c9c66c1af3e44e18d/nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", + "version": "12.1.105" + }, + "nvidia-cuda-nvrtc-cu12": { + "is_direct": false, + "sha256": "339b385f50c309763ca65456ec75e17bbefcbbf2893f462cb8b90584cd27a1c2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b6/9f/c64c03f49d6fbc56196664d05dba14e3a561038a81a638eeb47f4d4cfd48/nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", + "version": "12.1.105" + }, + "nvidia-cuda-runtime-cu12": { + "is_direct": false, + "sha256": "6e258468ddf5796e25f1dc591a31029fa317d97a0a94ed93468fc86301d61e40", + "type": "url", + "url": "https://files.pythonhosted.org/packages/eb/d5/c68b1d2cdfcc59e72e8a5949a37ddb22ae6cade80cd4a57a84d4c8b55472/nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", + "version": "12.1.105" + }, + "nvidia-cudnn-cu12": { + "is_direct": false, + "sha256": "5ccb288774fdfb07a7e7025ffec286971c06d8d7b4fb162525334616d7629ff9", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ff/74/a2e2be7fb83aaedec84f391f082cf765dfb635e7caa9b49065f73e4835d8/nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl", + "version": "8.9.2.26" + }, + "nvidia-cufft-cu12": { + "is_direct": false, + "sha256": "794e3948a1aa71fd817c3775866943936774d1c14e7628c74f6f7417224cdf56", + "type": "url", + "url": "https://files.pythonhosted.org/packages/86/94/eb540db023ce1d162e7bea9f8f5aa781d57c65aed513c33ee9a5123ead4d/nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl", + "version": "11.0.2.54" + }, + "nvidia-curand-cu12": { + "is_direct": false, + "sha256": "9d264c5036dde4e64f1de8c50ae753237c12e0b1348738169cd0f8a536c0e1e0", + "type": "url", + "url": "https://files.pythonhosted.org/packages/44/31/4890b1c9abc496303412947fc7dcea3d14861720642b49e8ceed89636705/nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl", + "version": "10.3.2.106" + }, + "nvidia-cusolver-cu12": { + "is_direct": false, + "sha256": "8a7ec542f0412294b15072fa7dab71d31334014a69f953004ea7a118206fe0dd", + "type": "url", + "url": "https://files.pythonhosted.org/packages/bc/1d/8de1e5c67099015c834315e333911273a8c6aaba78923dd1d1e25fc5f217/nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl", + "version": "11.4.5.107" + }, + "nvidia-cusparse-cu12": { + "is_direct": false, + "sha256": "f3b50f42cf363f86ab21f720998517a659a48131e8d538dc02f8768237bd884c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/65/5b/cfaeebf25cd9fdec14338ccb16f6b2c4c7fa9163aefcf057d86b9cc248bb/nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl", + "version": "12.1.0.106" + }, + "nvidia-nccl-cu12": { + "is_direct": false, + "sha256": "057f6bf9685f75215d0c53bf3ac4a10b3e6578351de307abad9e18a99182af56", + "type": "url", + "url": "https://files.pythonhosted.org/packages/4b/2a/0a131f572aa09f741c30ccd45a8e56316e8be8dfc7bc19bf0ab7cfef7b19/nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_x86_64.whl", + "version": "2.20.5" + }, + "nvidia-nvjitlink-cu12": { + "is_direct": false, + "sha256": "f9b37bc5c8cf7509665cb6ada5aaa0ce65618f2332b7d3e78e9790511f111212", + "type": "url", + "url": "https://files.pythonhosted.org/packages/75/bc/e0d0dbb85246a086ab14839979039647bce501d8c661a159b8b019d987b7/nvidia_nvjitlink_cu12-12.5.82-py3-none-manylinux2014_x86_64.whl", + "version": "12.5.82" + }, + "nvidia-nvtx-cu12": { + "is_direct": false, + "sha256": "dc21cf308ca5691e7c04d962e213f8a4aa9bbfa23d95412f452254c2caeb09e5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/da/d3/8057f0587683ed2fcd4dbfbdfdfa807b9160b809976099d36b8f60d08f03/nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl", + "version": "12.1.105" + }, + "pillow": { + "is_direct": false, + "sha256": "a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b5/5b/6651c288b08df3b8c1e2f8c1152201e0b25d240e22ddade0f1e242fc9fa0/pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", + "version": "10.4.0" + }, + "scikit-learn": { + "is_direct": false, + "sha256": "161808750c267b77b4a9603cf9c93579c7a74ba8486b1336034c2f1579546d21", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f2/60/6c589c91e474721efdcec82ea9cc5c743359e52637e46c364ee5236666ef/scikit_learn-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.5.1" + }, + "scipy": { + "is_direct": false, + "sha256": "42470ea0195336df319741e230626b6225a740fd9dce9642ca13e98f667047c0", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e2/20/15c8fe0dfebb6facd81b3d08bf45dfa080e305deb17172b0a40eba59e927/scipy-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.14.0" + }, + "sympy": { + "is_direct": false, + "sha256": "6b0b32a4673fb91bd3cac3b55406c8e01d53ae22780be467301cc452f6680c92", + "type": "url", + "url": "https://files.pythonhosted.org/packages/62/74/7e6c65ee89ff43942bffffdbb238634f16967bf327aee3c76efcf6e49587/sympy-1.13.0-py3-none-any.whl", + "version": "1.13.0" + }, + "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": "605a25b23944be5ab7c3467e843580e1d888b8066e5aaf17ff7bf9cc30001cc3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/cb/e2/1bd899d3eb60c6495cf5d0d2885edacac08bde7a1407eadeb2ab36eca3c7/torch-2.3.1-cp310-cp310-manylinux1_x86_64.whl", + "version": "2.3.1" + }, + "triton": { + "is_direct": false, + "sha256": "3c84595cbe5e546b1b290d2a58b1494df5a2ef066dd890655e5b8a8a92205c33", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d7/69/8a9fde07d2d27a90e16488cdfe9878e985a247b2496a4b5b1a2126042528/triton-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.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": { + "filelock": [], + "fsspec": [], + "jinja2": [ + "markupsafe" + ], + "joblib": [], + "markupsafe": [], + "mpmath": [], + "networkx": [], + "numpy": [], + "nvidia-cublas-cu12": [], + "nvidia-cuda-cupti-cu12": [], + "nvidia-cuda-nvrtc-cu12": [], + "nvidia-cuda-runtime-cu12": [], + "nvidia-cudnn-cu12": [ + "nvidia-cublas-cu12" + ], + "nvidia-cufft-cu12": [], + "nvidia-curand-cu12": [], + "nvidia-cusolver-cu12": [ + "nvidia-cublas-cu12", + "nvidia-cusparse-cu12", + "nvidia-nvjitlink-cu12" + ], + "nvidia-cusparse-cu12": [ + "nvidia-nvjitlink-cu12" + ], + "nvidia-nccl-cu12": [], + "nvidia-nvjitlink-cu12": [], + "nvidia-nvtx-cu12": [], + "pillow": [], + "scikit-learn": [ + "joblib", + "numpy", + "scipy", + "threadpoolctl" + ], + "scipy": [ + "numpy" + ], + "sympy": [ + "mpmath" + ], + "threadpoolctl": [], + "torch": [ + "filelock", + "fsspec", + "jinja2", + "networkx", + "nvidia-cublas-cu12", + "nvidia-cuda-cupti-cu12", + "nvidia-cuda-nvrtc-cu12", + "nvidia-cuda-runtime-cu12", + "nvidia-cudnn-cu12", + "nvidia-cufft-cu12", + "nvidia-curand-cu12", + "nvidia-cusolver-cu12", + "nvidia-cusparse-cu12", + "nvidia-nccl-cu12", + "nvidia-nvtx-cu12", + "sympy", + "triton", + "typing-extensions" + ], + "triton": [ + "filelock" + ], + "typing-extensions": [] + } + } + }, + "invalidationHash": "70927cbb56478f8e952deb1a0a08687c2f8016bffb1e0330c8f9a452a9cbbb2b" +} \ No newline at end of file diff --git a/examples/packages/languages/python-local-development-multiple-packages/lock.x86_64-linux.json b/examples/packages/languages/python-local-development-multiple-packages/lock.x86_64-linux.json new file mode 100644 index 00000000..26460316 --- /dev/null +++ b/examples/packages/languages/python-local-development-multiple-packages/lock.x86_64-linux.json @@ -0,0 +1,27 @@ +{ + "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" + } + }, + "targets": { + "default": { + "subpkg1": [ + "subpkg2" + ], + "subpkg2": [] + } + } + }, + "invalidationHash": "1c3ea22f49efe9faefcac00ba72b8bf9f2d9f657dd6c091252f11624a671e25b" +} \ No newline at end of file diff --git a/examples/packages/languages/python-local-development/lock.x86_64-linux.json b/examples/packages/languages/python-local-development/lock.x86_64-linux.json new file mode 100644 index 00000000..e2237e4d --- /dev/null +++ b/examples/packages/languages/python-local-development/lock.x86_64-linux.json @@ -0,0 +1,73 @@ +{ + "fetchPipMetadata": { + "sources": { + "certifi": { + "is_direct": false, + "sha256": "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90", + "type": "url", + "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", + "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", + "version": "3.3.2" + }, + "click": { + "is_direct": true, + "rev": "14f735cf59618941cf2930e633eb77651b1dc7cb", + "sha256": "1mriyhx9gcms5bsbdlg8akjpsj3v7p0g38spabx2vm6g9h1yg4zc", + "type": "git", + "url": "https://github.com/pallets/click.git", + "version": "8.2.0.dev0" + }, + "idna": { + "is_direct": false, + "sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", + "version": "3.7" + }, + "requests": { + "is_direct": false, + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", + "version": "2.32.3" + }, + "setuptools": { + "is_direct": false, + "sha256": "fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ef/15/88e46eb9387e905704b69849618e699dc2f54407d8953cc4ec4b8b46528d/setuptools-70.3.0-py3-none-any.whl", + "version": "70.3.0" + }, + "urllib3": { + "is_direct": false, + "sha256": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", + "version": "2.2.2" + } + }, + "targets": { + "default": { + "certifi": [], + "charset-normalizer": [], + "click": [], + "idna": [], + "requests": [ + "certifi", + "charset-normalizer", + "idna", + "urllib3" + ], + "setuptools": [], + "urllib3": [] + } + } + }, + "invalidationHash": "0b9e5e3dccfe479110aacf335f3d8f939c6fd18f6fbc03b850e196178b6897c3" +} \ No newline at end of file diff --git a/examples/packages/languages/python-packaging-ansible/lock.x86_64-linux.json b/examples/packages/languages/python-packaging-ansible/lock.x86_64-linux.json new file mode 100644 index 00000000..811a8235 --- /dev/null +++ b/examples/packages/languages/python-packaging-ansible/lock.x86_64-linux.json @@ -0,0 +1,117 @@ +{ + "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": { + "is_direct": false, + "sha256": "5f7cd3399fbc4ec290378b541b0cf3d4398e4737a65d0f938c7c0f9d5e686611", + "type": "url", + "url": "https://files.pythonhosted.org/packages/97/00/21e34b365b895e6faf9cc5d4e7b97dd419e08f8a7df119792ec206b4a3fa/bcrypt-4.1.3-cp39-abi3-manylinux_2_28_x86_64.whl", + "version": "4.1.3" + }, + "cffi": { + "is_direct": false, + "sha256": "8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ea/ac/e9e77bc385729035143e54cc8c4785bd480eaca9df17565963556b0b7a93/cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.16.0" + }, + "cryptography": { + "is_direct": false, + "sha256": "9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fa/e2/b7e6e8c261536c489d9cf908769880d94bd5d9a187e166b0dc838d2e6a56/cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", + "version": "42.0.8" + }, + "jinja2": { + "is_direct": false, + "sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", + "version": "3.1.4" + }, + "markupsafe": { + "is_direct": false, + "sha256": "17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "2.1.5" + }, + "paramiko": { + "is_direct": false, + "sha256": "43f0b51115a896f9c00f59618023484cb3a14b98bbceab43394a39c6739b7ee7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ad/50/8792484502c8141c20c996b802fefa8435a9c018a2bb440a06b172782118/paramiko-3.4.0-py3-none-any.whl", + "version": "3.4.0" + }, + "pycparser": { + "is_direct": false, + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", + "version": "2.22" + }, + "pynacl": { + "is_direct": false, + "sha256": "0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d", + "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", + "version": "1.5.0" + }, + "pyyaml": { + "is_direct": false, + "sha256": "bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7d/39/472f2554a0f1e825bd7c5afc11c817cd7a2f3657460f7159f691fbb37c51/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.0.1" + }, + "setuptools": { + "is_direct": false, + "sha256": "fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ef/15/88e46eb9387e905704b69849618e699dc2f54407d8953cc4ec4b8b46528d/setuptools-70.3.0-py3-none-any.whl", + "version": "70.3.0" + } + }, + "targets": { + "default": { + "ansible": [ + "cryptography", + "jinja2", + "paramiko", + "pyyaml", + "setuptools" + ], + "bcrypt": [], + "cffi": [ + "pycparser" + ], + "cryptography": [ + "cffi" + ], + "jinja2": [ + "markupsafe" + ], + "markupsafe": [], + "paramiko": [ + "bcrypt", + "cryptography", + "pynacl" + ], + "pycparser": [], + "pynacl": [ + "cffi" + ], + "pyyaml": [], + "setuptools": [] + } + } + }, + "invalidationHash": "fc8132866a8e243bbadc1eac5012604f88c2549ba38935a84381ca72e3cff950" +} \ No newline at end of file diff --git a/examples/packages/languages/python-packaging-apache-airflow/lock.x86_64-linux.json b/examples/packages/languages/python-packaging-apache-airflow/lock.x86_64-linux.json new file mode 100644 index 00000000..4ddd39e4 --- /dev/null +++ b/examples/packages/languages/python-packaging-apache-airflow/lock.x86_64-linux.json @@ -0,0 +1,1473 @@ +{ + "fetchPipMetadata": { + "sources": { + "aiohttp": { + "is_direct": false, + "sha256": "c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a0/09/e7637f4f0760cad4d67347bbd8311c6ad0259a3fc01f04555af9e84bd378/aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "3.9.5" + }, + "aiosignal": { + "is_direct": false, + "sha256": "f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17", + "type": "url", + "url": "https://files.pythonhosted.org/packages/76/ac/a7305707cb852b7e16ff80eaf5692309bde30e2b1100a1fcacdc8f731d97/aiosignal-1.3.1-py3-none-any.whl", + "version": "1.3.1" + }, + "alembic": { + "is_direct": false, + "sha256": "6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953", + "type": "url", + "url": "https://files.pythonhosted.org/packages/df/ed/c884465c33c25451e4a5cd4acad154c29e5341e3214e220e7f3478aa4b0d/alembic-1.13.2-py3-none-any.whl", + "version": "1.13.2" + }, + "anyio": { + "is_direct": false, + "sha256": "c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7b/a2/10639a79341f6c019dedc95bd48a4928eed9f1d1197f4c04f546fc7ae0ff/anyio-4.4.0-py3-none-any.whl", + "version": "4.4.0" + }, + "apache-airflow": { + "is_direct": false, + "sha256": "6fd6501b1622ab58f4a3c1fc5bed4c216bd36915243bb9445b54415c3e625200", + "type": "url", + "url": "https://files.pythonhosted.org/packages/02/2b/982217eab772d5e969c04614f6b77c158aee9699201a616cc00c1645326e/apache_airflow-2.9.2-py3-none-any.whl", + "version": "2.9.2" + }, + "apache-airflow-providers-common-io": { + "is_direct": false, + "sha256": "7c0299d8eb2e3fc7b99f522c4d333e2b888edbf47861a8f3e3ae78707ae77aab", + "type": "url", + "url": "https://files.pythonhosted.org/packages/1a/4d/9779c9e0b2b9efbc1d73e04096f617f3cfa7ef1edf8993dd85fbd3ae4918/apache_airflow_providers_common_io-1.3.2-py3-none-any.whl", + "version": "1.3.2" + }, + "apache-airflow-providers-common-sql": { + "is_direct": false, + "sha256": "49d9c9389489be4085499b3706ccbe2853584ade5bda91082c7d9242b80048e8", + "type": "url", + "url": "https://files.pythonhosted.org/packages/98/ad/b5a5ad66d4ad069b3bd07b386a1866f387593d7e1889f12a2485d9ce7396/apache_airflow_providers_common_sql-1.14.2-py3-none-any.whl", + "version": "1.14.2" + }, + "apache-airflow-providers-fab": { + "is_direct": false, + "sha256": "6782709e96d83213a4c996062a5b5a93809a4cc90db1cf038f93033bca053b8f", + "type": "url", + "url": "https://files.pythonhosted.org/packages/0a/e3/2e590c5aa819e6ea97cf723ec42aafd5fdff10d2cc32c23d3dbf501e6272/apache_airflow_providers_fab-1.2.1-py3-none-any.whl", + "version": "1.2.1" + }, + "apache-airflow-providers-ftp": { + "is_direct": false, + "sha256": "c6337223466704ca30da115bd811c8178efed7576335eda7735f43b5acfda060", + "type": "url", + "url": "https://files.pythonhosted.org/packages/67/c0/afbe0e993955793bcd586658a7f46be415a34d73b145cf70376ff8924c46/apache_airflow_providers_ftp-3.10.0-py3-none-any.whl", + "version": "3.10.0" + }, + "apache-airflow-providers-http": { + "is_direct": false, + "sha256": "2e5e7639aa6cd0996b92651b5123e765c70d3f2a6dd4b54c3caa34ca249c1887", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c3/47/317bdf2ee3161ade6f7d1df01c0027bdde8103ae0135293818ae201c0057/apache_airflow_providers_http-4.12.0-py3-none-any.whl", + "version": "4.12.0" + }, + "apache-airflow-providers-imap": { + "is_direct": false, + "sha256": "1630dfad25a4db28da37ed4cb522674e37d0d981238fdb34ed2933c7f348763a", + "type": "url", + "url": "https://files.pythonhosted.org/packages/af/2c/8b603dbd7afcae84da6f8bea9e531276385ea2534930ec7e81f5ef0117ac/apache_airflow_providers_imap-3.6.1-py3-none-any.whl", + "version": "3.6.1" + }, + "apache-airflow-providers-smtp": { + "is_direct": false, + "sha256": "eab0910fa1351e58e1e87bb2489084ad5157e33a8752cce3164fd38f4b50c694", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e6/ca/4ee0c33192d3f366f7debc08db9a3b37046970b391f35a6149f1d04430db/apache_airflow_providers_smtp-1.7.1-py3-none-any.whl", + "version": "1.7.1" + }, + "apache-airflow-providers-sqlite": { + "is_direct": false, + "sha256": "be9749275ac266245a2973269842674b10c3ad184790f9f0fd75e76e1d3b2440", + "type": "url", + "url": "https://files.pythonhosted.org/packages/4e/7c/8bd7c8b6ec4ec95bbf93611a63fe23e0c5282910f145089aca4bed990dc7/apache_airflow_providers_sqlite-3.8.1-py3-none-any.whl", + "version": "3.8.1" + }, + "apispec": { + "is_direct": false, + "sha256": "6460315cb38ac6a2ff42d9e2b8dc0435c37d4428d3abeda96ff97b5dc8eb6b94", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ec/0f/1d0aabf69a9a1bdf8ed1461a2ec7b4036ff4da501f6db2e37634b01860e3/apispec-6.6.1-py3-none-any.whl", + "version": "6.6.1" + }, + "argcomplete": { + "is_direct": false, + "sha256": "69a79e083a716173e5532e0fa3bef45f793f4e61096cf52b5a42c0211c8b8aa5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/0b/29/cba741f3abc1700dda883c4a1dd83f4ae89e4e8654067929d89143df2c58/argcomplete-3.4.0-py3-none-any.whl", + "version": "3.4.0" + }, + "asgiref": { + "is_direct": false, + "sha256": "3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47", + "type": "url", + "url": "https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl", + "version": "3.8.1" + }, + "async-timeout": { + "is_direct": false, + "sha256": "7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a7/fa/e01228c2938de91d47b307831c62ab9e4001e747789d0b05baf779a6488c/async_timeout-4.0.3-py3-none-any.whl", + "version": "4.0.3" + }, + "attrs": { + "is_direct": false, + "sha256": "99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", + "version": "23.2.0" + }, + "babel": { + "is_direct": false, + "sha256": "08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb", + "type": "url", + "url": "https://files.pythonhosted.org/packages/27/45/377f7e32a5c93d94cd56542349b34efab5ca3f9e2fd5a68c5e93169aa32d/Babel-2.15.0-py3-none-any.whl", + "version": "2.15.0" + }, + "blinker": { + "is_direct": false, + "sha256": "1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01", + "type": "url", + "url": "https://files.pythonhosted.org/packages/bb/2a/10164ed1f31196a2f7f3799368a821765c62851ead0e630ab52b8e14b4d0/blinker-1.8.2-py3-none-any.whl", + "version": "1.8.2" + }, + "cachelib": { + "is_direct": false, + "sha256": "811ceeb1209d2fe51cd2b62810bd1eccf70feba5c52641532498be5c675493b3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/93/70/58e525451478055b0fd2859b22226888a6985d404fe65e014fc4893d3b75/cachelib-0.9.0-py3-none-any.whl", + "version": "0.9.0" + }, + "certifi": { + "is_direct": false, + "sha256": "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90", + "type": "url", + "url": "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl", + "version": "2024.7.4" + }, + "cffi": { + "is_direct": false, + "sha256": "e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", + "type": "url", + "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" + }, + "charset-normalizer": { + "is_direct": false, + "sha256": "8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/da/f1/3702ba2a7470666a62fd81c58a4c40be00670e5006a67f4d626e57f013ae/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "3.3.2" + }, + "click": { + "is_direct": false, + "sha256": "ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "type": "url", + "url": "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", + "version": "8.1.7" + }, + "clickclick": { + "is_direct": false, + "sha256": "c8f33e6d9ec83f68416dd2136a7950125bd256ec39ccc9a85c6e280a16be2bb5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7a/7e/c08007d3fb2bbefb430437a3573373590abedc03566b785d7d6763b22480/clickclick-20.10.2-py2.py3-none-any.whl", + "version": "20.10.2" + }, + "colorama": { + "is_direct": false, + "sha256": "4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", + "version": "0.4.6" + }, + "colorlog": { + "is_direct": false, + "sha256": "3dd15cb27e8119a24c1a7b5c93f9f3b455855e0f73993b1c25921b2f646f1dcd", + "type": "url", + "url": "https://files.pythonhosted.org/packages/51/62/61449c6bb74c2a3953c415b2cdb488e4f0518ac67b35e2b03a6d543035ca/colorlog-4.8.0-py2.py3-none-any.whl", + "version": "4.8.0" + }, + "configupdater": { + "is_direct": false, + "sha256": "0f65a041627d7693840b4dd743581db4c441c97195298a29d075f91b79539df2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e7/f0/b59cb7613d9d0f866b6ff247c5953ad78363c27ff5d684a2a98899ab8220/ConfigUpdater-3.2-py2.py3-none-any.whl", + "version": "3.2" + }, + "connexion": { + "is_direct": false, + "sha256": "a73b96a0e07b16979a42cde7c7e26afe8548099e352cf350f80c57185e0e0b36", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ed/e6/851b3d7688115b176eb5d3e45055d1dc5b2b91708007064a38b0e93813ed/connexion-2.14.2-py2.py3-none-any.whl", + "version": "2.14.2" + }, + "cron-descriptor": { + "is_direct": false, + "sha256": "a67ba21804983b1427ed7f3e1ec27ee77bf24c652b0430239c268c5ddfbf9dc0", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e0/18/136b0073305038d1317f3442f614a698ce686830a2810bbe7e875311e09f/cron_descriptor-1.4.3-py3-none-any.whl", + "version": "1.4.3" + }, + "croniter": { + "is_direct": false, + "sha256": "fdbb44920944045cc323db54599b321325141d82d14fa7453bc0699826bbe9ed", + "type": "url", + "url": "https://files.pythonhosted.org/packages/34/ce/1c532b78d43c2eaadc8e900d9686999ff99dd459bc51fcdf855305e57ed9/croniter-2.0.5-py2.py3-none-any.whl", + "version": "2.0.5" + }, + "cryptography": { + "is_direct": false, + "sha256": "9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fa/e2/b7e6e8c261536c489d9cf908769880d94bd5d9a187e166b0dc838d2e6a56/cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", + "version": "42.0.8" + }, + "deprecated": { + "is_direct": false, + "sha256": "6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl", + "version": "1.2.14" + }, + "dill": { + "is_direct": false, + "sha256": "c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl", + "version": "0.3.8" + }, + "dnspython": { + "is_direct": false, + "sha256": "5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50", + "type": "url", + "url": "https://files.pythonhosted.org/packages/87/a1/8c5287991ddb8d3e4662f71356d9656d91ab3a36618c3dd11b280df0d255/dnspython-2.6.1-py3-none-any.whl", + "version": "2.6.1" + }, + "docutils": { + "is_direct": false, + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", + "version": "0.21.2" + }, + "email-validator": { + "is_direct": false, + "sha256": "561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", + "version": "2.2.0" + }, + "exceptiongroup": { + "is_direct": false, + "sha256": "3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", + "type": "url", + "url": "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", + "version": "1.2.2" + }, + "flask": { + "is_direct": false, + "sha256": "58107ed83443e86067e41eff4631b058178191a355886f8e479e347fa1285fdf", + "type": "url", + "url": "https://files.pythonhosted.org/packages/9f/1a/8b6d48162861009d1e017a9740431c78d860809773b66cac220a11aa3310/Flask-2.2.5-py3-none-any.whl", + "version": "2.2.5" + }, + "flask-appbuilder": { + "is_direct": false, + "sha256": "f85866bd1b25d5edd5de793c102bb14ee1ccf7623983f92e9037430fed2a269b", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e9/3a/b071d80a877b7c94048ad0438f6d6312d97fd611337d76f9cbcbd1531e43/Flask_AppBuilder-4.5.0-py3-none-any.whl", + "version": "4.5.0" + }, + "flask-babel": { + "is_direct": false, + "sha256": "e6820a052a8d344e178cdd36dd4bb8aea09b4bda3d5f9fa9f008df2c7f2f5468", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ab/3e/02331179ffab8b79e0383606a028b6a60fb1b4419b84935edd43223406a0/Flask_Babel-2.0.0-py3-none-any.whl", + "version": "2.0.0" + }, + "flask-caching": { + "is_direct": false, + "sha256": "51771c75682e5abc1483b78b96d9131d7941dc669b073852edfa319dd4e29b6e", + "type": "url", + "url": "https://files.pythonhosted.org/packages/aa/da/8e3ba9735253c6ba440358fcfda89cf5e199467b6ed2baaf6b1e1022b15f/Flask_Caching-2.3.0-py3-none-any.whl", + "version": "2.3.0" + }, + "flask-jwt-extended": { + "is_direct": false, + "sha256": "63a28fc9731bcc6c4b8815b6f954b5904caa534fc2ae9b93b1d3ef12930dca95", + "type": "url", + "url": "https://files.pythonhosted.org/packages/be/f7/b5415a5ec78666408cd9af9e8163e2953374808d222625cff33f64adfd2a/Flask_JWT_Extended-4.6.0-py2.py3-none-any.whl", + "version": "4.6.0" + }, + "flask-limiter": { + "is_direct": false, + "sha256": "4318382f17ecb09848bc6d0f7bc4bb1bf89bcf162200bf47b7b969126693bfda", + "type": "url", + "url": "https://files.pythonhosted.org/packages/09/d3/f10e91728a0d33cce23e46eb05948dc38e959018cddf15103af0e08eeec6/Flask_Limiter-3.7.0-py3-none-any.whl", + "version": "3.7.0" + }, + "flask-login": { + "is_direct": false, + "sha256": "849b25b82a436bf830a054e74214074af59097171562ab10bfa999e6b78aae5d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/59/f5/67e9cc5c2036f58115f9fe0f00d203cf6780c3ff8ae0e705e7a9d9e8ff9e/Flask_Login-0.6.3-py3-none-any.whl", + "version": "0.6.3" + }, + "flask-session": { + "is_direct": false, + "sha256": "1619bcbc16f04f64e90f8e0b17145ba5c9700090bb1294e889956c1282d58631", + "type": "url", + "url": "https://files.pythonhosted.org/packages/3e/d4/b374183251054928ddb5e72f9a0d3d764d0f2af0638fbbdf205df26e55e3/flask_session-0.5.0-py3-none-any.whl", + "version": "0.5.0" + }, + "flask-sqlalchemy": { + "is_direct": false, + "sha256": "f12c3d4cc5cc7fdcc148b9527ea05671718c3ea45d50c7e732cceb33f574b390", + "type": "url", + "url": "https://files.pythonhosted.org/packages/26/2c/9088b6bd95bca539230bbe9ad446737ed391aab9a83aff403e18dded3e75/Flask_SQLAlchemy-2.5.1-py2.py3-none-any.whl", + "version": "2.5.1" + }, + "flask-wtf": { + "is_direct": false, + "sha256": "fa6793f2fb7e812e0fe9743b282118e581fb1b6c45d414b8af05e659bd653287", + "type": "url", + "url": "https://files.pythonhosted.org/packages/02/2b/0f0cf68a2f052ea3dbb8b6c8c2a7e8aea5e6df7410f5e289437fefbeb461/flask_wtf-1.2.1-py3-none-any.whl", + "version": "1.2.1" + }, + "frozenlist": { + "is_direct": false, + "sha256": "a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ec/25/0c87df2e53c0c5d90f7517ca0ff7aca78d050a8ec4d32c4278e8c0e52e51/frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.4.1" + }, + "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" + }, + "google-re2": { + "is_direct": false, + "sha256": "7480309b133c39f2afb19ff28bc30d27b364cbc56b5d46918d1b4f1fb2e13183", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f9/29/b5f82912f33497953d97705176b1fb92f6f815b790ea7b130335bfa4aa72/google_re2-1.1.20240702-1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", + "version": "1.1.20240702" + }, + "googleapis-common-protos": { + "is_direct": false, + "sha256": "27a2499c7e8aff199665b22741997e485eccc8645aa9176c7c988e6fae507945", + "type": "url", + "url": "https://files.pythonhosted.org/packages/02/48/87422ff1bddcae677fb6f58c97f5cfc613304a5e8ce2c3662760199c0a84/googleapis_common_protos-1.63.2-py2.py3-none-any.whl", + "version": "1.63.2" + }, + "greenlet": { + "is_direct": false, + "sha256": "73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405", + "type": "url", + "url": "https://files.pythonhosted.org/packages/24/35/945d5b10648fec9b20bcc6df8952d20bb3bba76413cd71c1fdbee98f5616/greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", + "version": "3.0.3" + }, + "grpcio": { + "is_direct": false, + "sha256": "e7cd5c1325f6808b8ae31657d281aadb2a51ac11ab081ae335f4f7fc44c1721d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/5e/3b/459a477de3d899ffd4164d116a0a1db67468465ef5eaa81652f9319c27ab/grpcio-1.64.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.64.1" + }, + "gunicorn": { + "is_direct": false, + "sha256": "350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9", + "type": "url", + "url": "https://files.pythonhosted.org/packages/29/97/6d610ae77b5633d24b69c2ff1ac3044e0e565ecbd1ec188f02c45073054c/gunicorn-22.0.0-py3-none-any.whl", + "version": "22.0.0" + }, + "h11": { + "is_direct": false, + "sha256": "e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", + "type": "url", + "url": "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", + "version": "0.14.0" + }, + "httpcore": { + "is_direct": false, + "sha256": "421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/78/d4/e5d7e4f2174f8a4d63c8897d79eb8fe2503f7ecc03282fee1fa2719c2704/httpcore-1.0.5-py3-none-any.whl", + "version": "1.0.5" + }, + "httpx": { + "is_direct": false, + "sha256": "71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/41/7b/ddacf6dcebb42466abd03f368782142baa82e08fc0c1f8eaa05b4bae87d5/httpx-0.27.0-py3-none-any.whl", + "version": "0.27.0" + }, + "idna": { + "is_direct": false, + "sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", + "version": "3.7" + }, + "importlib-metadata": { + "is_direct": false, + "sha256": "30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570", + "type": "url", + "url": "https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl", + "version": "7.1.0" + }, + "importlib-resources": { + "is_direct": false, + "sha256": "50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/75/06/4df55e1b7b112d183f65db9503bff189e97179b256e1ea450a3c365241e0/importlib_resources-6.4.0-py3-none-any.whl", + "version": "6.4.0" + }, + "inflection": { + "is_direct": false, + "sha256": "f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/59/91/aa6bde563e0085a02a435aa99b49ef75b0a4b062635e606dab23ce18d720/inflection-0.5.1-py2.py3-none-any.whl", + "version": "0.5.1" + }, + "itsdangerous": { + "is_direct": false, + "sha256": "c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", + "type": "url", + "url": "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", + "version": "2.2.0" + }, + "jinja2": { + "is_direct": false, + "sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", + "version": "3.1.4" + }, + "jmespath": { + "is_direct": false, + "sha256": "02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", + "type": "url", + "url": "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", + "version": "1.0.1" + }, + "jsonschema": { + "is_direct": false, + "sha256": "fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", + "type": "url", + "url": "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", + "version": "4.23.0" + }, + "jsonschema-specifications": { + "is_direct": false, + "sha256": "87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ee/07/44bd408781594c4d0a027666ef27fab1e441b109dc3b76b4f836f8fd04fe/jsonschema_specifications-2023.12.1-py3-none-any.whl", + "version": "2023.12.1" + }, + "lazy-object-proxy": { + "is_direct": false, + "sha256": "dc0d2fc424e54c70c4bc06787e4072c4f3b1aa2f897dfdc34ce1013cf3ceef05", + "type": "url", + "url": "https://files.pythonhosted.org/packages/8b/fc/83711d743fb5aaca5747bbf225fe3b5cbe085c7f6c115856b5cce80f3224/lazy_object_proxy-1.10.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.10.0" + }, + "limits": { + "is_direct": false, + "sha256": "9767f7233da4255e9904b79908a728e8ec0984c0b086058b4cbbd309aea553f6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/81/80/b340bc7c3eb8f5c40e4d38c8e3cd04c127756d8de06b9e54caefb4ae16d5/limits-3.13.0-py3-none-any.whl", + "version": "3.13.0" + }, + "linkify-it-py": { + "is_direct": false, + "sha256": "6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79", + "type": "url", + "url": "https://files.pythonhosted.org/packages/04/1e/b832de447dee8b582cac175871d2f6c3d5077cc56d5575cadba1fd1cccfa/linkify_it_py-2.0.3-py3-none-any.whl", + "version": "2.0.3" + }, + "lockfile": { + "is_direct": false, + "sha256": "6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c8/22/9460e311f340cb62d26a38c419b1381b8593b0bb6b5d1f056938b086d362/lockfile-0.12.2-py2.py3-none-any.whl", + "version": "0.12.2" + }, + "mako": { + "is_direct": false, + "sha256": "260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a", + "type": "url", + "url": "https://files.pythonhosted.org/packages/03/62/70f5a0c2dd208f9f3f2f9afd103aec42ee4d9ad2401d78342f75e9b8da36/Mako-1.3.5-py3-none-any.whl", + "version": "1.3.5" + }, + "markdown-it-py": { + "is_direct": false, + "sha256": "355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", + "version": "3.0.0" + }, + "markupsafe": { + "is_direct": false, + "sha256": "2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "type": "url", + "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" + }, + "marshmallow": { + "is_direct": false, + "sha256": "86ce7fb914aa865001a4b2092c4c2872d13bc347f3d42673272cabfdbad386f1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/96/d7/f318261e6ccbba86bdf626e07cd850981508fdaec52cfcdc4ac1030327ab/marshmallow-3.21.3-py3-none-any.whl", + "version": "3.21.3" + }, + "marshmallow-oneofschema": { + "is_direct": false, + "sha256": "ff4cb2a488785ee8edd521a765682c2c80c78b9dc48894124531bdfa1ec9303b", + "type": "url", + "url": "https://files.pythonhosted.org/packages/5c/81/3ef15337c19d3e3432945aad738081a5f54c16885277c7dff300b5f85b24/marshmallow_oneofschema-3.1.1-py3-none-any.whl", + "version": "3.1.1" + }, + "marshmallow-sqlalchemy": { + "is_direct": false, + "sha256": "c31b3bdf794de1d78c53e1c495502cbb3eeb06ed216869980c71d6159e7e9e66", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c2/15/0c63bbbd7c21e44065ce7e198c0e515a98d2e37e5f5694d69595285dd67f/marshmallow_sqlalchemy-0.28.2-py2.py3-none-any.whl", + "version": "0.28.2" + }, + "mdit-py-plugins": { + "is_direct": false, + "sha256": "1020dfe4e6bfc2c79fb49ae4e3f5b297f5ccd20f010187acc52af2921e27dc6a", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ef/f7/8a4dcea720a581e69ac8c5a38524baf0e3e2bb5f3819a9ff661464fe7d10/mdit_py_plugins-0.4.1-py3-none-any.whl", + "version": "0.4.1" + }, + "mdurl": { + "is_direct": false, + "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", + "version": "0.1.2" + }, + "methodtools": { + "is_direct": false, + "sha256": "e213439dd64cfe60213f7015da6efe5dd4003fd89376db3baa09fe13ec2bb0ba", + "type": "url", + "url": "https://files.pythonhosted.org/packages/13/3b/c21b74ac17befdf17b286494b02221b7a84affb1d410ff86e38ba0e14b13/methodtools-0.4.7.tar.gz", + "version": "0.4.7" + }, + "more-itertools": { + "is_direct": false, + "sha256": "ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320", + "type": "url", + "url": "https://files.pythonhosted.org/packages/bb/23/2d1cdb0427aecb2b150dc2ac2d15400990c4f05585b3fbc1b5177d74d7fb/more_itertools-10.3.0-py3-none-any.whl", + "version": "10.3.0" + }, + "multidict": { + "is_direct": false, + "sha256": "21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae", + "type": "url", + "url": "https://files.pythonhosted.org/packages/33/62/2c9085e571318d51212a6914566fe41dd0e33d7f268f7e2f23dcd3f06c56/multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.0.5" + }, + "opentelemetry-api": { + "is_direct": false, + "sha256": "757fa1aa020a0f8fa139f8959e53dec2051cc26b832e76fa839a6d76ecefd737", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7e/b2/4bc5e52c9a23df0ac17dbb23923e609a8269cd67000a712b4f5bcfae1490/opentelemetry_api-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-exporter-otlp": { + "is_direct": false, + "sha256": "d67a831757014a3bc3174e4cd629ae1493b7ba8d189e8a007003cacb9f1a6b60", + "type": "url", + "url": "https://files.pythonhosted.org/packages/75/fd/7d95c7320926a43b88e9d4350338d3dae3b5ac16dd344825194f01918f56/opentelemetry_exporter_otlp-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-exporter-otlp-proto-common": { + "is_direct": false, + "sha256": "15637b7d580c2675f70246563363775b4e6de947871e01d0f4e3881d1848d693", + "type": "url", + "url": "https://files.pythonhosted.org/packages/05/02/74ac6619eec78c82a923324f916d3eccd2f2254cf4270b669e96b76bf717/opentelemetry_exporter_otlp_proto_common-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-exporter-otlp-proto-grpc": { + "is_direct": false, + "sha256": "3131028f0c0a155a64c430ca600fd658e8e37043cb13209f0109db5c1a3e4eb4", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b0/f3/e24294e7b3f6d2b9aafc97b9b82e214dfe9ffa152dfecbd897e7ffbf6844/opentelemetry_exporter_otlp_proto_grpc-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-exporter-otlp-proto-http": { + "is_direct": false, + "sha256": "2eca686ee11b27acd28198b3ea5e5863a53d1266b91cda47c839d95d5e0541a6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/1d/b9/a47734f7c5a45619d8c64c227f119092b4679b2c49d37116fda7c0fc4573/opentelemetry_exporter_otlp_proto_http-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-proto": { + "is_direct": false, + "sha256": "f07e3341c78d835d9b86665903b199893befa5e98866f63d22b00d0b7ca4972f", + "type": "url", + "url": "https://files.pythonhosted.org/packages/64/ae/d6b5f11ecbffafe8b6d54130fed0cc78aad3711e00074d63a7359d6dcf3b/opentelemetry_proto-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-sdk": { + "is_direct": false, + "sha256": "d97ff7ec4b351692e9d5a15af570c693b8715ad78b8aafbec5c7100fe966b4c9", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ae/b2/729a959a8aa032bce246c791f977161099ab60fb0188408ccec1bf283b00/opentelemetry_sdk-1.25.0-py3-none-any.whl", + "version": "1.25.0" + }, + "opentelemetry-semantic-conventions": { + "is_direct": false, + "sha256": "6daef4ef9fa51d51855d9f8e0ccd3a1bd59e0e545abe99ac6203804e36ab3e07", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fd/41/28dae1ec1fe0151373f06bd06d9170ca14b52d5b3a6c2dc55f85bc219619/opentelemetry_semantic_conventions-0.46b0-py3-none-any.whl", + "version": "0.46b0" + }, + "ordered-set": { + "is_direct": false, + "sha256": "046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562", + "type": "url", + "url": "https://files.pythonhosted.org/packages/33/55/af02708f230eb77084a299d7b08175cff006dea4f2721074b92cdb0296c0/ordered_set-4.1.0-py3-none-any.whl", + "version": "4.1.0" + }, + "packaging": { + "is_direct": false, + "sha256": "5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", + "type": "url", + "url": "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", + "version": "24.1" + }, + "pathspec": { + "is_direct": false, + "sha256": "a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", + "type": "url", + "url": "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", + "version": "0.12.1" + }, + "pendulum": { + "is_direct": false, + "sha256": "138afa9c373ee450ede206db5a5e9004fd3011b3c6bbe1e57015395cd076a09f", + "type": "url", + "url": "https://files.pythonhosted.org/packages/10/a9/0932bd7cd677bee8bdc9cb898448e47ada0f74e41f434f4ff687d03a3ea9/pendulum-3.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "3.0.0" + }, + "pluggy": { + "is_direct": false, + "sha256": "44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", + "type": "url", + "url": "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", + "version": "1.5.0" + }, + "prison": { + "is_direct": false, + "sha256": "f90bab63fca497aa0819a852f64fb21a4e181ed9f6114deaa5dc04001a7555c5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f1/bd/e55e14cd213174100be0353824f2add41e8996c6f32081888897e8ec48b5/prison-0.2.1-py2.py3-none-any.whl", + "version": "0.2.1" + }, + "protobuf": { + "is_direct": false, + "sha256": "7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl", + "version": "4.25.3" + }, + "psutil": { + "is_direct": false, + "sha256": "5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd", + "type": "url", + "url": "https://files.pythonhosted.org/packages/19/74/f59e7e0d392bc1070e9a70e2f9190d652487ac115bb16e2eff6b22ad1d24/psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.0.0" + }, + "pycparser": { + "is_direct": false, + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", + "version": "2.22" + }, + "pygments": { + "is_direct": false, + "sha256": "b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", + "version": "2.18.0" + }, + "pyjwt": { + "is_direct": false, + "sha256": "59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320", + "type": "url", + "url": "https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl", + "version": "2.8.0" + }, + "python-daemon": { + "is_direct": false, + "sha256": "42bb848a3260a027fa71ad47ecd959e471327cb34da5965962edd5926229f341", + "type": "url", + "url": "https://files.pythonhosted.org/packages/83/7f/feffd97af851e2a837b5ca9bfbe570002c45397734724e4abfd4c62fdd0d/python_daemon-3.0.1-py3-none-any.whl", + "version": "3.0.1" + }, + "python-dateutil": { + "is_direct": false, + "sha256": "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", + "type": "url", + "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-nvd3": { + "is_direct": false, + "sha256": "0115887289b3f751716ddd05c7b53ac5f05e71201e52496decdac453a50dcf7e", + "type": "url", + "url": "https://files.pythonhosted.org/packages/54/e7/2a0bf4d9209d23a9121ab3f84e2689695d1ceba417f279f480af2948abef/python-nvd3-0.16.0.tar.gz", + "version": "0.16.0" + }, + "python-slugify": { + "is_direct": false, + "sha256": "276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", + "version": "8.0.4" + }, + "pytz": { + "is_direct": false, + "sha256": "328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319", + "type": "url", + "url": "https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl", + "version": "2024.1" + }, + "pyyaml": { + "is_direct": false, + "sha256": "ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "type": "url", + "url": "https://files.pythonhosted.org/packages/29/61/bf33c6c85c55bc45a29eee3195848ff2d518d84735eb0e2d8cb42e0d285e/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.0.1" + }, + "referencing": { + "is_direct": false, + "sha256": "eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl", + "version": "0.35.1" + }, + "requests": { + "is_direct": false, + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", + "version": "2.32.3" + }, + "requests-toolbelt": { + "is_direct": false, + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "type": "url", + "url": "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "version": "1.0.0" + }, + "rfc3339-validator": { + "is_direct": false, + "sha256": "24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", + "version": "0.1.4" + }, + "rich": { + "is_direct": false, + "sha256": "4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", + "type": "url", + "url": "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", + "version": "13.7.1" + }, + "rich-argparse": { + "is_direct": false, + "sha256": "7027503d5849e27fc7cc85fb58504363606f2ec1c8b3c27d9a8ad28788faf877", + "type": "url", + "url": "https://files.pythonhosted.org/packages/77/83/4585bd18f0cda471ce44b8364620dc9cbb7ce7179b923123ad3feddf99da/rich_argparse-1.5.2-py3-none-any.whl", + "version": "1.5.2" + }, + "rpds-py": { + "is_direct": false, + "sha256": "959179efb3e4a27610e8d54d667c02a9feaa86bbabaf63efa7faa4dfa780d4f1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b8/2a/319eecf21aa0e872a0ee8233507a2a42e02f4b732308834292458fe1302c/rpds_py-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "0.19.0" + }, + "setproctitle": { + "is_direct": false, + "sha256": "fc74e84fdfa96821580fb5e9c0b0777c1c4779434ce16d3d62a9c4d8c710df39", + "type": "url", + "url": "https://files.pythonhosted.org/packages/79/e7/54b36be02aee8ad573be68f6f46fd62838735c2f007b22df50eb5e13a20d/setproctitle-1.3.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.3.3" + }, + "setuptools": { + "is_direct": false, + "sha256": "fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ef/15/88e46eb9387e905704b69849618e699dc2f54407d8953cc4ec4b8b46528d/setuptools-70.3.0-py3-none-any.whl", + "version": "70.3.0" + }, + "setuptools-scm": { + "is_direct": false, + "sha256": "897a3226a6fd4a6eb2f068745e49733261a21f70b1bb28fce0339feb978d9af3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a0/b9/1906bfeb30f2fc13bb39bf7ddb8749784c05faadbd18a21cf141ba37bff2/setuptools_scm-8.1.0-py3-none-any.whl", + "version": "8.1.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" + }, + "sniffio": { + "is_direct": false, + "sha256": "2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", + "version": "1.3.1" + }, + "sqlalchemy": { + "is_direct": false, + "sha256": "427988398d2902de042093d17f2b9619a5ebc605bf6372f7d70e29bde6736842", + "type": "url", + "url": "https://files.pythonhosted.org/packages/54/a1/c803207c5328ff3a039b7d635869cdd35d30caaf23c3f5c7ba91cfd98581/SQLAlchemy-1.4.52-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.4.52" + }, + "sqlalchemy-jsonfield": { + "is_direct": false, + "sha256": "b2945fa1e60b07d5764a7c73b18da427948b35dd4c07c0e94939001dc2dacf77", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fd/67/d75d119e70863e0519c8eec5fc66714d34ad1ee9e5e73bf4fc8e3d259fac/SQLAlchemy_JSONField-1.0.2-py3-none-any.whl", + "version": "1.0.2" + }, + "sqlalchemy-utils": { + "is_direct": false, + "sha256": "85cf3842da2bf060760f955f8467b87983fb2e30f1764fd0e24a48307dc8ec6e", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d5/f0/dc4757b83ac1ab853cf222df8535ed73973e0c203d983982ba7b8bc60508/SQLAlchemy_Utils-0.41.2-py3-none-any.whl", + "version": "0.41.2" + }, + "sqlparse": { + "is_direct": false, + "sha256": "c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663", + "type": "url", + "url": "https://files.pythonhosted.org/packages/43/5d/a0fdd88fd486b39ae1fd1a75ff75b4e29a0df96c0304d462fd407b82efe0/sqlparse-0.5.0-py3-none-any.whl", + "version": "0.5.0" + }, + "tabulate": { + "is_direct": false, + "sha256": "024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", + "type": "url", + "url": "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", + "version": "0.9.0" + }, + "tenacity": { + "is_direct": false, + "sha256": "b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl", + "version": "8.5.0" + }, + "termcolor": { + "is_direct": false, + "sha256": "9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl", + "version": "2.4.0" + }, + "text-unidecode": { + "is_direct": false, + "sha256": "1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", + "version": "1.3" + }, + "time-machine": { + "is_direct": false, + "sha256": "6327866c00c64ce1c18b1c0444e61bd65c267d4929d2be787fa11da0455823c3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c9/b3/c7b19078d60f8b5e7cb1fda69d84ebc2bc186f8625d19fc9e93435c62e22/time_machine-2.14.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "2.14.2" + }, + "tomli": { + "is_direct": false, + "sha256": "939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", + "version": "2.0.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" + }, + "tzdata": { + "is_direct": false, + "sha256": "9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252", + "type": "url", + "url": "https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl", + "version": "2024.1" + }, + "uc-micro-py": { + "is_direct": false, + "sha256": "db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/37/87/1f677586e8ac487e29672e4b17455758fce261de06a0d086167bb760361a/uc_micro_py-1.0.3-py3-none-any.whl", + "version": "1.0.3" + }, + "unicodecsv": { + "is_direct": false, + "sha256": "018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz", + "version": "0.14.1" + }, + "universal-pathlib": { + "is_direct": false, + "sha256": "9bc176112d593348bb29806a47e409eda78dff8d95391d66dd6f85e443aaa75d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/63/a2/d8fe0f7e233c5e0201442d82279f3a0ffb30edcb8d7c4c5eba695c16647f/universal_pathlib-0.2.2-py3-none-any.whl", + "version": "0.2.2" + }, + "urllib3": { + "is_direct": false, + "sha256": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", + "version": "2.2.2" + }, + "werkzeug": { + "is_direct": false, + "sha256": "56433961bc1f12533306c624f3be5e744389ac61d722175d543e1751285da612", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f6/f8/9da63c1617ae2a1dec2fbf6412f3a0cfe9d4ce029eccbda6e1e4258ca45f/Werkzeug-2.2.3-py3-none-any.whl", + "version": "2.2.3" + }, + "wirerope": { + "is_direct": false, + "sha256": "f3961039218276283c5037da0fa164619def0327595f10892d562a61a8603990", + "type": "url", + "url": "https://files.pythonhosted.org/packages/9f/e9/66f1058f20a77e62bf42fd72d07de34b928b1d485ff17dc66810dc2596a0/wirerope-0.4.7.tar.gz", + "version": "0.4.7" + }, + "wrapt": { + "is_direct": false, + "sha256": "ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf", + "type": "url", + "url": "https://files.pythonhosted.org/packages/49/83/b40bc1ad04a868b5b5bcec86349f06c1ee1ea7afe51dc3e46131e4f39308/wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.16.0" + }, + "wtforms": { + "is_direct": false, + "sha256": "bf831c042829c8cdbad74c27575098d541d039b1faa74c771545ecac916f2c07", + "type": "url", + "url": "https://files.pythonhosted.org/packages/18/19/c3232f35e24dccfad372e9f341c4f3a1166ae7c66e4e1351a9467c921cc1/wtforms-3.1.2-py3-none-any.whl", + "version": "3.1.2" + }, + "yarl": { + "is_direct": false, + "sha256": "357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c3/a0/0ade1409d184cbc9e85acd403a386a7c0563b92ff0f26d138ff9e86e48b4/yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.9.4" + }, + "zipp": { + "is_direct": false, + "sha256": "f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/20/38/f5c473fe9b90c8debdd29ea68d5add0289f1936d6f923b6b9cc0b931194c/zipp-3.19.2-py3-none-any.whl", + "version": "3.19.2" + } + }, + "targets": { + "default": { + "aiohttp": [ + "aiosignal", + "async-timeout", + "attrs", + "frozenlist", + "multidict", + "yarl" + ], + "aiosignal": [ + "frozenlist" + ], + "alembic": [ + "mako", + "sqlalchemy", + "typing-extensions" + ], + "anyio": [ + "exceptiongroup", + "idna", + "sniffio", + "typing-extensions" + ], + "apache-airflow": [ + "alembic", + "apache-airflow-providers-common-io", + "apache-airflow-providers-common-sql", + "apache-airflow-providers-fab", + "apache-airflow-providers-ftp", + "apache-airflow-providers-http", + "apache-airflow-providers-imap", + "apache-airflow-providers-smtp", + "apache-airflow-providers-sqlite", + "argcomplete", + "asgiref", + "attrs", + "blinker", + "colorlog", + "configupdater", + "connexion", + "cron-descriptor", + "croniter", + "cryptography", + "deprecated", + "dill", + "flask", + "flask-caching", + "flask-session", + "flask-wtf", + "fsspec", + "google-re2", + "gunicorn", + "httpx", + "importlib-metadata", + "itsdangerous", + "jinja2", + "jsonschema", + "lazy-object-proxy", + "linkify-it-py", + "lockfile", + "markdown-it-py", + "markupsafe", + "marshmallow-oneofschema", + "mdit-py-plugins", + "methodtools", + "opentelemetry-api", + "opentelemetry-exporter-otlp", + "packaging", + "pathspec", + "pendulum", + "pluggy", + "psutil", + "pygments", + "pyjwt", + "python-daemon", + "python-dateutil", + "python-nvd3", + "python-slugify", + "requests", + "rfc3339-validator", + "rich", + "rich-argparse", + "setproctitle", + "sqlalchemy", + "sqlalchemy-jsonfield", + "tabulate", + "tenacity", + "termcolor", + "unicodecsv", + "universal-pathlib", + "werkzeug" + ], + "apache-airflow-providers-common-io": [], + "apache-airflow-providers-common-sql": [ + "more-itertools", + "sqlparse" + ], + "apache-airflow-providers-fab": [ + "flask", + "flask-appbuilder", + "flask-login", + "google-re2", + "jmespath" + ], + "apache-airflow-providers-ftp": [], + "apache-airflow-providers-http": [ + "aiohttp", + "asgiref", + "requests", + "requests-toolbelt" + ], + "apache-airflow-providers-imap": [], + "apache-airflow-providers-smtp": [], + "apache-airflow-providers-sqlite": [ + "apache-airflow-providers-common-sql" + ], + "apispec": [ + "packaging", + "pyyaml" + ], + "argcomplete": [], + "asgiref": [ + "typing-extensions" + ], + "async-timeout": [], + "attrs": [], + "babel": [], + "blinker": [], + "cachelib": [], + "certifi": [], + "cffi": [ + "pycparser" + ], + "charset-normalizer": [], + "click": [], + "clickclick": [ + "click", + "pyyaml" + ], + "colorama": [], + "colorlog": [], + "configupdater": [], + "connexion": [ + "clickclick", + "flask", + "inflection", + "itsdangerous", + "jsonschema", + "packaging", + "pyyaml", + "requests", + "werkzeug" + ], + "cron-descriptor": [], + "croniter": [ + "python-dateutil", + "pytz" + ], + "cryptography": [ + "cffi" + ], + "deprecated": [ + "wrapt" + ], + "dill": [], + "dnspython": [], + "docutils": [], + "email-validator": [ + "dnspython", + "idna" + ], + "exceptiongroup": [], + "flask": [ + "click", + "itsdangerous", + "jinja2", + "werkzeug" + ], + "flask-appbuilder": [ + "apispec", + "click", + "colorama", + "email-validator", + "flask", + "flask-babel", + "flask-jwt-extended", + "flask-limiter", + "flask-login", + "flask-sqlalchemy", + "flask-wtf", + "jsonschema", + "marshmallow", + "marshmallow-sqlalchemy", + "prison", + "pyjwt", + "python-dateutil", + "sqlalchemy", + "sqlalchemy-utils", + "werkzeug", + "wtforms" + ], + "flask-babel": [ + "babel", + "flask", + "jinja2", + "pytz" + ], + "flask-caching": [ + "cachelib", + "flask" + ], + "flask-jwt-extended": [ + "flask", + "pyjwt", + "werkzeug" + ], + "flask-limiter": [ + "flask", + "limits", + "ordered-set", + "rich", + "typing-extensions" + ], + "flask-login": [ + "flask", + "werkzeug" + ], + "flask-session": [ + "cachelib", + "flask" + ], + "flask-sqlalchemy": [ + "flask", + "sqlalchemy" + ], + "flask-wtf": [ + "flask", + "itsdangerous", + "wtforms" + ], + "frozenlist": [], + "fsspec": [], + "google-re2": [], + "googleapis-common-protos": [ + "protobuf" + ], + "greenlet": [], + "grpcio": [], + "gunicorn": [ + "packaging" + ], + "h11": [], + "httpcore": [ + "certifi", + "h11" + ], + "httpx": [ + "anyio", + "certifi", + "httpcore", + "idna", + "sniffio" + ], + "idna": [], + "importlib-metadata": [ + "zipp" + ], + "importlib-resources": [], + "inflection": [], + "itsdangerous": [], + "jinja2": [ + "markupsafe" + ], + "jmespath": [], + "jsonschema": [ + "attrs", + "jsonschema-specifications", + "referencing", + "rpds-py" + ], + "jsonschema-specifications": [ + "referencing" + ], + "lazy-object-proxy": [], + "limits": [ + "deprecated", + "importlib-resources", + "packaging", + "typing-extensions" + ], + "linkify-it-py": [ + "uc-micro-py" + ], + "lockfile": [], + "mako": [ + "markupsafe" + ], + "markdown-it-py": [ + "mdurl" + ], + "markupsafe": [], + "marshmallow": [ + "packaging" + ], + "marshmallow-oneofschema": [ + "marshmallow" + ], + "marshmallow-sqlalchemy": [ + "marshmallow", + "packaging", + "sqlalchemy" + ], + "mdit-py-plugins": [ + "markdown-it-py" + ], + "mdurl": [], + "methodtools": [ + "wirerope" + ], + "more-itertools": [], + "multidict": [], + "opentelemetry-api": [ + "deprecated", + "importlib-metadata" + ], + "opentelemetry-exporter-otlp": [ + "opentelemetry-exporter-otlp-proto-grpc", + "opentelemetry-exporter-otlp-proto-http" + ], + "opentelemetry-exporter-otlp-proto-common": [ + "opentelemetry-proto" + ], + "opentelemetry-exporter-otlp-proto-grpc": [ + "deprecated", + "googleapis-common-protos", + "grpcio", + "opentelemetry-api", + "opentelemetry-exporter-otlp-proto-common", + "opentelemetry-proto", + "opentelemetry-sdk" + ], + "opentelemetry-exporter-otlp-proto-http": [ + "deprecated", + "googleapis-common-protos", + "opentelemetry-api", + "opentelemetry-exporter-otlp-proto-common", + "opentelemetry-proto", + "opentelemetry-sdk", + "requests" + ], + "opentelemetry-proto": [ + "protobuf" + ], + "opentelemetry-sdk": [ + "opentelemetry-api", + "opentelemetry-semantic-conventions", + "typing-extensions" + ], + "opentelemetry-semantic-conventions": [ + "opentelemetry-api" + ], + "ordered-set": [], + "packaging": [], + "pathspec": [], + "pendulum": [ + "python-dateutil", + "time-machine", + "tzdata" + ], + "pluggy": [], + "prison": [ + "six" + ], + "protobuf": [], + "psutil": [], + "pycparser": [], + "pygments": [], + "pyjwt": [], + "python-daemon": [ + "docutils", + "lockfile", + "setuptools" + ], + "python-dateutil": [ + "six" + ], + "python-nvd3": [ + "jinja2", + "python-slugify" + ], + "python-slugify": [ + "text-unidecode" + ], + "pytz": [], + "pyyaml": [], + "referencing": [ + "attrs", + "rpds-py" + ], + "requests": [ + "certifi", + "charset-normalizer", + "idna", + "urllib3" + ], + "requests-toolbelt": [ + "requests" + ], + "rfc3339-validator": [ + "six" + ], + "rich": [ + "markdown-it-py", + "pygments" + ], + "rich-argparse": [ + "rich" + ], + "rpds-py": [], + "setproctitle": [], + "setuptools": [], + "setuptools-scm": [ + "packaging", + "setuptools", + "tomli" + ], + "six": [], + "sniffio": [], + "sqlalchemy": [ + "greenlet" + ], + "sqlalchemy-jsonfield": [ + "sqlalchemy" + ], + "sqlalchemy-utils": [ + "sqlalchemy" + ], + "sqlparse": [], + "tabulate": [], + "tenacity": [], + "termcolor": [], + "text-unidecode": [], + "time-machine": [ + "python-dateutil" + ], + "tomli": [], + "typing-extensions": [], + "tzdata": [], + "uc-micro-py": [], + "unicodecsv": [], + "universal-pathlib": [ + "fsspec" + ], + "urllib3": [], + "werkzeug": [ + "markupsafe" + ], + "wirerope": [ + "six" + ], + "wrapt": [], + "wtforms": [ + "markupsafe" + ], + "yarl": [ + "idna", + "multidict" + ], + "zipp": [] + } + } + }, + "invalidationHash": "365b03044d203e46b18de0b6c7f7b92c19e1113ee37086454705ce13bed32735" +} \ No newline at end of file diff --git a/examples/packages/languages/python-packaging-odoo/lock.x86_64-linux.json b/examples/packages/languages/python-packaging-odoo/lock.x86_64-linux.json new file mode 100644 index 00000000..2206f5a6 --- /dev/null +++ b/examples/packages/languages/python-packaging-odoo/lock.x86_64-linux.json @@ -0,0 +1,565 @@ +{ + "fetchPipMetadata": { + "sources": { + "attrs": { + "is_direct": false, + "sha256": "99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1", + "type": "url", + "url": "https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl", + "version": "23.2.0" + }, + "babel": { + "is_direct": false, + "sha256": "08706bdad8d0a3413266ab61bd6c34d0c28d6e1e7badf40a2cebe67644e2e1fb", + "type": "url", + "url": "https://files.pythonhosted.org/packages/27/45/377f7e32a5c93d94cd56542349b34efab5ca3f9e2fd5a68c5e93169aa32d/Babel-2.15.0-py3-none-any.whl", + "version": "2.15.0" + }, + "beautifulsoup4": { + "is_direct": false, + "sha256": "b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", + "type": "url", + "url": "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", + "version": "4.12.3" + }, + "certifi": { + "is_direct": false, + "sha256": "c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90", + "type": "url", + "url": "https://files.pythonhosted.org/packages/1c/d5/c84e1a17bf61d4df64ca866a1c9a913874b4e9bdc131ec689a0ad013fb36/certifi-2024.7.4-py3-none-any.whl", + "version": "2024.7.4" + }, + "cffi": { + "is_direct": false, + "sha256": "8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ea/ac/e9e77bc385729035143e54cc8c4785bd480eaca9df17565963556b0b7a93/cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "1.16.0" + }, + "chardet": { + "is_direct": false, + "sha256": "e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", + "type": "url", + "url": "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", + "version": "5.2.0" + }, + "charset-normalizer": { + "is_direct": false, + "sha256": "b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "type": "url", + "url": "https://files.pythonhosted.org/packages/98/69/5d8751b4b670d623aa7a47bef061d69c279e9f922f6705147983aa76c3ce/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "3.3.2" + }, + "cryptography": { + "is_direct": false, + "sha256": "9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fa/e2/b7e6e8c261536c489d9cf908769880d94bd5d9a187e166b0dc838d2e6a56/cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.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": { + "is_direct": false, + "sha256": "dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", + "type": "url", + "url": "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", + "version": "0.21.2" + }, + "gevent": { + "is_direct": false, + "sha256": "2e9ac06f225b696cdedbb22f9e805e2dd87bf82e8fa5e17756f94e88a9d37cf7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7f/1f/b9b5b38c65e8a69fedb11b43ba3c824b164dde21ffa19491e1e866876c8b/gevent-24.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", + "version": "24.2.1" + }, + "greenlet": { + "is_direct": false, + "sha256": "64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b", + "type": "url", + "url": "https://files.pythonhosted.org/packages/af/05/b7e068070a6c143f34dfcd7e9144684271b8067e310f6da68269580db1d8/greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", + "version": "3.0.3" + }, + "idna": { + "is_direct": false, + "sha256": "82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", + "type": "url", + "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": { + "is_direct": false, + "sha256": "bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", + "type": "url", + "url": "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", + "version": "3.1.4" + }, + "libsass": { + "is_direct": false, + "sha256": "4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306", + "type": "url", + "url": "https://files.pythonhosted.org/packages/fd/5a/eb5b62641df0459a3291fc206cf5bd669c0feed7814dded8edef4ade8512/libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", + "version": "0.23.0" + }, + "lxml": { + "is_direct": false, + "sha256": "339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c4/34/11d8b7bacec6b9af6305a266cc5a2695f81427dba9a4c2d59791b5b156e5/lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", + "version": "5.2.2" + }, + "markupsafe": { + "is_direct": false, + "sha256": "17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "2.1.5" + }, + "num2words": { + "is_direct": false, + "sha256": "39e662c663f0a7e15415431ea68eb3dc711b49e3b776d93403e1da0a219ca4ee", + "type": "url", + "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": { + "is_direct": false, + "sha256": "b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c", + "type": "url", + "url": "https://files.pythonhosted.org/packages/bc/a8/8655557c9c7202b8abbd001f61ff36711cefaf750debcaa1c24d154ef602/pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", + "version": "10.4.0" + }, + "platformdirs": { + "is_direct": false, + "sha256": "2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", + "type": "url", + "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": { + "is_direct": false, + "sha256": "5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd", + "type": "url", + "url": "https://files.pythonhosted.org/packages/19/74/f59e7e0d392bc1070e9a70e2f9190d652487ac115bb16e2eff6b22ad1d24/psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.0.0" + }, + "psycopg2": { + "is_direct": false, + "sha256": "d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156", + "type": "url", + "url": "https://files.pythonhosted.org/packages/c9/5e/dc6acaf46d78979d6b03458b7a1618a68e152a6776fce95daac5e0f0301b/psycopg2-2.9.9.tar.gz", + "version": "2.9.9" + }, + "pycparser": { + "is_direct": false, + "sha256": "c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", + "version": "2.22" + }, + "pydot": { + "is_direct": false, + "sha256": "408a47913ea7bd5d2d34b274144880c1310c4aee901f353cf21fe2e526a4ea28", + "type": "url", + "url": "https://files.pythonhosted.org/packages/7f/90/c9b51f3cdff89cd8f93382060330f43d1af098a6624cff439e700791e922/pydot-2.0.0-py3-none-any.whl", + "version": "2.0.0" + }, + "pyopenssl": { + "is_direct": false, + "sha256": "17ed5be5936449c5418d1cd269a1a9e9081bc54c17aed272b45856a3d3dc86ad", + "type": "url", + "url": "https://files.pythonhosted.org/packages/54/a7/2104f674a5a6845b04c8ff01659becc6b8978ca410b82b94287e0b1e018b/pyOpenSSL-24.1.0-py3-none-any.whl", + "version": "24.1.0" + }, + "pyparsing": { + "is_direct": false, + "sha256": "f9db75911801ed778fe61bb643079ff86601aca99fcae6345aa67292038fb742", + "type": "url", + "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": { + "is_direct": false, + "sha256": "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", + "type": "url", + "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": { + "is_direct": false, + "sha256": "111008e10391d54fb2afad2a10df70d5cb0c6c0a7ec82fec6f022cb8712961d3", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d6/0f/8639d60f6d7c169836694aa81504c4ee9a95dfb73ccdb16be66df4785f52/python_stdnum-1.20-py2.py3-none-any.whl", + "version": "1.20" + }, + "pytz": { + "is_direct": false, + "sha256": "328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319", + "type": "url", + "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": { + "is_direct": false, + "sha256": "927616931637e2f13e2ee3b3b6316d7a07803170e258621cff7d138bde17fbb5", + "type": "url", + "url": "https://files.pythonhosted.org/packages/08/69/1fadb986011de190d0a7c7df404e471b5ccd0d3d3df4b9bf095c29c22d21/reportlab-4.2.2-py3-none-any.whl", + "version": "4.2.2" + }, + "requests": { + "is_direct": false, + "sha256": "70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", + "type": "url", + "url": "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", + "version": "2.32.3" + }, + "requests-file": { + "is_direct": false, + "sha256": "cf270de5a4c5874e84599fc5778303d496c10ae5e870bfa378818f35d21bda5c", + "type": "url", + "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": { + "is_direct": false, + "sha256": "cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", + "type": "url", + "url": "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", + "version": "1.0.0" + }, + "setuptools": { + "is_direct": false, + "sha256": "fe384da74336c398e0d956d1cae0669bc02eed936cdb1d49b57de1990dc11ffc", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ef/15/88e46eb9387e905704b69849618e699dc2f54407d8953cc4ec4b8b46528d/setuptools-70.3.0-py3-none-any.whl", + "version": "70.3.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": { + "is_direct": false, + "sha256": "eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7", + "type": "url", + "url": "https://files.pythonhosted.org/packages/4c/f3/038b302fdfbe3be7da016777069f26ceefe11a681055ea1f7817546508e3/soupsieve-2.5-py3-none-any.whl", + "version": "2.5" + }, + "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" + }, + "urllib3": { + "is_direct": false, + "sha256": "a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472", + "type": "url", + "url": "https://files.pythonhosted.org/packages/ca/1c/89ffc63a9605b583d5df2be791a27bc1a42b7c32bab68d3c8f2f73a98cd4/urllib3-2.2.2-py3-none-any.whl", + "version": "2.2.2" + }, + "vobject": { + "is_direct": false, + "sha256": "67ebec81ee39fc60b7355ce077f850d5f13d99d08b110fa1abcfdbb516205e20", + "type": "url", + "url": "https://files.pythonhosted.org/packages/a2/f2/ea094c009f962bd2fda9851bd54cd32b20721c9228842df2eefc1122aa40/vobject-0.9.7-py2.py3-none-any.whl", + "version": "0.9.7" + }, + "werkzeug": { + "is_direct": false, + "sha256": "fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8", + "type": "url", + "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": { + "is_direct": false, + "sha256": "ecfd5405b3e0e228219bcaf24c2ca0915e012ca9464a14048021d21a995d490e", + "type": "url", + "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": { + "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": { + "is_direct": false, + "sha256": "1a62fd6cd518693568e23e02f41816adedfca637f26716837681c90b36af3671", + "type": "url", + "url": "https://files.pythonhosted.org/packages/d7/6d/e2eaabd99ec954f235818a791637e5aa354b89177daa7d02704b42872a5b/zope.interface-6.4.post2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", + "version": "6.4.post2" + } + }, + "targets": { + "default": { + "attrs": [], + "babel": [], + "beautifulsoup4": [ + "soupsieve" + ], + "certifi": [], + "cffi": [ + "pycparser" + ], + "chardet": [], + "charset-normalizer": [], + "cryptography": [ + "cffi" + ], + "decorator": [], + "docopt": [], + "docutils": [], + "gevent": [ + "greenlet", + "zope-event", + "zope-interface" + ], + "greenlet": [], + "idna": [], + "isodate": [ + "six" + ], + "jinja2": [ + "markupsafe" + ], + "libsass": [], + "lxml": [], + "markupsafe": [], + "num2words": [ + "docopt" + ], + "odoo": [ + "babel", + "chardet", + "cryptography", + "decorator", + "docutils", + "gevent", + "greenlet", + "idna", + "jinja2", + "libsass", + "lxml", + "markupsafe", + "num2words", + "ofxparse", + "passlib", + "pillow", + "polib", + "psutil", + "psycopg2", + "pydot", + "pyopenssl", + "pypdf2", + "pyserial", + "python-dateutil", + "python-stdnum", + "pytz", + "pyusb", + "qrcode", + "reportlab", + "requests", + "urllib3", + "vobject", + "werkzeug", + "xlrd", + "xlsxwriter", + "xlwt", + "zeep" + ], + "ofxparse": [ + "beautifulsoup4", + "lxml", + "six" + ], + "passlib": [], + "pillow": [], + "platformdirs": [], + "polib": [], + "psutil": [], + "psycopg2": [], + "pycparser": [], + "pydot": [ + "pyparsing" + ], + "pyopenssl": [ + "cryptography" + ], + "pyparsing": [], + "pypdf2": [ + "typing-extensions" + ], + "pypng": [], + "pyserial": [], + "python-dateutil": [ + "six" + ], + "python-stdnum": [], + "pytz": [], + "pyusb": [], + "qrcode": [ + "pypng", + "typing-extensions" + ], + "reportlab": [ + "chardet", + "pillow" + ], + "requests": [ + "certifi", + "charset-normalizer", + "idna", + "urllib3" + ], + "requests-file": [ + "requests" + ], + "requests-toolbelt": [ + "requests" + ], + "setuptools": [], + "six": [], + "soupsieve": [], + "typing-extensions": [], + "urllib3": [], + "vobject": [ + "python-dateutil" + ], + "werkzeug": [ + "markupsafe" + ], + "xlrd": [], + "xlsxwriter": [], + "xlwt": [], + "zeep": [ + "attrs", + "isodate", + "lxml", + "platformdirs", + "pytz", + "requests", + "requests-file", + "requests-toolbelt" + ], + "zope-event": [ + "setuptools" + ], + "zope-interface": [ + "setuptools" + ] + } + } + }, + "invalidationHash": "15429d79da5c72730fbe3adf7ed6aa08d0eabba69e7c5e1371edce5785531eb3" +} \ No newline at end of file diff --git a/examples/packages/languages/python-packaging-pillow/lock.x86_64-linux.json b/examples/packages/languages/python-packaging-pillow/lock.x86_64-linux.json new file mode 100644 index 00000000..981d7733 --- /dev/null +++ b/examples/packages/languages/python-packaging-pillow/lock.x86_64-linux.json @@ -0,0 +1,19 @@ +{ + "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", + "version": "9.5.0" + } + }, + "targets": { + "default": { + "pillow": [] + } + } + }, + "invalidationHash": "72c325a060a2f980a1a160ef7af2fb99ce66fdd37229f25566ff4bc9f9c6db00" +} \ No newline at end of file From 0a7fefa2c4b489c780771f99a96f4bfede7be03b Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 16:09:43 +0200 Subject: [PATCH 4/6] add darwin lock-files --- .../{lock.json => lock.aarch64-darwin.json} | 0 .../{lock.json => lock.aarch64-darwin.json} | 0 .../{lock.json => lock.aarch64-darwin.json} | 0 .../{lock.json => lock.aarch64-darwin.json} | 0 .../{lock.json => lock.aarch64-darwin.json} | 0 .../python-packaging-odoo/{lock.json => lock.aarch64-darwin.json} | 0 .../{lock.json => lock.aarch64-darwin.json} | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename examples/packages/languages/python-local-development-machine-learning/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-local-development-multiple-packages/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-local-development/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-packaging-ansible/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-packaging-apache-airflow/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-packaging-odoo/{lock.json => lock.aarch64-darwin.json} (100%) rename examples/packages/languages/python-packaging-pillow/{lock.json => lock.aarch64-darwin.json} (100%) diff --git a/examples/packages/languages/python-local-development-machine-learning/lock.json b/examples/packages/languages/python-local-development-machine-learning/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-local-development-machine-learning/lock.json rename to examples/packages/languages/python-local-development-machine-learning/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-local-development-multiple-packages/lock.json b/examples/packages/languages/python-local-development-multiple-packages/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-local-development-multiple-packages/lock.json rename to examples/packages/languages/python-local-development-multiple-packages/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-local-development/lock.json b/examples/packages/languages/python-local-development/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-local-development/lock.json rename to examples/packages/languages/python-local-development/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-packaging-ansible/lock.json b/examples/packages/languages/python-packaging-ansible/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-packaging-ansible/lock.json rename to examples/packages/languages/python-packaging-ansible/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-packaging-apache-airflow/lock.json b/examples/packages/languages/python-packaging-apache-airflow/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-packaging-apache-airflow/lock.json rename to examples/packages/languages/python-packaging-apache-airflow/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-packaging-odoo/lock.json b/examples/packages/languages/python-packaging-odoo/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-packaging-odoo/lock.json rename to examples/packages/languages/python-packaging-odoo/lock.aarch64-darwin.json diff --git a/examples/packages/languages/python-packaging-pillow/lock.json b/examples/packages/languages/python-packaging-pillow/lock.aarch64-darwin.json similarity index 100% rename from examples/packages/languages/python-packaging-pillow/lock.json rename to examples/packages/languages/python-packaging-pillow/lock.aarch64-darwin.json From 65bf5d43b1b8e8db96ed3ecd787ba6e4242326e7 Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 16:34:45 +0200 Subject: [PATCH 5/6] adapt lock file path in pip tests --- .../can-build-setuptools/{lock.json => lock.x86_64-linux.json} | 0 .../{lock.json => lock.x86_64-linux.json} | 0 .../packages/python-nodejs/{lock.json => lock.x86_64-linux.json} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename modules/dream2nix/pip/tests/packages/can-build-setuptools/{lock.json => lock.x86_64-linux.json} (100%) rename modules/dream2nix/pip/tests/packages/can-handle-setuptools-runtime-dep/{lock.json => lock.x86_64-linux.json} (100%) rename modules/dream2nix/pip/tests/packages/python-nodejs/{lock.json => lock.x86_64-linux.json} (100%) diff --git a/modules/dream2nix/pip/tests/packages/can-build-setuptools/lock.json b/modules/dream2nix/pip/tests/packages/can-build-setuptools/lock.x86_64-linux.json similarity index 100% rename from modules/dream2nix/pip/tests/packages/can-build-setuptools/lock.json rename to modules/dream2nix/pip/tests/packages/can-build-setuptools/lock.x86_64-linux.json diff --git a/modules/dream2nix/pip/tests/packages/can-handle-setuptools-runtime-dep/lock.json b/modules/dream2nix/pip/tests/packages/can-handle-setuptools-runtime-dep/lock.x86_64-linux.json similarity index 100% rename from modules/dream2nix/pip/tests/packages/can-handle-setuptools-runtime-dep/lock.json rename to modules/dream2nix/pip/tests/packages/can-handle-setuptools-runtime-dep/lock.x86_64-linux.json diff --git a/modules/dream2nix/pip/tests/packages/python-nodejs/lock.json b/modules/dream2nix/pip/tests/packages/python-nodejs/lock.x86_64-linux.json similarity index 100% rename from modules/dream2nix/pip/tests/packages/python-nodejs/lock.json rename to modules/dream2nix/pip/tests/packages/python-nodejs/lock.x86_64-linux.json From 80cfb95ffcb695dcbd1a68778b176cb30c96173d Mon Sep 17 00:00:00 2001 From: phaer Date: Sat, 13 Jul 2024 16:38:46 +0200 Subject: [PATCH 6/6] eval examples on x86_64-linux & aarch64-darwin quick & easy way to reduce ci run-time and overhead from platform-specific lock files in the repo while letting us catch errors on two OSes as well as architectures. --- modules/flake-parts/examples.nix | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/modules/flake-parts/examples.nix b/modules/flake-parts/examples.nix index eecd52e5..da50af37 100644 --- a/modules/flake-parts/examples.nix +++ b/modules/flake-parts/examples.nix @@ -84,20 +84,24 @@ in { # map all modules in /examples to a package output in the flake. checks = - (lib.mapAttrs (_: flakeFile: getPackage flakeFile) allExamples) - // { - repo-with-packages = let - imported = - (import ../../examples/repo-with-packages { - dream2nixSource = ../..; - inherit pkgs; - }) - .hello; - in - imported; - repo-with-packages-flake = - (importFlake ../../examples/repo-with-packages-flake/flake.nix).packages.${system}.hello; - }; + lib.optionalAttrs + (system == "x86_64-linux" || system == "aarch64-darwin") + ( + (lib.mapAttrs (_: flakeFile: getPackage flakeFile) allExamples) + // { + repo-with-packages = let + imported = + (import ../../examples/repo-with-packages { + dream2nixSource = ../..; + inherit pkgs; + }) + .hello; + in + imported; + repo-with-packages-flake = + (importFlake ../../examples/repo-with-packages-flake/flake.nix).packages.${system}.hello; + } + ); # work around a bug in nix-fast-build / nix-eval jobs # TODO: remove this