about summary refs log tree commit diff
path: root/pkgs/development/python-modules/fonttools/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/fonttools/default.nix')
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix64
1 files changed, 37 insertions, 27 deletions
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index a667f631eb184..ba9929caacce2 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,19 +1,25 @@
 { lib
+, stdenv
 , buildPythonPackage
-, fetchFromGitHub
 , pythonOlder
-, brotlipy
-, zopfli
+, isPyPy
+, fetchFromGitHub
+, setuptools-scm
+, fs
 , lxml
+, brotli
+, brotlicffi
+, zopfli
+, unicodedata2
+, lz4
 , scipy
 , munkres
-, unicodedata2
+, matplotlib
 , sympy
-, reportlab
-, sphinx
+, xattr
+, skia-pathops
+, uharfbuzz
 , pytestCheckHook
-, glibcLocales
-, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -31,28 +37,32 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  # all dependencies are optional, but
-  # we run the checks with them
+  passthru.optional-dependencies = let
+    extras = {
+      ufo = [ fs ];
+      lxml = [ lxml ];
+      woff = [ (if isPyPy then brotlicffi else brotli) zopfli ];
+      unicode = lib.optional (pythonOlder "3.11") unicodedata2;
+      graphite = [ lz4 ];
+      interpolatable = [ (if isPyPy then munkres else scipy) ];
+      plot = [ matplotlib ];
+      symfont = [ sympy ];
+      type1 = lib.optional stdenv.isDarwin xattr;
+      pathops = [ skia-pathops ];
+      repacker = [ uharfbuzz ];
+    };
+  in extras // {
+    all = lib.concatLists (lib.attrValues extras);
+  };
 
   checkInputs = [
     pytestCheckHook
-    # etree extra
-    lxml
-    # woff extra
-    brotlipy
-    zopfli
-    # interpolatable extra
-    scipy
-    munkres
-    # symfont
-    sympy
-    # pens
-    reportlab
-    sphinx
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    # unicode extra
-    unicodedata2
-  ];
+  ] ++ lib.concatLists (lib.attrVals [
+    "woff"
+    "interpolatable"
+    "pathops"
+    "repacker"
+  ] passthru.optional-dependencies);
 
   pythonImportsCheck = [ "fontTools" ];