Tool that checks presence of import from __future__ import annotations in python files and adds it if it's missing.
Requires Python >=3.8.
pip install import-future-annotationsimport-future-annotations takes filenames as positional arguments.
Additional options:
--check-only: Don't modify files, only check. If script is applicable to any given file, the exit status code will be 1.--allow-empty: Add import to empty python files aswell.
See pre-commit for instructions
Sample .pre-commit-config.yaml:
- repo: https://github.com/mbroton/import-future-annotations
rev: v0.1.0
hooks:
- id: import-future-annotationsfile.py before:
import os
import sys
...Run pre-commit hook or execute command:
> import-future-annotations file.py
Adding annotations import to file.pyfile.py after:
+ from __future__ import annotations
import os
import sysfile.py before:
"""
This is a module docstring.
"""
import os
import sys
...Run pre-commit hook or execute command:
> import-future-annotations file.py
Adding annotations import to file.pyfile.py after:
"""
This is a module docstring.
"""
+ from __future__ import annotations
import os
import sysThe import is placed after the module docstring (if present) or at the beginning of the file (if no docstring).
Files containing syntax errors are automatically skipped with a warning message:
> import-future-annotations broken_file.py
Skipping broken_file.py: file contains syntax errors- It won't add any blank lines, so I suggest to use/place it before
reorder_python_importshook or other hooks that may complain about it.