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.216.198
Domains :
Cant Read [ /etc/named.conf ]
User : beriska1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
python39 /
lib64 /
python3.9 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
__pycache__
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
audiodata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
capath
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
cjkencodings
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
data
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
decimaltestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
dtracedata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
eintrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
encoded_modules
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
imghdrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
libregrtest
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
sndhdrdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
subprocessdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
support
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_asyncio
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_email
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_import
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_importlib
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_json
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_peg_generator
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_tools
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_warnings
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
test_zoneinfo
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
tracedmodules
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
xmltestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
ziptestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2025-06-03 22:17
__init__.py
47
B
-rw-r--r--
2025-06-03 22:17
__main__.py
41
B
-rw-r--r--
2025-06-03 22:17
_test_multiprocessing.py
187.16
KB
-rw-r--r--
2025-06-03 22:17
_typed_dict_helper.py
494
B
-rw-r--r--
2025-06-03 22:17
allsans.pem
9.87
KB
-rw-r--r--
2025-06-03 22:17
ann_module.py
1.08
KB
-rw-r--r--
2025-06-03 22:17
ann_module2.py
519
B
-rw-r--r--
2025-06-03 22:17
ann_module3.py
448
B
-rw-r--r--
2025-06-03 22:17
ann_module5.py
202
B
-rw-r--r--
2025-06-03 22:17
ann_module6.py
138
B
-rw-r--r--
2025-06-03 22:17
ann_module7.py
295
B
-rw-r--r--
2025-06-03 22:17
audiotest.au
27.48
KB
-rw-r--r--
2025-06-03 22:17
audiotests.py
12.1
KB
-rw-r--r--
2025-06-03 22:17
audit-tests.py
9.89
KB
-rw-r--r--
2025-06-03 22:17
autotest.py
209
B
-rw-r--r--
2025-06-03 22:17
bad_coding.py
24
B
-rw-r--r--
2025-06-03 22:17
bad_coding2.py
30
B
-rw-r--r--
2025-06-03 22:17
bad_getattr.py
61
B
-rw-r--r--
2025-06-03 22:17
bad_getattr2.py
77
B
-rw-r--r--
2025-06-03 22:17
bad_getattr3.py
139
B
-rw-r--r--
2025-06-03 22:17
badcert.pem
1.88
KB
-rw-r--r--
2025-06-03 22:17
badkey.pem
2.11
KB
-rw-r--r--
2025-06-03 22:17
badsyntax_3131.py
32
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future10.py
95
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future3.py
172
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future4.py
153
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future5.py
184
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future6.py
161
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future7.py
196
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future8.py
122
B
-rw-r--r--
2025-06-03 22:17
badsyntax_future9.py
142
B
-rw-r--r--
2025-06-03 22:17
badsyntax_pep3120.py
14
B
-rw-r--r--
2025-06-03 22:17
bisect_cmd.py
5.23
KB
-rwxr-xr-x
2025-06-03 22:17
cfgparser.1
67
B
-rw-r--r--
2025-06-03 22:17
cfgparser.2
19.02
KB
-rw-r--r--
2025-06-03 22:17
cfgparser.3
1.55
KB
-rw-r--r--
2025-06-03 22:17
clinic.test
94.64
KB
-rw-r--r--
2025-06-03 22:17
cmath_testcases.txt
141.05
KB
-rw-r--r--
2025-06-03 22:17
coding20731.py
22
B
-rw-r--r--
2025-06-03 22:17
curses_tests.py
1.22
KB
-rwxr-xr-x
2025-06-03 22:17
dataclass_module_1.py
837
B
-rw-r--r--
2025-06-03 22:17
dataclass_module_1_str.py
835
B
-rw-r--r--
2025-06-03 22:17
dataclass_module_2.py
756
B
-rw-r--r--
2025-06-03 22:17
dataclass_module_2_str.py
754
B
-rw-r--r--
2025-06-03 22:17
dataclass_textanno.py
126
B
-rw-r--r--
2025-06-03 22:17
datetimetester.py
245.6
KB
-rw-r--r--
2025-06-03 22:17
dis_module.py
76
B
-rw-r--r--
2025-06-03 22:17
doctest_aliases.py
240
B
-rw-r--r--
2025-06-03 22:17
double_const.py
1.18
KB
-rw-r--r--
2025-06-03 22:17
empty.vbs
70
B
-rw-r--r--
2025-06-03 22:17
exception_hierarchy.txt
1.78
KB
-rw-r--r--
2025-06-03 22:17
ffdh3072.pem
2.16
KB
-rw-r--r--
2025-06-03 22:17
final_a.py
411
B
-rw-r--r--
2025-06-03 22:17
final_b.py
411
B
-rw-r--r--
2025-06-03 22:17
floating_points.txt
15.92
KB
-rw-r--r--
2025-06-03 22:17
fork_wait.py
2.17
KB
-rw-r--r--
2025-06-03 22:17
formatfloat_testcases.txt
7.45
KB
-rw-r--r--
2025-06-03 22:17
future_test1.py
229
B
-rw-r--r--
2025-06-03 22:17
future_test2.py
149
B
-rw-r--r--
2025-06-03 22:17
gdb_sample.py
153
B
-rw-r--r--
2025-06-03 22:17
good_getattr.py
198
B
-rw-r--r--
2025-06-03 22:17
idnsans.pem
9.71
KB
-rw-r--r--
2025-06-03 22:17
ieee754.txt
3.21
KB
-rw-r--r--
2025-06-03 22:17
imp_dummy.py
63
B
-rw-r--r--
2025-06-03 22:17
inspect_fodder.py
1.88
KB
-rw-r--r--
2025-06-03 22:17
inspect_fodder2.py
3.38
KB
-rw-r--r--
2025-06-03 22:17
keycert.passwd.pem
4.13
KB
-rw-r--r--
2025-06-03 22:17
keycert.pem
3.96
KB
-rw-r--r--
2025-06-03 22:17
keycert2.pem
3.98
KB
-rw-r--r--
2025-06-03 22:17
keycert3.pem
9.23
KB
-rw-r--r--
2025-06-03 22:17
keycert4.pem
9.24
KB
-rw-r--r--
2025-06-03 22:17
keycertecc.pem
5.5
KB
-rw-r--r--
2025-06-03 22:17
list_tests.py
17.05
KB
-rw-r--r--
2025-06-03 22:17
lock_tests.py
30.08
KB
-rw-r--r--
2025-06-03 22:17
mailcap.txt
1.24
KB
-rw-r--r--
2025-06-03 22:17
make_ssl_certs.py
9.25
KB
-rw-r--r--
2025-06-03 22:17
mapping_tests.py
21.83
KB
-rw-r--r--
2025-06-03 22:17
math_testcases.txt
23.19
KB
-rw-r--r--
2025-06-03 22:17
memory_watchdog.py
859
B
-rw-r--r--
2025-06-03 22:17
mime.types
47.37
KB
-rw-r--r--
2025-06-03 22:17
mock_socket.py
3.7
KB
-rw-r--r--
2025-06-03 22:17
mod_generics_cache.py
1.13
KB
-rw-r--r--
2025-06-03 22:17
mp_fork_bomb.py
448
B
-rw-r--r--
2025-06-03 22:17
mp_preload.py
351
B
-rw-r--r--
2025-06-03 22:17
multibytecodec_support.py
14.17
KB
-rw-r--r--
2025-06-03 22:17
nokia.pem
1.88
KB
-rw-r--r--
2025-06-03 22:17
nosan.pem
7.54
KB
-rw-r--r--
2025-06-03 22:17
nullbytecert.pem
5.31
KB
-rw-r--r--
2025-06-03 22:17
nullcert.pem
0
B
-rw-r--r--
2025-06-03 22:17
pickletester.py
136.56
KB
-rw-r--r--
2025-06-03 22:17
profilee.py
2.97
KB
-rw-r--r--
2025-06-03 22:17
pstats.pck
65.05
KB
-rw-r--r--
2025-06-03 22:17
pycacert.pem
5.53
KB
-rw-r--r--
2025-06-03 22:17
pycakey.pem
2.43
KB
-rw-r--r--
2025-06-03 22:17
pyclbr_input.py
648
B
-rw-r--r--
2025-06-03 22:17
pydoc_mod.py
937
B
-rw-r--r--
2025-06-03 22:17
pydocfodder.py
6.18
KB
-rw-r--r--
2025-06-03 22:17
pythoninfo.py
22.21
KB
-rw-r--r--
2025-06-03 22:17
randv2_32.pck
7.34
KB
-rw-r--r--
2025-06-03 22:17
randv2_64.pck
7.19
KB
-rw-r--r--
2025-06-03 22:17
randv3.pck
7.82
KB
-rw-r--r--
2025-06-03 22:17
re_tests.py
25.94
KB
-rwxr-xr-x
2025-06-03 22:17
recursion.tar
516
B
-rw-r--r--
2025-06-03 22:17
regrtest.py
1.28
KB
-rwxr-xr-x
2025-06-03 22:17
relimport.py
27
B
-rw-r--r--
2025-06-03 22:17
reperf.py
538
B
-rw-r--r--
2025-06-03 22:17
revocation.crl
800
B
-rw-r--r--
2025-06-03 22:17
sample_doctest.py
1.02
KB
-rw-r--r--
2025-06-03 22:17
sample_doctest_no_docstrings.py
227
B
-rw-r--r--
2025-06-03 22:17
sample_doctest_no_doctests.py
269
B
-rw-r--r--
2025-06-03 22:17
secp384r1.pem
256
B
-rw-r--r--
2025-06-03 22:17
selfsigned_pythontestdotnet.pem
2.08
KB
-rw-r--r--
2025-06-03 22:17
seq_tests.py
14.87
KB
-rw-r--r--
2025-06-03 22:17
sgml_input.html
8.1
KB
-rw-r--r--
2025-06-03 22:17
signalinterproctester.py
2.74
KB
-rw-r--r--
2025-06-03 22:17
sortperf.py
4.69
KB
-rw-r--r--
2025-06-03 22:17
ssl_cert.pem
1.53
KB
-rw-r--r--
2025-06-03 22:17
ssl_key.passwd.pem
2.59
KB
-rw-r--r--
2025-06-03 22:17
ssl_key.pem
2.43
KB
-rw-r--r--
2025-06-03 22:17
ssl_servers.py
7.11
KB
-rw-r--r--
2025-06-03 22:17
ssltests.py
1.03
KB
-rw-r--r--
2025-06-03 22:17
string_tests.py
66.55
KB
-rw-r--r--
2025-06-03 22:17
talos-2019-0758.pem
1.3
KB
-rw-r--r--
2025-06-03 22:17
test___all__.py
4.5
KB
-rw-r--r--
2025-06-03 22:17
test___future__.py
2.36
KB
-rw-r--r--
2025-06-03 22:17
test__locale.py
7.83
KB
-rw-r--r--
2025-06-03 22:17
test__opcode.py
3.03
KB
-rw-r--r--
2025-06-03 22:17
test__osx_support.py
13.66
KB
-rw-r--r--
2025-06-03 22:17
test__xxsubinterpreters.py
79.01
KB
-rw-r--r--
2025-06-03 22:17
test_abc.py
19.38
KB
-rw-r--r--
2025-06-03 22:17
test_abstract_numbers.py
1.49
KB
-rw-r--r--
2025-06-03 22:17
test_aifc.py
17.7
KB
-rw-r--r--
2025-06-03 22:17
test_argparse.py
180.91
KB
-rw-r--r--
2025-06-03 22:17
test_array.py
51.67
KB
-rw-r--r--
2025-06-03 22:17
test_asdl_parser.py
4.14
KB
-rw-r--r--
2025-06-03 22:17
test_ast.py
98.84
KB
-rw-r--r--
2025-06-03 22:17
test_asyncgen.py
33.58
KB
-rw-r--r--
2025-06-03 22:17
test_asynchat.py
9.16
KB
-rw-r--r--
2025-06-03 22:17
test_asyncore.py
25.84
KB
-rw-r--r--
2025-06-03 22:17
test_atexit.py
5.81
KB
-rw-r--r--
2025-06-03 22:17
test_audioop.py
28.24
KB
-rw-r--r--
2025-06-03 22:17
test_audit.py
4.3
KB
-rw-r--r--
2025-06-03 22:17
test_augassign.py
7.68
KB
-rw-r--r--
2025-06-03 22:17
test_base64.py
29.88
KB
-rw-r--r--
2025-06-03 22:17
test_baseexception.py
6.86
KB
-rw-r--r--
2025-06-03 22:17
test_bdb.py
41.41
KB
-rw-r--r--
2025-06-03 22:17
test_bigaddrspace.py
2.83
KB
-rw-r--r--
2025-06-03 22:17
test_bigmem.py
44.78
KB
-rw-r--r--
2025-06-03 22:17
test_binascii.py
19.24
KB
-rw-r--r--
2025-06-03 22:17
test_binhex.py
1.96
KB
-rw-r--r--
2025-06-03 22:17
test_binop.py
14.14
KB
-rw-r--r--
2025-06-03 22:17
test_bisect.py
13.63
KB
-rw-r--r--
2025-06-03 22:17
test_bool.py
12.44
KB
-rw-r--r--
2025-06-03 22:17
test_buffer.py
160.27
KB
-rw-r--r--
2025-06-03 22:17
test_bufio.py
2.54
KB
-rw-r--r--
2025-06-03 22:17
test_builtin.py
81.01
KB
-rw-r--r--
2025-06-03 22:17
test_bytes.py
74.65
KB
-rw-r--r--
2025-06-03 22:17
test_bz2.py
36.95
KB
-rw-r--r--
2025-06-03 22:17
test_c_locale_coercion.py
18.92
KB
-rw-r--r--
2025-06-03 22:17
test_calendar.py
49.02
KB
-rw-r--r--
2025-06-03 22:17
test_call.py
24.09
KB
-rw-r--r--
2025-06-03 22:17
test_capi.py
36.9
KB
-rw-r--r--
2025-06-03 22:17
test_cgi.py
22.15
KB
-rw-r--r--
2025-06-03 22:17
test_cgitb.py
2.53
KB
-rw-r--r--
2025-06-03 22:17
test_charmapcodec.py
1.68
KB
-rw-r--r--
2025-06-03 22:17
test_check_c_globals.py
749
B
-rw-r--r--
2025-06-03 22:17
test_class.py
17.41
KB
-rw-r--r--
2025-06-03 22:17
test_clinic.py
21.51
KB
-rw-r--r--
2025-06-03 22:17
test_cmath.py
24.07
KB
-rw-r--r--
2025-06-03 22:17
test_cmd.py
6.1
KB
-rw-r--r--
2025-06-03 22:17
test_cmd_line.py
36.55
KB
-rw-r--r--
2025-06-03 22:17
test_cmd_line_script.py
32.47
KB
-rw-r--r--
2025-06-03 22:17
test_code.py
12.47
KB
-rw-r--r--
2025-06-03 22:17
test_code_module.py
5.51
KB
-rw-r--r--
2025-06-03 22:17
test_codeccallbacks.py
49.05
KB
-rw-r--r--
2025-06-03 22:17
test_codecencodings_cn.py
3.86
KB
-rw-r--r--
2025-06-03 22:17
test_codecencodings_hk.py
701
B
-rw-r--r--
2025-06-03 22:17
test_codecencodings_iso2022.py
3.65
KB
-rw-r--r--
2025-06-03 22:17
test_codecencodings_jp.py
4.79
KB
-rw-r--r--
2025-06-03 22:17
test_codecencodings_kr.py
2.96
KB
-rw-r--r--
2025-06-03 22:17
test_codecencodings_tw.py
681
B
-rw-r--r--
2025-06-03 22:17
test_codecmaps_cn.py
746
B
-rw-r--r--
2025-06-03 22:17
test_codecmaps_hk.py
386
B
-rw-r--r--
2025-06-03 22:17
test_codecmaps_jp.py
1.7
KB
-rw-r--r--
2025-06-03 22:17
test_codecmaps_kr.py
1.16
KB
-rw-r--r--
2025-06-03 22:17
test_codecmaps_tw.py
705
B
-rw-r--r--
2025-06-03 22:17
test_codecs.py
133.02
KB
-rw-r--r--
2025-06-03 22:17
test_codeop.py
8.25
KB
-rw-r--r--
2025-06-03 22:17
test_collections.py
90.13
KB
-rw-r--r--
2025-06-03 22:17
test_colorsys.py
3.83
KB
-rw-r--r--
2025-06-03 22:17
test_compare.py
3.74
KB
-rw-r--r--
2025-06-03 22:17
test_compile.py
37.61
KB
-rw-r--r--
2025-06-03 22:17
test_compileall.py
45.53
KB
-rw-r--r--
2025-06-03 22:17
test_complex.py
32.19
KB
-rw-r--r--
2025-06-03 22:17
test_concurrent_futures.py
54.11
KB
-rw-r--r--
2025-06-03 22:17
test_configparser.py
84.93
KB
-rw-r--r--
2025-06-03 22:17
test_contains.py
3.35
KB
-rw-r--r--
2025-06-03 22:17
test_context.py
30.63
KB
-rw-r--r--
2025-06-03 22:17
test_contextlib.py
33.66
KB
-rw-r--r--
2025-06-03 22:17
test_contextlib_async.py
16.19
KB
-rw-r--r--
2025-06-03 22:17
test_copy.py
26
KB
-rw-r--r--
2025-06-03 22:17
test_copyreg.py
4.39
KB
-rw-r--r--
2025-06-03 22:17
test_coroutines.py
62.89
KB
-rw-r--r--
2025-06-03 22:17
test_cprofile.py
6.33
KB
-rw-r--r--
2025-06-03 22:17
test_crashers.py
1.17
KB
-rw-r--r--
2025-06-03 22:17
test_crypt.py
4.14
KB
-rw-r--r--
2025-06-03 22:17
test_csv.py
49.03
KB
-rw-r--r--
2025-06-03 22:17
test_ctypes.py
184
B
-rw-r--r--
2025-06-03 22:17
test_curses.py
46.28
KB
-rw-r--r--
2025-06-03 22:17
test_dataclasses.py
109.4
KB
-rw-r--r--
2025-06-03 22:17
test_datetime.py
2.3
KB
-rw-r--r--
2025-06-03 22:17
test_dbm.py
6.07
KB
-rw-r--r--
2025-06-03 22:17
test_dbm_dumb.py
10.61
KB
-rw-r--r--
2025-06-03 22:17
test_dbm_gnu.py
6.22
KB
-rw-r--r--
2025-06-03 22:17
test_dbm_ndbm.py
5.05
KB
-rw-r--r--
2025-06-03 22:17
test_decimal.py
209.32
KB
-rw-r--r--
2025-06-03 22:17
test_decorators.py
10.92
KB
-rw-r--r--
2025-06-03 22:17
test_defaultdict.py
7.17
KB
-rw-r--r--
2025-06-03 22:17
test_deque.py
34.52
KB
-rw-r--r--
2025-06-03 22:17
test_descr.py
191.29
KB
-rw-r--r--
2025-06-03 22:17
test_descrtut.py
11.55
KB
-rw-r--r--
2025-06-03 22:17
test_devpoll.py
4.44
KB
-rw-r--r--
2025-06-03 22:17
test_dict.py
46.26
KB
-rw-r--r--
2025-06-03 22:17
test_dict_version.py
6.08
KB
-rw-r--r--
2025-06-03 22:17
test_dictcomps.py
5.15
KB
-rw-r--r--
2025-06-03 22:17
test_dictviews.py
13.49
KB
-rw-r--r--
2025-06-03 22:17
test_difflib.py
21.46
KB
-rw-r--r--
2025-06-03 22:17
test_difflib_expect.html
100.85
KB
-rw-r--r--
2025-06-03 22:17
test_dis.py
53.24
KB
-rw-r--r--
2025-06-03 22:17
test_distutils.py
424
B
-rw-r--r--
2025-06-03 22:17
test_doctest.py
99.28
KB
-rw-r--r--
2025-06-03 22:17
test_doctest.txt
300
B
-rw-r--r--
2025-06-03 22:17
test_doctest2.py
2.36
KB
-rw-r--r--
2025-06-03 22:17
test_doctest2.txt
392
B
-rw-r--r--
2025-06-03 22:17
test_doctest3.txt
82
B
-rw-r--r--
2025-06-03 22:17
test_doctest4.txt
244
B
-rw-r--r--
2025-06-03 22:17
test_docxmlrpc.py
8.67
KB
-rw-r--r--
2025-06-03 22:17
test_dtrace.py
5.14
KB
-rw-r--r--
2025-06-03 22:17
test_dynamic.py
4.29
KB
-rw-r--r--
2025-06-03 22:17
test_dynamicclassattribute.py
9.57
KB
-rw-r--r--
2025-06-03 22:17
test_eintr.py
1.32
KB
-rw-r--r--
2025-06-03 22:17
test_embed.py
51.47
KB
-rw-r--r--
2025-06-03 22:17
test_ensurepip.py
9.83
KB
-rw-r--r--
2025-06-03 22:17
test_enum.py
119.18
KB
-rw-r--r--
2025-06-03 22:17
test_enumerate.py
8.46
KB
-rw-r--r--
2025-06-03 22:17
test_eof.py
2.43
KB
-rw-r--r--
2025-06-03 22:17
test_epoll.py
9.14
KB
-rw-r--r--
2025-06-03 22:17
test_errno.py
1.04
KB
-rw-r--r--
2025-06-03 22:17
test_exception_hierarchy.py
7.43
KB
-rw-r--r--
2025-06-03 22:17
test_exception_variations.py
3.86
KB
-rw-r--r--
2025-06-03 22:17
test_exceptions.py
57.56
KB
-rw-r--r--
2025-06-03 22:17
test_extcall.py
14.05
KB
-rw-r--r--
2025-06-03 22:17
test_faulthandler.py
28.23
KB
-rw-r--r--
2025-06-03 22:17
test_fcntl.py
6.49
KB
-rw-r--r--
2025-06-03 22:17
test_file.py
11.67
KB
-rw-r--r--
2025-06-03 22:17
test_file_eintr.py
10.6
KB
-rw-r--r--
2025-06-03 22:17
test_filecmp.py
8.61
KB
-rw-r--r--
2025-06-03 22:17
test_fileinput.py
37.33
KB
-rw-r--r--
2025-06-03 22:17
test_fileio.py
19.88
KB
-rw-r--r--
2025-06-03 22:17
test_finalization.py
14.66
KB
-rw-r--r--
2025-06-03 22:17
test_float.py
65.49
KB
-rw-r--r--
2025-06-03 22:17
test_flufl.py
1.62
KB
-rw-r--r--
2025-06-03 22:17
test_fnmatch.py
6.77
KB
-rw-r--r--
2025-06-03 22:17
test_fork1.py
3.24
KB
-rw-r--r--
2025-06-03 22:17
test_format.py
23.9
KB
-rw-r--r--
2025-06-03 22:17
test_fractions.py
29.59
KB
-rw-r--r--
2025-06-03 22:17
test_frame.py
5.67
KB
-rw-r--r--
2025-06-03 22:17
test_frozen.py
943
B
-rw-r--r--
2025-06-03 22:17
test_fstring.py
51.38
KB
-rw-r--r--
2025-06-03 22:17
test_ftplib.py
41.75
KB
-rw-r--r--
2025-06-03 22:17
test_funcattrs.py
13.54
KB
-rw-r--r--
2025-06-03 22:17
test_functools.py
102.34
KB
-rw-r--r--
2025-06-03 22:17
test_future.py
12.97
KB
-rw-r--r--
2025-06-03 22:17
test_future3.py
490
B
-rw-r--r--
2025-06-03 22:17
test_future4.py
222
B
-rw-r--r--
2025-06-03 22:17
test_future5.py
510
B
-rw-r--r--
2025-06-03 22:17
test_gc.py
45.83
KB
-rw-r--r--
2025-06-03 22:17
test_gdb.py
42.54
KB
-rw-r--r--
2025-06-03 22:17
test_generator_stop.py
943
B
-rw-r--r--
2025-06-03 22:17
test_generators.py
63.49
KB
-rw-r--r--
2025-06-03 22:17
test_genericalias.py
14.98
KB
-rw-r--r--
2025-06-03 22:17
test_genericclass.py
9.28
KB
-rw-r--r--
2025-06-03 22:17
test_genericpath.py
21.69
KB
-rw-r--r--
2025-06-03 22:17
test_genexps.py
7.58
KB
-rw-r--r--
2025-06-03 22:17
test_getargs2.py
50
KB
-rw-r--r--
2025-06-03 22:17
test_getopt.py
6.75
KB
-rw-r--r--
2025-06-03 22:17
test_getpass.py
6.29
KB
-rw-r--r--
2025-06-03 22:17
test_gettext.py
41.38
KB
-rw-r--r--
2025-06-03 22:17
test_glob.py
13.03
KB
-rw-r--r--
2025-06-03 22:17
test_global.py
1.34
KB
-rw-r--r--
2025-06-03 22:17
test_grammar.py
60.61
KB
-rw-r--r--
2025-06-03 22:17
test_graphlib.py
8.34
KB
-rw-r--r--
2025-06-03 22:17
test_grp.py
3.54
KB
-rw-r--r--
2025-06-03 22:17
test_gzip.py
30.17
KB
-rw-r--r--
2025-06-03 22:17
test_hash.py
11.45
KB
-rw-r--r--
2025-06-03 22:17
test_hashlib.py
43.63
KB
-rw-r--r--
2025-06-03 22:17
test_heapq.py
16.4
KB
-rw-r--r--
2025-06-03 22:17
test_hmac.py
24.94
KB
-rw-r--r--
2025-06-03 22:17
test_html.py
4.23
KB
-rw-r--r--
2025-06-03 22:17
test_htmlparser.py
33.78
KB
-rw-r--r--
2025-06-03 22:17
test_http_cookiejar.py
78.17
KB
-rw-r--r--
2025-06-03 22:17
test_http_cookies.py
20.02
KB
-rw-r--r--
2025-06-03 22:17
test_httplib.py
78.02
KB
-rw-r--r--
2025-06-03 22:17
test_httpservers.py
54.67
KB
-rw-r--r--
2025-06-03 22:17
test_idle.py
1000
B
-rw-r--r--
2025-06-03 22:17
test_imaplib.py
41.66
KB
-rw-r--r--
2025-06-03 22:17
test_imghdr.py
4.66
KB
-rw-r--r--
2025-06-03 22:17
test_imp.py
17.73
KB
-rw-r--r--
2025-06-03 22:17
test_index.py
8.37
KB
-rw-r--r--
2025-06-03 22:17
test_inspect.py
156
KB
-rw-r--r--
2025-06-03 22:17
test_int.py
28.41
KB
-rw-r--r--
2025-06-03 22:17
test_int_literal.py
6.89
KB
-rw-r--r--
2025-06-03 22:17
test_io.py
166.66
KB
-rw-r--r--
2025-06-03 22:17
test_ioctl.py
3.2
KB
-rw-r--r--
2025-06-03 22:17
test_ipaddress.py
125.41
KB
-rw-r--r--
2025-06-03 22:17
test_isinstance.py
11.56
KB
-rw-r--r--
2025-06-03 22:17
test_iter.py
32.46
KB
-rw-r--r--
2025-06-03 22:17
test_iterlen.py
7.1
KB
-rw-r--r--
2025-06-03 22:17
test_itertools.py
101.47
KB
-rw-r--r--
2025-06-03 22:17
test_keyword.py
1.39
KB
-rw-r--r--
2025-06-03 22:17
test_keywordonlyarg.py
6.85
KB
-rw-r--r--
2025-06-03 22:17
test_kqueue.py
8.76
KB
-rw-r--r--
2025-06-03 22:17
test_largefile.py
9.94
KB
-rw-r--r--
2025-06-03 22:17
test_lib2to3.py
264
B
-rw-r--r--
2025-06-03 22:17
test_linecache.py
9.46
KB
-rw-r--r--
2025-06-03 22:17
test_list.py
7.98
KB
-rw-r--r--
2025-06-03 22:17
test_listcomps.py
4.17
KB
-rw-r--r--
2025-06-03 22:17
test_lltrace.py
1013
B
-rw-r--r--
2025-06-03 22:17
test_locale.py
23.82
KB
-rw-r--r--
2025-06-03 22:17
test_logging.py
189.27
KB
-rw-r--r--
2025-06-03 22:17
test_long.py
53.41
KB
-rw-r--r--
2025-06-03 22:17
test_longexp.py
233
B
-rw-r--r--
2025-06-03 22:17
test_lzma.py
87.94
KB
-rw-r--r--
2025-06-03 22:17
test_mailbox.py
91.56
KB
-rw-r--r--
2025-06-03 22:17
test_mailcap.py
10.03
KB
-rw-r--r--
2025-06-03 22:17
test_marshal.py
20.57
KB
-rw-r--r--
2025-06-03 22:17
test_math.py
87.4
KB
-rw-r--r--
2025-06-03 22:17
test_memoryio.py
31.48
KB
-rw-r--r--
2025-06-03 22:17
test_memoryview.py
17.78
KB
-rw-r--r--
2025-06-03 22:17
test_metaclass.py
6.21
KB
-rw-r--r--
2025-06-03 22:17
test_mimetypes.py
13.16
KB
-rw-r--r--
2025-06-03 22:17
test_minidom.py
68.07
KB
-rw-r--r--
2025-06-19 15:26
test_mmap.py
31.02
KB
-rw-r--r--
2025-06-03 22:17
test_module.py
10.22
KB
-rw-r--r--
2025-06-03 22:17
test_modulefinder.py
12.2
KB
-rw-r--r--
2025-06-03 22:17
test_msilib.py
5.03
KB
-rw-r--r--
2025-06-03 22:17
test_multibytecodec.py
14.99
KB
-rw-r--r--
2025-06-03 22:17
test_multiprocessing_fork.py
477
B
-rw-r--r--
2025-06-03 22:17
test_multiprocessing_forkserver.py
392
B
-rw-r--r--
2025-06-03 22:17
test_multiprocessing_main_handling.py
11.45
KB
-rw-r--r--
2025-06-03 22:17
test_multiprocessing_spawn.py
277
B
-rw-r--r--
2025-06-03 22:17
test_named_expressions.py
20.13
KB
-rw-r--r--
2025-06-03 22:17
test_netrc.py
5.96
KB
-rw-r--r--
2025-06-03 22:17
test_nis.py
1.13
KB
-rw-r--r--
2025-06-03 22:17
test_nntplib.py
62.38
KB
-rw-r--r--
2025-06-03 22:17
test_ntpath.py
44.37
KB
-rw-r--r--
2025-06-03 22:17
test_numeric_tower.py
7.18
KB
-rw-r--r--
2025-06-03 22:17
test_opcodes.py
3.61
KB
-rw-r--r--
2025-06-03 22:17
test_openpty.py
600
B
-rw-r--r--
2025-06-03 22:17
test_operator.py
23.9
KB
-rw-r--r--
2025-06-03 22:17
test_optparse.py
60.95
KB
-rw-r--r--
2025-06-03 22:17
test_ordered_dict.py
31.47
KB
-rw-r--r--
2025-06-03 22:17
test_os.py
159.48
KB
-rw-r--r--
2025-06-03 22:17
test_ossaudiodev.py
7.03
KB
-rw-r--r--
2025-06-03 22:17
test_osx_env.py
1.3
KB
-rw-r--r--
2025-06-03 22:17
test_parser.py
37.8
KB
-rw-r--r--
2025-06-03 22:17
test_pathlib.py
104.53
KB
-rw-r--r--
2025-06-03 22:17
test_pdb.py
60.3
KB
-rw-r--r--
2025-06-03 22:17
test_peepholer.py
20.22
KB
-rw-r--r--
2025-06-03 22:17
test_peg_parser.py
23.31
KB
-rw-r--r--
2025-06-03 22:17
test_pickle.py
18.96
KB
-rw-r--r--
2025-06-03 22:17
test_picklebuffer.py
4.96
KB
-rw-r--r--
2025-06-03 22:17
test_pickletools.py
4.34
KB
-rw-r--r--
2025-06-03 22:17
test_pipes.py
6.55
KB
-rw-r--r--
2025-06-03 22:17
test_pkg.py
9.59
KB
-rw-r--r--
2025-06-03 22:17
test_pkgutil.py
22.74
KB
-rw-r--r--
2025-06-03 22:17
test_platform.py
16.55
KB
-rw-r--r--
2025-06-03 22:17
test_plistlib.py
38.68
KB
-rw-r--r--
2025-06-03 22:17
test_poll.py
7.18
KB
-rw-r--r--
2025-06-03 22:17
test_popen.py
2
KB
-rw-r--r--
2025-06-03 22:17
test_poplib.py
17.36
KB
-rw-r--r--
2025-06-03 22:17
test_positional_only_arg.py
17.77
KB
-rw-r--r--
2025-06-03 22:17
test_posix.py
85.96
KB
-rw-r--r--
2025-06-03 22:17
test_posixpath.py
41.26
KB
-rw-r--r--
2025-06-03 22:17
test_pow.py
5.44
KB
-rw-r--r--
2025-06-03 22:17
test_pprint.py
45.34
KB
-rw-r--r--
2025-06-03 22:17
test_print.py
7.37
KB
-rw-r--r--
2025-06-03 22:17
test_profile.py
8.67
KB
-rw-r--r--
2025-06-03 22:17
test_property.py
9.45
KB
-rw-r--r--
2025-06-03 22:17
test_pstats.py
3.56
KB
-rw-r--r--
2025-06-03 22:17
test_pty.py
11.99
KB
-rw-r--r--
2025-06-03 22:17
test_pulldom.py
12.66
KB
-rw-r--r--
2025-06-03 22:17
test_pwd.py
4.17
KB
-rw-r--r--
2025-06-03 22:17
test_py_compile.py
10.85
KB
-rw-r--r--
2025-06-19 15:26
test_pyclbr.py
9.89
KB
-rw-r--r--
2025-06-03 22:17
test_pydoc.py
59.93
KB
-rw-r--r--
2025-06-03 22:17
test_pyexpat.py
28.42
KB
-rw-r--r--
2025-06-03 22:17
test_queue.py
20.42
KB
-rw-r--r--
2025-06-03 22:17
test_quopri.py
7.78
KB
-rw-r--r--
2025-06-03 22:17
test_raise.py
13.44
KB
-rw-r--r--
2025-06-03 22:17
test_random.py
51.57
KB
-rw-r--r--
2025-06-03 22:17
test_range.py
24.33
KB
-rw-r--r--
2025-06-03 22:17
test_re.py
111.78
KB
-rw-r--r--
2025-06-03 22:17
test_readline.py
13.29
KB
-rw-r--r--
2025-06-03 22:17
test_regrtest.py
47.82
KB
-rw-r--r--
2025-06-03 22:17
test_repl.py
3.96
KB
-rw-r--r--
2025-06-03 22:17
test_reprlib.py
15.12
KB
-rw-r--r--
2025-06-03 22:17
test_resource.py
6.96
KB
-rw-r--r--
2025-06-03 22:17
test_richcmp.py
11.91
KB
-rw-r--r--
2025-06-03 22:17
test_rlcompleter.py
7.1
KB
-rw-r--r--
2025-06-03 22:17
test_robotparser.py
10.83
KB
-rw-r--r--
2025-06-03 22:17
test_runpy.py
33.8
KB
-rw-r--r--
2025-06-03 22:17
test_sax.py
48.19
KB
-rw-r--r--
2025-06-03 22:17
test_sched.py
6.39
KB
-rw-r--r--
2025-06-03 22:17
test_scope.py
19.83
KB
-rw-r--r--
2025-06-03 22:17
test_script_helper.py
5.78
KB
-rw-r--r--
2025-06-03 22:17
test_secrets.py
4.28
KB
-rw-r--r--
2025-06-03 22:17
test_select.py
2.69
KB
-rw-r--r--
2025-06-03 22:17
test_selectors.py
18.23
KB
-rw-r--r--
2025-06-03 22:17
test_set.py
70.16
KB
-rw-r--r--
2025-06-03 22:17
test_setcomps.py
4.15
KB
-rw-r--r--
2025-06-03 22:17
test_shelve.py
5.96
KB
-rw-r--r--
2025-06-03 22:17
test_shlex.py
13.48
KB
-rw-r--r--
2025-06-03 22:17
test_shutil.py
104.25
KB
-rw-r--r--
2025-06-03 22:17
test_signal.py
48
KB
-rw-r--r--
2025-06-03 22:17
test_site.py
26.72
KB
-rw-r--r--
2025-06-03 22:17
test_slice.py
8.25
KB
-rw-r--r--
2025-06-03 22:17
test_smtpd.py
40.32
KB
-rw-r--r--
2025-06-03 22:17
test_smtplib.py
59.72
KB
-rw-r--r--
2025-06-03 22:17
test_smtpnet.py
2.94
KB
-rw-r--r--
2025-06-03 22:17
test_sndhdr.py
1.43
KB
-rw-r--r--
2025-06-03 22:17
test_socket.py
250.24
KB
-rw-r--r--
2025-06-03 22:17
test_socketserver.py
17.69
KB
-rw-r--r--
2025-06-03 22:17
test_sort.py
13.42
KB
-rw-r--r--
2025-06-03 22:17
test_source_encoding.py
8
KB
-rw-r--r--
2025-06-03 22:17
test_spwd.py
2.71
KB
-rw-r--r--
2025-06-03 22:17
test_sqlite.py
948
B
-rw-r--r--
2025-06-03 22:17
test_ssl.py
215.94
KB
-rw-r--r--
2025-06-03 22:17
test_startfile.py
1.29
KB
-rw-r--r--
2025-06-03 22:17
test_stat.py
8.3
KB
-rw-r--r--
2025-06-03 22:17
test_statistics.py
109.11
KB
-rw-r--r--
2025-06-03 22:17
test_strftime.py
7.54
KB
-rw-r--r--
2025-06-03 22:17
test_string.py
19.8
KB
-rw-r--r--
2025-06-03 22:17
test_string_literals.py
9.97
KB
-rw-r--r--
2025-06-03 22:17
test_stringprep.py
3.04
KB
-rw-r--r--
2025-06-03 22:17
test_strptime.py
34.42
KB
-rw-r--r--
2025-06-03 22:17
test_strtod.py
20.06
KB
-rw-r--r--
2025-06-03 22:17
test_struct.py
35.18
KB
-rw-r--r--
2025-06-03 22:17
test_structmembers.py
4.7
KB
-rw-r--r--
2025-06-03 22:17
test_structseq.py
3.87
KB
-rw-r--r--
2025-06-03 22:17
test_subclassinit.py
8.12
KB
-rw-r--r--
2025-06-03 22:17
test_subprocess.py
152.71
KB
-rw-r--r--
2025-06-03 22:17
test_sunau.py
5.98
KB
-rw-r--r--
2025-06-03 22:17
test_sundry.py
2.07
KB
-rw-r--r--
2025-06-03 22:17
test_super.py
9.6
KB
-rw-r--r--
2025-06-03 22:17
test_support.py
25.3
KB
-rw-r--r--
2025-06-03 22:17
test_symbol.py
2.06
KB
-rw-r--r--
2025-06-03 22:17
test_symtable.py
9.09
KB
-rw-r--r--
2025-06-03 22:17
test_syntax.py
34.08
KB
-rw-r--r--
2025-06-03 22:17
test_sys.py
55.28
KB
-rw-r--r--
2025-06-03 22:17
test_sys_setprofile.py
12.31
KB
-rw-r--r--
2025-06-03 22:17
test_sys_settrace.py
48.64
KB
-rw-r--r--
2025-06-03 22:17
test_sysconfig.py
17.01
KB
-rw-r--r--
2025-06-03 22:17
test_syslog.py
1.15
KB
-rw-r--r--
2025-06-03 22:17
test_tabnanny.py
13.41
KB
-rw-r--r--
2025-06-03 22:17
test_tarfile.py
165.71
KB
-rw-r--r--
2025-06-03 22:17
test_tcl.py
31.27
KB
-rw-r--r--
2025-06-03 22:17
test_telnetlib.py
12.75
KB
-rw-r--r--
2025-06-03 22:17
test_tempfile.py
59.32
KB
-rw-r--r--
2025-06-03 22:17
test_textwrap.py
38.84
KB
-rw-r--r--
2025-06-03 22:17
test_thread.py
8.42
KB
-rw-r--r--
2025-06-03 22:17
test_threadedtempfile.py
1.85
KB
-rw-r--r--
2025-06-03 22:17
test_threading.py
52.54
KB
-rw-r--r--
2025-06-03 22:17
test_threading_local.py
6.62
KB
-rw-r--r--
2025-06-03 22:17
test_threadsignals.py
10.06
KB
-rw-r--r--
2025-06-03 22:17
test_time.py
39.88
KB
-rw-r--r--
2025-06-03 22:17
test_timeit.py
14.8
KB
-rw-r--r--
2025-06-03 22:17
test_timeout.py
11.01
KB
-rw-r--r--
2025-06-03 22:17
test_tix.py
932
B
-rw-r--r--
2025-06-03 22:17
test_tk.py
501
B
-rw-r--r--
2025-06-03 22:17
test_tokenize.py
63.79
KB
-rw-r--r--
2025-06-03 22:17
test_trace.py
19.98
KB
-rw-r--r--
2025-06-03 22:17
test_traceback.py
49.59
KB
-rw-r--r--
2025-06-03 22:17
test_tracemalloc.py
39.12
KB
-rw-r--r--
2025-06-03 22:17
test_ttk_guionly.py
941
B
-rw-r--r--
2025-06-03 22:17
test_ttk_textonly.py
16.67
KB
-rw-r--r--
2025-06-03 22:17
test_tuple.py
18.85
KB
-rw-r--r--
2025-06-03 22:17
test_turtle.py
12.66
KB
-rw-r--r--
2025-06-03 22:17
test_type_comments.py
10.53
KB
-rw-r--r--
2025-06-03 22:17
test_typechecks.py
2.55
KB
-rw-r--r--
2025-06-03 22:17
test_types.py
59.86
KB
-rw-r--r--
2025-06-03 22:17
test_typing.py
140.02
KB
-rw-r--r--
2025-06-03 22:17
test_ucn.py
9.5
KB
-rw-r--r--
2025-06-03 22:17
test_unary.py
1.63
KB
-rw-r--r--
2025-06-03 22:17
test_unicode.py
135.54
KB
-rw-r--r--
2025-06-03 22:17
test_unicode_file.py
5.69
KB
-rw-r--r--
2025-06-03 22:17
test_unicode_file_functions.py
6.65
KB
-rw-r--r--
2025-06-03 22:17
test_unicode_identifiers.py
984
B
-rw-r--r--
2025-06-03 22:17
test_unicodedata.py
15.63
KB
-rw-r--r--
2025-06-03 22:17
test_unittest.py
226
B
-rw-r--r--
2025-06-03 22:17
test_univnewlines.py
3.83
KB
-rw-r--r--
2025-06-03 22:17
test_unpack.py
3.01
KB
-rw-r--r--
2025-06-03 22:17
test_unpack_ex.py
10.06
KB
-rw-r--r--
2025-06-03 22:17
test_unparse.py
18.23
KB
-rw-r--r--
2025-06-03 22:17
test_urllib.py
69.92
KB
-rw-r--r--
2025-06-03 22:17
test_urllib2.py
78.67
KB
-rw-r--r--
2025-06-03 22:17
test_urllib2_localnet.py
25.41
KB
-rw-r--r--
2025-06-03 22:17
test_urllib2net.py
12.7
KB
-rw-r--r--
2025-06-03 22:17
test_urllib_response.py
1.89
KB
-rw-r--r--
2025-06-03 22:17
test_urllibnet.py
9.28
KB
-rw-r--r--
2025-06-03 22:17
test_urlparse.py
74.6
KB
-rw-r--r--
2025-06-03 22:17
test_userdict.py
7.56
KB
-rw-r--r--
2025-06-03 22:17
test_userlist.py
1.97
KB
-rw-r--r--
2025-06-03 22:17
test_userstring.py
2.4
KB
-rw-r--r--
2025-06-03 22:17
test_utf8_mode.py
9.22
KB
-rw-r--r--
2025-06-03 22:17
test_utf8source.py
1.15
KB
-rw-r--r--
2025-06-03 22:17
test_uu.py
8.85
KB
-rw-r--r--
2025-06-03 22:17
test_uuid.py
39.95
KB
-rw-r--r--
2025-06-03 22:17
test_venv.py
25.64
KB
-rw-r--r--
2025-06-03 22:17
test_wait3.py
1.81
KB
-rw-r--r--
2025-06-03 22:17
test_wait4.py
1.16
KB
-rw-r--r--
2025-06-03 22:17
test_wave.py
6.53
KB
-rw-r--r--
2025-06-03 22:17
test_weakref.py
74.31
KB
-rw-r--r--
2025-06-03 22:17
test_weakset.py
15.42
KB
-rw-r--r--
2025-06-03 22:17
test_webbrowser.py
10.47
KB
-rw-r--r--
2025-06-03 22:17
test_winconsoleio.py
6.56
KB
-rw-r--r--
2025-06-03 22:17
test_winreg.py
21.27
KB
-rw-r--r--
2025-06-03 22:17
test_winsound.py
4.57
KB
-rw-r--r--
2025-06-03 22:17
test_with.py
25.99
KB
-rw-r--r--
2025-06-03 22:17
test_wsgiref.py
30.15
KB
-rw-r--r--
2025-06-03 22:17
test_xdrlib.py
2.17
KB
-rw-r--r--
2025-06-03 22:17
test_xml_dom_minicompat.py
4.18
KB
-rw-r--r--
2025-06-03 22:17
test_xml_etree.py
158.85
KB
-rw-r--r--
2025-06-03 22:17
test_xml_etree_c.py
8.46
KB
-rw-r--r--
2025-06-03 22:17
test_xmlrpc.py
57.56
KB
-rw-r--r--
2025-06-03 22:17
test_xmlrpc_net.py
954
B
-rw-r--r--
2025-06-03 22:17
test_xxtestfuzz.py
670
B
-rw-r--r--
2025-06-03 22:17
test_yield_from.py
30.01
KB
-rw-r--r--
2025-06-03 22:17
test_zipapp.py
15.92
KB
-rw-r--r--
2025-06-03 22:17
test_zipfile.py
123.16
KB
-rw-r--r--
2025-06-03 22:17
test_zipfile64.py
5.8
KB
-rw-r--r--
2025-06-03 22:17
test_zipimport.py
29.3
KB
-rw-r--r--
2025-06-03 22:17
test_zipimport_support.py
10.44
KB
-rw-r--r--
2025-06-03 22:17
test_zlib.py
34.73
KB
-rw-r--r--
2025-06-03 22:17
testcodec.py
1.02
KB
-rw-r--r--
2025-06-03 22:17
testtar.tar
425
KB
-rw-r--r--
2025-06-03 22:17
tf_inherit_check.py
714
B
-rw-r--r--
2025-06-03 22:17
time_hashlib.py
2.87
KB
-rw-r--r--
2025-06-03 22:17
tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt
443
B
-rw-r--r--
2025-06-03 22:17
tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt
302
B
-rw-r--r--
2025-06-03 22:17
tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt
421
B
-rw-r--r--
2025-06-03 22:17
tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt
326
B
-rw-r--r--
2025-06-03 22:17
tokenize_tests.txt
2.65
KB
-rw-r--r--
2025-06-03 22:17
win_console_handler.py
1.38
KB
-rw-r--r--
2025-06-03 22:17
xmltests.py
499
B
-rw-r--r--
2025-06-03 22:17
zip_cp437_header.zip
270
B
-rw-r--r--
2025-06-03 22:17
zipdir.zip
374
B
-rw-r--r--
2025-06-03 22:17
Save
Rename
import copy import warnings with warnings.catch_warnings(): warnings.filterwarnings('ignore', 'The parser module is deprecated', DeprecationWarning) import parser import pickle import unittest import operator import struct from test import support from test.support.script_helper import assert_python_failure from test.support.script_helper import assert_python_ok # # First, we test that we can generate trees from valid source fragments, # and that these valid trees are indeed allowed by the tree-loading side # of the parser module. # class RoundtripLegalSyntaxTestCase(unittest.TestCase): def roundtrip(self, f, s): st1 = f(s) t = st1.totuple() try: st2 = parser.sequence2st(t) except parser.ParserError as why: self.fail("could not roundtrip %r: %s" % (s, why)) self.assertEqual(t, st2.totuple(), "could not re-generate syntax tree") def check_expr(self, s): self.roundtrip(parser.expr, s) def test_flags_passed(self): # The unicode literals flags has to be passed from the parser to AST # generation. suite = parser.suite("from __future__ import unicode_literals; x = ''") code = suite.compile() scope = {} exec(code, {}, scope) self.assertIsInstance(scope["x"], str) def check_suite(self, s): self.roundtrip(parser.suite, s) def test_yield_statement(self): self.check_suite("def f(): yield 1") self.check_suite("def f(): yield") self.check_suite("def f(): x += yield") self.check_suite("def f(): x = yield 1") self.check_suite("def f(): x = y = yield 1") self.check_suite("def f(): x = yield") self.check_suite("def f(): x = y = yield") self.check_suite("def f(): 1 + (yield)*2") self.check_suite("def f(): (yield 1)*2") self.check_suite("def f(): return; yield 1") self.check_suite("def f(): yield 1; return") self.check_suite("def f(): yield from 1") self.check_suite("def f(): x = yield from 1") self.check_suite("def f(): f((yield from 1))") self.check_suite("def f(): yield 1; return 1") self.check_suite("def f():\n" " for x in range(30):\n" " yield x\n") self.check_suite("def f():\n" " if (yield):\n" " yield x\n") def test_await_statement(self): self.check_suite("async def f():\n await smth()") self.check_suite("async def f():\n foo = await smth()") self.check_suite("async def f():\n foo, bar = await smth()") self.check_suite("async def f():\n (await smth())") self.check_suite("async def f():\n foo((await smth()))") self.check_suite("async def f():\n await foo(); return 42") def test_async_with_statement(self): self.check_suite("async def f():\n async with 1: pass") self.check_suite("async def f():\n async with a as b, c as d: pass") def test_async_for_statement(self): self.check_suite("async def f():\n async for i in (): pass") self.check_suite("async def f():\n async for i, b in (): pass") def test_nonlocal_statement(self): self.check_suite("def f():\n" " x = 0\n" " def g():\n" " nonlocal x\n") self.check_suite("def f():\n" " x = y = 0\n" " def g():\n" " nonlocal x, y\n") def test_expressions(self): self.check_expr("foo(1)") self.check_expr("[1, 2, 3]") self.check_expr("[x**3 for x in range(20)]") self.check_expr("[x**3 for x in range(20) if x % 3]") self.check_expr("[x**3 for x in range(20) if x % 2 if x % 3]") self.check_expr("list(x**3 for x in range(20))") self.check_expr("list(x**3 for x in range(20) if x % 3)") self.check_expr("list(x**3 for x in range(20) if x % 2 if x % 3)") self.check_expr("foo(*args)") self.check_expr("foo(*args, **kw)") self.check_expr("foo(**kw)") self.check_expr("foo(key=value)") self.check_expr("foo(key=value, *args)") self.check_expr("foo(key=value, *args, **kw)") self.check_expr("foo(key=value, **kw)") self.check_expr("foo(a, b, c, *args)") self.check_expr("foo(a, b, c, *args, **kw)") self.check_expr("foo(a, b, c, **kw)") self.check_expr("foo(a, *args, keyword=23)") self.check_expr("foo + bar") self.check_expr("foo - bar") self.check_expr("foo * bar") self.check_expr("foo / bar") self.check_expr("foo // bar") self.check_expr("(foo := 1)") self.check_expr("lambda: 0") self.check_expr("lambda x: 0") self.check_expr("lambda *y: 0") self.check_expr("lambda *y, **z: 0") self.check_expr("lambda **z: 0") self.check_expr("lambda x, y: 0") self.check_expr("lambda foo=bar: 0") self.check_expr("lambda foo=bar, spaz=nifty+spit: 0") self.check_expr("lambda foo=bar, **z: 0") self.check_expr("lambda foo=bar, blaz=blat+2, **z: 0") self.check_expr("lambda foo=bar, blaz=blat+2, *y, **z: 0") self.check_expr("lambda x, *y, **z: 0") self.check_expr("(x for x in range(10))") self.check_expr("foo(x for x in range(10))") self.check_expr("...") self.check_expr("a[...]") def test_simple_expression(self): # expr_stmt self.check_suite("a") def test_simple_assignments(self): self.check_suite("a = b") self.check_suite("a = b = c = d = e") def test_var_annot(self): self.check_suite("x: int = 5") self.check_suite("y: List[T] = []; z: [list] = fun()") self.check_suite("x: tuple = (1, 2)") self.check_suite("d[f()]: int = 42") self.check_suite("f(d[x]): str = 'abc'") self.check_suite("x.y.z.w: complex = 42j") self.check_suite("x: int") self.check_suite("def f():\n" " x: str\n" " y: int = 5\n") self.check_suite("class C:\n" " x: str\n" " y: int = 5\n") self.check_suite("class C:\n" " def __init__(self, x: int) -> None:\n" " self.x: int = x\n") # double check for nonsense with self.assertRaises(SyntaxError): exec("2+2: int", {}, {}) with self.assertRaises(SyntaxError): exec("[]: int = 5", {}, {}) with self.assertRaises(SyntaxError): exec("x, *y, z: int = range(5)", {}, {}) with self.assertRaises(SyntaxError): exec("x: int = 1, y = 2", {}, {}) with self.assertRaises(SyntaxError): exec("u = v: int", {}, {}) with self.assertRaises(SyntaxError): exec("False: int", {}, {}) with self.assertRaises(SyntaxError): exec("x.False: int", {}, {}) with self.assertRaises(SyntaxError): exec("x.y,: int", {}, {}) with self.assertRaises(SyntaxError): exec("[0]: int", {}, {}) with self.assertRaises(SyntaxError): exec("f(): int", {}, {}) def test_simple_augmented_assignments(self): self.check_suite("a += b") self.check_suite("a -= b") self.check_suite("a *= b") self.check_suite("a /= b") self.check_suite("a //= b") self.check_suite("a %= b") self.check_suite("a &= b") self.check_suite("a |= b") self.check_suite("a ^= b") self.check_suite("a <<= b") self.check_suite("a >>= b") self.check_suite("a **= b") def test_function_defs(self): self.check_suite("def f(): pass") self.check_suite("def f(*args): pass") self.check_suite("def f(*args, **kw): pass") self.check_suite("def f(**kw): pass") self.check_suite("def f(foo=bar): pass") self.check_suite("def f(foo=bar, *args): pass") self.check_suite("def f(foo=bar, *args, **kw): pass") self.check_suite("def f(foo=bar, **kw): pass") self.check_suite("def f(a, b): pass") self.check_suite("def f(a, b, *args): pass") self.check_suite("def f(a, b, *args, **kw): pass") self.check_suite("def f(a, b, **kw): pass") self.check_suite("def f(a, b, foo=bar): pass") self.check_suite("def f(a, b, foo=bar, *args): pass") self.check_suite("def f(a, b, foo=bar, *args, **kw): pass") self.check_suite("def f(a, b, foo=bar, **kw): pass") self.check_suite("@staticmethod\n" "def f(): pass") self.check_suite("@staticmethod\n" "@funcattrs(x, y)\n" "def f(): pass") self.check_suite("@funcattrs()\n" "def f(): pass") self.check_suite("@False or x\n" "def f(): pass") self.check_suite("@d := x\n" "def f(): pass") self.check_suite("@lambda f: x(f)\n" "def f(): pass") self.check_suite("@[..., x, ...][1]\n" "def f(): pass") self.check_suite("@x(x)(x)\n" "def f(): pass") self.check_suite("@(x, x)\n" "def f(): pass") self.check_suite("@...\n" "def f(): pass") self.check_suite("@None\n" "def f(): pass") self.check_suite("@w @(x @y) @(z)\n" "def f(): pass") self.check_suite("@w[x].y.z\n" "def f(): pass") # keyword-only arguments self.check_suite("def f(*, a): pass") self.check_suite("def f(*, a = 5): pass") self.check_suite("def f(*, a = 5, b): pass") self.check_suite("def f(*, a, b = 5): pass") self.check_suite("def f(*, a, b = 5, **kwds): pass") self.check_suite("def f(*args, a): pass") self.check_suite("def f(*args, a = 5): pass") self.check_suite("def f(*args, a = 5, b): pass") self.check_suite("def f(*args, a, b = 5): pass") self.check_suite("def f(*args, a, b = 5, **kwds): pass") # positional-only arguments self.check_suite("def f(a, /): pass") self.check_suite("def f(a, /,): pass") self.check_suite("def f(a, b, /): pass") self.check_suite("def f(a, b, /, c): pass") self.check_suite("def f(a, b, /, c = 6): pass") self.check_suite("def f(a, b, /, c, *, d): pass") self.check_suite("def f(a, b, /, c = 1, *, d): pass") self.check_suite("def f(a, b, /, c, *, d = 1): pass") self.check_suite("def f(a, b=1, /, c=2, *, d = 3): pass") self.check_suite("def f(a=0, b=1, /, c=2, *, d = 3): pass") # function annotations self.check_suite("def f(a: int): pass") self.check_suite("def f(a: int = 5): pass") self.check_suite("def f(*args: list): pass") self.check_suite("def f(**kwds: dict): pass") self.check_suite("def f(*, a: int): pass") self.check_suite("def f(*, a: int = 5): pass") self.check_suite("def f() -> int: pass") def test_class_defs(self): self.check_suite("class foo():pass") self.check_suite("class foo(object):pass") self.check_suite("@class_decorator\n" "class foo():pass") self.check_suite("@class_decorator(arg)\n" "class foo():pass") self.check_suite("@decorator1\n" "@decorator2\n" "class foo():pass") self.check_suite("@False or x\n" "class C: pass") self.check_suite("@d := x\n" "class C: pass") self.check_suite("@lambda f: x(f)\n" "class C: pass") self.check_suite("@[..., x, ...][1]\n" "class C: pass") self.check_suite("@x(x)(x)\n" "class C: pass") self.check_suite("@(x, x)\n" "class C: pass") self.check_suite("@...\n" "class C: pass") self.check_suite("@None\n" "class C: pass") self.check_suite("@w @(x @y) @(z)\n" "class C: pass") self.check_suite("@w[x].y.z\n" "class C: pass") def test_import_from_statement(self): self.check_suite("from sys.path import *") self.check_suite("from sys.path import dirname") self.check_suite("from sys.path import (dirname)") self.check_suite("from sys.path import (dirname,)") self.check_suite("from sys.path import dirname as my_dirname") self.check_suite("from sys.path import (dirname as my_dirname)") self.check_suite("from sys.path import (dirname as my_dirname,)") self.check_suite("from sys.path import dirname, basename") self.check_suite("from sys.path import (dirname, basename)") self.check_suite("from sys.path import (dirname, basename,)") self.check_suite( "from sys.path import dirname as my_dirname, basename") self.check_suite( "from sys.path import (dirname as my_dirname, basename)") self.check_suite( "from sys.path import (dirname as my_dirname, basename,)") self.check_suite( "from sys.path import dirname, basename as my_basename") self.check_suite( "from sys.path import (dirname, basename as my_basename)") self.check_suite( "from sys.path import (dirname, basename as my_basename,)") self.check_suite("from .bogus import x") def test_basic_import_statement(self): self.check_suite("import sys") self.check_suite("import sys as system") self.check_suite("import sys, math") self.check_suite("import sys as system, math") self.check_suite("import sys, math as my_math") def test_relative_imports(self): self.check_suite("from . import name") self.check_suite("from .. import name") # check all the way up to '....', since '...' is tokenized # differently from '.' (it's an ellipsis token). self.check_suite("from ... import name") self.check_suite("from .... import name") self.check_suite("from .pkg import name") self.check_suite("from ..pkg import name") self.check_suite("from ...pkg import name") self.check_suite("from ....pkg import name") def test_pep263(self): self.check_suite("# -*- coding: iso-8859-1 -*-\n" "pass\n") def test_assert(self): self.check_suite("assert alo < ahi and blo < bhi\n") def test_with(self): self.check_suite("with open('x'): pass\n") self.check_suite("with open('x') as f: pass\n") self.check_suite("with open('x') as f, open('y') as g: pass\n") def test_try_stmt(self): self.check_suite("try: pass\nexcept: pass\n") self.check_suite("try: pass\nfinally: pass\n") self.check_suite("try: pass\nexcept A: pass\nfinally: pass\n") self.check_suite("try: pass\nexcept A: pass\nexcept: pass\n" "finally: pass\n") self.check_suite("try: pass\nexcept: pass\nelse: pass\n") self.check_suite("try: pass\nexcept: pass\nelse: pass\n" "finally: pass\n") def test_if_stmt(self): self.check_suite("if True:\n pass\nelse:\n pass\n") self.check_suite("if True:\n pass\nelif True:\n pass\nelse:\n pass\n") def test_position(self): # An absolutely minimal test of position information. Better # tests would be a big project. code = "def f(x):\n return x + 1" st = parser.suite(code) def walk(tree): node_type = tree[0] next = tree[1] if isinstance(next, (tuple, list)): for elt in tree[1:]: for x in walk(elt): yield x else: yield tree expected = [ (1, 'def', 1, 0), (1, 'f', 1, 4), (7, '(', 1, 5), (1, 'x', 1, 6), (8, ')', 1, 7), (11, ':', 1, 8), (4, '', 1, 9), (5, '', 2, -1), (1, 'return', 2, 4), (1, 'x', 2, 11), (14, '+', 2, 13), (2, '1', 2, 15), (4, '', 2, 16), (6, '', 2, -1), (4, '', 2, -1), (0, '', 2, -1), ] self.assertEqual(list(walk(st.totuple(line_info=True, col_info=True))), expected) self.assertEqual(list(walk(st.totuple())), [(t, n) for t, n, l, c in expected]) self.assertEqual(list(walk(st.totuple(line_info=True))), [(t, n, l) for t, n, l, c in expected]) self.assertEqual(list(walk(st.totuple(col_info=True))), [(t, n, c) for t, n, l, c in expected]) self.assertEqual(list(walk(st.tolist(line_info=True, col_info=True))), [list(x) for x in expected]) self.assertEqual(list(walk(parser.st2tuple(st, line_info=True, col_info=True))), expected) self.assertEqual(list(walk(parser.st2list(st, line_info=True, col_info=True))), [list(x) for x in expected]) def test_extended_unpacking(self): self.check_suite("*a = y") self.check_suite("x, *b, = m") self.check_suite("[*a, *b] = y") self.check_suite("for [*x, b] in x: pass") def test_raise_statement(self): self.check_suite("raise\n") self.check_suite("raise e\n") self.check_suite("try:\n" " suite\n" "except Exception as e:\n" " raise ValueError from e\n") def test_list_displays(self): self.check_expr('[]') self.check_expr('[*{2}, 3, *[4]]') def test_set_displays(self): self.check_expr('{*{2}, 3, *[4]}') self.check_expr('{2}') self.check_expr('{2,}') self.check_expr('{2, 3}') self.check_expr('{2, 3,}') def test_dict_displays(self): self.check_expr('{}') self.check_expr('{a:b}') self.check_expr('{a:b,}') self.check_expr('{a:b, c:d}') self.check_expr('{a:b, c:d,}') self.check_expr('{**{}}') self.check_expr('{**{}, 3:4, **{5:6, 7:8}}') def test_argument_unpacking(self): self.check_expr("f(*a, **b)") self.check_expr('f(a, *b, *c, *d)') self.check_expr('f(**a, **b)') self.check_expr('f(2, *a, *b, **b, **c, **d)') self.check_expr("f(*b, *() or () and (), **{} and {}, **() or {})") def test_set_comprehensions(self): self.check_expr('{x for x in seq}') self.check_expr('{f(x) for x in seq}') self.check_expr('{f(x) for x in seq if condition(x)}') def test_dict_comprehensions(self): self.check_expr('{x:x for x in seq}') self.check_expr('{x**2:x[3] for x in seq if condition(x)}') self.check_expr('{x:x for x in seq1 for y in seq2 if condition(x, y)}') def test_named_expressions(self): self.check_suite("(a := 1)") self.check_suite("(a := a)") self.check_suite("if (match := pattern.search(data)) is None: pass") self.check_suite("while match := pattern.search(f.read()): pass") self.check_suite("[y := f(x), y**2, y**3]") self.check_suite("filtered_data = [y for x in data if (y := f(x)) is None]") self.check_suite("(y := f(x))") self.check_suite("y0 = (y1 := f(x))") self.check_suite("foo(x=(y := f(x)))") self.check_suite("def foo(answer=(p := 42)): pass") self.check_suite("def foo(answer: (p := 42) = 5): pass") self.check_suite("lambda: (x := 1)") self.check_suite("(x := lambda: 1)") self.check_suite("(x := lambda: (y := 1))") # not in PEP self.check_suite("lambda line: (m := re.match(pattern, line)) and m.group(1)") self.check_suite("x = (y := 0)") self.check_suite("(z:=(y:=(x:=0)))") self.check_suite("(info := (name, phone, *rest))") self.check_suite("(x:=1,2)") self.check_suite("(total := total + tax)") self.check_suite("len(lines := f.readlines())") self.check_suite("foo(x := 3, cat='vector')") self.check_suite("foo(cat=(category := 'vector'))") self.check_suite("if any(len(longline := l) >= 100 for l in lines): print(longline)") self.check_suite( "if env_base := os.environ.get('PYTHONUSERBASE', None): return env_base" ) self.check_suite( "if self._is_special and (ans := self._check_nans(context=context)): return ans" ) self.check_suite("foo(b := 2, a=1)") self.check_suite("foo(b := 2, a=1)") self.check_suite("foo((b := 2), a=1)") self.check_suite("foo(c=(b := 2), a=1)") self.check_suite("{(x := C(i)).q: x for i in y}") # # Second, we take *invalid* trees and make sure we get ParserError # rejections for them. # class IllegalSyntaxTestCase(unittest.TestCase): def check_bad_tree(self, tree, label): try: parser.sequence2st(tree) except parser.ParserError: pass else: self.fail("did not detect invalid tree for %r" % label) def test_junk(self): # not even remotely valid: self.check_bad_tree((1, 2, 3), "<junk>") def test_illegal_terminal(self): tree = \ (257, (269, (270, (271, (277, (1,))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "too small items in terminal node") tree = \ (257, (269, (270, (271, (277, (1, b'pass'))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "non-string second item in terminal node") tree = \ (257, (269, (270, (271, (277, (1, 'pass', '0', 0))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "non-integer third item in terminal node") tree = \ (257, (269, (270, (271, (277, (1, 'pass', 0, 0))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "too many items in terminal node") def test_illegal_yield_1(self): # Illegal yield statement: def f(): return 1; yield 1 tree = \ (257, (264, (285, (259, (1, 'def'), (1, 'f'), (260, (7, '('), (8, ')')), (11, ':'), (291, (4, ''), (5, ''), (264, (265, (266, (272, (275, (1, 'return'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (264, (265, (266, (272, (276, (1, 'yield'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (4, ''))), (6, ''))))), (4, ''), (0, '')))) self.check_bad_tree(tree, "def f():\n return 1\n yield 1") def test_illegal_yield_2(self): # Illegal return in generator: def f(): return 1; yield 1 tree = \ (257, (264, (265, (266, (278, (1, 'from'), (281, (1, '__future__')), (1, 'import'), (279, (1, 'generators')))), (4, ''))), (264, (285, (259, (1, 'def'), (1, 'f'), (260, (7, '('), (8, ')')), (11, ':'), (291, (4, ''), (5, ''), (264, (265, (266, (272, (275, (1, 'return'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (264, (265, (266, (272, (276, (1, 'yield'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (4, ''))), (6, ''))))), (4, ''), (0, '')))) self.check_bad_tree(tree, "def f():\n return 1\n yield 1") def test_a_comma_comma_c(self): # Illegal input: a,,c tree = \ (258, (311, (290, (291, (292, (293, (295, (296, (297, (298, (299, (300, (301, (302, (303, (1, 'a')))))))))))))), (12, ','), (12, ','), (290, (291, (292, (293, (295, (296, (297, (298, (299, (300, (301, (302, (303, (1, 'c'))))))))))))))), (4, ''), (0, '')) self.check_bad_tree(tree, "a,,c") def test_illegal_operator(self): # Illegal input: a $= b tree = \ (257, (264, (265, (266, (267, (312, (291, (292, (293, (294, (296, (297, (298, (299, (300, (301, (302, (303, (304, (1, 'a'))))))))))))))), (268, (37, '$=')), (312, (291, (292, (293, (294, (296, (297, (298, (299, (300, (301, (302, (303, (304, (1, 'b'))))))))))))))))), (4, ''))), (0, '')) self.check_bad_tree(tree, "a $= b") def test_malformed_global(self): #doesn't have global keyword in ast tree = (257, (264, (265, (266, (282, (1, 'foo'))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "malformed global ast") def test_missing_import_source(self): # from import fred tree = \ (257, (268, (269, (270, (282, (284, (1, 'from'), (1, 'import'), (287, (285, (1, 'fred')))))), (4, ''))), (4, ''), (0, '')) self.check_bad_tree(tree, "from import fred") def test_illegal_encoding(self): # Illegal encoding declaration tree = \ (341, (257, (0, ''))) self.check_bad_tree(tree, "missed encoding") tree = \ (341, (257, (0, '')), b'iso-8859-1') self.check_bad_tree(tree, "non-string encoding") tree = \ (341, (257, (0, '')), '\udcff') with self.assertRaises(UnicodeEncodeError): parser.sequence2st(tree) def test_invalid_node_id(self): tree = (257, (269, (-7, ''))) self.check_bad_tree(tree, "negative node id") tree = (257, (269, (99, ''))) self.check_bad_tree(tree, "invalid token id") tree = (257, (269, (9999, (0, '')))) self.check_bad_tree(tree, "invalid symbol id") def test_ParserError_message(self): try: parser.sequence2st((257,(269,(257,(0,''))))) except parser.ParserError as why: self.assertIn("compound_stmt", str(why)) # Expected self.assertIn("file_input", str(why)) # Got class CompileTestCase(unittest.TestCase): # These tests are very minimal. :-( def test_compile_expr(self): st = parser.expr('2 + 3') code = parser.compilest(st) self.assertEqual(eval(code), 5) def test_compile_suite(self): st = parser.suite('x = 2; y = x + 3') code = parser.compilest(st) globs = {} exec(code, globs) self.assertEqual(globs['y'], 5) def test_compile_error(self): st = parser.suite('1 = 3 + 4') self.assertRaises(SyntaxError, parser.compilest, st) def test_compile_badunicode(self): st = parser.suite('a = "\\U12345678"') self.assertRaises(SyntaxError, parser.compilest, st) st = parser.suite('a = "\\u1"') self.assertRaises(SyntaxError, parser.compilest, st) def test_issue_9011(self): # Issue 9011: compilation of an unary minus expression changed # the meaning of the ST, so that a second compilation produced # incorrect results. st = parser.expr('-3') code1 = parser.compilest(st) self.assertEqual(eval(code1), -3) code2 = parser.compilest(st) self.assertEqual(eval(code2), -3) def test_compile_filename(self): st = parser.expr('a + 5') code = parser.compilest(st) self.assertEqual(code.co_filename, '<syntax-tree>') code = st.compile() self.assertEqual(code.co_filename, '<syntax-tree>') for filename in 'file.py', b'file.py': code = parser.compilest(st, filename) self.assertEqual(code.co_filename, 'file.py') code = st.compile(filename) self.assertEqual(code.co_filename, 'file.py') for filename in bytearray(b'file.py'), memoryview(b'file.py'): with self.assertWarns(DeprecationWarning): code = parser.compilest(st, filename) self.assertEqual(code.co_filename, 'file.py') with self.assertWarns(DeprecationWarning): code = st.compile(filename) self.assertEqual(code.co_filename, 'file.py') self.assertRaises(TypeError, parser.compilest, st, list(b'file.py')) self.assertRaises(TypeError, st.compile, list(b'file.py')) class ParserStackLimitTestCase(unittest.TestCase): """try to push the parser to/over its limits. see http://bugs.python.org/issue1881 for a discussion """ def _nested_expression(self, level): return "["*level+"]"*level def test_deeply_nested_list(self): # This has fluctuated between 99 levels in 2.x, down to 93 levels in # 3.7.X and back up to 99 in 3.8.X. Related to MAXSTACK size in Parser.h e = self._nested_expression(99) st = parser.expr(e) st.compile() def test_trigger_memory_error(self): e = self._nested_expression(100) rc, out, err = assert_python_failure('-Xoldparser', '-c', e) # parsing the expression will result in an error message # followed by a MemoryError (see #11963) self.assertIn(b's_push: parser stack overflow', err) self.assertIn(b'MemoryError', err) class STObjectTestCase(unittest.TestCase): """Test operations on ST objects themselves""" def test_comparisons(self): # ST objects should support order and equality comparisons st1 = parser.expr('2 + 3') st2 = parser.suite('x = 2; y = x + 3') st3 = parser.expr('list(x**3 for x in range(20))') st1_copy = parser.expr('2 + 3') st2_copy = parser.suite('x = 2; y = x + 3') st3_copy = parser.expr('list(x**3 for x in range(20))') # exercise fast path for object identity self.assertEqual(st1 == st1, True) self.assertEqual(st2 == st2, True) self.assertEqual(st3 == st3, True) # slow path equality self.assertEqual(st1, st1_copy) self.assertEqual(st2, st2_copy) self.assertEqual(st3, st3_copy) self.assertEqual(st1 == st2, False) self.assertEqual(st1 == st3, False) self.assertEqual(st2 == st3, False) self.assertEqual(st1 != st1, False) self.assertEqual(st2 != st2, False) self.assertEqual(st3 != st3, False) self.assertEqual(st1 != st1_copy, False) self.assertEqual(st2 != st2_copy, False) self.assertEqual(st3 != st3_copy, False) self.assertEqual(st2 != st1, True) self.assertEqual(st1 != st3, True) self.assertEqual(st3 != st2, True) # we don't particularly care what the ordering is; just that # it's usable and self-consistent self.assertEqual(st1 < st2, not (st2 <= st1)) self.assertEqual(st1 < st3, not (st3 <= st1)) self.assertEqual(st2 < st3, not (st3 <= st2)) self.assertEqual(st1 < st2, st2 > st1) self.assertEqual(st1 < st3, st3 > st1) self.assertEqual(st2 < st3, st3 > st2) self.assertEqual(st1 <= st2, st2 >= st1) self.assertEqual(st3 <= st1, st1 >= st3) self.assertEqual(st2 <= st3, st3 >= st2) # transitivity bottom = min(st1, st2, st3) top = max(st1, st2, st3) mid = sorted([st1, st2, st3])[1] self.assertTrue(bottom < mid) self.assertTrue(bottom < top) self.assertTrue(mid < top) self.assertTrue(bottom <= mid) self.assertTrue(bottom <= top) self.assertTrue(mid <= top) self.assertTrue(bottom <= bottom) self.assertTrue(mid <= mid) self.assertTrue(top <= top) # interaction with other types self.assertEqual(st1 == 1588.602459, False) self.assertEqual('spanish armada' != st2, True) self.assertRaises(TypeError, operator.ge, st3, None) self.assertRaises(TypeError, operator.le, False, st1) self.assertRaises(TypeError, operator.lt, st1, 1815) self.assertRaises(TypeError, operator.gt, b'waterloo', st2) def test_copy_pickle(self): sts = [ parser.expr('2 + 3'), parser.suite('x = 2; y = x + 3'), parser.expr('list(x**3 for x in range(20))') ] for st in sts: st_copy = copy.copy(st) self.assertEqual(st_copy.totuple(), st.totuple()) st_copy = copy.deepcopy(st) self.assertEqual(st_copy.totuple(), st.totuple()) for proto in range(pickle.HIGHEST_PROTOCOL+1): st_copy = pickle.loads(pickle.dumps(st, proto)) self.assertEqual(st_copy.totuple(), st.totuple()) check_sizeof = support.check_sizeof @support.cpython_only def test_sizeof(self): def XXXROUNDUP(n): if n <= 1: return n if n <= 128: return (n + 3) & ~3 return 1 << (n - 1).bit_length() basesize = support.calcobjsize('Piii') nodesize = struct.calcsize('hP3iP0h2i') def sizeofchildren(node): if node is None: return 0 res = 0 hasstr = len(node) > 1 and isinstance(node[-1], str) if hasstr: res += len(node[-1]) + 1 children = node[1:-1] if hasstr else node[1:] if children: res += XXXROUNDUP(len(children)) * nodesize for child in children: res += sizeofchildren(child) return res def check_st_sizeof(st): self.check_sizeof(st, basesize + nodesize + sizeofchildren(st.totuple())) check_st_sizeof(parser.expr('2 + 3')) check_st_sizeof(parser.expr('2 + 3 + 4')) check_st_sizeof(parser.suite('x = 2 + 3')) check_st_sizeof(parser.suite('')) check_st_sizeof(parser.suite('# -*- coding: utf-8 -*-')) check_st_sizeof(parser.expr('[' + '2,' * 1000 + ']')) # XXX tests for pickling and unpickling of ST objects should go here class OtherParserCase(unittest.TestCase): def test_two_args_to_expr(self): # See bug #12264 with self.assertRaises(TypeError): parser.expr("a", "b") class TestDeprecation(unittest.TestCase): def test_deprecation_message(self): code = "def f():\n import parser\n\nf()" rc, out, err = assert_python_ok('-c', code) self.assertIn(b'<string>:2: DeprecationWarning', err) if __name__ == "__main__": unittest.main()