Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdlubrano/dep-appearances
Check whether your Python dependencies are being used in your code
https://github.com/jdlubrano/dep-appearances
Last synced: 23 days ago
JSON representation
Check whether your Python dependencies are being used in your code
- Host: GitHub
- URL: https://github.com/jdlubrano/dep-appearances
- Owner: jdlubrano
- License: mit
- Created: 2021-10-04T00:25:09.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-12-23T15:07:46.000Z (about 3 years ago)
- Last Synced: 2024-11-09T00:50:05.947Z (2 months ago)
- Language: Python
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dep-appearances
A simple tool to see where your dependencies are imported. The `dep-appearances`
CLI produces a report of which files import each of your dependencies. At this
time, the CLI only works for projects that use
[`pipenv`](https://pipenv.pypa.io/en/latest/), but support for any dependency
management tool could be added.## Requirements
* Python 3
## How to Use dep-appearances
You can install `dep-appearances` via `pip`:
```
pip install dep-appearances
```Installing the package provides a CLI:
```
dep-appearances --help
usage: dep-appearances [-h] [--underused_threshold UNDERUSED_THRESHOLD] [PATH]Find dependencies that are unused and underused in your codebase.
positional arguments:
PATH The path to your project's root (defaults to your
current working directory)optional arguments:
-h, --help show this help message and exit
--underused_threshold UNDERUSED_THRESHOLD
The threshold to set for marking dependencies as
underused (default: 2)
```From the root of your project (i.e. wherever your `Pipfile` is) you can run
`dep-appearances` and you will get a report of dependencies that don't appear to
imported _and_ a report of dependencies that my not be imported in very many
places.```
> dep-appearances
Unused dependencies:
build
pytest
twineUnderused dependencies (usage threshold = 2):
pipfile
imported in:
src/dep_appearances/appearances_report.py:3
```### Known Shortcomings
There are, unfortunately, packages that have a different name when importing
them than when installing them. For example, the `apache-airflow` package shows
up in a Pipfile as `apache-airflow`, but when it is used in a codebase you use```
import airflow
````dep-appearances` currently does **not** account for such cases. Therefore
you should not remove dependencies from your codebase without confirming that
packages are unused.## How to contribute to dep-appearances
Pull requests are definitely welcome. Just fork this repo and open a PR
against the `main` branch.### Useful Development Commands
Install dependencies
```
pipenv install
```Install and use the package locally (to work on the CLI):
```
pipenv run pip install -e .
pipenv run dep-appearances
```Running tests:
```
pipenv run pytest
```## Release Process
```
# Generate distribution archives:
python3 -m build
# => Should create files in dist/# Push to pypi
python3 -m twine upload dist/*
```### Building for test.pypi
```
python3 -m build
python3 -m twine upload --repository testpypi dist/*
```Install from test.pypi:
```
python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps dep-appearances
```