<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lisp/progmodes/python.el, branch feature/igc</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Change the type of 'python-eldoc-function-timeout' to number</title>
<updated>2026-02-07T12:44:27+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2026-01-31T14:12:05+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3107c66c844355269c02dd3418e80275a33ed296'/>
<id>3107c66c844355269c02dd3418e80275a33ed296</id>
<content type='text'>
* etc/NEWS: Announce the change.
* lisp/progmodes/python.el (python-eldoc-function-timeout):
Change the type.  (Bug#80045)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* etc/NEWS: Announce the change.
* lisp/progmodes/python.el (python-eldoc-function-timeout):
Change the type.  (Bug#80045)
</pre>
</div>
</content>
</entry>
<entry>
<title>Use 'project-name-cached' in 'python-shell-get-process-name'</title>
<updated>2026-02-07T12:41:48+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2026-01-31T14:11:04+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=482748592f61abed6f675e7b62b2d56e4e18a146'/>
<id>482748592f61abed6f675e7b62b2d56e4e18a146</id>
<content type='text'>
* lisp/progmodes/python.el
(python-shell-get-project-name): New function.
(python-shell-get-process-name): Use it.  (Bug#80045)

Co-authored-by: Liu Hui &lt;liuhui1610@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/python.el
(python-shell-get-project-name): New function.
(python-shell-get-process-name): Use it.  (Bug#80045)

Co-authored-by: Liu Hui &lt;liuhui1610@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Performance improvement of 'python-shell-get-process'"</title>
<updated>2026-02-07T12:41:10+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2026-01-31T14:10:03+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3d7e78b810b11b71b95a87ffabf2995dd8fe2fe9'/>
<id>3d7e78b810b11b71b95a87ffabf2995dd8fe2fe9</id>
<content type='text'>
This reverts commit 83b4f1ba26844c178e57ecb93ea8db36e8e6fa89.
We concluded that it is better to use 'project-name-cached'.
(Bug#80045)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 83b4f1ba26844c178e57ecb93ea8db36e8e6fa89.
We concluded that it is better to use 'project-name-cached'.
(Bug#80045)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix down-list navigation in python-ts-mode</title>
<updated>2026-01-21T18:02:56+00:00</updated>
<author>
<name>Juri Linkov</name>
</author>
<published>2026-01-21T18:02:56+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8063921808c85b9041beeccd9995003bd17bcb11'/>
<id>8063921808c85b9041beeccd9995003bd17bcb11</id>
<content type='text'>
* lisp/progmodes/python.el (python-ts-mode):
Set 'treesit-sexp-thing-down-list' to 'list' to override
sexp navigation with list navigation (bug#72478).

* lisp/emacs-lisp/lisp.el (up-list): Mention 'up-list-function' in docstring.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/python.el (python-ts-mode):
Set 'treesit-sexp-thing-down-list' to 'list' to override
sexp navigation with list navigation (bug#72478).

* lisp/emacs-lisp/lisp.el (up-list): Mention 'up-list-function' in docstring.
</pre>
</div>
</content>
</entry>
<entry>
<title>Performance improvement of 'python-shell-get-process'</title>
<updated>2026-01-17T16:09:03+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2026-01-04T13:50:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=83b4f1ba26844c178e57ecb93ea8db36e8e6fa89'/>
<id>83b4f1ba26844c178e57ecb93ea8db36e8e6fa89</id>
<content type='text'>
'python-shell-get-process' is frequently called from
'python-eldoc--get-doc-at-point' and etc., invoking
'project-current' unless there is a buffer-specific Inferior
Python process.  When the buffer is a remote buffer not
belonging to any project and has significant latency,
'project-current' may take a long time.  To avoid this,
implement a process cache in 'python-shell-get-process'.

* lisp/progmodes/python.el (python-shell--process-cache)
(python-shell--process-cache-valid): New variables.
(python-shell--invalidate-process-cache): New function.
(python-shell-make-comint): Add a call to the above function.
(python-shell-get-process): Add process cache.  (Bug#80045)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'python-shell-get-process' is frequently called from
'python-eldoc--get-doc-at-point' and etc., invoking
'project-current' unless there is a buffer-specific Inferior
Python process.  When the buffer is a remote buffer not
belonging to any project and has significant latency,
'project-current' may take a long time.  To avoid this,
implement a process cache in 'python-shell-get-process'.

* lisp/progmodes/python.el (python-shell--process-cache)
(python-shell--process-cache-valid): New variables.
(python-shell--invalidate-process-cache): New function.
(python-shell-make-comint): Add a call to the above function.
(python-shell-get-process): Add process cache.  (Bug#80045)
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve non-native completion in Python mode</title>
<updated>2026-01-17T13:05:33+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2026-01-11T08:49:29+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c97b8e6650fa28f44e36e200f966046ffe99fe0f'/>
<id>c97b8e6650fa28f44e36e200f966046ffe99fe0f</id>
<content type='text'>
Previously, both the definition of __PYTHON_EL_get_completions
and the call to __PYTHON_EL_get_completions were sent to the
inferior Python each time
'python-shell-completion-get-completions' was executed.
However, there is no need to send the definition every time as
long as the definition remains unchanged.  We improved this so
that the definition of __PYTHON_EL_get_completions is only sent
during the inferior Python initialization; it is no longer sent
during 'python-shell-completion-get-completions' execution.
* lisp/progmodes/python.el
(python-shell-completion-send-setup-code): New function.
(python-shell-first-prompt-hook): Add the above new function.
(python-shell-completion-get-completions): Omit sending
'python-shell-completion-setup-code'.  (Bug#80182)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, both the definition of __PYTHON_EL_get_completions
and the call to __PYTHON_EL_get_completions were sent to the
inferior Python each time
'python-shell-completion-get-completions' was executed.
However, there is no need to send the definition every time as
long as the definition remains unchanged.  We improved this so
that the definition of __PYTHON_EL_get_completions is only sent
during the inferior Python initialization; it is no longer sent
during 'python-shell-completion-get-completions' execution.
* lisp/progmodes/python.el
(python-shell-completion-send-setup-code): New function.
(python-shell-first-prompt-hook): Add the above new function.
(python-shell-completion-get-completions): Omit sending
'python-shell-completion-setup-code'.  (Bug#80182)
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not use codecs.open for Python 3</title>
<updated>2026-01-03T09:52:48+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2025-12-12T15:06:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4c24c0f3d3fbeebf0849f78c83d6f19415b1addd'/>
<id>4c24c0f3d3fbeebf0849f78c83d6f19415b1addd</id>
<content type='text'>
* lisp/progmodes/python.el (python-shell-eval-file-setup-code):
For Python 3, use built-in open instead of codecs.open to address the
deprecation of codecs.open in Python 3.14.  (Bug#79723)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/python.el (python-shell-eval-file-setup-code):
For Python 3, use built-in open instead of codecs.open to address the
deprecation of codecs.open in Python 3.14.  (Bug#79723)
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve python-shell-completion-get-completions</title>
<updated>2026-01-03T09:51:36+00:00</updated>
<author>
<name>kobarity</name>
</author>
<published>2025-12-07T13:19:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=f683e7c070c5dce043926c5c54186861e1da9ed0'/>
<id>f683e7c070c5dce043926c5c54186861e1da9ed0</id>
<content type='text'>
In 'python-shell-completion-get-completions', since output from the
inferior Python is expected to be in JSON format, commands being echoed
back or warning messages being output caused parsing errors.  We
improved this by re-parsing only the last line when a parsing error
occurs, preventing echo-back or warning messages from affecting parsing.

* lisp/progmodes/python.el
(python-shell-completion-get-completions): Improved to re-parse
only the last line when a JSON parse error occurs.  (Bug#79723)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In 'python-shell-completion-get-completions', since output from the
inferior Python is expected to be in JSON format, commands being echoed
back or warning messages being output caused parsing errors.  We
improved this by re-parsing only the last line when a parsing error
occurs, preventing echo-back or warning messages from affecting parsing.

* lisp/progmodes/python.el
(python-shell-completion-get-completions): Improved to re-parse
only the last line when a JSON parse error occurs.  (Bug#79723)
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2026 to copyright years.</title>
<updated>2026-01-01T12:54:34+00:00</updated>
<author>
<name>Sean Whitton</name>
</author>
<published>2026-01-01T12:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c31f6adc31d48076c63ad82b83b2970e1b0d7b9b'/>
<id>c31f6adc31d48076c63ad82b83b2970e1b0d7b9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix specification of 'python-indent-guess-indent-offset-verbose'</title>
<updated>2025-12-28T17:56:14+00:00</updated>
<author>
<name>Morgan Willcock</name>
</author>
<published>2025-12-28T14:48:47+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7d3ed7c11d3a2207232a0bd36f78304dc9477fac'/>
<id>7d3ed7c11d3a2207232a0bd36f78304dc9477fac</id>
<content type='text'>
* lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose):
Fix typo in configuration of safe value function.  (Bug#80085)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose):
Fix typo in configuration of safe value function.  (Bug#80085)
</pre>
</div>
</content>
</entry>
</feed>
