An Emacs package that automatically manages Python imports
demo_before.py >>> demo_after.py
| Command | Description |
|---|---|
M-x pim |
Fix all imports and sort |
M-x pim-delete-unused |
Remove unused imports |
M-x pim-insert-missed |
Add missing imports |
M-x pim-delete-duplicated |
Remove duplicate imports |
M-x pim-isort |
Sort imports using isort |
M-x pim-auto-mode |
Toggle automatic import fixing on save |
- Emacs 26.1 or later
- flake8 (Python package)
- isort (Python package)
- Install flake8 and isort:
pip install flake8 isort- Clone the repository or place
python-import-manager.elto your loadpath:
git clone [email protected]:ywatanabe1989/python-import-manager.git ~/.emacs.d/lisp/python-import-manager- Add to your
load-path:
(add-to-list 'load-path (expand-file-name "~/.emacs.d/lisp/python-import-manager/"));;; -*- lexical-binding: t -*-
;;; Author: ywatanabe
;;; Time-stamp: <2024-11-01 01:49:39 (ywatanabe)>
;;; File: ./.dotfiles/.emacs.d/inits/300-python/300-python-pim.el
(add-to-list 'load-path (expand-file-name "~/.emacs.d/lisp/python-import-manager/"))
(require 'python-import-manager)
(setq pim-python-path (expand-file-name "~/.env-3.11/bin/python3"))
(setq pim-flake8-path (expand-file-name "~/.env-3.11/bin/flake8"))
(setq pim-isort-path (expand-file-name "~/.env-3.11/bin/isort"))
(setq pim-import-aliases
(append pim-import-aliases
'(("numpy" . "np")
("pandas" . "pd")
("matplotlib.pyplot" . "plt")
("seaborn" . "sns")
("mngs" . "mngs")
("scripts.utils" . "utils"))))
(add-hook 'python-mode-hook
(lambda ()
(pim-auto-mode 1)))
(message "%s was loaded." (file-name-nondirectory (or load-file-name buffer-file-name)))GPL-3.0 or later
