summary refs log tree commit diff
path: root/pkgs/development/python-modules/pyparsing/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/pyparsing/default.nix')
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix63
1 files changed, 38 insertions, 25 deletions
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 5ecfdfb8883..27047cf6eab 100644
--- a/pkgs/development/python-modules/pyparsing/default.nix
+++ b/pkgs/development/python-modules/pyparsing/default.nix
@@ -2,34 +2,47 @@
 , fetchFromGitHub
 , lib
 
-# pythonPackages
-, coverage
+# since this is a dependency of pytest, we need to avoid
+# circular dependencies
+, jinja2
+, railroad-diagrams
 }:
 
-buildPythonPackage rec {
-  pname = "pyparsing";
-  version = "2.4.7";
+let
+  pyparsing = buildPythonPackage rec {
+    pname = "pyparsing";
+    version = "3.0.6";
 
-  src = fetchFromGitHub {
-    owner = "pyparsing";
-    repo = pname;
-    rev = "pyparsing_${version}";
-    sha256 = "14pfy80q2flgzjcx8jkracvnxxnr59kjzp3kdm5nh232gk1v6g6h";
-  };
-
-  # https://github.com/pyparsing/pyparsing/blob/847af590154743bae61a32c3dc1a6c2a19009f42/tox.ini#L6
-  checkInputs = [ coverage ];
-  checkPhase = ''
-    coverage run --branch simple_unit_tests.py
-    coverage run --branch unitTests.py
-  '';
+    src = fetchFromGitHub {
+      owner = "pyparsing";
+      repo = pname;
+      rev = "pyparsing_${version}";
+      sha256 = "0n89ky7rx5yg09ssji8liahnyxip08hz7syc2k4pmlgs4978181a";
+    };
 
-  meta = with lib; {
-    homepage = "https://github.com/pyparsing/pyparsing";
-    description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
-    license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
+    # circular dependencies if enabled by default
+    doCheck = false;
+    checkInputs = [
+      jinja2
+      railroad-diagrams
     ];
+
+    checkPhase = ''
+      python -m unittest
+    '';
+
+    passthru.tests = {
+      check = pyparsing.overridePythonAttrs (_: { doCheck = true; });
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/pyparsing/pyparsing";
+      description = "An alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions";
+      license = licenses.mit;
+      maintainers = with maintainers; [
+        kamadorueda
+      ];
+    };
   };
-}
+in
+  pyparsing