Closed
Description
Though it will be sometimes blocked by rust side issues, don't worry!
Please just create PR about the broken test and and create issues related to the new bugs.
If you are new to updating cpython libraries, this guide will be useful:
https://github.com/RustPython/RustPython/wiki/How-to-update-test-files
When updating module Lib/X, please don't forget to also update Lib/test/test_X
A few libraries doesn't need to be updated because CPython also kept it same as previous version. In that case, please leave a comment to let us mark it as done. Thank you!
Tips
- To get specific version of CPython source code, e.g. try
git checkout v3.12.0
from CPython repository. - Please check Update libraries and tests from CPython 3.10.6 #4064 for example. Not the entire changes but the each commits. One of the middle size example is 17e12de . Sometimes it can be really simple like 9571a68
- Please create one PR for one library+test pair whenever possible. Once you stuck by dependencies, go to one of the dependency first and finish it before restarting the stuck one unless they become simpler to be updated at the same time. Normally adding more libraries make passing tests (a lot) harder.
- To run tests, try
cargo run --features ssl -- -m test -v <test_name>
. e.g. If you changedtest_unicode.py
,cargo run --features ssl -- -m test -v test_unicode
- If it runs too slow, try to add
--release
likecargo run --release --features ssl -- -m test -v test_unicode
- If it runs too slow, try to add
List of libraries
-
__future__.py
Update os/posix/posixpath from CPython 3.12.2 #5257- Related test is
test_future_stmt
- maybe related to allow
from __future__ import generator_stop
#4060?
- Related test is
-
__hello__.py
unchanged -
__phello__
unchanged -
_compression.py
unchanged -
_markupbase.py
unchanged -
_osx_support.py
unchanged -
_threading_local.py
-
_weakrefset.py
-
abc.py
Update libraries and test files from CPython v3.12 #5134_collections_abc.py
_py_abc.py
-
aifc.py
removed in 3.13 -
antigravity.py
unchanged -
argparse.py
Update libraries and test files from CPython v3.12 #5134 -
ast.py
Update ast, test_ast from CPython 3.12.0 #5121 -
asynchat.py
Update libraries and test files from CPython v3.12 #5134 removed in 3.13 -
asyncio
Update Lib/asyncio from CPython v3.12.3 #3858- sys.get_asyncgen_hooks and sys.get_coroutine_origin_tracking_depth #3859
- requires
_contextvars
- requires
_overlapped
for windows
-
asyncore.py
Update libraries and test files from CPython v3.12 #5134 removed in 3.13 -
base64.py
Update libraries and test files from CPython v3.12 #5134 -
bdb.py
Update libraries and test files from CPython v3.12 #5134 -
bisect.py
Update libraries and test files from CPython v3.12 #5134 -
bz2.py
Update libraries and test files from CPython v3.12 #5134 -
calendar.py
Updatecalendar.py
andtest_calendar.py
from CPython v3.12 #5169 -
cgi.py
removed in 3.13 -
cgitb.py
UpdateLib/cgitb.py
to 3.12 #5197 removed in 3.13 -
chunk.py
removed in 3.13 -
cmd.py
unchanged -
code.py
Update code.py and test_code.py from CPython v3.12 #5174test_code_module
is related test
-
codecs.py
Update codecs and test_codecs from cpython v3.12.4 #5372-
_pycodecs.py
- See also io.IncrementalNewlineDecoder and codecs.IncrementalNewlineDecoder #3861
-
-
codeop.py
Update test_opcodes.py, test_codeop.py and codeop.py from CPython v3.12 #5115 -
collections
-
colorsys.py
UpdateLib/colorsys.py
andLib/test/test_colorsys.py
to 3.12 #5198 -
compileall.py
UpdateLib/compileall.py
andLib/test/test_compileall.py
#5199 -
concurrent
-
configparser.py
Updateconfigparser.py
andtest_configparser.py
from CPython v3.12 #5172 -
contextlib.py
-
contextvars.py
unchanged -
copy.py
Updatecopy.py
andtest_copy.py
from CPython v3.12 #5175 -
copyreg.py
object.__getstate__ #5342 AddLib/test/test_copyreg.py
from 3.12 #5200- requires
__getstate__
- requires
-
csv.py
【Need Update csv.rs】Update csv.py and test_csv.py from CPython v3.12 #5176 -
ctypes
-
dataclasses.py
Update dataclasses, inspect from CPython 3.12 #5377 pendingmatch
statement support. -
datetime.py
Update datetime from CPython v3.12.3 #5314_pydatetime.py
-
dbm
-
decimal.py
First step for Python 3.12 support #5078-
_pydecimal.py
- depending oncontextvars
-
-
difflib.py
-
dis.py
-
distutils
-
doctest.py
- depending on_io.IncrementalNewlineDecoder
-
email
-
encodings
Update glob/getopt/encodings #5253 -
ensurepip
Update ensurepip to Python 3.12 #5108 -
enum.py
First step for Python 3.12 support #5078 -
filecmp.py
Remove dummy_os import and update filecmp from CPython 3.12.2 #5258 -
fileinput.py
-
fnmatch.py
-
fractions.py
Update fraction from CPython 3.12.4 #5375 -
ftplib.py
UpdateLib/ftplib.py
andLib/test/test_ftplib
to 3.12 #5196 -
functools.py
First step for Python 3.12 support #5078 -
gc.py
-
genericpath.py
-
getopt.py
Update glob/getopt/encodings #5253 -
getpass.py
-
gettext.py
Update gettext.py and related test to 3.12 version #5287 -
glob.py
Update glob/getopt/encodings #5253 -
graphlib.py
unchanged -
gzip.py
Update gzip & tarfile & xmlrpc & pydoc + associated tests to 3.12.7 #5480 -
hashlib.py
-
heapq.py
unchanged -
hmac.py
Update Lib/test/test_hmac.py to 3.12 version #5188 -
html
-
http
-
imghdr.py
removed in 3.13 -
imp.py
removed in 3.12 -
importlib
First step for Python 3.12 support #5078 -
inspect.py
Update dataclasses, inspect from CPython 3.12 #5377 -
io.py
Update io, _pyio, test_io from CPython 3.12 #5370 -
ipaddress.py
Update ipaddress from CPython v3.12.3 #5312 -
json
-
keyword.py
-
linecache.py
-
locale.py
-
logging
Update Logging to 3.12.7 #5478 -
mailbox.py
-
mimetypes.py
-
multiprocessing
Update multiprocessing from CPython 3.12.3 #5263- See also _multiprocessing_SemLock #3965
-
netrc.py
-
nntplib.py
removed in 3.13 -
ntpath.py
Update ntpath from CPython 3.12.3 #5262 -
nturl2path.py
-
numbers.py
-
opcode.py
Update test_opcodes.py, test_codeop.py and codeop.py from CPython v3.12 #5115 -
operator.py
Update Lib/test/test_operator.py to 3.12 #5194 -
optparse.py
-
os.py
Update os/posix/posixpath from CPython 3.12.2 #5257 Update test_os from CPython v3.12.3 #5310- Blocker: Some tests requires async comprehension
- Handle windows test proper way #3960
- See also Tracking issue of os.utime regression #4053
-
pathlib.py
Update pathlib from CPython v3.12.3 #5311 -
pdb.py
-
pickle.py
Update pickle from CPython 3.12.3 #5260- See also replace
array.__reduce__
toarray.__reduce_ex__
#3876 _compat_pickle.py
-
test/pickletester.py
supportstest_pickle.py
Update pickle from CPython 3.12.3 #5260 -
test/test_picklebuffer.py
- See also replace
-
pickletools.py
Update pickle from CPython 3.12.3 #5260 -
pkgutil.py
-
platform.py
-
plistlib.py
-
posixpath.py
Update os/posix/posixpath from CPython 3.12.2 #5257 -
pprint.py
UpdateLib/pprint.py
andLib/test/test_pprint.py
to 3.12 #5195 -
pty.py
-
py_compile.py
-
pydoc.py
-
pydoc_data
-
-
queue.py
- See also [RFC] _queue is missing #3608
-
quopri.py
-
random.py
-
re.py
Update Sre Engine Implementing to CPython 3.12 #5125- Don't forget sre files
sre_compile.py
,sre_constants.py
,sre_parse.py
- Don't forget sre files
-
reprlib.py
-
rlcompleter.py
-
runpy.py
-
sched.py
-
secrets.py
-
selectors.py
Update subprocess/selectors from CPython 3.12.3 #5290 -
shelve.py
-
shlex.py
-
shutil.py
Bump shutil to 3.12.3 #5228 -
signal.py
Update signal from CPython 3.12.3 #5280 -
site.py
Update site from CPython v3.12.3 #5313- Don't forget
_sitebuiltins.py
- Don't forget
-
smtpd.py
removed in 3.13 -
smtplib.py
Update Logging to 3.12.7 #5478 -
sndhdr.py
removed in 3.13 -
socket.py
Update socket and test from CPython 3.12.2 #5255 -
socketserver.py
-
sqlite3
-
ssl.py
-
stat.py
-
statistics.py
-
string.py
-
stringprep.py
-
struct.py
-
subprocess.py
Update subprocess/selectors from CPython 3.12.3 #5290 -
sunau.py
removed in 3.13 -
sysconfig.py
-
tabnanny.py
-
tarfile.py
-
telnetlib.py
removed in 3.13 -
tempfile.py
-
textwrap.py
-
this.py
-
threading.py
-
timeit.py
-
token.py
-
tokenize.py
-
tomllib
-
trace.py
-
traceback.py
-
tty.py
-
types.py
-
typing.py
Import typing Self Error #5149 -
unittest
First step for Python 3.12 support #5078 -
urllib
-
uu.py
Updateuu.py
andtest_uu.py
from CPython v3.12.0 #5161 removed in 3.13 -
uuid.py
-
venv
-
warnings.py
-
weakref.py
-
webbrowser.py
-
wsgiref
-
xdrlib.py
removed in 3.13 -
xml
-
xmlrpc
-
zipapp.py
-
zipfile.py
-
zipimport.py
- test.support First step for Python 3.12 support #5078
List of tests without python libraries
-
test/test___all__.py
-
test/test__locale.py
Update test__locale.py and test_atexit.py from CPython v3.12 #5114 -
test/test__opcode.py
-
test/test_abstract_numbers.py
-
test/test_array.py
-
test/test_asdl_parser.py
-
test/test_asyncgen.py
-
test/test_atexit.py
Update test__locale.py and test_atexit.py from CPython v3.12 #5114 -
test/test_audioop.py
-
test/test_audit.py
-
test/test_augassign.py
-
test/test_baseexception.py
-
test/test_bigaddrspace.py
Update test files from CPython v3.12.0 #5122 -
test/test_bigmem.py
Update test files from CPython v3.12.0 #5122 -
test/test_binascii.py
-
test/test_binop.py
unchanged -
test/test_bool.py
Update test files from CPython v3.12.0 #5122 -
test/test_buffer.py
-
test/test_bufio.py
Update test files from CPython v3.12.0 #5122 -
test/test_builtin.py
-
test/test_bytes.py
-
test/test_bz2.py
-
test/test_c_locale_coercion.py
Update test files from CPython v3.12.0 #5122 -
test/test_call.py
-
test/test_charmapcodec.py
-
test/test_check_c_globals.py
-
test/test_class.py
Update test files from CPython v3.12.0 #5122 -
test/test_clinic.py
-
test/test_cmath.py
Update test files from CPython v3.12.0 #5122 -
test/test_cmd_line.py
Update test files from CPython v3.12.0 #5127 -
test/test_cmd_line_script.py
Update test files from CPython v3.12.0 #5127 -
test/test_codeccallbacks.py
unchanged -
test/test_compare.py
Update test files from CPython v3.12.0 #5127 -
test/test_compile.py
test_builtin.py test_compile unit test fix #5251 -
test/test_complex.py
Update test files from CPython v3.12.0 #5127 -
test/test_contains.py
unchanged -
test/test_context.py
Update test files from CPython v3.12.0 #5127 -
test/test_contextlib_async.py
-
test/test_coroutines.py
-
test/test_crashers.py
Update test_crashers from Cpython v3.11.2 #4807 CPython specific -
test/test_csv.py
【Need Update csv.rs】Update csv.py and test_csv.py from CPython v3.12 #5176 -
test/test_decorators.py
Update test files from CPython v3.12.0 #5127 -
test/test_defaultdict.py
Update test files from CPython v3.12.0 #5127 -
test/test_deque.py
unchanged -
test/test_descr.py
Update test files from CPython v3.12.0 #5127 -
test/test_descrtut.py
Update test files from CPython v3.12.0 #5127 -
test/test_devpoll.py
unchanged -
test/test_dict.py
Update test files from CPython v3.12.0 #5127 -
test/test_dict_version.py
Update test_dict_version.py from Cpython v3.11.2 #4809 Not implemented in RustPython -
test/test_dictcomps.py
unchanged -
test/test_dictviews.py
Update test files from CPython v3.12.0 #5127 -
test/test_docxmlrpc.py
unchanged -
test/test_dtrace.py
Update test files from CPython v3.12.0 #5127 -
test/test_dynamic.py
Update test files from CPython v3.12.0 #5127 -
test/test_dynamicclassattribute.py
unchanged -
test/test_eintr.py
Update test files from CPython v3.12.0 #5127 -
test/test_embed.py
-
test/test_enumerate.py
-
test/test_eof.py
Update test files from CPython v3.12.0 #5127 -
test/test_epoll.py
Update test files from CPython v3.12.0 #5127 -
test/test_errno.py
unchanged -
test/test_except_star.py
-
test/test_exception_group.py
ExceptionGroup #5254 -
test/test_exception_hierarchy.py
unchanged -
test/test_exception_variations.py
-
test/test_exceptions.py
-
test/test_extcall.py
-
test/test_faulthandler.py
-
test/test_fcntl.py
-
test/test_file.py
Update libraries and test files from CPython v3.12 #5134 -
test/test_file_eintr.py
-
test/test_fileio.py
-
test/test_fileutils.py
-
test/test_finalization.py
-
test/test_float.py
-
test/test_flufl.py
Add test_flufl.py from Cpython v3.11.2 #4824 CPython specific -
test/test_fork1.py
-
test/test_format.py
-
test/test_frame.py
-
test/test_frozen.py
-
test/test_fstring.py
-
test/test_funcattrs.py
-
test/test_future.py
-
test/test_future3.py
-
test/test_future4.py
-
test/test_future5.py
-
test/test_gdb.py
-
test/test_generator_stop.py
-
test/test_generators.py
-
test/test_genericalias.py
-
test/test_genericclass.py
-
test/test_genexps.py
-
test/test_getpath.py
-
test/test_global.py
-
test/test_grammar.py
-
test/test_grp.py
-
test/test_hash.py
-
test/test_hashlib.py
-
test/test_index.py
-
test/test_int.py
-
test/test_int_literal.py
(unchanged) -
test/test_interpreters.py
-
test/test_ioctl.py
-
test/test_isinstance.py
-
test/test_iter.py
-
test/test_iterlen.py
-
test/test_itertools.py
Add itertools.batched Support #5209 -
test/test_keywordonlyarg.py
-
test/test_kqueue.py
-
test/test_largefile.py
-
test/test_launcher.py
-
test/test_list.py
-
test/test_listcomps.py
-
test/test_lltrace.py
-
test/test_long.py
-
test/test_longexp.py
-
test/test_marshal.py
- See also marshal module is imcomplete #3458
-
test/test_math.py
Updating test_math.py to CPython 3.12.9 #5507 -
test/test_memoryio.py
-
test/test_memoryview.py
-
test/test_metaclass.py
-
test/test_minidom.py
-
test/test_mmap.py
- See also mmap module for windows #3847
-
test/test_module.py
First step for Python 3.12 support #5078 -
test/test_multibytecodec.py
-
test/test_named_expressions.py
-
test/test_nis.py
-
test/test_numeric_tower.py
-
test/test_opcache.py
-
test/test_openpty.py
-
test/test_ordered_dict.py
-
test/test_ossaudiodev.py
-
test/test_osx_env.py
-
test/test_patma.py
-
test/test_peepholer.py
-
test/test_pep646_syntax.py
-
test/test_pkg.py
-
test/test_poll.py
-
test/test_popen.py
-
test/test_positional_only_arg.py
-
test/test_posix.py
Update os/posix/posixpath from CPython 3.12.2 #5257 -
test/test_pow.py
-
test/test_print.py
-
test/test_property.py
- See also support property name #4067
-
test/test_pulldom.py
-
test/test_pwd.py
-
test/test_pyexpat.py
-
test/test_raise.py
-
test/test_range.py
-
test/test_readline.py
-
test/test_regrtest.py
-
test/test_repl.py
-
test/test_resource.py
-
test/test_richcmp.py
-
test/test_robotparser.py
-
test/test_sax.py
-
test/test_scope.py
-
test/test_script_helper.py
-
test/test_select.py
-
test/test_set.py
-
test/test_setcomps.py
-
test/test_slice.py
-
test/test_smtpnet.py
-
test/test_sort.py
-
test/test_source_encoding.py
-
test/test_spwd.py
-
test/test_stable_abi_ctypes.py
-
test/test_startfile.py
-
test/test_strftime.py
-
test/test_string.py
-
test/test_string_literals.py
-
test/test_strptime.py
-
test/test_strtod.py
-
test/test_structseq.py
- See also __match_args__ for structseq #4063
-
test/test_subclassinit.py
-
test/test_sundry.py
-
test/test_super.py
-
test/test_support.py
First step for Python 3.12 support #5078 -
test/test_syntax.py
-
test.test_sys
-
test/test_sys_setprofile.py
-
test/test_sys_settrace.py
-
test/test_syslog.py
-
test/test_tcl.py
-
test/test_thread.py
-
test/test_threadedtempfile.py
-
test/test_threadsignals.py
-
test/test_time.py
-
test/test_timeout.py
-
test/test_tix.py
-
test/test_tuple.py
-
test/test_type_annotations.py
-
test/test_type_cache.py
-
test/test_type_comments.py
-
test/test_typechecks.py
-
test/test_types.py
-
test/test_ucn.py
-
test/test_unary.py
-
test/test_unicode.py
First step for Python 3.12 support #5078 -
test/test_unicode_file.py
-
test/test_unicode_file_functions.py
-
test/test_unicode_identifiers.py
-
test/test_unicodedata.py
-
test/test_univnewlines.py
-
test/test_unpack.py
-
test/test_unpack_ex.py
-
test/test_unparse.py
-
test/test_userdict.py
-
test/test_userlist.py
-
test/test_userstring.py
-
test/test_utf8_mode.py
-
test/test_utf8source.py
-
test/test_wait3.py
-
test/test_wait4.py
-
test/test_weakset.py
-
test/test_winconsoleio.py
-
test/test_winreg.py
-
test/test_winsound.py
-
test/test_with.py
-
test/test_yield_from.py
-
test/test_zlib.py
Update zlib from 3.12.6 and _ZlibDecompressor implementation #5476 -
test/test_asyncio
-
test/test_capi
-
test/test_import
-
test/test_tools
Not yet added libraries
These libraris are not added yet. Pure python one will be possible while others are not.
-
_bootsubprocess.py
-
cProfile.py
-
crypt.py
removed in 3.13 -
curses
-
idlelib
-
imaplib.py
-
imp.py
- See also correct impl _imp.source_hash #4075
-
lzma.py
-
mailcap.py
removed in 3.13 -
modulefinder.py
-
msilib
removed in 3.13 -
pipes.py
removed in 3.13 -
poplib.py
-
pstats.py
-
pyclbr.py
-
symtable.py
-
tkinter
-
tracemalloc.py
-
turtle.py
-
wave.py
-
zoneinfo
Add zoneinfo Library from Python 3.12.6 #5400