From b0edb6c558fde991d3467fc58d89be5eec046cac Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sun, 19 Jul 2026 15:47:54 -0400 Subject: [PATCH] python3Packages.hepdata-validator: init at 0.3.6 JSON schema and validation code for HEPData submissions. Assisted-by: Claude Sonnet 5 --- .../hepdata-validator/default.nix | 69 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 71 insertions(+) create mode 100644 pkgs/development/python-modules/hepdata-validator/default.nix diff --git a/pkgs/development/python-modules/hepdata-validator/default.nix b/pkgs/development/python-modules/hepdata-validator/default.nix new file mode 100644 index 000000000000..a2b4bcd2524c --- /dev/null +++ b/pkgs/development/python-modules/hepdata-validator/default.nix @@ -0,0 +1,69 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + click, + jsonschema, + packaging, + pyyaml, + requests, + pytestCheckHook, + pytest-cov, + mock, +}: + +buildPythonPackage (finalAttrs: { + pname = "hepdata-validator"; + version = "0.3.6"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "HEPData"; + repo = "hepdata-validator"; + tag = finalAttrs.version; + hash = "sha256-Cp5UF6ULnZhebwOuVKImwtz3ceL2iXFyDNH3RQPgpIA="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + click + jsonschema + packaging + pyyaml + requests + ]; + + nativeCheckInputs = [ + mock + pytest-cov + pytestCheckHook + ]; + + # These tests require network access to download or resolve schemas. + disabledTestPaths = [ + "testsuite/test_schema_downloader.py" + "testsuite/test_schema_resolver.py" + ]; + + disabledTests = [ + # These require network access. + "test_valid_schema_with_no_local_copy" + "test_valid_submission_dir_remote_schema" + "test_valid_submission_dir_remote_schema_no_autoloading" + "test_valid_submission_dir_remote_schema_multiple_loads" + "test_invalid_remote_schema" + ]; + + pythonImportsCheck = [ "hepdata_validator" ]; + + meta = { + description = "JSON schema and validation code for HEPData submissions"; + homepage = "https://github.com/HEPData/hepdata-validator"; + changelog = "https://github.com/HEPData/hepdata-validator/releases/tag/${finalAttrs.version}"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ veprbl ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8f7165a3f3e8..92c7ae1eed8b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7490,6 +7490,8 @@ self: super: with self; { helper = callPackage ../development/python-modules/helper { }; + hepdata-validator = callPackage ../development/python-modules/hepdata-validator { }; + hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; }); hepunits = callPackage ../development/python-modules/hepunits { };