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 @@ the X11 display server protocol. It runs in memory and does not require a 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)))