diff --git a/pkgs/development/python-modules/mpl-typst/default.nix b/pkgs/development/python-modules/mpl-typst/default.nix index c2d0d1ffc697..47f092e89fa0 100644 --- a/pkgs/development/python-modules/mpl-typst/default.nix +++ b/pkgs/development/python-modules/mpl-typst/default.nix @@ -1,5 +1,6 @@ { lib, + stdenv, fetchFromGitHub, buildPythonPackage, setuptools, @@ -8,6 +9,7 @@ pytestCheckHook, pillow, nix-update-script, + typst, }: buildPythonPackage rec { @@ -22,6 +24,14 @@ buildPythonPackage rec { hash = "sha256-lkO4BTo3duNAsppTjteeBuzgSJL/UnKVW2QXgrfVrqM="; }; + postPatch = '' + # make hermetic + substituteInPlace mpl_typst/config.py \ + --replace-fail \ + "get_typst_compiler(name: str, default=Path('typst'))" \ + "get_typst_compiler(name: str, default=Path('${lib.getExe typst}'))" + ''; + build-system = [ setuptools ]; @@ -36,11 +46,25 @@ buildPythonPackage rec { numpy ]; + pytestFlagsArray = [ "-v" ]; + pythonImportsCheck = [ "mpl_typst" "mpl_typst.as_default" ]; + disabledTests = [ + # runs typst and gets "error: failed to download package" + "test_draw_path" + "test_draw_image_lenna" + "test_draw_image_spy" + ]; + + disabledTestPaths = lib.optional stdenv.hostPlatform.isDarwin [ + # fatal error when matplotlib creates a canvas + "mpl_typst/backend_test.py" + ]; + passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9735168761ba..287936bdc89f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9665,7 +9665,9 @@ self: super: with self; { mpl-scatter-density = callPackage ../development/python-modules/mpl-scatter-density { }; - mpl-typst = callPackage ../development/python-modules/mpl-typst { }; + mpl-typst = callPackage ../development/python-modules/mpl-typst { + inherit (pkgs) typst; + }; mplcursors = callPackage ../development/python-modules/mplcursors { };