A tool to automatically replace relative imports with absolute ones.
Project description
abs-imports
A pre-commit hook to automatically convert relative imports to absolute.
Installation
pip install abs-imports
Usage as a pre-commit hook
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/MarcoGorelli/abs-imports
rev: v0.2.0
hooks:
- id: abs-imports
Command-line example
$ cat mypackage/myfile.py
from . import __version__
$ abs_imports mypackage/myfile.py
$ cat mypackage/myfile.py
from mypackage import __version__
If your package follows the popular ./src
layout, you can pass your application directories via --application-directories
, e.g.
cat src/mypackage/myfile.py
from . import __version__
$ abs_imports src/mypackage/myfile.py --application-directories src
$ cat src/mypackage/myfile.py
from mypackage import __version__
Multiple application directories should be comma-separate, e.g. --application-directories .:src
. This is the same as in reorder-python-imports.
See also
Check out pyupgrade, which I learned a lot from when writing this.
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
Built Distribution
File details
Details for the file abs_imports-0.2.0.tar.gz
.
File metadata
- Download URL: abs_imports-0.2.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a8d5200ba3e775c7d79f9d6c9908c2549a14f6bd76021d6aad05288d483bc11 |
|
MD5 | 215601f9db198e1a688917c63d801c69 |
|
BLAKE2b-256 | 817436aea89de523b67004b86f1821438a80050572d3247861e4049a59731aaf |
Provenance
File details
Details for the file abs_imports-0.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: abs_imports-0.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad017b6d2b7fdd278a082f13af18a4d72fba1d0d216771a036212b8e3ff9c87a |
|
MD5 | 913ec65336b9e06316e77a02df3de3bc |
|
BLAKE2b-256 | e95571ca07cb64457e7df56b8537bc0bf608274c883963c1b20ad6f991dc58ae |