You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A high-level collection of tasks/issues that we should be able to tackle fairly soon, and that would significantly improve the user experience of FawltyDeps:
Improving our matching of dependencies vs imports
Finding and fixing various corner cases where our mapping from dependency names to import names using the local environment is incorrect.
Teach FawltyDeps to look at a different environment than what it itself is running in. This would allow you to e.g. pipx install fawltydeps to have it available across all your projects instead of having to install it in every project's own virtualenv.
Look at fully decoupling ourselves from the local environment: pull information about packages and their import names directly from PyPI? Maybe include a hardcoded registry of common cases inside FawltyDeps itself?
A generic and easy-to-use directive for ignoring files.
Along the same lines as when we added the basepath positional argument (which is a shortcut for passing --code and --deps) we should have a --ignore(?) option for easily ignoring parts of the directory tree, both with respect to parsing code and deps.
Do we want to ignore some things by default? build/? dist/? virtualenvs? __pycache__? Maybe safer to reuse stuff from .gitignore?
At least warn the user when we see that a dynamic import is likely happening, but we're unable to fully parse it.
Improve our detection of sys.path and similar environment manipulation, and warn the user of how this likely affects our classification of 1st- vs 3rd-party packages.
Add knobs to allow the user to tell us where more 1st-party packages can be found.
Recognize the context in which something is imported, and how that should affect our reporting (see issue Learn from Pants #171 for inspiration). Recognize e.g. the following patterns:
try: import ... except ImportError: ...
if sys.version_info >= ...: import ... else: import ...
Differentiate between dependency groups (specifically main/mandatory deps vs. extras/dev/test/optional deps), and allow the user to specify which deps FD should check.
A high-level collection of tasks/issues that we should be able to tackle fairly soon, and that would significantly improve the user experience of FawltyDeps:
Improving our matching of dependencies vs imports
qiskit
package does not include theqiskit
import name #176, Packages that are installed from local (editable?) folders are not reported bypackages_distributions()
? #187pipx install fawltydeps
to have it available across all your projects instead of having to install it in every project's own virtualenv.Parsing imports and dependencies
basepath
positional argument (which is a shortcut for passing--code
and--deps
) we should have a--ignore
(?) option for easily ignoring parts of the directory tree, both with respect to parsing code and deps.build/
?dist/
? virtualenvs?__pycache__
? Maybe safer to reuse stuff from.gitignore
?importlib
for importing modules.sys.path
and similar environment manipulation, and warn the user of how this likely affects our classification of 1st- vs 3rd-party packages.try: import ... except ImportError: ...
if sys.version_info >= ...: import ... else: import ...
Presenting/filtering results
types-*
packages by default?The text was updated successfully, but these errors were encountered: