Currently, pipreqs silently ignores missing packages or network errors
unless --debug is supplied. requirements.txt still gets built, but is
likely to be wrong.
This prints appropriate warnings when something goes wrong querying
pypi. For nonexistent packages, it suggests a missing mapping as a
possible culprit.
Ref: https://github.com/bndr/pipreqs/issues/66#issuecomment-415642021 This is a wholly separate package from pycryptodome (which replaced pycrypto in #124 and uses the namespace Crypto in import statments). This uses the namespace `Cryptodome` (is that what we call the parent name of module when importing?)
- Hoist non-file-reading logic outside of the file context manager
- Use a dict instead of a list for faster / more Pythonic lookups
- Use a set to simplify the add / append logic
- Move import sorting from `get_all_imports` to `get_pkg_names` for
to account for set ordering. This change may also affect #89.
- Add a docstring
Currently, flake8 is accessible via `make lint`, but it does not run
along side the rest of the test suite. This change adds flake8 checks to
the tox.ini file to enable linting as a routine part of running tests.
Additionally, drop the changes made in #100.
By using tox instead of the default Travis-CI Python environments, we
ensure that we have a single entrypoint to testing both locally and in
CI. This reduces redundant code and makes it clear when test
environments don't match up on different platforms.
[tox-travis](https://tox-travis.readthedocs.io/en/stable/) is introduced
here to automatically run tox jobs under the proper Travis-CI
environments. Additionally, the coveralls step is moved to a [build
stage](https://docs.travis-ci.com/user/build-stages) to run once after
all other Travis-CI tests complete.
This change makes the <path> argument optional, defaulting to the
current working directory if omitted.
---
Ideally, this would have been accomplished via docopt, but optional
positional arguments with defaults are not supported at the moment [1, 2].
[1] https://github.com/docopt/docopt/issues/214
[2] https://github.com/docopt/docopt/issues/329
This makes pipreqs dive into directories that are symlinks as Python
recognises these. If symlinks are not followed, then the requirements
will be incorrect.
We also add a command line option to disable following of symlinks if
need be.