Home

Awesome

Build Status Coverage pre-commit.ci status

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...