Linux server1.dn-server.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
LiteSpeed
Server IP : 195.201.204.189 & Your IP : 216.73.217.130
Domains :
Cant Read [ /etc/named.conf ]
User : beriska1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
python312 /
lib64 /
python3.12 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
audiodata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
certdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
cjkencodings
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
configdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
crashers
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
data
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
decimaltestdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
dtracedata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
encoded_modules
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
imghdrdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
leakers
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
libregrtest
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
regrtestdata
[ DIR ]
drwxr-xr-x
2026-04-20 11:15
sndhdrdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
subprocessdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
support
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_ast
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_asyncio
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_capi
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_cext
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_concurrent_futures
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_cppext
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_ctypes
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_dataclasses
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_doctest
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_email
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_future_stmt
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_gdb
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_import
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_importlib
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_inspect
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_json
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_lib2to3
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_module
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_multiprocessing_fork
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_multiprocessing_forkserver
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_multiprocessing_spawn
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_peg_generator
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_pydoc
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_sqlite3
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_tkinter
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_tomllib
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_tools
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_ttk
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_unittest
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_warnings
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_zipfile
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
test_zoneinfo
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
tokenizedata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
tracedmodules
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
translationdata
[ DIR ]
drwxr-xr-x
2026-04-20 11:15
typinganndata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
wheeldata
[ DIR ]
drwxr-xr-x
2026-05-05 23:12
xmltestdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
ziptestdata
[ DIR ]
drwxr-xr-x
2026-05-05 23:07
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2026-03-03 16:09
__init__.py
47
B
-rw-r--r--
2026-04-20 11:09
__main__.py
67
B
-rw-r--r--
2026-04-20 11:09
_test_atexit.py
3.61
KB
-rw-r--r--
2026-04-20 11:09
_test_eintr.py
17.72
KB
-rw-r--r--
2026-04-20 11:09
_test_embed_set_config.py
8.64
KB
-rw-r--r--
2026-04-20 11:09
_test_embed_structseq.py
1.99
KB
-rw-r--r--
2026-04-20 11:09
_test_multiprocessing.py
216.26
KB
-rw-r--r--
2026-04-20 11:09
_test_venv_multiprocessing.py
796
B
-rw-r--r--
2026-04-20 11:09
archiver_tests.py
6.1
KB
-rw-r--r--
2026-04-20 11:09
audiotest.au
27.48
KB
-rw-r--r--
2026-03-03 16:09
audiotests.py
12.13
KB
-rw-r--r--
2026-04-20 11:09
audit-tests.py
13.76
KB
-rw-r--r--
2026-04-20 11:09
autotest.py
214
B
-rw-r--r--
2026-04-20 11:09
bisect_cmd.py
5.36
KB
-rwxr-xr-x
2026-04-20 11:09
clinic.test.c
139.1
KB
-rw-r--r--
2026-03-03 16:09
cmath_testcases.txt
141.2
KB
-rw-r--r--
2026-03-03 16:09
curses_tests.py
1.23
KB
-rwxr-xr-x
2026-04-20 11:09
datetimetester.py
265.73
KB
-rw-r--r--
2026-04-20 11:09
dis_module.py
76
B
-rw-r--r--
2026-04-20 11:09
empty.vbs
70
B
-rw-r--r--
2026-03-03 16:09
exception_hierarchy.txt
2.33
KB
-rw-r--r--
2026-03-03 16:09
floating_points.txt
15.92
KB
-rw-r--r--
2026-03-03 16:09
fork_wait.py
2.29
KB
-rw-r--r--
2026-04-20 11:09
formatfloat_testcases.txt
7.45
KB
-rw-r--r--
2026-03-03 16:09
ieee754.txt
3.15
KB
-rw-r--r--
2026-03-03 16:09
levenshtein_examples.json
406.44
KB
-rw-r--r--
2026-03-03 16:09
list_tests.py
16.9
KB
-rw-r--r--
2026-04-20 11:09
lock_tests.py
35.64
KB
-rw-r--r--
2026-04-20 11:09
mailcap.txt
1.24
KB
-rw-r--r--
2026-03-03 16:09
mapping_tests.py
21.87
KB
-rw-r--r--
2026-04-20 11:09
math_testcases.txt
23.19
KB
-rw-r--r--
2026-03-03 16:09
memory_watchdog.py
711
B
-rw-r--r--
2026-04-20 11:09
mime.types
47.37
KB
-rw-r--r--
2026-03-03 16:09
mock_socket.py
3.69
KB
-rw-r--r--
2026-04-20 11:09
mp_fork_bomb.py
448
B
-rw-r--r--
2026-04-20 11:09
mp_preload.py
351
B
-rw-r--r--
2026-04-20 11:09
multibytecodec_support.py
14.19
KB
-rw-r--r--
2026-04-20 11:09
pickletester.py
172.37
KB
-rw-r--r--
2026-04-20 11:09
profilee.py
2.97
KB
-rw-r--r--
2026-04-20 11:09
pstats.pck
65.05
KB
-rw-r--r--
2026-03-03 16:09
pyclbr_input.py
1.63
KB
-rw-r--r--
2026-04-20 11:09
pythoninfo.py
28.35
KB
-rw-r--r--
2026-04-20 11:09
randv2_32.pck
7.34
KB
-rw-r--r--
2026-03-03 16:09
randv2_64.pck
7.19
KB
-rw-r--r--
2026-03-03 16:09
randv3.pck
7.82
KB
-rw-r--r--
2026-03-03 16:09
re_tests.py
25.94
KB
-rwxr-xr-x
2026-04-20 11:09
recursion.tar
516
B
-rw-r--r--
2026-03-03 16:09
regrtest.py
1.28
KB
-rwxr-xr-x
2026-04-20 11:09
relimport.py
27
B
-rw-r--r--
2026-04-20 11:09
reperf.py
538
B
-rw-r--r--
2026-04-20 11:09
seq_tests.py
14.96
KB
-rw-r--r--
2026-04-20 11:09
signalinterproctester.py
3.12
KB
-rw-r--r--
2026-04-20 11:09
ssl_servers.py
7.12
KB
-rw-r--r--
2026-04-20 11:09
ssltests.py
1.03
KB
-rw-r--r--
2026-04-20 11:09
string_tests.py
71.24
KB
-rw-r--r--
2026-04-20 11:09
test___all__.py
5.04
KB
-rw-r--r--
2026-04-20 11:09
test__locale.py
12.52
KB
-rw-r--r--
2026-04-20 11:09
test__opcode.py
4.14
KB
-rw-r--r--
2026-04-20 11:09
test__osx_support.py
13.53
KB
-rw-r--r--
2026-04-20 11:09
test__xxinterpchannels.py
52.19
KB
-rw-r--r--
2026-04-20 11:09
test__xxsubinterpreters.py
27.5
KB
-rw-r--r--
2026-04-20 11:09
test_abc.py
23.81
KB
-rw-r--r--
2026-04-20 11:09
test_abstract_numbers.py
5.81
KB
-rw-r--r--
2026-04-20 11:09
test_aifc.py
17.84
KB
-rw-r--r--
2026-04-20 11:09
test_argparse.py
218.49
KB
-rw-r--r--
2026-04-20 11:09
test_array.py
55.44
KB
-rw-r--r--
2026-04-20 11:09
test_asdl_parser.py
4.44
KB
-rw-r--r--
2026-04-20 11:09
test_asyncgen.py
53.94
KB
-rw-r--r--
2026-04-20 11:09
test_atexit.py
3.2
KB
-rw-r--r--
2026-04-20 11:09
test_audioop.py
28.32
KB
-rw-r--r--
2026-04-20 11:09
test_audit.py
9.22
KB
-rw-r--r--
2026-04-20 11:09
test_augassign.py
7.68
KB
-rw-r--r--
2026-04-20 11:09
test_base64.py
35.05
KB
-rw-r--r--
2026-04-20 11:09
test_baseexception.py
7.77
KB
-rw-r--r--
2026-04-20 11:09
test_bdb.py
44.17
KB
-rw-r--r--
2026-04-20 11:09
test_bigaddrspace.py
2.83
KB
-rw-r--r--
2026-04-20 11:09
test_bigmem.py
45.01
KB
-rw-r--r--
2026-04-20 11:09
test_binascii.py
20.09
KB
-rw-r--r--
2026-04-20 11:09
test_binop.py
14.14
KB
-rw-r--r--
2026-04-20 11:09
test_bisect.py
16.63
KB
-rw-r--r--
2026-04-20 11:09
test_bool.py
14.25
KB
-rw-r--r--
2026-04-20 11:09
test_buffer.py
171.88
KB
-rw-r--r--
2026-04-20 11:09
test_bufio.py
2.56
KB
-rw-r--r--
2026-04-20 11:09
test_builtin.py
96.66
KB
-rw-r--r--
2026-04-20 11:09
test_bytes.py
82.01
KB
-rw-r--r--
2026-04-20 11:09
test_bz2.py
42.59
KB
-rw-r--r--
2026-04-20 11:09
test_c_locale_coercion.py
20.99
KB
-rw-r--r--
2026-04-20 11:09
test_calendar.py
51.78
KB
-rw-r--r--
2026-04-20 11:09
test_call.py
35.21
KB
-rw-r--r--
2026-04-20 11:09
test_cgi.py
22.27
KB
-rw-r--r--
2026-04-20 11:09
test_cgitb.py
2.62
KB
-rw-r--r--
2026-04-20 11:09
test_charmapcodec.py
1.77
KB
-rw-r--r--
2026-04-20 11:09
test_class.py
22.02
KB
-rw-r--r--
2026-04-20 11:09
test_clinic.py
85.41
KB
-rw-r--r--
2026-04-20 11:09
test_cmath.py
22.47
KB
-rw-r--r--
2026-04-20 11:09
test_cmd.py
6.49
KB
-rw-r--r--
2026-04-20 11:09
test_cmd_line.py
39.51
KB
-rw-r--r--
2026-04-20 11:09
test_cmd_line_script.py
34.93
KB
-rw-r--r--
2026-04-20 11:09
test_code.py
25.7
KB
-rw-r--r--
2026-04-20 11:09
test_code_module.py
12.73
KB
-rw-r--r--
2026-04-20 11:09
test_codeccallbacks.py
49.23
KB
-rw-r--r--
2026-04-20 11:09
test_codecencodings_cn.py
3.86
KB
-rw-r--r--
2026-04-20 11:09
test_codecencodings_hk.py
701
B
-rw-r--r--
2026-04-20 11:09
test_codecencodings_iso2022.py
3.65
KB
-rw-r--r--
2026-04-20 11:09
test_codecencodings_jp.py
4.79
KB
-rw-r--r--
2026-04-20 11:09
test_codecencodings_kr.py
2.96
KB
-rw-r--r--
2026-04-20 11:09
test_codecencodings_tw.py
681
B
-rw-r--r--
2026-04-20 11:09
test_codecmaps_cn.py
746
B
-rw-r--r--
2026-04-20 11:09
test_codecmaps_hk.py
386
B
-rw-r--r--
2026-04-20 11:09
test_codecmaps_jp.py
1.7
KB
-rw-r--r--
2026-04-20 11:09
test_codecmaps_kr.py
1.16
KB
-rw-r--r--
2026-04-20 11:09
test_codecmaps_tw.py
705
B
-rw-r--r--
2026-04-20 11:09
test_codecs.py
137.42
KB
-rw-r--r--
2026-04-20 11:09
test_codeop.py
8.68
KB
-rw-r--r--
2026-04-20 11:09
test_collections.py
93.47
KB
-rw-r--r--
2026-04-20 11:09
test_colorsys.py
4.27
KB
-rw-r--r--
2026-04-20 11:09
test_compare.py
17.46
KB
-rw-r--r--
2026-04-20 11:09
test_compile.py
81.24
KB
-rw-r--r--
2026-04-20 11:09
test_compileall.py
48.53
KB
-rw-r--r--
2026-04-20 11:09
test_compiler_assemble.py
2.46
KB
-rw-r--r--
2026-04-20 11:09
test_compiler_codegen.py
1.72
KB
-rw-r--r--
2026-04-20 11:09
test_complex.py
35.21
KB
-rw-r--r--
2026-04-20 11:09
test_configparser.py
85.34
KB
-rw-r--r--
2026-04-20 11:09
test_contains.py
3.35
KB
-rw-r--r--
2026-04-20 11:09
test_context.py
31.1
KB
-rw-r--r--
2026-04-20 11:09
test_contextlib.py
43.08
KB
-rw-r--r--
2026-04-20 11:09
test_contextlib_async.py
23.99
KB
-rw-r--r--
2026-04-20 11:09
test_copy.py
26.52
KB
-rw-r--r--
2026-04-20 11:09
test_copyreg.py
4.36
KB
-rw-r--r--
2026-04-20 11:09
test_coroutines.py
67.47
KB
-rw-r--r--
2026-04-20 11:09
test_cprofile.py
9.44
KB
-rw-r--r--
2026-04-20 11:09
test_crashers.py
1.17
KB
-rw-r--r--
2026-04-20 11:09
test_crypt.py
4.19
KB
-rw-r--r--
2026-04-20 11:09
test_csv.py
61.59
KB
-rw-r--r--
2026-04-20 11:09
test_curses.py
50.14
KB
-rw-r--r--
2026-04-20 11:09
test_datetime.py
2.67
KB
-rw-r--r--
2026-04-20 11:09
test_dbm.py
6.83
KB
-rw-r--r--
2026-04-20 11:09
test_dbm_dumb.py
11.08
KB
-rw-r--r--
2026-04-20 11:09
test_dbm_gnu.py
7.64
KB
-rw-r--r--
2026-04-20 11:09
test_dbm_ndbm.py
5.91
KB
-rw-r--r--
2026-04-20 11:09
test_decimal.py
217.94
KB
-rw-r--r--
2026-04-20 11:09
test_decorators.py
14.63
KB
-rw-r--r--
2026-04-20 11:09
test_defaultdict.py
6.1
KB
-rw-r--r--
2026-04-20 11:09
test_deque.py
33.16
KB
-rw-r--r--
2026-04-20 11:09
test_descr.py
196.2
KB
-rw-r--r--
2026-04-20 11:09
test_descrtut.py
10.98
KB
-rw-r--r--
2026-04-20 11:09
test_devpoll.py
4.44
KB
-rw-r--r--
2026-04-20 11:09
test_dict.py
51.33
KB
-rw-r--r--
2026-04-20 11:09
test_dict_version.py
6.1
KB
-rw-r--r--
2026-04-20 11:09
test_dictcomps.py
6.55
KB
-rw-r--r--
2026-04-20 11:09
test_dictviews.py
14.82
KB
-rw-r--r--
2026-04-20 11:09
test_difflib.py
21.47
KB
-rw-r--r--
2026-04-20 11:09
test_difflib_expect.html
100.9
KB
-rw-r--r--
2026-03-03 16:09
test_dis.py
83.45
KB
-rw-r--r--
2026-04-20 11:09
test_docxmlrpc.py
9.1
KB
-rw-r--r--
2026-04-20 11:09
test_dtrace.py
7.98
KB
-rw-r--r--
2026-04-20 11:09
test_dynamic.py
6
KB
-rw-r--r--
2026-04-20 11:09
test_dynamicclassattribute.py
9.57
KB
-rw-r--r--
2026-04-20 11:09
test_eintr.py
627
B
-rw-r--r--
2026-04-20 11:09
test_embed.py
69.88
KB
-rw-r--r--
2026-04-20 11:09
test_ensurepip.py
11.49
KB
-rw-r--r--
2026-04-20 11:09
test_enum.py
188.15
KB
-rw-r--r--
2026-04-20 11:09
test_enumerate.py
9.14
KB
-rw-r--r--
2026-04-20 11:09
test_eof.py
7.94
KB
-rw-r--r--
2026-04-20 11:09
test_epoll.py
9.4
KB
-rw-r--r--
2026-04-20 11:09
test_errno.py
1.04
KB
-rw-r--r--
2026-04-20 11:09
test_except_star.py
39.7
KB
-rw-r--r--
2026-04-20 11:09
test_exception_group.py
34.03
KB
-rw-r--r--
2026-04-20 11:09
test_exception_hierarchy.py
7.54
KB
-rw-r--r--
2026-04-20 11:09
test_exception_variations.py
13.74
KB
-rw-r--r--
2026-04-20 11:09
test_exceptions.py
83.63
KB
-rw-r--r--
2026-04-20 11:09
test_extcall.py
14.69
KB
-rw-r--r--
2026-04-20 11:09
test_faulthandler.py
30.31
KB
-rw-r--r--
2026-04-20 11:09
test_fcntl.py
7.76
KB
-rw-r--r--
2026-04-20 11:09
test_file.py
11.78
KB
-rw-r--r--
2026-04-20 11:09
test_file_eintr.py
10.74
KB
-rw-r--r--
2026-04-20 11:09
test_filecmp.py
11.98
KB
-rw-r--r--
2026-04-20 11:09
test_fileinput.py
37.86
KB
-rw-r--r--
2026-04-20 11:09
test_fileio.py
19.98
KB
-rw-r--r--
2026-04-20 11:09
test_fileutils.py
951
B
-rw-r--r--
2026-04-20 11:09
test_finalization.py
14.66
KB
-rw-r--r--
2026-04-20 11:09
test_float.py
64.65
KB
-rw-r--r--
2026-04-20 11:09
test_flufl.py
2.81
KB
-rw-r--r--
2026-04-20 11:09
test_fnmatch.py
10.68
KB
-rw-r--r--
2026-04-20 11:09
test_fork1.py
3.3
KB
-rw-r--r--
2026-04-20 11:09
test_format.py
28.44
KB
-rw-r--r--
2026-04-20 11:09
test_fractions.py
65.65
KB
-rw-r--r--
2026-04-20 11:09
test_frame.py
14.04
KB
-rw-r--r--
2026-04-20 11:09
test_frozen.py
2.2
KB
-rw-r--r--
2026-04-20 11:09
test_fstring.py
64.74
KB
-rw-r--r--
2026-04-20 11:09
test_ftplib.py
41.97
KB
-rw-r--r--
2026-04-20 11:09
test_funcattrs.py
15.71
KB
-rw-r--r--
2026-04-20 11:09
test_functools.py
114.02
KB
-rw-r--r--
2026-04-20 11:09
test_gc.py
47.71
KB
-rw-r--r--
2026-04-20 11:09
test_generator_stop.py
943
B
-rw-r--r--
2026-04-20 11:09
test_generators.py
66.48
KB
-rw-r--r--
2026-04-20 11:09
test_genericalias.py
17.78
KB
-rw-r--r--
2026-04-20 11:09
test_genericclass.py
9.44
KB
-rw-r--r--
2026-04-20 11:09
test_genericpath.py
23.25
KB
-rw-r--r--
2026-04-20 11:09
test_genexps.py
7.3
KB
-rw-r--r--
2026-04-20 11:09
test_getopt.py
6.94
KB
-rw-r--r--
2026-04-20 11:09
test_getpass.py
6.37
KB
-rw-r--r--
2026-04-20 11:09
test_getpath.py
44.36
KB
-rw-r--r--
2026-04-20 11:09
test_gettext.py
41.96
KB
-rw-r--r--
2026-04-20 11:09
test_glob.py
18.21
KB
-rw-r--r--
2026-04-20 11:09
test_global.py
1.2
KB
-rw-r--r--
2026-04-20 11:09
test_grammar.py
66.31
KB
-rw-r--r--
2026-04-20 11:09
test_graphlib.py
8.31
KB
-rw-r--r--
2026-04-20 11:09
test_grp.py
3.67
KB
-rw-r--r--
2026-04-20 11:09
test_gzip.py
41.48
KB
-rw-r--r--
2026-04-20 11:09
test_hash.py
12.11
KB
-rw-r--r--
2026-04-20 11:09
test_hashlib.py
46.71
KB
-rw-r--r--
2026-04-20 11:09
test_heapq.py
16.42
KB
-rw-r--r--
2026-04-20 11:09
test_hmac.py
26.06
KB
-rw-r--r--
2026-04-20 11:09
test_html.py
4.23
KB
-rw-r--r--
2026-04-20 11:09
test_htmlparser.py
45.58
KB
-rw-r--r--
2026-04-20 11:09
test_http_cookiejar.py
81.55
KB
-rw-r--r--
2026-04-20 11:09
test_http_cookies.py
23.59
KB
-rw-r--r--
2026-04-20 11:09
test_httplib.py
99.04
KB
-rw-r--r--
2026-04-20 11:09
test_httpservers.py
57.95
KB
-rw-r--r--
2026-04-20 11:09
test_idle.py
831
B
-rw-r--r--
2026-04-20 11:09
test_imaplib.py
42.11
KB
-rw-r--r--
2026-04-20 11:09
test_imghdr.py
4.81
KB
-rw-r--r--
2026-04-20 11:09
test_index.py
8.37
KB
-rw-r--r--
2026-04-20 11:09
test_int.py
33.97
KB
-rw-r--r--
2026-04-20 11:09
test_int_literal.py
6.89
KB
-rw-r--r--
2026-04-20 11:09
test_interpreters.py
32.11
KB
-rw-r--r--
2026-04-20 11:09
test_io.py
183.89
KB
-rw-r--r--
2026-04-20 11:09
test_ioctl.py
3.24
KB
-rw-r--r--
2026-04-20 11:09
test_ipaddress.py
126.69
KB
-rw-r--r--
2026-04-20 11:09
test_isinstance.py
12.95
KB
-rw-r--r--
2026-04-20 11:09
test_iter.py
38.23
KB
-rw-r--r--
2026-04-20 11:09
test_iterlen.py
7.1
KB
-rw-r--r--
2026-04-20 11:09
test_itertools.py
113.53
KB
-rw-r--r--
2026-04-20 11:09
test_keyword.py
2
KB
-rw-r--r--
2026-04-20 11:09
test_keywordonlyarg.py
6.89
KB
-rw-r--r--
2026-04-20 11:09
test_kqueue.py
9.36
KB
-rw-r--r--
2026-04-20 11:09
test_largefile.py
11.05
KB
-rw-r--r--
2026-04-20 11:09
test_launcher.py
28.75
KB
-rw-r--r--
2026-04-20 11:09
test_linecache.py
12.56
KB
-rw-r--r--
2026-04-20 11:09
test_list.py
9.6
KB
-rw-r--r--
2026-04-20 11:09
test_listcomps.py
24.02
KB
-rw-r--r--
2026-04-20 11:09
test_lltrace.py
3.71
KB
-rw-r--r--
2026-04-20 11:09
test_locale.py
24.69
KB
-rw-r--r--
2026-04-20 11:09
test_logging.py
251.7
KB
-rw-r--r--
2026-04-20 11:09
test_long.py
63.4
KB
-rw-r--r--
2026-04-20 11:09
test_longexp.py
233
B
-rw-r--r--
2026-04-20 11:09
test_lzma.py
93
KB
-rw-r--r--
2026-04-20 11:09
test_mailbox.py
93.91
KB
-rw-r--r--
2026-04-20 11:09
test_mailcap.py
11.48
KB
-rw-r--r--
2026-04-20 11:09
test_marshal.py
23.15
KB
-rw-r--r--
2026-04-20 11:09
test_math.py
108.3
KB
-rw-r--r--
2026-04-20 11:09
test_math_property.py
1.15
KB
-rw-r--r--
2026-04-20 11:09
test_memoryio.py
32.65
KB
-rw-r--r--
2026-04-20 11:09
test_memoryview.py
22.23
KB
-rw-r--r--
2026-04-20 11:09
test_metaclass.py
6.19
KB
-rw-r--r--
2026-04-20 11:09
test_mimetypes.py
15.74
KB
-rw-r--r--
2026-04-20 11:09
test_minidom.py
69.56
KB
-rw-r--r--
2026-04-20 11:09
test_mmap.py
38.56
KB
-rw-r--r--
2026-04-20 11:09
test_modulefinder.py
12.21
KB
-rw-r--r--
2026-04-20 11:09
test_monitoring.py
55.76
KB
-rw-r--r--
2026-04-20 11:09
test_msilib.py
5.52
KB
-rw-r--r--
2026-04-20 11:09
test_multibytecodec.py
15.79
KB
-rw-r--r--
2026-04-20 11:09
test_multiprocessing_main_handling.py
11.48
KB
-rw-r--r--
2026-04-20 11:09
test_named_expressions.py
29.62
KB
-rw-r--r--
2026-04-20 11:09
test_netrc.py
11.86
KB
-rw-r--r--
2026-04-20 11:09
test_nis.py
1.25
KB
-rw-r--r--
2026-04-20 11:09
test_nntplib.py
62.7
KB
-rw-r--r--
2026-04-20 11:09
test_ntpath.py
64.11
KB
-rw-r--r--
2026-04-20 11:09
test_numeric_tower.py
8
KB
-rw-r--r--
2026-04-20 11:09
test_opcache.py
10.89
KB
-rw-r--r--
2026-04-20 11:09
test_opcodes.py
3.62
KB
-rw-r--r--
2026-04-20 11:09
test_openpty.py
600
B
-rw-r--r--
2026-04-20 11:09
test_operator.py
26.72
KB
-rw-r--r--
2026-04-20 11:09
test_optparse.py
61.39
KB
-rw-r--r--
2026-04-20 11:09
test_ordered_dict.py
39.96
KB
-rw-r--r--
2026-04-20 11:09
test_os.py
181.05
KB
-rw-r--r--
2026-04-20 11:09
test_ossaudiodev.py
7.27
KB
-rw-r--r--
2026-04-20 11:09
test_osx_env.py
1.31
KB
-rw-r--r--
2026-04-20 11:09
test_pathlib.py
138.01
KB
-rw-r--r--
2026-04-20 11:09
test_patma.py
86.6
KB
-rw-r--r--
2026-04-20 11:09
test_pdb.py
92.92
KB
-rw-r--r--
2026-04-20 11:09
test_peepholer.py
40.6
KB
-rw-r--r--
2026-04-20 11:09
test_pep646_syntax.py
7.79
KB
-rw-r--r--
2026-04-20 11:09
test_perf_profiler.py
11.41
KB
-rw-r--r--
2026-04-20 11:09
test_perfmaps.py
685
B
-rw-r--r--
2026-04-20 11:09
test_pickle.py
21.24
KB
-rw-r--r--
2026-04-20 11:09
test_picklebuffer.py
4.99
KB
-rw-r--r--
2026-04-20 11:09
test_pickletools.py
16.78
KB
-rw-r--r--
2026-04-20 11:09
test_pipes.py
6.79
KB
-rw-r--r--
2026-04-20 11:09
test_pkg.py
9.59
KB
-rw-r--r--
2026-04-20 11:09
test_pkgutil.py
26.22
KB
-rw-r--r--
2026-04-20 11:09
test_platform.py
21.53
KB
-rw-r--r--
2026-04-20 11:09
test_plistlib.py
42.62
KB
-rw-r--r--
2026-04-20 11:09
test_poll.py
7.39
KB
-rw-r--r--
2026-04-20 11:09
test_popen.py
2.36
KB
-rw-r--r--
2026-04-20 11:09
test_poplib.py
18.02
KB
-rw-r--r--
2026-04-20 11:09
test_positional_only_arg.py
18.44
KB
-rw-r--r--
2026-04-20 11:09
test_posix.py
96.25
KB
-rw-r--r--
2026-04-20 11:09
test_posixpath.py
44.92
KB
-rw-r--r--
2026-04-20 11:09
test_pow.py
6.38
KB
-rw-r--r--
2026-04-20 11:09
test_pprint.py
50.59
KB
-rw-r--r--
2026-04-20 11:09
test_print.py
8.05
KB
-rw-r--r--
2026-04-20 11:09
test_profile.py
8.69
KB
-rw-r--r--
2026-04-20 11:09
test_property.py
19.33
KB
-rw-r--r--
2026-04-20 11:09
test_pstats.py
4.31
KB
-rw-r--r--
2026-04-20 11:09
test_pty.py
16.18
KB
-rw-r--r--
2026-04-20 11:09
test_pulldom.py
12.33
KB
-rw-r--r--
2026-04-20 11:09
test_pwd.py
4.32
KB
-rw-r--r--
2026-04-20 11:09
test_py_compile.py
11.93
KB
-rw-r--r--
2026-04-20 11:09
test_pyclbr.py
10.25
KB
-rw-r--r--
2026-04-20 11:09
test_pyexpat.py
39.22
KB
-rw-r--r--
2026-04-20 11:09
test_queue.py
20.61
KB
-rw-r--r--
2026-04-20 11:09
test_quopri.py
7.87
KB
-rw-r--r--
2026-04-20 11:09
test_raise.py
13.44
KB
-rw-r--r--
2026-04-20 11:09
test_random.py
57.01
KB
-rw-r--r--
2026-04-20 11:09
test_range.py
26.53
KB
-rw-r--r--
2026-04-20 11:09
test_re.py
144.79
KB
-rw-r--r--
2026-04-20 11:09
test_readline.py
15.72
KB
-rw-r--r--
2026-04-20 11:09
test_regrtest.py
92.51
KB
-rw-r--r--
2026-04-20 11:09
test_repl.py
6.34
KB
-rw-r--r--
2026-04-20 11:09
test_reprlib.py
29.07
KB
-rw-r--r--
2026-04-20 11:09
test_resource.py
7.12
KB
-rw-r--r--
2026-04-20 11:09
test_richcmp.py
11.95
KB
-rw-r--r--
2026-04-20 11:09
test_rlcompleter.py
7.4
KB
-rw-r--r--
2026-04-20 11:09
test_robotparser.py
11.02
KB
-rw-r--r--
2026-04-20 11:09
test_runpy.py
33.99
KB
-rw-r--r--
2026-04-20 11:09
test_sax.py
54.63
KB
-rw-r--r--
2026-04-20 11:09
test_sched.py
7.38
KB
-rw-r--r--
2026-04-20 11:09
test_scope.py
21.94
KB
-rw-r--r--
2026-04-20 11:09
test_script_helper.py
5.82
KB
-rw-r--r--
2026-04-20 11:09
test_secrets.py
4.28
KB
-rw-r--r--
2026-04-20 11:09
test_select.py
3.42
KB
-rw-r--r--
2026-04-20 11:09
test_selectors.py
19.64
KB
-rw-r--r--
2026-04-20 11:09
test_set.py
71.31
KB
-rw-r--r--
2026-04-20 11:09
test_setcomps.py
5.24
KB
-rw-r--r--
2026-04-20 11:09
test_shelve.py
6.42
KB
-rw-r--r--
2026-04-20 11:09
test_shlex.py
13.39
KB
-rw-r--r--
2026-04-20 11:09
test_shutil.py
136.86
KB
-rw-r--r--
2026-04-20 11:09
test_signal.py
52.58
KB
-rw-r--r--
2026-04-20 11:09
test_site.py
29.77
KB
-rw-r--r--
2026-04-20 11:09
test_slice.py
9.46
KB
-rw-r--r--
2026-04-20 11:09
test_smtplib.py
60.02
KB
-rw-r--r--
2026-04-20 11:09
test_smtpnet.py
3.03
KB
-rw-r--r--
2026-04-20 11:09
test_sndhdr.py
1.51
KB
-rw-r--r--
2026-04-20 11:09
test_socket.py
260.33
KB
-rw-r--r--
2026-04-20 11:09
test_socketserver.py
17.39
KB
-rw-r--r--
2026-04-20 11:09
test_sort.py
13.59
KB
-rw-r--r--
2026-04-20 11:09
test_source_encoding.py
12.65
KB
-rw-r--r--
2026-04-20 11:09
test_spwd.py
2.83
KB
-rw-r--r--
2026-04-20 11:09
test_ssl.py
216.52
KB
-rw-r--r--
2026-04-20 11:09
test_stable_abi_ctypes.py
24.75
KB
-rw-r--r--
2026-04-20 11:09
test_startfile.py
1.7
KB
-rw-r--r--
2026-04-20 11:09
test_stat.py
8.92
KB
-rw-r--r--
2026-04-20 11:09
test_statistics.py
120.02
KB
-rw-r--r--
2026-04-20 11:09
test_strftime.py
7.4
KB
-rw-r--r--
2026-04-20 11:09
test_string.py
21.86
KB
-rw-r--r--
2026-04-20 11:09
test_string_literals.py
14.1
KB
-rw-r--r--
2026-04-20 11:09
test_stringprep.py
3.04
KB
-rw-r--r--
2026-04-20 11:09
test_strptime.py
41.95
KB
-rw-r--r--
2026-04-20 11:09
test_strtod.py
20.06
KB
-rw-r--r--
2026-04-20 11:09
test_struct.py
39.18
KB
-rw-r--r--
2026-04-20 11:09
test_structseq.py
7.72
KB
-rw-r--r--
2026-04-20 11:09
test_subclassinit.py
8.04
KB
-rw-r--r--
2026-04-20 11:09
test_subprocess.py
161.37
KB
-rw-r--r--
2026-04-20 11:09
test_sunau.py
6.09
KB
-rw-r--r--
2026-04-20 11:09
test_sundry.py
1.02
KB
-rw-r--r--
2026-04-20 11:09
test_super.py
14.79
KB
-rw-r--r--
2026-04-20 11:09
test_support.py
27.05
KB
-rw-r--r--
2026-04-20 11:09
test_symtable.py
17.56
KB
-rw-r--r--
2026-04-20 11:09
test_syntax.py
73.95
KB
-rw-r--r--
2026-04-20 11:09
test_sys.py
67.37
KB
-rw-r--r--
2026-04-20 11:09
test_sys_setprofile.py
14.53
KB
-rw-r--r--
2026-04-20 11:09
test_sys_settrace.py
84.56
KB
-rw-r--r--
2026-04-20 11:09
test_sysconfig.py
26.08
KB
-rw-r--r--
2026-04-20 11:09
test_syslog.py
4.7
KB
-rw-r--r--
2026-04-20 11:09
test_tabnanny.py
13.9
KB
-rw-r--r--
2026-04-20 11:09
test_tarfile.py
180.51
KB
-rw-r--r--
2026-04-20 11:09
test_tcl.py
30.3
KB
-rw-r--r--
2026-04-20 11:09
test_telnetlib.py
12.85
KB
-rw-r--r--
2026-04-20 11:09
test_tempfile.py
75.5
KB
-rw-r--r--
2026-04-20 11:09
test_termios.py
10.96
KB
-rw-r--r--
2026-04-20 11:09
test_textwrap.py
41.89
KB
-rw-r--r--
2026-04-20 11:09
test_thread.py
8.87
KB
-rw-r--r--
2026-04-20 11:09
test_threadedtempfile.py
1.93
KB
-rw-r--r--
2026-04-20 11:09
test_threading.py
74.21
KB
-rw-r--r--
2026-04-20 11:09
test_threading_local.py
7.01
KB
-rw-r--r--
2026-04-20 11:09
test_threadsignals.py
9.87
KB
-rw-r--r--
2026-04-20 11:09
test_time.py
44.65
KB
-rw-r--r--
2026-04-20 11:09
test_timeit.py
15.2
KB
-rw-r--r--
2026-04-20 11:09
test_timeout.py
10.74
KB
-rw-r--r--
2026-04-20 11:09
test_tix.py
1.05
KB
-rw-r--r--
2026-04-20 11:09
test_tokenize.py
118
KB
-rw-r--r--
2026-04-20 11:09
test_trace.py
21.52
KB
-rw-r--r--
2026-04-20 11:09
test_traceback.py
144.4
KB
-rw-r--r--
2026-04-20 11:09
test_tracemalloc.py
40.97
KB
-rw-r--r--
2026-04-20 11:09
test_ttk_textonly.py
16.69
KB
-rw-r--r--
2026-04-20 11:09
test_tty.py
3.63
KB
-rw-r--r--
2026-04-20 11:09
test_tuple.py
19.8
KB
-rw-r--r--
2026-04-20 11:09
test_turtle.py
14.04
KB
-rw-r--r--
2026-04-20 11:09
test_type_aliases.py
12.74
KB
-rw-r--r--
2026-04-20 11:09
test_type_annotations.py
6.23
KB
-rw-r--r--
2026-04-20 11:09
test_type_cache.py
6.6
KB
-rw-r--r--
2026-04-20 11:09
test_type_comments.py
10.5
KB
-rw-r--r--
2026-04-20 11:09
test_type_params.py
38.87
KB
-rw-r--r--
2026-04-20 11:09
test_typechecks.py
2.55
KB
-rw-r--r--
2026-04-20 11:09
test_types.py
82.38
KB
-rw-r--r--
2026-04-20 11:09
test_typing.py
343.33
KB
-rw-r--r--
2026-04-20 11:09
test_ucn.py
9.71
KB
-rw-r--r--
2026-04-20 11:09
test_unary.py
1.52
KB
-rw-r--r--
2026-04-20 11:09
test_unicode.py
125.43
KB
-rw-r--r--
2026-04-20 11:09
test_unicode_file.py
5.72
KB
-rw-r--r--
2026-04-20 11:09
test_unicode_file_functions.py
6.91
KB
-rw-r--r--
2026-04-20 11:09
test_unicode_identifiers.py
997
B
-rw-r--r--
2026-04-20 11:09
test_unicodedata.py
17.01
KB
-rw-r--r--
2026-04-20 11:09
test_univnewlines.py
3.85
KB
-rw-r--r--
2026-04-20 11:09
test_unpack.py
3.51
KB
-rw-r--r--
2026-04-20 11:09
test_unpack_ex.py
9.98
KB
-rw-r--r--
2026-04-20 11:09
test_unparse.py
27.96
KB
-rw-r--r--
2026-04-20 11:09
test_urllib.py
73.04
KB
-rw-r--r--
2026-04-20 11:09
test_urllib2.py
80.82
KB
-rw-r--r--
2026-04-20 11:09
test_urllib2_localnet.py
25.64
KB
-rw-r--r--
2026-04-20 11:09
test_urllib2net.py
13.96
KB
-rw-r--r--
2026-04-20 11:09
test_urllib_response.py
2.04
KB
-rw-r--r--
2026-04-20 11:09
test_urllibnet.py
9.41
KB
-rw-r--r--
2026-04-20 11:09
test_urlparse.py
81.41
KB
-rw-r--r--
2026-04-20 11:09
test_userdict.py
7.56
KB
-rw-r--r--
2026-04-20 11:09
test_userlist.py
1.97
KB
-rw-r--r--
2026-04-20 11:09
test_userstring.py
2.52
KB
-rw-r--r--
2026-04-20 11:09
test_utf8_mode.py
10.31
KB
-rw-r--r--
2026-04-20 11:09
test_utf8source.py
1.08
KB
-rw-r--r--
2026-04-20 11:09
test_uu.py
9.2
KB
-rw-r--r--
2026-04-20 11:09
test_uuid.py
44.28
KB
-rw-r--r--
2026-04-20 11:09
test_venv.py
37.42
KB
-rw-r--r--
2026-04-20 11:09
test_wait3.py
1.74
KB
-rw-r--r--
2026-04-20 11:09
test_wait4.py
1.14
KB
-rw-r--r--
2026-04-20 11:09
test_wave.py
7.64
KB
-rw-r--r--
2026-04-20 11:09
test_weakref.py
74.32
KB
-rw-r--r--
2026-04-20 11:09
test_weakset.py
16.3
KB
-rw-r--r--
2026-04-20 11:09
test_webbrowser.py
10.5
KB
-rw-r--r--
2026-04-20 11:09
test_winapi.py
2.63
KB
-rw-r--r--
2026-04-20 11:09
test_winconsoleio.py
7.6
KB
-rw-r--r--
2026-04-20 11:09
test_winreg.py
22.48
KB
-rw-r--r--
2026-04-20 11:09
test_winsound.py
5.17
KB
-rw-r--r--
2026-04-20 11:09
test_with.py
27.78
KB
-rw-r--r--
2026-04-20 11:09
test_wmi.py
3.31
KB
-rw-r--r--
2026-04-20 11:09
test_wsgiref.py
30.25
KB
-rw-r--r--
2026-04-20 11:09
test_xdrlib.py
2.25
KB
-rw-r--r--
2026-04-20 11:09
test_xml_dom_minicompat.py
4.18
KB
-rw-r--r--
2026-04-20 11:09
test_xml_dom_xmlbuilder.py
3.1
KB
-rw-r--r--
2026-04-20 11:09
test_xml_etree.py
168.95
KB
-rw-r--r--
2026-04-20 11:09
test_xml_etree_c.py
9.34
KB
-rw-r--r--
2026-04-20 11:09
test_xmlrpc.py
58.08
KB
-rw-r--r--
2026-04-20 11:09
test_xmlrpc_net.py
954
B
-rw-r--r--
2026-04-20 11:09
test_xxlimited.py
2.46
KB
-rw-r--r--
2026-04-20 11:09
test_xxtestfuzz.py
690
B
-rw-r--r--
2026-04-20 11:09
test_yield_from.py
50.23
KB
-rw-r--r--
2026-04-20 11:09
test_zipapp.py
16.7
KB
-rw-r--r--
2026-04-20 11:09
test_zipfile64.py
5.78
KB
-rw-r--r--
2026-04-20 11:09
test_zipimport.py
31.88
KB
-rw-r--r--
2026-04-20 11:09
test_zipimport_support.py
10.57
KB
-rw-r--r--
2026-04-20 11:09
test_zlib.py
41.66
KB
-rw-r--r--
2026-04-20 11:09
testcodec.py
1.02
KB
-rw-r--r--
2026-04-20 11:09
testtar.tar
425
KB
-rw-r--r--
2026-03-03 16:09
testtar.tar.xz
172
B
-rw-r--r--
2026-03-03 16:09
tf_inherit_check.py
714
B
-rw-r--r--
2026-04-20 11:09
time_hashlib.py
2.87
KB
-rw-r--r--
2026-04-20 11:09
win_console_handler.py
1.38
KB
-rw-r--r--
2026-04-20 11:09
xmltests.py
499
B
-rw-r--r--
2026-04-20 11:09
zip_cp437_header.zip
270
B
-rw-r--r--
2026-03-03 16:09
zipdir.zip
374
B
-rw-r--r--
2026-03-03 16:09
zipdir_backslash.zip
192
B
-rw-r--r--
2026-03-03 16:09
Save
Rename
import doctest import textwrap import traceback import types import unittest from test.support import BrokenIter doctests = """ ########### Tests borrowed from or inspired by test_genexps.py ############ Test simple loop with conditional >>> sum([i*i for i in range(100) if i&1 == 1]) 166650 Test simple nesting >>> [(i,j) for i in range(3) for j in range(4)] [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3)] Test nesting with the inner expression dependent on the outer >>> [(i,j) for i in range(4) for j in range(i)] [(1, 0), (2, 0), (2, 1), (3, 0), (3, 1), (3, 2)] Test the idiom for temporary variable assignment in comprehensions. >>> [j*j for i in range(4) for j in [i+1]] [1, 4, 9, 16] >>> [j*k for i in range(4) for j in [i+1] for k in [j+1]] [2, 6, 12, 20] >>> [j*k for i in range(4) for j, k in [(i+1, i+2)]] [2, 6, 12, 20] Not assignment >>> [i*i for i in [*range(4)]] [0, 1, 4, 9] >>> [i*i for i in (*range(4),)] [0, 1, 4, 9] Make sure the induction variable is not exposed >>> i = 20 >>> sum([i*i for i in range(100)]) 328350 >>> i 20 Verify that syntax error's are raised for listcomps used as lvalues >>> [y for y in (1,2)] = 10 # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... SyntaxError: ... >>> [y for y in (1,2)] += 10 # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... SyntaxError: ... ########### Tests borrowed from or inspired by test_generators.py ############ Make a nested list comprehension that acts like range() >>> def frange(n): ... return [i for i in range(n)] >>> frange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Same again, only as a lambda expression instead of a function definition >>> lrange = lambda n: [i for i in range(n)] >>> lrange(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Generators can call other generators: >>> def grange(n): ... for x in [i for i in range(n)]: ... yield x >>> list(grange(5)) [0, 1, 2, 3, 4] Make sure that None is a valid return value >>> [None for i in range(10)] [None, None, None, None, None, None, None, None, None, None] """ class ListComprehensionTest(unittest.TestCase): def _check_in_scopes(self, code, outputs=None, ns=None, scopes=None, raises=(), exec_func=exec): code = textwrap.dedent(code) scopes = scopes or ["module", "class", "function"] for scope in scopes: with self.subTest(scope=scope): if scope == "class": newcode = textwrap.dedent(""" class _C: {code} """).format(code=textwrap.indent(code, " ")) def get_output(moddict, name): return getattr(moddict["_C"], name) elif scope == "function": newcode = textwrap.dedent(""" def _f(): {code} return locals() _out = _f() """).format(code=textwrap.indent(code, " ")) def get_output(moddict, name): return moddict["_out"][name] else: newcode = code def get_output(moddict, name): return moddict[name] newns = ns.copy() if ns else {} try: exec_func(newcode, newns) except raises as e: # We care about e.g. NameError vs UnboundLocalError self.assertIs(type(e), raises) else: for k, v in (outputs or {}).items(): self.assertEqual(get_output(newns, k), v, k) def test_lambdas_with_iteration_var_as_default(self): code = """ items = [(lambda i=i: i) for i in range(5)] y = [x() for x in items] """ outputs = {"y": [0, 1, 2, 3, 4]} self._check_in_scopes(code, outputs) def test_lambdas_with_free_var(self): code = """ items = [(lambda: i) for i in range(5)] y = [x() for x in items] """ outputs = {"y": [4, 4, 4, 4, 4]} self._check_in_scopes(code, outputs) def test_class_scope_free_var_with_class_cell(self): class C: def method(self): super() return __class__ items = [(lambda: i) for i in range(5)] y = [x() for x in items] self.assertEqual(C.y, [4, 4, 4, 4, 4]) self.assertIs(C().method(), C) def test_references_super(self): code = """ res = [super for x in [1]] """ self._check_in_scopes(code, outputs={"res": [super]}) def test_references___class__(self): code = """ res = [__class__ for x in [1]] """ self._check_in_scopes(code, raises=NameError) def test_references___class___defined(self): code = """ __class__ = 2 res = [__class__ for x in [1]] """ self._check_in_scopes( code, outputs={"res": [2]}, scopes=["module", "function"]) self._check_in_scopes(code, raises=NameError, scopes=["class"]) def test_references___class___enclosing(self): code = """ __class__ = 2 class C: res = [__class__ for x in [1]] res = C.res """ self._check_in_scopes(code, raises=NameError) def test_super_and_class_cell_in_sibling_comps(self): code = """ [super for _ in [1]] [__class__ for _ in [1]] """ self._check_in_scopes(code, raises=NameError) def test_inner_cell_shadows_outer(self): code = """ items = [(lambda: i) for i in range(5)] i = 20 y = [x() for x in items] """ outputs = {"y": [4, 4, 4, 4, 4], "i": 20} self._check_in_scopes(code, outputs) def test_inner_cell_shadows_outer_no_store(self): code = """ def f(x): return [lambda: x for x in range(x)], x fns, x = f(2) y = [fn() for fn in fns] """ outputs = {"y": [1, 1], "x": 2} self._check_in_scopes(code, outputs) def test_closure_can_jump_over_comp_scope(self): code = """ items = [(lambda: y) for i in range(5)] y = 2 z = [x() for x in items] """ outputs = {"z": [2, 2, 2, 2, 2]} self._check_in_scopes(code, outputs, scopes=["module", "function"]) def test_cell_inner_free_outer(self): code = """ def f(): return [lambda: x for x in (x, [1])[1]] x = ... y = [fn() for fn in f()] """ outputs = {"y": [1]} self._check_in_scopes(code, outputs, scopes=["module", "function"]) def test_free_inner_cell_outer(self): code = """ g = 2 def f(): return g y = [g for x in [1]] """ outputs = {"y": [2]} self._check_in_scopes(code, outputs, scopes=["module", "function"]) self._check_in_scopes(code, scopes=["class"], raises=NameError) def test_inner_cell_shadows_outer_redefined(self): code = """ y = 10 items = [(lambda: y) for y in range(5)] x = y y = 20 out = [z() for z in items] """ outputs = {"x": 10, "out": [4, 4, 4, 4, 4]} self._check_in_scopes(code, outputs) def test_shadows_outer_cell(self): code = """ def inner(): return g [g for g in range(5)] x = inner() """ outputs = {"x": -1} self._check_in_scopes(code, outputs, ns={"g": -1}) def test_explicit_global(self): code = """ global g x = g g = 2 items = [g for g in [1]] y = g """ outputs = {"x": 1, "y": 2, "items": [1]} self._check_in_scopes(code, outputs, ns={"g": 1}) def test_explicit_global_2(self): code = """ global g x = g g = 2 items = [g for x in [1]] y = g """ outputs = {"x": 1, "y": 2, "items": [2]} self._check_in_scopes(code, outputs, ns={"g": 1}) def test_explicit_global_3(self): code = """ global g fns = [lambda: g for g in [2]] items = [fn() for fn in fns] """ outputs = {"items": [2]} self._check_in_scopes(code, outputs, ns={"g": 1}) def test_assignment_expression(self): code = """ x = -1 items = [(x:=y) for y in range(3)] """ outputs = {"x": 2} # assignment expression in comprehension is disallowed in class scope self._check_in_scopes(code, outputs, scopes=["module", "function"]) def test_free_var_in_comp_child(self): code = """ lst = range(3) funcs = [lambda: x for x in lst] inc = [x + 1 for x in lst] [x for x in inc] x = funcs[0]() """ outputs = {"x": 2} self._check_in_scopes(code, outputs) def test_shadow_with_free_and_local(self): code = """ lst = range(3) x = -1 funcs = [lambda: x for x in lst] items = [x + 1 for x in lst] """ outputs = {"x": -1} self._check_in_scopes(code, outputs) def test_shadow_comp_iterable_name(self): code = """ x = [1] y = [x for x in x] """ outputs = {"x": [1]} self._check_in_scopes(code, outputs) def test_nested_free(self): code = """ x = 1 def g(): [x for x in range(3)] return x g() """ outputs = {"x": 1} self._check_in_scopes(code, outputs, scopes=["module", "function"]) def test_introspecting_frame_locals(self): code = """ import sys [i for i in range(2)] i = 20 sys._getframe().f_locals """ outputs = {"i": 20} self._check_in_scopes(code, outputs) def test_nested(self): code = """ l = [2, 3] y = [[x ** 2 for x in range(x)] for x in l] """ outputs = {"y": [[0, 1], [0, 1, 4]]} self._check_in_scopes(code, outputs) def test_nested_2(self): code = """ l = [1, 2, 3] x = 3 y = [x for [x ** x for x in range(x)][x - 1] in l] """ outputs = {"y": [3, 3, 3]} self._check_in_scopes(code, outputs, scopes=["module", "function"]) self._check_in_scopes(code, scopes=["class"], raises=NameError) def test_nested_3(self): code = """ l = [(1, 2), (3, 4), (5, 6)] y = [x for (x, [x ** x for x in range(x)][x - 1]) in l] """ outputs = {"y": [1, 3, 5]} self._check_in_scopes(code, outputs) def test_nested_4(self): code = """ items = [([lambda: x for x in range(2)], lambda: x) for x in range(3)] out = [([fn() for fn in fns], fn()) for fns, fn in items] """ outputs = {"out": [([1, 1], 2), ([1, 1], 2), ([1, 1], 2)]} self._check_in_scopes(code, outputs) def test_nameerror(self): code = """ [x for x in [1]] x """ self._check_in_scopes(code, raises=NameError) def test_dunder_name(self): code = """ y = [__x for __x in [1]] """ outputs = {"y": [1]} self._check_in_scopes(code, outputs) def test_unbound_local_after_comprehension(self): def f(): if False: x = 0 [x for x in [1]] return x with self.assertRaises(UnboundLocalError): f() def test_unbound_local_inside_comprehension(self): def f(): l = [None] return [1 for (l[0], l) in [[1, 2]]] with self.assertRaises(UnboundLocalError): f() def test_global_outside_cellvar_inside_plus_freevar(self): code = """ a = 1 def f(): func, = [(lambda: b) for b in [a]] return b, func() x = f() """ self._check_in_scopes( code, {"x": (2, 1)}, ns={"b": 2}, scopes=["function", "module"]) # inside a class, the `a = 1` assignment is not visible self._check_in_scopes(code, raises=NameError, scopes=["class"]) def test_cell_in_nested_comprehension(self): code = """ a = 1 def f(): (func, inner_b), = [[lambda: b for b in c] + [b] for c in [[a]]] return b, inner_b, func() x = f() """ self._check_in_scopes( code, {"x": (2, 2, 1)}, ns={"b": 2}, scopes=["function", "module"]) # inside a class, the `a = 1` assignment is not visible self._check_in_scopes(code, raises=NameError, scopes=["class"]) def test_name_error_in_class_scope(self): code = """ y = 1 [x + y for x in range(2)] """ self._check_in_scopes(code, raises=NameError, scopes=["class"]) def test_global_in_class_scope(self): code = """ y = 2 vals = [(x, y) for x in range(2)] """ outputs = {"vals": [(0, 1), (1, 1)]} self._check_in_scopes(code, outputs, ns={"y": 1}, scopes=["class"]) def test_in_class_scope_inside_function_1(self): code = """ class C: y = 2 vals = [(x, y) for x in range(2)] vals = C.vals """ outputs = {"vals": [(0, 1), (1, 1)]} self._check_in_scopes(code, outputs, ns={"y": 1}, scopes=["function"]) def test_in_class_scope_inside_function_2(self): code = """ y = 1 class C: y = 2 vals = [(x, y) for x in range(2)] vals = C.vals """ outputs = {"vals": [(0, 1), (1, 1)]} self._check_in_scopes(code, outputs, scopes=["function"]) def test_in_class_scope_with_global(self): code = """ y = 1 class C: global y y = 2 # Ensure the listcomp uses the global, not the value in the # class namespace locals()['y'] = 3 vals = [(x, y) for x in range(2)] vals = C.vals """ outputs = {"vals": [(0, 2), (1, 2)]} self._check_in_scopes(code, outputs, scopes=["module", "class"]) outputs = {"vals": [(0, 1), (1, 1)]} self._check_in_scopes(code, outputs, scopes=["function"]) def test_in_class_scope_with_nonlocal(self): code = """ y = 1 class C: nonlocal y y = 2 # Ensure the listcomp uses the global, not the value in the # class namespace locals()['y'] = 3 vals = [(x, y) for x in range(2)] vals = C.vals """ outputs = {"vals": [(0, 2), (1, 2)]} self._check_in_scopes(code, outputs, scopes=["function"]) def test_nested_has_free_var(self): code = """ items = [a for a in [1] if [a for _ in [0]]] """ outputs = {"items": [1]} self._check_in_scopes(code, outputs, scopes=["class"]) def test_nested_free_var_not_bound_in_outer_comp(self): code = """ z = 1 items = [a for a in [1] if [x for x in [1] if z]] """ self._check_in_scopes(code, {"items": [1]}, scopes=["module", "function"]) self._check_in_scopes(code, {"items": []}, ns={"z": 0}, scopes=["class"]) def test_nested_free_var_in_iter(self): code = """ items = [_C for _C in [1] for [0, 1][[x for x in [1] if _C][0]] in [2]] """ self._check_in_scopes(code, {"items": [1]}) def test_nested_free_var_in_expr(self): code = """ items = [(_C, [x for x in [1] if _C]) for _C in [0, 1]] """ self._check_in_scopes(code, {"items": [(0, []), (1, [1])]}) def test_nested_listcomp_in_lambda(self): code = """ f = [(z, lambda y: [(x, y, z) for x in [3]]) for z in [1]] (z, func), = f out = func(2) """ self._check_in_scopes(code, {"z": 1, "out": [(3, 2, 1)]}) def test_lambda_in_iter(self): code = """ (func, c), = [(a, b) for b in [1] for a in [lambda : a]] d = func() assert d is func # must use "a" in this scope e = a if False else None """ self._check_in_scopes(code, {"c": 1, "e": None}) def test_assign_to_comp_iter_var_in_outer_function(self): code = """ a = [1 for a in [0]] """ self._check_in_scopes(code, {"a": [1]}, scopes=["function"]) def test_no_leakage_to_locals(self): code = """ def b(): [a for b in [1] for _ in []] return b, locals() r, s = b() x = r is b y = list(s.keys()) """ self._check_in_scopes(code, {"x": True, "y": []}, scopes=["module"]) self._check_in_scopes(code, {"x": True, "y": ["b"]}, scopes=["function"]) self._check_in_scopes(code, raises=NameError, scopes=["class"]) def test_iter_var_available_in_locals(self): code = """ l = [1, 2] y = 0 items = [locals()["x"] for x in l] items2 = [vars()["x"] for x in l] items3 = [("x" in dir()) for x in l] items4 = [eval("x") for x in l] # x is available, and does not overwrite y [exec("y = x") for x in l] """ self._check_in_scopes( code, { "items": [1, 2], "items2": [1, 2], "items3": [True, True], "items4": [1, 2], "y": 0 } ) def test_comp_in_try_except(self): template = """ value = ["ab"] result = snapshot = None try: result = [{func}(value) for value in value] except: snapshot = value raise """ # No exception. code = template.format(func='len') self._check_in_scopes(code, {"value": ["ab"], "result": [2], "snapshot": None}) # Handles exception. code = template.format(func='int') self._check_in_scopes(code, {"value": ["ab"], "result": None, "snapshot": ["ab"]}, raises=ValueError) def test_comp_in_try_finally(self): template = """ value = ["ab"] result = snapshot = None try: result = [{func}(value) for value in value] finally: snapshot = value """ # No exception. code = template.format(func='len') self._check_in_scopes(code, {"value": ["ab"], "result": [2], "snapshot": ["ab"]}) # Handles exception. code = template.format(func='int') self._check_in_scopes(code, {"value": ["ab"], "result": None, "snapshot": ["ab"]}, raises=ValueError) def test_exception_in_post_comp_call(self): code = """ value = [1, None] try: [v for v in value].sort() except: pass """ self._check_in_scopes(code, {"value": [1, None]}) def test_frame_locals(self): code = """ val = [sys._getframe().f_locals for a in [0]][0]["a"] """ import sys self._check_in_scopes(code, {"val": 0}, ns={"sys": sys}) def _recursive_replace(self, maybe_code): if not isinstance(maybe_code, types.CodeType): return maybe_code return maybe_code.replace(co_consts=tuple( self._recursive_replace(c) for c in maybe_code.co_consts )) def _replacing_exec(self, code_string, ns): co = compile(code_string, "<string>", "exec") co = self._recursive_replace(co) exec(co, ns) def test_code_replace(self): code = """ x = 3 [x for x in (1, 2)] dir() y = [x] """ self._check_in_scopes(code, {"y": [3], "x": 3}) self._check_in_scopes(code, {"y": [3], "x": 3}, exec_func=self._replacing_exec) def test_code_replace_extended_arg(self): num_names = 300 assignments = "; ".join(f"x{i} = {i}" for i in range(num_names)) name_list = ", ".join(f"x{i}" for i in range(num_names)) expected = { "y": list(range(num_names)), **{f"x{i}": i for i in range(num_names)} } code = f""" {assignments} [({name_list}) for {name_list} in (range(300),)] dir() y = [{name_list}] """ self._check_in_scopes(code, expected) self._check_in_scopes(code, expected, exec_func=self._replacing_exec) def test_multiple_comprehension_name_reuse(self): code = """ [x for x in [1]] y = [x for _ in [1]] """ self._check_in_scopes(code, {"y": [3]}, ns={"x": 3}) code = """ x = 2 [x for x in [1]] y = [x for _ in [1]] """ self._check_in_scopes(code, {"x": 2, "y": [3]}, ns={"x": 3}, scopes=["class"]) self._check_in_scopes(code, {"x": 2, "y": [2]}, ns={"x": 3}, scopes=["function", "module"]) def test_name_collision_locals(self): # GH-130809: The existence of a hidden fast from list comprehension # should not cause frame.f_locals on module level to return a new dict # every time it is accessed. code = """ import sys frame = sys._getframe() f_locals = frame.f_locals foo = 1 [foo for foo in [0]] # calls _PyFrame_LocalsToFast which triggers the issue from abc import * same_f_locals = frame.f_locals is f_locals """ self._check_in_scopes(code, {"foo": 1, "same_f_locals": True}, scopes=["module"]) def test_exception_locations(self): # The location of an exception raised from __init__ or # __next__ should should be the iterator expression def init_raises(): try: [x for x in BrokenIter(init_raises=True)] except Exception as e: return e def next_raises(): try: [x for x in BrokenIter(next_raises=True)] except Exception as e: return e def iter_raises(): try: [x for x in BrokenIter(iter_raises=True)] except Exception as e: return e for func, expected in [(init_raises, "BrokenIter(init_raises=True)"), (next_raises, "BrokenIter(next_raises=True)"), (iter_raises, "BrokenIter(iter_raises=True)"), ]: with self.subTest(func): exc = func() f = traceback.extract_tb(exc.__traceback__)[0] indent = 16 co = func.__code__ self.assertEqual(f.lineno, co.co_firstlineno + 2) self.assertEqual(f.end_lineno, co.co_firstlineno + 2) self.assertEqual(f.line[f.colno - indent : f.end_colno - indent], expected) __test__ = {'doctests' : doctests} def load_tests(loader, tests, pattern): tests.addTest(doctest.DocTestSuite()) return tests if __name__ == "__main__": unittest.main()