From: Matthias Meulien <orontee@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: arstoffel@gmail.com, 64406@debbugs.gnu.org
Subject: bug#64406: [PATCH] Improve commands to manage Python imports
Date: Thu, 13 Jul 2023 23:07:40 +0200 [thread overview]
Message-ID: <87jzv3v7tv.fsf@gmail.com> (raw)
In-Reply-To: <83cz0w5opl.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 13 Jul 2023 09:07:34 +0300")
[-- Attachment #1: Type: text/plain, Size: 1159 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> Cc: 64406@debbugs.gnu.org
>> From: Matthias Meulien <orontee@gmail.com>
>> Date: Sun, 09 Jul 2023 08:09:17 +0200
>>
>> Here are two patches.
>>
>> The first one revert part of the original patch where I introduced a
>> useless detailed check of isort exit status itself.
>>
>> The second one relates to your remarks: It shift the custom exit status
>> of the Python script and make sure that an error is reported assoon as
>> exit code >0.
>
> Thanks. Could you please make a single patch from these two? There's
> no need to revert the original one in a separate patch.
Yes.
>> Subject: [PATCH 1/2] Fix "Improve Python imports management commands"
>>
>> * lisp/progmodes/python.el (python--do-isort): The isort library don't
>> check for its version itself!
>
> I don't think I understand this log entry. What does it mean "the
> isort library don't check its version"?
You're right, it doesn't make sense.
>> + ((eq 3 status) " (maybe isort version is less than 5.7.0?)")
> ^^^^^^^
> Here, "is older" should be more clear, I think.
Ok.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-Improve-Python-imports-management-commands.patch --]
[-- Type: text/x-diff, Size: 3070 bytes --]
From 778324822a9e191e33e6890555d65d3500a7109c Mon Sep 17 00:00:00 2001
From: Matthias Meulien <orontee@gmail.com>
Date: Thu, 13 Jul 2023 22:47:01 +0200
Subject: [PATCH] Fix "Improve Python imports management commands"
* lisp/progmodes/python.el (python--list-imports): Prefer to use an
exit status >1.
(python--list-imports-check-status): New function to check status of
Python script.
(python--do-isort): Fix wrong status check introduced with
6295d7abdd4.
---
lisp/progmodes/python.el | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 4291ab03ca6..a23339a2180 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -6451,9 +6451,9 @@ python--list-imports
try:
from isort import find_imports_in_stream, find_imports_in_paths
except ModuleNotFoundError:
- exit(1)
-except ImportError:
exit(2)
+except ImportError:
+ exit(3)
query, files, result = argv[1] or None, argv[2:], {}
@@ -6484,6 +6484,17 @@ python--import-sources
(project-files proj))
(list default-directory)))
+(defun python--list-imports-check-status (status)
+ (unless (eq 0 status)
+ (let* ((details
+ (cond
+ ((eq 2 status) " (maybe isort is missing?)")
+ ((eq 3 status) " (maybe isort version is older than 5.7.0?)")
+ (t "")))
+ (msg
+ (concat "%s exited with status %s" details)))
+ (error msg python-interpreter status))))
+
(defun python--list-imports (name source)
"List all Python imports matching NAME in SOURCE.
If NAME is nil, list all imports. SOURCE can be a buffer or a
@@ -6507,13 +6518,7 @@ python--list-imports
(or name "")
(mapcar #'file-local-name source)))))
lines)
- (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)))
+ (python--list-imports-check-status status)
(goto-char (point-min))
(while (not (eobp))
(push (buffer-substring-no-properties (point) (pos-eol))
@@ -6556,13 +6561,9 @@ python--do-isort
nil (list temp nil) nil
"-m" "isort" "-" args))
(tick (buffer-chars-modified-tick)))
- (cond
- ((eq 1 status)
+ (unless (eq 0 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)))))))))
--
2.39.2
next prev parent reply other threads:[~2023-07-13 21:07 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-01 20:16 bug#64406: [PATCH] Improve commands to manage Python imports Matthias Meulien
2023-07-06 7:28 ` Eli Zaretskii
2023-07-07 17:02 ` Augusto Stoffel
2023-07-07 17:46 ` Matthias Meulien
2023-07-09 6:09 ` Matthias Meulien
2023-07-09 6:32 ` Matthias Meulien
2023-07-09 7:28 ` Eli Zaretskii
2023-07-09 7:54 ` Matthias Meulien
2023-07-13 6:07 ` Eli Zaretskii
2023-07-13 21:07 ` Matthias Meulien [this message]
2023-07-15 8:25 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87jzv3v7tv.fsf@gmail.com \
--to=orontee@gmail.com \
--cc=64406@debbugs.gnu.org \
--cc=arstoffel@gmail.com \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.