Skip to main content

Python module import analysis tool

Project description

FindImports

FindImports extracts Python module dependencies by parsing source files. It can report names that are imported but not used, and it can generate module import graphs in ASCII or graphviz formats.

A distinguishing feature of findimports used to be that it could parse doctest code inside docstrings.

Note that not all cases are handled correctly, especially if you use ‘import foo.bar.baz’.

If you need to find unused imports in your codebase, I recommend Pyflakes instead – it’s better maintained and more reliable. For import graphs consider pydeps.

Misc

Home page: https://github.com/mgedmin/findimports

Licence: MIT (https://mit-license.org/)

buildstatus appveyor coverage

Changes

2.5.1 (2024-10-09)

  • Add support for Python 3.13.

2.5.0 (2024-05-30)

2.4.0 (2024-02-01)

  • Add support for Python 3.12.

  • Change license from GPL to MIT. See issue 27.

  • Add --package-externals/-pE to simplify the module graph.

  • Add --rmprefix PREFIX/-R PREFIX to remove a package prefix from displayed names.

  • Add --depth N/-D N to ignore import statements nested too deep in the syntax tree (e.g. in functions or if statements).

2.3.0 (2022-10-27)

  • Rewrote command-line parsing to use argparse. Options that select an action (--imports/--dot/--names/--unused) now conflict instead of all but the last one being ignored. See pull request #20.

  • Add support for Python 3.11.

  • Drop support for Python 3.6.

2.2.0 (2021-12-16)

  • Add support for Python 3.10.

  • Add --ignore-stdlib flag to ignore modules from the Python standard library.

2.1.0 (2021-05-16)

  • Add --ignore flag to ignore files and directories, it can be used multiple times. See pull request #14.

2.0.0 (2021-05-09)

  • Add support for Python 3.9.

  • Drop support for Python 3.5 and 2.7.

  • Fix a bug where the encoding of Python files was not determined in the same way as by Python itself. See issue 15. This requires the use of tokenize.open which is not in Python 2.7.

1.5.2 (2019-10-31)

  • Add support for Python 3.8.

  • Fix a bug where a package/module with a name that is a prefix of another package/module might accidentally be used instead of the other one (e.g. py instead of pylab). See issue 10.

1.5.1 (2019-04-23)

  • Drop support for Python 3.4.

1.5.0 (2019-03-18)

  • Support Python 3.6 and 3.7.

  • Drop support for Python 2.6 and 3.3.

  • Suppress duplicate import warnings if the line in question has a comment.

1.4.1 (2016-09-28)

  • Replace getopt with optparse. This changes the --help message as a side effect (#4).

1.4.0 (2015-06-04)

  • Python 3 support (3.3 and newer).

  • Use ast instead of compiler (#1).

1.3.2 (2015-04-13)

  • Fix “cannot find datetime” on Ubuntu 14.04 LTS (#3).

  • 100% test coverage.

1.3.1 (2014-04-16)

  • Added support for relative imports (e.g. from .. import foo).

1.3.0 (2013-04-10)

  • Moved to Github.

  • Drop Python 2.4 and 2.5 support.

  • Handle unicode docstrings with doctests.

1.2.14 (2012-02-12)

1.2.13 (2011-04-18)

  • Suppress “not a zipfile” warnings about *.egg-info files listed in sys.path.

1.2.12 (2011-04-08)

  • Handle zipfile errors when there are plain files that are not zip files on sys.path.

1.2.11 (2011-03-30)

  • Fix ‘could not find cPickle’ errors on Python 2.6 and newer.

1.2.10 (2010-02-05)

  • Ignore ‘from __future__ import …’.

1.2.9 (2009-07-07)

  • Fixed broken and uninstallable source distribution by adding a MANIFEST.in.

1.2.8 (2009-07-07)

  • Is able to find modules inside zip files (e.g. eggs).

  • Fixed deprecation warning on Python 2.6.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

findimports-2.5.1.tar.gz (28.8 kB view details)

Uploaded Source

Built Distribution

findimports-2.5.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file findimports-2.5.1.tar.gz.

File metadata

  • Download URL: findimports-2.5.1.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for findimports-2.5.1.tar.gz
Algorithm Hash digest
SHA256 452db8ec1d41558c4cca17d1a8846a211114c8f6c72b9cd759d843b80e213b2f
MD5 588041cf8fcec39d63c6de4e51b5fe6f
BLAKE2b-256 20edd6146972e88ccb2c845c083a84eb7e9f7d1b37f57cf7c326321b7a637511

See more details on using hashes here.

File details

Details for the file findimports-2.5.1-py3-none-any.whl.

File metadata

  • Download URL: findimports-2.5.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for findimports-2.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 62088560023b8c7feab296e423c80335e88dde45c156fd3b2ec456594242b00a
MD5 8f11d05ea045d5a5b2819b4c1e8b6c07
BLAKE2b-256 89e9a5663b4229ac3a30278ef32092410f81ce3ff1fd213d84951f9902d6ff5a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page