From dd84201d6e44c19197357452f58f7603ee677a91 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Nov 2025 12:53:30 +0000 Subject: [PATCH 1/5] python3Packages.in-toto-attestation: init at 0.9.3 --- .../in-toto-attestation/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 46 insertions(+) create mode 100644 pkgs/development/python-modules/in-toto-attestation/default.nix diff --git a/pkgs/development/python-modules/in-toto-attestation/default.nix b/pkgs/development/python-modules/in-toto-attestation/default.nix new file mode 100644 index 000000000000..44d46570a88d --- /dev/null +++ b/pkgs/development/python-modules/in-toto-attestation/default.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + + # build-system + hatchling, + + # dependencies + protobuf, +}: + +buildPythonPackage rec { + pname = "in-toto-attestation"; + version = "0.9.3"; + pyproject = true; + + # Tags on GitHub do not match the Pypi versions + src = fetchPypi { + pname = "in_toto_attestation"; + inherit version; + hash = "sha256-zAz5dBfZSVO5/ubp1BWhHFm01HzuTxN0b/6TWyjj6MQ="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + protobuf + ]; + + pythonImportsCheck = [ "in_toto_attestation" ]; + + # No tests in the Pypi archive + doCheck = false; + + meta = { + description = "Python implementation of in-toto attestations"; + homepage = "https://github.com/in-toto/attestation/tree/main/python"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ba89f00430b1..528ea1a3185a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7142,6 +7142,8 @@ self: super: with self; { in-place = callPackage ../development/python-modules/in-place { }; + in-toto-attestation = callPackage ../development/python-modules/in-toto-attestation { }; + incomfort-client = callPackage ../development/python-modules/incomfort-client { }; incremental = callPackage ../development/python-modules/incremental { }; From 81fba9fd680beea90bc8659e9cf4f70eac41c6eb Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Nov 2025 14:45:37 +0000 Subject: [PATCH 2/5] python3Packages.opentelemetry-distro: init at 0.55b0 --- .../opentelemetry-distro/default.nix | 45 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/python-modules/opentelemetry-distro/default.nix diff --git a/pkgs/development/python-modules/opentelemetry-distro/default.nix b/pkgs/development/python-modules/opentelemetry-distro/default.nix new file mode 100644 index 000000000000..8d764a5bef34 --- /dev/null +++ b/pkgs/development/python-modules/opentelemetry-distro/default.nix @@ -0,0 +1,45 @@ +{ + buildPythonPackage, + opentelemetry-instrumentation, + + # build-system + hatchling, + + # dependencies + opentelemetry-api, + opentelemetry-sdk, + + # tests + opentelemetry-test-utils, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "opentelemetry-distro"; + inherit (opentelemetry-instrumentation) src version; + pyproject = true; + + sourceRoot = "${src.name}/opentelemetry-distro"; + + build-system = [ hatchling ]; + + dependencies = [ + opentelemetry-api + opentelemetry-instrumentation + opentelemetry-sdk + ]; + + nativeCheckInputs = [ + opentelemetry-test-utils + pytestCheckHook + ]; + + pythonImportsCheck = [ "opentelemetry.distro" ]; + + passthru.updateScript = opentelemetry-api.updateScript; + + meta = opentelemetry-instrumentation.meta // { + description = "OpenTelemetry Python Distro"; + homepage = "https://github.com/open-telemetry/opentelemetry-python/tree/main/opentelemetry-distro"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 528ea1a3185a..463ebbbae93d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11150,6 +11150,8 @@ self: super: with self; { opentelemetry-api = callPackage ../development/python-modules/opentelemetry-api { }; + opentelemetry-distro = callPackage ../development/python-modules/opentelemetry-distro { }; + opentelemetry-exporter-otlp = callPackage ../development/python-modules/opentelemetry-exporter-otlp { }; From 22ef94cd9af568599bad46d2ad2eae38200a6c5b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Nov 2025 14:49:10 +0000 Subject: [PATCH 3/5] python3Packages.opentelemetry-instrumentation-urllib3: init at --- .../default.nix | 63 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 4 ++ 2 files changed, 67 insertions(+) create mode 100644 pkgs/development/python-modules/opentelemetry-instrumentation-urllib3/default.nix diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-urllib3/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-urllib3/default.nix new file mode 100644 index 000000000000..ee2b18f00773 --- /dev/null +++ b/pkgs/development/python-modules/opentelemetry-instrumentation-urllib3/default.nix @@ -0,0 +1,63 @@ +{ + buildPythonPackage, + opentelemetry-instrumentation, + + # build-system + hatchling, + + # dependencies + opentelemetry-api, + opentelemetry-semantic-conventions, + opentelemetry-util-http, + wrapt, + + # optional-dependencies + urllib3, + + # tests + httpretty, + opentelemetry-test-utils, + pytestCheckHook, + respx, +}: + +buildPythonPackage { + inherit (opentelemetry-instrumentation) version src; + pname = "opentelemetry-instrumentation-urllib3"; + pyproject = true; + + sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-urllib3"; + + build-system = [ hatchling ]; + + dependencies = [ + opentelemetry-api + opentelemetry-instrumentation + opentelemetry-semantic-conventions + wrapt + opentelemetry-util-http + ]; + + optional-dependencies = { + instruments = [ + urllib3 + ]; + }; + + pythonImportsCheck = [ "opentelemetry.instrumentation.urllib3" ]; + + nativeCheckInputs = [ + httpretty + opentelemetry-test-utils + pytestCheckHook + respx + urllib3 + ]; + + __darwinAllowLocalNetworking = true; + + meta = opentelemetry-instrumentation.meta // { + description = "OpenTelemetry urllib3 instrumentation"; + homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-urllib3"; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 463ebbbae93d..06ef62442bfb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11236,6 +11236,10 @@ self: super: with self; { callPackage ../development/python-modules/opentelemetry-instrumentation-sqlalchemy { }; + opentelemetry-instrumentation-urllib3 = + callPackage ../development/python-modules/opentelemetry-instrumentation-urllib3 + { }; + opentelemetry-instrumentation-wsgi = callPackage ../development/python-modules/opentelemetry-instrumentation-wsgi { }; From 7cef22aca994359d3b925c9fa609375914b6078e Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Nov 2025 12:53:55 +0000 Subject: [PATCH 4/5] python3Packages.model-signing: init at 1.1.1 --- .../python-modules/model-signing/default.nix | 100 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 102 insertions(+) create mode 100644 pkgs/development/python-modules/model-signing/default.nix diff --git a/pkgs/development/python-modules/model-signing/default.nix b/pkgs/development/python-modules/model-signing/default.nix new file mode 100644 index 000000000000..40204283a06d --- /dev/null +++ b/pkgs/development/python-modules/model-signing/default.nix @@ -0,0 +1,100 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatchling, + + # dependencies + asn1crypto, + blake3, + click, + cryptography, + in-toto-attestation, + sigstore, + sigstore-models, + typing-extensions, + + # optional-dependencies + opentelemetry-api, + opentelemetry-distro, + opentelemetry-exporter-otlp, + opentelemetry-instrumentation, + opentelemetry-instrumentation-urllib3, + opentelemetry-sdk, + pykcs11, + + # tests + pytestCheckHook, + writableTmpDirAsHomeHook, +}: + +buildPythonPackage rec { + pname = "model-signing"; + version = "1.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "sigstore"; + repo = "model-transparency"; + tag = "v${version}"; + hash = "sha256-z6PaNVoA5VL5CNYDp7XRXOs9rLfsJggoCu7kyewRm+o="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + asn1crypto + blake3 + click + cryptography + in-toto-attestation + sigstore + sigstore-models + typing-extensions + ]; + + optional-dependencies = { + otel = [ + opentelemetry-api + opentelemetry-distro + opentelemetry-exporter-otlp + opentelemetry-instrumentation + opentelemetry-instrumentation-urllib3 + opentelemetry-sdk + ]; + pkcs11 = [ + pykcs11 + ]; + }; + + pythonImportsCheck = [ "model_signing" ]; + + nativeCheckInputs = [ + pykcs11 + pytestCheckHook + writableTmpDirAsHomeHook + ]; + + disabledTests = [ + # Require internet access + "test_sign_and_verify" + "test_verify_sigstore_v0_3_1" + "test_verify_sigstore_v1_0_0" + + # AttributeError: 'NoneType' object has no attribute 'hint' + "test_verify_key_v0_3_1" + "test_verify_key_v1_0_0" + ]; + + meta = { + description = "Supply chain security for ML"; + homepage = "https://github.com/sigstore/model-transparency"; + changelog = "https://github.com/sigstore/model-transparency/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 06ef62442bfb..f4a9d9fa9642 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9678,6 +9678,8 @@ self: super: with self; { model-checker = callPackage ../development/python-modules/model-checker { }; + model-signing = callPackage ../development/python-modules/model-signing { }; + modelcif = callPackage ../development/python-modules/modelcif { }; modeled = callPackage ../development/python-modules/modeled { }; From 0cb24530789bdd28a99360b89248102561864b72 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 12 Nov 2025 12:54:12 +0000 Subject: [PATCH 5/5] python3Packages.kagglehub: init at 0.3.13 --- .../python-modules/kagglehub/default.nix | 114 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 116 insertions(+) create mode 100644 pkgs/development/python-modules/kagglehub/default.nix diff --git a/pkgs/development/python-modules/kagglehub/default.nix b/pkgs/development/python-modules/kagglehub/default.nix new file mode 100644 index 000000000000..258e68c855b9 --- /dev/null +++ b/pkgs/development/python-modules/kagglehub/default.nix @@ -0,0 +1,114 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatchling, + + # dependencies + packaging, + pyyaml, + requests, + tqdm, + + # optional-dependencies + # hf-datasets + datasets, + kagglehub, + # pandas-datasets + pandas, + # polars-datasets + polars, + # signing + betterproto, + model-signing, + sigstore, + + # tests + fastexcel, + flask, + flask-jwt-extended, + jwt, + openpyxl, + pytestCheckHook, + writableTmpDirAsHomeHook, +}: + +buildPythonPackage rec { + pname = "kagglehub"; + version = "0.3.13"; + pyproject = true; + + src = fetchFromGitHub { + owner = "Kaggle"; + repo = "kagglehub"; + tag = "v${version}"; + hash = "sha256-pwQZhNtps2wZeLlMMsX0M8t6qBuEdL3m/Kjf0Qdk0PM="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + packaging + pyyaml + requests + tqdm + ]; + + optional-dependencies = { + hf-datasets = [ + datasets + kagglehub + ]; + pandas-datasets = [ + pandas + ]; + polars-datasets = [ + polars + ]; + signing = [ + betterproto + model-signing + sigstore + ]; + }; + + pythonImportsCheck = [ "kagglehub" ]; + + nativeCheckInputs = [ + datasets + fastexcel + flask + flask-jwt-extended + jwt + model-signing + openpyxl + polars + pytestCheckHook + writableTmpDirAsHomeHook + ] + ++ optional-dependencies.pandas-datasets; + + disabledTestPaths = [ + # Require internet access + "integration_tests/" + ]; + + disabledTests = [ + # Requires internet access + "test_model_signing" + ]; + + __darwinAllowLocalNetworking = true; + + meta = { + description = "Python library to access Kaggle resources"; + homepage = "https://github.com/Kaggle/kagglehub"; + changelog = "https://github.com/Kaggle/kagglehub/blob/${src.tag}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ GaetanLepage ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f4a9d9fa9642..3d2272df2645 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7809,6 +7809,8 @@ self: super: with self; { kaggle = callPackage ../development/python-modules/kaggle { }; + kagglehub = callPackage ../development/python-modules/kagglehub { }; + kahip = toPythonModule ( pkgs.kahip.override { pythonSupport = true;