diff --git a/pkgs/development/python-modules/odfdo/default.nix b/pkgs/development/python-modules/odfdo/default.nix new file mode 100644 index 000000000000..288c83a37f63 --- /dev/null +++ b/pkgs/development/python-modules/odfdo/default.nix @@ -0,0 +1,37 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + lxml, + pillow, + uv-build, +}: +buildPythonPackage (finalAttrs: { + pname = "odfdo"; + version = "3.22.3"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jdum"; + repo = "odfdo"; + tag = "v${finalAttrs.version}"; + hash = "sha256-1cOi7aAJ8jWjLuQbhd7aK5s2rJ5IvkTLIl9atKmXKMU="; + }; + + build-system = [ uv-build ]; + + dependencies = [ lxml ]; + + nativeCheckInputs = [ + pytestCheckHook + pillow + ]; + + meta = { + description = "OpenDocument Format (ODF, ISO/IEC 26300) library for Python"; + homepage = "https://github.com/jdum/odfdo"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ungeskriptet ]; + }; +}) diff --git a/pkgs/development/python-modules/odsgenerator/default.nix b/pkgs/development/python-modules/odsgenerator/default.nix new file mode 100644 index 000000000000..8642be0be7ce --- /dev/null +++ b/pkgs/development/python-modules/odsgenerator/default.nix @@ -0,0 +1,46 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + odfdo, + pyyaml, + uv-build, +}: +buildPythonPackage (finalAttrs: { + pname = "odsgenerator"; + version = "1.12.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jdum"; + repo = "odsgenerator"; + tag = "v${finalAttrs.version}"; + hash = "sha256-FfwyqNI5Hz2Muoe/VWgQigea6D042UoRbXDV9GNV4w4="; + }; + + build-system = [ uv-build ]; + + dependencies = [ + odfdo + pyyaml + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.9.0,<0.10.0" "uv_build" + substituteInPlace tests/test_cli.py \ + --replace-fail '"odsgenerator"' "\"$out/bin/odsgenerator\"" + ''; + + meta = { + description = "odsgenerator generates an ODF .ods file from json or yaml file"; + homepage = "https://github.com/jdum/odsgenerator"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ungeskriptet ]; + }; +}) diff --git a/pkgs/development/python-modules/odsparsator/default.nix b/pkgs/development/python-modules/odsparsator/default.nix new file mode 100644 index 000000000000..e07cf0d6f22f --- /dev/null +++ b/pkgs/development/python-modules/odsparsator/default.nix @@ -0,0 +1,42 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + odfdo, + uv-build, +}: +buildPythonPackage (finalAttrs: { + pname = "odsparsator"; + version = "1.14.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jdum"; + repo = "odsparsator"; + tag = "v${finalAttrs.version}"; + hash = "sha256-DpVWkspaZYYJHGYOrLte4JevH25xRzu38M2+QdFG22M="; + }; + + build-system = [ uv-build ]; + + dependencies = [ odfdo ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "uv_build>=0.9.0,<0.10.0" "uv_build" + substituteInPlace tests/test_cli.py \ + --replace-fail '"odsparsator"' "\"$out/bin/odsparsator\"" + ''; + + meta = { + description = "Generate a json file from an OpenDocument Format .ods file"; + homepage = "https://github.com/jdum/odsparsator"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ ungeskriptet ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index edda4a85e58f..e26719a1e396 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11357,10 +11357,16 @@ self: super: with self; { oddsprout = callPackage ../development/python-modules/oddsprout { }; + odfdo = callPackage ../development/python-modules/odfdo { }; + odfpy = callPackage ../development/python-modules/odfpy { }; odp-amsterdam = callPackage ../development/python-modules/odp-amsterdam { }; + odsgenerator = callPackage ../development/python-modules/odsgenerator { }; + + odsparsator = callPackage ../development/python-modules/odsparsator { }; + oelint-data = callPackage ../development/python-modules/oelint-data { }; oelint-parser = callPackage ../development/python-modules/oelint-parser { };