Improve Python imports management commands
* lisp/progmodes/python.el (python--list-imports): Handle import errors. (python--do-isort): Specialize error message. (Bug#64406)
This commit is contained in:
parent
cb90624945
commit
6295d7abdd
1 changed files with 18 additions and 4 deletions
|
@ -6446,8 +6446,14 @@ REPORT-FN is Flymake's callback function."
|
|||
|
||||
;;; Import management
|
||||
(defconst python--list-imports "\
|
||||
from isort import find_imports_in_stream, find_imports_in_paths
|
||||
from sys import argv, stdin
|
||||
from sys import argv, exit, stdin
|
||||
|
||||
try:
|
||||
from isort import find_imports_in_stream, find_imports_in_paths
|
||||
except ModuleNotFoundError:
|
||||
exit(1)
|
||||
except ImportError:
|
||||
exit(2)
|
||||
|
||||
query, files, result = argv[1] or None, argv[2:], {}
|
||||
|
||||
|
@ -6501,9 +6507,13 @@ recursively."
|
|||
(or name "")
|
||||
(mapcar #'file-local-name source)))))
|
||||
lines)
|
||||
(unless (eq 0 status)
|
||||
(cond
|
||||
((eq 1 status)
|
||||
(error "%s exited with status %s (maybe isort is missing?)"
|
||||
python-interpreter status))
|
||||
((eq 2 status)
|
||||
(error "%s exited with status %s (maybe isort version is <5.7.0?)"
|
||||
python-interpreter status)))
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(push (buffer-substring-no-properties (point) (pos-eol))
|
||||
|
@ -6546,9 +6556,13 @@ Return non-nil if the buffer was actually modified."
|
|||
nil (list temp nil) nil
|
||||
"-m" "isort" "-" args))
|
||||
(tick (buffer-chars-modified-tick)))
|
||||
(unless (eq 0 status)
|
||||
(cond
|
||||
((eq 1 status)
|
||||
(error "%s exited with status %s (maybe isort is missing?)"
|
||||
python-interpreter status))
|
||||
((eq 2 status)
|
||||
(error "%s exited with status %s (maybe isort version is <5.7.0?)"
|
||||
python-interpreter status)))
|
||||
(replace-buffer-contents temp)
|
||||
(not (eq tick (buffer-chars-modified-tick)))))))))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue