Linux server19.dn-server.com 3.10.0-962.3.2.lve1.5.88.el7.x86_64 #1 SMP Fri Sep 26 14:06:42 UTC 2025 x86_64
LiteSpeed
Server IP : 46.209.20.154 & Your IP : 216.73.217.55
Domains :
Cant Read [ /etc/named.conf ]
User : emadteam
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib64 /
python2.7 /
test /
Delete
Unzip
Name
Size
Permission
Date
Action
capath
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
cjkencodings
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
data
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
decimaltestdata
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
subprocessdata
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
tracedmodules
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
xmltestdata
[ DIR ]
drwxr-xr-x
2025-12-18 21:38
185test.db
16
KB
-rw-r--r--
2025-11-12 17:54
Sine-1000Hz-300ms.aif
60.25
KB
-rw-r--r--
2025-11-12 17:54
__init__.py
47
B
-rw-r--r--
2025-11-12 17:54
__init__.pyc
124
B
-rw-r--r--
2025-11-12 17:55
__init__.pyo
124
B
-rw-r--r--
2025-11-12 17:55
allsans.pem
4.92
KB
-rw-r--r--
2025-11-12 17:54
autotest.py
211
B
-rw-r--r--
2025-11-12 17:54
autotest.pyc
198
B
-rw-r--r--
2025-11-12 17:55
autotest.pyo
198
B
-rw-r--r--
2025-11-12 17:55
bad_coding.py
24
B
-rw-r--r--
2025-11-12 17:54
bad_coding2.py
29
B
-rw-r--r--
2025-11-12 17:54
badcert.pem
1.88
KB
-rw-r--r--
2025-11-12 17:54
badkey.pem
2.11
KB
-rw-r--r--
2025-11-12 17:54
badsyntax_future3.py
172
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future4.py
153
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future5.py
184
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future6.py
161
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future7.py
196
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future8.py
121
B
-rw-r--r--
2025-11-12 17:54
badsyntax_future9.py
141
B
-rw-r--r--
2025-11-12 17:54
badsyntax_nocaret.py
33
B
-rw-r--r--
2025-11-12 17:54
buffer_tests.py
10.33
KB
-rw-r--r--
2025-11-12 17:54
buffer_tests.pyc
9.91
KB
-rw-r--r--
2025-11-12 17:55
buffer_tests.pyo
9.91
KB
-rw-r--r--
2025-11-12 17:55
cfgparser.1
21
B
-rw-r--r--
2025-11-12 17:54
check_soundcard.vbs
411
B
-rw-r--r--
2025-11-12 17:54
cmath_testcases.txt
133.63
KB
-rw-r--r--
2025-11-12 17:54
curses_tests.py
1.21
KB
-rw-r--r--
2025-11-12 17:54
curses_tests.pyc
1.45
KB
-rw-r--r--
2025-11-12 17:55
curses_tests.pyo
1.45
KB
-rw-r--r--
2025-11-12 17:55
doctest_aliases.py
239
B
-rw-r--r--
2025-11-12 17:54
doctest_aliases.pyc
607
B
-rw-r--r--
2025-11-12 17:55
doctest_aliases.pyo
607
B
-rw-r--r--
2025-11-12 17:55
double_const.py
1.19
KB
-rw-r--r--
2025-11-12 17:54
double_const.pyc
755
B
-rw-r--r--
2025-11-12 17:55
double_const.pyo
687
B
-rw-r--r--
2025-11-12 17:55
empty.vbs
70
B
-rw-r--r--
2025-11-12 17:54
exception_hierarchy.txt
1.45
KB
-rw-r--r--
2025-11-12 17:54
ffdh3072.pem
2.16
KB
-rw-r--r--
2025-11-12 17:54
floating_points.txt
15.92
KB
-rw-r--r--
2025-11-12 17:54
fork_wait.py
2.24
KB
-rw-r--r--
2025-11-12 17:54
fork_wait.pyc
2.71
KB
-rw-r--r--
2025-11-12 17:55
fork_wait.pyo
2.71
KB
-rw-r--r--
2025-11-12 17:55
formatfloat_testcases.txt
7.83
KB
-rw-r--r--
2025-11-12 17:54
gdb_sample.py
156
B
-rw-r--r--
2025-11-12 17:54
gdb_sample.pyc
644
B
-rw-r--r--
2025-11-12 17:55
gdb_sample.pyo
644
B
-rw-r--r--
2025-11-12 17:55
greyrgb.uue
93.5
KB
-rw-r--r--
2025-11-12 17:54
https_svn_python_org_root.pem
2.51
KB
-rw-r--r--
2025-11-12 17:54
ieee754.txt
3.21
KB
-rw-r--r--
2025-11-12 17:54
infinite_reload.py
324
B
-rw-r--r--
2025-11-12 17:54
infinite_reload.pyc
216
B
-rw-r--r--
2025-11-12 17:55
infinite_reload.pyo
216
B
-rw-r--r--
2025-11-12 17:55
inspect_fodder.py
841
B
-rw-r--r--
2025-11-12 17:54
inspect_fodder.pyc
2.03
KB
-rw-r--r--
2025-11-12 17:55
inspect_fodder.pyo
2.03
KB
-rw-r--r--
2025-11-12 17:55
inspect_fodder2.py
1.25
KB
-rw-r--r--
2025-11-12 17:54
inspect_fodder2.pyc
4.41
KB
-rw-r--r--
2025-11-12 17:55
inspect_fodder2.pyo
4.41
KB
-rw-r--r--
2025-11-12 17:55
keycert.passwd.pem
4
KB
-rw-r--r--
2025-11-12 17:54
keycert.pem
3.96
KB
-rw-r--r--
2025-11-12 17:54
keycert2.pem
3.97
KB
-rw-r--r--
2025-11-12 17:54
keycert3.pem
9.22
KB
-rw-r--r--
2025-11-12 17:54
keycert4.pem
9.23
KB
-rw-r--r--
2025-11-12 17:54
list_tests.py
16.14
KB
-rw-r--r--
2025-11-12 17:54
list_tests.pyc
17.77
KB
-rw-r--r--
2025-11-12 17:55
list_tests.pyo
17.77
KB
-rw-r--r--
2025-11-12 17:55
lock_tests.py
14.77
KB
-rw-r--r--
2025-11-12 17:54
lock_tests.pyc
18.83
KB
-rw-r--r--
2025-11-12 17:55
lock_tests.pyo
18.83
KB
-rw-r--r--
2025-11-12 17:55
make_ssl_certs.py
6.69
KB
-rw-r--r--
2025-11-12 17:54
make_ssl_certs.pyc
6.65
KB
-rw-r--r--
2025-11-12 17:55
make_ssl_certs.pyo
6.65
KB
-rw-r--r--
2025-11-12 17:55
mapping_tests.py
22.31
KB
-rw-r--r--
2025-11-12 17:54
mapping_tests.pyc
29.08
KB
-rw-r--r--
2025-11-12 17:55
mapping_tests.pyo
29.08
KB
-rw-r--r--
2025-11-12 17:55
math_testcases.txt
15.52
KB
-rw-r--r--
2025-11-12 17:54
mp_fork_bomb.py
387
B
-rw-r--r--
2025-11-12 17:54
mp_fork_bomb.pyc
557
B
-rw-r--r--
2025-11-12 17:55
mp_fork_bomb.pyo
557
B
-rw-r--r--
2025-11-12 17:55
nokia.pem
1.88
KB
-rw-r--r--
2025-11-12 17:54
nullbytecert.pem
5.31
KB
-rw-r--r--
2025-11-12 17:54
nullcert.pem
0
B
-rw-r--r--
2025-11-12 17:54
outstanding_bugs.py
431
B
-rw-r--r--
2025-11-12 17:54
outstanding_bugs.pyc
411
B
-rw-r--r--
2025-11-12 17:55
outstanding_bugs.pyo
411
B
-rw-r--r--
2025-11-12 17:55
pickletester.py
40.65
KB
-rw-r--r--
2025-11-12 17:54
pickletester.pyc
44
KB
-rw-r--r--
2025-11-12 17:55
pickletester.pyo
43.86
KB
-rw-r--r--
2025-11-12 17:55
profilee.py
2.97
KB
-rw-r--r--
2025-11-12 17:54
profilee.pyc
2.95
KB
-rw-r--r--
2025-11-12 17:55
profilee.pyo
2.95
KB
-rw-r--r--
2025-11-12 17:55
pycacert.pem
5.52
KB
-rw-r--r--
2025-11-12 17:54
pyclbr_input.py
648
B
-rw-r--r--
2025-11-12 17:54
pyclbr_input.pyc
1.72
KB
-rw-r--r--
2025-11-12 17:55
pyclbr_input.pyo
1.72
KB
-rw-r--r--
2025-11-12 17:55
pydoc_mod.py
439
B
-rw-r--r--
2025-11-12 17:54
pydoc_mod.pyc
1.22
KB
-rw-r--r--
2025-11-12 17:55
pydoc_mod.pyo
1.22
KB
-rw-r--r--
2025-11-12 17:55
pydocfodder.py
6.18
KB
-rw-r--r--
2025-11-12 17:54
pydocfodder.pyc
15.69
KB
-rw-r--r--
2025-11-12 17:55
pydocfodder.pyo
15.69
KB
-rw-r--r--
2025-11-12 17:55
pystone.py
7.19
KB
-rwxr-xr-x
2025-11-12 17:54
pystone.pyc
7.84
KB
-rw-r--r--
2025-11-12 17:55
pystone.pyo
7.84
KB
-rw-r--r--
2025-11-12 17:55
randv2_32.pck
7.34
KB
-rw-r--r--
2025-11-12 17:54
randv2_64.pck
7.19
KB
-rw-r--r--
2025-11-12 17:54
randv3.pck
7.82
KB
-rw-r--r--
2025-11-12 17:54
re_tests.py
31.11
KB
-rwxr-xr-x
2025-11-12 17:54
re_tests.pyc
18.24
KB
-rw-r--r--
2025-11-12 17:55
re_tests.pyo
18.24
KB
-rw-r--r--
2025-11-12 17:55
recursion.tar
516
B
-rw-r--r--
2025-11-12 17:54
regrtest.py
51.36
KB
-rwxr-xr-x
2025-11-12 17:54
regrtest.pyc
43.64
KB
-rw-r--r--
2025-11-12 17:55
regrtest.pyo
43.52
KB
-rw-r--r--
2025-11-12 17:55
relimport.py
27
B
-rw-r--r--
2025-11-12 17:54
relimport.pyc
167
B
-rw-r--r--
2025-11-12 17:55
relimport.pyo
167
B
-rw-r--r--
2025-11-12 17:55
reperf.py
514
B
-rw-r--r--
2025-11-12 17:54
reperf.pyc
923
B
-rw-r--r--
2025-11-12 17:55
reperf.pyo
923
B
-rw-r--r--
2025-11-12 17:55
revocation.crl
800
B
-rw-r--r--
2025-11-12 17:54
sample_doctest.py
1.01
KB
-rw-r--r--
2025-11-12 17:54
sample_doctest.pyc
1.96
KB
-rw-r--r--
2025-11-12 17:55
sample_doctest.pyo
1.96
KB
-rw-r--r--
2025-11-12 17:55
sample_doctest_no_docstrings.py
227
B
-rw-r--r--
2025-11-12 17:54
sample_doctest_no_docstrings.pyc
512
B
-rw-r--r--
2025-11-12 17:55
sample_doctest_no_docstrings.pyo
512
B
-rw-r--r--
2025-11-12 17:55
sample_doctest_no_doctests.py
269
B
-rw-r--r--
2025-11-12 17:54
sample_doctest_no_doctests.pyc
741
B
-rw-r--r--
2025-11-12 17:55
sample_doctest_no_doctests.pyo
741
B
-rw-r--r--
2025-11-12 17:55
script_helper.py
5.66
KB
-rw-r--r--
2025-11-12 17:54
script_helper.pyc
5.65
KB
-rw-r--r--
2025-11-12 17:55
script_helper.pyo
5.66
KB
-rw-r--r--
2025-11-12 17:55
selfsigned_pythontestdotnet.pem
936
B
-rw-r--r--
2025-11-12 17:54
seq_tests.py
13.34
KB
-rw-r--r--
2025-11-12 17:54
seq_tests.pyc
18.18
KB
-rw-r--r--
2025-11-12 17:55
seq_tests.pyo
18.18
KB
-rw-r--r--
2025-11-12 17:55
sgml_input.html
8.1
KB
-rw-r--r--
2025-11-12 17:54
sha256.pem
8.15
KB
-rw-r--r--
2025-11-12 17:54
sortperf.py
4.63
KB
-rw-r--r--
2025-11-12 17:54
sortperf.pyc
4.17
KB
-rw-r--r--
2025-11-12 17:55
sortperf.pyo
4.12
KB
-rw-r--r--
2025-11-12 17:55
ssl_cert.pem
1.53
KB
-rw-r--r--
2025-11-12 17:54
ssl_key.passwd.pem
2.47
KB
-rw-r--r--
2025-11-12 17:54
ssl_key.pem
2.43
KB
-rw-r--r--
2025-11-12 17:54
ssl_servers.py
7.11
KB
-rw-r--r--
2025-11-12 17:54
ssl_servers.pyc
8.1
KB
-rw-r--r--
2025-11-12 17:55
ssl_servers.pyo
8.1
KB
-rw-r--r--
2025-11-12 17:55
string_tests.py
62.1
KB
-rw-r--r--
2025-11-12 17:54
string_tests.pyc
46.78
KB
-rw-r--r--
2025-11-12 17:55
string_tests.pyo
46.78
KB
-rw-r--r--
2025-11-12 17:55
symlink_support.py
3.18
KB
-rw-r--r--
2025-11-12 17:54
symlink_support.pyc
3.23
KB
-rw-r--r--
2025-11-12 17:55
symlink_support.pyo
3.23
KB
-rw-r--r--
2025-11-12 17:55
talos-2019-0758.pem
1.3
KB
-rw-r--r--
2025-11-12 17:54
test_MimeWriter.py
7.42
KB
-rw-r--r--
2025-11-12 17:54
test_MimeWriter.pyc
7.74
KB
-rw-r--r--
2025-11-12 17:55
test_MimeWriter.pyo
7.74
KB
-rw-r--r--
2025-11-12 17:55
test_SimpleHTTPServer.py
1.31
KB
-rw-r--r--
2025-11-12 17:54
test_SimpleHTTPServer.pyc
2.23
KB
-rw-r--r--
2025-11-12 17:55
test_SimpleHTTPServer.pyo
2.23
KB
-rw-r--r--
2025-11-12 17:55
test_StringIO.py
6.93
KB
-rw-r--r--
2025-11-12 17:54
test_StringIO.pyc
8.33
KB
-rw-r--r--
2025-11-12 17:55
test_StringIO.pyo
8.33
KB
-rw-r--r--
2025-11-12 17:55
test___all__.py
4.01
KB
-rw-r--r--
2025-11-12 17:54
test___all__.pyc
3.75
KB
-rw-r--r--
2025-11-12 17:55
test___all__.pyo
3.75
KB
-rw-r--r--
2025-11-12 17:55
test___future__.py
2.48
KB
-rw-r--r--
2025-11-12 17:54
test___future__.pyc
2.79
KB
-rw-r--r--
2025-11-12 17:55
test___future__.pyo
2.79
KB
-rw-r--r--
2025-11-12 17:55
test__locale.py
5.67
KB
-rw-r--r--
2025-11-12 17:54
test__locale.pyc
5.65
KB
-rw-r--r--
2025-11-12 17:55
test__locale.pyo
5.65
KB
-rw-r--r--
2025-11-12 17:55
test__osx_support.py
11.47
KB
-rw-r--r--
2025-11-12 17:54
test__osx_support.pyc
11
KB
-rw-r--r--
2025-11-12 17:55
test__osx_support.pyo
11
KB
-rw-r--r--
2025-11-12 17:55
test_abc.py
7.78
KB
-rw-r--r--
2025-11-12 17:54
test_abc.pyc
13.09
KB
-rw-r--r--
2025-11-12 17:55
test_abc.pyo
13.09
KB
-rw-r--r--
2025-11-12 17:55
test_abstract_numbers.py
1.65
KB
-rw-r--r--
2025-11-12 17:54
test_abstract_numbers.pyc
2.51
KB
-rw-r--r--
2025-11-12 17:55
test_abstract_numbers.pyo
2.51
KB
-rw-r--r--
2025-11-12 17:55
test_aepack.py
2.53
KB
-rw-r--r--
2025-11-12 17:54
test_aepack.pyc
3.52
KB
-rw-r--r--
2025-11-12 17:55
test_aepack.pyo
3.52
KB
-rw-r--r--
2025-11-12 17:55
test_aifc.py
5.56
KB
-rw-r--r--
2025-11-12 17:54
test_aifc.pyc
7.12
KB
-rw-r--r--
2025-11-12 17:55
test_aifc.pyo
7.12
KB
-rw-r--r--
2025-11-12 17:55
test_al.py
775
B
-rwxr-xr-x
2025-11-12 17:54
test_al.pyc
873
B
-rw-r--r--
2025-11-12 17:55
test_al.pyo
873
B
-rw-r--r--
2025-11-12 17:55
test_anydbm.py
2.23
KB
-rw-r--r--
2025-11-12 17:54
test_anydbm.pyc
3.68
KB
-rw-r--r--
2025-11-12 17:55
test_anydbm.pyo
3.68
KB
-rw-r--r--
2025-11-12 17:55
test_applesingle.py
1.77
KB
-rw-r--r--
2025-11-12 17:54
test_applesingle.pyc
2.56
KB
-rw-r--r--
2025-11-12 17:55
test_applesingle.pyo
2.56
KB
-rw-r--r--
2025-11-12 17:55
test_argparse.py
152.61
KB
-rw-r--r--
2025-11-12 17:54
test_argparse.pyc
175.78
KB
-rw-r--r--
2025-11-12 17:55
test_argparse.pyo
175.45
KB
-rw-r--r--
2025-11-12 17:55
test_array.py
36.08
KB
-rwxr-xr-x
2025-11-12 17:54
test_array.pyc
36.36
KB
-rw-r--r--
2025-11-12 17:55
test_array.pyo
36.36
KB
-rw-r--r--
2025-11-12 17:55
test_ascii_formatd.py
1.87
KB
-rw-r--r--
2025-11-12 17:54
test_ascii_formatd.pyc
2.3
KB
-rw-r--r--
2025-11-12 17:55
test_ascii_formatd.pyo
2.3
KB
-rw-r--r--
2025-11-12 17:55
test_ast.py
24.18
KB
-rw-r--r--
2025-11-12 17:54
test_ast.pyc
22.9
KB
-rw-r--r--
2025-11-12 17:55
test_ast.pyo
22.9
KB
-rw-r--r--
2025-11-12 17:55
test_asynchat.py
8.99
KB
-rw-r--r--
2025-11-12 17:54
test_asynchat.pyc
10.7
KB
-rw-r--r--
2025-11-12 17:55
test_asynchat.pyo
10.7
KB
-rw-r--r--
2025-11-12 17:55
test_asyncore.py
22.44
KB
-rw-r--r--
2025-11-12 17:54
test_asyncore.pyc
29.09
KB
-rw-r--r--
2025-11-12 17:55
test_asyncore.pyo
29.09
KB
-rw-r--r--
2025-11-12 17:55
test_atexit.py
2.12
KB
-rw-r--r--
2025-11-12 17:54
test_atexit.pyc
3.97
KB
-rw-r--r--
2025-11-12 17:55
test_atexit.pyo
3.97
KB
-rw-r--r--
2025-11-12 17:55
test_audioop.py
17.63
KB
-rw-r--r--
2025-11-12 17:54
test_audioop.pyc
18.45
KB
-rw-r--r--
2025-11-12 17:55
test_audioop.pyo
18.45
KB
-rw-r--r--
2025-11-12 17:55
test_augassign.py
7.99
KB
-rw-r--r--
2025-11-12 17:54
test_augassign.pyc
13.42
KB
-rw-r--r--
2025-11-12 17:55
test_augassign.pyo
13.42
KB
-rw-r--r--
2025-11-12 17:55
test_base64.py
9.17
KB
-rw-r--r--
2025-11-12 17:54
test_base64.pyc
8.2
KB
-rw-r--r--
2025-11-12 17:55
test_base64.pyo
8.2
KB
-rw-r--r--
2025-11-12 17:55
test_bastion.py
38
B
-rw-r--r--
2025-11-12 17:54
test_bastion.pyc
128
B
-rw-r--r--
2025-11-12 17:55
test_bastion.pyo
128
B
-rw-r--r--
2025-11-12 17:55
test_bigaddrspace.py
1.27
KB
-rw-r--r--
2025-11-12 17:54
test_bigaddrspace.pyc
1.53
KB
-rw-r--r--
2025-11-12 17:55
test_bigaddrspace.pyo
1.53
KB
-rw-r--r--
2025-11-12 17:55
test_bigmem.py
37.26
KB
-rw-r--r--
2025-11-12 17:54
test_bigmem.pyc
37.13
KB
-rw-r--r--
2025-11-12 17:55
test_bigmem.pyo
37.13
KB
-rw-r--r--
2025-11-12 17:55
test_binascii.py
8.43
KB
-rw-r--r--
2025-11-12 17:54
test_binascii.pyc
8.57
KB
-rw-r--r--
2025-11-12 17:55
test_binascii.pyo
8.57
KB
-rw-r--r--
2025-11-12 17:55
test_binhex.py
1
KB
-rwxr-xr-x
2025-11-12 17:54
test_binhex.pyc
1.77
KB
-rw-r--r--
2025-11-12 17:55
test_binhex.pyo
1.77
KB
-rw-r--r--
2025-11-12 17:55
test_binop.py
10.49
KB
-rw-r--r--
2025-11-12 17:54
test_binop.pyc
12.93
KB
-rw-r--r--
2025-11-12 17:55
test_binop.pyo
12.93
KB
-rw-r--r--
2025-11-12 17:55
test_bisect.py
14.45
KB
-rw-r--r--
2025-11-12 17:54
test_bisect.pyc
15.45
KB
-rw-r--r--
2025-11-12 17:55
test_bisect.pyo
15.45
KB
-rw-r--r--
2025-11-12 17:55
test_bool.py
13.8
KB
-rw-r--r--
2025-11-12 17:54
test_bool.pyc
14.12
KB
-rw-r--r--
2025-11-12 17:55
test_bool.pyo
14.12
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb.py
11.4
KB
-rwxr-xr-x
2025-11-12 17:54
test_bsddb.pyc
13.05
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb.pyo
13.05
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb185.py
1.23
KB
-rw-r--r--
2025-11-12 17:54
test_bsddb185.pyc
1.91
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb185.pyo
1.91
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb3.py
2.71
KB
-rw-r--r--
2025-11-12 17:54
test_bsddb3.pyc
2.22
KB
-rw-r--r--
2025-11-12 17:55
test_bsddb3.pyo
2.22
KB
-rw-r--r--
2025-11-12 17:55
test_buffer.py
1.42
KB
-rw-r--r--
2025-11-12 17:54
test_buffer.pyc
2.34
KB
-rw-r--r--
2025-11-12 17:55
test_buffer.pyo
2.34
KB
-rw-r--r--
2025-11-12 17:55
test_bufio.py
2.69
KB
-rw-r--r--
2025-11-12 17:54
test_bufio.pyc
2.7
KB
-rw-r--r--
2025-11-12 17:55
test_bufio.pyo
2.7
KB
-rw-r--r--
2025-11-12 17:55
test_builtin.py
60.47
KB
-rw-r--r--
2025-11-12 17:54
test_builtin.pyc
74.76
KB
-rw-r--r--
2025-11-12 17:55
test_builtin.pyo
74.76
KB
-rw-r--r--
2025-11-12 17:55
test_bytes.py
42.7
KB
-rw-r--r--
2025-11-12 17:54
test_bytes.pyc
49.16
KB
-rw-r--r--
2025-11-12 17:55
test_bytes.pyo
49.16
KB
-rw-r--r--
2025-11-12 17:55
test_bz2.py
18.94
KB
-rw-r--r--
2025-11-12 17:54
test_bz2.pyc
19.56
KB
-rw-r--r--
2025-11-12 17:55
test_bz2.pyo
19.56
KB
-rw-r--r--
2025-11-12 17:55
test_calendar.py
28.17
KB
-rw-r--r--
2025-11-12 17:54
test_calendar.pyc
29.22
KB
-rw-r--r--
2025-11-12 17:55
test_calendar.pyo
29.22
KB
-rw-r--r--
2025-11-12 17:55
test_call.py
3.21
KB
-rw-r--r--
2025-11-12 17:54
test_call.pyc
6.08
KB
-rw-r--r--
2025-11-12 17:55
test_call.pyo
6.08
KB
-rw-r--r--
2025-11-12 17:55
test_capi.py
4.55
KB
-rw-r--r--
2025-11-12 17:54
test_capi.pyc
4.7
KB
-rw-r--r--
2025-11-12 17:55
test_capi.pyo
4.7
KB
-rw-r--r--
2025-11-12 17:55
test_cd.py
934
B
-rwxr-xr-x
2025-11-12 17:54
test_cd.pyc
1007
B
-rw-r--r--
2025-11-12 17:55
test_cd.pyo
1007
B
-rw-r--r--
2025-11-12 17:55
test_cfgparser.py
27.09
KB
-rw-r--r--
2025-11-12 17:54
test_cfgparser.pyc
27.04
KB
-rw-r--r--
2025-11-12 17:55
test_cfgparser.pyo
27.04
KB
-rw-r--r--
2025-11-12 17:55
test_cgi.py
14.06
KB
-rw-r--r--
2025-11-12 17:54
test_cgi.pyc
14.64
KB
-rw-r--r--
2025-11-12 17:55
test_cgi.pyo
14.64
KB
-rw-r--r--
2025-11-12 17:55
test_charmapcodec.py
1.8
KB
-rw-r--r--
2025-11-12 17:54
test_charmapcodec.pyc
2.62
KB
-rw-r--r--
2025-11-12 17:55
test_charmapcodec.pyo
2.62
KB
-rw-r--r--
2025-11-12 17:55
test_cl.py
3.91
KB
-rwxr-xr-x
2025-11-12 17:54
test_cl.pyc
4.89
KB
-rw-r--r--
2025-11-12 17:55
test_cl.pyo
4.89
KB
-rw-r--r--
2025-11-12 17:55
test_class.py
17.94
KB
-rw-r--r--
2025-11-12 17:54
test_class.pyc
18.53
KB
-rw-r--r--
2025-11-12 17:55
test_class.pyo
18.53
KB
-rw-r--r--
2025-11-12 17:55
test_cmath.py
18.2
KB
-rw-r--r--
2025-11-12 17:54
test_cmath.pyc
18.06
KB
-rw-r--r--
2025-11-12 17:55
test_cmath.pyo
18.06
KB
-rw-r--r--
2025-11-12 17:55
test_cmd.py
6.17
KB
-rw-r--r--
2025-11-12 17:54
test_cmd.pyc
8.19
KB
-rw-r--r--
2025-11-12 17:55
test_cmd.pyo
8.19
KB
-rw-r--r--
2025-11-12 17:55
test_cmd_line.py
5.15
KB
-rw-r--r--
2025-11-12 17:54
test_cmd_line.pyc
5.43
KB
-rw-r--r--
2025-11-12 17:55
test_cmd_line.pyo
5.43
KB
-rw-r--r--
2025-11-12 17:55
test_cmd_line_script.py
9.35
KB
-rw-r--r--
2025-11-12 17:54
test_cmd_line_script.pyc
9.38
KB
-rw-r--r--
2025-11-12 17:55
test_cmd_line_script.pyo
9.38
KB
-rw-r--r--
2025-11-12 17:55
test_code.py
3.13
KB
-rw-r--r--
2025-11-12 17:54
test_code.pyc
3.92
KB
-rw-r--r--
2025-11-12 17:55
test_code.pyo
3.92
KB
-rw-r--r--
2025-11-12 17:55
test_codeccallbacks.py
30.48
KB
-rw-r--r--
2025-11-12 17:54
test_codeccallbacks.pyc
26.14
KB
-rw-r--r--
2025-11-12 17:55
test_codeccallbacks.pyo
26.14
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_cn.py
3.08
KB
-rw-r--r--
2025-11-12 17:54
test_codecencodings_cn.pyc
3.67
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_cn.pyo
3.67
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_hk.py
809
B
-rw-r--r--
2025-11-12 17:54
test_codecencodings_hk.pyc
1.16
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_hk.pyo
1.16
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_iso2022.py
1.43
KB
-rw-r--r--
2025-11-12 17:54
test_codecencodings_iso2022.pyc
2.16
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_iso2022.pyo
2.16
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_jp.py
3.85
KB
-rw-r--r--
2025-11-12 17:54
test_codecencodings_jp.pyc
4.57
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_jp.pyo
4.57
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_kr.py
2.69
KB
-rw-r--r--
2025-11-12 17:54
test_codecencodings_kr.pyc
3.04
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_kr.pyo
3.04
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_tw.py
789
B
-rw-r--r--
2025-11-12 17:54
test_codecencodings_tw.pyc
1.15
KB
-rw-r--r--
2025-11-12 17:55
test_codecencodings_tw.pyo
1.15
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_cn.py
983
B
-rw-r--r--
2025-11-12 17:54
test_codecmaps_cn.pyc
1.43
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_cn.pyo
1.43
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_hk.py
553
B
-rw-r--r--
2025-11-12 17:54
test_codecmaps_hk.pyc
912
B
-rw-r--r--
2025-11-12 17:55
test_codecmaps_hk.pyo
912
B
-rw-r--r--
2025-11-12 17:55
test_codecmaps_jp.py
1.94
KB
-rw-r--r--
2025-11-12 17:54
test_codecmaps_jp.pyc
2.64
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_jp.pyo
2.64
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_kr.py
1.39
KB
-rw-r--r--
2025-11-12 17:54
test_codecmaps_kr.pyc
1.61
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_kr.pyo
1.61
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_tw.py
858
B
-rw-r--r--
2025-11-12 17:54
test_codecmaps_tw.pyc
1.24
KB
-rw-r--r--
2025-11-12 17:55
test_codecmaps_tw.pyo
1.24
KB
-rw-r--r--
2025-11-12 17:55
test_codecs.py
72.53
KB
-rw-r--r--
2025-11-12 17:54
test_codecs.pyc
62.91
KB
-rw-r--r--
2025-11-12 17:55
test_codecs.pyo
62.91
KB
-rw-r--r--
2025-11-12 17:55
test_codeop.py
7.47
KB
-rw-r--r--
2025-11-12 17:54
test_codeop.pyc
7.92
KB
-rw-r--r--
2025-11-12 17:55
test_codeop.pyo
7.92
KB
-rw-r--r--
2025-11-12 17:55
test_coding.py
1.18
KB
-rw-r--r--
2025-11-12 17:54
test_coding.pyc
2.01
KB
-rw-r--r--
2025-11-12 17:55
test_coding.pyo
2.01
KB
-rw-r--r--
2025-11-12 17:55
test_coercion.py
11.13
KB
-rw-r--r--
2025-11-12 17:54
test_coercion.pyc
15.63
KB
-rw-r--r--
2025-11-12 17:55
test_coercion.pyo
15.63
KB
-rw-r--r--
2025-11-12 17:55
test_collections.py
42.49
KB
-rw-r--r--
2025-11-12 17:54
test_collections.pyc
49.74
KB
-rw-r--r--
2025-11-12 17:55
test_collections.pyo
49.74
KB
-rw-r--r--
2025-11-12 17:55
test_colorsys.py
2.78
KB
-rw-r--r--
2025-11-12 17:54
test_colorsys.pyc
3.78
KB
-rw-r--r--
2025-11-12 17:55
test_colorsys.pyo
3.78
KB
-rw-r--r--
2025-11-12 17:55
test_commands.py
2.58
KB
-rw-r--r--
2025-11-12 17:54
test_commands.pyc
2.25
KB
-rw-r--r--
2025-11-12 17:55
test_commands.pyo
2.25
KB
-rw-r--r--
2025-11-12 17:55
test_compare.py
1.45
KB
-rw-r--r--
2025-11-12 17:54
test_compare.pyc
3.22
KB
-rw-r--r--
2025-11-12 17:55
test_compare.pyo
3.22
KB
-rw-r--r--
2025-11-12 17:55
test_compile.py
18.31
KB
-rw-r--r--
2025-11-12 17:54
test_compile.pyc
20
KB
-rw-r--r--
2025-11-12 17:55
test_compile.pyo
20
KB
-rw-r--r--
2025-11-12 17:55
test_compileall.py
2.66
KB
-rw-r--r--
2025-11-12 17:54
test_compileall.pyc
3.57
KB
-rw-r--r--
2025-11-12 17:55
test_compileall.pyo
3.57
KB
-rw-r--r--
2025-11-12 17:55
test_compiler.py
10.97
KB
-rw-r--r--
2025-11-12 17:54
test_compiler.pyc
12.67
KB
-rw-r--r--
2025-11-12 17:55
test_compiler.pyo
12.67
KB
-rw-r--r--
2025-11-12 17:55
test_complex.py
26.94
KB
-rw-r--r--
2025-11-12 17:54
test_complex.pyc
33.53
KB
-rw-r--r--
2025-11-12 17:55
test_complex.pyo
33.53
KB
-rw-r--r--
2025-11-12 17:55
test_complex_args.py
3.42
KB
-rw-r--r--
2025-11-12 17:54
test_complex_args.pyc
4.83
KB
-rw-r--r--
2025-11-12 17:55
test_complex_args.pyo
4.83
KB
-rw-r--r--
2025-11-12 17:55
test_contains.py
3.08
KB
-rw-r--r--
2025-11-12 17:54
test_contains.pyc
4.89
KB
-rw-r--r--
2025-11-12 17:55
test_contains.pyo
4.89
KB
-rw-r--r--
2025-11-12 17:55
test_contextlib.py
8.89
KB
-rw-r--r--
2025-11-12 17:54
test_contextlib.pyc
14.11
KB
-rw-r--r--
2025-11-12 17:55
test_contextlib.pyo
14.11
KB
-rw-r--r--
2025-11-12 17:55
test_cookie.py
4.85
KB
-rw-r--r--
2025-11-12 17:54
test_cookie.pyc
5.41
KB
-rw-r--r--
2025-11-12 17:55
test_cookie.pyo
5.41
KB
-rw-r--r--
2025-11-12 17:55
test_cookielib.py
71.54
KB
-rw-r--r--
2025-11-12 17:54
test_cookielib.pyc
49.41
KB
-rw-r--r--
2025-11-12 17:55
test_cookielib.pyo
49.41
KB
-rw-r--r--
2025-11-12 17:55
test_copy.py
21.07
KB
-rw-r--r--
2025-11-12 17:54
test_copy.pyc
39.84
KB
-rw-r--r--
2025-11-12 17:55
test_copy.pyo
39.84
KB
-rw-r--r--
2025-11-12 17:55
test_copy_reg.py
4.16
KB
-rw-r--r--
2025-11-12 17:54
test_copy_reg.pyc
4.43
KB
-rw-r--r--
2025-11-12 17:55
test_copy_reg.pyo
4.43
KB
-rw-r--r--
2025-11-12 17:55
test_cpickle.py
6.07
KB
-rw-r--r--
2025-11-12 17:54
test_cpickle.pyc
9.75
KB
-rw-r--r--
2025-11-12 17:55
test_cpickle.pyo
9.75
KB
-rw-r--r--
2025-11-12 17:55
test_cprofile.py
6.93
KB
-rw-r--r--
2025-11-12 17:54
test_cprofile.pyc
7.45
KB
-rw-r--r--
2025-11-12 17:55
test_cprofile.pyo
7.45
KB
-rw-r--r--
2025-11-12 17:55
test_crypt.py
1.13
KB
-rw-r--r--
2025-11-12 17:54
test_crypt.pyc
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_crypt.pyo
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_csv.py
39.94
KB
-rw-r--r--
2025-11-12 17:54
test_csv.pyc
42.81
KB
-rw-r--r--
2025-11-12 17:55
test_csv.pyo
42.81
KB
-rw-r--r--
2025-11-12 17:55
test_ctypes.py
418
B
-rw-r--r--
2025-11-12 17:54
test_ctypes.pyc
743
B
-rw-r--r--
2025-11-12 17:55
test_ctypes.pyo
743
B
-rw-r--r--
2025-11-12 17:55
test_curses.py
8.69
KB
-rw-r--r--
2025-11-12 17:54
test_curses.pyc
8.45
KB
-rw-r--r--
2025-11-12 17:55
test_curses.pyo
8.45
KB
-rw-r--r--
2025-11-12 17:55
test_datetime.py
131.76
KB
-rw-r--r--
2025-11-12 17:54
test_datetime.pyc
124.3
KB
-rw-r--r--
2025-11-12 17:55
test_datetime.pyo
123.98
KB
-rw-r--r--
2025-11-12 17:55
test_dbm.py
1.24
KB
-rw-r--r--
2025-11-12 17:54
test_dbm.pyc
2.43
KB
-rw-r--r--
2025-11-12 17:55
test_dbm.pyo
2.43
KB
-rw-r--r--
2025-11-12 17:55
test_decimal.py
81.9
KB
-rw-r--r--
2025-11-12 17:54
test_decimal.pyc
79.09
KB
-rw-r--r--
2025-11-12 17:55
test_decimal.pyo
79.09
KB
-rw-r--r--
2025-11-12 17:55
test_decorators.py
9.62
KB
-rw-r--r--
2025-11-12 17:54
test_decorators.pyc
14.21
KB
-rw-r--r--
2025-11-12 17:55
test_decorators.pyo
14.14
KB
-rw-r--r--
2025-11-12 17:55
test_defaultdict.py
5.69
KB
-rw-r--r--
2025-11-12 17:54
test_defaultdict.pyc
6.49
KB
-rw-r--r--
2025-11-12 17:55
test_defaultdict.pyo
6.49
KB
-rw-r--r--
2025-11-12 17:55
test_deque.py
24.74
KB
-rw-r--r--
2025-11-12 17:54
test_deque.pyc
27.99
KB
-rw-r--r--
2025-11-12 17:55
test_deque.pyo
27.95
KB
-rw-r--r--
2025-11-12 17:55
test_descr.py
156.56
KB
-rw-r--r--
2025-11-12 17:54
test_descr.pyc
200.03
KB
-rw-r--r--
2025-11-12 17:55
test_descr.pyo
199.95
KB
-rw-r--r--
2025-11-12 17:55
test_descrtut.py
11.77
KB
-rw-r--r--
2025-11-12 17:54
test_descrtut.pyc
13.09
KB
-rw-r--r--
2025-11-12 17:55
test_descrtut.pyo
13.09
KB
-rw-r--r--
2025-11-12 17:55
test_dict.py
20.71
KB
-rw-r--r--
2025-11-12 17:54
test_dict.pyc
29.18
KB
-rw-r--r--
2025-11-12 17:55
test_dict.pyo
29.18
KB
-rw-r--r--
2025-11-12 17:55
test_dictcomps.py
3.76
KB
-rw-r--r--
2025-11-12 17:54
test_dictcomps.pyc
5.81
KB
-rw-r--r--
2025-11-12 17:55
test_dictcomps.pyo
5.81
KB
-rw-r--r--
2025-11-12 17:55
test_dictviews.py
6.36
KB
-rw-r--r--
2025-11-12 17:54
test_dictviews.pyc
6.52
KB
-rw-r--r--
2025-11-12 17:55
test_dictviews.pyo
6.52
KB
-rw-r--r--
2025-11-12 17:55
test_difflib.py
10.9
KB
-rw-r--r--
2025-11-12 17:54
test_difflib.pyc
12.67
KB
-rw-r--r--
2025-11-12 17:55
test_difflib.pyo
12.67
KB
-rw-r--r--
2025-11-12 17:55
test_difflib_expect.html
100.86
KB
-rw-r--r--
2025-11-12 17:54
test_dircache.py
2.35
KB
-rw-r--r--
2025-11-12 17:54
test_dircache.pyc
2.94
KB
-rw-r--r--
2025-11-12 17:55
test_dircache.pyo
2.94
KB
-rw-r--r--
2025-11-12 17:55
test_dis.py
4.48
KB
-rw-r--r--
2025-11-12 17:54
test_dis.pyc
5.54
KB
-rw-r--r--
2025-11-12 17:55
test_dis.pyo
5.43
KB
-rw-r--r--
2025-11-12 17:55
test_distutils.py
385
B
-rw-r--r--
2025-11-12 17:54
test_distutils.pyc
724
B
-rw-r--r--
2025-11-12 17:55
test_distutils.pyo
724
B
-rw-r--r--
2025-11-12 17:55
test_dl.py
1.12
KB
-rwxr-xr-x
2025-11-12 17:54
test_dl.pyc
1.39
KB
-rw-r--r--
2025-11-12 17:55
test_dl.pyo
1.39
KB
-rw-r--r--
2025-11-12 17:55
test_doctest.py
82.72
KB
-rw-r--r--
2025-11-12 17:54
test_doctest.pyc
86.7
KB
-rw-r--r--
2025-11-12 17:55
test_doctest.pyo
86.64
KB
-rw-r--r--
2025-11-12 17:55
test_doctest.txt
296
B
-rw-r--r--
2025-11-12 17:54
test_doctest2.py
2.33
KB
-rw-r--r--
2025-11-12 17:54
test_doctest2.pyc
3.55
KB
-rw-r--r--
2025-11-12 17:55
test_doctest2.pyo
3.55
KB
-rw-r--r--
2025-11-12 17:55
test_doctest2.txt
392
B
-rw-r--r--
2025-11-12 17:54
test_doctest3.txt
81
B
-rw-r--r--
2025-11-12 17:54
test_doctest4.txt
314
B
-rw-r--r--
2025-11-12 17:54
test_docxmlrpc.py
8.31
KB
-rw-r--r--
2025-11-12 17:54
test_docxmlrpc.pyc
9.37
KB
-rw-r--r--
2025-11-12 17:55
test_docxmlrpc.pyo
9.37
KB
-rw-r--r--
2025-11-12 17:55
test_dumbdbm.py
4.73
KB
-rw-r--r--
2025-11-12 17:54
test_dumbdbm.pyc
5.95
KB
-rw-r--r--
2025-11-12 17:55
test_dumbdbm.pyo
5.95
KB
-rw-r--r--
2025-11-12 17:55
test_dummy_thread.py
7.01
KB
-rw-r--r--
2025-11-12 17:54
test_dummy_thread.pyc
7.84
KB
-rw-r--r--
2025-11-12 17:55
test_dummy_thread.pyo
7.84
KB
-rw-r--r--
2025-11-12 17:55
test_dummy_threading.py
1.8
KB
-rw-r--r--
2025-11-12 17:54
test_dummy_threading.pyc
2.26
KB
-rw-r--r--
2025-11-12 17:55
test_dummy_threading.pyo
2.26
KB
-rw-r--r--
2025-11-12 17:55
test_email.py
398
B
-rw-r--r--
2025-11-12 17:54
test_email.pyc
565
B
-rw-r--r--
2025-11-12 17:55
test_email.pyo
565
B
-rw-r--r--
2025-11-12 17:55
test_email_codecs.py
462
B
-rw-r--r--
2025-11-12 17:54
test_email_codecs.pyc
616
B
-rw-r--r--
2025-11-12 17:55
test_email_codecs.pyo
616
B
-rw-r--r--
2025-11-12 17:55
test_email_renamed.py
308
B
-rw-r--r--
2025-11-12 17:54
test_email_renamed.pyc
503
B
-rw-r--r--
2025-11-12 17:55
test_email_renamed.pyo
503
B
-rw-r--r--
2025-11-12 17:55
test_enumerate.py
7.34
KB
-rw-r--r--
2025-11-12 17:54
test_enumerate.pyc
14.53
KB
-rw-r--r--
2025-11-12 17:55
test_enumerate.pyo
14.53
KB
-rw-r--r--
2025-11-12 17:55
test_eof.py
894
B
-rw-r--r--
2025-11-12 17:54
test_eof.pyc
1.43
KB
-rw-r--r--
2025-11-12 17:55
test_eof.pyo
1.43
KB
-rw-r--r--
2025-11-12 17:55
test_epoll.py
7.32
KB
-rw-r--r--
2025-11-12 17:54
test_epoll.pyc
6.13
KB
-rw-r--r--
2025-11-12 17:55
test_epoll.pyo
6.13
KB
-rw-r--r--
2025-11-12 17:55
test_errno.py
1.16
KB
-rwxr-xr-x
2025-11-12 17:54
test_errno.pyc
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_errno.pyo
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_exception_variations.py
3.95
KB
-rw-r--r--
2025-11-12 17:54
test_exception_variations.pyc
4.14
KB
-rw-r--r--
2025-11-12 17:55
test_exception_variations.pyo
4.14
KB
-rw-r--r--
2025-11-12 17:55
test_exceptions.py
25.41
KB
-rw-r--r--
2025-11-12 17:54
test_exceptions.pyc
22.66
KB
-rw-r--r--
2025-11-12 17:55
test_exceptions.pyo
22.62
KB
-rw-r--r--
2025-11-12 17:55
test_extcall.py
7.52
KB
-rw-r--r--
2025-11-12 17:54
test_extcall.pyc
8.15
KB
-rw-r--r--
2025-11-12 17:55
test_extcall.pyo
8.15
KB
-rw-r--r--
2025-11-12 17:55
test_fcntl.py
4.19
KB
-rw-r--r--
2025-11-12 17:54
test_fcntl.pyc
4.74
KB
-rw-r--r--
2025-11-12 17:55
test_fcntl.pyo
4.74
KB
-rw-r--r--
2025-11-12 17:55
test_file.py
11.92
KB
-rw-r--r--
2025-11-12 17:54
test_file.pyc
11.49
KB
-rw-r--r--
2025-11-12 17:55
test_file.pyo
11.4
KB
-rw-r--r--
2025-11-12 17:55
test_file2k.py
30.77
KB
-rw-r--r--
2025-11-12 17:54
test_file2k.pyc
31.24
KB
-rw-r--r--
2025-11-12 17:55
test_file2k.pyo
31.06
KB
-rw-r--r--
2025-11-12 17:55
test_file_eintr.py
10.23
KB
-rw-r--r--
2025-11-12 17:54
test_file_eintr.pyc
8.59
KB
-rw-r--r--
2025-11-12 17:55
test_file_eintr.pyo
8.5
KB
-rw-r--r--
2025-11-12 17:55
test_filecmp.py
5.27
KB
-rw-r--r--
2025-11-12 17:54
test_filecmp.pyc
5.17
KB
-rw-r--r--
2025-11-12 17:55
test_filecmp.pyo
5.17
KB
-rw-r--r--
2025-11-12 17:55
test_fileinput.py
7.77
KB
-rw-r--r--
2025-11-12 17:54
test_fileinput.pyc
7.87
KB
-rw-r--r--
2025-11-12 17:55
test_fileinput.pyo
7.87
KB
-rw-r--r--
2025-11-12 17:55
test_fileio.py
15.14
KB
-rw-r--r--
2025-11-12 17:54
test_fileio.pyc
17.62
KB
-rw-r--r--
2025-11-12 17:55
test_fileio.pyo
17.62
KB
-rw-r--r--
2025-11-12 17:55
test_float.py
60.81
KB
-rw-r--r--
2025-11-12 17:54
test_float.pyc
47.87
KB
-rw-r--r--
2025-11-12 17:55
test_float.pyo
47.87
KB
-rw-r--r--
2025-11-12 17:55
test_fnmatch.py
2.07
KB
-rw-r--r--
2025-11-12 17:54
test_fnmatch.pyc
2.57
KB
-rw-r--r--
2025-11-12 17:55
test_fnmatch.pyo
2.57
KB
-rw-r--r--
2025-11-12 17:55
test_fork1.py
2.16
KB
-rw-r--r--
2025-11-12 17:54
test_fork1.pyc
2.41
KB
-rw-r--r--
2025-11-12 17:55
test_fork1.pyo
2.41
KB
-rw-r--r--
2025-11-12 17:55
test_format.py
13.7
KB
-rw-r--r--
2025-11-12 17:54
test_format.pyc
10.41
KB
-rw-r--r--
2025-11-12 17:55
test_format.pyo
10.41
KB
-rw-r--r--
2025-11-12 17:55
test_fpformat.py
2.25
KB
-rw-r--r--
2025-11-12 17:54
test_fpformat.pyc
2.79
KB
-rw-r--r--
2025-11-12 17:55
test_fpformat.pyo
2.79
KB
-rw-r--r--
2025-11-12 17:55
test_fractions.py
23.94
KB
-rw-r--r--
2025-11-12 17:54
test_fractions.pyc
26.32
KB
-rw-r--r--
2025-11-12 17:55
test_fractions.pyo
26.08
KB
-rw-r--r--
2025-11-12 17:55
test_frozen.py
1.21
KB
-rw-r--r--
2025-11-12 17:54
test_frozen.pyc
1.54
KB
-rw-r--r--
2025-11-12 17:55
test_frozen.pyo
1.54
KB
-rw-r--r--
2025-11-12 17:55
test_ftplib.py
25.24
KB
-rw-r--r--
2025-11-12 17:54
test_ftplib.pyc
34.13
KB
-rw-r--r--
2025-11-12 17:55
test_ftplib.pyo
34.07
KB
-rw-r--r--
2025-11-12 17:55
test_funcattrs.py
12.45
KB
-rw-r--r--
2025-11-12 17:54
test_funcattrs.pyc
14.92
KB
-rw-r--r--
2025-11-12 17:55
test_funcattrs.pyo
14.92
KB
-rw-r--r--
2025-11-12 17:55
test_functools.py
16.58
KB
-rw-r--r--
2025-11-12 17:54
test_functools.pyc
25.7
KB
-rw-r--r--
2025-11-12 17:55
test_functools.pyo
25.7
KB
-rw-r--r--
2025-11-12 17:55
test_future.py
3.77
KB
-rw-r--r--
2025-11-12 17:54
test_future.pyc
5.26
KB
-rw-r--r--
2025-11-12 17:55
test_future.pyo
5.26
KB
-rw-r--r--
2025-11-12 17:55
test_future1.py
229
B
-rw-r--r--
2025-11-12 17:54
test_future1.pyc
577
B
-rw-r--r--
2025-11-12 17:55
test_future1.pyo
577
B
-rw-r--r--
2025-11-12 17:55
test_future2.py
151
B
-rw-r--r--
2025-11-12 17:54
test_future2.pyc
591
B
-rw-r--r--
2025-11-12 17:55
test_future2.pyo
591
B
-rw-r--r--
2025-11-12 17:55
test_future3.py
576
B
-rw-r--r--
2025-11-12 17:54
test_future3.pyc
1.65
KB
-rw-r--r--
2025-11-12 17:55
test_future3.pyo
1.65
KB
-rw-r--r--
2025-11-12 17:55
test_future4.py
1.48
KB
-rw-r--r--
2025-11-12 17:54
test_future4.pyc
1.63
KB
-rw-r--r--
2025-11-12 17:55
test_future4.pyo
1.63
KB
-rw-r--r--
2025-11-12 17:55
test_future5.py
543
B
-rw-r--r--
2025-11-12 17:54
test_future5.pyc
1.25
KB
-rw-r--r--
2025-11-12 17:55
test_future5.pyo
1.25
KB
-rw-r--r--
2025-11-12 17:55
test_future_builtins.py
1.29
KB
-rw-r--r--
2025-11-12 17:54
test_future_builtins.pyc
1.92
KB
-rw-r--r--
2025-11-12 17:55
test_future_builtins.pyo
1.92
KB
-rw-r--r--
2025-11-12 17:55
test_gc.py
24.02
KB
-rw-r--r--
2025-11-12 17:54
test_gc.pyc
22.11
KB
-rw-r--r--
2025-11-12 17:55
test_gc.pyo
22.05
KB
-rw-r--r--
2025-11-12 17:55
test_gdb.py
32.45
KB
-rw-r--r--
2025-11-12 17:54
test_gdb.pyc
28.07
KB
-rw-r--r--
2025-11-12 17:55
test_gdb.pyo
28.07
KB
-rw-r--r--
2025-11-12 17:55
test_gdbm.py
2.48
KB
-rw-r--r--
2025-11-12 17:54
test_gdbm.pyc
3.45
KB
-rw-r--r--
2025-11-12 17:55
test_gdbm.pyo
3.45
KB
-rw-r--r--
2025-11-12 17:55
test_generators.py
49.58
KB
-rw-r--r--
2025-11-12 17:54
test_generators.pyc
45.06
KB
-rw-r--r--
2025-11-12 17:55
test_generators.pyo
44.4
KB
-rw-r--r--
2025-11-12 17:55
test_genericpath.py
8.97
KB
-rw-r--r--
2025-11-12 17:54
test_genericpath.pyc
8.94
KB
-rw-r--r--
2025-11-12 17:55
test_genericpath.pyo
8.94
KB
-rw-r--r--
2025-11-12 17:55
test_genexps.py
7.23
KB
-rw-r--r--
2025-11-12 17:54
test_genexps.pyc
7.47
KB
-rw-r--r--
2025-11-12 17:55
test_genexps.pyo
7.47
KB
-rw-r--r--
2025-11-12 17:55
test_getargs.py
938
B
-rw-r--r--
2025-11-12 17:54
test_getargs.pyc
1.15
KB
-rw-r--r--
2025-11-12 17:55
test_getargs.pyo
1.15
KB
-rw-r--r--
2025-11-12 17:55
test_getargs2.py
11.92
KB
-rw-r--r--
2025-11-12 17:54
test_getargs2.pyc
12.22
KB
-rw-r--r--
2025-11-12 17:55
test_getargs2.pyo
12.22
KB
-rw-r--r--
2025-11-12 17:55
test_getopt.py
6.81
KB
-rw-r--r--
2025-11-12 17:54
test_getopt.pyc
6.78
KB
-rw-r--r--
2025-11-12 17:55
test_getopt.pyo
6.78
KB
-rw-r--r--
2025-11-12 17:55
test_gettext.py
17.95
KB
-rw-r--r--
2025-11-12 17:54
test_gettext.pyc
18.64
KB
-rw-r--r--
2025-11-12 17:55
test_gettext.pyo
18.64
KB
-rw-r--r--
2025-11-12 17:55
test_gl.py
6.59
KB
-rwxr-xr-x
2025-11-12 17:54
test_gl.pyc
8.39
KB
-rw-r--r--
2025-11-12 17:55
test_gl.pyo
8.39
KB
-rw-r--r--
2025-11-12 17:55
test_glob.py
6.78
KB
-rw-r--r--
2025-11-12 17:54
test_glob.pyc
8.3
KB
-rw-r--r--
2025-11-12 17:55
test_glob.pyo
8.3
KB
-rw-r--r--
2025-11-12 17:55
test_global.py
1003
B
-rw-r--r--
2025-11-12 17:54
test_global.pyc
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_global.pyo
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_grammar.py
31.94
KB
-rw-r--r--
2025-11-12 17:54
test_grammar.pyc
39.38
KB
-rw-r--r--
2025-11-12 17:55
test_grammar.pyo
38.97
KB
-rw-r--r--
2025-11-12 17:55
test_grp.py
3.1
KB
-rw-r--r--
2025-11-12 17:54
test_grp.pyc
2.73
KB
-rw-r--r--
2025-11-12 17:55
test_grp.pyo
2.73
KB
-rw-r--r--
2025-11-12 17:55
test_gzip.py
9.74
KB
-rw-r--r--
2025-11-12 17:54
test_gzip.pyc
9.68
KB
-rw-r--r--
2025-11-12 17:55
test_gzip.pyo
9.68
KB
-rw-r--r--
2025-11-12 17:55
test_hash.py
7.92
KB
-rw-r--r--
2025-11-12 17:54
test_hash.pyc
12.12
KB
-rw-r--r--
2025-11-12 17:55
test_hash.pyo
12.12
KB
-rw-r--r--
2025-11-12 17:55
test_hashlib.py
20.71
KB
-rw-r--r--
2025-11-12 17:54
test_hashlib.pyc
20.84
KB
-rw-r--r--
2025-11-12 17:55
test_hashlib.pyo
20.65
KB
-rw-r--r--
2025-11-12 17:55
test_heapq.py
15.02
KB
-rw-r--r--
2025-11-12 17:54
test_heapq.pyc
22.29
KB
-rw-r--r--
2025-11-12 17:55
test_heapq.pyo
22.29
KB
-rw-r--r--
2025-11-12 17:55
test_hmac.py
16.85
KB
-rw-r--r--
2025-11-12 17:54
test_hmac.pyc
15.12
KB
-rw-r--r--
2025-11-12 17:55
test_hmac.pyo
15.12
KB
-rw-r--r--
2025-11-12 17:55
test_hotshot.py
4.87
KB
-rw-r--r--
2025-11-12 17:54
test_hotshot.pyc
6.33
KB
-rw-r--r--
2025-11-12 17:55
test_hotshot.pyo
6.33
KB
-rw-r--r--
2025-11-12 17:55
test_htmllib.py
1.93
KB
-rw-r--r--
2025-11-12 17:54
test_htmllib.pyc
3.32
KB
-rw-r--r--
2025-11-12 17:55
test_htmllib.pyo
3.32
KB
-rw-r--r--
2025-11-12 17:55
test_htmlparser.py
24.26
KB
-rw-r--r--
2025-11-12 17:54
test_htmlparser.pyc
27.42
KB
-rw-r--r--
2025-11-12 17:55
test_htmlparser.pyo
27.42
KB
-rw-r--r--
2025-11-12 17:55
test_httplib.py
31.89
KB
-rw-r--r--
2025-11-12 17:54
test_httplib.pyc
33.72
KB
-rw-r--r--
2025-11-12 17:55
test_httplib.pyo
33.72
KB
-rw-r--r--
2025-11-12 17:55
test_httpservers.py
18.75
KB
-rw-r--r--
2025-11-12 17:54
test_httpservers.pyc
24.38
KB
-rw-r--r--
2025-11-12 17:55
test_httpservers.pyo
24.38
KB
-rw-r--r--
2025-11-12 17:55
test_imageop.py
6.72
KB
-rwxr-xr-x
2025-11-12 17:54
test_imageop.pyc
5.15
KB
-rw-r--r--
2025-11-12 17:55
test_imageop.pyo
5.15
KB
-rw-r--r--
2025-11-12 17:55
test_imaplib.py
7.47
KB
-rw-r--r--
2025-11-12 17:54
test_imaplib.pyc
9.68
KB
-rw-r--r--
2025-11-12 17:55
test_imaplib.pyo
9.68
KB
-rw-r--r--
2025-11-12 17:55
test_imgfile.py
4.21
KB
-rwxr-xr-x
2025-11-12 17:54
test_imgfile.pyc
2.4
KB
-rw-r--r--
2025-11-12 17:55
test_imgfile.pyo
2.4
KB
-rw-r--r--
2025-11-12 17:55
test_imp.py
2.28
KB
-rw-r--r--
2025-11-12 17:54
test_imp.pyc
2.61
KB
-rw-r--r--
2025-11-12 17:55
test_imp.pyo
2.61
KB
-rw-r--r--
2025-11-12 17:55
test_import.py
23.25
KB
-rw-r--r--
2025-11-12 17:54
test_import.pyc
21.24
KB
-rw-r--r--
2025-11-12 17:55
test_import.pyo
21.11
KB
-rw-r--r--
2025-11-12 17:55
test_importhooks.py
8.17
KB
-rw-r--r--
2025-11-12 17:54
test_importhooks.pyc
9.93
KB
-rw-r--r--
2025-11-12 17:55
test_importhooks.pyo
9.93
KB
-rw-r--r--
2025-11-12 17:55
test_importlib.py
5.63
KB
-rw-r--r--
2025-11-12 17:54
test_importlib.pyc
6.39
KB
-rw-r--r--
2025-11-12 17:55
test_importlib.pyo
6.39
KB
-rw-r--r--
2025-11-12 17:55
test_index.py
9.72
KB
-rw-r--r--
2025-11-12 17:54
test_index.pyc
16.62
KB
-rw-r--r--
2025-11-12 17:55
test_index.pyo
16.62
KB
-rw-r--r--
2025-11-12 17:55
test_inspect.py
32.7
KB
-rw-r--r--
2025-11-12 17:54
test_inspect.pyc
39.29
KB
-rw-r--r--
2025-11-12 17:55
test_inspect.pyo
39.23
KB
-rw-r--r--
2025-11-12 17:55
test_int.py
18.11
KB
-rw-r--r--
2025-11-12 17:54
test_int.pyc
18.47
KB
-rw-r--r--
2025-11-12 17:55
test_int.pyo
18.47
KB
-rw-r--r--
2025-11-12 17:55
test_int_literal.py
8.91
KB
-rw-r--r--
2025-11-12 17:54
test_int_literal.pyc
4.88
KB
-rw-r--r--
2025-11-12 17:55
test_int_literal.pyo
4.88
KB
-rw-r--r--
2025-11-12 17:55
test_io.py
110.51
KB
-rw-r--r--
2025-11-12 17:54
test_io.pyc
117.57
KB
-rw-r--r--
2025-11-12 17:55
test_io.pyo
117.48
KB
-rw-r--r--
2025-11-12 17:55
test_ioctl.py
3.23
KB
-rw-r--r--
2025-11-12 17:54
test_ioctl.pyc
3.5
KB
-rw-r--r--
2025-11-12 17:55
test_ioctl.pyo
3.5
KB
-rw-r--r--
2025-11-12 17:55
test_isinstance.py
9.58
KB
-rw-r--r--
2025-11-12 17:54
test_isinstance.pyc
12.32
KB
-rw-r--r--
2025-11-12 17:55
test_isinstance.pyo
12.32
KB
-rw-r--r--
2025-11-12 17:55
test_iter.py
28.83
KB
-rw-r--r--
2025-11-12 17:54
test_iter.pyc
34.77
KB
-rw-r--r--
2025-11-12 17:55
test_iter.pyo
34.73
KB
-rw-r--r--
2025-11-12 17:55
test_iterlen.py
7.95
KB
-rw-r--r--
2025-11-12 17:54
test_iterlen.pyc
12.32
KB
-rw-r--r--
2025-11-12 17:55
test_iterlen.pyo
12.32
KB
-rw-r--r--
2025-11-12 17:55
test_itertools.py
65.78
KB
-rw-r--r--
2025-11-12 17:54
test_itertools.pyc
77.93
KB
-rw-r--r--
2025-11-12 17:55
test_itertools.pyo
77.93
KB
-rw-r--r--
2025-11-12 17:55
test_json.py
327
B
-rw-r--r--
2025-11-12 17:54
test_json.pyc
670
B
-rw-r--r--
2025-11-12 17:55
test_json.pyo
670
B
-rw-r--r--
2025-11-12 17:55
test_kqueue.py
6.53
KB
-rw-r--r--
2025-11-12 17:54
test_kqueue.pyc
5.75
KB
-rw-r--r--
2025-11-12 17:55
test_kqueue.pyo
5.75
KB
-rw-r--r--
2025-11-12 17:55
test_largefile.py
7.46
KB
-rw-r--r--
2025-11-12 17:54
test_largefile.pyc
6.41
KB
-rw-r--r--
2025-11-12 17:55
test_largefile.pyo
6.41
KB
-rw-r--r--
2025-11-12 17:55
test_lib2to3.py
614
B
-rw-r--r--
2025-11-12 17:54
test_lib2to3.pyc
989
B
-rw-r--r--
2025-11-12 17:55
test_lib2to3.pyo
989
B
-rw-r--r--
2025-11-12 17:55
test_linecache.py
3.98
KB
-rw-r--r--
2025-11-12 17:54
test_linecache.pyc
3.71
KB
-rw-r--r--
2025-11-12 17:55
test_linecache.pyo
3.71
KB
-rw-r--r--
2025-11-12 17:55
test_linuxaudiodev.py
3.1
KB
-rw-r--r--
2025-11-12 17:54
test_linuxaudiodev.pyc
3.71
KB
-rw-r--r--
2025-11-12 17:55
test_linuxaudiodev.pyo
3.71
KB
-rw-r--r--
2025-11-12 17:55
test_list.py
2.58
KB
-rw-r--r--
2025-11-12 17:54
test_list.pyc
3.1
KB
-rw-r--r--
2025-11-12 17:55
test_list.pyo
3.1
KB
-rw-r--r--
2025-11-12 17:55
test_locale.py
15.45
KB
-rw-r--r--
2025-11-12 17:54
test_locale.pyc
18.25
KB
-rw-r--r--
2025-11-12 17:55
test_locale.pyo
18.25
KB
-rw-r--r--
2025-11-12 17:55
test_logging.py
60.55
KB
-rw-r--r--
2025-11-12 17:54
test_logging.pyc
47.42
KB
-rw-r--r--
2025-11-12 17:55
test_logging.pyo
47.42
KB
-rw-r--r--
2025-11-12 17:55
test_long.py
36.4
KB
-rw-r--r--
2025-11-12 17:54
test_long.pyc
43.9
KB
-rw-r--r--
2025-11-12 17:55
test_long.pyo
43.71
KB
-rw-r--r--
2025-11-12 17:55
test_long_future.py
8.81
KB
-rw-r--r--
2025-11-12 17:54
test_long_future.pyc
12.05
KB
-rw-r--r--
2025-11-12 17:55
test_long_future.pyo
12.05
KB
-rw-r--r--
2025-11-12 17:55
test_longexp.py
318
B
-rw-r--r--
2025-11-12 17:54
test_longexp.pyc
918
B
-rw-r--r--
2025-11-12 17:55
test_longexp.pyo
918
B
-rw-r--r--
2025-11-12 17:55
test_macos.py
2.6
KB
-rw-r--r--
2025-11-12 17:54
test_macos.pyc
2.75
KB
-rw-r--r--
2025-11-12 17:55
test_macos.pyo
2.75
KB
-rw-r--r--
2025-11-12 17:55
test_macostools.py
2.89
KB
-rw-r--r--
2025-11-12 17:54
test_macostools.pyc
3.49
KB
-rw-r--r--
2025-11-12 17:55
test_macostools.pyo
3.49
KB
-rw-r--r--
2025-11-12 17:55
test_macpath.py
1.95
KB
-rw-r--r--
2025-11-12 17:54
test_macpath.pyc
3.06
KB
-rw-r--r--
2025-11-12 17:55
test_macpath.pyo
3.06
KB
-rw-r--r--
2025-11-12 17:55
test_mailbox.py
84.51
KB
-rw-r--r--
2025-11-12 17:54
test_mailbox.pyc
84.79
KB
-rw-r--r--
2025-11-12 17:55
test_mailbox.pyo
84.79
KB
-rw-r--r--
2025-11-12 17:55
test_marshal.py
12.2
KB
-rw-r--r--
2025-11-12 17:54
test_marshal.pyc
13.6
KB
-rw-r--r--
2025-11-12 17:55
test_marshal.pyo
13.6
KB
-rw-r--r--
2025-11-12 17:55
test_math.py
43.2
KB
-rw-r--r--
2025-11-12 17:54
test_math.pyc
38.71
KB
-rw-r--r--
2025-11-12 17:55
test_math.pyo
38.71
KB
-rw-r--r--
2025-11-12 17:55
test_md5.py
1.75
KB
-rw-r--r--
2025-11-12 17:54
test_md5.pyc
2.74
KB
-rw-r--r--
2025-11-12 17:55
test_md5.pyo
2.74
KB
-rw-r--r--
2025-11-12 17:55
test_memoryio.py
25.46
KB
-rw-r--r--
2025-11-12 17:54
test_memoryio.pyc
27.06
KB
-rw-r--r--
2025-11-12 17:55
test_memoryio.pyo
27.06
KB
-rw-r--r--
2025-11-12 17:55
test_memoryview.py
11.53
KB
-rw-r--r--
2025-11-12 17:54
test_memoryview.pyc
12.71
KB
-rw-r--r--
2025-11-12 17:55
test_memoryview.pyo
12.71
KB
-rw-r--r--
2025-11-12 17:55
test_mhlib.py
10.88
KB
-rw-r--r--
2025-11-12 17:54
test_mhlib.pyc
11.5
KB
-rw-r--r--
2025-11-12 17:55
test_mhlib.pyo
11.5
KB
-rw-r--r--
2025-11-12 17:55
test_mimetools.py
1.74
KB
-rw-r--r--
2025-11-12 17:54
test_mimetools.pyc
2.5
KB
-rw-r--r--
2025-11-12 17:55
test_mimetools.pyo
2.5
KB
-rw-r--r--
2025-11-12 17:55
test_mimetypes.py
3.53
KB
-rw-r--r--
2025-11-12 17:54
test_mimetypes.pyc
4.54
KB
-rw-r--r--
2025-11-12 17:55
test_mimetypes.pyo
4.54
KB
-rw-r--r--
2025-11-12 17:55
test_minidom.py
61.11
KB
-rw-r--r--
2025-11-12 17:54
test_minidom.pyc
55.47
KB
-rw-r--r--
2025-11-12 17:55
test_minidom.pyo
55.47
KB
-rw-r--r--
2025-11-12 17:55
test_mmap.py
24.4
KB
-rw-r--r--
2025-11-12 17:54
test_mmap.pyc
20.38
KB
-rw-r--r--
2025-11-12 17:55
test_mmap.pyo
20.33
KB
-rw-r--r--
2025-11-12 17:55
test_module.py
2.69
KB
-rw-r--r--
2025-11-12 17:54
test_module.pyc
3.31
KB
-rw-r--r--
2025-11-12 17:55
test_module.pyo
3.31
KB
-rw-r--r--
2025-11-12 17:55
test_modulefinder.py
7.87
KB
-rw-r--r--
2025-11-12 17:54
test_modulefinder.pyc
7.83
KB
-rw-r--r--
2025-11-12 17:55
test_modulefinder.pyo
7.83
KB
-rw-r--r--
2025-11-12 17:55
test_msilib.py
1.43
KB
-rw-r--r--
2025-11-12 17:54
test_msilib.pyc
1.92
KB
-rw-r--r--
2025-11-12 17:55
test_msilib.pyo
1.92
KB
-rw-r--r--
2025-11-12 17:55
test_multibytecodec.py
10.61
KB
-rw-r--r--
2025-11-12 17:54
test_multibytecodec.pyc
11.97
KB
-rw-r--r--
2025-11-12 17:55
test_multibytecodec.pyo
11.97
KB
-rw-r--r--
2025-11-12 17:55
test_multibytecodec_support.py
14.19
KB
-rw-r--r--
2025-11-12 17:54
test_multibytecodec_support.pyc
15.35
KB
-rw-r--r--
2025-11-12 17:55
test_multibytecodec_support.pyo
15.35
KB
-rw-r--r--
2025-11-12 17:55
test_multifile.py
1.66
KB
-rw-r--r--
2025-11-12 17:54
test_multifile.pyc
2.03
KB
-rw-r--r--
2025-11-12 17:55
test_multifile.pyo
1.96
KB
-rw-r--r--
2025-11-12 17:55
test_multiprocessing.py
76.8
KB
-rw-r--r--
2025-11-12 17:54
test_multiprocessing.pyc
81.16
KB
-rw-r--r--
2025-11-12 17:55
test_multiprocessing.pyo
81.08
KB
-rw-r--r--
2025-11-12 17:55
test_mutants.py
8.3
KB
-rw-r--r--
2025-11-12 17:54
test_mutants.pyc
6.46
KB
-rw-r--r--
2025-11-12 17:55
test_mutants.pyo
6.46
KB
-rw-r--r--
2025-11-12 17:55
test_mutex.py
999
B
-rw-r--r--
2025-11-12 17:54
test_mutex.pyc
1.7
KB
-rw-r--r--
2025-11-12 17:55
test_mutex.pyo
1.7
KB
-rw-r--r--
2025-11-12 17:55
test_netrc.py
3.63
KB
-rw-r--r--
2025-11-12 17:54
test_netrc.pyc
5.67
KB
-rw-r--r--
2025-11-12 17:55
test_netrc.pyo
5.67
KB
-rw-r--r--
2025-11-12 17:55
test_new.py
5.91
KB
-rw-r--r--
2025-11-12 17:54
test_new.pyc
5.62
KB
-rw-r--r--
2025-11-12 17:55
test_new.pyo
5.62
KB
-rw-r--r--
2025-11-12 17:55
test_nis.py
1.31
KB
-rw-r--r--
2025-11-12 17:54
test_nis.pyc
1.33
KB
-rw-r--r--
2025-11-12 17:55
test_nis.pyo
1.33
KB
-rw-r--r--
2025-11-12 17:55
test_nntplib.py
1.44
KB
-rw-r--r--
2025-11-12 17:54
test_nntplib.pyc
2.76
KB
-rw-r--r--
2025-11-12 17:55
test_nntplib.pyo
2.76
KB
-rw-r--r--
2025-11-12 17:55
test_normalization.py
3.06
KB
-rw-r--r--
2025-11-12 17:54
test_normalization.pyc
4.02
KB
-rw-r--r--
2025-11-12 17:55
test_normalization.pyo
4.02
KB
-rw-r--r--
2025-11-12 17:55
test_ntpath.py
8.97
KB
-rw-r--r--
2025-11-12 17:54
test_ntpath.pyc
10.59
KB
-rw-r--r--
2025-11-12 17:55
test_ntpath.pyo
10.59
KB
-rw-r--r--
2025-11-12 17:55
test_old_mailbox.py
4.77
KB
-rw-r--r--
2025-11-12 17:54
test_old_mailbox.pyc
5.88
KB
-rw-r--r--
2025-11-12 17:55
test_old_mailbox.pyo
5.88
KB
-rw-r--r--
2025-11-12 17:55
test_opcodes.py
3.04
KB
-rw-r--r--
2025-11-12 17:54
test_opcodes.pyc
4.07
KB
-rw-r--r--
2025-11-12 17:55
test_opcodes.pyo
4.07
KB
-rw-r--r--
2025-11-12 17:55
test_openpty.py
699
B
-rw-r--r--
2025-11-12 17:54
test_openpty.pyc
1.22
KB
-rw-r--r--
2025-11-12 17:55
test_openpty.pyo
1.22
KB
-rw-r--r--
2025-11-12 17:55
test_operator.py
20.96
KB
-rw-r--r--
2025-11-12 17:54
test_operator.pyc
27.16
KB
-rw-r--r--
2025-11-12 17:55
test_operator.pyo
27.16
KB
-rw-r--r--
2025-11-12 17:55
test_optparse.py
60.66
KB
-rw-r--r--
2025-11-12 17:54
test_optparse.pyc
75.26
KB
-rw-r--r--
2025-11-12 17:55
test_optparse.pyo
75.26
KB
-rw-r--r--
2025-11-12 17:55
test_os.py
32.6
KB
-rw-r--r--
2025-11-12 17:54
test_os.pyc
30.04
KB
-rw-r--r--
2025-11-12 17:55
test_os.pyo
30.04
KB
-rw-r--r--
2025-11-12 17:55
test_ossaudiodev.py
5.95
KB
-rw-r--r--
2025-11-12 17:54
test_ossaudiodev.pyc
5.04
KB
-rw-r--r--
2025-11-12 17:55
test_ossaudiodev.pyo
5.04
KB
-rw-r--r--
2025-11-12 17:55
test_parser.py
21.81
KB
-rw-r--r--
2025-11-12 17:54
test_parser.pyc
22.67
KB
-rw-r--r--
2025-11-12 17:55
test_parser.pyo
22.67
KB
-rw-r--r--
2025-11-12 17:55
test_pdb.py
10.96
KB
-rw-r--r--
2025-11-12 17:54
test_pdb.pyc
12.53
KB
-rw-r--r--
2025-11-12 17:55
test_pdb.pyo
12.53
KB
-rw-r--r--
2025-11-12 17:55
test_peepholer.py
8.64
KB
-rw-r--r--
2025-11-12 17:54
test_peepholer.pyc
9.77
KB
-rw-r--r--
2025-11-12 17:55
test_peepholer.pyo
9.77
KB
-rw-r--r--
2025-11-12 17:55
test_pep247.py
1.99
KB
-rw-r--r--
2025-11-12 17:54
test_pep247.pyc
2.48
KB
-rw-r--r--
2025-11-12 17:55
test_pep247.pyo
2.48
KB
-rw-r--r--
2025-11-12 17:55
test_pep263.py
1.34
KB
-rw-r--r--
2025-11-12 17:54
test_pep263.pyc
1.77
KB
-rw-r--r--
2025-11-12 17:55
test_pep263.pyo
1.77
KB
-rw-r--r--
2025-11-12 17:55
test_pep277.py
7.69
KB
-rw-r--r--
2025-11-12 17:54
test_pep277.pyc
7.24
KB
-rw-r--r--
2025-11-12 17:55
test_pep277.pyo
7.24
KB
-rw-r--r--
2025-11-12 17:55
test_pep292.py
7.5
KB
-rw-r--r--
2025-11-12 17:54
test_pep292.pyc
9.49
KB
-rw-r--r--
2025-11-12 17:55
test_pep292.pyo
9.49
KB
-rw-r--r--
2025-11-12 17:55
test_pep352.py
8.83
KB
-rw-r--r--
2025-11-12 17:54
test_pep352.pyc
8.83
KB
-rw-r--r--
2025-11-12 17:55
test_pep352.pyo
8.83
KB
-rw-r--r--
2025-11-12 17:55
test_pickle.py
2.3
KB
-rw-r--r--
2025-11-12 17:54
test_pickle.pyc
4.25
KB
-rw-r--r--
2025-11-12 17:55
test_pickle.pyo
4.25
KB
-rw-r--r--
2025-11-12 17:55
test_pickletools.py
611
B
-rw-r--r--
2025-11-12 17:54
test_pickletools.pyc
1.27
KB
-rw-r--r--
2025-11-12 17:55
test_pickletools.pyo
1.27
KB
-rw-r--r--
2025-11-12 17:55
test_pipes.py
6.83
KB
-rw-r--r--
2025-11-12 17:54
test_pipes.pyc
7.21
KB
-rw-r--r--
2025-11-12 17:55
test_pipes.pyo
7.21
KB
-rw-r--r--
2025-11-12 17:55
test_pkg.py
9.25
KB
-rw-r--r--
2025-11-12 17:54
test_pkg.pyc
9.17
KB
-rw-r--r--
2025-11-12 17:55
test_pkg.pyo
9.17
KB
-rw-r--r--
2025-11-12 17:55
test_pkgimport.py
2.81
KB
-rw-r--r--
2025-11-12 17:54
test_pkgimport.pyc
3.41
KB
-rw-r--r--
2025-11-12 17:55
test_pkgimport.pyo
3.41
KB
-rw-r--r--
2025-11-12 17:55
test_pkgutil.py
4.54
KB
-rw-r--r--
2025-11-12 17:54
test_pkgutil.pyc
5.45
KB
-rw-r--r--
2025-11-12 17:55
test_pkgutil.pyo
5.45
KB
-rw-r--r--
2025-11-12 17:55
test_platform.py
9.49
KB
-rw-r--r--
2025-11-12 17:54
test_platform.pyc
10.63
KB
-rw-r--r--
2025-11-12 17:55
test_platform.pyo
10.63
KB
-rw-r--r--
2025-11-12 17:55
test_plistlib.py
7.79
KB
-rw-r--r--
2025-11-12 17:54
test_plistlib.pyc
9.15
KB
-rw-r--r--
2025-11-12 17:55
test_plistlib.pyo
9.15
KB
-rw-r--r--
2025-11-12 17:55
test_poll.py
4.88
KB
-rw-r--r--
2025-11-12 17:54
test_poll.pyc
4.97
KB
-rw-r--r--
2025-11-12 17:55
test_poll.pyo
4.97
KB
-rw-r--r--
2025-11-12 17:55
test_popen.py
1.59
KB
-rw-r--r--
2025-11-12 17:54
test_popen.pyc
1.99
KB
-rw-r--r--
2025-11-12 17:55
test_popen.pyo
1.99
KB
-rw-r--r--
2025-11-12 17:55
test_popen2.py
4.24
KB
-rw-r--r--
2025-11-12 17:54
test_popen2.pyc
4.46
KB
-rw-r--r--
2025-11-12 17:55
test_popen2.pyo
4.46
KB
-rw-r--r--
2025-11-12 17:55
test_poplib.py
10.61
KB
-rw-r--r--
2025-11-12 17:54
test_poplib.pyc
15.67
KB
-rw-r--r--
2025-11-12 17:55
test_poplib.pyo
15.61
KB
-rw-r--r--
2025-11-12 17:55
test_posix.py
20.64
KB
-rw-r--r--
2025-11-12 17:54
test_posix.pyc
19.38
KB
-rw-r--r--
2025-11-12 17:55
test_posix.pyo
19.38
KB
-rw-r--r--
2025-11-12 17:55
test_posixpath.py
17.3
KB
-rw-r--r--
2025-11-12 17:54
test_posixpath.pyc
14.3
KB
-rw-r--r--
2025-11-12 17:55
test_posixpath.pyo
14.3
KB
-rw-r--r--
2025-11-12 17:55
test_pow.py
4.51
KB
-rw-r--r--
2025-11-12 17:54
test_pow.pyc
4.67
KB
-rw-r--r--
2025-11-12 17:55
test_pow.pyo
4.67
KB
-rw-r--r--
2025-11-12 17:55
test_pprint.py
24.11
KB
-rw-r--r--
2025-11-12 17:54
test_pprint.pyc
24.15
KB
-rw-r--r--
2025-11-12 17:55
test_pprint.pyo
24.15
KB
-rw-r--r--
2025-11-12 17:55
test_print.py
4.68
KB
-rw-r--r--
2025-11-12 17:54
test_print.pyc
5.95
KB
-rw-r--r--
2025-11-12 17:55
test_print.pyo
5.95
KB
-rw-r--r--
2025-11-12 17:55
test_profile.py
7.84
KB
-rw-r--r--
2025-11-12 17:54
test_profile.pyc
8.33
KB
-rw-r--r--
2025-11-12 17:55
test_profile.pyo
8.33
KB
-rw-r--r--
2025-11-12 17:55
test_property.py
6.77
KB
-rw-r--r--
2025-11-12 17:54
test_property.pyc
11.66
KB
-rw-r--r--
2025-11-12 17:55
test_property.pyo
11.66
KB
-rw-r--r--
2025-11-12 17:55
test_pstats.py
959
B
-rw-r--r--
2025-11-12 17:54
test_pstats.pyc
1.41
KB
-rw-r--r--
2025-11-12 17:55
test_pstats.pyo
1.41
KB
-rw-r--r--
2025-11-12 17:55
test_pty.py
11.43
KB
-rw-r--r--
2025-11-12 17:54
test_pty.pyc
8.21
KB
-rw-r--r--
2025-11-12 17:55
test_pty.pyo
8.21
KB
-rw-r--r--
2025-11-12 17:55
test_pwd.py
4.01
KB
-rw-r--r--
2025-11-12 17:54
test_pwd.pyc
2.93
KB
-rw-r--r--
2025-11-12 17:55
test_pwd.pyo
2.93
KB
-rw-r--r--
2025-11-12 17:55
test_py3kwarn.py
17.91
KB
-rw-r--r--
2025-11-12 17:54
test_py3kwarn.pyc
22.41
KB
-rw-r--r--
2025-11-12 17:55
test_py3kwarn.pyo
22.41
KB
-rw-r--r--
2025-11-12 17:55
test_py_compile.py
1.7
KB
-rw-r--r--
2025-11-12 17:54
test_py_compile.pyc
2.4
KB
-rw-r--r--
2025-11-12 17:55
test_py_compile.pyo
2.4
KB
-rw-r--r--
2025-11-12 17:55
test_pyclbr.py
7.71
KB
-rw-r--r--
2025-11-12 17:54
test_pyclbr.pyc
6.81
KB
-rw-r--r--
2025-11-12 17:55
test_pyclbr.pyo
6.81
KB
-rw-r--r--
2025-11-12 17:55
test_pydoc.py
15.29
KB
-rw-r--r--
2025-11-12 17:54
test_pydoc.pyc
17.49
KB
-rw-r--r--
2025-11-12 17:55
test_pydoc.pyo
17.49
KB
-rw-r--r--
2025-11-12 17:55
test_pyexpat.py
24.42
KB
-rw-r--r--
2025-11-12 17:54
test_pyexpat.pyc
28.65
KB
-rw-r--r--
2025-11-12 17:55
test_pyexpat.pyo
28.65
KB
-rw-r--r--
2025-11-12 17:55
test_queue.py
11.69
KB
-rw-r--r--
2025-11-12 17:54
test_queue.pyc
10.03
KB
-rw-r--r--
2025-11-12 17:55
test_queue.pyo
10.03
KB
-rw-r--r--
2025-11-12 17:55
test_quopri.py
7.31
KB
-rw-r--r--
2025-11-12 17:54
test_quopri.pyc
7.96
KB
-rw-r--r--
2025-11-12 17:55
test_quopri.pyo
7.96
KB
-rw-r--r--
2025-11-12 17:55
test_random.py
23.96
KB
-rw-r--r--
2025-11-12 17:54
test_random.pyc
24.04
KB
-rw-r--r--
2025-11-12 17:55
test_random.pyo
24.04
KB
-rw-r--r--
2025-11-12 17:55
test_re.py
46.42
KB
-rw-r--r--
2025-11-12 17:54
test_re.pyc
43.16
KB
-rw-r--r--
2025-11-12 17:55
test_re.pyo
43.16
KB
-rw-r--r--
2025-11-12 17:55
test_readline.py
2.36
KB
-rw-r--r--
2025-11-12 17:54
test_readline.pyc
2.57
KB
-rw-r--r--
2025-11-12 17:55
test_readline.pyo
2.57
KB
-rw-r--r--
2025-11-12 17:55
test_repr.py
12.06
KB
-rw-r--r--
2025-11-12 17:54
test_repr.pyc
14.7
KB
-rw-r--r--
2025-11-12 17:55
test_repr.pyo
14.7
KB
-rw-r--r--
2025-11-12 17:55
test_resource.py
4.9
KB
-rw-r--r--
2025-11-12 17:54
test_resource.pyc
3.88
KB
-rw-r--r--
2025-11-12 17:55
test_resource.pyo
3.88
KB
-rw-r--r--
2025-11-12 17:55
test_rfc822.py
9.02
KB
-rw-r--r--
2025-11-12 17:54
test_rfc822.pyc
9.36
KB
-rw-r--r--
2025-11-12 17:55
test_rfc822.pyo
9.36
KB
-rw-r--r--
2025-11-12 17:55
test_richcmp.py
11.2
KB
-rw-r--r--
2025-11-12 17:54
test_richcmp.pyc
15.97
KB
-rw-r--r--
2025-11-12 17:55
test_richcmp.pyo
15.97
KB
-rw-r--r--
2025-11-12 17:55
test_rlcompleter.py
2.78
KB
-rw-r--r--
2025-11-12 17:54
test_rlcompleter.pyc
3.35
KB
-rw-r--r--
2025-11-12 17:55
test_rlcompleter.pyo
3.35
KB
-rw-r--r--
2025-11-12 17:55
test_robotparser.py
6.39
KB
-rw-r--r--
2025-11-12 17:54
test_robotparser.pyc
5.99
KB
-rw-r--r--
2025-11-12 17:55
test_robotparser.pyo
5.99
KB
-rw-r--r--
2025-11-12 17:55
test_runpy.py
16
KB
-rw-r--r--
2025-11-12 17:54
test_runpy.pyc
15.18
KB
-rw-r--r--
2025-11-12 17:55
test_runpy.pyo
15.18
KB
-rw-r--r--
2025-11-12 17:55
test_sax.py
29.9
KB
-rw-r--r--
2025-11-12 17:54
test_sax.pyc
30.48
KB
-rw-r--r--
2025-11-12 17:55
test_sax.pyo
30.48
KB
-rw-r--r--
2025-11-12 17:55
test_scope.py
15.17
KB
-rw-r--r--
2025-11-12 17:54
test_scope.pyc
24.83
KB
-rw-r--r--
2025-11-12 17:55
test_scope.pyo
24.83
KB
-rw-r--r--
2025-11-12 17:55
test_scriptpackages.py
1.36
KB
-rw-r--r--
2025-11-12 17:54
test_scriptpackages.pyc
2.53
KB
-rw-r--r--
2025-11-12 17:55
test_scriptpackages.pyo
2.53
KB
-rw-r--r--
2025-11-12 17:55
test_select.py
2.11
KB
-rw-r--r--
2025-11-12 17:54
test_select.pyc
3.41
KB
-rw-r--r--
2025-11-12 17:55
test_select.pyo
3.41
KB
-rw-r--r--
2025-11-12 17:55
test_set.py
61.44
KB
-rw-r--r--
2025-11-12 17:54
test_set.pyc
85.37
KB
-rw-r--r--
2025-11-12 17:55
test_set.pyo
85.37
KB
-rw-r--r--
2025-11-12 17:55
test_setcomps.py
3.76
KB
-rw-r--r--
2025-11-12 17:54
test_setcomps.pyc
3.99
KB
-rw-r--r--
2025-11-12 17:55
test_setcomps.pyo
3.99
KB
-rw-r--r--
2025-11-12 17:55
test_sets.py
27.2
KB
-rw-r--r--
2025-11-12 17:54
test_sets.pyc
41.03
KB
-rw-r--r--
2025-11-12 17:55
test_sets.pyo
41.03
KB
-rw-r--r--
2025-11-12 17:55
test_sgmllib.py
15.36
KB
-rw-r--r--
2025-11-12 17:54
test_sgmllib.pyc
18.31
KB
-rw-r--r--
2025-11-12 17:55
test_sgmllib.pyo
18.31
KB
-rw-r--r--
2025-11-12 17:55
test_sha.py
1.66
KB
-rw-r--r--
2025-11-12 17:54
test_sha.pyc
2.14
KB
-rw-r--r--
2025-11-12 17:55
test_sha.pyo
2.14
KB
-rw-r--r--
2025-11-12 17:55
test_shelve.py
4.49
KB
-rw-r--r--
2025-11-12 17:54
test_shelve.pyc
6.87
KB
-rw-r--r--
2025-11-12 17:55
test_shelve.pyo
6.87
KB
-rw-r--r--
2025-11-12 17:55
test_shlex.py
5.18
KB
-rw-r--r--
2025-11-12 17:54
test_shlex.pyc
5.85
KB
-rw-r--r--
2025-11-12 17:55
test_shlex.pyo
5.85
KB
-rw-r--r--
2025-11-12 17:55
test_shutil.py
30.92
KB
-rw-r--r--
2025-11-12 17:54
test_shutil.pyc
28.4
KB
-rw-r--r--
2025-11-12 17:55
test_shutil.pyo
28.3
KB
-rw-r--r--
2025-11-12 17:55
test_signal.py
18.46
KB
-rw-r--r--
2025-11-12 17:54
test_signal.pyc
16.86
KB
-rw-r--r--
2025-11-12 17:55
test_signal.pyo
16.86
KB
-rw-r--r--
2025-11-12 17:55
test_site.py
15.36
KB
-rw-r--r--
2025-11-12 17:54
test_site.py.lib64
15.19
KB
-rw-r--r--
2025-11-12 17:54
test_site.pyc
14.35
KB
-rw-r--r--
2025-11-12 17:55
test_site.pyo
14.35
KB
-rw-r--r--
2025-11-12 17:55
test_slice.py
4.31
KB
-rw-r--r--
2025-11-12 17:54
test_slice.pyc
5.87
KB
-rw-r--r--
2025-11-12 17:55
test_slice.pyo
5.87
KB
-rw-r--r--
2025-11-12 17:55
test_smtplib.py
18.87
KB
-rw-r--r--
2025-11-12 17:54
test_smtplib.pyc
20.3
KB
-rw-r--r--
2025-11-12 17:55
test_smtplib.pyo
20.3
KB
-rw-r--r--
2025-11-12 17:55
test_smtpnet.py
842
B
-rw-r--r--
2025-11-12 17:54
test_smtpnet.pyc
1.39
KB
-rw-r--r--
2025-11-12 17:55
test_smtpnet.pyo
1.39
KB
-rw-r--r--
2025-11-12 17:55
test_socket.py
58.99
KB
-rw-r--r--
2025-11-12 17:54
test_socket.pyc
70.11
KB
-rw-r--r--
2025-11-12 17:55
test_socket.pyo
70.11
KB
-rw-r--r--
2025-11-12 17:55
test_socketserver.py
10.58
KB
-rw-r--r--
2025-11-12 17:54
test_socketserver.pyc
11.25
KB
-rw-r--r--
2025-11-12 17:55
test_socketserver.pyo
11.25
KB
-rw-r--r--
2025-11-12 17:55
test_softspace.py
640
B
-rw-r--r--
2025-11-12 17:54
test_softspace.pyc
1.32
KB
-rw-r--r--
2025-11-12 17:55
test_softspace.pyo
1.32
KB
-rw-r--r--
2025-11-12 17:55
test_sort.py
9.24
KB
-rw-r--r--
2025-11-12 17:54
test_sort.pyc
12.42
KB
-rw-r--r--
2025-11-12 17:55
test_sort.pyo
12.42
KB
-rw-r--r--
2025-11-12 17:55
test_sqlite.py
583
B
-rw-r--r--
2025-11-12 17:54
test_sqlite.pyc
841
B
-rw-r--r--
2025-11-12 17:55
test_sqlite.pyo
841
B
-rw-r--r--
2025-11-12 17:55
test_ssl.py
143.47
KB
-rw-r--r--
2025-11-12 17:54
test_ssl.pyc
109.64
KB
-rw-r--r--
2025-11-12 17:55
test_ssl.pyo
109.64
KB
-rw-r--r--
2025-11-12 17:55
test_startfile.py
1.39
KB
-rw-r--r--
2025-11-12 17:54
test_startfile.pyc
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_startfile.pyo
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_str.py
18.46
KB
-rw-r--r--
2025-11-12 17:54
test_str.pyc
20.95
KB
-rw-r--r--
2025-11-12 17:55
test_str.pyo
20.95
KB
-rw-r--r--
2025-11-12 17:55
test_strftime.py
6.79
KB
-rw-r--r--
2025-11-12 17:54
test_strftime.pyc
7.16
KB
-rw-r--r--
2025-11-12 17:55
test_strftime.pyo
7.16
KB
-rw-r--r--
2025-11-12 17:55
test_string.py
8.94
KB
-rw-r--r--
2025-11-12 17:54
test_string.pyc
9.85
KB
-rw-r--r--
2025-11-12 17:55
test_string.pyo
9.85
KB
-rw-r--r--
2025-11-12 17:55
test_stringprep.py
3.17
KB
-rw-r--r--
2025-11-12 17:54
test_stringprep.pyc
2.12
KB
-rw-r--r--
2025-11-12 17:55
test_stringprep.pyo
2.12
KB
-rw-r--r--
2025-11-12 17:55
test_strop.py
6.22
KB
-rw-r--r--
2025-11-12 17:54
test_strop.pyc
7.95
KB
-rw-r--r--
2025-11-12 17:55
test_strop.pyo
7.95
KB
-rw-r--r--
2025-11-12 17:55
test_strptime.py
25.24
KB
-rw-r--r--
2025-11-12 17:54
test_strptime.pyc
23.68
KB
-rw-r--r--
2025-11-12 17:55
test_strptime.pyo
23.68
KB
-rw-r--r--
2025-11-12 17:55
test_strtod.py
18.53
KB
-rw-r--r--
2025-11-12 17:54
test_strtod.pyc
14.03
KB
-rw-r--r--
2025-11-12 17:55
test_strtod.pyo
13.81
KB
-rw-r--r--
2025-11-12 17:55
test_struct.py
23.58
KB
-rw-r--r--
2025-11-12 17:54
test_struct.pyc
20.69
KB
-rw-r--r--
2025-11-12 17:55
test_struct.pyo
20.69
KB
-rw-r--r--
2025-11-12 17:55
test_structmembers.py
3.36
KB
-rw-r--r--
2025-11-12 17:54
test_structmembers.pyc
5.07
KB
-rw-r--r--
2025-11-12 17:55
test_structmembers.pyo
5.07
KB
-rw-r--r--
2025-11-12 17:55
test_structseq.py
3.6
KB
-rw-r--r--
2025-11-12 17:54
test_structseq.pyc
5.38
KB
-rw-r--r--
2025-11-12 17:55
test_structseq.pyo
5.38
KB
-rw-r--r--
2025-11-12 17:55
test_subprocess.py
57.32
KB
-rw-r--r--
2025-11-12 17:54
test_subprocess.pyc
51.93
KB
-rw-r--r--
2025-11-12 17:55
test_subprocess.pyo
51.93
KB
-rw-r--r--
2025-11-12 17:55
test_sunaudiodev.py
687
B
-rw-r--r--
2025-11-12 17:54
test_sunaudiodev.pyc
1.18
KB
-rw-r--r--
2025-11-12 17:55
test_sunaudiodev.pyo
1.18
KB
-rw-r--r--
2025-11-12 17:55
test_sundry.py
3.02
KB
-rw-r--r--
2025-11-12 17:54
test_sundry.pyc
3.5
KB
-rw-r--r--
2025-11-12 17:55
test_sundry.pyo
3.5
KB
-rw-r--r--
2025-11-12 17:55
test_support.py
48.85
KB
-rw-r--r--
2025-11-12 17:54
test_support.pyc
48.08
KB
-rw-r--r--
2025-11-12 17:55
test_support.pyo
48.03
KB
-rw-r--r--
2025-11-12 17:55
test_symtable.py
6.16
KB
-rw-r--r--
2025-11-12 17:54
test_symtable.pyc
8.17
KB
-rw-r--r--
2025-11-12 17:55
test_symtable.pyo
8.17
KB
-rw-r--r--
2025-11-12 17:55
test_syntax.py
18.3
KB
-rw-r--r--
2025-11-12 17:54
test_syntax.pyc
19.69
KB
-rw-r--r--
2025-11-12 17:55
test_syntax.pyo
19.69
KB
-rw-r--r--
2025-11-12 17:55
test_sys.py
28.5
KB
-rw-r--r--
2025-11-12 17:54
test_sys.pyc
25.02
KB
-rw-r--r--
2025-11-12 17:55
test_sys.pyo
25.02
KB
-rw-r--r--
2025-11-12 17:55
test_sys_setprofile.py
11.11
KB
-rw-r--r--
2025-11-12 17:54
test_sys_setprofile.pyc
16.55
KB
-rw-r--r--
2025-11-12 17:55
test_sys_setprofile.pyo
16.55
KB
-rw-r--r--
2025-11-12 17:55
test_sys_settrace.py
23.44
KB
-rw-r--r--
2025-11-12 17:54
test_sys_settrace.pyc
30.56
KB
-rw-r--r--
2025-11-12 17:55
test_sys_settrace.pyo
30.48
KB
-rw-r--r--
2025-11-12 17:55
test_sysconfig.py
12.34
KB
-rw-r--r--
2025-11-12 17:54
test_sysconfig.pyc
10.63
KB
-rw-r--r--
2025-11-12 17:55
test_sysconfig.pyo
10.63
KB
-rw-r--r--
2025-11-12 17:55
test_tarfile.py
64.06
KB
-rw-r--r--
2025-11-12 17:54
test_tarfile.pyc
67.45
KB
-rw-r--r--
2025-11-12 17:55
test_tarfile.pyo
67.45
KB
-rw-r--r--
2025-11-12 17:55
test_tcl.py
5.76
KB
-rw-r--r--
2025-11-12 17:54
test_tcl.pyc
8.28
KB
-rw-r--r--
2025-11-12 17:55
test_tcl.pyo
8.28
KB
-rw-r--r--
2025-11-12 17:55
test_telnetlib.py
15.41
KB
-rw-r--r--
2025-11-12 17:54
test_telnetlib.pyc
18.38
KB
-rw-r--r--
2025-11-12 17:55
test_telnetlib.pyo
18.38
KB
-rw-r--r--
2025-11-12 17:55
test_tempfile.py
30.04
KB
-rw-r--r--
2025-11-12 17:54
test_tempfile.pyc
30.6
KB
-rw-r--r--
2025-11-12 17:55
test_tempfile.pyo
30.6
KB
-rw-r--r--
2025-11-12 17:55
test_textwrap.py
24.96
KB
-rw-r--r--
2025-11-12 17:54
test_textwrap.pyc
21.34
KB
-rw-r--r--
2025-11-12 17:55
test_textwrap.pyo
21.34
KB
-rw-r--r--
2025-11-12 17:55
test_thread.py
8.48
KB
-rw-r--r--
2025-11-12 17:54
test_thread.pyc
9.4
KB
-rw-r--r--
2025-11-12 17:55
test_thread.pyo
9.4
KB
-rw-r--r--
2025-11-12 17:55
test_threaded_import.py
2.52
KB
-rw-r--r--
2025-11-12 17:54
test_threaded_import.pyc
1.84
KB
-rw-r--r--
2025-11-12 17:55
test_threaded_import.pyo
1.84
KB
-rw-r--r--
2025-11-12 17:55
test_threadedtempfile.py
2.16
KB
-rw-r--r--
2025-11-12 17:54
test_threadedtempfile.pyc
2.95
KB
-rw-r--r--
2025-11-12 17:55
test_threadedtempfile.pyo
2.95
KB
-rw-r--r--
2025-11-12 17:55
test_threading.py
28.8
KB
-rw-r--r--
2025-11-12 17:54
test_threading.pyc
27.33
KB
-rw-r--r--
2025-11-12 17:55
test_threading.pyo
27.33
KB
-rw-r--r--
2025-11-12 17:55
test_threading_local.py
6.51
KB
-rw-r--r--
2025-11-12 17:54
test_threading_local.pyc
9.27
KB
-rw-r--r--
2025-11-12 17:55
test_threading_local.pyo
9.27
KB
-rw-r--r--
2025-11-12 17:55
test_threadsignals.py
2.92
KB
-rw-r--r--
2025-11-12 17:54
test_threadsignals.pyc
3.13
KB
-rw-r--r--
2025-11-12 17:55
test_threadsignals.pyo
3.13
KB
-rw-r--r--
2025-11-12 17:55
test_time.py
10.16
KB
-rw-r--r--
2025-11-12 17:54
test_time.pyc
8.26
KB
-rw-r--r--
2025-11-12 17:55
test_time.pyo
8.26
KB
-rw-r--r--
2025-11-12 17:55
test_timeout.py
6.8
KB
-rw-r--r--
2025-11-12 17:54
test_timeout.pyc
6.9
KB
-rw-r--r--
2025-11-12 17:55
test_timeout.pyo
6.9
KB
-rw-r--r--
2025-11-12 17:55
test_tk.py
886
B
-rw-r--r--
2025-11-12 17:54
test_tk.pyc
1.04
KB
-rw-r--r--
2025-11-12 17:55
test_tk.pyo
1.04
KB
-rw-r--r--
2025-11-12 17:55
test_tokenize.py
22.76
KB
-rw-r--r--
2025-11-12 17:54
test_tokenize.pyc
23.15
KB
-rw-r--r--
2025-11-12 17:55
test_tokenize.pyo
23.15
KB
-rw-r--r--
2025-11-12 17:55
test_tools.py
9.34
KB
-rw-r--r--
2025-11-12 17:54
test_tools.pyc
10.48
KB
-rw-r--r--
2025-11-12 17:55
test_tools.pyo
10.48
KB
-rw-r--r--
2025-11-12 17:55
test_trace.py
11.55
KB
-rw-r--r--
2025-11-12 17:54
test_trace.pyc
14.03
KB
-rw-r--r--
2025-11-12 17:55
test_trace.pyo
14.03
KB
-rw-r--r--
2025-11-12 17:55
test_traceback.py
7.41
KB
-rw-r--r--
2025-11-12 17:54
test_traceback.pyc
7.68
KB
-rw-r--r--
2025-11-12 17:55
test_traceback.pyo
7.68
KB
-rw-r--r--
2025-11-12 17:55
test_transformer.py
1.09
KB
-rw-r--r--
2025-11-12 17:54
test_transformer.pyc
1.53
KB
-rw-r--r--
2025-11-12 17:55
test_transformer.pyo
1.45
KB
-rw-r--r--
2025-11-12 17:55
test_ttk_guionly.py
1.18
KB
-rw-r--r--
2025-11-12 17:54
test_ttk_guionly.pyc
1.38
KB
-rw-r--r--
2025-11-12 17:55
test_ttk_guionly.pyo
1.38
KB
-rw-r--r--
2025-11-12 17:55
test_ttk_textonly.py
543
B
-rw-r--r--
2025-11-12 17:54
test_ttk_textonly.pyc
859
B
-rw-r--r--
2025-11-12 17:55
test_ttk_textonly.pyo
859
B
-rw-r--r--
2025-11-12 17:55
test_tuple.py
5.28
KB
-rw-r--r--
2025-11-12 17:54
test_tuple.pyc
7.22
KB
-rw-r--r--
2025-11-12 17:55
test_tuple.pyo
7.22
KB
-rw-r--r--
2025-11-12 17:55
test_typechecks.py
3.09
KB
-rw-r--r--
2025-11-12 17:54
test_typechecks.pyc
5.12
KB
-rw-r--r--
2025-11-12 17:55
test_typechecks.pyo
5.12
KB
-rw-r--r--
2025-11-12 17:55
test_types.py
29.03
KB
-rw-r--r--
2025-11-12 17:54
test_types.pyc
25.3
KB
-rw-r--r--
2025-11-12 17:55
test_types.pyo
25.07
KB
-rw-r--r--
2025-11-12 17:55
test_ucn.py
5.98
KB
-rw-r--r--
2025-11-12 17:54
test_ucn.pyc
6.14
KB
-rw-r--r--
2025-11-12 17:55
test_ucn.pyo
6.14
KB
-rw-r--r--
2025-11-12 17:55
test_unary.py
1.82
KB
-rw-r--r--
2025-11-12 17:54
test_unary.pyc
2.75
KB
-rw-r--r--
2025-11-12 17:55
test_unary.pyo
2.75
KB
-rw-r--r--
2025-11-12 17:55
test_undocumented_details.py
1.14
KB
-rw-r--r--
2025-11-12 17:54
test_undocumented_details.pyc
2.03
KB
-rw-r--r--
2025-11-12 17:55
test_undocumented_details.pyo
2.03
KB
-rw-r--r--
2025-11-12 17:55
test_unicode.py
77.72
KB
-rw-r--r--
2025-11-12 17:54
test_unicode.pyc
64.72
KB
-rw-r--r--
2025-11-12 17:55
test_unicode.pyo
64.72
KB
-rw-r--r--
2025-11-12 17:55
test_unicode_file.py
8.29
KB
-rw-r--r--
2025-11-12 17:54
test_unicode_file.pyc
5.76
KB
-rw-r--r--
2025-11-12 17:55
test_unicode_file.pyo
5.76
KB
-rw-r--r--
2025-11-12 17:55
test_unicodedata.py
11.8
KB
-rw-r--r--
2025-11-12 17:54
test_unicodedata.pyc
11.76
KB
-rw-r--r--
2025-11-12 17:55
test_unicodedata.pyo
11.76
KB
-rw-r--r--
2025-11-12 17:55
test_unittest.py
202
B
-rw-r--r--
2025-11-12 17:54
test_unittest.pyc
517
B
-rw-r--r--
2025-11-12 17:55
test_unittest.pyo
517
B
-rw-r--r--
2025-11-12 17:55
test_univnewlines.py
3.98
KB
-rw-r--r--
2025-11-12 17:54
test_univnewlines.pyc
5.33
KB
-rw-r--r--
2025-11-12 17:55
test_univnewlines.pyo
5.33
KB
-rw-r--r--
2025-11-12 17:55
test_univnewlines2k.py
3.76
KB
-rw-r--r--
2025-11-12 17:54
test_univnewlines2k.pyc
5.24
KB
-rw-r--r--
2025-11-12 17:55
test_univnewlines2k.pyo
5.24
KB
-rw-r--r--
2025-11-12 17:55
test_unpack.py
2.5
KB
-rw-r--r--
2025-11-12 17:54
test_unpack.pyc
2.79
KB
-rw-r--r--
2025-11-12 17:55
test_unpack.pyo
2.79
KB
-rw-r--r--
2025-11-12 17:55
test_urllib.py
38.18
KB
-rw-r--r--
2025-11-12 17:54
test_urllib.pyc
35.87
KB
-rw-r--r--
2025-11-12 17:55
test_urllib.pyo
35.83
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2.py
55.86
KB
-rw-r--r--
2025-11-12 17:54
test_urllib2.pyc
54.43
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2.pyo
54.26
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2_localnet.py
22.75
KB
-rw-r--r--
2025-11-12 17:54
test_urllib2_localnet.pyc
22.76
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2_localnet.pyo
22.69
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2net.py
11.98
KB
-rw-r--r--
2025-11-12 17:54
test_urllib2net.pyc
10.01
KB
-rw-r--r--
2025-11-12 17:55
test_urllib2net.pyo
10.01
KB
-rw-r--r--
2025-11-12 17:55
test_urllibnet.py
7.66
KB
-rw-r--r--
2025-11-12 17:54
test_urllibnet.pyc
8.08
KB
-rw-r--r--
2025-11-12 17:55
test_urllibnet.pyo
8.08
KB
-rw-r--r--
2025-11-12 17:55
test_urlparse.py
34.48
KB
-rw-r--r--
2025-11-12 17:54
test_urlparse.pyc
27.76
KB
-rw-r--r--
2025-11-12 17:55
test_urlparse.pyo
27.76
KB
-rw-r--r--
2025-11-12 17:55
test_userdict.py
10.39
KB
-rw-r--r--
2025-11-12 17:54
test_userdict.pyc
10.25
KB
-rw-r--r--
2025-11-12 17:55
test_userdict.pyo
10.25
KB
-rw-r--r--
2025-11-12 17:55
test_userlist.py
1.85
KB
-rw-r--r--
2025-11-12 17:54
test_userlist.pyc
3.22
KB
-rw-r--r--
2025-11-12 17:55
test_userlist.pyo
3.22
KB
-rw-r--r--
2025-11-12 17:55
test_userstring.py
4.74
KB
-rwxr-xr-x
2025-11-12 17:54
test_userstring.pyc
5.24
KB
-rw-r--r--
2025-11-12 17:55
test_userstring.pyo
5.24
KB
-rw-r--r--
2025-11-12 17:55
test_uu.py
5.62
KB
-rw-r--r--
2025-11-12 17:54
test_uu.pyc
6.67
KB
-rw-r--r--
2025-11-12 17:55
test_uu.pyo
6.67
KB
-rw-r--r--
2025-11-12 17:55
test_uuid.py
20.29
KB
-rw-r--r--
2025-11-12 17:54
test_uuid.pyc
23.24
KB
-rw-r--r--
2025-11-12 17:55
test_uuid.pyo
23.24
KB
-rw-r--r--
2025-11-12 17:55
test_wait3.py
1.04
KB
-rw-r--r--
2025-11-12 17:54
test_wait3.pyc
1.52
KB
-rw-r--r--
2025-11-12 17:55
test_wait3.pyo
1.52
KB
-rw-r--r--
2025-11-12 17:55
test_wait4.py
940
B
-rw-r--r--
2025-11-12 17:54
test_wait4.pyc
1.33
KB
-rw-r--r--
2025-11-12 17:55
test_wait4.pyo
1.33
KB
-rw-r--r--
2025-11-12 17:55
test_warnings.py
31.51
KB
-rw-r--r--
2025-11-12 17:54
test_warnings.pyc
26.95
KB
-rw-r--r--
2025-11-12 17:55
test_warnings.pyo
26.93
KB
-rw-r--r--
2025-11-12 17:55
test_wave.py
1.12
KB
-rw-r--r--
2025-11-12 17:54
test_wave.pyc
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_wave.pyo
1.88
KB
-rw-r--r--
2025-11-12 17:55
test_weakref.py
46.06
KB
-rw-r--r--
2025-11-12 17:54
test_weakref.pyc
47.82
KB
-rw-r--r--
2025-11-12 17:55
test_weakref.pyo
47.82
KB
-rw-r--r--
2025-11-12 17:55
test_weakset.py
15.14
KB
-rw-r--r--
2025-11-12 17:54
test_weakset.pyc
18.83
KB
-rw-r--r--
2025-11-12 17:55
test_weakset.pyo
18.83
KB
-rw-r--r--
2025-11-12 17:55
test_whichdb.py
1.76
KB
-rw-r--r--
2025-11-12 17:54
test_whichdb.pyc
2.21
KB
-rw-r--r--
2025-11-12 17:55
test_whichdb.pyo
2.21
KB
-rw-r--r--
2025-11-12 17:55
test_winreg.py
19.37
KB
-rw-r--r--
2025-11-12 17:54
test_winreg.pyc
14.53
KB
-rw-r--r--
2025-11-12 17:55
test_winreg.pyo
14.53
KB
-rw-r--r--
2025-11-12 17:55
test_winsound.py
8.96
KB
-rw-r--r--
2025-11-12 17:54
test_winsound.pyc
7.82
KB
-rw-r--r--
2025-11-12 17:55
test_winsound.pyo
7.82
KB
-rw-r--r--
2025-11-12 17:55
test_with.py
25.82
KB
-rw-r--r--
2025-11-12 17:54
test_with.pyc
34.27
KB
-rw-r--r--
2025-11-12 17:55
test_with.pyo
34.27
KB
-rw-r--r--
2025-11-12 17:55
test_wsgiref.py
18.67
KB
-rw-r--r--
2025-11-12 17:54
test_wsgiref.pyc
22.87
KB
-rw-r--r--
2025-11-12 17:55
test_wsgiref.pyo
22.87
KB
-rw-r--r--
2025-11-12 17:55
test_xdrlib.py
1.56
KB
-rw-r--r--
2025-11-12 17:54
test_xdrlib.pyc
2.03
KB
-rw-r--r--
2025-11-12 17:55
test_xdrlib.pyo
2.03
KB
-rw-r--r--
2025-11-12 17:55
test_xml_etree.py
52.78
KB
-rw-r--r--
2025-11-12 17:54
test_xml_etree.pyc
58.69
KB
-rw-r--r--
2025-11-12 17:55
test_xml_etree.pyo
58.61
KB
-rw-r--r--
2025-11-12 17:55
test_xml_etree_c.py
1.49
KB
-rw-r--r--
2025-11-12 17:54
test_xml_etree_c.pyc
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_xml_etree_c.pyo
1.81
KB
-rw-r--r--
2025-11-12 17:55
test_xmllib.py
1.27
KB
-rw-r--r--
2025-11-12 17:54
test_xmllib.pyc
2.11
KB
-rw-r--r--
2025-11-12 17:55
test_xmllib.pyo
2.11
KB
-rw-r--r--
2025-11-12 17:55
test_xmlrpc.py
38.93
KB
-rw-r--r--
2025-11-12 17:54
test_xmlrpc.pyc
41.57
KB
-rw-r--r--
2025-11-12 17:55
test_xmlrpc.pyo
41.57
KB
-rw-r--r--
2025-11-12 17:55
test_xpickle.py
8.05
KB
-rw-r--r--
2025-11-12 17:54
test_xpickle.pyc
9.34
KB
-rw-r--r--
2025-11-12 17:55
test_xpickle.pyo
9.34
KB
-rw-r--r--
2025-11-12 17:55
test_xrange.py
7.64
KB
-rw-r--r--
2025-11-12 17:54
test_xrange.pyc
7
KB
-rw-r--r--
2025-11-12 17:55
test_xrange.pyo
7
KB
-rw-r--r--
2025-11-12 17:55
test_zipfile.py
59.61
KB
-rw-r--r--
2025-11-12 17:54
test_zipfile.pyc
58.41
KB
-rw-r--r--
2025-11-12 17:55
test_zipfile.pyo
58.41
KB
-rw-r--r--
2025-11-12 17:55
test_zipfile64.py
4.32
KB
-rw-r--r--
2025-11-12 17:54
test_zipfile64.pyc
4.23
KB
-rw-r--r--
2025-11-12 17:55
test_zipfile64.pyo
4.23
KB
-rw-r--r--
2025-11-12 17:55
test_zipimport.py
16.42
KB
-rw-r--r--
2025-11-12 17:54
test_zipimport.pyc
16.61
KB
-rw-r--r--
2025-11-12 17:55
test_zipimport.pyo
16.61
KB
-rw-r--r--
2025-11-12 17:55
test_zipimport_support.py
10.6
KB
-rw-r--r--
2025-11-12 17:54
test_zipimport_support.pyc
7.13
KB
-rw-r--r--
2025-11-12 17:55
test_zipimport_support.pyo
7.07
KB
-rw-r--r--
2025-11-12 17:55
test_zlib.py
21.8
KB
-rw-r--r--
2025-11-12 17:54
test_zlib.pyc
20.8
KB
-rw-r--r--
2025-11-12 17:55
test_zlib.pyo
20.8
KB
-rw-r--r--
2025-11-12 17:55
testall.py
274
B
-rw-r--r--
2025-11-12 17:54
testall.pyc
392
B
-rw-r--r--
2025-11-12 17:55
testall.pyo
392
B
-rw-r--r--
2025-11-12 17:55
testcodec.py
1.02
KB
-rw-r--r--
2025-11-12 17:54
testcodec.pyc
1.68
KB
-rw-r--r--
2025-11-12 17:55
testcodec.pyo
1.68
KB
-rw-r--r--
2025-11-12 17:55
testimg.uue
70.67
KB
-rw-r--r--
2025-11-12 17:54
testimgr.uue
70.67
KB
-rw-r--r--
2025-11-12 17:54
testrgb.uue
58.63
KB
-rw-r--r--
2025-11-12 17:54
testtar.tar
275
KB
-rw-r--r--
2025-11-12 17:54
tf_inherit_check.py
581
B
-rw-r--r--
2025-11-12 17:54
tf_inherit_check.pyc
542
B
-rw-r--r--
2025-11-12 17:55
tf_inherit_check.pyo
542
B
-rw-r--r--
2025-11-12 17:55
threaded_import_hangers.py
1.38
KB
-rw-r--r--
2025-11-12 17:54
threaded_import_hangers.pyc
1.22
KB
-rw-r--r--
2025-11-12 17:55
threaded_import_hangers.pyo
1.22
KB
-rw-r--r--
2025-11-12 17:55
time_hashlib.py
2.79
KB
-rw-r--r--
2025-11-12 17:54
time_hashlib.pyc
3.19
KB
-rw-r--r--
2025-11-12 17:55
time_hashlib.pyo
3.19
KB
-rw-r--r--
2025-11-12 17:55
tokenize_tests.txt
2.39
KB
-rw-r--r--
2025-11-12 17:54
warning_tests.py
240
B
-rw-r--r--
2025-11-12 17:54
warning_tests.pyc
535
B
-rw-r--r--
2025-11-12 17:55
warning_tests.pyo
535
B
-rw-r--r--
2025-11-12 17:55
win_console_handler.py
1.39
KB
-rw-r--r--
2025-11-12 17:54
win_console_handler.pyc
1.42
KB
-rw-r--r--
2025-11-12 17:55
win_console_handler.pyo
1.42
KB
-rw-r--r--
2025-11-12 17:55
xmltests.py
497
B
-rw-r--r--
2025-11-12 17:54
xmltests.pyc
753
B
-rw-r--r--
2025-11-12 17:55
xmltests.pyo
753
B
-rw-r--r--
2025-11-12 17:55
zipdir.zip
374
B
-rw-r--r--
2025-11-12 17:54
Save
Rename
#! /usr/bin/env python # # 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 test.script_helper from test import test_support from StringIO import StringIO _multiprocessing = test_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 test_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 _TestProcess(BaseTestCase): ALLOWED_TYPES = ('processes', 'threads') def test_current(self): if self.TYPE == 'threads': return 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': return 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': return testfn = test_support.TESTFN self.addCleanup(test_support.unlink, testfn) for reason, code in (([1, 2, 3], 1), ('ignore this', 0)): 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) # # # 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: return 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() # # # 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': return 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 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_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_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 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_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 + 0.2)) 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_unordered(self): it = self.pool.imap_unordered(sqr, range(1000)) self.assertEqual(sorted(it), map(sqr, range(1000))) it = self.pool.imap_unordered(sqr, range(1000), chunksize=53) self.assertEqual(sorted(it), map(sqr, range(1000))) 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): if self.TYPE == 'manager': # On Unix a forked process increfs each shared object to # which its parent process held a reference. If the # forked process gets terminated then there is likely to # be a reference leak. So to prevent # _TestZZZNumberOfObjects from failing we skip this test # when using a manager. return result = self.pool.map_async( time.sleep, [0.1 for i in range(10000)], chunksize=1 ) self.pool.terminate() join = TimingWrapper(self.pool.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 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',) @classmethod def _putter(cls, address, authkey): manager = QueueManager2( address=address, authkey=authkey, serializer=SERIALIZER ) manager.connect() queue = manager.get_queue() queue.put(('hello world', None, True, 2.25)) def test_remote(self): authkey = os.urandom(32) manager = QueueManager( address=('localhost', 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() # Note that xmlrpclib will deserialize object as a list not a tuple self.assertEqual(queue.get(), ['hello world', None, True, 2.25]) # 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=('localhost', 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.daemon = True p.start() 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': return 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() with open(test_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(test_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() with open(test_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(test_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',) @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']) # # 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 _ThisSubProcess(q): try: item = q.get(block=False) except Queue.Empty: pass def _TestProcess(q): queue = multiprocessing.Queue() subProc = multiprocessing.Process(target=_ThisSubProcess, 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=_TestProcess, 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.decode('ascii')) self.assertIn('RuntimeError', err.decode('ascii')) else: rc, out, err = test.script_helper.assert_python_ok(name) self.assertEqual('123', out.decode('ascii').rstrip()) self.assertEqual('', err.decode('ascii')) # # 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)) 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): @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'*(1024*1024)) # sending 1 MB should block @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'*(1024*1024)) 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.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 test_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()