aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes/python.el
diff options
context:
space:
mode:
authorkobarity2025-12-13 00:06:39 +0900
committerEli Zaretskii2026-01-03 11:52:48 +0200
commit4c24c0f3d3fbeebf0849f78c83d6f19415b1addd (patch)
treea747ae9b61fe2ffdb7b8ab5c93f191c5e473e0ab /lisp/progmodes/python.el
parentf683e7c070c5dce043926c5c54186861e1da9ed0 (diff)
downloademacs-4c24c0f3d3fbeebf0849f78c83d6f19415b1addd.tar.gz
emacs-4c24c0f3d3fbeebf0849f78c83d6f19415b1addd.zip
Do not use codecs.open for Python 3
* 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)
Diffstat (limited to 'lisp/progmodes/python.el')
-rw-r--r--lisp/progmodes/python.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 212a5e1521c..9c5e1e5ee6c 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -3694,13 +3694,18 @@ def __PYTHON_EL_eval(source, filename):
3694(defconst python-shell-eval-file-setup-code 3694(defconst python-shell-eval-file-setup-code
3695 "\ 3695 "\
3696def __PYTHON_EL_eval_file(filename, tempname, delete): 3696def __PYTHON_EL_eval_file(filename, tempname, delete):
3697 import codecs, os, re 3697 import os, re, sys
3698 if sys.version_info.major < 3:
3699 import codecs
3700 _open = codecs.open
3701 else:
3702 _open = open
3698 pattern = r'^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)' 3703 pattern = r'^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)'
3699 with codecs.open(tempname or filename, encoding='latin-1') as file: 3704 with _open(tempname or filename, encoding='latin-1') as file:
3700 match = re.match(pattern, file.readline()) 3705 match = re.match(pattern, file.readline())
3701 match = match or re.match(pattern, file.readline()) 3706 match = match or re.match(pattern, file.readline())
3702 encoding = match.group(1) if match else 'utf-8' 3707 encoding = match.group(1) if match else 'utf-8'
3703 with codecs.open(tempname or filename, encoding=encoding) as file: 3708 with _open(tempname or filename, encoding=encoding) as file:
3704 source = file.read().encode(encoding) 3709 source = file.read().encode(encoding)
3705 if delete and tempname: 3710 if delete and tempname:
3706 os.remove(tempname) 3711 os.remove(tempname)