diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 778c2161..5b534279 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -51,7 +51,7 @@ repos: - id: mypy # verbose: true # log_file: 'pre-commit_mypy.log' - additional_dependencies: [ types-requests, types-urllib3 ] + additional_dependencies: [ types-pkg-resources, types-requests, types-urllib3 ] # args: [ "--follow-imports", "skip", "--ignore-missing-imports", "--scripts-are-modules" ] ### # pydocstyle.exe diff --git a/requirements-dev.txt b/requirements-dev.txt index ceacac8e..cb25fbf8 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -24,6 +24,7 @@ mypy==0.991 pep8-naming==0.13.3 safety==2.3.5 types-requests==2.28.11.7 +types-pkg-resources==0.1.3 # Code formatting tools autopep8==2.0.1 diff --git a/scripts/pip_rev_deps.py b/scripts/pip_rev_deps.py new file mode 100644 index 00000000..b97757d5 --- /dev/null +++ b/scripts/pip_rev_deps.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Find the reverse dependencies of a package according to pip.""" +import sys + +import pkg_resources + + +def find_reverse_deps(package_name: str): + """ + Find the packages that depend on the named one. + + :param package_name: Target package. + :return: List of packages that depend on this one. + """ + return [ + pkg.project_name for pkg in pkg_resources.WorkingSet() + if package_name in {req.project_name for req in pkg.requires()} + ] + + +if __name__ == '__main__': + print(find_reverse_deps(sys.argv[1]))