Awesome
NOTE
This tool has been superseded by Ruff https://docs.astral.sh/ruff/rules/relative-imports/. Please use that instead.
R.I.P. absolufy-imports
absolufy-imports
A tool and pre-commit hook to automatically convert relative imports to absolute.
<p align="center"> <a href="#readme"> <img alt="demo" src="https://raw.githubusercontent.com/nbQA-dev/nbQA-demo/master/abs-imports.gif"> </a> </p>Installation
$ pip install absolufy-imports
Usage as a pre-commit hook
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.1
hooks:
- id: absolufy-imports
Command-line example
$ absolufy-imports mypackage/myfile.py
- from . import __version__
+ from mypackage import __version__
Configuration
Application directories
If your package follows the popular ./src
layout, you can pass your application directories via --application-directories
, e.g.
$ absolufy-imports src/mypackage/myfile.py --application-directories src
- from . import __version__
+ from mypackage import __version__
Multiple application directories should be colon-separated, e.g. --application-directories .:src
. This is the same as in reorder-python-imports.
Run on directory
I'd suggest using pre-commit.
Either that, or
git ls-files | grep '\.py$' | xargs absolufy-imports
Relative imports if some condition else absolute
naah...