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
/
lib64 /
python2.7 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
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
imghdrdata
[ 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-04-30 23:26
tracedmodules
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
xmltestdata
[ DIR ]
drwxr-xr-x
2026-05-01 04:20
185test.db
16
KB
-rw-r--r--
2024-04-10 08:28
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2024-04-10 08:28
__init__.py
47
B
-rw-r--r--
2024-04-10 08:28
__init__.pyc
124
B
-rw-r--r--
2024-04-10 08:28
__init__.pyo
124
B
-rw-r--r--
2024-04-10 08:28
__main__.py
55
B
-rw-r--r--
2024-04-10 08:28
__main__.pyc
210
B
-rw-r--r--
2024-04-10 08:28
__main__.pyo
210
B
-rw-r--r--
2024-04-10 08:28
_mock_backport.py
75.01
KB
-rw-r--r--
2024-04-10 08:28
_mock_backport.pyc
69.02
KB
-rw-r--r--
2024-04-10 08:28
_mock_backport.pyo
69.02
KB
-rw-r--r--
2024-04-10 08:28
allsans.pem
4.92
KB
-rw-r--r--
2024-04-10 08:28
audiotest.au
27.48
KB
-rw-r--r--
2024-04-10 08:28
audiotests.py
9.52
KB
-rw-r--r--
2024-04-10 08:28
audiotests.pyc
11
KB
-rw-r--r--
2024-04-10 08:28
audiotests.pyo
11
KB
-rw-r--r--
2024-04-10 08:28
autotest.py
211
B
-rw-r--r--
2024-04-10 08:28
autotest.pyc
198
B
-rw-r--r--
2024-04-10 08:28
autotest.pyo
198
B
-rw-r--r--
2024-04-10 08:28
bad_coding.py
24
B
-rw-r--r--
2024-04-10 08:28
bad_coding2.py
29
B
-rw-r--r--
2024-04-10 08:28
bad_coding3.py
65
B
-rw-r--r--
2024-04-10 08:28
badcert.pem
1.88
KB
-rw-r--r--
2024-04-10 08:28
badkey.pem
2.11
KB
-rw-r--r--
2024-04-10 08:28
badsyntax_future3.py
172
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future4.py
153
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future5.py
184
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future6.py
161
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future7.py
196
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future8.py
121
B
-rw-r--r--
2024-04-10 08:28
badsyntax_future9.py
141
B
-rw-r--r--
2024-04-10 08:28
badsyntax_nocaret.py
33
B
-rw-r--r--
2024-04-10 08:28
bisect_cmd.py
5.12
KB
-rwxr-xr-x
2024-04-10 08:28
bisect_cmd.pyc
5.42
KB
-rw-r--r--
2024-04-10 08:28
bisect_cmd.pyo
5.42
KB
-rw-r--r--
2024-04-10 08:28
cfgparser.1
21
B
-rw-r--r--
2024-04-10 08:28
cmath_testcases.txt
133.63
KB
-rw-r--r--
2024-04-10 08:28
curses_tests.py
1.21
KB
-rwxr-xr-x
2024-04-10 08:28
curses_tests.pyc
1.45
KB
-rw-r--r--
2024-04-10 08:28
curses_tests.pyo
1.45
KB
-rw-r--r--
2024-04-10 08:28
doctest_aliases.py
239
B
-rw-r--r--
2024-04-10 08:28
doctest_aliases.pyc
607
B
-rw-r--r--
2024-04-10 08:28
doctest_aliases.pyo
607
B
-rw-r--r--
2024-04-10 08:28
double_const.py
1.19
KB
-rw-r--r--
2024-04-10 08:28
double_const.pyc
755
B
-rw-r--r--
2024-04-10 08:28
double_const.pyo
687
B
-rw-r--r--
2024-04-10 08:28
empty.vbs
70
B
-rw-r--r--
2024-04-10 08:28
exception_hierarchy.txt
1.45
KB
-rw-r--r--
2024-04-10 08:28
ffdh3072.pem
2.16
KB
-rw-r--r--
2024-04-10 08:28
floating_points.txt
15.92
KB
-rw-r--r--
2024-04-10 08:28
fork_wait.py
2.51
KB
-rw-r--r--
2024-04-10 08:28
fork_wait.pyc
3.11
KB
-rw-r--r--
2024-04-10 08:28
fork_wait.pyo
3.11
KB
-rw-r--r--
2024-04-10 08:28
formatfloat_testcases.txt
7.83
KB
-rw-r--r--
2024-04-10 08:28
gdb_sample.py
156
B
-rw-r--r--
2024-04-10 08:28
gdb_sample.pyc
644
B
-rw-r--r--
2024-04-10 08:28
gdb_sample.pyo
644
B
-rw-r--r--
2024-04-10 08:28
greyrgb.uue
93.5
KB
-rw-r--r--
2024-04-10 08:28
ieee754.txt
3.21
KB
-rw-r--r--
2024-04-10 08:28
infinite_reload.py
324
B
-rw-r--r--
2024-04-10 08:28
infinite_reload.pyc
216
B
-rw-r--r--
2024-04-10 08:28
infinite_reload.pyo
216
B
-rw-r--r--
2024-04-10 08:28
inspect_fodder.py
967
B
-rw-r--r--
2024-04-10 08:28
inspect_fodder.pyc
2.14
KB
-rw-r--r--
2024-04-10 08:28
inspect_fodder.pyo
2.14
KB
-rw-r--r--
2024-04-10 08:28
inspect_fodder2.py
1.25
KB
-rw-r--r--
2024-04-10 08:28
inspect_fodder2.pyc
4.41
KB
-rw-r--r--
2024-04-10 08:28
inspect_fodder2.pyo
4.41
KB
-rw-r--r--
2024-04-10 08:28
keycert.passwd.pem
4
KB
-rw-r--r--
2024-04-10 08:28
keycert.pem
3.96
KB
-rw-r--r--
2024-04-10 08:28
keycert2.pem
3.97
KB
-rw-r--r--
2024-04-10 08:28
keycert3.pem
9.22
KB
-rw-r--r--
2024-04-10 08:28
keycert4.pem
9.23
KB
-rw-r--r--
2024-04-10 08:28
list_tests.py
16.57
KB
-rw-r--r--
2024-04-10 08:28
list_tests.pyc
18.36
KB
-rw-r--r--
2024-04-10 08:28
list_tests.pyo
18.36
KB
-rw-r--r--
2024-04-10 08:28
lock_tests.py
16.43
KB
-rw-r--r--
2024-04-10 08:28
lock_tests.pyc
19.41
KB
-rw-r--r--
2024-04-10 08:28
lock_tests.pyo
19.41
KB
-rw-r--r--
2024-04-10 08:28
mailcap.txt
1.24
KB
-rw-r--r--
2024-04-10 08:28
make_ssl_certs.py
6.69
KB
-rw-r--r--
2024-04-10 08:28
make_ssl_certs.pyc
6.65
KB
-rw-r--r--
2024-04-10 08:28
make_ssl_certs.pyo
6.65
KB
-rw-r--r--
2024-04-10 08:28
mapping_tests.py
22.57
KB
-rw-r--r--
2024-04-10 08:28
mapping_tests.pyc
29.42
KB
-rw-r--r--
2024-04-10 08:28
mapping_tests.pyo
29.42
KB
-rw-r--r--
2024-04-10 08:28
math_testcases.txt
15.52
KB
-rw-r--r--
2024-04-10 08:28
mp_fork_bomb.py
387
B
-rw-r--r--
2024-04-10 08:28
mp_fork_bomb.pyc
557
B
-rw-r--r--
2024-04-10 08:28
mp_fork_bomb.pyo
557
B
-rw-r--r--
2024-04-10 08:28
multibytecodec_support.py
13.81
KB
-rw-r--r--
2024-04-10 08:28
multibytecodec_support.pyc
14.9
KB
-rw-r--r--
2024-04-10 08:28
multibytecodec_support.pyo
14.9
KB
-rw-r--r--
2024-04-10 08:28
nokia.pem
1.88
KB
-rw-r--r--
2024-04-10 08:28
nullbytecert.pem
5.31
KB
-rw-r--r--
2024-04-10 08:28
nullcert.pem
0
B
-rw-r--r--
2024-04-10 08:28
outstanding_bugs.py
431
B
-rw-r--r--
2024-04-10 08:28
outstanding_bugs.pyc
411
B
-rw-r--r--
2024-04-10 08:28
outstanding_bugs.pyo
411
B
-rw-r--r--
2024-04-10 08:28
pickletester.py
63.15
KB
-rw-r--r--
2024-04-10 08:28
pickletester.pyc
65.95
KB
-rw-r--r--
2024-04-10 08:28
pickletester.pyo
65.8
KB
-rw-r--r--
2024-04-10 08:28
profilee.py
2.97
KB
-rw-r--r--
2024-04-10 08:28
profilee.pyc
2.95
KB
-rw-r--r--
2024-04-10 08:28
profilee.pyo
2.95
KB
-rw-r--r--
2024-04-10 08:28
pycacert.pem
5.52
KB
-rw-r--r--
2024-04-10 08:28
pyclbr_input.py
648
B
-rw-r--r--
2024-04-10 08:28
pyclbr_input.pyc
1.72
KB
-rw-r--r--
2024-04-10 08:28
pyclbr_input.pyo
1.72
KB
-rw-r--r--
2024-04-10 08:28
pydoc_mod.py
686
B
-rw-r--r--
2024-04-10 08:28
pydoc_mod.pyc
1.87
KB
-rw-r--r--
2024-04-10 08:28
pydoc_mod.pyo
1.87
KB
-rw-r--r--
2024-04-10 08:28
pydocfodder.py
6.18
KB
-rw-r--r--
2024-04-10 08:28
pydocfodder.pyc
15.69
KB
-rw-r--r--
2024-04-10 08:28
pydocfodder.pyo
15.69
KB
-rw-r--r--
2024-04-10 08:28
pystone.py
7.19
KB
-rwxr-xr-x
2024-04-10 08:28
pystone.pyc
7.84
KB
-rw-r--r--
2024-04-10 08:28
pystone.pyo
7.84
KB
-rw-r--r--
2024-04-10 08:28
pythoninfo.py
19.72
KB
-rw-r--r--
2024-04-10 08:28
pythoninfo.pyc
20.93
KB
-rw-r--r--
2024-04-10 08:28
pythoninfo.pyo
20.93
KB
-rw-r--r--
2024-04-10 08:28
randv2_32.pck
7.34
KB
-rw-r--r--
2024-04-10 08:28
randv2_64.pck
7.19
KB
-rw-r--r--
2024-04-10 08:28
randv3.pck
7.82
KB
-rw-r--r--
2024-04-10 08:28
re_tests.py
31.12
KB
-rwxr-xr-x
2024-04-10 08:28
re_tests.pyc
18.23
KB
-rw-r--r--
2024-04-10 08:28
re_tests.pyo
18.23
KB
-rw-r--r--
2024-04-10 08:28
recursion.tar
516
B
-rw-r--r--
2024-04-10 08:28
regrtest.py
69.91
KB
-rwxr-xr-x
2024-04-10 08:28
regrtest.pyc
58.12
KB
-rw-r--r--
2024-04-10 08:28
regrtest.pyo
58
KB
-rw-r--r--
2024-04-10 08:28
relimport.py
27
B
-rw-r--r--
2024-04-10 08:28
relimport.pyc
167
B
-rw-r--r--
2024-04-10 08:28
relimport.pyo
167
B
-rw-r--r--
2024-04-10 08:28
reperf.py
514
B
-rw-r--r--
2024-04-10 08:28
reperf.pyc
923
B
-rw-r--r--
2024-04-10 08:28
reperf.pyo
923
B
-rw-r--r--
2024-04-10 08:28
revocation.crl
800
B
-rw-r--r--
2024-04-10 08:28
sample_doctest.py
1.01
KB
-rw-r--r--
2024-04-10 08:28
sample_doctest.pyc
1.96
KB
-rw-r--r--
2024-04-10 08:28
sample_doctest.pyo
1.96
KB
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_docstrings.py
227
B
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_docstrings.pyc
512
B
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_docstrings.pyo
512
B
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_doctests.py
269
B
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_doctests.pyc
741
B
-rw-r--r--
2024-04-10 08:28
sample_doctest_no_doctests.pyo
741
B
-rw-r--r--
2024-04-10 08:28
script_helper.py
41
B
-rw-r--r--
2024-04-10 08:28
script_helper.pyc
186
B
-rw-r--r--
2024-04-10 08:28
script_helper.pyo
186
B
-rw-r--r--
2024-04-10 08:28
selfsigned_pythontestdotnet.pem
2.08
KB
-rw-r--r--
2024-04-10 08:28
seq_tests.py
13.87
KB
-rw-r--r--
2024-04-10 08:28
seq_tests.pyc
19.23
KB
-rw-r--r--
2024-04-10 08:28
seq_tests.pyo
19.23
KB
-rw-r--r--
2024-04-10 08:28
sgml_input.html
8.1
KB
-rw-r--r--
2024-04-10 08:28
sortperf.py
4.63
KB
-rw-r--r--
2024-04-10 08:28
sortperf.pyc
4.17
KB
-rw-r--r--
2024-04-10 08:28
sortperf.pyo
4.12
KB
-rw-r--r--
2024-04-10 08:28
ssl_cert.pem
1.53
KB
-rw-r--r--
2024-04-10 08:28
ssl_key.passwd.pem
2.47
KB
-rw-r--r--
2024-04-10 08:28
ssl_key.pem
2.43
KB
-rw-r--r--
2024-04-10 08:28
ssl_servers.py
7.3
KB
-rw-r--r--
2024-04-10 08:28
ssl_servers.pyc
8.36
KB
-rw-r--r--
2024-04-10 08:28
ssl_servers.pyo
8.36
KB
-rw-r--r--
2024-04-10 08:28
ssltests.py
988
B
-rw-r--r--
2024-04-10 08:28
ssltests.pyc
1.04
KB
-rw-r--r--
2024-04-10 08:28
ssltests.pyo
1.04
KB
-rw-r--r--
2024-04-10 08:28
string_tests.py
65.1
KB
-rw-r--r--
2024-04-10 08:28
string_tests.pyc
49.22
KB
-rw-r--r--
2024-04-10 08:28
string_tests.pyo
49.22
KB
-rw-r--r--
2024-04-10 08:28
symlink_support.py
3.18
KB
-rw-r--r--
2024-04-10 08:28
symlink_support.pyc
3.23
KB
-rw-r--r--
2024-04-10 08:28
symlink_support.pyo
3.23
KB
-rw-r--r--
2024-04-10 08:28
talos-2019-0758.pem
1.3
KB
-rw-r--r--
2024-04-10 08:28
test_MimeWriter.py
7.42
KB
-rw-r--r--
2024-04-10 08:28
test_MimeWriter.pyc
7.71
KB
-rw-r--r--
2024-04-10 08:28
test_MimeWriter.pyo
7.71
KB
-rw-r--r--
2024-04-10 08:28
test_SimpleHTTPServer.py
1.31
KB
-rw-r--r--
2024-04-10 08:28
test_SimpleHTTPServer.pyc
2.23
KB
-rw-r--r--
2024-04-10 08:28
test_SimpleHTTPServer.pyo
2.23
KB
-rw-r--r--
2024-04-10 08:28
test_StringIO.py
6.93
KB
-rw-r--r--
2024-04-10 08:28
test_StringIO.pyc
8.33
KB
-rw-r--r--
2024-04-10 08:28
test_StringIO.pyo
8.33
KB
-rw-r--r--
2024-04-10 08:28
test___all__.py
4.08
KB
-rw-r--r--
2024-04-10 08:28
test___all__.pyc
3.8
KB
-rw-r--r--
2024-04-10 08:28
test___all__.pyo
3.8
KB
-rw-r--r--
2024-04-10 08:28
test___future__.py
2.46
KB
-rw-r--r--
2024-04-10 08:28
test___future__.pyc
2.79
KB
-rw-r--r--
2024-04-10 08:28
test___future__.pyo
2.79
KB
-rw-r--r--
2024-04-10 08:28
test__locale.py
6.48
KB
-rw-r--r--
2024-04-10 08:28
test__locale.pyc
6.14
KB
-rw-r--r--
2024-04-10 08:28
test__locale.pyo
6.14
KB
-rw-r--r--
2024-04-10 08:28
test__osx_support.py
11.55
KB
-rw-r--r--
2024-04-10 08:28
test__osx_support.pyc
11.18
KB
-rw-r--r--
2024-04-10 08:28
test__osx_support.pyo
11.18
KB
-rw-r--r--
2024-04-10 08:28
test_abc.py
7.82
KB
-rw-r--r--
2024-04-10 08:28
test_abc.pyc
13.13
KB
-rw-r--r--
2024-04-10 08:28
test_abc.pyo
13.13
KB
-rw-r--r--
2024-04-10 08:28
test_abstract_numbers.py
1.65
KB
-rw-r--r--
2024-04-10 08:28
test_abstract_numbers.pyc
2.51
KB
-rw-r--r--
2024-04-10 08:28
test_abstract_numbers.pyo
2.51
KB
-rw-r--r--
2024-04-10 08:28
test_aepack.py
2.69
KB
-rw-r--r--
2024-04-10 08:28
test_aepack.pyc
3.71
KB
-rw-r--r--
2024-04-10 08:28
test_aepack.pyo
3.71
KB
-rw-r--r--
2024-04-10 08:28
test_aifc.py
14.27
KB
-rw-r--r--
2024-04-10 08:28
test_aifc.pyc
17.44
KB
-rw-r--r--
2024-04-10 08:28
test_aifc.pyo
17.44
KB
-rw-r--r--
2024-04-10 08:28
test_al.py
752
B
-rw-r--r--
2024-04-10 08:28
test_al.pyc
873
B
-rw-r--r--
2024-04-10 08:28
test_al.pyo
873
B
-rw-r--r--
2024-04-10 08:28
test_anydbm.py
2.21
KB
-rw-r--r--
2024-04-10 08:28
test_anydbm.pyc
3.68
KB
-rw-r--r--
2024-04-10 08:28
test_anydbm.pyo
3.68
KB
-rw-r--r--
2024-04-10 08:28
test_applesingle.py
1.77
KB
-rw-r--r--
2024-04-10 08:28
test_applesingle.pyc
2.56
KB
-rw-r--r--
2024-04-10 08:28
test_applesingle.pyo
2.56
KB
-rw-r--r--
2024-04-10 08:28
test_argparse.py
155.47
KB
-rw-r--r--
2024-04-10 08:28
test_argparse.pyc
178.99
KB
-rw-r--r--
2024-04-10 08:28
test_argparse.pyo
178.66
KB
-rw-r--r--
2024-04-10 08:28
test_array.py
37.16
KB
-rw-r--r--
2024-04-10 08:28
test_array.pyc
37.69
KB
-rw-r--r--
2024-04-10 08:28
test_array.pyo
37.69
KB
-rw-r--r--
2024-04-10 08:28
test_ascii_formatd.py
1.87
KB
-rw-r--r--
2024-04-10 08:28
test_ascii_formatd.pyc
2.3
KB
-rw-r--r--
2024-04-10 08:28
test_ascii_formatd.pyo
2.3
KB
-rw-r--r--
2024-04-10 08:28
test_ast.py
25.3
KB
-rw-r--r--
2024-04-10 08:28
test_ast.pyc
23.67
KB
-rw-r--r--
2024-04-10 08:28
test_ast.pyo
23.67
KB
-rw-r--r--
2024-04-10 08:28
test_asynchat.py
9.74
KB
-rw-r--r--
2024-04-10 08:28
test_asynchat.pyc
12.07
KB
-rw-r--r--
2024-04-10 08:28
test_asynchat.pyo
12.07
KB
-rw-r--r--
2024-04-10 08:28
test_asyncore.py
22.95
KB
-rw-r--r--
2024-04-10 08:28
test_asyncore.pyc
29.53
KB
-rw-r--r--
2024-04-10 08:28
test_asyncore.pyo
29.53
KB
-rw-r--r--
2024-04-10 08:28
test_atexit.py
2.39
KB
-rw-r--r--
2024-04-10 08:28
test_atexit.pyc
4.38
KB
-rw-r--r--
2024-04-10 08:28
test_atexit.pyo
4.38
KB
-rw-r--r--
2024-04-10 08:28
test_audioop.py
19.45
KB
-rw-r--r--
2024-04-10 08:28
test_audioop.pyc
19.68
KB
-rw-r--r--
2024-04-10 08:28
test_audioop.pyo
19.68
KB
-rw-r--r--
2024-04-10 08:28
test_augassign.py
7.99
KB
-rw-r--r--
2024-04-10 08:28
test_augassign.pyc
13.42
KB
-rw-r--r--
2024-04-10 08:28
test_augassign.pyo
13.42
KB
-rw-r--r--
2024-04-10 08:28
test_base64.py
10.25
KB
-rw-r--r--
2024-04-10 08:28
test_base64.pyc
9.03
KB
-rw-r--r--
2024-04-10 08:28
test_base64.pyo
9.03
KB
-rw-r--r--
2024-04-10 08:28
test_bastion.py
38
B
-rw-r--r--
2024-04-10 08:28
test_bastion.pyc
128
B
-rw-r--r--
2024-04-10 08:28
test_bastion.pyo
128
B
-rw-r--r--
2024-04-10 08:28
test_bdb.py
36.68
KB
-rw-r--r--
2024-04-10 08:28
test_bdb.pyc
37.6
KB
-rw-r--r--
2024-04-10 08:28
test_bdb.pyo
37.52
KB
-rw-r--r--
2024-04-10 08:28
test_bigaddrspace.py
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_bigaddrspace.pyc
1.53
KB
-rw-r--r--
2024-04-10 08:28
test_bigaddrspace.pyo
1.53
KB
-rw-r--r--
2024-04-10 08:28
test_bigmem.py
37.65
KB
-rw-r--r--
2024-04-10 08:28
test_bigmem.pyc
37.44
KB
-rw-r--r--
2024-04-10 08:28
test_bigmem.pyo
37.44
KB
-rw-r--r--
2024-04-10 08:28
test_binascii.py
12.45
KB
-rw-r--r--
2024-04-10 08:28
test_binascii.pyc
11.01
KB
-rw-r--r--
2024-04-10 08:28
test_binascii.pyo
11.01
KB
-rw-r--r--
2024-04-10 08:28
test_binhex.py
1004
B
-rw-r--r--
2024-04-10 08:28
test_binhex.pyc
1.77
KB
-rw-r--r--
2024-04-10 08:28
test_binhex.pyo
1.77
KB
-rw-r--r--
2024-04-10 08:28
test_binop.py
10.49
KB
-rw-r--r--
2024-04-10 08:28
test_binop.pyc
12.92
KB
-rw-r--r--
2024-04-10 08:28
test_binop.pyo
12.92
KB
-rw-r--r--
2024-04-10 08:28
test_bisect.py
14.49
KB
-rw-r--r--
2024-04-10 08:28
test_bisect.pyc
15.51
KB
-rw-r--r--
2024-04-10 08:28
test_bisect.pyo
15.51
KB
-rw-r--r--
2024-04-10 08:28
test_bool.py
13.87
KB
-rw-r--r--
2024-04-10 08:28
test_bool.pyc
14.23
KB
-rw-r--r--
2024-04-10 08:28
test_bool.pyo
14.23
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb.py
11.7
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb.pyc
13.17
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb.pyo
13.17
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb185.py
1.23
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb185.pyc
1.91
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb185.pyo
1.91
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb3.py
2.91
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb3.pyc
2.4
KB
-rw-r--r--
2024-04-10 08:28
test_bsddb3.pyo
2.4
KB
-rw-r--r--
2024-04-10 08:28
test_buffer.py
2.02
KB
-rw-r--r--
2024-04-10 08:28
test_buffer.pyc
3.15
KB
-rw-r--r--
2024-04-10 08:28
test_buffer.pyo
3.15
KB
-rw-r--r--
2024-04-10 08:28
test_bufio.py
2.69
KB
-rw-r--r--
2024-04-10 08:28
test_bufio.pyc
2.7
KB
-rw-r--r--
2024-04-10 08:28
test_bufio.pyo
2.7
KB
-rw-r--r--
2024-04-10 08:28
test_builtin.py
65.28
KB
-rw-r--r--
2024-04-10 08:28
test_builtin.pyc
80.33
KB
-rw-r--r--
2024-04-10 08:28
test_builtin.pyo
80.33
KB
-rw-r--r--
2024-04-10 08:28
test_bytes.py
43.97
KB
-rw-r--r--
2024-04-10 08:28
test_bytes.pyc
50.88
KB
-rw-r--r--
2024-04-10 08:28
test_bytes.pyo
50.88
KB
-rw-r--r--
2024-04-10 08:28
test_bz2.py
19.55
KB
-rw-r--r--
2024-04-10 08:28
test_bz2.pyc
20.02
KB
-rw-r--r--
2024-04-10 08:28
test_bz2.pyo
20.02
KB
-rw-r--r--
2024-04-10 08:28
test_calendar.py
33.92
KB
-rw-r--r--
2024-04-10 08:28
test_calendar.pyc
36.43
KB
-rw-r--r--
2024-04-10 08:28
test_calendar.pyo
36.43
KB
-rw-r--r--
2024-04-10 08:28
test_call.py
3.21
KB
-rw-r--r--
2024-04-10 08:28
test_call.pyc
6.08
KB
-rw-r--r--
2024-04-10 08:28
test_call.pyo
6.08
KB
-rw-r--r--
2024-04-10 08:28
test_capi.py
5.42
KB
-rw-r--r--
2024-04-10 08:28
test_capi.pyc
6.15
KB
-rw-r--r--
2024-04-10 08:28
test_capi.pyo
6.15
KB
-rw-r--r--
2024-04-10 08:28
test_cd.py
911
B
-rw-r--r--
2024-04-10 08:28
test_cd.pyc
1007
B
-rw-r--r--
2024-04-10 08:28
test_cd.pyo
1007
B
-rw-r--r--
2024-04-10 08:28
test_cfgparser.py
28.11
KB
-rw-r--r--
2024-04-10 08:28
test_cfgparser.pyc
27.8
KB
-rw-r--r--
2024-04-10 08:28
test_cfgparser.pyo
27.8
KB
-rw-r--r--
2024-04-10 08:28
test_cgi.py
19.09
KB
-rw-r--r--
2024-04-10 08:28
test_cgi.pyc
18.29
KB
-rw-r--r--
2024-04-10 08:28
test_cgi.pyo
18.29
KB
-rw-r--r--
2024-04-10 08:28
test_charmapcodec.py
1.8
KB
-rw-r--r--
2024-04-10 08:28
test_charmapcodec.pyc
2.62
KB
-rw-r--r--
2024-04-10 08:28
test_charmapcodec.pyo
2.62
KB
-rw-r--r--
2024-04-10 08:28
test_cl.py
3.89
KB
-rw-r--r--
2024-04-10 08:28
test_cl.pyc
4.89
KB
-rw-r--r--
2024-04-10 08:28
test_cl.pyo
4.89
KB
-rw-r--r--
2024-04-10 08:28
test_class.py
19.18
KB
-rw-r--r--
2024-04-10 08:28
test_class.pyc
20.33
KB
-rw-r--r--
2024-04-10 08:28
test_class.pyo
20.33
KB
-rw-r--r--
2024-04-10 08:28
test_cmath.py
19.31
KB
-rw-r--r--
2024-04-10 08:28
test_cmath.pyc
19.26
KB
-rw-r--r--
2024-04-10 08:28
test_cmath.pyo
19.26
KB
-rw-r--r--
2024-04-10 08:28
test_cmd.py
6.15
KB
-rw-r--r--
2024-04-10 08:28
test_cmd.pyc
8.19
KB
-rw-r--r--
2024-04-10 08:28
test_cmd.pyo
8.19
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line.py
5.15
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line.pyc
5.43
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line.pyo
5.43
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line_script.py
11.58
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line_script.pyc
11.85
KB
-rw-r--r--
2024-04-10 08:28
test_cmd_line_script.pyo
11.85
KB
-rw-r--r--
2024-04-10 08:28
test_code.py
4.5
KB
-rw-r--r--
2024-04-10 08:28
test_code.pyc
6.28
KB
-rw-r--r--
2024-04-10 08:28
test_code.pyo
6.28
KB
-rw-r--r--
2024-04-10 08:28
test_codeccallbacks.py
32.5
KB
-rw-r--r--
2024-04-10 08:28
test_codeccallbacks.pyc
28.07
KB
-rw-r--r--
2024-04-10 08:28
test_codeccallbacks.pyo
28.07
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_cn.py
3.53
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_cn.pyc
3.9
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_cn.pyo
3.9
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_hk.py
771
B
-rw-r--r--
2024-04-10 08:28
test_codecencodings_hk.pyc
1.13
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_hk.pyo
1.13
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_iso2022.py
1.45
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_iso2022.pyc
2.18
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_iso2022.pyo
2.18
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_jp.py
3.77
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_jp.pyc
4.33
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_jp.pyo
4.33
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_kr.py
2.63
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_kr.pyc
2.84
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_kr.pyo
2.84
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_tw.py
751
B
-rw-r--r--
2024-04-10 08:28
test_codecencodings_tw.pyc
1.12
KB
-rw-r--r--
2024-04-10 08:28
test_codecencodings_tw.pyo
1.12
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_cn.py
830
B
-rw-r--r--
2024-04-10 08:28
test_codecmaps_cn.pyc
1.36
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_cn.pyo
1.36
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_hk.py
470
B
-rw-r--r--
2024-04-10 08:28
test_codecmaps_hk.pyc
858
B
-rw-r--r--
2024-04-10 08:28
test_codecmaps_hk.pyo
858
B
-rw-r--r--
2024-04-10 08:28
test_codecmaps_jp.py
1.78
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_jp.pyc
2.57
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_jp.pyo
2.57
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_kr.py
1.25
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_kr.pyc
1.54
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_kr.pyo
1.54
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_tw.py
719
B
-rw-r--r--
2024-04-10 08:28
test_codecmaps_tw.pyc
1.18
KB
-rw-r--r--
2024-04-10 08:28
test_codecmaps_tw.pyo
1.18
KB
-rw-r--r--
2024-04-10 08:28
test_codecs.py
79.55
KB
-rw-r--r--
2024-04-10 08:28
test_codecs.pyc
67.04
KB
-rw-r--r--
2024-04-10 08:28
test_codecs.pyo
67.04
KB
-rw-r--r--
2024-04-10 08:28
test_codeop.py
7.47
KB
-rw-r--r--
2024-04-10 08:28
test_codeop.pyc
7.92
KB
-rw-r--r--
2024-04-10 08:28
test_codeop.pyo
7.92
KB
-rw-r--r--
2024-04-10 08:28
test_coercion.py
11.13
KB
-rw-r--r--
2024-04-10 08:28
test_coercion.pyc
15.63
KB
-rw-r--r--
2024-04-10 08:28
test_coercion.pyo
15.63
KB
-rw-r--r--
2024-04-10 08:28
test_collections.py
39.28
KB
-rw-r--r--
2024-04-10 08:28
test_collections.pyc
43.66
KB
-rw-r--r--
2024-04-10 08:28
test_collections.pyo
43.66
KB
-rw-r--r--
2024-04-10 08:28
test_colorsys.py
2.78
KB
-rw-r--r--
2024-04-10 08:28
test_colorsys.pyc
3.78
KB
-rw-r--r--
2024-04-10 08:28
test_colorsys.pyo
3.78
KB
-rw-r--r--
2024-04-10 08:28
test_commands.py
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_commands.pyc
2.25
KB
-rw-r--r--
2024-04-10 08:28
test_commands.pyo
2.25
KB
-rw-r--r--
2024-04-10 08:28
test_compare.py
1.45
KB
-rw-r--r--
2024-04-10 08:28
test_compare.pyc
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_compare.pyo
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_compile.py
24.22
KB
-rw-r--r--
2024-04-10 08:28
test_compile.pyc
26.35
KB
-rw-r--r--
2024-04-10 08:28
test_compile.pyo
26.35
KB
-rw-r--r--
2024-04-10 08:28
test_compileall.py
2.68
KB
-rw-r--r--
2024-04-10 08:28
test_compileall.pyc
3.62
KB
-rw-r--r--
2024-04-10 08:28
test_compileall.pyo
3.62
KB
-rw-r--r--
2024-04-10 08:28
test_compiler.py
10.96
KB
-rw-r--r--
2024-04-10 08:28
test_compiler.pyc
12.67
KB
-rw-r--r--
2024-04-10 08:28
test_compiler.pyo
12.67
KB
-rw-r--r--
2024-04-10 08:28
test_complex.py
28.36
KB
-rw-r--r--
2024-04-10 08:28
test_complex.pyc
34.68
KB
-rw-r--r--
2024-04-10 08:28
test_complex.pyo
34.68
KB
-rw-r--r--
2024-04-10 08:28
test_complex_args.py
3.42
KB
-rw-r--r--
2024-04-10 08:28
test_complex_args.pyc
4.83
KB
-rw-r--r--
2024-04-10 08:28
test_complex_args.pyo
4.83
KB
-rw-r--r--
2024-04-10 08:28
test_contains.py
3.08
KB
-rw-r--r--
2024-04-10 08:28
test_contains.pyc
4.89
KB
-rw-r--r--
2024-04-10 08:28
test_contains.pyo
4.89
KB
-rw-r--r--
2024-04-10 08:28
test_contextlib.py
9.2
KB
-rw-r--r--
2024-04-10 08:28
test_contextlib.pyc
14.58
KB
-rw-r--r--
2024-04-10 08:28
test_contextlib.pyo
14.58
KB
-rw-r--r--
2024-04-10 08:28
test_cookie.py
6.93
KB
-rw-r--r--
2024-04-10 08:28
test_cookie.pyc
7.29
KB
-rw-r--r--
2024-04-10 08:28
test_cookie.pyo
7.29
KB
-rw-r--r--
2024-04-10 08:28
test_cookielib.py
75.13
KB
-rw-r--r--
2024-04-10 08:28
test_cookielib.pyc
51.7
KB
-rw-r--r--
2024-04-10 08:28
test_cookielib.pyo
51.7
KB
-rw-r--r--
2024-04-10 08:28
test_copy.py
22.47
KB
-rw-r--r--
2024-04-10 08:28
test_copy.pyc
41.2
KB
-rw-r--r--
2024-04-10 08:28
test_copy.pyo
41.2
KB
-rw-r--r--
2024-04-10 08:28
test_copy_reg.py
4.51
KB
-rw-r--r--
2024-04-10 08:28
test_copy_reg.pyc
4.94
KB
-rw-r--r--
2024-04-10 08:28
test_copy_reg.pyo
4.94
KB
-rw-r--r--
2024-04-10 08:28
test_cpickle.py
6.81
KB
-rw-r--r--
2024-04-10 08:28
test_cpickle.pyc
10.62
KB
-rw-r--r--
2024-04-10 08:28
test_cpickle.pyo
10.62
KB
-rw-r--r--
2024-04-10 08:28
test_cprofile.py
7.26
KB
-rw-r--r--
2024-04-10 08:28
test_cprofile.pyc
8.09
KB
-rw-r--r--
2024-04-10 08:28
test_cprofile.pyo
8.09
KB
-rw-r--r--
2024-04-10 08:28
test_crypt.py
1.3
KB
-rw-r--r--
2024-04-10 08:28
test_crypt.pyc
2.06
KB
-rw-r--r--
2024-04-10 08:28
test_crypt.pyo
2.06
KB
-rw-r--r--
2024-04-10 08:28
test_csv.py
44.33
KB
-rw-r--r--
2024-04-10 08:28
test_csv.pyc
46.33
KB
-rw-r--r--
2024-04-10 08:28
test_csv.pyo
46.33
KB
-rw-r--r--
2024-04-10 08:28
test_ctypes.py
418
B
-rw-r--r--
2024-04-10 08:28
test_ctypes.pyc
743
B
-rw-r--r--
2024-04-10 08:28
test_ctypes.pyo
743
B
-rw-r--r--
2024-04-10 08:28
test_curses.py
15.53
KB
-rw-r--r--
2024-04-10 08:28
test_curses.pyc
16.4
KB
-rw-r--r--
2024-04-10 08:28
test_curses.pyo
16.4
KB
-rw-r--r--
2024-04-10 08:28
test_datetime.py
133.72
KB
-rw-r--r--
2024-04-10 08:28
test_datetime.pyc
127.23
KB
-rw-r--r--
2024-04-10 08:28
test_datetime.pyo
126.91
KB
-rw-r--r--
2024-04-10 08:28
test_dbm.py
1.24
KB
-rw-r--r--
2024-04-10 08:28
test_dbm.pyc
2.43
KB
-rw-r--r--
2024-04-10 08:28
test_dbm.pyo
2.43
KB
-rw-r--r--
2024-04-10 08:28
test_decimal.py
83.01
KB
-rw-r--r--
2024-04-10 08:28
test_decimal.pyc
80.03
KB
-rw-r--r--
2024-04-10 08:28
test_decimal.pyo
80.03
KB
-rw-r--r--
2024-04-10 08:28
test_decorators.py
9.62
KB
-rw-r--r--
2024-04-10 08:28
test_decorators.pyc
14.21
KB
-rw-r--r--
2024-04-10 08:28
test_decorators.pyo
14.14
KB
-rw-r--r--
2024-04-10 08:28
test_defaultdict.py
5.69
KB
-rw-r--r--
2024-04-10 08:28
test_defaultdict.pyc
6.49
KB
-rw-r--r--
2024-04-10 08:28
test_defaultdict.pyo
6.49
KB
-rw-r--r--
2024-04-10 08:28
test_deque.py
25.56
KB
-rw-r--r--
2024-04-10 08:28
test_deque.pyc
28.94
KB
-rw-r--r--
2024-04-10 08:28
test_deque.pyo
28.9
KB
-rw-r--r--
2024-04-10 08:28
test_descr.py
164.21
KB
-rw-r--r--
2024-04-10 08:28
test_descr.pyc
209.51
KB
-rw-r--r--
2024-04-10 08:28
test_descr.pyo
209.44
KB
-rw-r--r--
2024-04-10 08:28
test_descrtut.py
11.77
KB
-rw-r--r--
2024-04-10 08:28
test_descrtut.pyc
13.09
KB
-rw-r--r--
2024-04-10 08:28
test_descrtut.pyo
13.09
KB
-rw-r--r--
2024-04-10 08:28
test_dict.py
24.18
KB
-rw-r--r--
2024-04-10 08:28
test_dict.pyc
35.26
KB
-rw-r--r--
2024-04-10 08:28
test_dict.pyo
35.26
KB
-rw-r--r--
2024-04-10 08:28
test_dictcomps.py
3.76
KB
-rw-r--r--
2024-04-10 08:28
test_dictcomps.pyc
5.81
KB
-rw-r--r--
2024-04-10 08:28
test_dictcomps.pyo
5.81
KB
-rw-r--r--
2024-04-10 08:28
test_dictviews.py
9.89
KB
-rw-r--r--
2024-04-10 08:28
test_dictviews.pyc
9.45
KB
-rw-r--r--
2024-04-10 08:28
test_dictviews.pyo
9.45
KB
-rw-r--r--
2024-04-10 08:28
test_difflib.py
11.23
KB
-rw-r--r--
2024-04-10 08:28
test_difflib.pyc
13.04
KB
-rw-r--r--
2024-04-10 08:28
test_difflib.pyo
13.04
KB
-rw-r--r--
2024-04-10 08:28
test_difflib_expect.html
100.86
KB
-rw-r--r--
2024-04-10 08:28
test_dircache.py
2.35
KB
-rw-r--r--
2024-04-10 08:28
test_dircache.pyc
2.94
KB
-rw-r--r--
2024-04-10 08:28
test_dircache.pyo
2.94
KB
-rw-r--r--
2024-04-10 08:28
test_dis.py
4.55
KB
-rw-r--r--
2024-04-10 08:28
test_dis.pyc
5.54
KB
-rw-r--r--
2024-04-10 08:28
test_dis.pyo
5.49
KB
-rw-r--r--
2024-04-10 08:28
test_distutils.py
385
B
-rw-r--r--
2024-04-10 08:28
test_distutils.pyc
724
B
-rw-r--r--
2024-04-10 08:28
test_distutils.pyo
724
B
-rw-r--r--
2024-04-10 08:28
test_dl.py
1.1
KB
-rw-r--r--
2024-04-10 08:28
test_dl.pyc
1.37
KB
-rw-r--r--
2024-04-10 08:28
test_dl.pyo
1.37
KB
-rw-r--r--
2024-04-10 08:28
test_doctest.py
86.23
KB
-rw-r--r--
2024-04-10 08:28
test_doctest.pyc
89.62
KB
-rw-r--r--
2024-04-10 08:28
test_doctest.pyo
89.56
KB
-rw-r--r--
2024-04-10 08:28
test_doctest.txt
296
B
-rw-r--r--
2024-04-10 08:28
test_doctest2.py
2.33
KB
-rw-r--r--
2024-04-10 08:28
test_doctest2.pyc
3.55
KB
-rw-r--r--
2024-04-10 08:28
test_doctest2.pyo
3.55
KB
-rw-r--r--
2024-04-10 08:28
test_doctest2.txt
392
B
-rw-r--r--
2024-04-10 08:28
test_doctest3.txt
81
B
-rw-r--r--
2024-04-10 08:28
test_doctest4.txt
314
B
-rw-r--r--
2024-04-10 08:28
test_docxmlrpc.py
8.3
KB
-rw-r--r--
2024-04-10 08:28
test_docxmlrpc.pyc
9.37
KB
-rw-r--r--
2024-04-10 08:28
test_docxmlrpc.pyo
9.37
KB
-rw-r--r--
2024-04-10 08:28
test_dumbdbm.py
5.8
KB
-rw-r--r--
2024-04-10 08:28
test_dumbdbm.pyc
7.24
KB
-rw-r--r--
2024-04-10 08:28
test_dumbdbm.pyo
7.24
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_thread.py
7
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_thread.pyc
7.88
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_thread.pyo
7.88
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_threading.py
1.8
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_threading.pyc
2.26
KB
-rw-r--r--
2024-04-10 08:28
test_dummy_threading.pyo
2.26
KB
-rw-r--r--
2024-04-10 08:28
test_email.py
398
B
-rw-r--r--
2024-04-10 08:28
test_email.pyc
565
B
-rw-r--r--
2024-04-10 08:28
test_email.pyo
565
B
-rw-r--r--
2024-04-10 08:28
test_email_codecs.py
462
B
-rw-r--r--
2024-04-10 08:28
test_email_codecs.pyc
616
B
-rw-r--r--
2024-04-10 08:28
test_email_codecs.pyo
616
B
-rw-r--r--
2024-04-10 08:28
test_email_renamed.py
308
B
-rw-r--r--
2024-04-10 08:28
test_email_renamed.pyc
503
B
-rw-r--r--
2024-04-10 08:28
test_email_renamed.pyo
503
B
-rw-r--r--
2024-04-10 08:28
test_ensurepip.py
9.59
KB
-rw-r--r--
2024-04-10 08:28
test_ensurepip.pyc
11.67
KB
-rw-r--r--
2024-04-10 08:28
test_ensurepip.pyo
11.67
KB
-rw-r--r--
2024-04-10 08:28
test_enumerate.py
7.36
KB
-rw-r--r--
2024-04-10 08:28
test_enumerate.pyc
14.59
KB
-rw-r--r--
2024-04-10 08:28
test_enumerate.pyo
14.59
KB
-rw-r--r--
2024-04-10 08:28
test_eof.py
871
B
-rw-r--r--
2024-04-10 08:28
test_eof.pyc
1.43
KB
-rw-r--r--
2024-04-10 08:28
test_eof.pyo
1.43
KB
-rw-r--r--
2024-04-10 08:28
test_epoll.py
7.22
KB
-rw-r--r--
2024-04-10 08:28
test_epoll.pyc
6.07
KB
-rw-r--r--
2024-04-10 08:28
test_epoll.pyo
6.07
KB
-rw-r--r--
2024-04-10 08:28
test_errno.py
1.13
KB
-rw-r--r--
2024-04-10 08:28
test_errno.pyc
1.88
KB
-rw-r--r--
2024-04-10 08:28
test_errno.pyo
1.88
KB
-rw-r--r--
2024-04-10 08:28
test_exception_variations.py
3.95
KB
-rw-r--r--
2024-04-10 08:28
test_exception_variations.pyc
4.14
KB
-rw-r--r--
2024-04-10 08:28
test_exception_variations.pyo
4.14
KB
-rw-r--r--
2024-04-10 08:28
test_exceptions.py
28.09
KB
-rw-r--r--
2024-04-10 08:28
test_exceptions.pyc
25.48
KB
-rw-r--r--
2024-04-10 08:28
test_exceptions.pyo
25.44
KB
-rw-r--r--
2024-04-10 08:28
test_extcall.py
8.32
KB
-rw-r--r--
2024-04-10 08:28
test_extcall.pyc
8.95
KB
-rw-r--r--
2024-04-10 08:28
test_extcall.pyo
8.95
KB
-rw-r--r--
2024-04-10 08:28
test_fcntl.py
4.34
KB
-rw-r--r--
2024-04-10 08:28
test_fcntl.pyc
5.14
KB
-rw-r--r--
2024-04-10 08:28
test_fcntl.pyo
5.14
KB
-rw-r--r--
2024-04-10 08:28
test_file.py
10.92
KB
-rw-r--r--
2024-04-10 08:28
test_file.pyc
11.06
KB
-rw-r--r--
2024-04-10 08:28
test_file.pyo
10.96
KB
-rw-r--r--
2024-04-10 08:28
test_file2k.py
32.94
KB
-rw-r--r--
2024-04-10 08:28
test_file2k.py.stdin-test
32.86
KB
-rw-r--r--
2024-04-10 08:28
test_file2k.pyc
33.71
KB
-rw-r--r--
2024-04-10 08:28
test_file2k.pyo
33.53
KB
-rw-r--r--
2024-04-10 08:28
test_file_eintr.py
10.23
KB
-rw-r--r--
2024-04-10 08:28
test_file_eintr.pyc
8.59
KB
-rw-r--r--
2024-04-10 08:28
test_file_eintr.pyo
8.5
KB
-rw-r--r--
2024-04-10 08:28
test_filecmp.py
5.27
KB
-rw-r--r--
2024-04-10 08:28
test_filecmp.pyc
5.17
KB
-rw-r--r--
2024-04-10 08:28
test_filecmp.pyo
5.17
KB
-rw-r--r--
2024-04-10 08:28
test_fileinput.py
11.57
KB
-rw-r--r--
2024-04-10 08:28
test_fileinput.pyc
12
KB
-rw-r--r--
2024-04-10 08:28
test_fileinput.pyo
12
KB
-rw-r--r--
2024-04-10 08:28
test_fileio.py
16.71
KB
-rw-r--r--
2024-04-10 08:28
test_fileio.pyc
19.68
KB
-rw-r--r--
2024-04-10 08:28
test_fileio.pyo
19.68
KB
-rw-r--r--
2024-04-10 08:28
test_float.py
62.9
KB
-rw-r--r--
2024-04-10 08:28
test_float.pyc
50.81
KB
-rw-r--r--
2024-04-10 08:28
test_float.pyo
50.81
KB
-rw-r--r--
2024-04-10 08:28
test_fnmatch.py
6.13
KB
-rw-r--r--
2024-04-10 08:28
test_fnmatch.pyc
6.85
KB
-rw-r--r--
2024-04-10 08:28
test_fnmatch.pyo
6.85
KB
-rw-r--r--
2024-04-10 08:28
test_fork1.py
2.16
KB
-rw-r--r--
2024-04-10 08:28
test_fork1.pyc
2.41
KB
-rw-r--r--
2024-04-10 08:28
test_fork1.pyo
2.41
KB
-rw-r--r--
2024-04-10 08:28
test_format.py
15.9
KB
-rw-r--r--
2024-04-10 08:28
test_format.pyc
13.24
KB
-rw-r--r--
2024-04-10 08:28
test_format.pyo
13.24
KB
-rw-r--r--
2024-04-10 08:28
test_fpformat.py
2.64
KB
-rw-r--r--
2024-04-10 08:28
test_fpformat.pyc
3.12
KB
-rw-r--r--
2024-04-10 08:28
test_fpformat.pyo
3.12
KB
-rw-r--r--
2024-04-10 08:28
test_fractions.py
23.94
KB
-rw-r--r--
2024-04-10 08:28
test_fractions.pyc
26.32
KB
-rw-r--r--
2024-04-10 08:28
test_fractions.pyo
26.08
KB
-rw-r--r--
2024-04-10 08:28
test_frozen.py
1.21
KB
-rw-r--r--
2024-04-10 08:28
test_frozen.pyc
1.54
KB
-rw-r--r--
2024-04-10 08:28
test_frozen.pyo
1.54
KB
-rw-r--r--
2024-04-10 08:28
test_ftplib.py
29.89
KB
-rw-r--r--
2024-04-10 08:28
test_ftplib.pyc
37.58
KB
-rw-r--r--
2024-04-10 08:28
test_ftplib.pyo
37.52
KB
-rw-r--r--
2024-04-10 08:28
test_funcattrs.py
12.45
KB
-rw-r--r--
2024-04-10 08:28
test_funcattrs.pyc
14.92
KB
-rw-r--r--
2024-04-10 08:28
test_funcattrs.pyo
14.92
KB
-rw-r--r--
2024-04-10 08:28
test_functools.py
23.47
KB
-rw-r--r--
2024-04-10 08:28
test_functools.pyc
34.05
KB
-rw-r--r--
2024-04-10 08:28
test_functools.pyo
34.05
KB
-rw-r--r--
2024-04-10 08:28
test_future.py
3.77
KB
-rw-r--r--
2024-04-10 08:28
test_future.pyc
5.15
KB
-rw-r--r--
2024-04-10 08:28
test_future.pyo
5.15
KB
-rw-r--r--
2024-04-10 08:28
test_future1.py
229
B
-rw-r--r--
2024-04-10 08:28
test_future1.pyc
577
B
-rw-r--r--
2024-04-10 08:28
test_future1.pyo
577
B
-rw-r--r--
2024-04-10 08:28
test_future2.py
151
B
-rw-r--r--
2024-04-10 08:28
test_future2.pyc
591
B
-rw-r--r--
2024-04-10 08:28
test_future2.pyo
591
B
-rw-r--r--
2024-04-10 08:28
test_future3.py
576
B
-rw-r--r--
2024-04-10 08:28
test_future3.pyc
1.65
KB
-rw-r--r--
2024-04-10 08:28
test_future3.pyo
1.65
KB
-rw-r--r--
2024-04-10 08:28
test_future4.py
1.48
KB
-rw-r--r--
2024-04-10 08:28
test_future4.pyc
1.63
KB
-rw-r--r--
2024-04-10 08:28
test_future4.pyo
1.63
KB
-rw-r--r--
2024-04-10 08:28
test_future5.py
543
B
-rw-r--r--
2024-04-10 08:28
test_future5.pyc
1.25
KB
-rw-r--r--
2024-04-10 08:28
test_future5.pyo
1.25
KB
-rw-r--r--
2024-04-10 08:28
test_future_builtins.py
1.29
KB
-rw-r--r--
2024-04-10 08:28
test_future_builtins.pyc
1.92
KB
-rw-r--r--
2024-04-10 08:28
test_future_builtins.pyo
1.92
KB
-rw-r--r--
2024-04-10 08:28
test_gc.py
23.84
KB
-rw-r--r--
2024-04-10 08:28
test_gc.pyc
22.14
KB
-rw-r--r--
2024-04-10 08:28
test_gc.pyo
22.08
KB
-rw-r--r--
2024-04-10 08:28
test_gdb.py
39.78
KB
-rw-r--r--
2024-04-10 08:28
test_gdb.pyc
32.27
KB
-rw-r--r--
2024-04-10 08:28
test_gdb.pyo
32.27
KB
-rw-r--r--
2024-04-10 08:28
test_gdbm.py
2.77
KB
-rw-r--r--
2024-04-10 08:28
test_gdbm.pyc
3.54
KB
-rw-r--r--
2024-04-10 08:28
test_gdbm.pyo
3.54
KB
-rw-r--r--
2024-04-10 08:28
test_generators.py
49.63
KB
-rw-r--r--
2024-04-10 08:28
test_generators.pyc
45.1
KB
-rw-r--r--
2024-04-10 08:28
test_generators.pyo
44.44
KB
-rw-r--r--
2024-04-10 08:28
test_genericpath.py
10.31
KB
-rw-r--r--
2024-04-10 08:28
test_genericpath.pyc
10.19
KB
-rw-r--r--
2024-04-10 08:28
test_genericpath.pyo
10.19
KB
-rw-r--r--
2024-04-10 08:28
test_genexps.py
7.23
KB
-rw-r--r--
2024-04-10 08:28
test_genexps.pyc
7.47
KB
-rw-r--r--
2024-04-10 08:28
test_genexps.pyo
7.47
KB
-rw-r--r--
2024-04-10 08:28
test_getargs.py
938
B
-rw-r--r--
2024-04-10 08:28
test_getargs.pyc
1.15
KB
-rw-r--r--
2024-04-10 08:28
test_getargs.pyo
1.15
KB
-rw-r--r--
2024-04-10 08:28
test_getargs2.py
39.71
KB
-rw-r--r--
2024-04-10 08:28
test_getargs2.pyc
38.5
KB
-rw-r--r--
2024-04-10 08:28
test_getargs2.pyo
38.5
KB
-rw-r--r--
2024-04-10 08:28
test_getopt.py
6.81
KB
-rw-r--r--
2024-04-10 08:28
test_getopt.pyc
6.78
KB
-rw-r--r--
2024-04-10 08:28
test_getopt.pyo
6.78
KB
-rw-r--r--
2024-04-10 08:28
test_gettext.py
23.02
KB
-rw-r--r--
2024-04-10 08:28
test_gettext.pyc
25
KB
-rw-r--r--
2024-04-10 08:28
test_gettext.pyo
25
KB
-rw-r--r--
2024-04-10 08:28
test_gl.py
6.57
KB
-rw-r--r--
2024-04-10 08:28
test_gl.pyc
8.39
KB
-rw-r--r--
2024-04-10 08:28
test_gl.pyo
8.39
KB
-rw-r--r--
2024-04-10 08:28
test_glob.py
6.78
KB
-rw-r--r--
2024-04-10 08:28
test_glob.pyc
8.3
KB
-rw-r--r--
2024-04-10 08:28
test_glob.pyo
8.3
KB
-rw-r--r--
2024-04-10 08:28
test_global.py
1003
B
-rw-r--r--
2024-04-10 08:28
test_global.pyc
1.81
KB
-rw-r--r--
2024-04-10 08:28
test_global.pyo
1.81
KB
-rw-r--r--
2024-04-10 08:28
test_grammar.py
39.1
KB
-rw-r--r--
2024-04-10 08:28
test_grammar.pyc
45.6
KB
-rw-r--r--
2024-04-10 08:28
test_grammar.pyo
45.19
KB
-rw-r--r--
2024-04-10 08:28
test_grp.py
3.21
KB
-rw-r--r--
2024-04-10 08:28
test_grp.pyc
2.98
KB
-rw-r--r--
2024-04-10 08:28
test_grp.pyo
2.98
KB
-rw-r--r--
2024-04-10 08:28
test_gzip.py
13.17
KB
-rw-r--r--
2024-04-10 08:28
test_gzip.pyc
12.89
KB
-rw-r--r--
2024-04-10 08:28
test_gzip.pyo
12.89
KB
-rw-r--r--
2024-04-10 08:28
test_hash.py
7.97
KB
-rw-r--r--
2024-04-10 08:28
test_hash.pyc
12.17
KB
-rw-r--r--
2024-04-10 08:28
test_hash.pyo
12.17
KB
-rw-r--r--
2024-04-10 08:28
test_hashlib.py
20.05
KB
-rw-r--r--
2024-04-10 08:28
test_hashlib.pyc
20.33
KB
-rw-r--r--
2024-04-10 08:28
test_hashlib.pyo
20.14
KB
-rw-r--r--
2024-04-10 08:28
test_heapq.py
15.4
KB
-rw-r--r--
2024-04-10 08:28
test_heapq.pyc
22.76
KB
-rw-r--r--
2024-04-10 08:28
test_heapq.pyo
22.76
KB
-rw-r--r--
2024-04-10 08:28
test_hmac.py
16.97
KB
-rw-r--r--
2024-04-10 08:28
test_hmac.pyc
15.19
KB
-rw-r--r--
2024-04-10 08:28
test_hmac.pyo
15.19
KB
-rw-r--r--
2024-04-10 08:28
test_hotshot.py
5
KB
-rw-r--r--
2024-04-10 08:28
test_hotshot.pyc
6.56
KB
-rw-r--r--
2024-04-10 08:28
test_hotshot.pyo
6.56
KB
-rw-r--r--
2024-04-10 08:28
test_htmllib.py
1.93
KB
-rw-r--r--
2024-04-10 08:28
test_htmllib.pyc
3.32
KB
-rw-r--r--
2024-04-10 08:28
test_htmllib.pyo
3.32
KB
-rw-r--r--
2024-04-10 08:28
test_htmlparser.py
24.74
KB
-rw-r--r--
2024-04-10 08:28
test_htmlparser.pyc
27.16
KB
-rw-r--r--
2024-04-10 08:28
test_htmlparser.pyo
27.16
KB
-rw-r--r--
2024-04-10 08:28
test_httplib.py
39.87
KB
-rw-r--r--
2024-04-10 08:28
test_httplib.pyc
40.26
KB
-rw-r--r--
2024-04-10 08:28
test_httplib.pyo
40.26
KB
-rw-r--r--
2024-04-10 08:28
test_httpservers.py
24.56
KB
-rw-r--r--
2024-04-10 08:28
test_httpservers.pyc
29.76
KB
-rw-r--r--
2024-04-10 08:28
test_httpservers.pyo
29.76
KB
-rw-r--r--
2024-04-10 08:28
test_idle.py
821
B
-rw-r--r--
2024-04-10 08:28
test_idle.pyc
772
B
-rw-r--r--
2024-04-10 08:28
test_idle.pyo
772
B
-rw-r--r--
2024-04-10 08:28
test_imageop.py
6.82
KB
-rw-r--r--
2024-04-10 08:28
test_imageop.pyc
5.24
KB
-rw-r--r--
2024-04-10 08:28
test_imageop.pyo
5.24
KB
-rw-r--r--
2024-04-10 08:28
test_imaplib.py
7.55
KB
-rw-r--r--
2024-04-10 08:28
test_imaplib.pyc
9.8
KB
-rw-r--r--
2024-04-10 08:28
test_imaplib.pyo
9.8
KB
-rw-r--r--
2024-04-10 08:28
test_imgfile.py
4.19
KB
-rw-r--r--
2024-04-10 08:28
test_imgfile.pyc
2.4
KB
-rw-r--r--
2024-04-10 08:28
test_imgfile.pyo
2.4
KB
-rw-r--r--
2024-04-10 08:28
test_imghdr.py
3.77
KB
-rw-r--r--
2024-04-10 08:28
test_imghdr.pyc
5.79
KB
-rw-r--r--
2024-04-10 08:28
test_imghdr.pyo
5.79
KB
-rw-r--r--
2024-04-10 08:28
test_imp.py
2.31
KB
-rw-r--r--
2024-04-10 08:28
test_imp.pyc
2.65
KB
-rw-r--r--
2024-04-10 08:28
test_imp.pyo
2.65
KB
-rw-r--r--
2024-04-10 08:28
test_import.py
24.32
KB
-rw-r--r--
2024-04-10 08:28
test_import.pyc
22.35
KB
-rw-r--r--
2024-04-10 08:28
test_import.pyo
22.21
KB
-rw-r--r--
2024-04-10 08:28
test_import_magic.py
2.21
KB
-rw-r--r--
2024-04-10 08:28
test_import_magic.pyc
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_import_magic.pyo
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_importhooks.py
8.17
KB
-rw-r--r--
2024-04-10 08:28
test_importhooks.pyc
9.93
KB
-rw-r--r--
2024-04-10 08:28
test_importhooks.pyo
9.93
KB
-rw-r--r--
2024-04-10 08:28
test_importlib.py
5.63
KB
-rw-r--r--
2024-04-10 08:28
test_importlib.pyc
6.38
KB
-rw-r--r--
2024-04-10 08:28
test_importlib.pyo
6.38
KB
-rw-r--r--
2024-04-10 08:28
test_index.py
9.83
KB
-rw-r--r--
2024-04-10 08:28
test_index.pyc
16.88
KB
-rw-r--r--
2024-04-10 08:28
test_index.pyo
16.88
KB
-rw-r--r--
2024-04-10 08:28
test_inspect.py
35.55
KB
-rw-r--r--
2024-04-10 08:28
test_inspect.pyc
41.73
KB
-rw-r--r--
2024-04-10 08:28
test_inspect.pyo
41.67
KB
-rw-r--r--
2024-04-10 08:28
test_int.py
19.54
KB
-rw-r--r--
2024-04-10 08:28
test_int.pyc
20.12
KB
-rw-r--r--
2024-04-10 08:28
test_int.pyo
20.12
KB
-rw-r--r--
2024-04-10 08:28
test_int_literal.py
8.91
KB
-rw-r--r--
2024-04-10 08:28
test_int_literal.pyc
4.88
KB
-rw-r--r--
2024-04-10 08:28
test_int_literal.pyo
4.88
KB
-rw-r--r--
2024-04-10 08:28
test_io.py
123.4
KB
-rw-r--r--
2024-04-10 08:28
test_io.pyc
130.11
KB
-rw-r--r--
2024-04-10 08:28
test_io.pyo
130.01
KB
-rw-r--r--
2024-04-10 08:28
test_ioctl.py
3.23
KB
-rw-r--r--
2024-04-10 08:28
test_ioctl.pyc
3.5
KB
-rw-r--r--
2024-04-10 08:28
test_ioctl.pyo
3.5
KB
-rw-r--r--
2024-04-10 08:28
test_isinstance.py
9.58
KB
-rw-r--r--
2024-04-10 08:28
test_isinstance.pyc
12.32
KB
-rw-r--r--
2024-04-10 08:28
test_isinstance.pyo
12.32
KB
-rw-r--r--
2024-04-10 08:28
test_iter.py
29.3
KB
-rw-r--r--
2024-04-10 08:28
test_iter.pyc
35.38
KB
-rw-r--r--
2024-04-10 08:28
test_iter.pyo
35.35
KB
-rw-r--r--
2024-04-10 08:28
test_iterlen.py
7.95
KB
-rw-r--r--
2024-04-10 08:28
test_iterlen.pyc
12.32
KB
-rw-r--r--
2024-04-10 08:28
test_iterlen.pyo
12.32
KB
-rw-r--r--
2024-04-10 08:28
test_itertools.py
73.61
KB
-rw-r--r--
2024-04-10 08:28
test_itertools.pyc
87.46
KB
-rw-r--r--
2024-04-10 08:28
test_itertools.pyo
87.46
KB
-rw-r--r--
2024-04-10 08:28
test_json.py
327
B
-rw-r--r--
2024-04-10 08:28
test_json.pyc
670
B
-rw-r--r--
2024-04-10 08:28
test_json.pyo
670
B
-rw-r--r--
2024-04-10 08:28
test_kqueue.py
8.11
KB
-rw-r--r--
2024-04-10 08:28
test_kqueue.pyc
7.16
KB
-rw-r--r--
2024-04-10 08:28
test_kqueue.pyo
7.16
KB
-rw-r--r--
2024-04-10 08:28
test_largefile.py
7.46
KB
-rw-r--r--
2024-04-10 08:28
test_largefile.pyc
6.41
KB
-rw-r--r--
2024-04-10 08:28
test_largefile.pyo
6.41
KB
-rw-r--r--
2024-04-10 08:28
test_lib2to3.py
614
B
-rw-r--r--
2024-04-10 08:28
test_lib2to3.pyc
989
B
-rw-r--r--
2024-04-10 08:28
test_lib2to3.pyo
989
B
-rw-r--r--
2024-04-10 08:28
test_linecache.py
4.55
KB
-rw-r--r--
2024-04-10 08:28
test_linecache.pyc
4.33
KB
-rw-r--r--
2024-04-10 08:28
test_linecache.pyo
4.33
KB
-rw-r--r--
2024-04-10 08:28
test_linuxaudiodev.py
3.1
KB
-rw-r--r--
2024-04-10 08:28
test_linuxaudiodev.pyc
3.71
KB
-rw-r--r--
2024-04-10 08:28
test_linuxaudiodev.pyo
3.71
KB
-rw-r--r--
2024-04-10 08:28
test_list.py
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_list.pyc
3.1
KB
-rw-r--r--
2024-04-10 08:28
test_list.pyo
3.1
KB
-rw-r--r--
2024-04-10 08:28
test_locale.py
19.11
KB
-rw-r--r--
2024-04-10 08:28
test_locale.pyc
22.41
KB
-rw-r--r--
2024-04-10 08:28
test_locale.pyo
22.41
KB
-rw-r--r--
2024-04-10 08:28
test_logging.py
61.14
KB
-rw-r--r--
2024-04-10 08:28
test_logging.pyc
47.46
KB
-rw-r--r--
2024-04-10 08:28
test_logging.pyo
47.46
KB
-rw-r--r--
2024-04-10 08:28
test_long.py
37.45
KB
-rw-r--r--
2024-04-10 08:28
test_long.pyc
45.22
KB
-rw-r--r--
2024-04-10 08:28
test_long.pyo
45.04
KB
-rw-r--r--
2024-04-10 08:28
test_long_future.py
8.81
KB
-rw-r--r--
2024-04-10 08:28
test_long_future.pyc
12.05
KB
-rw-r--r--
2024-04-10 08:28
test_long_future.pyo
12.05
KB
-rw-r--r--
2024-04-10 08:28
test_longexp.py
318
B
-rw-r--r--
2024-04-10 08:28
test_longexp.pyc
918
B
-rw-r--r--
2024-04-10 08:28
test_longexp.pyo
918
B
-rw-r--r--
2024-04-10 08:28
test_macos.py
2.72
KB
-rw-r--r--
2024-04-10 08:28
test_macos.pyc
2.93
KB
-rw-r--r--
2024-04-10 08:28
test_macos.pyo
2.93
KB
-rw-r--r--
2024-04-10 08:28
test_macostools.py
2.92
KB
-rw-r--r--
2024-04-10 08:28
test_macostools.pyc
3.61
KB
-rw-r--r--
2024-04-10 08:28
test_macostools.pyo
3.61
KB
-rw-r--r--
2024-04-10 08:28
test_macpath.py
2.87
KB
-rw-r--r--
2024-04-10 08:28
test_macpath.pyc
3.85
KB
-rw-r--r--
2024-04-10 08:28
test_macpath.pyo
3.85
KB
-rw-r--r--
2024-04-10 08:28
test_macurl2path.py
1.8
KB
-rw-r--r--
2024-04-10 08:28
test_macurl2path.pyc
1.9
KB
-rw-r--r--
2024-04-10 08:28
test_macurl2path.pyo
1.9
KB
-rw-r--r--
2024-04-10 08:28
test_mailbox.py
84.54
KB
-rw-r--r--
2024-04-10 08:28
test_mailbox.pyc
84.45
KB
-rw-r--r--
2024-04-10 08:28
test_mailbox.pyo
84.45
KB
-rw-r--r--
2024-04-10 08:28
test_mailcap.py
10.66
KB
-rw-r--r--
2024-04-10 08:28
test_mailcap.pyc
8.28
KB
-rw-r--r--
2024-04-10 08:28
test_mailcap.pyo
8.28
KB
-rw-r--r--
2024-04-10 08:28
test_marshal.py
15.52
KB
-rw-r--r--
2024-04-10 08:28
test_marshal.pyc
17.29
KB
-rw-r--r--
2024-04-10 08:28
test_marshal.pyo
17.29
KB
-rw-r--r--
2024-04-10 08:28
test_math.py
43.45
KB
-rw-r--r--
2024-04-10 08:28
test_math.pyc
38.92
KB
-rw-r--r--
2024-04-10 08:28
test_math.pyo
38.92
KB
-rw-r--r--
2024-04-10 08:28
test_md5.py
1.75
KB
-rw-r--r--
2024-04-10 08:28
test_md5.pyc
2.74
KB
-rw-r--r--
2024-04-10 08:28
test_md5.pyo
2.74
KB
-rw-r--r--
2024-04-10 08:28
test_memoryio.py
27.79
KB
-rw-r--r--
2024-04-10 08:28
test_memoryio.pyc
28.57
KB
-rw-r--r--
2024-04-10 08:28
test_memoryio.pyo
28.57
KB
-rw-r--r--
2024-04-10 08:28
test_memoryview.py
12.34
KB
-rw-r--r--
2024-04-10 08:28
test_memoryview.pyc
13.96
KB
-rw-r--r--
2024-04-10 08:28
test_memoryview.pyo
13.96
KB
-rw-r--r--
2024-04-10 08:28
test_mhlib.py
10.88
KB
-rw-r--r--
2024-04-10 08:28
test_mhlib.pyc
11.5
KB
-rw-r--r--
2024-04-10 08:28
test_mhlib.pyo
11.5
KB
-rw-r--r--
2024-04-10 08:28
test_mimetools.py
1.74
KB
-rw-r--r--
2024-04-10 08:28
test_mimetools.pyc
2.5
KB
-rw-r--r--
2024-04-10 08:28
test_mimetools.pyo
2.5
KB
-rw-r--r--
2024-04-10 08:28
test_mimetypes.py
6.1
KB
-rw-r--r--
2024-04-10 08:28
test_mimetypes.pyc
8.4
KB
-rw-r--r--
2024-04-10 08:28
test_mimetypes.pyo
8.4
KB
-rw-r--r--
2024-04-10 08:28
test_minidom.py
61.93
KB
-rw-r--r--
2024-04-10 08:28
test_minidom.pyc
52.7
KB
-rw-r--r--
2024-04-10 08:28
test_minidom.pyo
52.7
KB
-rw-r--r--
2024-04-10 08:28
test_mmap.py
25.23
KB
-rw-r--r--
2024-04-10 08:28
test_mmap.pyc
21.5
KB
-rw-r--r--
2024-04-10 08:28
test_mmap.pyo
21.45
KB
-rw-r--r--
2024-04-10 08:28
test_module.py
2.69
KB
-rw-r--r--
2024-04-10 08:28
test_module.pyc
3.31
KB
-rw-r--r--
2024-04-10 08:28
test_module.pyo
3.31
KB
-rw-r--r--
2024-04-10 08:28
test_modulefinder.py
8.17
KB
-rw-r--r--
2024-04-10 08:28
test_modulefinder.pyc
8.2
KB
-rw-r--r--
2024-04-10 08:28
test_modulefinder.pyo
8.2
KB
-rw-r--r--
2024-04-10 08:28
test_msilib.py
3
KB
-rw-r--r--
2024-04-10 08:28
test_msilib.pyc
3.64
KB
-rw-r--r--
2024-04-10 08:28
test_msilib.pyo
3.64
KB
-rw-r--r--
2024-04-10 08:28
test_multibytecodec.py
10.82
KB
-rw-r--r--
2024-04-10 08:28
test_multibytecodec.pyc
12.39
KB
-rw-r--r--
2024-04-10 08:28
test_multibytecodec.pyo
12.39
KB
-rw-r--r--
2024-04-10 08:28
test_multifile.py
1.66
KB
-rw-r--r--
2024-04-10 08:28
test_multifile.pyc
2.03
KB
-rw-r--r--
2024-04-10 08:28
test_multifile.pyo
1.96
KB
-rw-r--r--
2024-04-10 08:28
test_multiprocessing.py
85.16
KB
-rw-r--r--
2024-04-10 08:28
test_multiprocessing.pyc
91
KB
-rw-r--r--
2024-04-10 08:28
test_multiprocessing.pyo
90.87
KB
-rw-r--r--
2024-04-10 08:28
test_mutants.py
8.3
KB
-rw-r--r--
2024-04-10 08:28
test_mutants.pyc
6.46
KB
-rw-r--r--
2024-04-10 08:28
test_mutants.pyo
6.46
KB
-rw-r--r--
2024-04-10 08:28
test_mutex.py
999
B
-rw-r--r--
2024-04-10 08:28
test_mutex.pyc
1.7
KB
-rw-r--r--
2024-04-10 08:28
test_mutex.pyo
1.7
KB
-rw-r--r--
2024-04-10 08:28
test_netrc.py
4.68
KB
-rw-r--r--
2024-04-10 08:28
test_netrc.pyc
6.57
KB
-rw-r--r--
2024-04-10 08:28
test_netrc.pyo
6.57
KB
-rw-r--r--
2024-04-10 08:28
test_new.py
5.91
KB
-rw-r--r--
2024-04-10 08:28
test_new.pyc
5.62
KB
-rw-r--r--
2024-04-10 08:28
test_new.pyo
5.62
KB
-rw-r--r--
2024-04-10 08:28
test_nis.py
1.15
KB
-rw-r--r--
2024-04-10 08:28
test_nis.pyc
1.31
KB
-rw-r--r--
2024-04-10 08:28
test_nis.pyo
1.31
KB
-rw-r--r--
2024-04-10 08:28
test_nntplib.py
1.61
KB
-rw-r--r--
2024-04-10 08:28
test_nntplib.pyc
2.9
KB
-rw-r--r--
2024-04-10 08:28
test_nntplib.pyo
2.9
KB
-rw-r--r--
2024-04-10 08:28
test_normalization.py
3.06
KB
-rw-r--r--
2024-04-10 08:28
test_normalization.pyc
4.02
KB
-rw-r--r--
2024-04-10 08:28
test_normalization.pyo
4.02
KB
-rw-r--r--
2024-04-10 08:28
test_ntpath.py
14.74
KB
-rw-r--r--
2024-04-10 08:28
test_ntpath.pyc
16.22
KB
-rw-r--r--
2024-04-10 08:28
test_ntpath.pyo
16.22
KB
-rw-r--r--
2024-04-10 08:28
test_old_mailbox.py
4.77
KB
-rw-r--r--
2024-04-10 08:28
test_old_mailbox.pyc
5.88
KB
-rw-r--r--
2024-04-10 08:28
test_old_mailbox.pyo
5.88
KB
-rw-r--r--
2024-04-10 08:28
test_opcodes.py
3.04
KB
-rw-r--r--
2024-04-10 08:28
test_opcodes.pyc
4.07
KB
-rw-r--r--
2024-04-10 08:28
test_opcodes.pyo
4.07
KB
-rw-r--r--
2024-04-10 08:28
test_openpty.py
782
B
-rw-r--r--
2024-04-10 08:28
test_openpty.py.tty-fail
681
B
-rw-r--r--
2024-04-10 08:28
test_openpty.pyc
1.28
KB
-rw-r--r--
2024-04-10 08:28
test_openpty.pyo
1.28
KB
-rw-r--r--
2024-04-10 08:28
test_operator.py
21.38
KB
-rw-r--r--
2024-04-10 08:28
test_operator.pyc
27.4
KB
-rw-r--r--
2024-04-10 08:28
test_operator.pyo
27.4
KB
-rw-r--r--
2024-04-10 08:28
test_optparse.py
61.25
KB
-rw-r--r--
2024-04-10 08:28
test_optparse.pyc
75.76
KB
-rw-r--r--
2024-04-10 08:28
test_optparse.pyo
75.76
KB
-rw-r--r--
2024-04-10 08:28
test_ordered_dict.py
13.11
KB
-rw-r--r--
2024-04-10 08:28
test_ordered_dict.pyc
16.09
KB
-rw-r--r--
2024-04-10 08:28
test_ordered_dict.pyo
16.09
KB
-rw-r--r--
2024-04-10 08:28
test_os.py
39.34
KB
-rw-r--r--
2024-04-10 08:28
test_os.pyc
36.41
KB
-rw-r--r--
2024-04-10 08:28
test_os.pyo
36.41
KB
-rw-r--r--
2024-04-10 08:28
test_ossaudiodev.py
5.95
KB
-rw-r--r--
2024-04-10 08:28
test_ossaudiodev.pyc
5.02
KB
-rw-r--r--
2024-04-10 08:28
test_ossaudiodev.pyo
5.02
KB
-rw-r--r--
2024-04-10 08:28
test_parser.py
24.81
KB
-rw-r--r--
2024-04-10 08:28
test_parser.pyc
25.07
KB
-rw-r--r--
2024-04-10 08:28
test_parser.pyo
25.07
KB
-rw-r--r--
2024-04-10 08:28
test_pdb.py
11.41
KB
-rw-r--r--
2024-04-10 08:28
test_pdb.pyc
12.95
KB
-rw-r--r--
2024-04-10 08:28
test_pdb.pyo
12.95
KB
-rw-r--r--
2024-04-10 08:28
test_peepholer.py
8.64
KB
-rw-r--r--
2024-04-10 08:28
test_peepholer.pyc
9.74
KB
-rw-r--r--
2024-04-10 08:28
test_peepholer.pyo
9.74
KB
-rw-r--r--
2024-04-10 08:28
test_pep247.py
1.99
KB
-rw-r--r--
2024-04-10 08:28
test_pep247.pyc
2.48
KB
-rw-r--r--
2024-04-10 08:28
test_pep247.pyo
2.48
KB
-rw-r--r--
2024-04-10 08:28
test_pep277.py
7.57
KB
-rw-r--r--
2024-04-10 08:28
test_pep277.pyc
7.16
KB
-rw-r--r--
2024-04-10 08:28
test_pep277.pyo
7.16
KB
-rw-r--r--
2024-04-10 08:28
test_pep352.py
8.83
KB
-rw-r--r--
2024-04-10 08:28
test_pep352.pyc
8.77
KB
-rw-r--r--
2024-04-10 08:28
test_pep352.pyo
8.77
KB
-rw-r--r--
2024-04-10 08:28
test_pickle.py
3.31
KB
-rw-r--r--
2024-04-10 08:28
test_pickle.pyc
5.09
KB
-rw-r--r--
2024-04-10 08:28
test_pickle.pyo
5.09
KB
-rw-r--r--
2024-04-10 08:28
test_pickletools.py
611
B
-rw-r--r--
2024-04-10 08:28
test_pickletools.pyc
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_pickletools.pyo
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_pipes.py
6.83
KB
-rw-r--r--
2024-04-10 08:28
test_pipes.pyc
7.21
KB
-rw-r--r--
2024-04-10 08:28
test_pipes.pyo
7.21
KB
-rw-r--r--
2024-04-10 08:28
test_pkg.py
9.25
KB
-rw-r--r--
2024-04-10 08:28
test_pkg.pyc
9.15
KB
-rw-r--r--
2024-04-10 08:28
test_pkg.pyo
9.15
KB
-rw-r--r--
2024-04-10 08:28
test_pkgimport.py
2.81
KB
-rw-r--r--
2024-04-10 08:28
test_pkgimport.pyc
3.41
KB
-rw-r--r--
2024-04-10 08:28
test_pkgimport.pyo
3.41
KB
-rw-r--r--
2024-04-10 08:28
test_pkgutil.py
4.54
KB
-rw-r--r--
2024-04-10 08:28
test_pkgutil.pyc
5.45
KB
-rw-r--r--
2024-04-10 08:28
test_pkgutil.pyo
5.45
KB
-rw-r--r--
2024-04-10 08:28
test_platform.py
11.09
KB
-rw-r--r--
2024-04-10 08:28
test_platform.pyc
12.1
KB
-rw-r--r--
2024-04-10 08:28
test_platform.pyo
12.1
KB
-rw-r--r--
2024-04-10 08:28
test_plistlib.py
7.8
KB
-rw-r--r--
2024-04-10 08:28
test_plistlib.pyc
9.15
KB
-rw-r--r--
2024-04-10 08:28
test_plistlib.pyo
9.15
KB
-rw-r--r--
2024-04-10 08:28
test_poll.py
7.14
KB
-rw-r--r--
2024-04-10 08:28
test_poll.pyc
6.96
KB
-rw-r--r--
2024-04-10 08:28
test_poll.pyo
6.96
KB
-rw-r--r--
2024-04-10 08:28
test_popen.py
1.56
KB
-rw-r--r--
2024-04-10 08:28
test_popen.pyc
1.99
KB
-rw-r--r--
2024-04-10 08:28
test_popen.pyo
1.99
KB
-rw-r--r--
2024-04-10 08:28
test_popen2.py
4.21
KB
-rw-r--r--
2024-04-10 08:28
test_popen2.pyc
4.46
KB
-rw-r--r--
2024-04-10 08:28
test_popen2.pyo
4.46
KB
-rw-r--r--
2024-04-10 08:28
test_poplib.py
10.61
KB
-rw-r--r--
2024-04-10 08:28
test_poplib.pyc
15.72
KB
-rw-r--r--
2024-04-10 08:28
test_poplib.pyo
15.66
KB
-rw-r--r--
2024-04-10 08:28
test_posix.py
26.44
KB
-rw-r--r--
2024-04-10 08:28
test_posix.pyc
24.55
KB
-rw-r--r--
2024-04-10 08:28
test_posix.pyo
24.55
KB
-rw-r--r--
2024-04-10 08:28
test_posixpath.py
21.28
KB
-rw-r--r--
2024-04-10 08:28
test_posixpath.pyc
17.92
KB
-rw-r--r--
2024-04-10 08:28
test_posixpath.pyo
17.92
KB
-rw-r--r--
2024-04-10 08:28
test_pow.py
4.51
KB
-rw-r--r--
2024-04-10 08:28
test_pow.pyc
4.67
KB
-rw-r--r--
2024-04-10 08:28
test_pow.pyo
4.67
KB
-rw-r--r--
2024-04-10 08:28
test_pprint.py
25.65
KB
-rw-r--r--
2024-04-10 08:28
test_pprint.pyc
26.24
KB
-rw-r--r--
2024-04-10 08:28
test_pprint.pyo
26.24
KB
-rw-r--r--
2024-04-10 08:28
test_print.py
4.68
KB
-rw-r--r--
2024-04-10 08:28
test_print.pyc
5.95
KB
-rw-r--r--
2024-04-10 08:28
test_print.pyo
5.95
KB
-rw-r--r--
2024-04-10 08:28
test_profile.py
7.84
KB
-rw-r--r--
2024-04-10 08:28
test_profile.pyc
8.33
KB
-rw-r--r--
2024-04-10 08:28
test_profile.pyo
8.33
KB
-rw-r--r--
2024-04-10 08:28
test_property.py
6.77
KB
-rw-r--r--
2024-04-10 08:28
test_property.pyc
11.66
KB
-rw-r--r--
2024-04-10 08:28
test_property.pyo
11.66
KB
-rw-r--r--
2024-04-10 08:28
test_pstats.py
959
B
-rw-r--r--
2024-04-10 08:28
test_pstats.pyc
1.41
KB
-rw-r--r--
2024-04-10 08:28
test_pstats.pyo
1.41
KB
-rw-r--r--
2024-04-10 08:28
test_pty.py
11.38
KB
-rw-r--r--
2024-04-10 08:28
test_pty.py.tty-fail
11.29
KB
-rw-r--r--
2024-04-10 08:28
test_pty.pyc
8.08
KB
-rw-r--r--
2024-04-10 08:28
test_pty.pyo
8.08
KB
-rw-r--r--
2024-04-10 08:28
test_pwd.py
4.19
KB
-rw-r--r--
2024-04-10 08:28
test_pwd.pyc
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_pwd.pyo
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_py3kwarn.py
18.9
KB
-rw-r--r--
2024-04-10 08:28
test_py3kwarn.pyc
23.02
KB
-rw-r--r--
2024-04-10 08:28
test_py3kwarn.pyo
23.02
KB
-rw-r--r--
2024-04-10 08:28
test_py_compile.py
1.7
KB
-rw-r--r--
2024-04-10 08:28
test_py_compile.pyc
2.42
KB
-rw-r--r--
2024-04-10 08:28
test_py_compile.pyo
2.42
KB
-rw-r--r--
2024-04-10 08:28
test_pyclbr.py
7.73
KB
-rw-r--r--
2024-04-10 08:28
test_pyclbr.pyc
6.82
KB
-rw-r--r--
2024-04-10 08:28
test_pyclbr.pyo
6.82
KB
-rw-r--r--
2024-04-10 08:28
test_pydoc.py
23.88
KB
-rw-r--r--
2024-04-10 08:28
test_pydoc.pyc
26.15
KB
-rw-r--r--
2024-04-10 08:28
test_pydoc.pyo
26.15
KB
-rw-r--r--
2024-04-10 08:28
test_pyexpat.py
25.74
KB
-rw-r--r--
2024-04-10 08:28
test_pyexpat.pyc
29.99
KB
-rw-r--r--
2024-04-10 08:28
test_pyexpat.pyo
29.99
KB
-rw-r--r--
2024-04-10 08:28
test_queue.py
11.69
KB
-rw-r--r--
2024-04-10 08:28
test_queue.pyc
10.01
KB
-rw-r--r--
2024-04-10 08:28
test_queue.pyo
10.01
KB
-rw-r--r--
2024-04-10 08:28
test_quopri.py
7.31
KB
-rw-r--r--
2024-04-10 08:28
test_quopri.pyc
7.96
KB
-rw-r--r--
2024-04-10 08:28
test_quopri.pyo
7.96
KB
-rw-r--r--
2024-04-10 08:28
test_random.py
25.16
KB
-rw-r--r--
2024-04-10 08:28
test_random.pyc
25.54
KB
-rw-r--r--
2024-04-10 08:28
test_random.pyo
25.54
KB
-rw-r--r--
2024-04-10 08:28
test_re.py
59.43
KB
-rw-r--r--
2024-04-10 08:28
test_re.pyc
53.84
KB
-rw-r--r--
2024-04-10 08:28
test_re.pyo
53.59
KB
-rw-r--r--
2024-04-10 08:28
test_readline.py
2.37
KB
-rw-r--r--
2024-04-10 08:28
test_readline.pyc
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_readline.pyo
2.58
KB
-rw-r--r--
2024-04-10 08:28
test_regrtest.py
28.5
KB
-rw-r--r--
2024-04-10 08:28
test_regrtest.pyc
27.91
KB
-rw-r--r--
2024-04-10 08:28
test_regrtest.pyo
27.91
KB
-rw-r--r--
2024-04-10 08:28
test_repr.py
12.47
KB
-rw-r--r--
2024-04-10 08:28
test_repr.pyc
15.31
KB
-rw-r--r--
2024-04-10 08:28
test_repr.pyo
15.31
KB
-rw-r--r--
2024-04-10 08:28
test_resource.py
4.76
KB
-rw-r--r--
2024-04-10 08:28
test_resource.pyc
4.07
KB
-rw-r--r--
2024-04-10 08:28
test_resource.pyo
4.07
KB
-rw-r--r--
2024-04-10 08:28
test_rfc822.py
9.24
KB
-rw-r--r--
2024-04-10 08:28
test_rfc822.pyc
9.69
KB
-rw-r--r--
2024-04-10 08:28
test_rfc822.pyo
9.69
KB
-rw-r--r--
2024-04-10 08:28
test_richcmp.py
11.2
KB
-rw-r--r--
2024-04-10 08:28
test_richcmp.pyc
15.97
KB
-rw-r--r--
2024-04-10 08:28
test_richcmp.pyo
15.97
KB
-rw-r--r--
2024-04-10 08:28
test_rlcompleter.py
4.34
KB
-rw-r--r--
2024-04-10 08:28
test_rlcompleter.pyc
4.93
KB
-rw-r--r--
2024-04-10 08:28
test_rlcompleter.pyo
4.93
KB
-rw-r--r--
2024-04-10 08:28
test_robotparser.py
6.91
KB
-rw-r--r--
2024-04-10 08:28
test_robotparser.pyc
9.81
KB
-rw-r--r--
2024-04-10 08:28
test_robotparser.pyo
9.81
KB
-rw-r--r--
2024-04-10 08:28
test_runpy.py
17.04
KB
-rw-r--r--
2024-04-10 08:28
test_runpy.pyc
16.01
KB
-rw-r--r--
2024-04-10 08:28
test_runpy.pyo
16.01
KB
-rw-r--r--
2024-04-10 08:28
test_sax.py
37.77
KB
-rw-r--r--
2024-04-10 08:28
test_sax.pyc
38.05
KB
-rw-r--r--
2024-04-10 08:28
test_sax.pyo
38.05
KB
-rw-r--r--
2024-04-10 08:28
test_scope.py
15.17
KB
-rw-r--r--
2024-04-10 08:28
test_scope.pyc
24.83
KB
-rw-r--r--
2024-04-10 08:28
test_scope.pyo
24.83
KB
-rw-r--r--
2024-04-10 08:28
test_scriptpackages.py
1.36
KB
-rw-r--r--
2024-04-10 08:28
test_scriptpackages.pyc
2.53
KB
-rw-r--r--
2024-04-10 08:28
test_scriptpackages.pyo
2.53
KB
-rw-r--r--
2024-04-10 08:28
test_select.py
2.11
KB
-rw-r--r--
2024-04-10 08:28
test_select.pyc
3.4
KB
-rw-r--r--
2024-04-10 08:28
test_select.pyo
3.4
KB
-rw-r--r--
2024-04-10 08:28
test_set.py
61.32
KB
-rw-r--r--
2024-04-10 08:28
test_set.pyc
84.45
KB
-rw-r--r--
2024-04-10 08:28
test_set.pyo
84.45
KB
-rw-r--r--
2024-04-10 08:28
test_setcomps.py
3.76
KB
-rw-r--r--
2024-04-10 08:28
test_setcomps.pyc
3.99
KB
-rw-r--r--
2024-04-10 08:28
test_setcomps.pyo
3.99
KB
-rw-r--r--
2024-04-10 08:28
test_sets.py
27.25
KB
-rw-r--r--
2024-04-10 08:28
test_sets.pyc
41.1
KB
-rw-r--r--
2024-04-10 08:28
test_sets.pyo
41.1
KB
-rw-r--r--
2024-04-10 08:28
test_sgmllib.py
15.36
KB
-rw-r--r--
2024-04-10 08:28
test_sgmllib.pyc
18.06
KB
-rw-r--r--
2024-04-10 08:28
test_sgmllib.pyo
18.06
KB
-rw-r--r--
2024-04-10 08:28
test_sha.py
1.66
KB
-rw-r--r--
2024-04-10 08:28
test_sha.pyc
2.14
KB
-rw-r--r--
2024-04-10 08:28
test_sha.pyo
2.14
KB
-rw-r--r--
2024-04-10 08:28
test_shelve.py
4.49
KB
-rw-r--r--
2024-04-10 08:28
test_shelve.pyc
6.87
KB
-rw-r--r--
2024-04-10 08:28
test_shelve.pyo
6.87
KB
-rw-r--r--
2024-04-10 08:28
test_shlex.py
5.57
KB
-rw-r--r--
2024-04-10 08:28
test_shlex.pyc
6.29
KB
-rw-r--r--
2024-04-10 08:28
test_shlex.pyo
6.29
KB
-rw-r--r--
2024-04-10 08:28
test_shutil.py
34.1
KB
-rw-r--r--
2024-04-10 08:28
test_shutil.pyc
31.38
KB
-rw-r--r--
2024-04-10 08:28
test_shutil.pyo
31.28
KB
-rw-r--r--
2024-04-10 08:28
test_signal.py
19.15
KB
-rw-r--r--
2024-04-10 08:28
test_signal.pyc
17.23
KB
-rw-r--r--
2024-04-10 08:28
test_signal.pyo
17.23
KB
-rw-r--r--
2024-04-10 08:28
test_site.py
16.93
KB
-rw-r--r--
2024-04-10 08:28
test_site.py.lib64
16.76
KB
-rw-r--r--
2024-04-10 08:28
test_site.pyc
15.99
KB
-rw-r--r--
2024-04-10 08:28
test_site.pyo
15.99
KB
-rw-r--r--
2024-04-10 08:28
test_slice.py
4.55
KB
-rw-r--r--
2024-04-10 08:28
test_slice.pyc
6.36
KB
-rw-r--r--
2024-04-10 08:28
test_slice.pyo
6.36
KB
-rw-r--r--
2024-04-10 08:28
test_smtplib.py
19.55
KB
-rw-r--r--
2024-04-10 08:28
test_smtplib.pyc
20.94
KB
-rw-r--r--
2024-04-10 08:28
test_smtplib.pyo
20.94
KB
-rw-r--r--
2024-04-10 08:28
test_smtpnet.py
818
B
-rw-r--r--
2024-04-10 08:28
test_smtpnet.pyc
1.39
KB
-rw-r--r--
2024-04-10 08:28
test_smtpnet.pyo
1.39
KB
-rw-r--r--
2024-04-10 08:28
test_socket.py
63.06
KB
-rw-r--r--
2024-04-10 08:28
test_socket.pyc
73.32
KB
-rw-r--r--
2024-04-10 08:28
test_socket.pyo
73.32
KB
-rw-r--r--
2024-04-10 08:28
test_socketserver.py
12.51
KB
-rw-r--r--
2024-04-10 08:28
test_socketserver.pyc
14.12
KB
-rw-r--r--
2024-04-10 08:28
test_socketserver.pyo
14.12
KB
-rw-r--r--
2024-04-10 08:28
test_softspace.py
640
B
-rw-r--r--
2024-04-10 08:28
test_softspace.pyc
1.32
KB
-rw-r--r--
2024-04-10 08:28
test_softspace.pyo
1.32
KB
-rw-r--r--
2024-04-10 08:28
test_sort.py
9.24
KB
-rw-r--r--
2024-04-10 08:28
test_sort.pyc
12.42
KB
-rw-r--r--
2024-04-10 08:28
test_sort.pyo
12.42
KB
-rw-r--r--
2024-04-10 08:28
test_source_encoding.py
5.92
KB
-rw-r--r--
2024-04-10 08:28
test_source_encoding.pyc
7.69
KB
-rw-r--r--
2024-04-10 08:28
test_source_encoding.pyo
7.69
KB
-rw-r--r--
2024-04-10 08:28
test_spwd.py
2.3
KB
-rw-r--r--
2024-04-10 08:28
test_spwd.pyc
2.44
KB
-rw-r--r--
2024-04-10 08:28
test_spwd.pyo
2.44
KB
-rw-r--r--
2024-04-10 08:28
test_sqlite.py
583
B
-rw-r--r--
2024-04-10 08:28
test_sqlite.pyc
841
B
-rw-r--r--
2024-04-10 08:28
test_sqlite.pyo
841
B
-rw-r--r--
2024-04-10 08:28
test_ssl.py
154.99
KB
-rw-r--r--
2024-04-10 08:28
test_ssl.pyc
114.98
KB
-rw-r--r--
2024-04-10 08:28
test_ssl.pyo
114.98
KB
-rw-r--r--
2024-04-10 08:28
test_startfile.py
1.56
KB
-rw-r--r--
2024-04-10 08:28
test_startfile.pyc
1.97
KB
-rw-r--r--
2024-04-10 08:28
test_startfile.pyo
1.97
KB
-rw-r--r--
2024-04-10 08:28
test_stat.py
5.56
KB
-rw-r--r--
2024-04-10 08:28
test_stat.pyc
5.84
KB
-rw-r--r--
2024-04-10 08:28
test_stat.pyo
5.84
KB
-rw-r--r--
2024-04-10 08:28
test_str.py
23.43
KB
-rw-r--r--
2024-04-10 08:28
test_str.pyc
24.74
KB
-rw-r--r--
2024-04-10 08:28
test_str.pyo
24.74
KB
-rw-r--r--
2024-04-10 08:28
test_strftime.py
6.91
KB
-rw-r--r--
2024-04-10 08:28
test_strftime.pyc
7.24
KB
-rw-r--r--
2024-04-10 08:28
test_strftime.pyo
7.24
KB
-rw-r--r--
2024-04-10 08:28
test_string.py
18.2
KB
-rw-r--r--
2024-04-10 08:28
test_string.pyc
21.08
KB
-rw-r--r--
2024-04-10 08:28
test_string.pyo
21.08
KB
-rw-r--r--
2024-04-10 08:28
test_stringprep.py
3.17
KB
-rw-r--r--
2024-04-10 08:28
test_stringprep.pyc
2.12
KB
-rw-r--r--
2024-04-10 08:28
test_stringprep.pyo
2.12
KB
-rw-r--r--
2024-04-10 08:28
test_strop.py
6.69
KB
-rw-r--r--
2024-04-10 08:28
test_strop.pyc
8.61
KB
-rw-r--r--
2024-04-10 08:28
test_strop.pyo
8.61
KB
-rw-r--r--
2024-04-10 08:28
test_strptime.py
28.6
KB
-rw-r--r--
2024-04-10 08:28
test_strptime.pyc
26.5
KB
-rw-r--r--
2024-04-10 08:28
test_strptime.pyo
26.5
KB
-rw-r--r--
2024-04-10 08:28
test_strtod.py
19.74
KB
-rw-r--r--
2024-04-10 08:28
test_strtod.pyc
15.32
KB
-rw-r--r--
2024-04-10 08:28
test_strtod.pyo
15.11
KB
-rw-r--r--
2024-04-10 08:28
test_struct.py
24.27
KB
-rw-r--r--
2024-04-10 08:28
test_struct.pyc
21.87
KB
-rw-r--r--
2024-04-10 08:28
test_struct.pyo
21.87
KB
-rw-r--r--
2024-04-10 08:28
test_structmembers.py
3.45
KB
-rw-r--r--
2024-04-10 08:28
test_structmembers.pyc
5.1
KB
-rw-r--r--
2024-04-10 08:28
test_structmembers.pyo
5.1
KB
-rw-r--r--
2024-04-10 08:28
test_structseq.py
3.6
KB
-rw-r--r--
2024-04-10 08:28
test_structseq.pyc
5.38
KB
-rw-r--r--
2024-04-10 08:28
test_structseq.pyo
5.38
KB
-rw-r--r--
2024-04-10 08:28
test_subprocess.py
60.93
KB
-rw-r--r--
2024-04-10 08:28
test_subprocess.pyc
54.38
KB
-rw-r--r--
2024-04-10 08:28
test_subprocess.pyo
54.38
KB
-rw-r--r--
2024-04-10 08:28
test_sunau.py
3.71
KB
-rw-r--r--
2024-04-10 08:28
test_sunau.pyc
4.57
KB
-rw-r--r--
2024-04-10 08:28
test_sunau.pyo
4.57
KB
-rw-r--r--
2024-04-10 08:28
test_sunaudiodev.py
687
B
-rw-r--r--
2024-04-10 08:28
test_sunaudiodev.pyc
1.18
KB
-rw-r--r--
2024-04-10 08:28
test_sunaudiodev.pyo
1.18
KB
-rw-r--r--
2024-04-10 08:28
test_sundry.py
2.92
KB
-rw-r--r--
2024-04-10 08:28
test_sundry.pyc
3.38
KB
-rw-r--r--
2024-04-10 08:28
test_sundry.pyo
3.38
KB
-rw-r--r--
2024-04-10 08:28
test_support.py
79
B
-rw-r--r--
2024-04-10 08:28
test_support.pyc
257
B
-rw-r--r--
2024-04-10 08:28
test_support.pyo
257
B
-rw-r--r--
2024-04-10 08:28
test_symtable.py
6.16
KB
-rw-r--r--
2024-04-10 08:28
test_symtable.pyc
8.16
KB
-rw-r--r--
2024-04-10 08:28
test_symtable.pyo
8.16
KB
-rw-r--r--
2024-04-10 08:28
test_syntax.py
27.48
KB
-rw-r--r--
2024-04-10 08:28
test_syntax.pyc
28.91
KB
-rw-r--r--
2024-04-10 08:28
test_syntax.pyo
28.91
KB
-rw-r--r--
2024-04-10 08:28
test_sys.py
31.32
KB
-rw-r--r--
2024-04-10 08:28
test_sys.pyc
28.44
KB
-rw-r--r--
2024-04-10 08:28
test_sys.pyo
28.44
KB
-rw-r--r--
2024-04-10 08:28
test_sys_setprofile.py
11.11
KB
-rw-r--r--
2024-04-10 08:28
test_sys_setprofile.pyc
16.55
KB
-rw-r--r--
2024-04-10 08:28
test_sys_setprofile.pyo
16.55
KB
-rw-r--r--
2024-04-10 08:28
test_sys_settrace.py
31.61
KB
-rw-r--r--
2024-04-10 08:28
test_sys_settrace.pyc
38.49
KB
-rw-r--r--
2024-04-10 08:28
test_sys_settrace.pyo
38.42
KB
-rw-r--r--
2024-04-10 08:28
test_sysconfig.py
12.69
KB
-rw-r--r--
2024-04-10 08:28
test_sysconfig.pyc
10.94
KB
-rw-r--r--
2024-04-10 08:28
test_sysconfig.pyo
10.94
KB
-rw-r--r--
2024-04-10 08:28
test_tarfile.py
66.43
KB
-rw-r--r--
2024-04-10 08:28
test_tarfile.pyc
69.25
KB
-rw-r--r--
2024-04-10 08:28
test_tarfile.pyo
69.25
KB
-rw-r--r--
2024-04-10 08:28
test_tcl.py
29.78
KB
-rw-r--r--
2024-04-10 08:28
test_tcl.pyc
31.81
KB
-rw-r--r--
2024-04-10 08:28
test_tcl.pyo
31.81
KB
-rw-r--r--
2024-04-10 08:28
test_telnetlib.py
15.69
KB
-rw-r--r--
2024-04-10 08:28
test_telnetlib.pyc
18.71
KB
-rw-r--r--
2024-04-10 08:28
test_telnetlib.pyo
18.71
KB
-rw-r--r--
2024-04-10 08:28
test_tempfile.py
34.97
KB
-rw-r--r--
2024-04-10 08:28
test_tempfile.pyc
35.88
KB
-rw-r--r--
2024-04-10 08:28
test_tempfile.pyo
35.88
KB
-rw-r--r--
2024-04-10 08:28
test_test_support.py
16.05
KB
-rw-r--r--
2024-04-10 08:28
test_test_support.pyc
17.68
KB
-rw-r--r--
2024-04-10 08:28
test_test_support.pyo
17.68
KB
-rw-r--r--
2024-04-10 08:28
test_textwrap.py
25.2
KB
-rw-r--r--
2024-04-10 08:28
test_textwrap.pyc
21.49
KB
-rw-r--r--
2024-04-10 08:28
test_textwrap.pyo
21.49
KB
-rw-r--r--
2024-04-10 08:28
test_thread.py
8.98
KB
-rw-r--r--
2024-04-10 08:28
test_thread.pyc
9.93
KB
-rw-r--r--
2024-04-10 08:28
test_thread.pyo
9.93
KB
-rw-r--r--
2024-04-10 08:28
test_threaded_import.py
2.52
KB
-rw-r--r--
2024-04-10 08:28
test_threaded_import.pyc
1.84
KB
-rw-r--r--
2024-04-10 08:28
test_threaded_import.pyo
1.84
KB
-rw-r--r--
2024-04-10 08:28
test_threadedtempfile.py
1.97
KB
-rw-r--r--
2024-04-10 08:28
test_threadedtempfile.pyc
2.97
KB
-rw-r--r--
2024-04-10 08:28
test_threadedtempfile.pyo
2.97
KB
-rw-r--r--
2024-04-10 08:28
test_threading.py
33.88
KB
-rw-r--r--
2024-04-10 08:28
test_threading.pyc
32.24
KB
-rw-r--r--
2024-04-10 08:28
test_threading.pyo
32.24
KB
-rw-r--r--
2024-04-10 08:28
test_threading_local.py
6.45
KB
-rw-r--r--
2024-04-10 08:28
test_threading_local.pyc
9.38
KB
-rw-r--r--
2024-04-10 08:28
test_threading_local.pyo
9.38
KB
-rw-r--r--
2024-04-10 08:28
test_threadsignals.py
2.97
KB
-rw-r--r--
2024-04-10 08:28
test_threadsignals.pyc
3.14
KB
-rw-r--r--
2024-04-10 08:28
test_threadsignals.pyo
3.14
KB
-rw-r--r--
2024-04-10 08:28
test_time.py
13.21
KB
-rw-r--r--
2024-04-10 08:28
test_time.pyc
10.91
KB
-rw-r--r--
2024-04-10 08:28
test_time.pyo
10.91
KB
-rw-r--r--
2024-04-10 08:28
test_timeit.py
11.51
KB
-rw-r--r--
2024-04-10 08:28
test_timeit.pyc
14.63
KB
-rw-r--r--
2024-04-10 08:28
test_timeit.pyo
14.63
KB
-rw-r--r--
2024-04-10 08:28
test_timeout.py
7
KB
-rw-r--r--
2024-04-10 08:28
test_timeout.pyc
7.06
KB
-rw-r--r--
2024-04-10 08:28
test_timeout.pyo
7.06
KB
-rw-r--r--
2024-04-10 08:28
test_tk.py
617
B
-rw-r--r--
2024-04-10 08:28
test_tk.pyc
892
B
-rw-r--r--
2024-04-10 08:28
test_tk.pyo
892
B
-rw-r--r--
2024-04-10 08:28
test_tokenize.py
27.53
KB
-rw-r--r--
2024-04-10 08:28
test_tokenize.pyc
27.47
KB
-rw-r--r--
2024-04-10 08:28
test_tokenize.pyo
27.47
KB
-rw-r--r--
2024-04-10 08:28
test_tools.py
13.08
KB
-rw-r--r--
2024-04-10 08:28
test_tools.pyc
14.2
KB
-rw-r--r--
2024-04-10 08:28
test_tools.pyo
14.2
KB
-rw-r--r--
2024-04-10 08:28
test_trace.py
11.54
KB
-rw-r--r--
2024-04-10 08:28
test_trace.pyc
13.67
KB
-rw-r--r--
2024-04-10 08:28
test_trace.pyo
13.67
KB
-rw-r--r--
2024-04-10 08:28
test_traceback.py
9.43
KB
-rw-r--r--
2024-04-10 08:28
test_traceback.pyc
10.17
KB
-rw-r--r--
2024-04-10 08:28
test_traceback.pyo
10.17
KB
-rw-r--r--
2024-04-10 08:28
test_transformer.py
1.09
KB
-rw-r--r--
2024-04-10 08:28
test_transformer.pyc
1.53
KB
-rw-r--r--
2024-04-10 08:28
test_transformer.pyo
1.45
KB
-rw-r--r--
2024-04-10 08:28
test_ttk_guionly.py
999
B
-rw-r--r--
2024-04-10 08:28
test_ttk_guionly.pyc
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_ttk_guionly.pyo
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_ttk_textonly.py
543
B
-rw-r--r--
2024-04-10 08:28
test_ttk_textonly.pyc
859
B
-rw-r--r--
2024-04-10 08:28
test_ttk_textonly.pyo
859
B
-rw-r--r--
2024-04-10 08:28
test_tuple.py
5.28
KB
-rw-r--r--
2024-04-10 08:28
test_tuple.pyc
7.22
KB
-rw-r--r--
2024-04-10 08:28
test_tuple.pyo
7.22
KB
-rw-r--r--
2024-04-10 08:28
test_turtle.py
12.28
KB
-rw-r--r--
2024-04-10 08:28
test_turtle.pyc
16.08
KB
-rw-r--r--
2024-04-10 08:28
test_turtle.pyo
16.08
KB
-rw-r--r--
2024-04-10 08:28
test_typechecks.py
3.09
KB
-rw-r--r--
2024-04-10 08:28
test_typechecks.pyc
5.12
KB
-rw-r--r--
2024-04-10 08:28
test_typechecks.pyo
5.12
KB
-rw-r--r--
2024-04-10 08:28
test_types.py
29.03
KB
-rw-r--r--
2024-04-10 08:28
test_types.pyc
25.3
KB
-rw-r--r--
2024-04-10 08:28
test_types.pyo
25.07
KB
-rw-r--r--
2024-04-10 08:28
test_ucn.py
5.98
KB
-rw-r--r--
2024-04-10 08:28
test_ucn.pyc
6.29
KB
-rw-r--r--
2024-04-10 08:28
test_ucn.pyo
6.29
KB
-rw-r--r--
2024-04-10 08:28
test_unary.py
1.82
KB
-rw-r--r--
2024-04-10 08:28
test_unary.pyc
2.75
KB
-rw-r--r--
2024-04-10 08:28
test_unary.pyo
2.75
KB
-rw-r--r--
2024-04-10 08:28
test_undocumented_details.py
1.14
KB
-rw-r--r--
2024-04-10 08:28
test_undocumented_details.pyc
2.03
KB
-rw-r--r--
2024-04-10 08:28
test_undocumented_details.pyo
2.03
KB
-rw-r--r--
2024-04-10 08:28
test_unicode.py
82.08
KB
-rw-r--r--
2024-04-10 08:28
test_unicode.pyc
67.56
KB
-rw-r--r--
2024-04-10 08:28
test_unicode.pyo
67.56
KB
-rw-r--r--
2024-04-10 08:28
test_unicode_file.py
8.22
KB
-rw-r--r--
2024-04-10 08:28
test_unicode_file.pyc
5.74
KB
-rw-r--r--
2024-04-10 08:28
test_unicode_file.pyo
5.74
KB
-rw-r--r--
2024-04-10 08:28
test_unicodedata.py
12.32
KB
-rw-r--r--
2024-04-10 08:28
test_unicodedata.pyc
12.23
KB
-rw-r--r--
2024-04-10 08:28
test_unicodedata.pyo
12.23
KB
-rw-r--r--
2024-04-10 08:28
test_unittest.py
202
B
-rw-r--r--
2024-04-10 08:28
test_unittest.pyc
517
B
-rw-r--r--
2024-04-10 08:28
test_unittest.pyo
517
B
-rw-r--r--
2024-04-10 08:28
test_univnewlines.py
3.98
KB
-rw-r--r--
2024-04-10 08:28
test_univnewlines.pyc
5.33
KB
-rw-r--r--
2024-04-10 08:28
test_univnewlines.pyo
5.33
KB
-rw-r--r--
2024-04-10 08:28
test_univnewlines2k.py
3.76
KB
-rw-r--r--
2024-04-10 08:28
test_univnewlines2k.pyc
5.24
KB
-rw-r--r--
2024-04-10 08:28
test_univnewlines2k.pyo
5.24
KB
-rw-r--r--
2024-04-10 08:28
test_unpack.py
2.5
KB
-rw-r--r--
2024-04-10 08:28
test_unpack.pyc
2.79
KB
-rw-r--r--
2024-04-10 08:28
test_unpack.pyo
2.79
KB
-rw-r--r--
2024-04-10 08:28
test_urllib.py
46.79
KB
-rw-r--r--
2024-04-10 08:28
test_urllib.pyc
43.86
KB
-rw-r--r--
2024-04-10 08:28
test_urllib.pyo
43.8
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2.py
58.22
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2.pyc
56.54
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2.pyo
56.37
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2_localnet.py
24.88
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2_localnet.pyc
25.92
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2_localnet.pyo
25.85
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2net.py
12.22
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2net.pyc
9.99
KB
-rw-r--r--
2024-04-10 08:28
test_urllib2net.pyo
9.99
KB
-rw-r--r--
2024-04-10 08:28
test_urllibnet.py
9.75
KB
-rw-r--r--
2024-04-10 08:28
test_urllibnet.pyc
10.23
KB
-rw-r--r--
2024-04-10 08:28
test_urllibnet.pyo
10.23
KB
-rw-r--r--
2024-04-10 08:28
test_urlparse.py
45.83
KB
-rw-r--r--
2024-04-10 08:28
test_urlparse.pyc
37.81
KB
-rw-r--r--
2024-04-10 08:28
test_urlparse.pyo
37.81
KB
-rw-r--r--
2024-04-10 08:28
test_userdict.py
12
KB
-rw-r--r--
2024-04-10 08:28
test_userdict.pyc
11.59
KB
-rw-r--r--
2024-04-10 08:28
test_userdict.pyo
11.59
KB
-rw-r--r--
2024-04-10 08:28
test_userlist.py
1.85
KB
-rw-r--r--
2024-04-10 08:28
test_userlist.pyc
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_userlist.pyo
3.22
KB
-rw-r--r--
2024-04-10 08:28
test_userstring.py
4.73
KB
-rw-r--r--
2024-04-10 08:28
test_userstring.pyc
5.33
KB
-rw-r--r--
2024-04-10 08:28
test_userstring.pyo
5.33
KB
-rw-r--r--
2024-04-10 08:28
test_uu.py
5.57
KB
-rw-r--r--
2024-04-10 08:28
test_uu.pyc
6.77
KB
-rw-r--r--
2024-04-10 08:28
test_uu.pyo
6.77
KB
-rw-r--r--
2024-04-10 08:28
test_uuid.py
22.95
KB
-rw-r--r--
2024-04-10 08:28
test_uuid.pyc
26.17
KB
-rw-r--r--
2024-04-10 08:28
test_uuid.pyo
26.17
KB
-rw-r--r--
2024-04-10 08:28
test_wait3.py
1.04
KB
-rw-r--r--
2024-04-10 08:28
test_wait3.pyc
1.52
KB
-rw-r--r--
2024-04-10 08:28
test_wait3.pyo
1.52
KB
-rw-r--r--
2024-04-10 08:28
test_wait4.py
1.12
KB
-rw-r--r--
2024-04-10 08:28
test_wait4.pyc
1.44
KB
-rw-r--r--
2024-04-10 08:28
test_wait4.pyo
1.44
KB
-rw-r--r--
2024-04-10 08:28
test_warnings.py
37.53
KB
-rw-r--r--
2024-04-10 08:28
test_warnings.pyc
32.76
KB
-rw-r--r--
2024-04-10 08:28
test_warnings.pyo
32.74
KB
-rw-r--r--
2024-04-10 08:28
test_wave.py
4.51
KB
-rw-r--r--
2024-04-10 08:28
test_wave.pyc
5.44
KB
-rw-r--r--
2024-04-10 08:28
test_wave.pyo
5.44
KB
-rw-r--r--
2024-04-10 08:28
test_weakref.py
52.49
KB
-rw-r--r--
2024-04-10 08:28
test_weakref.pyc
53.01
KB
-rw-r--r--
2024-04-10 08:28
test_weakref.pyo
53.01
KB
-rw-r--r--
2024-04-10 08:28
test_weakset.py
15.29
KB
-rw-r--r--
2024-04-10 08:28
test_weakset.pyc
19.08
KB
-rw-r--r--
2024-04-10 08:28
test_weakset.pyo
19.08
KB
-rw-r--r--
2024-04-10 08:28
test_whichdb.py
1.73
KB
-rw-r--r--
2024-04-10 08:28
test_whichdb.pyc
2.21
KB
-rw-r--r--
2024-04-10 08:28
test_whichdb.pyo
2.21
KB
-rw-r--r--
2024-04-10 08:28
test_winreg.py
20.34
KB
-rw-r--r--
2024-04-10 08:28
test_winreg.pyc
15.32
KB
-rw-r--r--
2024-04-10 08:28
test_winreg.pyo
15.32
KB
-rw-r--r--
2024-04-10 08:28
test_winsound.py
3.58
KB
-rw-r--r--
2024-04-10 08:28
test_winsound.pyc
5.37
KB
-rw-r--r--
2024-04-10 08:28
test_winsound.pyo
5.37
KB
-rw-r--r--
2024-04-10 08:28
test_with.py
25.8
KB
-rw-r--r--
2024-04-10 08:28
test_with.pyc
34.27
KB
-rw-r--r--
2024-04-10 08:28
test_with.pyo
34.27
KB
-rw-r--r--
2024-04-10 08:28
test_wsgiref.py
20.37
KB
-rw-r--r--
2024-04-10 08:28
test_wsgiref.pyc
23.46
KB
-rw-r--r--
2024-04-10 08:28
test_wsgiref.pyo
23.46
KB
-rw-r--r--
2024-04-10 08:28
test_xdrlib.py
2.3
KB
-rw-r--r--
2024-04-10 08:28
test_xdrlib.pyc
3.53
KB
-rw-r--r--
2024-04-10 08:28
test_xdrlib.pyo
3.53
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree.py
97.72
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree.pyc
99.26
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree.pyo
99.26
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree_c.py
2.68
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree_c.pyc
2.95
KB
-rw-r--r--
2024-04-10 08:28
test_xml_etree_c.pyo
2.95
KB
-rw-r--r--
2024-04-10 08:28
test_xmllib.py
1.27
KB
-rw-r--r--
2024-04-10 08:28
test_xmllib.pyc
2.11
KB
-rw-r--r--
2024-04-10 08:28
test_xmllib.pyo
2.11
KB
-rw-r--r--
2024-04-10 08:28
test_xmlrpc.py
42.81
KB
-rw-r--r--
2024-04-10 08:28
test_xmlrpc.pyc
44.93
KB
-rw-r--r--
2024-04-10 08:28
test_xmlrpc.pyo
44.93
KB
-rw-r--r--
2024-04-10 08:28
test_xpickle.py
8.08
KB
-rw-r--r--
2024-04-10 08:28
test_xpickle.pyc
8.47
KB
-rw-r--r--
2024-04-10 08:28
test_xpickle.pyo
8.47
KB
-rw-r--r--
2024-04-10 08:28
test_xrange.py
7.64
KB
-rw-r--r--
2024-04-10 08:28
test_xrange.pyc
7
KB
-rw-r--r--
2024-04-10 08:28
test_xrange.pyo
7
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile.py
73.16
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile.pyc
69.85
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile.pyo
69.85
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile64.py
5.93
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile64.pyc
5.46
KB
-rw-r--r--
2024-04-10 08:28
test_zipfile64.pyo
5.46
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport.py
16.42
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport.pyc
16.61
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport.pyo
16.61
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport_support.py
10.6
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport_support.pyc
7.13
KB
-rw-r--r--
2024-04-10 08:28
test_zipimport_support.pyo
7.07
KB
-rw-r--r--
2024-04-10 08:28
test_zlib.py
28.84
KB
-rw-r--r--
2024-04-10 08:28
test_zlib.pyc
27.87
KB
-rw-r--r--
2024-04-10 08:28
test_zlib.pyo
27.87
KB
-rw-r--r--
2024-04-10 08:28
testall.py
274
B
-rw-r--r--
2024-04-10 08:28
testall.pyc
392
B
-rw-r--r--
2024-04-10 08:28
testall.pyo
392
B
-rw-r--r--
2024-04-10 08:28
testcodec.py
1.02
KB
-rw-r--r--
2024-04-10 08:28
testcodec.pyc
1.68
KB
-rw-r--r--
2024-04-10 08:28
testcodec.pyo
1.68
KB
-rw-r--r--
2024-04-10 08:28
testimg.uue
70.67
KB
-rw-r--r--
2024-04-10 08:28
testimgr.uue
70.67
KB
-rw-r--r--
2024-04-10 08:28
testrgb.uue
58.63
KB
-rw-r--r--
2024-04-10 08:28
testtar.tar
275
KB
-rw-r--r--
2024-04-10 08:28
tf_inherit_check.py
581
B
-rw-r--r--
2024-04-10 08:28
tf_inherit_check.pyc
542
B
-rw-r--r--
2024-04-10 08:28
tf_inherit_check.pyo
542
B
-rw-r--r--
2024-04-10 08:28
threaded_import_hangers.py
1.38
KB
-rw-r--r--
2024-04-10 08:28
threaded_import_hangers.pyc
1.22
KB
-rw-r--r--
2024-04-10 08:28
threaded_import_hangers.pyo
1.22
KB
-rw-r--r--
2024-04-10 08:28
time_hashlib.py
2.79
KB
-rw-r--r--
2024-04-10 08:28
time_hashlib.pyc
3.19
KB
-rw-r--r--
2024-04-10 08:28
time_hashlib.pyo
3.19
KB
-rw-r--r--
2024-04-10 08:28
tokenize_tests.txt
2.39
KB
-rw-r--r--
2024-04-10 08:28
warning_tests.py
240
B
-rw-r--r--
2024-04-10 08:28
warning_tests.pyc
535
B
-rw-r--r--
2024-04-10 08:28
warning_tests.pyo
535
B
-rw-r--r--
2024-04-10 08:28
win_console_handler.py
1.39
KB
-rw-r--r--
2024-04-10 08:28
win_console_handler.pyc
1.42
KB
-rw-r--r--
2024-04-10 08:28
win_console_handler.pyo
1.42
KB
-rw-r--r--
2024-04-10 08:28
xmltests.py
497
B
-rw-r--r--
2024-04-10 08:28
xmltests.pyc
753
B
-rw-r--r--
2024-04-10 08:28
xmltests.pyo
753
B
-rw-r--r--
2024-04-10 08:28
zipdir.zip
374
B
-rw-r--r--
2024-04-10 08:28
Save
Rename
# # Unit tests for the multiprocessing package # import unittest import Queue import time import sys import os import gc import signal import array import socket import random import logging import errno import weakref import test.script_helper from test import support from StringIO import StringIO _multiprocessing = support.import_module('_multiprocessing') # import threading after _multiprocessing to raise a more relevant error # message: "No module named _multiprocessing". _multiprocessing is not compiled # without thread support. import threading # Work around broken sem_open implementations support.import_module('multiprocessing.synchronize') import multiprocessing.dummy import multiprocessing.connection import multiprocessing.managers import multiprocessing.heap import multiprocessing.pool from multiprocessing import util try: from multiprocessing import reduction HAS_REDUCTION = True except ImportError: HAS_REDUCTION = False try: from multiprocessing.sharedctypes import Value, copy HAS_SHAREDCTYPES = True except ImportError: HAS_SHAREDCTYPES = False try: import msvcrt except ImportError: msvcrt = None # # # latin = str # # Constants # LOG_LEVEL = util.SUBWARNING #LOG_LEVEL = logging.DEBUG DELTA = 0.1 CHECK_TIMINGS = False # making true makes tests take a lot longer # and can sometimes cause some non-serious # failures because some calls block a bit # longer than expected if CHECK_TIMINGS: TIMEOUT1, TIMEOUT2, TIMEOUT3 = 0.82, 0.35, 1.4 else: TIMEOUT1, TIMEOUT2, TIMEOUT3 = 0.1, 0.1, 0.1 HAVE_GETVALUE = not getattr(_multiprocessing, 'HAVE_BROKEN_SEM_GETVALUE', False) WIN32 = (sys.platform == "win32") try: MAXFD = os.sysconf("SC_OPEN_MAX") except: MAXFD = 256 # # Some tests require ctypes # try: from ctypes import Structure, c_int, c_double except ImportError: Structure = object c_int = c_double = None def check_enough_semaphores(): """Check that the system supports enough semaphores to run the test.""" # minimum number of semaphores available according to POSIX nsems_min = 256 try: nsems = os.sysconf("SC_SEM_NSEMS_MAX") except (AttributeError, ValueError): # sysconf not available or setting not available return if nsems == -1 or nsems >= nsems_min: return raise unittest.SkipTest("The OS doesn't support enough semaphores " "to run the test (required: %d)." % nsems_min) # # Creates a wrapper for a function which records the time it takes to finish # class TimingWrapper(object): def __init__(self, func): self.func = func self.elapsed = None def __call__(self, *args, **kwds): t = time.time() try: return self.func(*args, **kwds) finally: self.elapsed = time.time() - t # # Base class for test cases # class BaseTestCase(object): ALLOWED_TYPES = ('processes', 'manager', 'threads') def assertTimingAlmostEqual(self, a, b): if CHECK_TIMINGS: self.assertAlmostEqual(a, b, 1) def assertReturnsIfImplemented(self, value, func, *args): try: res = func(*args) except NotImplementedError: pass else: return self.assertEqual(value, res) # For the sanity of Windows users, rather than crashing or freezing in # multiple ways. def __reduce__(self, *args): raise NotImplementedError("shouldn't try to pickle a test case") __reduce_ex__ = __reduce__ # # Return the value of a semaphore # def get_value(self): try: return self.get_value() except AttributeError: try: return self._Semaphore__value except AttributeError: try: return self._value except AttributeError: raise NotImplementedError # # Testcases # class DummyCallable(object): def __call__(self, q, c): assert isinstance(c, DummyCallable) q.put(5) class _TestProcess(BaseTestCase): ALLOWED_TYPES = ('processes', 'threads') def test_current(self): if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) current = self.current_process() authkey = current.authkey self.assertTrue(current.is_alive()) self.assertTrue(not current.daemon) self.assertIsInstance(authkey, bytes) self.assertTrue(len(authkey) > 0) self.assertEqual(current.ident, os.getpid()) self.assertEqual(current.exitcode, None) @classmethod def _test(cls, q, *args, **kwds): current = cls.current_process() q.put(args) q.put(kwds) q.put(current.name) if cls.TYPE != 'threads': q.put(bytes(current.authkey)) q.put(current.pid) def test_process(self): q = self.Queue(1) e = self.Event() args = (q, 1, 2) kwargs = {'hello':23, 'bye':2.54} name = 'SomeProcess' p = self.Process( target=self._test, args=args, kwargs=kwargs, name=name ) p.daemon = True current = self.current_process() if self.TYPE != 'threads': self.assertEqual(p.authkey, current.authkey) self.assertEqual(p.is_alive(), False) self.assertEqual(p.daemon, True) self.assertNotIn(p, self.active_children()) self.assertTrue(type(self.active_children()) is list) self.assertEqual(p.exitcode, None) p.start() self.assertEqual(p.exitcode, None) self.assertEqual(p.is_alive(), True) self.assertIn(p, self.active_children()) self.assertEqual(q.get(), args[1:]) self.assertEqual(q.get(), kwargs) self.assertEqual(q.get(), p.name) if self.TYPE != 'threads': self.assertEqual(q.get(), current.authkey) self.assertEqual(q.get(), p.pid) p.join() self.assertEqual(p.exitcode, 0) self.assertEqual(p.is_alive(), False) self.assertNotIn(p, self.active_children()) @classmethod def _test_terminate(cls): time.sleep(1000) def test_terminate(self): if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) p = self.Process(target=self._test_terminate) p.daemon = True p.start() self.assertEqual(p.is_alive(), True) self.assertIn(p, self.active_children()) self.assertEqual(p.exitcode, None) p.terminate() join = TimingWrapper(p.join) self.assertEqual(join(), None) self.assertTimingAlmostEqual(join.elapsed, 0.0) self.assertEqual(p.is_alive(), False) self.assertNotIn(p, self.active_children()) p.join() # XXX sometimes get p.exitcode == 0 on Windows ... #self.assertEqual(p.exitcode, -signal.SIGTERM) def test_cpu_count(self): try: cpus = multiprocessing.cpu_count() except NotImplementedError: cpus = 1 self.assertTrue(type(cpus) is int) self.assertTrue(cpus >= 1) def test_active_children(self): self.assertEqual(type(self.active_children()), list) p = self.Process(target=time.sleep, args=(DELTA,)) self.assertNotIn(p, self.active_children()) p.daemon = True p.start() self.assertIn(p, self.active_children()) p.join() self.assertNotIn(p, self.active_children()) @classmethod def _test_recursion(cls, wconn, id): from multiprocessing import forking wconn.send(id) if len(id) < 2: for i in range(2): p = cls.Process( target=cls._test_recursion, args=(wconn, id+[i]) ) p.start() p.join() def test_recursion(self): rconn, wconn = self.Pipe(duplex=False) self._test_recursion(wconn, []) time.sleep(DELTA) result = [] while rconn.poll(): result.append(rconn.recv()) expected = [ [], [0], [0, 0], [0, 1], [1], [1, 0], [1, 1] ] self.assertEqual(result, expected) @classmethod def _test_sys_exit(cls, reason, testfn): sys.stderr = open(testfn, 'w') sys.exit(reason) def test_sys_exit(self): # See Issue 13854 if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) testfn = support.TESTFN self.addCleanup(support.unlink, testfn) for reason, code in (([1, 2, 3], 1), ('ignore this', 1)): p = self.Process(target=self._test_sys_exit, args=(reason, testfn)) p.daemon = True p.start() p.join(5) self.assertEqual(p.exitcode, code) with open(testfn, 'r') as f: self.assertEqual(f.read().rstrip(), str(reason)) for reason in (True, False, 8): p = self.Process(target=sys.exit, args=(reason,)) p.daemon = True p.start() p.join(5) self.assertEqual(p.exitcode, reason) def test_lose_target_ref(self): c = DummyCallable() wr = weakref.ref(c) q = self.Queue() p = self.Process(target=c, args=(q, c)) del c p.start() p.join() self.assertIs(wr(), None) self.assertEqual(q.get(), 5) # # # class _UpperCaser(multiprocessing.Process): def __init__(self): multiprocessing.Process.__init__(self) self.child_conn, self.parent_conn = multiprocessing.Pipe() def run(self): self.parent_conn.close() for s in iter(self.child_conn.recv, None): self.child_conn.send(s.upper()) self.child_conn.close() def submit(self, s): assert type(s) is str self.parent_conn.send(s) return self.parent_conn.recv() def stop(self): self.parent_conn.send(None) self.parent_conn.close() self.child_conn.close() class _TestSubclassingProcess(BaseTestCase): ALLOWED_TYPES = ('processes',) def test_subclassing(self): uppercaser = _UpperCaser() uppercaser.daemon = True uppercaser.start() self.assertEqual(uppercaser.submit('hello'), 'HELLO') self.assertEqual(uppercaser.submit('world'), 'WORLD') uppercaser.stop() uppercaser.join() # # # def queue_empty(q): if hasattr(q, 'empty'): return q.empty() else: return q.qsize() == 0 def queue_full(q, maxsize): if hasattr(q, 'full'): return q.full() else: return q.qsize() == maxsize class _TestQueue(BaseTestCase): @classmethod def _test_put(cls, queue, child_can_start, parent_can_continue): child_can_start.wait() for i in range(6): queue.get() parent_can_continue.set() def test_put(self): MAXSIZE = 6 queue = self.Queue(maxsize=MAXSIZE) child_can_start = self.Event() parent_can_continue = self.Event() proc = self.Process( target=self._test_put, args=(queue, child_can_start, parent_can_continue) ) proc.daemon = True proc.start() self.assertEqual(queue_empty(queue), True) self.assertEqual(queue_full(queue, MAXSIZE), False) queue.put(1) queue.put(2, True) queue.put(3, True, None) queue.put(4, False) queue.put(5, False, None) queue.put_nowait(6) # the values may be in buffer but not yet in pipe so sleep a bit time.sleep(DELTA) self.assertEqual(queue_empty(queue), False) self.assertEqual(queue_full(queue, MAXSIZE), True) put = TimingWrapper(queue.put) put_nowait = TimingWrapper(queue.put_nowait) self.assertRaises(Queue.Full, put, 7, False) self.assertTimingAlmostEqual(put.elapsed, 0) self.assertRaises(Queue.Full, put, 7, False, None) self.assertTimingAlmostEqual(put.elapsed, 0) self.assertRaises(Queue.Full, put_nowait, 7) self.assertTimingAlmostEqual(put_nowait.elapsed, 0) self.assertRaises(Queue.Full, put, 7, True, TIMEOUT1) self.assertTimingAlmostEqual(put.elapsed, TIMEOUT1) self.assertRaises(Queue.Full, put, 7, False, TIMEOUT2) self.assertTimingAlmostEqual(put.elapsed, 0) self.assertRaises(Queue.Full, put, 7, True, timeout=TIMEOUT3) self.assertTimingAlmostEqual(put.elapsed, TIMEOUT3) child_can_start.set() parent_can_continue.wait() self.assertEqual(queue_empty(queue), True) self.assertEqual(queue_full(queue, MAXSIZE), False) proc.join() @classmethod def _test_get(cls, queue, child_can_start, parent_can_continue): child_can_start.wait() #queue.put(1) queue.put(2) queue.put(3) queue.put(4) queue.put(5) parent_can_continue.set() def test_get(self): queue = self.Queue() child_can_start = self.Event() parent_can_continue = self.Event() proc = self.Process( target=self._test_get, args=(queue, child_can_start, parent_can_continue) ) proc.daemon = True proc.start() self.assertEqual(queue_empty(queue), True) child_can_start.set() parent_can_continue.wait() time.sleep(DELTA) self.assertEqual(queue_empty(queue), False) # Hangs unexpectedly, remove for now #self.assertEqual(queue.get(), 1) self.assertEqual(queue.get(True, None), 2) self.assertEqual(queue.get(True), 3) self.assertEqual(queue.get(timeout=1), 4) self.assertEqual(queue.get_nowait(), 5) self.assertEqual(queue_empty(queue), True) get = TimingWrapper(queue.get) get_nowait = TimingWrapper(queue.get_nowait) self.assertRaises(Queue.Empty, get, False) self.assertTimingAlmostEqual(get.elapsed, 0) self.assertRaises(Queue.Empty, get, False, None) self.assertTimingAlmostEqual(get.elapsed, 0) self.assertRaises(Queue.Empty, get_nowait) self.assertTimingAlmostEqual(get_nowait.elapsed, 0) self.assertRaises(Queue.Empty, get, True, TIMEOUT1) self.assertTimingAlmostEqual(get.elapsed, TIMEOUT1) self.assertRaises(Queue.Empty, get, False, TIMEOUT2) self.assertTimingAlmostEqual(get.elapsed, 0) self.assertRaises(Queue.Empty, get, timeout=TIMEOUT3) self.assertTimingAlmostEqual(get.elapsed, TIMEOUT3) proc.join() @classmethod def _test_fork(cls, queue): for i in range(10, 20): queue.put(i) # note that at this point the items may only be buffered, so the # process cannot shutdown until the feeder thread has finished # pushing items onto the pipe. def test_fork(self): # Old versions of Queue would fail to create a new feeder # thread for a forked process if the original process had its # own feeder thread. This test checks that this no longer # happens. queue = self.Queue() # put items on queue so that main process starts a feeder thread for i in range(10): queue.put(i) # wait to make sure thread starts before we fork a new process time.sleep(DELTA) # fork process p = self.Process(target=self._test_fork, args=(queue,)) p.daemon = True p.start() # check that all expected items are in the queue for i in range(20): self.assertEqual(queue.get(), i) self.assertRaises(Queue.Empty, queue.get, False) p.join() def test_qsize(self): q = self.Queue() try: self.assertEqual(q.qsize(), 0) except NotImplementedError: self.skipTest('qsize method not implemented') q.put(1) self.assertEqual(q.qsize(), 1) q.put(5) self.assertEqual(q.qsize(), 2) q.get() self.assertEqual(q.qsize(), 1) q.get() self.assertEqual(q.qsize(), 0) @classmethod def _test_task_done(cls, q): for obj in iter(q.get, None): time.sleep(DELTA) q.task_done() def test_task_done(self): queue = self.JoinableQueue() if sys.version_info < (2, 5) and not hasattr(queue, 'task_done'): self.skipTest("requires 'queue.task_done()' method") workers = [self.Process(target=self._test_task_done, args=(queue,)) for i in xrange(4)] for p in workers: p.daemon = True p.start() for i in xrange(10): queue.put(i) queue.join() for p in workers: queue.put(None) for p in workers: p.join() def test_no_import_lock_contention(self): with support.temp_cwd(): module_name = 'imported_by_an_imported_module' with open(module_name + '.py', 'w') as f: f.write("""if 1: import multiprocessing q = multiprocessing.Queue() q.put('knock knock') q.get(timeout=3) q.close() """) with support.DirsOnSysPath(os.getcwd()): try: __import__(module_name) except Queue.Empty: self.fail("Probable regression on import lock contention;" " see Issue #22853") def test_queue_feeder_donot_stop_onexc(self): # bpo-30414: verify feeder handles exceptions correctly if self.TYPE != 'processes': self.skipTest('test not appropriate for {}'.format(self.TYPE)) class NotSerializable(object): def __reduce__(self): raise AttributeError with test.support.captured_stderr(): q = self.Queue() q.put(NotSerializable()) q.put(True) # bpo-30595: use a timeout of 1 second for slow buildbots self.assertTrue(q.get(timeout=1.0)) # # # class _TestLock(BaseTestCase): def test_lock(self): lock = self.Lock() self.assertEqual(lock.acquire(), True) self.assertEqual(lock.acquire(False), False) self.assertEqual(lock.release(), None) self.assertRaises((ValueError, threading.ThreadError), lock.release) def test_rlock(self): lock = self.RLock() self.assertEqual(lock.acquire(), True) self.assertEqual(lock.acquire(), True) self.assertEqual(lock.acquire(), True) self.assertEqual(lock.release(), None) self.assertEqual(lock.release(), None) self.assertEqual(lock.release(), None) self.assertRaises((AssertionError, RuntimeError), lock.release) def test_lock_context(self): with self.Lock(): pass class _TestSemaphore(BaseTestCase): def _test_semaphore(self, sem): self.assertReturnsIfImplemented(2, get_value, sem) self.assertEqual(sem.acquire(), True) self.assertReturnsIfImplemented(1, get_value, sem) self.assertEqual(sem.acquire(), True) self.assertReturnsIfImplemented(0, get_value, sem) self.assertEqual(sem.acquire(False), False) self.assertReturnsIfImplemented(0, get_value, sem) self.assertEqual(sem.release(), None) self.assertReturnsIfImplemented(1, get_value, sem) self.assertEqual(sem.release(), None) self.assertReturnsIfImplemented(2, get_value, sem) def test_semaphore(self): sem = self.Semaphore(2) self._test_semaphore(sem) self.assertEqual(sem.release(), None) self.assertReturnsIfImplemented(3, get_value, sem) self.assertEqual(sem.release(), None) self.assertReturnsIfImplemented(4, get_value, sem) def test_bounded_semaphore(self): sem = self.BoundedSemaphore(2) self._test_semaphore(sem) # Currently fails on OS/X #if HAVE_GETVALUE: # self.assertRaises(ValueError, sem.release) # self.assertReturnsIfImplemented(2, get_value, sem) def test_timeout(self): if self.TYPE != 'processes': self.skipTest('test not appropriate for {}'.format(self.TYPE)) sem = self.Semaphore(0) acquire = TimingWrapper(sem.acquire) self.assertEqual(acquire(False), False) self.assertTimingAlmostEqual(acquire.elapsed, 0.0) self.assertEqual(acquire(False, None), False) self.assertTimingAlmostEqual(acquire.elapsed, 0.0) self.assertEqual(acquire(False, TIMEOUT1), False) self.assertTimingAlmostEqual(acquire.elapsed, 0) self.assertEqual(acquire(True, TIMEOUT2), False) self.assertTimingAlmostEqual(acquire.elapsed, TIMEOUT2) self.assertEqual(acquire(timeout=TIMEOUT3), False) self.assertTimingAlmostEqual(acquire.elapsed, TIMEOUT3) class _TestCondition(BaseTestCase): @classmethod def f(cls, cond, sleeping, woken, timeout=None): cond.acquire() sleeping.release() cond.wait(timeout) woken.release() cond.release() def check_invariant(self, cond): # this is only supposed to succeed when there are no sleepers if self.TYPE == 'processes': try: sleepers = (cond._sleeping_count.get_value() - cond._woken_count.get_value()) self.assertEqual(sleepers, 0) self.assertEqual(cond._wait_semaphore.get_value(), 0) except NotImplementedError: pass def test_notify(self): cond = self.Condition() sleeping = self.Semaphore(0) woken = self.Semaphore(0) p = self.Process(target=self.f, args=(cond, sleeping, woken)) p.daemon = True p.start() p = threading.Thread(target=self.f, args=(cond, sleeping, woken)) p.daemon = True p.start() # wait for both children to start sleeping sleeping.acquire() sleeping.acquire() # check no process/thread has woken up time.sleep(DELTA) self.assertReturnsIfImplemented(0, get_value, woken) # wake up one process/thread cond.acquire() cond.notify() cond.release() # check one process/thread has woken up time.sleep(DELTA) self.assertReturnsIfImplemented(1, get_value, woken) # wake up another cond.acquire() cond.notify() cond.release() # check other has woken up time.sleep(DELTA) self.assertReturnsIfImplemented(2, get_value, woken) # check state is not mucked up self.check_invariant(cond) p.join() def test_notify_all(self): cond = self.Condition() sleeping = self.Semaphore(0) woken = self.Semaphore(0) # start some threads/processes which will timeout for i in range(3): p = self.Process(target=self.f, args=(cond, sleeping, woken, TIMEOUT1)) p.daemon = True p.start() t = threading.Thread(target=self.f, args=(cond, sleeping, woken, TIMEOUT1)) t.daemon = True t.start() # wait for them all to sleep for i in xrange(6): sleeping.acquire() # check they have all timed out for i in xrange(6): woken.acquire() self.assertReturnsIfImplemented(0, get_value, woken) # check state is not mucked up self.check_invariant(cond) # start some more threads/processes for i in range(3): p = self.Process(target=self.f, args=(cond, sleeping, woken)) p.daemon = True p.start() t = threading.Thread(target=self.f, args=(cond, sleeping, woken)) t.daemon = True t.start() # wait for them to all sleep for i in xrange(6): sleeping.acquire() # check no process/thread has woken up time.sleep(DELTA) self.assertReturnsIfImplemented(0, get_value, woken) # wake them all up cond.acquire() cond.notify_all() cond.release() # check they have all woken for i in range(10): try: if get_value(woken) == 6: break except NotImplementedError: break time.sleep(DELTA) self.assertReturnsIfImplemented(6, get_value, woken) # check state is not mucked up self.check_invariant(cond) def test_timeout(self): cond = self.Condition() wait = TimingWrapper(cond.wait) cond.acquire() res = wait(TIMEOUT1) cond.release() self.assertEqual(res, None) self.assertTimingAlmostEqual(wait.elapsed, TIMEOUT1) class _TestEvent(BaseTestCase): @classmethod def _test_event(cls, event): time.sleep(TIMEOUT2) event.set() def test_event(self): event = self.Event() wait = TimingWrapper(event.wait) # Removed temporarily, due to API shear, this does not # work with threading._Event objects. is_set == isSet self.assertEqual(event.is_set(), False) # Removed, threading.Event.wait() will return the value of the __flag # instead of None. API Shear with the semaphore backed mp.Event self.assertEqual(wait(0.0), False) self.assertTimingAlmostEqual(wait.elapsed, 0.0) self.assertEqual(wait(TIMEOUT1), False) self.assertTimingAlmostEqual(wait.elapsed, TIMEOUT1) event.set() # See note above on the API differences self.assertEqual(event.is_set(), True) self.assertEqual(wait(), True) self.assertTimingAlmostEqual(wait.elapsed, 0.0) self.assertEqual(wait(TIMEOUT1), True) self.assertTimingAlmostEqual(wait.elapsed, 0.0) # self.assertEqual(event.is_set(), True) event.clear() #self.assertEqual(event.is_set(), False) p = self.Process(target=self._test_event, args=(event,)) p.daemon = True p.start() self.assertEqual(wait(), True) # # # class _TestValue(BaseTestCase): ALLOWED_TYPES = ('processes',) codes_values = [ ('i', 4343, 24234), ('d', 3.625, -4.25), ('h', -232, 234), ('c', latin('x'), latin('y')) ] def setUp(self): if not HAS_SHAREDCTYPES: self.skipTest("requires multiprocessing.sharedctypes") @classmethod def _test(cls, values): for sv, cv in zip(values, cls.codes_values): sv.value = cv[2] def test_value(self, raw=False): if raw: values = [self.RawValue(code, value) for code, value, _ in self.codes_values] else: values = [self.Value(code, value) for code, value, _ in self.codes_values] for sv, cv in zip(values, self.codes_values): self.assertEqual(sv.value, cv[1]) proc = self.Process(target=self._test, args=(values,)) proc.daemon = True proc.start() proc.join() for sv, cv in zip(values, self.codes_values): self.assertEqual(sv.value, cv[2]) def test_rawvalue(self): self.test_value(raw=True) def test_getobj_getlock(self): val1 = self.Value('i', 5) lock1 = val1.get_lock() obj1 = val1.get_obj() val2 = self.Value('i', 5, lock=None) lock2 = val2.get_lock() obj2 = val2.get_obj() lock = self.Lock() val3 = self.Value('i', 5, lock=lock) lock3 = val3.get_lock() obj3 = val3.get_obj() self.assertEqual(lock, lock3) arr4 = self.Value('i', 5, lock=False) self.assertFalse(hasattr(arr4, 'get_lock')) self.assertFalse(hasattr(arr4, 'get_obj')) self.assertRaises(AttributeError, self.Value, 'i', 5, lock='navalue') arr5 = self.RawValue('i', 5) self.assertFalse(hasattr(arr5, 'get_lock')) self.assertFalse(hasattr(arr5, 'get_obj')) class _TestArray(BaseTestCase): ALLOWED_TYPES = ('processes',) @classmethod def f(cls, seq): for i in range(1, len(seq)): seq[i] += seq[i-1] @unittest.skipIf(c_int is None, "requires _ctypes") def test_array(self, raw=False): seq = [680, 626, 934, 821, 150, 233, 548, 982, 714, 831] if raw: arr = self.RawArray('i', seq) else: arr = self.Array('i', seq) self.assertEqual(len(arr), len(seq)) self.assertEqual(arr[3], seq[3]) self.assertEqual(list(arr[2:7]), list(seq[2:7])) arr[4:8] = seq[4:8] = array.array('i', [1, 2, 3, 4]) self.assertEqual(list(arr[:]), seq) self.f(seq) p = self.Process(target=self.f, args=(arr,)) p.daemon = True p.start() p.join() self.assertEqual(list(arr[:]), seq) @unittest.skipIf(c_int is None, "requires _ctypes") def test_array_from_size(self): size = 10 # Test for zeroing (see issue #11675). # The repetition below strengthens the test by increasing the chances # of previously allocated non-zero memory being used for the new array # on the 2nd and 3rd loops. for _ in range(3): arr = self.Array('i', size) self.assertEqual(len(arr), size) self.assertEqual(list(arr), [0] * size) arr[:] = range(10) self.assertEqual(list(arr), range(10)) del arr @unittest.skipIf(c_int is None, "requires _ctypes") def test_rawarray(self): self.test_array(raw=True) @unittest.skipIf(c_int is None, "requires _ctypes") def test_array_accepts_long(self): arr = self.Array('i', 10L) self.assertEqual(len(arr), 10) raw_arr = self.RawArray('i', 10L) self.assertEqual(len(raw_arr), 10) @unittest.skipIf(c_int is None, "requires _ctypes") def test_getobj_getlock_obj(self): arr1 = self.Array('i', range(10)) lock1 = arr1.get_lock() obj1 = arr1.get_obj() arr2 = self.Array('i', range(10), lock=None) lock2 = arr2.get_lock() obj2 = arr2.get_obj() lock = self.Lock() arr3 = self.Array('i', range(10), lock=lock) lock3 = arr3.get_lock() obj3 = arr3.get_obj() self.assertEqual(lock, lock3) arr4 = self.Array('i', range(10), lock=False) self.assertFalse(hasattr(arr4, 'get_lock')) self.assertFalse(hasattr(arr4, 'get_obj')) self.assertRaises(AttributeError, self.Array, 'i', range(10), lock='notalock') arr5 = self.RawArray('i', range(10)) self.assertFalse(hasattr(arr5, 'get_lock')) self.assertFalse(hasattr(arr5, 'get_obj')) # # # class _TestContainers(BaseTestCase): ALLOWED_TYPES = ('manager',) def test_list(self): a = self.list(range(10)) self.assertEqual(a[:], range(10)) b = self.list() self.assertEqual(b[:], []) b.extend(range(5)) self.assertEqual(b[:], range(5)) self.assertEqual(b[2], 2) self.assertEqual(b[2:10], [2,3,4]) b *= 2 self.assertEqual(b[:], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]) self.assertEqual(b + [5, 6], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6]) self.assertEqual(a[:], range(10)) d = [a, b] e = self.list(d) self.assertEqual( e[:], [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]] ) f = self.list([a]) a.append('hello') self.assertEqual(f[:], [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'hello']]) def test_list_iter(self): a = self.list(range(10)) it = iter(a) self.assertEqual(list(it), range(10)) self.assertEqual(list(it), []) # exhausted # list modified during iteration it = iter(a) a[0] = 100 self.assertEqual(next(it), 100) def test_dict(self): d = self.dict() indices = range(65, 70) for i in indices: d[i] = chr(i) self.assertEqual(d.copy(), dict((i, chr(i)) for i in indices)) self.assertEqual(sorted(d.keys()), indices) self.assertEqual(sorted(d.values()), [chr(i) for i in indices]) self.assertEqual(sorted(d.items()), [(i, chr(i)) for i in indices]) def test_dict_iter(self): d = self.dict() indices = range(65, 70) for i in indices: d[i] = chr(i) it = iter(d) self.assertEqual(list(it), indices) self.assertEqual(list(it), []) # exhausted # dictionary changed size during iteration it = iter(d) d.clear() self.assertRaises(RuntimeError, next, it) def test_namespace(self): n = self.Namespace() n.name = 'Bob' n.job = 'Builder' n._hidden = 'hidden' self.assertEqual((n.name, n.job), ('Bob', 'Builder')) del n.job self.assertEqual(str(n), "Namespace(name='Bob')") self.assertTrue(hasattr(n, 'name')) self.assertTrue(not hasattr(n, 'job')) # # # def sqr(x, wait=0.0): time.sleep(wait) return x*x def identity(x): return x class CountedObject(object): n_instances = 0 def __new__(cls): cls.n_instances += 1 return object.__new__(cls) def __del__(self): type(self).n_instances -= 1 class SayWhenError(ValueError): pass def exception_throwing_generator(total, when): for i in range(total): if i == when: raise SayWhenError("Somebody said when") yield i class _TestPool(BaseTestCase): def test_apply(self): papply = self.pool.apply self.assertEqual(papply(sqr, (5,)), sqr(5)) self.assertEqual(papply(sqr, (), {'x':3}), sqr(x=3)) def test_map(self): pmap = self.pool.map self.assertEqual(pmap(sqr, range(10)), map(sqr, range(10))) self.assertEqual(pmap(sqr, range(100), chunksize=20), map(sqr, range(100))) def test_map_unplicklable(self): # Issue #19425 -- failure to pickle should not cause a hang if self.TYPE == 'threads': self.skipTest('test not appropriate for {}'.format(self.TYPE)) class A(object): def __reduce__(self): raise RuntimeError('cannot pickle') with self.assertRaises(RuntimeError): self.pool.map(sqr, [A()]*10) def test_map_chunksize(self): try: self.pool.map_async(sqr, [], chunksize=1).get(timeout=TIMEOUT1) except multiprocessing.TimeoutError: self.fail("pool.map_async with chunksize stalled on null list") def test_async(self): res = self.pool.apply_async(sqr, (7, TIMEOUT1,)) get = TimingWrapper(res.get) self.assertEqual(get(), 49) self.assertTimingAlmostEqual(get.elapsed, TIMEOUT1) def test_async_timeout(self): res = self.pool.apply_async(sqr, (6, TIMEOUT2 + 1.0)) get = TimingWrapper(res.get) self.assertRaises(multiprocessing.TimeoutError, get, timeout=TIMEOUT2) self.assertTimingAlmostEqual(get.elapsed, TIMEOUT2) def test_imap(self): it = self.pool.imap(sqr, range(10)) self.assertEqual(list(it), map(sqr, range(10))) it = self.pool.imap(sqr, range(10)) for i in range(10): self.assertEqual(it.next(), i*i) self.assertRaises(StopIteration, it.next) it = self.pool.imap(sqr, range(1000), chunksize=100) for i in range(1000): self.assertEqual(it.next(), i*i) self.assertRaises(StopIteration, it.next) def test_imap_handle_iterable_exception(self): if self.TYPE == 'manager': self.skipTest('test not appropriate for {}'.format(self.TYPE)) it = self.pool.imap(sqr, exception_throwing_generator(10, 3), 1) for i in range(3): self.assertEqual(next(it), i*i) self.assertRaises(SayWhenError, it.next) # SayWhenError seen at start of problematic chunk's results it = self.pool.imap(sqr, exception_throwing_generator(20, 7), 2) for i in range(6): self.assertEqual(next(it), i*i) self.assertRaises(SayWhenError, it.next) it = self.pool.imap(sqr, exception_throwing_generator(20, 7), 4) for i in range(4): self.assertEqual(next(it), i*i) self.assertRaises(SayWhenError, it.next) def test_imap_unordered(self): it = self.pool.imap_unordered(sqr, range(100)) self.assertEqual(sorted(it), map(sqr, range(100))) it = self.pool.imap_unordered(sqr, range(1000), chunksize=100) self.assertEqual(sorted(it), map(sqr, range(1000))) def test_imap_unordered_handle_iterable_exception(self): if self.TYPE == 'manager': self.skipTest('test not appropriate for {}'.format(self.TYPE)) it = self.pool.imap_unordered(sqr, exception_throwing_generator(10, 3), 1) expected_values = map(sqr, range(10)) with self.assertRaises(SayWhenError): # imap_unordered makes it difficult to anticipate the SayWhenError for i in range(10): value = next(it) self.assertIn(value, expected_values) expected_values.remove(value) it = self.pool.imap_unordered(sqr, exception_throwing_generator(20, 7), 2) expected_values = map(sqr, range(20)) with self.assertRaises(SayWhenError): for i in range(20): value = next(it) self.assertIn(value, expected_values) expected_values.remove(value) def test_make_pool(self): self.assertRaises(ValueError, multiprocessing.Pool, -1) self.assertRaises(ValueError, multiprocessing.Pool, 0) p = multiprocessing.Pool(3) self.assertEqual(3, len(p._pool)) p.close() p.join() def test_terminate(self): p = self.Pool(4) result = p.map_async( time.sleep, [0.1 for i in range(10000)], chunksize=1 ) p.terminate() join = TimingWrapper(p.join) join() self.assertTrue(join.elapsed < 0.2) def test_empty_iterable(self): # See Issue 12157 p = self.Pool(1) self.assertEqual(p.map(sqr, []), []) self.assertEqual(list(p.imap(sqr, [])), []) self.assertEqual(list(p.imap_unordered(sqr, [])), []) self.assertEqual(p.map_async(sqr, []).get(), []) p.close() p.join() def test_release_task_refs(self): # Issue #29861: task arguments and results should not be kept # alive after we are done with them. objs = list(CountedObject() for i in range(10)) refs = list(weakref.ref(o) for o in objs) self.pool.map(identity, objs) del objs time.sleep(DELTA) # let threaded cleanup code run self.assertEqual(set(wr() for wr in refs), {None}) # With a process pool, copies of the objects are returned, check # they were released too. self.assertEqual(CountedObject.n_instances, 0) def unpickleable_result(): return lambda: 42 class _TestPoolWorkerErrors(BaseTestCase): ALLOWED_TYPES = ('processes', ) def test_unpickleable_result(self): from multiprocessing.pool import MaybeEncodingError p = multiprocessing.Pool(2) # Make sure we don't lose pool processes because of encoding errors. for iteration in range(20): res = p.apply_async(unpickleable_result) self.assertRaises(MaybeEncodingError, res.get) p.close() p.join() class _TestPoolWorkerLifetime(BaseTestCase): ALLOWED_TYPES = ('processes', ) def test_pool_worker_lifetime(self): p = multiprocessing.Pool(3, maxtasksperchild=10) self.assertEqual(3, len(p._pool)) origworkerpids = [w.pid for w in p._pool] # Run many tasks so each worker gets replaced (hopefully) results = [] for i in range(100): results.append(p.apply_async(sqr, (i, ))) # Fetch the results and verify we got the right answers, # also ensuring all the tasks have completed. for (j, res) in enumerate(results): self.assertEqual(res.get(), sqr(j)) # Refill the pool p._repopulate_pool() # Wait until all workers are alive # (countdown * DELTA = 5 seconds max startup process time) countdown = 50 while countdown and not all(w.is_alive() for w in p._pool): countdown -= 1 time.sleep(DELTA) finalworkerpids = [w.pid for w in p._pool] # All pids should be assigned. See issue #7805. self.assertNotIn(None, origworkerpids) self.assertNotIn(None, finalworkerpids) # Finally, check that the worker pids have changed self.assertNotEqual(sorted(origworkerpids), sorted(finalworkerpids)) p.close() p.join() def test_pool_worker_lifetime_early_close(self): # Issue #10332: closing a pool whose workers have limited lifetimes # before all the tasks completed would make join() hang. p = multiprocessing.Pool(3, maxtasksperchild=1) results = [] for i in range(6): results.append(p.apply_async(sqr, (i, 0.3))) p.close() p.join() # check the results for (j, res) in enumerate(results): self.assertEqual(res.get(), sqr(j)) # # Test that manager has expected number of shared objects left # class _TestZZZNumberOfObjects(BaseTestCase): # Because test cases are sorted alphabetically, this one will get # run after all the other tests for the manager. It tests that # there have been no "reference leaks" for the manager's shared # objects. Note the comment in _TestPool.test_terminate(). ALLOWED_TYPES = ('manager',) def test_number_of_objects(self): EXPECTED_NUMBER = 1 # the pool object is still alive multiprocessing.active_children() # discard dead process objs gc.collect() # do garbage collection refs = self.manager._number_of_objects() debug_info = self.manager._debug_info() if refs != EXPECTED_NUMBER: print self.manager._debug_info() print debug_info self.assertEqual(refs, EXPECTED_NUMBER) # # Test of creating a customized manager class # from multiprocessing.managers import BaseManager, BaseProxy, RemoteError class FooBar(object): def f(self): return 'f()' def g(self): raise ValueError def _h(self): return '_h()' def baz(): for i in xrange(10): yield i*i class IteratorProxy(BaseProxy): _exposed_ = ('next', '__next__') def __iter__(self): return self def next(self): return self._callmethod('next') def __next__(self): return self._callmethod('__next__') class MyManager(BaseManager): pass MyManager.register('Foo', callable=FooBar) MyManager.register('Bar', callable=FooBar, exposed=('f', '_h')) MyManager.register('baz', callable=baz, proxytype=IteratorProxy) class _TestMyManager(BaseTestCase): ALLOWED_TYPES = ('manager',) def test_mymanager(self): manager = MyManager() manager.start() foo = manager.Foo() bar = manager.Bar() baz = manager.baz() foo_methods = [name for name in ('f', 'g', '_h') if hasattr(foo, name)] bar_methods = [name for name in ('f', 'g', '_h') if hasattr(bar, name)] self.assertEqual(foo_methods, ['f', 'g']) self.assertEqual(bar_methods, ['f', '_h']) self.assertEqual(foo.f(), 'f()') self.assertRaises(ValueError, foo.g) self.assertEqual(foo._callmethod('f'), 'f()') self.assertRaises(RemoteError, foo._callmethod, '_h') self.assertEqual(bar.f(), 'f()') self.assertEqual(bar._h(), '_h()') self.assertEqual(bar._callmethod('f'), 'f()') self.assertEqual(bar._callmethod('_h'), '_h()') self.assertEqual(list(baz), [i*i for i in range(10)]) manager.shutdown() # # Test of connecting to a remote server and using xmlrpclib for serialization # _queue = Queue.Queue() def get_queue(): return _queue class QueueManager(BaseManager): '''manager class used by server process''' QueueManager.register('get_queue', callable=get_queue) class QueueManager2(BaseManager): '''manager class which specifies the same interface as QueueManager''' QueueManager2.register('get_queue') SERIALIZER = 'xmlrpclib' class _TestRemoteManager(BaseTestCase): ALLOWED_TYPES = ('manager',) values = ['hello world', None, True, 2.25, #'hall\xc3\xa5 v\xc3\xa4rlden'] # UTF-8 ] result = values[:] if support.have_unicode: #result[-1] = u'hall\xe5 v\xe4rlden' uvalue = support.u(r'\u043f\u0440\u0438\u0432\u0456\u0442 ' r'\u0441\u0432\u0456\u0442') values.append(uvalue) result.append(uvalue) @classmethod def _putter(cls, address, authkey): manager = QueueManager2( address=address, authkey=authkey, serializer=SERIALIZER ) manager.connect() queue = manager.get_queue() # Note that xmlrpclib will deserialize object as a list not a tuple queue.put(tuple(cls.values)) def test_remote(self): authkey = os.urandom(32) manager = QueueManager( address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER ) manager.start() p = self.Process(target=self._putter, args=(manager.address, authkey)) p.daemon = True p.start() manager2 = QueueManager2( address=manager.address, authkey=authkey, serializer=SERIALIZER ) manager2.connect() queue = manager2.get_queue() self.assertEqual(queue.get(), self.result) # Because we are using xmlrpclib for serialization instead of # pickle this will cause a serialization error. self.assertRaises(Exception, queue.put, time.sleep) # Make queue finalizer run before the server is stopped del queue manager.shutdown() class _TestManagerRestart(BaseTestCase): @classmethod def _putter(cls, address, authkey): manager = QueueManager( address=address, authkey=authkey, serializer=SERIALIZER) manager.connect() queue = manager.get_queue() queue.put('hello world') def test_rapid_restart(self): authkey = os.urandom(32) manager = QueueManager( address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER) srvr = manager.get_server() addr = srvr.address # Close the connection.Listener socket which gets opened as a part # of manager.get_server(). It's not needed for the test. srvr.listener.close() manager.start() p = self.Process(target=self._putter, args=(manager.address, authkey)) p.start() p.join() queue = manager.get_queue() self.assertEqual(queue.get(), 'hello world') del queue manager.shutdown() manager = QueueManager( address=addr, authkey=authkey, serializer=SERIALIZER) manager.start() manager.shutdown() # # # SENTINEL = latin('') class _TestConnection(BaseTestCase): ALLOWED_TYPES = ('processes', 'threads') @classmethod def _echo(cls, conn): for msg in iter(conn.recv_bytes, SENTINEL): conn.send_bytes(msg) conn.close() def test_connection(self): conn, child_conn = self.Pipe() p = self.Process(target=self._echo, args=(child_conn,)) p.daemon = True p.start() seq = [1, 2.25, None] msg = latin('hello world') longmsg = msg * 10 arr = array.array('i', range(4)) if self.TYPE == 'processes': self.assertEqual(type(conn.fileno()), int) self.assertEqual(conn.send(seq), None) self.assertEqual(conn.recv(), seq) self.assertEqual(conn.send_bytes(msg), None) self.assertEqual(conn.recv_bytes(), msg) if self.TYPE == 'processes': buffer = array.array('i', [0]*10) expected = list(arr) + [0] * (10 - len(arr)) self.assertEqual(conn.send_bytes(arr), None) self.assertEqual(conn.recv_bytes_into(buffer), len(arr) * buffer.itemsize) self.assertEqual(list(buffer), expected) buffer = array.array('i', [0]*10) expected = [0] * 3 + list(arr) + [0] * (10 - 3 - len(arr)) self.assertEqual(conn.send_bytes(arr), None) self.assertEqual(conn.recv_bytes_into(buffer, 3 * buffer.itemsize), len(arr) * buffer.itemsize) self.assertEqual(list(buffer), expected) buffer = bytearray(latin(' ' * 40)) self.assertEqual(conn.send_bytes(longmsg), None) try: res = conn.recv_bytes_into(buffer) except multiprocessing.BufferTooShort, e: self.assertEqual(e.args, (longmsg,)) else: self.fail('expected BufferTooShort, got %s' % res) poll = TimingWrapper(conn.poll) self.assertEqual(poll(), False) self.assertTimingAlmostEqual(poll.elapsed, 0) self.assertEqual(poll(TIMEOUT1), False) self.assertTimingAlmostEqual(poll.elapsed, TIMEOUT1) conn.send(None) time.sleep(.1) self.assertEqual(poll(TIMEOUT1), True) self.assertTimingAlmostEqual(poll.elapsed, 0) self.assertEqual(conn.recv(), None) really_big_msg = latin('X') * (1024 * 1024 * 16) # 16Mb conn.send_bytes(really_big_msg) self.assertEqual(conn.recv_bytes(), really_big_msg) conn.send_bytes(SENTINEL) # tell child to quit child_conn.close() if self.TYPE == 'processes': self.assertEqual(conn.readable, True) self.assertEqual(conn.writable, True) self.assertRaises(EOFError, conn.recv) self.assertRaises(EOFError, conn.recv_bytes) p.join() def test_duplex_false(self): reader, writer = self.Pipe(duplex=False) self.assertEqual(writer.send(1), None) self.assertEqual(reader.recv(), 1) if self.TYPE == 'processes': self.assertEqual(reader.readable, True) self.assertEqual(reader.writable, False) self.assertEqual(writer.readable, False) self.assertEqual(writer.writable, True) self.assertRaises(IOError, reader.send, 2) self.assertRaises(IOError, writer.recv) self.assertRaises(IOError, writer.poll) def test_spawn_close(self): # We test that a pipe connection can be closed by parent # process immediately after child is spawned. On Windows this # would have sometimes failed on old versions because # child_conn would be closed before the child got a chance to # duplicate it. conn, child_conn = self.Pipe() p = self.Process(target=self._echo, args=(child_conn,)) p.daemon = True p.start() child_conn.close() # this might complete before child initializes msg = latin('hello') conn.send_bytes(msg) self.assertEqual(conn.recv_bytes(), msg) conn.send_bytes(SENTINEL) conn.close() p.join() def test_sendbytes(self): if self.TYPE != 'processes': self.skipTest('test not appropriate for {}'.format(self.TYPE)) msg = latin('abcdefghijklmnopqrstuvwxyz') a, b = self.Pipe() a.send_bytes(msg) self.assertEqual(b.recv_bytes(), msg) a.send_bytes(msg, 5) self.assertEqual(b.recv_bytes(), msg[5:]) a.send_bytes(msg, 7, 8) self.assertEqual(b.recv_bytes(), msg[7:7+8]) a.send_bytes(msg, 26) self.assertEqual(b.recv_bytes(), latin('')) a.send_bytes(msg, 26, 0) self.assertEqual(b.recv_bytes(), latin('')) self.assertRaises(ValueError, a.send_bytes, msg, 27) self.assertRaises(ValueError, a.send_bytes, msg, 22, 5) self.assertRaises(ValueError, a.send_bytes, msg, 26, 1) self.assertRaises(ValueError, a.send_bytes, msg, -1) self.assertRaises(ValueError, a.send_bytes, msg, 4, -1) @classmethod def _is_fd_assigned(cls, fd): try: os.fstat(fd) except OSError as e: if e.errno == errno.EBADF: return False raise else: return True @classmethod def _writefd(cls, conn, data, create_dummy_fds=False): if create_dummy_fds: for i in range(0, 256): if not cls._is_fd_assigned(i): os.dup2(conn.fileno(), i) fd = reduction.recv_handle(conn) if msvcrt: fd = msvcrt.open_osfhandle(fd, os.O_WRONLY) os.write(fd, data) os.close(fd) @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction") def test_fd_transfer(self): if self.TYPE != 'processes': self.skipTest("only makes sense with processes") conn, child_conn = self.Pipe(duplex=True) p = self.Process(target=self._writefd, args=(child_conn, b"foo")) p.daemon = True p.start() self.addCleanup(support.unlink, support.TESTFN) with open(support.TESTFN, "wb") as f: fd = f.fileno() if msvcrt: fd = msvcrt.get_osfhandle(fd) reduction.send_handle(conn, fd, p.pid) p.join() with open(support.TESTFN, "rb") as f: self.assertEqual(f.read(), b"foo") @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction") @unittest.skipIf(sys.platform == "win32", "test semantics don't make sense on Windows") @unittest.skipIf(MAXFD <= 256, "largest assignable fd number is too small") @unittest.skipUnless(hasattr(os, "dup2"), "test needs os.dup2()") def test_large_fd_transfer(self): # With fd > 256 (issue #11657) if self.TYPE != 'processes': self.skipTest("only makes sense with processes") conn, child_conn = self.Pipe(duplex=True) p = self.Process(target=self._writefd, args=(child_conn, b"bar", True)) p.daemon = True p.start() self.addCleanup(support.unlink, support.TESTFN) with open(support.TESTFN, "wb") as f: fd = f.fileno() for newfd in range(256, MAXFD): if not self._is_fd_assigned(newfd): break else: self.fail("could not find an unassigned large file descriptor") os.dup2(fd, newfd) try: reduction.send_handle(conn, newfd, p.pid) finally: os.close(newfd) p.join() with open(support.TESTFN, "rb") as f: self.assertEqual(f.read(), b"bar") @classmethod def _send_data_without_fd(self, conn): os.write(conn.fileno(), b"\0") @unittest.skipUnless(HAS_REDUCTION, "test needs multiprocessing.reduction") @unittest.skipIf(sys.platform == "win32", "doesn't make sense on Windows") def test_missing_fd_transfer(self): # Check that exception is raised when received data is not # accompanied by a file descriptor in ancillary data. if self.TYPE != 'processes': self.skipTest("only makes sense with processes") conn, child_conn = self.Pipe(duplex=True) p = self.Process(target=self._send_data_without_fd, args=(child_conn,)) p.daemon = True p.start() self.assertRaises(RuntimeError, reduction.recv_handle, conn) p.join() class _TestListenerClient(BaseTestCase): ALLOWED_TYPES = ('processes', 'threads') @classmethod def _test(cls, address): conn = cls.connection.Client(address) conn.send('hello') conn.close() def test_listener_client(self): for family in self.connection.families: l = self.connection.Listener(family=family) p = self.Process(target=self._test, args=(l.address,)) p.daemon = True p.start() conn = l.accept() self.assertEqual(conn.recv(), 'hello') p.join() l.close() def test_issue14725(self): l = self.connection.Listener() p = self.Process(target=self._test, args=(l.address,)) p.daemon = True p.start() time.sleep(1) # On Windows the client process should by now have connected, # written data and closed the pipe handle by now. This causes # ConnectNamdedPipe() to fail with ERROR_NO_DATA. See Issue # 14725. conn = l.accept() self.assertEqual(conn.recv(), 'hello') conn.close() p.join() l.close() # # Test of sending connection and socket objects between processes # """ class _TestPicklingConnections(BaseTestCase): ALLOWED_TYPES = ('processes',) def _listener(self, conn, families): for fam in families: l = self.connection.Listener(family=fam) conn.send(l.address) new_conn = l.accept() conn.send(new_conn) if self.TYPE == 'processes': l = socket.socket() l.bind(('localhost', 0)) conn.send(l.getsockname()) l.listen(1) new_conn, addr = l.accept() conn.send(new_conn) conn.recv() def _remote(self, conn): for (address, msg) in iter(conn.recv, None): client = self.connection.Client(address) client.send(msg.upper()) client.close() if self.TYPE == 'processes': address, msg = conn.recv() client = socket.socket() client.connect(address) client.sendall(msg.upper()) client.close() conn.close() def test_pickling(self): try: multiprocessing.allow_connection_pickling() except ImportError: return families = self.connection.families lconn, lconn0 = self.Pipe() lp = self.Process(target=self._listener, args=(lconn0, families)) lp.daemon = True lp.start() lconn0.close() rconn, rconn0 = self.Pipe() rp = self.Process(target=self._remote, args=(rconn0,)) rp.daemon = True rp.start() rconn0.close() for fam in families: msg = ('This connection uses family %s' % fam).encode('ascii') address = lconn.recv() rconn.send((address, msg)) new_conn = lconn.recv() self.assertEqual(new_conn.recv(), msg.upper()) rconn.send(None) if self.TYPE == 'processes': msg = latin('This connection uses a normal socket') address = lconn.recv() rconn.send((address, msg)) if hasattr(socket, 'fromfd'): new_conn = lconn.recv() self.assertEqual(new_conn.recv(100), msg.upper()) else: # XXX On Windows with Py2.6 need to backport fromfd() discard = lconn.recv_bytes() lconn.send(None) rconn.close() lconn.close() lp.join() rp.join() """ # # # class _TestHeap(BaseTestCase): ALLOWED_TYPES = ('processes',) def test_heap(self): iterations = 5000 maxblocks = 50 blocks = [] # create and destroy lots of blocks of different sizes for i in xrange(iterations): size = int(random.lognormvariate(0, 1) * 1000) b = multiprocessing.heap.BufferWrapper(size) blocks.append(b) if len(blocks) > maxblocks: i = random.randrange(maxblocks) del blocks[i] # get the heap object heap = multiprocessing.heap.BufferWrapper._heap # verify the state of the heap all = [] occupied = 0 heap._lock.acquire() self.addCleanup(heap._lock.release) for L in heap._len_to_seq.values(): for arena, start, stop in L: all.append((heap._arenas.index(arena), start, stop, stop-start, 'free')) for arena, start, stop in heap._allocated_blocks: all.append((heap._arenas.index(arena), start, stop, stop-start, 'occupied')) occupied += (stop-start) all.sort() for i in range(len(all)-1): (arena, start, stop) = all[i][:3] (narena, nstart, nstop) = all[i+1][:3] self.assertTrue((arena != narena and nstart == 0) or (stop == nstart)) def test_free_from_gc(self): # Check that freeing of blocks by the garbage collector doesn't deadlock # (issue #12352). # Make sure the GC is enabled, and set lower collection thresholds to # make collections more frequent (and increase the probability of # deadlock). if not gc.isenabled(): gc.enable() self.addCleanup(gc.disable) thresholds = gc.get_threshold() self.addCleanup(gc.set_threshold, *thresholds) gc.set_threshold(10) # perform numerous block allocations, with cyclic references to make # sure objects are collected asynchronously by the gc for i in range(5000): a = multiprocessing.heap.BufferWrapper(1) b = multiprocessing.heap.BufferWrapper(1) # circular references a.buddy = b b.buddy = a # # # class _Foo(Structure): _fields_ = [ ('x', c_int), ('y', c_double) ] class _TestSharedCTypes(BaseTestCase): ALLOWED_TYPES = ('processes',) def setUp(self): if not HAS_SHAREDCTYPES: self.skipTest("requires multiprocessing.sharedctypes") @classmethod def _double(cls, x, y, foo, arr, string): x.value *= 2 y.value *= 2 foo.x *= 2 foo.y *= 2 string.value *= 2 for i in range(len(arr)): arr[i] *= 2 def test_sharedctypes(self, lock=False): x = Value('i', 7, lock=lock) y = Value(c_double, 1.0/3.0, lock=lock) foo = Value(_Foo, 3, 2, lock=lock) arr = self.Array('d', range(10), lock=lock) string = self.Array('c', 20, lock=lock) string.value = latin('hello') p = self.Process(target=self._double, args=(x, y, foo, arr, string)) p.daemon = True p.start() p.join() self.assertEqual(x.value, 14) self.assertAlmostEqual(y.value, 2.0/3.0) self.assertEqual(foo.x, 6) self.assertAlmostEqual(foo.y, 4.0) for i in range(10): self.assertAlmostEqual(arr[i], i*2) self.assertEqual(string.value, latin('hellohello')) def test_synchronize(self): self.test_sharedctypes(lock=True) def test_copy(self): foo = _Foo(2, 5.0) bar = copy(foo) foo.x = 0 foo.y = 0 self.assertEqual(bar.x, 2) self.assertAlmostEqual(bar.y, 5.0) # # # class _TestFinalize(BaseTestCase): ALLOWED_TYPES = ('processes',) def setUp(self): self.registry_backup = util._finalizer_registry.copy() util._finalizer_registry.clear() def tearDown(self): self.assertFalse(util._finalizer_registry) util._finalizer_registry.update(self.registry_backup) @classmethod def _test_finalize(cls, conn): class Foo(object): pass a = Foo() util.Finalize(a, conn.send, args=('a',)) del a # triggers callback for a b = Foo() close_b = util.Finalize(b, conn.send, args=('b',)) close_b() # triggers callback for b close_b() # does nothing because callback has already been called del b # does nothing because callback has already been called c = Foo() util.Finalize(c, conn.send, args=('c',)) d10 = Foo() util.Finalize(d10, conn.send, args=('d10',), exitpriority=1) d01 = Foo() util.Finalize(d01, conn.send, args=('d01',), exitpriority=0) d02 = Foo() util.Finalize(d02, conn.send, args=('d02',), exitpriority=0) d03 = Foo() util.Finalize(d03, conn.send, args=('d03',), exitpriority=0) util.Finalize(None, conn.send, args=('e',), exitpriority=-10) util.Finalize(None, conn.send, args=('STOP',), exitpriority=-100) # call multiprocessing's cleanup function then exit process without # garbage collecting locals util._exit_function() conn.close() os._exit(0) def test_finalize(self): conn, child_conn = self.Pipe() p = self.Process(target=self._test_finalize, args=(child_conn,)) p.daemon = True p.start() p.join() result = [obj for obj in iter(conn.recv, 'STOP')] self.assertEqual(result, ['a', 'b', 'd10', 'd03', 'd02', 'd01', 'e']) def test_thread_safety(self): # bpo-24484: _run_finalizers() should be thread-safe def cb(): pass class Foo(object): def __init__(self): self.ref = self # create reference cycle # insert finalizer at random key util.Finalize(self, cb, exitpriority=random.randint(1, 100)) finish = False exc = [] def run_finalizers(): while not finish: time.sleep(random.random() * 1e-1) try: # A GC run will eventually happen during this, # collecting stale Foo's and mutating the registry util._run_finalizers() except Exception as e: exc.append(e) def make_finalizers(): d = {} while not finish: try: # Old Foo's get gradually replaced and later # collected by the GC (because of the cyclic ref) d[random.getrandbits(5)] = {Foo() for i in range(10)} except Exception as e: exc.append(e) d.clear() old_interval = sys.getcheckinterval() old_threshold = gc.get_threshold() try: sys.setcheckinterval(10) gc.set_threshold(5, 5, 5) threads = [threading.Thread(target=run_finalizers), threading.Thread(target=make_finalizers)] with support.start_threads(threads): time.sleep(4.0) # Wait a bit to trigger race condition finish = True if exc: raise exc[0] finally: sys.setcheckinterval(old_interval) gc.set_threshold(*old_threshold) gc.collect() # Collect remaining Foo's # # Test that from ... import * works for each module # class _TestImportStar(BaseTestCase): ALLOWED_TYPES = ('processes',) def test_import(self): modules = [ 'multiprocessing', 'multiprocessing.connection', 'multiprocessing.heap', 'multiprocessing.managers', 'multiprocessing.pool', 'multiprocessing.process', 'multiprocessing.synchronize', 'multiprocessing.util' ] if HAS_REDUCTION: modules.append('multiprocessing.reduction') if c_int is not None: # This module requires _ctypes modules.append('multiprocessing.sharedctypes') for name in modules: __import__(name) mod = sys.modules[name] for attr in getattr(mod, '__all__', ()): self.assertTrue( hasattr(mod, attr), '%r does not have attribute %r' % (mod, attr) ) # # Quick test that logging works -- does not test logging output # class _TestLogging(BaseTestCase): ALLOWED_TYPES = ('processes',) def test_enable_logging(self): logger = multiprocessing.get_logger() logger.setLevel(util.SUBWARNING) self.assertTrue(logger is not None) logger.debug('this will not be printed') logger.info('nor will this') logger.setLevel(LOG_LEVEL) @classmethod def _test_level(cls, conn): logger = multiprocessing.get_logger() conn.send(logger.getEffectiveLevel()) def test_level(self): LEVEL1 = 32 LEVEL2 = 37 logger = multiprocessing.get_logger() root_logger = logging.getLogger() root_level = root_logger.level reader, writer = multiprocessing.Pipe(duplex=False) logger.setLevel(LEVEL1) p = self.Process(target=self._test_level, args=(writer,)) p.daemon = True p.start() self.assertEqual(LEVEL1, reader.recv()) logger.setLevel(logging.NOTSET) root_logger.setLevel(LEVEL2) p = self.Process(target=self._test_level, args=(writer,)) p.daemon = True p.start() self.assertEqual(LEVEL2, reader.recv()) root_logger.setLevel(root_level) logger.setLevel(level=LOG_LEVEL) # class _TestLoggingProcessName(BaseTestCase): # # def handle(self, record): # assert record.processName == multiprocessing.current_process().name # self.__handled = True # # def test_logging(self): # handler = logging.Handler() # handler.handle = self.handle # self.__handled = False # # Bypass getLogger() and side-effects # logger = logging.getLoggerClass()( # 'multiprocessing.test.TestLoggingProcessName') # logger.addHandler(handler) # logger.propagate = False # # logger.warn('foo') # assert self.__handled # # Check that Process.join() retries if os.waitpid() fails with EINTR # class _TestPollEintr(BaseTestCase): ALLOWED_TYPES = ('processes',) @classmethod def _killer(cls, pid): time.sleep(0.5) os.kill(pid, signal.SIGUSR1) @unittest.skipUnless(hasattr(signal, 'SIGUSR1'), 'requires SIGUSR1') def test_poll_eintr(self): got_signal = [False] def record(*args): got_signal[0] = True pid = os.getpid() oldhandler = signal.signal(signal.SIGUSR1, record) try: killer = self.Process(target=self._killer, args=(pid,)) killer.start() p = self.Process(target=time.sleep, args=(1,)) p.start() p.join() self.assertTrue(got_signal[0]) self.assertEqual(p.exitcode, 0) killer.join() finally: signal.signal(signal.SIGUSR1, oldhandler) # # Test to verify handle verification, see issue 3321 # class TestInvalidHandle(unittest.TestCase): @unittest.skipIf(WIN32, "skipped on Windows") def test_invalid_handles(self): conn = _multiprocessing.Connection(44977608) self.assertRaises(IOError, conn.poll) self.assertRaises(IOError, _multiprocessing.Connection, -1) # # Functions used to create test cases from the base ones in this module # def get_attributes(Source, names): d = {} for name in names: obj = getattr(Source, name) if type(obj) == type(get_attributes): obj = staticmethod(obj) d[name] = obj return d def create_test_cases(Mixin, type): result = {} glob = globals() Type = type.capitalize() for name in glob.keys(): if name.startswith('_Test'): base = glob[name] if type in base.ALLOWED_TYPES: newname = 'With' + Type + name[1:] class Temp(base, unittest.TestCase, Mixin): pass result[newname] = Temp Temp.__name__ = newname Temp.__module__ = Mixin.__module__ return result # # Create test cases # class ProcessesMixin(object): TYPE = 'processes' Process = multiprocessing.Process locals().update(get_attributes(multiprocessing, ( 'Queue', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Condition', 'Event', 'Value', 'Array', 'RawValue', 'RawArray', 'current_process', 'active_children', 'Pipe', 'connection', 'JoinableQueue', 'Pool' ))) testcases_processes = create_test_cases(ProcessesMixin, type='processes') globals().update(testcases_processes) class ManagerMixin(object): TYPE = 'manager' Process = multiprocessing.Process manager = object.__new__(multiprocessing.managers.SyncManager) locals().update(get_attributes(manager, ( 'Queue', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Condition', 'Event', 'Value', 'Array', 'list', 'dict', 'Namespace', 'JoinableQueue', 'Pool' ))) testcases_manager = create_test_cases(ManagerMixin, type='manager') globals().update(testcases_manager) class ThreadsMixin(object): TYPE = 'threads' Process = multiprocessing.dummy.Process locals().update(get_attributes(multiprocessing.dummy, ( 'Queue', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Condition', 'Event', 'Value', 'Array', 'current_process', 'active_children', 'Pipe', 'connection', 'dict', 'list', 'Namespace', 'JoinableQueue', 'Pool' ))) testcases_threads = create_test_cases(ThreadsMixin, type='threads') globals().update(testcases_threads) class OtherTest(unittest.TestCase): # TODO: add more tests for deliver/answer challenge. def test_deliver_challenge_auth_failure(self): class _FakeConnection(object): def recv_bytes(self, size): return b'something bogus' def send_bytes(self, data): pass self.assertRaises(multiprocessing.AuthenticationError, multiprocessing.connection.deliver_challenge, _FakeConnection(), b'abc') def test_answer_challenge_auth_failure(self): class _FakeConnection(object): def __init__(self): self.count = 0 def recv_bytes(self, size): self.count += 1 if self.count == 1: return multiprocessing.connection.CHALLENGE elif self.count == 2: return b'something bogus' return b'' def send_bytes(self, data): pass self.assertRaises(multiprocessing.AuthenticationError, multiprocessing.connection.answer_challenge, _FakeConnection(), b'abc') # # Test Manager.start()/Pool.__init__() initializer feature - see issue 5585 # def initializer(ns): ns.test += 1 class TestInitializers(unittest.TestCase): def setUp(self): self.mgr = multiprocessing.Manager() self.ns = self.mgr.Namespace() self.ns.test = 0 def tearDown(self): self.mgr.shutdown() def test_manager_initializer(self): m = multiprocessing.managers.SyncManager() self.assertRaises(TypeError, m.start, 1) m.start(initializer, (self.ns,)) self.assertEqual(self.ns.test, 1) m.shutdown() def test_pool_initializer(self): self.assertRaises(TypeError, multiprocessing.Pool, initializer=1) p = multiprocessing.Pool(1, initializer, (self.ns,)) p.close() p.join() self.assertEqual(self.ns.test, 1) # # Issue 5155, 5313, 5331: Test process in processes # Verifies os.close(sys.stdin.fileno) vs. sys.stdin.close() behavior # def _this_sub_process(q): try: item = q.get(block=False) except Queue.Empty: pass def _test_process(q): queue = multiprocessing.Queue() subProc = multiprocessing.Process(target=_this_sub_process, args=(queue,)) subProc.daemon = True subProc.start() subProc.join() def _afunc(x): return x*x def pool_in_process(): pool = multiprocessing.Pool(processes=4) x = pool.map(_afunc, [1, 2, 3, 4, 5, 6, 7]) class _file_like(object): def __init__(self, delegate): self._delegate = delegate self._pid = None @property def cache(self): pid = os.getpid() # There are no race conditions since fork keeps only the running thread if pid != self._pid: self._pid = pid self._cache = [] return self._cache def write(self, data): self.cache.append(data) def flush(self): self._delegate.write(''.join(self.cache)) self._cache = [] class TestStdinBadfiledescriptor(unittest.TestCase): def test_queue_in_process(self): queue = multiprocessing.Queue() proc = multiprocessing.Process(target=_test_process, args=(queue,)) proc.start() proc.join() def test_pool_in_process(self): p = multiprocessing.Process(target=pool_in_process) p.start() p.join() def test_flushing(self): sio = StringIO() flike = _file_like(sio) flike.write('foo') proc = multiprocessing.Process(target=lambda: flike.flush()) flike.flush() assert sio.getvalue() == 'foo' # # Test interaction with socket timeouts - see Issue #6056 # class TestTimeouts(unittest.TestCase): @classmethod def _test_timeout(cls, child, address): time.sleep(1) child.send(123) child.close() conn = multiprocessing.connection.Client(address) conn.send(456) conn.close() def test_timeout(self): old_timeout = socket.getdefaulttimeout() try: socket.setdefaulttimeout(0.1) parent, child = multiprocessing.Pipe(duplex=True) l = multiprocessing.connection.Listener(family='AF_INET') p = multiprocessing.Process(target=self._test_timeout, args=(child, l.address)) p.start() child.close() self.assertEqual(parent.recv(), 123) parent.close() conn = l.accept() self.assertEqual(conn.recv(), 456) conn.close() l.close() p.join(10) finally: socket.setdefaulttimeout(old_timeout) # # Test what happens with no "if __name__ == '__main__'" # class TestNoForkBomb(unittest.TestCase): def test_noforkbomb(self): name = os.path.join(os.path.dirname(__file__), 'mp_fork_bomb.py') if WIN32: rc, out, err = test.script_helper.assert_python_failure(name) self.assertEqual(out, '') self.assertIn('RuntimeError', err) else: rc, out, err = test.script_helper.assert_python_ok(name) self.assertEqual(out.rstrip(), '123') self.assertEqual(err, '') # # Issue 12098: check sys.flags of child matches that for parent # class TestFlags(unittest.TestCase): @classmethod def run_in_grandchild(cls, conn): conn.send(tuple(sys.flags)) @classmethod def run_in_child(cls): import json r, w = multiprocessing.Pipe(duplex=False) p = multiprocessing.Process(target=cls.run_in_grandchild, args=(w,)) p.start() grandchild_flags = r.recv() p.join() r.close() w.close() flags = (tuple(sys.flags), grandchild_flags) print(json.dumps(flags)) @support.requires_unicode # XXX json needs unicode support def test_flags(self): import json, subprocess # start child process using unusual flags prog = ('from test.test_multiprocessing import TestFlags; ' + 'TestFlags.run_in_child()') data = subprocess.check_output( [sys.executable, '-E', '-B', '-O', '-c', prog]) child_flags, grandchild_flags = json.loads(data.decode('ascii')) self.assertEqual(child_flags, grandchild_flags) # # Issue #17555: ForkAwareThreadLock # class TestForkAwareThreadLock(unittest.TestCase): # We recurisvely start processes. Issue #17555 meant that the # after fork registry would get duplicate entries for the same # lock. The size of the registry at generation n was ~2**n. @classmethod def child(cls, n, conn): if n > 1: p = multiprocessing.Process(target=cls.child, args=(n-1, conn)) p.start() p.join() else: conn.send(len(util._afterfork_registry)) conn.close() def test_lock(self): r, w = multiprocessing.Pipe(False) l = util.ForkAwareThreadLock() old_size = len(util._afterfork_registry) p = multiprocessing.Process(target=self.child, args=(5, w)) p.start() new_size = r.recv() p.join() self.assertLessEqual(new_size, old_size) # # Issue #17097: EINTR should be ignored by recv(), send(), accept() etc # class TestIgnoreEINTR(unittest.TestCase): # Sending CONN_MAX_SIZE bytes into a multiprocessing pipe must block CONN_MAX_SIZE = max(support.PIPE_MAX_SIZE, support.SOCK_MAX_SIZE) @classmethod def _test_ignore(cls, conn): def handler(signum, frame): pass signal.signal(signal.SIGUSR1, handler) conn.send('ready') x = conn.recv() conn.send(x) conn.send_bytes(b'x' * cls.CONN_MAX_SIZE) @unittest.skipUnless(hasattr(signal, 'SIGUSR1'), 'requires SIGUSR1') def test_ignore(self): conn, child_conn = multiprocessing.Pipe() try: p = multiprocessing.Process(target=self._test_ignore, args=(child_conn,)) p.daemon = True p.start() child_conn.close() self.assertEqual(conn.recv(), 'ready') time.sleep(0.1) os.kill(p.pid, signal.SIGUSR1) time.sleep(0.1) conn.send(1234) self.assertEqual(conn.recv(), 1234) time.sleep(0.1) os.kill(p.pid, signal.SIGUSR1) self.assertEqual(conn.recv_bytes(), b'x' * self.CONN_MAX_SIZE) time.sleep(0.1) p.join() finally: conn.close() @classmethod def _test_ignore_listener(cls, conn): def handler(signum, frame): pass signal.signal(signal.SIGUSR1, handler) l = multiprocessing.connection.Listener() conn.send(l.address) a = l.accept() a.send('welcome') @unittest.skipUnless(hasattr(signal, 'SIGUSR1'), 'requires SIGUSR1') def test_ignore_listener(self): conn, child_conn = multiprocessing.Pipe() try: p = multiprocessing.Process(target=self._test_ignore_listener, args=(child_conn,)) p.daemon = True p.start() child_conn.close() address = conn.recv() time.sleep(0.1) os.kill(p.pid, signal.SIGUSR1) time.sleep(0.1) client = multiprocessing.connection.Client(address) self.assertEqual(client.recv(), 'welcome') p.join() finally: conn.close() # # # testcases_other = [OtherTest, TestInvalidHandle, TestInitializers, TestStdinBadfiledescriptor, TestTimeouts, TestNoForkBomb, TestFlags, TestForkAwareThreadLock, TestIgnoreEINTR] # # # def test_main(run=None): if sys.platform.startswith("linux"): try: lock = multiprocessing.RLock() except OSError: raise unittest.SkipTest("OSError raises on RLock creation, see issue 3111!") check_enough_semaphores() if run is None: from test.support import run_unittest as run util.get_temp_dir() # creates temp directory for use by all processes multiprocessing.get_logger().setLevel(LOG_LEVEL) ProcessesMixin.pool = multiprocessing.Pool(4) ThreadsMixin.pool = multiprocessing.dummy.Pool(4) ManagerMixin.manager.__init__() ManagerMixin.manager.start() ManagerMixin.pool = ManagerMixin.manager.Pool(4) testcases = ( sorted(testcases_processes.values(), key=lambda tc:tc.__name__) + sorted(testcases_threads.values(), key=lambda tc:tc.__name__) + sorted(testcases_manager.values(), key=lambda tc:tc.__name__) + testcases_other ) loadTestsFromTestCase = unittest.defaultTestLoader.loadTestsFromTestCase suite = unittest.TestSuite(loadTestsFromTestCase(tc) for tc in testcases) # (ncoghlan): Whether or not sys.exc_clear is executed by the threading # module during these tests is at least platform dependent and possibly # non-deterministic on any given platform. So we don't mind if the listed # warnings aren't actually raised. with support.check_py3k_warnings( (".+__(get|set)slice__ has been removed", DeprecationWarning), (r"sys.exc_clear\(\) not supported", DeprecationWarning), quiet=True): run(suite) ThreadsMixin.pool.terminate() ProcessesMixin.pool.terminate() ManagerMixin.pool.terminate() ManagerMixin.manager.shutdown() del ProcessesMixin.pool, ThreadsMixin.pool, ManagerMixin.pool def main(): test_main(unittest.TextTestRunner(verbosity=2).run) if __name__ == '__main__': main()