Subject: [bug#63668] [PATCH] gnu: Add python-vulture.

From: Antero Mejr <[email-masked]>
Date: Tue, 23 May 2023 16:14:46 +0000

* gnu/packages/python-check.scm (python-vulture): New variable.
---
 gnu/packages/python-check.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 6c5f45d4b5..468a339788 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -2599,3 +2599,36 @@ (define-public python-xvfbwrapper
 physical display.  Only a network layer is necessary.  Xvfb is useful for
 running acceptance tests on headless servers.")
     (license license:expat)))
+
+(define-public python-vulture
+  (package
+    (name "python-vulture")
+    (version "2.7")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "vulture" version))
+              (sha256
+               (base32
+                "0cl0v3dadxvff0pgq1j120m064a3nmnbjjylkmcxp7zd2jh81yv7"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (replace 'check
+                          (lambda* (#:key tests? #:allow-other-keys)
+                            (when tests?
+                              (invoke "pytest" "-vv" "tests" "-k"
+                                      ;; skip test that uses python-pint
+                                      ;; pint has many dependencies
+                                      "not test_whitelists_with_python")))))))
+    (native-inputs (list python-pytest python-pytest-cov))
+    (propagated-inputs (list python-toml))
+    (home-page "https://github.com/jendrikseipp/vulture")
+    (synopsis "Find dead Python code")
+    (description
+     "Vulture finds unused code in Python programs.  This is useful for
+cleaning up and finding errors in large code bases.  If you run Vulture on
+both your library and test suite you can find untested code.  Due to Python's
+dynamic nature, static code analyzers like Vulture are likely to miss some
+dead code.  Also, code that is only called implicitly may be reported as
+unused.")
+    (license license:expat)))
-- 
2.39.2