From 116c9317c0fa65e1854fcf2f84975e11c39e16eb Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Sun, 6 Jul 2025 11:16:32 -0600 Subject: [PATCH] py-wacz: init at 0.5.0 The Python module is named wacz. Signing isn't enabled yet. --- .../python-modules/wacz/default.nix | 82 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + pkgs/top-level/python-packages.nix | 2 + 3 files changed, 86 insertions(+) create mode 100644 pkgs/development/python-modules/wacz/default.nix diff --git a/pkgs/development/python-modules/wacz/default.nix b/pkgs/development/python-modules/wacz/default.nix new file mode 100644 index 000000000000..01663a47cfdf --- /dev/null +++ b/pkgs/development/python-modules/wacz/default.nix @@ -0,0 +1,82 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch, + setuptools, + boilerpy3, + cdxj-indexer, + frictionless, + pytest-cov, + pyyaml, + shortuuid, + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "wacz"; + version = "0.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "webrecorder"; + repo = "py-wacz"; + tag = "v${version}"; + hash = "sha256-bGY6G7qBAN1Vu+pTNqRG0xh34sR62pMhQFHFGlJaTPQ="; + }; + + patches = [ + # + (fetchpatch { + name = "clean-up-deps.patch"; + url = "https://github.com/webrecorder/py-wacz/compare/1e8f724a527f28855eedeb0d969ee39b00b2a80a...9d3ad60f125247b8a4354511d9123b85ce6a23c5.patch"; + hash = "sha256-zH6BKhsq9ybjzaWcNbVkk1sWh8vVCkv7Qxuwl0MQhNM="; + }) + ]; + + postPatch = '' + substituteInPlace setup.py \ + --replace "pytest-runner" "" + ''; + + build-system = [ + setuptools + ]; + + dependencies = [ + boilerpy3 + cdxj-indexer + frictionless + pyyaml + shortuuid + ] ++ frictionless.optional-dependencies.json; + + optional-dependencies = { + # signing = [ + # authsign # not packaged + # ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + pytest-cov + ]; + + disabledTests = [ + # authsign is not packaged + "test_verify_signed" + ]; + + pythonImportsCheck = [ + "wacz" + ]; + + meta = { + description = "Utility for working with web archive data using the WACZ format specification"; + homepage = "https://github.com/webrecorder/py-wacz"; + changelog = "https://github.com/webrecorder/py-wacz/blob/${src.rev}/CHANGES.md"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ zhaofengli ]; + mainProgram = "wacz"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1a886e62864f..e604144d785c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16364,6 +16364,8 @@ with pkgs; ffmpeg = ffmpeg-full; }; + py-wacz = with python3Packages; toPythonApplication wacz; + wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { }; wasmer = callPackage ../development/interpreters/wasmer { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 27348052e871..e1eb3b3aafc8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -19147,6 +19147,8 @@ self: super: with self; { w3lib = callPackage ../development/python-modules/w3lib { }; + wacz = callPackage ../development/python-modules/wacz { }; + wadler-lindig = callPackage ../development/python-modules/wadler-lindig { }; wadllib = callPackage ../development/python-modules/wadllib { };