-
-
Save kracekumar/77d29c7410199fd2cda4 to your computer and use it in GitHub Desktop.
;;; auto-remove.el --- Auto remove unused functions in python | |
;;; Commentary: | |
;; Uses external tool autoflake to remove unused imports from a Python file. | |
;;; Code: | |
(defcustom python-autoflake-path (executable-find "autoflake") | |
"Autoflake executable path. | |
Allows working with a virtualenv without actually adding support | |
for it." | |
:group 'python | |
:type 'string) | |
(defun python-remove-unused-imports () | |
"Use Autoflake to remove unused function. | |
$ autoflake --remove-all-unused-imports -i unused_imports.py" | |
(interactive) | |
(when (eq major-mode 'python-mode) | |
(shell-command (format "%s --remove-all-unused-imports -i %s" | |
python-autoflake-path | |
(shell-quote-argument (buffer-file-name)))) | |
(revert-buffer t t t)) | |
nil) | |
(eval-after-load 'python | |
'(if python-autoflake-path | |
(add-hook 'before-save-hook 'python-remove-unused-imports) | |
(message "Unable to find autoflake. Configure `python-autoflake-path`"))) | |
(provide 'auto-remove) | |
;;; auto-remove.el ends here |
@kracekumar FYI, gists themselves are git repositories. Please fetch from my fork and have a look.
@jaseemabid: Thanks! It works.
@kracekumar Can you post errors raised by revert-buffer?
Is it happening the first time you are trying to save the file?
[Errno 2] No such file or directory: '/Users/j/tmp/test.py'
Error: (error "Cannot revert nonexistent file /Users/j/tmp/test.py")
Wrote /Users/j/tmp/test.py
@kracekumar after-save-hook
should solve it, right?
See patch 4d6871d here https://gist.github.com/jaseemabid/3def1e104cbff09ad803
4d6871d3881111c47fd35458770af817f5bafb01
Author: Jaseem Abid <[email protected]>
Date: Mon Aug 18 00:55:17 2014 +0530
Run hook after saving file
- Makes sense to run flake after a file is saved with recent edits.
- Fixes errors on reverting from non existent files. This can happen
first time a file is saved.
Guys - this would be more useful if you could provide the full path to autoflake script in the comments of auto-remove.el . I am right now struggling to find autoflake, though I guess I wrote the original version of it :)
@pythonhacker You can do (setq python-autoflake-path "/this/is/where/autoflake/is.py")
PS: We made a repo https://github.com/kracekumar/missing-python-mode
Pushed a few patches here. https://gist.github.com/jaseemabid/3def1e104cbff09ad803