From f8b11e8a904814b84c1e03efdf4534d062d4056c Mon Sep 17 00:00:00 2001 From: dansbandit <4530687+dansbandit@users.noreply.github.com> Date: Thu, 13 Jun 2024 19:12:58 +0200 Subject: [PATCH] python3Packages.sphinxcontrib-svg2pdfconverter: init at 1.3.0 --- .../default.nix | 59 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/development/python-modules/sphinxcontrib-svg2pdfconverter/default.nix diff --git a/pkgs/development/python-modules/sphinxcontrib-svg2pdfconverter/default.nix b/pkgs/development/python-modules/sphinxcontrib-svg2pdfconverter/default.nix new file mode 100644 index 000000000000..11a12dfdb2f3 --- /dev/null +++ b/pkgs/development/python-modules/sphinxcontrib-svg2pdfconverter/default.nix @@ -0,0 +1,59 @@ +{ + lib, + buildPythonPackage, + setuptools, + sphinx, + cairosvg, + inkscape, + librsvg, + fetchPypi, + + withCairosvg ? false, + withInkscape ? false, + withLibrsvg ? true, +}: + +assert (withCairosvg || withInkscape || withLibrsvg); + +buildPythonPackage rec { + pname = "sphinxcontrib-svg2pdfconverter"; + version = "1.3.0"; + pyproject = true; + + src = fetchPypi { + inherit version; + pname = "sphinxcontrib_svg2pdfconverter"; + hash = "sha256-ZBGkzC9X7tlqDXu/oTn2jL55gwGIgeHm18RgU81pkR8="; + }; + + # for enabled modules: provide the full path to the binary + postPatch = + lib.optionalString withLibrsvg '' + substituteInPlace sphinxcontrib/rsvgconverter.py \ + --replace-fail "'rsvg_converter_bin', 'rsvg-convert'" "'rsvg_converter_bin', '${lib.getExe' librsvg "rsvg-convert"}'" + '' + + lib.optionalString withInkscape '' + substituteInPlace sphinxcontrib/inkscapeconverter.py \ + --replace-fail "'inkscape_converter_bin', 'inkscape'" "'inkscape_converter_bin', '${lib.getExe inkscape}'" + ''; + + build-system = [ setuptools ]; + + dependencies = [ sphinx ] ++ lib.optional withCairosvg cairosvg; + + doCheck = false; # no tests + + pythonImportsCheck = + lib.optional withCairosvg "sphinxcontrib.cairosvgconverter" + ++ lib.optional withInkscape "sphinxcontrib.inkscapeconverter" + ++ lib.optional withLibrsvg "sphinxcontrib.rsvgconverter"; + + pythonNamespaces = [ "sphinxcontrib" ]; + + meta = { + description = "Sphinx SVG to PDF converter extension"; + homepage = "https://github.com/missinglinkelectronics/sphinxcontrib-svg2pdfconverter"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ dansbandit ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3da85187ea93..aac06ec26bbc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15694,6 +15694,8 @@ self: super: with self; { sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { }; + sphinxcontrib-svg2pdfconverter = callPackage ../development/python-modules/sphinxcontrib-svg2pdfconverter { }; + sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz { }; sphinxcontrib-wavedrom = callPackage ../development/python-modules/sphinxcontrib-wavedrom { };