Subject: Re: bug#60142: 28.1; python.el Incorrect region when python-shell-send-region from indented code

From: Pierre Mercatoris <[email-masked]>
Date: Sun, 18 Dec 2022 16:04:54 +0100

I wanted to give more details. But I basically get the same issue with
Emacs -Q and the default python console.

On Sun, 18 Dec 2022 at 11:38, Eli Zaretskii <[email-masked]> wrote:

> > Date: Fri, 16 Dec 2022 23:54:23 +0100
> > From: pmercatoris <[email-masked]>
> >
> > I am unable to get correct behavious when sending a region from indented
> code
> > to the python shell. Consider this python code:
> >
> > ```python
> > if True:
> >     if True:
> >         a = "test"
> > ```
> >
> > If I select the first `True` and `python-shell-send-region`, it will
> > correctly send it to the consol and print `True`.
> >
> > Now if I do the same thing with the second `True` it will throw an
> > error: `IndentationError: expected an indented block after 'if'
> > statement on line 1` Although it would also reffer to unexpected block
> > after `if` even it it were `for`, `try`, ...
> >
> > If I select the `a` or `a = "test"` it will correctly send it to the
> > console, however it won't echo the evaluation of the statement.
> >
> > If I select the string "test" and send, it will throw the same error as
> > the second True.
> >
> > My python config is very minimal:
> >
> >   (use-package python
> >     :ensure nil
> >     :mode
> >     ("\\.py\\'" . python-mode)
> >
> >     :init
> >     (setq-default indent-tabs-mode nil)
> >
> >     :config
> >     (setq python-indent-offset 4
> >           python-indent-guess-indent-offset-verbose nil
> >           )
> >
> >     (setq python-shell-interpreter "jupyter"
> >           python-shell-interpreter-args "console --simple-prompt"
> >           python-shell-prompt-detect-failure-warning nil)
> >
> >     (add-to-list 'python-shell-completion-native-disabled-interpreters
> >                  "jupyter"))
>
> Could you two please look into this?  It sounds to me like Emacs works
> as expected here, but I'm not an expert on Python and our interfaces
> with it.
>
> Thanks.
>