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 <
eliz@gnu.org> wrote:
> Date: Fri, 16 Dec 2022 23:54:23 +0100
> From: pmercatoris <mercatorispierre@gmail.com>
>
> 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.