com.googler.python 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2648) hide show
  1. package/package.json +1 -1
  2. package/python3.6.2/lib/libcrypto.so.1.0.0 +0 -0
  3. package/python3.6.2/lib/libformw.so.5 +0 -0
  4. package/python3.6.2/lib/libformw.so.5.9 +0 -0
  5. package/python3.6.2/lib/libhistory.so.6 +0 -0
  6. package/python3.6.2/lib/libhistory.so.6.3 +0 -0
  7. package/python3.6.2/lib/libmenuw.so.5 +0 -0
  8. package/python3.6.2/lib/libmenuw.so.5.9 +0 -0
  9. package/python3.6.2/lib/libncursesw.so.5 +0 -0
  10. package/python3.6.2/lib/libncursesw.so.5.9 +0 -0
  11. package/python3.6.2/lib/libpanelw.so.5 +0 -0
  12. package/python3.6.2/lib/libpanelw.so.5.9 +0 -0
  13. package/python3.6.2/lib/libpython3.6m.so.1.0 +0 -0
  14. package/python3.6.2/lib/libpython3.so +0 -0
  15. package/python3.6.2/lib/libreadline.so.6 +0 -0
  16. package/python3.6.2/lib/libreadline.so.6.3 +0 -0
  17. package/python3.6.2/lib/libssl.so.1.0.0 +0 -0
  18. package/python3.6.2/lib/libtinfow.so.5 +0 -0
  19. package/python3.6.2/lib/libtinfow.so.5.9 +0 -0
  20. package/python3.6.2/lib/python3.6/__future__.py +140 -0
  21. package/python3.6.2/lib/python3.6/__phello__.foo.py +1 -0
  22. package/python3.6.2/lib/python3.6/_bootlocale.py +34 -0
  23. package/python3.6.2/lib/python3.6/_collections_abc.py +1008 -0
  24. package/python3.6.2/lib/python3.6/_compat_pickle.py +251 -0
  25. package/python3.6.2/lib/python3.6/_compression.py +152 -0
  26. package/python3.6.2/lib/python3.6/_dummy_thread.py +163 -0
  27. package/python3.6.2/lib/python3.6/_markupbase.py +395 -0
  28. package/python3.6.2/lib/python3.6/_osx_support.py +502 -0
  29. package/python3.6.2/lib/python3.6/_pydecimal.py +6449 -0
  30. package/python3.6.2/lib/python3.6/_pyio.py +2531 -0
  31. package/python3.6.2/lib/python3.6/_sitebuiltins.py +103 -0
  32. package/python3.6.2/lib/python3.6/_strptime.py +576 -0
  33. package/python3.6.2/lib/python3.6/_threading_local.py +246 -0
  34. package/python3.6.2/lib/python3.6/_weakrefset.py +196 -0
  35. package/python3.6.2/lib/python3.6/abc.py +248 -0
  36. package/python3.6.2/lib/python3.6/aifc.py +943 -0
  37. package/python3.6.2/lib/python3.6/antigravity.py +17 -0
  38. package/python3.6.2/lib/python3.6/argparse.py +2389 -0
  39. package/python3.6.2/lib/python3.6/ast.py +322 -0
  40. package/python3.6.2/lib/python3.6/asynchat.py +307 -0
  41. package/python3.6.2/lib/python3.6/asyncio/__init__.py +50 -0
  42. package/python3.6.2/lib/python3.6/asyncio/base_events.py +1474 -0
  43. package/python3.6.2/lib/python3.6/asyncio/base_futures.py +71 -0
  44. package/python3.6.2/lib/python3.6/asyncio/base_subprocess.py +293 -0
  45. package/python3.6.2/lib/python3.6/asyncio/base_tasks.py +76 -0
  46. package/python3.6.2/lib/python3.6/asyncio/compat.py +18 -0
  47. package/python3.6.2/lib/python3.6/asyncio/constants.py +12 -0
  48. package/python3.6.2/lib/python3.6/asyncio/coroutines.py +346 -0
  49. package/python3.6.2/lib/python3.6/asyncio/events.py +715 -0
  50. package/python3.6.2/lib/python3.6/asyncio/futures.py +439 -0
  51. package/python3.6.2/lib/python3.6/asyncio/locks.py +485 -0
  52. package/python3.6.2/lib/python3.6/asyncio/log.py +7 -0
  53. package/python3.6.2/lib/python3.6/asyncio/proactor_events.py +551 -0
  54. package/python3.6.2/lib/python3.6/asyncio/protocols.py +134 -0
  55. package/python3.6.2/lib/python3.6/asyncio/queues.py +259 -0
  56. package/python3.6.2/lib/python3.6/asyncio/selector_events.py +1141 -0
  57. package/python3.6.2/lib/python3.6/asyncio/sslproto.py +697 -0
  58. package/python3.6.2/lib/python3.6/asyncio/streams.py +701 -0
  59. package/python3.6.2/lib/python3.6/asyncio/subprocess.py +226 -0
  60. package/python3.6.2/lib/python3.6/asyncio/tasks.py +717 -0
  61. package/python3.6.2/lib/python3.6/asyncio/test_utils.py +519 -0
  62. package/python3.6.2/lib/python3.6/asyncio/transports.py +306 -0
  63. package/python3.6.2/lib/python3.6/asyncio/unix_events.py +1074 -0
  64. package/python3.6.2/lib/python3.6/asyncio/windows_events.py +779 -0
  65. package/python3.6.2/lib/python3.6/asyncio/windows_utils.py +224 -0
  66. package/python3.6.2/lib/python3.6/asyncore.py +645 -0
  67. package/python3.6.2/lib/python3.6/base64.py +602 -0
  68. package/python3.6.2/lib/python3.6/bdb.py +673 -0
  69. package/python3.6.2/lib/python3.6/binhex.py +479 -0
  70. package/python3.6.2/lib/python3.6/bisect.py +92 -0
  71. package/python3.6.2/lib/python3.6/bz2.py +361 -0
  72. package/python3.6.2/lib/python3.6/cProfile.py +160 -0
  73. package/python3.6.2/lib/python3.6/calendar.py +713 -0
  74. package/python3.6.2/lib/python3.6/cgi.py +1077 -0
  75. package/python3.6.2/lib/python3.6/cgitb.py +319 -0
  76. package/python3.6.2/lib/python3.6/chunk.py +169 -0
  77. package/python3.6.2/lib/python3.6/cmd.py +401 -0
  78. package/python3.6.2/lib/python3.6/code.py +314 -0
  79. package/python3.6.2/lib/python3.6/codecs.py +1113 -0
  80. package/python3.6.2/lib/python3.6/codeop.py +168 -0
  81. package/python3.6.2/lib/python3.6/collections/__init__.py +1244 -0
  82. package/python3.6.2/lib/python3.6/collections/abc.py +2 -0
  83. package/python3.6.2/lib/python3.6/colorsys.py +164 -0
  84. package/python3.6.2/lib/python3.6/compileall.py +295 -0
  85. package/python3.6.2/lib/python3.6/concurrent/__init__.py +1 -0
  86. package/python3.6.2/lib/python3.6/concurrent/futures/__init__.py +18 -0
  87. package/python3.6.2/lib/python3.6/concurrent/futures/_base.py +612 -0
  88. package/python3.6.2/lib/python3.6/concurrent/futures/process.py +515 -0
  89. package/python3.6.2/lib/python3.6/concurrent/futures/thread.py +153 -0
  90. package/python3.6.2/lib/python3.6/configparser.py +1342 -0
  91. package/python3.6.2/lib/python3.6/contextlib.py +384 -0
  92. package/python3.6.2/lib/python3.6/copy.py +313 -0
  93. package/python3.6.2/lib/python3.6/copyreg.py +206 -0
  94. package/python3.6.2/lib/python3.6/crypt.py +61 -0
  95. package/python3.6.2/lib/python3.6/csv.py +449 -0
  96. package/python3.6.2/lib/python3.6/ctypes/__init__.py +538 -0
  97. package/python3.6.2/lib/python3.6/ctypes/_endian.py +61 -0
  98. package/python3.6.2/lib/python3.6/ctypes/macholib/__init__.py +9 -0
  99. package/python3.6.2/lib/python3.6/ctypes/macholib/dyld.py +159 -0
  100. package/python3.6.2/lib/python3.6/ctypes/macholib/dylib.py +63 -0
  101. package/python3.6.2/lib/python3.6/ctypes/macholib/framework.py +65 -0
  102. package/python3.6.2/lib/python3.6/ctypes/test/__init__.py +14 -0
  103. package/python3.6.2/lib/python3.6/ctypes/test/__main__.py +4 -0
  104. package/python3.6.2/lib/python3.6/ctypes/test/test_anon.py +73 -0
  105. package/python3.6.2/lib/python3.6/ctypes/test/test_array_in_pointer.py +64 -0
  106. package/python3.6.2/lib/python3.6/ctypes/test/test_arrays.py +185 -0
  107. package/python3.6.2/lib/python3.6/ctypes/test/test_as_parameter.py +226 -0
  108. package/python3.6.2/lib/python3.6/ctypes/test/test_bitfields.py +290 -0
  109. package/python3.6.2/lib/python3.6/ctypes/test/test_buffers.py +64 -0
  110. package/python3.6.2/lib/python3.6/ctypes/test/test_bytes.py +65 -0
  111. package/python3.6.2/lib/python3.6/ctypes/test/test_byteswap.py +315 -0
  112. package/python3.6.2/lib/python3.6/ctypes/test/test_callbacks.py +293 -0
  113. package/python3.6.2/lib/python3.6/ctypes/test/test_cast.py +86 -0
  114. package/python3.6.2/lib/python3.6/ctypes/test/test_cfuncs.py +212 -0
  115. package/python3.6.2/lib/python3.6/ctypes/test/test_checkretval.py +36 -0
  116. package/python3.6.2/lib/python3.6/ctypes/test/test_delattr.py +21 -0
  117. package/python3.6.2/lib/python3.6/ctypes/test/test_errno.py +79 -0
  118. package/python3.6.2/lib/python3.6/ctypes/test/test_find.py +116 -0
  119. package/python3.6.2/lib/python3.6/ctypes/test/test_frombuffer.py +141 -0
  120. package/python3.6.2/lib/python3.6/ctypes/test/test_funcptr.py +132 -0
  121. package/python3.6.2/lib/python3.6/ctypes/test/test_functions.py +402 -0
  122. package/python3.6.2/lib/python3.6/ctypes/test/test_incomplete.py +42 -0
  123. package/python3.6.2/lib/python3.6/ctypes/test/test_init.py +40 -0
  124. package/python3.6.2/lib/python3.6/ctypes/test/test_internals.py +100 -0
  125. package/python3.6.2/lib/python3.6/ctypes/test/test_keeprefs.py +153 -0
  126. package/python3.6.2/lib/python3.6/ctypes/test/test_libc.py +33 -0
  127. package/python3.6.2/lib/python3.6/ctypes/test/test_loading.py +116 -0
  128. package/python3.6.2/lib/python3.6/ctypes/test/test_macholib.py +63 -0
  129. package/python3.6.2/lib/python3.6/ctypes/test/test_memfunctions.py +79 -0
  130. package/python3.6.2/lib/python3.6/ctypes/test/test_numbers.py +290 -0
  131. package/python3.6.2/lib/python3.6/ctypes/test/test_objects.py +67 -0
  132. package/python3.6.2/lib/python3.6/ctypes/test/test_parameters.py +207 -0
  133. package/python3.6.2/lib/python3.6/ctypes/test/test_pep3118.py +233 -0
  134. package/python3.6.2/lib/python3.6/ctypes/test/test_pickling.py +81 -0
  135. package/python3.6.2/lib/python3.6/ctypes/test/test_pointers.py +223 -0
  136. package/python3.6.2/lib/python3.6/ctypes/test/test_prototypes.py +222 -0
  137. package/python3.6.2/lib/python3.6/ctypes/test/test_python_api.py +89 -0
  138. package/python3.6.2/lib/python3.6/ctypes/test/test_random_things.py +74 -0
  139. package/python3.6.2/lib/python3.6/ctypes/test/test_refcounts.py +101 -0
  140. package/python3.6.2/lib/python3.6/ctypes/test/test_repr.py +29 -0
  141. package/python3.6.2/lib/python3.6/ctypes/test/test_returnfuncptrs.py +66 -0
  142. package/python3.6.2/lib/python3.6/ctypes/test/test_simplesubclasses.py +55 -0
  143. package/python3.6.2/lib/python3.6/ctypes/test/test_sizes.py +33 -0
  144. package/python3.6.2/lib/python3.6/ctypes/test/test_slicing.py +167 -0
  145. package/python3.6.2/lib/python3.6/ctypes/test/test_stringptr.py +77 -0
  146. package/python3.6.2/lib/python3.6/ctypes/test/test_strings.py +225 -0
  147. package/python3.6.2/lib/python3.6/ctypes/test/test_struct_fields.py +74 -0
  148. package/python3.6.2/lib/python3.6/ctypes/test/test_structures.py +491 -0
  149. package/python3.6.2/lib/python3.6/ctypes/test/test_unaligned_structures.py +45 -0
  150. package/python3.6.2/lib/python3.6/ctypes/test/test_unicode.py +56 -0
  151. package/python3.6.2/lib/python3.6/ctypes/test/test_values.py +100 -0
  152. package/python3.6.2/lib/python3.6/ctypes/test/test_varsize_struct.py +50 -0
  153. package/python3.6.2/lib/python3.6/ctypes/test/test_win32.py +147 -0
  154. package/python3.6.2/lib/python3.6/ctypes/test/test_wintypes.py +41 -0
  155. package/python3.6.2/lib/python3.6/ctypes/util.py +337 -0
  156. package/python3.6.2/lib/python3.6/ctypes/wintypes.py +202 -0
  157. package/python3.6.2/lib/python3.6/curses/__init__.py +101 -0
  158. package/python3.6.2/lib/python3.6/curses/ascii.py +99 -0
  159. package/python3.6.2/lib/python3.6/curses/has_key.py +192 -0
  160. package/python3.6.2/lib/python3.6/curses/panel.py +6 -0
  161. package/python3.6.2/lib/python3.6/curses/textpad.py +201 -0
  162. package/python3.6.2/lib/python3.6/datetime.py +2280 -0
  163. package/python3.6.2/lib/python3.6/dbm/__init__.py +188 -0
  164. package/python3.6.2/lib/python3.6/dbm/dumb.py +324 -0
  165. package/python3.6.2/lib/python3.6/dbm/gnu.py +3 -0
  166. package/python3.6.2/lib/python3.6/dbm/ndbm.py +3 -0
  167. package/python3.6.2/lib/python3.6/decimal.py +11 -0
  168. package/python3.6.2/lib/python3.6/difflib.py +2093 -0
  169. package/python3.6.2/lib/python3.6/dis.py +490 -0
  170. package/python3.6.2/lib/python3.6/distutils/__init__.py +13 -0
  171. package/python3.6.2/lib/python3.6/distutils/_msvccompiler.py +574 -0
  172. package/python3.6.2/lib/python3.6/distutils/archive_util.py +248 -0
  173. package/python3.6.2/lib/python3.6/distutils/bcppcompiler.py +393 -0
  174. package/python3.6.2/lib/python3.6/distutils/ccompiler.py +1115 -0
  175. package/python3.6.2/lib/python3.6/distutils/cmd.py +434 -0
  176. package/python3.6.2/lib/python3.6/distutils/command/__init__.py +31 -0
  177. package/python3.6.2/lib/python3.6/distutils/command/bdist.py +143 -0
  178. package/python3.6.2/lib/python3.6/distutils/command/bdist_dumb.py +123 -0
  179. package/python3.6.2/lib/python3.6/distutils/command/bdist_msi.py +741 -0
  180. package/python3.6.2/lib/python3.6/distutils/command/bdist_rpm.py +582 -0
  181. package/python3.6.2/lib/python3.6/distutils/command/bdist_wininst.py +365 -0
  182. package/python3.6.2/lib/python3.6/distutils/command/build.py +157 -0
  183. package/python3.6.2/lib/python3.6/distutils/command/build_clib.py +209 -0
  184. package/python3.6.2/lib/python3.6/distutils/command/build_ext.py +755 -0
  185. package/python3.6.2/lib/python3.6/distutils/command/build_py.py +416 -0
  186. package/python3.6.2/lib/python3.6/distutils/command/build_scripts.py +160 -0
  187. package/python3.6.2/lib/python3.6/distutils/command/check.py +145 -0
  188. package/python3.6.2/lib/python3.6/distutils/command/clean.py +76 -0
  189. package/python3.6.2/lib/python3.6/distutils/command/config.py +347 -0
  190. package/python3.6.2/lib/python3.6/distutils/command/install.py +656 -0
  191. package/python3.6.2/lib/python3.6/distutils/command/install_data.py +79 -0
  192. package/python3.6.2/lib/python3.6/distutils/command/install_egg_info.py +77 -0
  193. package/python3.6.2/lib/python3.6/distutils/command/install_headers.py +47 -0
  194. package/python3.6.2/lib/python3.6/distutils/command/install_lib.py +217 -0
  195. package/python3.6.2/lib/python3.6/distutils/command/install_scripts.py +60 -0
  196. package/python3.6.2/lib/python3.6/distutils/command/register.py +304 -0
  197. package/python3.6.2/lib/python3.6/distutils/command/sdist.py +456 -0
  198. package/python3.6.2/lib/python3.6/distutils/command/upload.py +201 -0
  199. package/python3.6.2/lib/python3.6/distutils/command/wininst-10.0-amd64.exe +0 -0
  200. package/python3.6.2/lib/python3.6/distutils/command/wininst-10.0.exe +0 -0
  201. package/python3.6.2/lib/python3.6/distutils/command/wininst-14.0-amd64.exe +0 -0
  202. package/python3.6.2/lib/python3.6/distutils/command/wininst-14.0.exe +0 -0
  203. package/python3.6.2/lib/python3.6/distutils/command/wininst-6.0.exe +0 -0
  204. package/python3.6.2/lib/python3.6/distutils/command/wininst-7.1.exe +0 -0
  205. package/python3.6.2/lib/python3.6/distutils/command/wininst-8.0.exe +0 -0
  206. package/python3.6.2/lib/python3.6/distutils/command/wininst-9.0-amd64.exe +0 -0
  207. package/python3.6.2/lib/python3.6/distutils/command/wininst-9.0.exe +0 -0
  208. package/python3.6.2/lib/python3.6/distutils/config.py +131 -0
  209. package/python3.6.2/lib/python3.6/distutils/core.py +234 -0
  210. package/python3.6.2/lib/python3.6/distutils/cygwinccompiler.py +405 -0
  211. package/python3.6.2/lib/python3.6/distutils/debug.py +5 -0
  212. package/python3.6.2/lib/python3.6/distutils/dep_util.py +92 -0
  213. package/python3.6.2/lib/python3.6/distutils/dir_util.py +210 -0
  214. package/python3.6.2/lib/python3.6/distutils/dist.py +1236 -0
  215. package/python3.6.2/lib/python3.6/distutils/errors.py +97 -0
  216. package/python3.6.2/lib/python3.6/distutils/extension.py +240 -0
  217. package/python3.6.2/lib/python3.6/distutils/fancy_getopt.py +457 -0
  218. package/python3.6.2/lib/python3.6/distutils/file_util.py +238 -0
  219. package/python3.6.2/lib/python3.6/distutils/filelist.py +327 -0
  220. package/python3.6.2/lib/python3.6/distutils/log.py +75 -0
  221. package/python3.6.2/lib/python3.6/distutils/msvc9compiler.py +791 -0
  222. package/python3.6.2/lib/python3.6/distutils/msvccompiler.py +643 -0
  223. package/python3.6.2/lib/python3.6/distutils/spawn.py +192 -0
  224. package/python3.6.2/lib/python3.6/distutils/sysconfig.py +532 -0
  225. package/python3.6.2/lib/python3.6/distutils/tests/Setup.sample +67 -0
  226. package/python3.6.2/lib/python3.6/distutils/tests/__init__.py +36 -0
  227. package/python3.6.2/lib/python3.6/distutils/tests/support.py +210 -0
  228. package/python3.6.2/lib/python3.6/distutils/tests/test_archive_util.py +395 -0
  229. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist.py +50 -0
  230. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_dumb.py +97 -0
  231. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_msi.py +25 -0
  232. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_rpm.py +135 -0
  233. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_wininst.py +31 -0
  234. package/python3.6.2/lib/python3.6/distutils/tests/test_build.py +56 -0
  235. package/python3.6.2/lib/python3.6/distutils/tests/test_build_clib.py +135 -0
  236. package/python3.6.2/lib/python3.6/distutils/tests/test_build_ext.py +521 -0
  237. package/python3.6.2/lib/python3.6/distutils/tests/test_build_py.py +179 -0
  238. package/python3.6.2/lib/python3.6/distutils/tests/test_build_scripts.py +112 -0
  239. package/python3.6.2/lib/python3.6/distutils/tests/test_check.py +149 -0
  240. package/python3.6.2/lib/python3.6/distutils/tests/test_clean.py +49 -0
  241. package/python3.6.2/lib/python3.6/distutils/tests/test_cmd.py +126 -0
  242. package/python3.6.2/lib/python3.6/distutils/tests/test_config.py +140 -0
  243. package/python3.6.2/lib/python3.6/distutils/tests/test_config_cmd.py +92 -0
  244. package/python3.6.2/lib/python3.6/distutils/tests/test_core.py +140 -0
  245. package/python3.6.2/lib/python3.6/distutils/tests/test_cygwinccompiler.py +154 -0
  246. package/python3.6.2/lib/python3.6/distutils/tests/test_dep_util.py +80 -0
  247. package/python3.6.2/lib/python3.6/distutils/tests/test_dir_util.py +139 -0
  248. package/python3.6.2/lib/python3.6/distutils/tests/test_dist.py +456 -0
  249. package/python3.6.2/lib/python3.6/distutils/tests/test_extension.py +69 -0
  250. package/python3.6.2/lib/python3.6/distutils/tests/test_file_util.py +114 -0
  251. package/python3.6.2/lib/python3.6/distutils/tests/test_filelist.py +340 -0
  252. package/python3.6.2/lib/python3.6/distutils/tests/test_install.py +248 -0
  253. package/python3.6.2/lib/python3.6/distutils/tests/test_install_data.py +75 -0
  254. package/python3.6.2/lib/python3.6/distutils/tests/test_install_headers.py +39 -0
  255. package/python3.6.2/lib/python3.6/distutils/tests/test_install_lib.py +115 -0
  256. package/python3.6.2/lib/python3.6/distutils/tests/test_install_scripts.py +82 -0
  257. package/python3.6.2/lib/python3.6/distutils/tests/test_log.py +38 -0
  258. package/python3.6.2/lib/python3.6/distutils/tests/test_msvc9compiler.py +184 -0
  259. package/python3.6.2/lib/python3.6/distutils/tests/test_msvccompiler.py +132 -0
  260. package/python3.6.2/lib/python3.6/distutils/tests/test_register.py +323 -0
  261. package/python3.6.2/lib/python3.6/distutils/tests/test_sdist.py +484 -0
  262. package/python3.6.2/lib/python3.6/distutils/tests/test_spawn.py +58 -0
  263. package/python3.6.2/lib/python3.6/distutils/tests/test_sysconfig.py +198 -0
  264. package/python3.6.2/lib/python3.6/distutils/tests/test_text_file.py +107 -0
  265. package/python3.6.2/lib/python3.6/distutils/tests/test_unixccompiler.py +149 -0
  266. package/python3.6.2/lib/python3.6/distutils/tests/test_upload.py +181 -0
  267. package/python3.6.2/lib/python3.6/distutils/tests/test_util.py +300 -0
  268. package/python3.6.2/lib/python3.6/distutils/tests/test_version.py +71 -0
  269. package/python3.6.2/lib/python3.6/distutils/tests/test_versionpredicate.py +13 -0
  270. package/python3.6.2/lib/python3.6/distutils/text_file.py +286 -0
  271. package/python3.6.2/lib/python3.6/distutils/unixccompiler.py +322 -0
  272. package/python3.6.2/lib/python3.6/distutils/util.py +557 -0
  273. package/python3.6.2/lib/python3.6/distutils/version.py +343 -0
  274. package/python3.6.2/lib/python3.6/distutils/versionpredicate.py +166 -0
  275. package/python3.6.2/lib/python3.6/doctest.py +2787 -0
  276. package/python3.6.2/lib/python3.6/dummy_threading.py +78 -0
  277. package/python3.6.2/lib/python3.6/email/__init__.py +62 -0
  278. package/python3.6.2/lib/python3.6/email/_encoded_words.py +221 -0
  279. package/python3.6.2/lib/python3.6/email/_header_value_parser.py +2811 -0
  280. package/python3.6.2/lib/python3.6/email/_parseaddr.py +540 -0
  281. package/python3.6.2/lib/python3.6/email/_policybase.py +374 -0
  282. package/python3.6.2/lib/python3.6/email/base64mime.py +119 -0
  283. package/python3.6.2/lib/python3.6/email/charset.py +406 -0
  284. package/python3.6.2/lib/python3.6/email/contentmanager.py +250 -0
  285. package/python3.6.2/lib/python3.6/email/encoders.py +69 -0
  286. package/python3.6.2/lib/python3.6/email/errors.py +107 -0
  287. package/python3.6.2/lib/python3.6/email/feedparser.py +536 -0
  288. package/python3.6.2/lib/python3.6/email/generator.py +508 -0
  289. package/python3.6.2/lib/python3.6/email/header.py +578 -0
  290. package/python3.6.2/lib/python3.6/email/headerregistry.py +589 -0
  291. package/python3.6.2/lib/python3.6/email/iterators.py +71 -0
  292. package/python3.6.2/lib/python3.6/email/message.py +1164 -0
  293. package/python3.6.2/lib/python3.6/email/mime/__init__.py +0 -0
  294. package/python3.6.2/lib/python3.6/email/mime/application.py +37 -0
  295. package/python3.6.2/lib/python3.6/email/mime/audio.py +74 -0
  296. package/python3.6.2/lib/python3.6/email/mime/base.py +30 -0
  297. package/python3.6.2/lib/python3.6/email/mime/image.py +47 -0
  298. package/python3.6.2/lib/python3.6/email/mime/message.py +34 -0
  299. package/python3.6.2/lib/python3.6/email/mime/multipart.py +48 -0
  300. package/python3.6.2/lib/python3.6/email/mime/nonmultipart.py +22 -0
  301. package/python3.6.2/lib/python3.6/email/mime/text.py +42 -0
  302. package/python3.6.2/lib/python3.6/email/parser.py +132 -0
  303. package/python3.6.2/lib/python3.6/email/policy.py +223 -0
  304. package/python3.6.2/lib/python3.6/email/quoprimime.py +299 -0
  305. package/python3.6.2/lib/python3.6/email/utils.py +388 -0
  306. package/python3.6.2/lib/python3.6/encodings/__init__.py +169 -0
  307. package/python3.6.2/lib/python3.6/encodings/aliases.py +550 -0
  308. package/python3.6.2/lib/python3.6/encodings/ascii.py +50 -0
  309. package/python3.6.2/lib/python3.6/encodings/base64_codec.py +55 -0
  310. package/python3.6.2/lib/python3.6/encodings/big5.py +39 -0
  311. package/python3.6.2/lib/python3.6/encodings/big5hkscs.py +39 -0
  312. package/python3.6.2/lib/python3.6/encodings/bz2_codec.py +78 -0
  313. package/python3.6.2/lib/python3.6/encodings/charmap.py +69 -0
  314. package/python3.6.2/lib/python3.6/encodings/cp037.py +307 -0
  315. package/python3.6.2/lib/python3.6/encodings/cp1006.py +307 -0
  316. package/python3.6.2/lib/python3.6/encodings/cp1026.py +307 -0
  317. package/python3.6.2/lib/python3.6/encodings/cp1125.py +698 -0
  318. package/python3.6.2/lib/python3.6/encodings/cp1140.py +307 -0
  319. package/python3.6.2/lib/python3.6/encodings/cp1250.py +307 -0
  320. package/python3.6.2/lib/python3.6/encodings/cp1251.py +307 -0
  321. package/python3.6.2/lib/python3.6/encodings/cp1252.py +307 -0
  322. package/python3.6.2/lib/python3.6/encodings/cp1253.py +307 -0
  323. package/python3.6.2/lib/python3.6/encodings/cp1254.py +307 -0
  324. package/python3.6.2/lib/python3.6/encodings/cp1255.py +307 -0
  325. package/python3.6.2/lib/python3.6/encodings/cp1256.py +307 -0
  326. package/python3.6.2/lib/python3.6/encodings/cp1257.py +307 -0
  327. package/python3.6.2/lib/python3.6/encodings/cp1258.py +307 -0
  328. package/python3.6.2/lib/python3.6/encodings/cp273.py +307 -0
  329. package/python3.6.2/lib/python3.6/encodings/cp424.py +307 -0
  330. package/python3.6.2/lib/python3.6/encodings/cp437.py +698 -0
  331. package/python3.6.2/lib/python3.6/encodings/cp500.py +307 -0
  332. package/python3.6.2/lib/python3.6/encodings/cp65001.py +43 -0
  333. package/python3.6.2/lib/python3.6/encodings/cp720.py +309 -0
  334. package/python3.6.2/lib/python3.6/encodings/cp737.py +698 -0
  335. package/python3.6.2/lib/python3.6/encodings/cp775.py +697 -0
  336. package/python3.6.2/lib/python3.6/encodings/cp850.py +698 -0
  337. package/python3.6.2/lib/python3.6/encodings/cp852.py +698 -0
  338. package/python3.6.2/lib/python3.6/encodings/cp855.py +698 -0
  339. package/python3.6.2/lib/python3.6/encodings/cp856.py +307 -0
  340. package/python3.6.2/lib/python3.6/encodings/cp857.py +694 -0
  341. package/python3.6.2/lib/python3.6/encodings/cp858.py +698 -0
  342. package/python3.6.2/lib/python3.6/encodings/cp860.py +698 -0
  343. package/python3.6.2/lib/python3.6/encodings/cp861.py +698 -0
  344. package/python3.6.2/lib/python3.6/encodings/cp862.py +698 -0
  345. package/python3.6.2/lib/python3.6/encodings/cp863.py +698 -0
  346. package/python3.6.2/lib/python3.6/encodings/cp864.py +690 -0
  347. package/python3.6.2/lib/python3.6/encodings/cp865.py +698 -0
  348. package/python3.6.2/lib/python3.6/encodings/cp866.py +698 -0
  349. package/python3.6.2/lib/python3.6/encodings/cp869.py +689 -0
  350. package/python3.6.2/lib/python3.6/encodings/cp874.py +307 -0
  351. package/python3.6.2/lib/python3.6/encodings/cp875.py +307 -0
  352. package/python3.6.2/lib/python3.6/encodings/cp932.py +39 -0
  353. package/python3.6.2/lib/python3.6/encodings/cp949.py +39 -0
  354. package/python3.6.2/lib/python3.6/encodings/cp950.py +39 -0
  355. package/python3.6.2/lib/python3.6/encodings/euc_jis_2004.py +39 -0
  356. package/python3.6.2/lib/python3.6/encodings/euc_jisx0213.py +39 -0
  357. package/python3.6.2/lib/python3.6/encodings/euc_jp.py +39 -0
  358. package/python3.6.2/lib/python3.6/encodings/euc_kr.py +39 -0
  359. package/python3.6.2/lib/python3.6/encodings/gb18030.py +39 -0
  360. package/python3.6.2/lib/python3.6/encodings/gb2312.py +39 -0
  361. package/python3.6.2/lib/python3.6/encodings/gbk.py +39 -0
  362. package/python3.6.2/lib/python3.6/encodings/hex_codec.py +55 -0
  363. package/python3.6.2/lib/python3.6/encodings/hp_roman8.py +314 -0
  364. package/python3.6.2/lib/python3.6/encodings/hz.py +39 -0
  365. package/python3.6.2/lib/python3.6/encodings/idna.py +309 -0
  366. package/python3.6.2/lib/python3.6/encodings/iso2022_jp.py +39 -0
  367. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_1.py +39 -0
  368. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2.py +39 -0
  369. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2004.py +39 -0
  370. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_3.py +39 -0
  371. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_ext.py +39 -0
  372. package/python3.6.2/lib/python3.6/encodings/iso2022_kr.py +39 -0
  373. package/python3.6.2/lib/python3.6/encodings/iso8859_1.py +307 -0
  374. package/python3.6.2/lib/python3.6/encodings/iso8859_10.py +307 -0
  375. package/python3.6.2/lib/python3.6/encodings/iso8859_11.py +307 -0
  376. package/python3.6.2/lib/python3.6/encodings/iso8859_13.py +307 -0
  377. package/python3.6.2/lib/python3.6/encodings/iso8859_14.py +307 -0
  378. package/python3.6.2/lib/python3.6/encodings/iso8859_15.py +307 -0
  379. package/python3.6.2/lib/python3.6/encodings/iso8859_16.py +307 -0
  380. package/python3.6.2/lib/python3.6/encodings/iso8859_2.py +307 -0
  381. package/python3.6.2/lib/python3.6/encodings/iso8859_3.py +307 -0
  382. package/python3.6.2/lib/python3.6/encodings/iso8859_4.py +307 -0
  383. package/python3.6.2/lib/python3.6/encodings/iso8859_5.py +307 -0
  384. package/python3.6.2/lib/python3.6/encodings/iso8859_6.py +307 -0
  385. package/python3.6.2/lib/python3.6/encodings/iso8859_7.py +307 -0
  386. package/python3.6.2/lib/python3.6/encodings/iso8859_8.py +307 -0
  387. package/python3.6.2/lib/python3.6/encodings/iso8859_9.py +307 -0
  388. package/python3.6.2/lib/python3.6/encodings/johab.py +39 -0
  389. package/python3.6.2/lib/python3.6/encodings/koi8_r.py +307 -0
  390. package/python3.6.2/lib/python3.6/encodings/koi8_t.py +308 -0
  391. package/python3.6.2/lib/python3.6/encodings/koi8_u.py +307 -0
  392. package/python3.6.2/lib/python3.6/encodings/kz1048.py +307 -0
  393. package/python3.6.2/lib/python3.6/encodings/latin_1.py +50 -0
  394. package/python3.6.2/lib/python3.6/encodings/mac_arabic.py +698 -0
  395. package/python3.6.2/lib/python3.6/encodings/mac_centeuro.py +307 -0
  396. package/python3.6.2/lib/python3.6/encodings/mac_croatian.py +307 -0
  397. package/python3.6.2/lib/python3.6/encodings/mac_cyrillic.py +307 -0
  398. package/python3.6.2/lib/python3.6/encodings/mac_farsi.py +307 -0
  399. package/python3.6.2/lib/python3.6/encodings/mac_greek.py +307 -0
  400. package/python3.6.2/lib/python3.6/encodings/mac_iceland.py +307 -0
  401. package/python3.6.2/lib/python3.6/encodings/mac_latin2.py +312 -0
  402. package/python3.6.2/lib/python3.6/encodings/mac_roman.py +307 -0
  403. package/python3.6.2/lib/python3.6/encodings/mac_romanian.py +307 -0
  404. package/python3.6.2/lib/python3.6/encodings/mac_turkish.py +307 -0
  405. package/python3.6.2/lib/python3.6/encodings/mbcs.py +47 -0
  406. package/python3.6.2/lib/python3.6/encodings/oem.py +41 -0
  407. package/python3.6.2/lib/python3.6/encodings/palmos.py +308 -0
  408. package/python3.6.2/lib/python3.6/encodings/ptcp154.py +312 -0
  409. package/python3.6.2/lib/python3.6/encodings/punycode.py +237 -0
  410. package/python3.6.2/lib/python3.6/encodings/quopri_codec.py +56 -0
  411. package/python3.6.2/lib/python3.6/encodings/raw_unicode_escape.py +45 -0
  412. package/python3.6.2/lib/python3.6/encodings/rot_13.py +113 -0
  413. package/python3.6.2/lib/python3.6/encodings/shift_jis.py +39 -0
  414. package/python3.6.2/lib/python3.6/encodings/shift_jis_2004.py +39 -0
  415. package/python3.6.2/lib/python3.6/encodings/shift_jisx0213.py +39 -0
  416. package/python3.6.2/lib/python3.6/encodings/tis_620.py +307 -0
  417. package/python3.6.2/lib/python3.6/encodings/undefined.py +49 -0
  418. package/python3.6.2/lib/python3.6/encodings/unicode_escape.py +45 -0
  419. package/python3.6.2/lib/python3.6/encodings/unicode_internal.py +45 -0
  420. package/python3.6.2/lib/python3.6/encodings/utf_16.py +155 -0
  421. package/python3.6.2/lib/python3.6/encodings/utf_16_be.py +42 -0
  422. package/python3.6.2/lib/python3.6/encodings/utf_16_le.py +42 -0
  423. package/python3.6.2/lib/python3.6/encodings/utf_32.py +150 -0
  424. package/python3.6.2/lib/python3.6/encodings/utf_32_be.py +37 -0
  425. package/python3.6.2/lib/python3.6/encodings/utf_32_le.py +37 -0
  426. package/python3.6.2/lib/python3.6/encodings/utf_7.py +38 -0
  427. package/python3.6.2/lib/python3.6/encodings/utf_8.py +42 -0
  428. package/python3.6.2/lib/python3.6/encodings/utf_8_sig.py +130 -0
  429. package/python3.6.2/lib/python3.6/encodings/uu_codec.py +99 -0
  430. package/python3.6.2/lib/python3.6/encodings/zlib_codec.py +77 -0
  431. package/python3.6.2/lib/python3.6/ensurepip/__init__.py +205 -0
  432. package/python3.6.2/lib/python3.6/ensurepip/__main__.py +5 -0
  433. package/python3.6.2/lib/python3.6/ensurepip/_uninstall.py +31 -0
  434. package/python3.6.2/lib/python3.6/enum.py +875 -0
  435. package/python3.6.2/lib/python3.6/filecmp.py +305 -0
  436. package/python3.6.2/lib/python3.6/fileinput.py +425 -0
  437. package/python3.6.2/lib/python3.6/fnmatch.py +109 -0
  438. package/python3.6.2/lib/python3.6/formatter.py +452 -0
  439. package/python3.6.2/lib/python3.6/fractions.py +643 -0
  440. package/python3.6.2/lib/python3.6/ftplib.py +989 -0
  441. package/python3.6.2/lib/python3.6/functools.py +811 -0
  442. package/python3.6.2/lib/python3.6/genericpath.py +151 -0
  443. package/python3.6.2/lib/python3.6/getopt.py +215 -0
  444. package/python3.6.2/lib/python3.6/getpass.py +185 -0
  445. package/python3.6.2/lib/python3.6/gettext.py +637 -0
  446. package/python3.6.2/lib/python3.6/glob.py +171 -0
  447. package/python3.6.2/lib/python3.6/gzip.py +574 -0
  448. package/python3.6.2/lib/python3.6/hashlib.py +251 -0
  449. package/python3.6.2/lib/python3.6/heapq.py +607 -0
  450. package/python3.6.2/lib/python3.6/hmac.py +144 -0
  451. package/python3.6.2/lib/python3.6/html/__init__.py +132 -0
  452. package/python3.6.2/lib/python3.6/html/entities.py +2509 -0
  453. package/python3.6.2/lib/python3.6/html/parser.py +470 -0
  454. package/python3.6.2/lib/python3.6/http/__init__.py +134 -0
  455. package/python3.6.2/lib/python3.6/http/client.py +1478 -0
  456. package/python3.6.2/lib/python3.6/http/cookiejar.py +2098 -0
  457. package/python3.6.2/lib/python3.6/http/cookies.py +635 -0
  458. package/python3.6.2/lib/python3.6/http/server.py +1211 -0
  459. package/python3.6.2/lib/python3.6/idlelib/CREDITS.txt +37 -0
  460. package/python3.6.2/lib/python3.6/idlelib/ChangeLog +1591 -0
  461. package/python3.6.2/lib/python3.6/idlelib/HISTORY.txt +296 -0
  462. package/python3.6.2/lib/python3.6/idlelib/Icons/folder.gif +0 -0
  463. package/python3.6.2/lib/python3.6/idlelib/Icons/idle.icns +0 -0
  464. package/python3.6.2/lib/python3.6/idlelib/Icons/idle.ico +0 -0
  465. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_16.gif +0 -0
  466. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_16.png +0 -0
  467. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_32.gif +0 -0
  468. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_32.png +0 -0
  469. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_48.gif +0 -0
  470. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_48.png +0 -0
  471. package/python3.6.2/lib/python3.6/idlelib/Icons/minusnode.gif +0 -0
  472. package/python3.6.2/lib/python3.6/idlelib/Icons/openfolder.gif +0 -0
  473. package/python3.6.2/lib/python3.6/idlelib/Icons/plusnode.gif +0 -0
  474. package/python3.6.2/lib/python3.6/idlelib/Icons/python.gif +0 -0
  475. package/python3.6.2/lib/python3.6/idlelib/Icons/tk.gif +0 -0
  476. package/python3.6.2/lib/python3.6/idlelib/NEWS.txt +749 -0
  477. package/python3.6.2/lib/python3.6/idlelib/NEWS2x.txt +660 -0
  478. package/python3.6.2/lib/python3.6/idlelib/README.txt +251 -0
  479. package/python3.6.2/lib/python3.6/idlelib/TODO.txt +210 -0
  480. package/python3.6.2/lib/python3.6/idlelib/__init__.py +10 -0
  481. package/python3.6.2/lib/python3.6/idlelib/__main__.py +8 -0
  482. package/python3.6.2/lib/python3.6/idlelib/_pyclbr.py +402 -0
  483. package/python3.6.2/lib/python3.6/idlelib/autocomplete.py +232 -0
  484. package/python3.6.2/lib/python3.6/idlelib/autocomplete_w.py +460 -0
  485. package/python3.6.2/lib/python3.6/idlelib/autoexpand.py +96 -0
  486. package/python3.6.2/lib/python3.6/idlelib/browser.py +248 -0
  487. package/python3.6.2/lib/python3.6/idlelib/calltip_w.py +164 -0
  488. package/python3.6.2/lib/python3.6/idlelib/calltips.py +178 -0
  489. package/python3.6.2/lib/python3.6/idlelib/codecontext.py +185 -0
  490. package/python3.6.2/lib/python3.6/idlelib/colorizer.py +289 -0
  491. package/python3.6.2/lib/python3.6/idlelib/config-extensions.def +65 -0
  492. package/python3.6.2/lib/python3.6/idlelib/config-highlight.def +93 -0
  493. package/python3.6.2/lib/python3.6/idlelib/config-keys.def +304 -0
  494. package/python3.6.2/lib/python3.6/idlelib/config-main.def +88 -0
  495. package/python3.6.2/lib/python3.6/idlelib/config.py +929 -0
  496. package/python3.6.2/lib/python3.6/idlelib/config_key.py +298 -0
  497. package/python3.6.2/lib/python3.6/idlelib/configdialog.py +2254 -0
  498. package/python3.6.2/lib/python3.6/idlelib/debugger.py +544 -0
  499. package/python3.6.2/lib/python3.6/idlelib/debugger_r.py +388 -0
  500. package/python3.6.2/lib/python3.6/idlelib/debugobj.py +139 -0
  501. package/python3.6.2/lib/python3.6/idlelib/debugobj_r.py +36 -0
  502. package/python3.6.2/lib/python3.6/idlelib/delegator.py +33 -0
  503. package/python3.6.2/lib/python3.6/idlelib/dynoption.py +58 -0
  504. package/python3.6.2/lib/python3.6/idlelib/editor.py +1688 -0
  505. package/python3.6.2/lib/python3.6/idlelib/extend.txt +83 -0
  506. package/python3.6.2/lib/python3.6/idlelib/filelist.py +132 -0
  507. package/python3.6.2/lib/python3.6/idlelib/grep.py +200 -0
  508. package/python3.6.2/lib/python3.6/idlelib/help.html +791 -0
  509. package/python3.6.2/lib/python3.6/idlelib/help.py +275 -0
  510. package/python3.6.2/lib/python3.6/idlelib/help_about.py +205 -0
  511. package/python3.6.2/lib/python3.6/idlelib/history.py +106 -0
  512. package/python3.6.2/lib/python3.6/idlelib/hyperparser.py +312 -0
  513. package/python3.6.2/lib/python3.6/idlelib/idle.bat +4 -0
  514. package/python3.6.2/lib/python3.6/idlelib/idle.py +14 -0
  515. package/python3.6.2/lib/python3.6/idlelib/idle.pyw +17 -0
  516. package/python3.6.2/lib/python3.6/idlelib/idle_test/README.txt +226 -0
  517. package/python3.6.2/lib/python3.6/idlelib/idle_test/__init__.py +17 -0
  518. package/python3.6.2/lib/python3.6/idlelib/idle_test/htest.py +421 -0
  519. package/python3.6.2/lib/python3.6/idlelib/idle_test/mock_idle.py +60 -0
  520. package/python3.6.2/lib/python3.6/idlelib/idle_test/mock_tk.py +303 -0
  521. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_autocomplete.py +149 -0
  522. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_autoexpand.py +143 -0
  523. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_browser.py +253 -0
  524. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_calltips.py +203 -0
  525. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_colorizer.py +56 -0
  526. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_config.py +824 -0
  527. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_config_key.py +102 -0
  528. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_configdialog.py +1415 -0
  529. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_debugger.py +29 -0
  530. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_delegator.py +40 -0
  531. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_editmenu.py +74 -0
  532. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_editor.py +14 -0
  533. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_grep.py +80 -0
  534. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_help.py +34 -0
  535. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_help_about.py +177 -0
  536. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_history.py +168 -0
  537. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_hyperparser.py +274 -0
  538. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_iomenu.py +234 -0
  539. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_macosx.py +106 -0
  540. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_outwin.py +172 -0
  541. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_paragraph.py +376 -0
  542. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_parenmatch.py +112 -0
  543. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_pathbrowser.py +88 -0
  544. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_percolator.py +118 -0
  545. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_query.py +354 -0
  546. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_redirector.py +124 -0
  547. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_replace.py +293 -0
  548. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_rstrip.py +49 -0
  549. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_run.py +35 -0
  550. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_scrolledlist.py +29 -0
  551. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_search.py +82 -0
  552. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_searchbase.py +156 -0
  553. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_searchengine.py +329 -0
  554. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_text.py +236 -0
  555. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_textview.py +179 -0
  556. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_tree.py +35 -0
  557. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_undo.py +135 -0
  558. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_warning.py +73 -0
  559. package/python3.6.2/lib/python3.6/idlelib/iomenu.py +574 -0
  560. package/python3.6.2/lib/python3.6/idlelib/macosx.py +252 -0
  561. package/python3.6.2/lib/python3.6/idlelib/mainmenu.py +108 -0
  562. package/python3.6.2/lib/python3.6/idlelib/multicall.py +445 -0
  563. package/python3.6.2/lib/python3.6/idlelib/outwin.py +188 -0
  564. package/python3.6.2/lib/python3.6/idlelib/paragraph.py +195 -0
  565. package/python3.6.2/lib/python3.6/idlelib/parenmatch.py +183 -0
  566. package/python3.6.2/lib/python3.6/idlelib/pathbrowser.py +111 -0
  567. package/python3.6.2/lib/python3.6/idlelib/percolator.py +104 -0
  568. package/python3.6.2/lib/python3.6/idlelib/pyparse.py +617 -0
  569. package/python3.6.2/lib/python3.6/idlelib/pyshell.py +1542 -0
  570. package/python3.6.2/lib/python3.6/idlelib/query.py +308 -0
  571. package/python3.6.2/lib/python3.6/idlelib/redirector.py +175 -0
  572. package/python3.6.2/lib/python3.6/idlelib/replace.py +243 -0
  573. package/python3.6.2/lib/python3.6/idlelib/rpc.py +627 -0
  574. package/python3.6.2/lib/python3.6/idlelib/rstrip.py +29 -0
  575. package/python3.6.2/lib/python3.6/idlelib/run.py +525 -0
  576. package/python3.6.2/lib/python3.6/idlelib/runscript.py +195 -0
  577. package/python3.6.2/lib/python3.6/idlelib/scrolledlist.py +147 -0
  578. package/python3.6.2/lib/python3.6/idlelib/search.py +102 -0
  579. package/python3.6.2/lib/python3.6/idlelib/searchbase.py +200 -0
  580. package/python3.6.2/lib/python3.6/idlelib/searchengine.py +236 -0
  581. package/python3.6.2/lib/python3.6/idlelib/stackviewer.py +152 -0
  582. package/python3.6.2/lib/python3.6/idlelib/statusbar.py +46 -0
  583. package/python3.6.2/lib/python3.6/idlelib/textview.py +136 -0
  584. package/python3.6.2/lib/python3.6/idlelib/tooltip.py +96 -0
  585. package/python3.6.2/lib/python3.6/idlelib/tree.py +467 -0
  586. package/python3.6.2/lib/python3.6/idlelib/undo.py +366 -0
  587. package/python3.6.2/lib/python3.6/idlelib/windows.py +92 -0
  588. package/python3.6.2/lib/python3.6/idlelib/zoomheight.py +48 -0
  589. package/python3.6.2/lib/python3.6/idlelib/zzdummy.py +42 -0
  590. package/python3.6.2/lib/python3.6/imaplib.py +1609 -0
  591. package/python3.6.2/lib/python3.6/imghdr.py +168 -0
  592. package/python3.6.2/lib/python3.6/imp.py +346 -0
  593. package/python3.6.2/lib/python3.6/importlib/__init__.py +173 -0
  594. package/python3.6.2/lib/python3.6/importlib/_bootstrap.py +1161 -0
  595. package/python3.6.2/lib/python3.6/importlib/_bootstrap_external.py +1443 -0
  596. package/python3.6.2/lib/python3.6/importlib/abc.py +329 -0
  597. package/python3.6.2/lib/python3.6/importlib/machinery.py +21 -0
  598. package/python3.6.2/lib/python3.6/importlib/util.py +288 -0
  599. package/python3.6.2/lib/python3.6/inspect.py +3098 -0
  600. package/python3.6.2/lib/python3.6/io.py +99 -0
  601. package/python3.6.2/lib/python3.6/ipaddress.py +2299 -0
  602. package/python3.6.2/lib/python3.6/json/__init__.py +367 -0
  603. package/python3.6.2/lib/python3.6/json/decoder.py +358 -0
  604. package/python3.6.2/lib/python3.6/json/encoder.py +441 -0
  605. package/python3.6.2/lib/python3.6/json/scanner.py +73 -0
  606. package/python3.6.2/lib/python3.6/json/tool.py +50 -0
  607. package/python3.6.2/lib/python3.6/keyword.py +94 -0
  608. package/python3.6.2/lib/python3.6/lib-dynload/_asyncio.cpython-36m-arm-linux-androideabi.so +0 -0
  609. package/python3.6.2/lib/python3.6/lib-dynload/_bisect.cpython-36m-arm-linux-androideabi.so +0 -0
  610. package/python3.6.2/lib/python3.6/lib-dynload/_blake2.cpython-36m-arm-linux-androideabi.so +0 -0
  611. package/python3.6.2/lib/python3.6/lib-dynload/_bz2.cpython-36m-arm-linux-androideabi.so +0 -0
  612. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_cn.cpython-36m-arm-linux-androideabi.so +0 -0
  613. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_hk.cpython-36m-arm-linux-androideabi.so +0 -0
  614. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_iso2022.cpython-36m-arm-linux-androideabi.so +0 -0
  615. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_jp.cpython-36m-arm-linux-androideabi.so +0 -0
  616. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_kr.cpython-36m-arm-linux-androideabi.so +0 -0
  617. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_tw.cpython-36m-arm-linux-androideabi.so +0 -0
  618. package/python3.6.2/lib/python3.6/lib-dynload/_crypt.cpython-36m-arm-linux-androideabi.so +0 -0
  619. package/python3.6.2/lib/python3.6/lib-dynload/_csv.cpython-36m-arm-linux-androideabi.so +0 -0
  620. package/python3.6.2/lib/python3.6/lib-dynload/_ctypes.cpython-36m-arm-linux-androideabi.so +0 -0
  621. package/python3.6.2/lib/python3.6/lib-dynload/_ctypes_test.cpython-36m-arm-linux-androideabi.so +0 -0
  622. package/python3.6.2/lib/python3.6/lib-dynload/_curses.cpython-36m-arm-linux-androideabi.so +0 -0
  623. package/python3.6.2/lib/python3.6/lib-dynload/_curses_panel.cpython-36m-arm-linux-androideabi.so +0 -0
  624. package/python3.6.2/lib/python3.6/lib-dynload/_datetime.cpython-36m-arm-linux-androideabi.so +0 -0
  625. package/python3.6.2/lib/python3.6/lib-dynload/_elementtree.cpython-36m-arm-linux-androideabi.so +0 -0
  626. package/python3.6.2/lib/python3.6/lib-dynload/_hashlib.cpython-36m-arm-linux-androideabi.so +0 -0
  627. package/python3.6.2/lib/python3.6/lib-dynload/_heapq.cpython-36m-arm-linux-androideabi.so +0 -0
  628. package/python3.6.2/lib/python3.6/lib-dynload/_json.cpython-36m-arm-linux-androideabi.so +0 -0
  629. package/python3.6.2/lib/python3.6/lib-dynload/_lsprof.cpython-36m-arm-linux-androideabi.so +0 -0
  630. package/python3.6.2/lib/python3.6/lib-dynload/_md5.cpython-36m-arm-linux-androideabi.so +0 -0
  631. package/python3.6.2/lib/python3.6/lib-dynload/_multibytecodec.cpython-36m-arm-linux-androideabi.so +0 -0
  632. package/python3.6.2/lib/python3.6/lib-dynload/_multiprocessing.cpython-36m-arm-linux-androideabi.so +0 -0
  633. package/python3.6.2/lib/python3.6/lib-dynload/_opcode.cpython-36m-arm-linux-androideabi.so +0 -0
  634. package/python3.6.2/lib/python3.6/lib-dynload/_pickle.cpython-36m-arm-linux-androideabi.so +0 -0
  635. package/python3.6.2/lib/python3.6/lib-dynload/_posixsubprocess.cpython-36m-arm-linux-androideabi.so +0 -0
  636. package/python3.6.2/lib/python3.6/lib-dynload/_random.cpython-36m-arm-linux-androideabi.so +0 -0
  637. package/python3.6.2/lib/python3.6/lib-dynload/_sha1.cpython-36m-arm-linux-androideabi.so +0 -0
  638. package/python3.6.2/lib/python3.6/lib-dynload/_sha256.cpython-36m-arm-linux-androideabi.so +0 -0
  639. package/python3.6.2/lib/python3.6/lib-dynload/_sha3.cpython-36m-arm-linux-androideabi.so +0 -0
  640. package/python3.6.2/lib/python3.6/lib-dynload/_sha512.cpython-36m-arm-linux-androideabi.so +0 -0
  641. package/python3.6.2/lib/python3.6/lib-dynload/_socket.cpython-36m-arm-linux-androideabi.so +0 -0
  642. package/python3.6.2/lib/python3.6/lib-dynload/_sqlite3.cpython-36m-arm-linux-androideabi.so +0 -0
  643. package/python3.6.2/lib/python3.6/lib-dynload/_ssl.cpython-36m-arm-linux-androideabi.so +0 -0
  644. package/python3.6.2/lib/python3.6/lib-dynload/_struct.cpython-36m-arm-linux-androideabi.so +0 -0
  645. package/python3.6.2/lib/python3.6/lib-dynload/_sysconfigdata_m_linux_arm-linux-androideabi.py +743 -0
  646. package/python3.6.2/lib/python3.6/lib-dynload/_testbuffer.cpython-36m-arm-linux-androideabi.so +0 -0
  647. package/python3.6.2/lib/python3.6/lib-dynload/_testcapi.cpython-36m-arm-linux-androideabi.so +0 -0
  648. package/python3.6.2/lib/python3.6/lib-dynload/_testimportmultiple.cpython-36m-arm-linux-androideabi.so +0 -0
  649. package/python3.6.2/lib/python3.6/lib-dynload/_testmultiphase.cpython-36m-arm-linux-androideabi.so +0 -0
  650. package/python3.6.2/lib/python3.6/lib-dynload/array.cpython-36m-arm-linux-androideabi.so +0 -0
  651. package/python3.6.2/lib/python3.6/lib-dynload/audioop.cpython-36m-arm-linux-androideabi.so +0 -0
  652. package/python3.6.2/lib/python3.6/lib-dynload/binascii.cpython-36m-arm-linux-androideabi.so +0 -0
  653. package/python3.6.2/lib/python3.6/lib-dynload/cmath.cpython-36m-arm-linux-androideabi.so +0 -0
  654. package/python3.6.2/lib/python3.6/lib-dynload/fcntl.cpython-36m-arm-linux-androideabi.so +0 -0
  655. package/python3.6.2/lib/python3.6/lib-dynload/grp.cpython-36m-arm-linux-androideabi.so +0 -0
  656. package/python3.6.2/lib/python3.6/lib-dynload/math.cpython-36m-arm-linux-androideabi.so +0 -0
  657. package/python3.6.2/lib/python3.6/lib-dynload/mmap.cpython-36m-arm-linux-androideabi.so +0 -0
  658. package/python3.6.2/lib/python3.6/lib-dynload/ossaudiodev.cpython-36m-arm-linux-androideabi.so +0 -0
  659. package/python3.6.2/lib/python3.6/lib-dynload/parser.cpython-36m-arm-linux-androideabi.so +0 -0
  660. package/python3.6.2/lib/python3.6/lib-dynload/pyexpat.cpython-36m-arm-linux-androideabi.so +0 -0
  661. package/python3.6.2/lib/python3.6/lib-dynload/readline.cpython-36m-arm-linux-androideabi.so +0 -0
  662. package/python3.6.2/lib/python3.6/lib-dynload/resource.cpython-36m-arm-linux-androideabi.so +0 -0
  663. package/python3.6.2/lib/python3.6/lib-dynload/select.cpython-36m-arm-linux-androideabi.so +0 -0
  664. package/python3.6.2/lib/python3.6/lib-dynload/syslog.cpython-36m-arm-linux-androideabi.so +0 -0
  665. package/python3.6.2/lib/python3.6/lib-dynload/termios.cpython-36m-arm-linux-androideabi.so +0 -0
  666. package/python3.6.2/lib/python3.6/lib-dynload/unicodedata.cpython-36m-arm-linux-androideabi.so +0 -0
  667. package/python3.6.2/lib/python3.6/lib-dynload/xxlimited.cpython-36m-arm-linux-androideabi.so +0 -0
  668. package/python3.6.2/lib/python3.6/lib-dynload/zlib.cpython-36m-arm-linux-androideabi.so +0 -0
  669. package/python3.6.2/lib/python3.6/lib2to3/__init__.py +1 -0
  670. package/python3.6.2/lib/python3.6/lib2to3/__main__.py +4 -0
  671. package/python3.6.2/lib/python3.6/lib2to3/btm_matcher.py +168 -0
  672. package/python3.6.2/lib/python3.6/lib2to3/btm_utils.py +281 -0
  673. package/python3.6.2/lib/python3.6/lib2to3/fixer_base.py +186 -0
  674. package/python3.6.2/lib/python3.6/lib2to3/fixer_util.py +453 -0
  675. package/python3.6.2/lib/python3.6/lib2to3/fixes/__init__.py +1 -0
  676. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_apply.py +70 -0
  677. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_asserts.py +34 -0
  678. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_basestring.py +14 -0
  679. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_buffer.py +22 -0
  680. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_dict.py +106 -0
  681. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_except.py +93 -0
  682. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exec.py +39 -0
  683. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_execfile.py +52 -0
  684. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exitfunc.py +72 -0
  685. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_filter.py +90 -0
  686. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_funcattrs.py +21 -0
  687. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_future.py +22 -0
  688. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_getcwdu.py +19 -0
  689. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_has_key.py +109 -0
  690. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_idioms.py +152 -0
  691. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_import.py +99 -0
  692. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports.py +145 -0
  693. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports2.py +16 -0
  694. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_input.py +26 -0
  695. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_intern.py +41 -0
  696. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_isinstance.py +52 -0
  697. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools.py +43 -0
  698. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools_imports.py +57 -0
  699. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_long.py +19 -0
  700. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_map.py +110 -0
  701. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_metaclass.py +228 -0
  702. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_methodattrs.py +24 -0
  703. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ne.py +23 -0
  704. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_next.py +103 -0
  705. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_nonzero.py +21 -0
  706. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_numliterals.py +28 -0
  707. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_operator.py +98 -0
  708. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_paren.py +44 -0
  709. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_print.py +87 -0
  710. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raise.py +90 -0
  711. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raw_input.py +17 -0
  712. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reduce.py +35 -0
  713. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reload.py +38 -0
  714. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_renames.py +70 -0
  715. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_repr.py +23 -0
  716. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_set_literal.py +53 -0
  717. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_standarderror.py +18 -0
  718. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_sys_exc.py +30 -0
  719. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_throw.py +56 -0
  720. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_tuple_params.py +175 -0
  721. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_types.py +61 -0
  722. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_unicode.py +42 -0
  723. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_urllib.py +196 -0
  724. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ws_comma.py +39 -0
  725. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xrange.py +73 -0
  726. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xreadlines.py +25 -0
  727. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_zip.py +46 -0
  728. package/python3.6.2/lib/python3.6/lib2to3/main.py +268 -0
  729. package/python3.6.2/lib/python3.6/lib2to3/patcomp.py +205 -0
  730. package/python3.6.2/lib/python3.6/lib2to3/pgen2/__init__.py +4 -0
  731. package/python3.6.2/lib/python3.6/lib2to3/pgen2/conv.py +257 -0
  732. package/python3.6.2/lib/python3.6/lib2to3/pgen2/driver.py +160 -0
  733. package/python3.6.2/lib/python3.6/lib2to3/pgen2/grammar.py +207 -0
  734. package/python3.6.2/lib/python3.6/lib2to3/pgen2/literals.py +60 -0
  735. package/python3.6.2/lib/python3.6/lib2to3/pgen2/parse.py +201 -0
  736. package/python3.6.2/lib/python3.6/lib2to3/pgen2/pgen.py +386 -0
  737. package/python3.6.2/lib/python3.6/lib2to3/pgen2/token.py +85 -0
  738. package/python3.6.2/lib/python3.6/lib2to3/pgen2/tokenize.py +590 -0
  739. package/python3.6.2/lib/python3.6/lib2to3/pygram.py +40 -0
  740. package/python3.6.2/lib/python3.6/lib2to3/pytree.py +854 -0
  741. package/python3.6.2/lib/python3.6/lib2to3/refactor.py +744 -0
  742. package/python3.6.2/lib/python3.6/lib2to3/tests/__init__.py +9 -0
  743. package/python3.6.2/lib/python3.6/lib2to3/tests/__main__.py +4 -0
  744. package/python3.6.2/lib/python3.6/lib2to3/tests/data/README +6 -0
  745. package/python3.6.2/lib/python3.6/lib2to3/tests/data/bom.py +2 -0
  746. package/python3.6.2/lib/python3.6/lib2to3/tests/data/crlf.py +3 -0
  747. package/python3.6.2/lib/python3.6/lib2to3/tests/data/different_encoding.py +6 -0
  748. package/python3.6.2/lib/python3.6/lib2to3/tests/data/false_encoding.py +2 -0
  749. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/bad_order.py +5 -0
  750. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/__init__.py +0 -0
  751. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_explicit.py +6 -0
  752. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_first.py +6 -0
  753. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_last.py +7 -0
  754. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_parrot.py +13 -0
  755. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_preorder.py +6 -0
  756. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/no_fixer_cls.py +1 -0
  757. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/parrot_example.py +2 -0
  758. package/python3.6.2/lib/python3.6/lib2to3/tests/data/infinite_recursion.py +2669 -0
  759. package/python3.6.2/lib/python3.6/lib2to3/tests/data/py2_test_grammar.py +974 -0
  760. package/python3.6.2/lib/python3.6/lib2to3/tests/data/py3_test_grammar.py +945 -0
  761. package/python3.6.2/lib/python3.6/lib2to3/tests/pytree_idempotency.py +94 -0
  762. package/python3.6.2/lib/python3.6/lib2to3/tests/support.py +52 -0
  763. package/python3.6.2/lib/python3.6/lib2to3/tests/test_all_fixers.py +27 -0
  764. package/python3.6.2/lib/python3.6/lib2to3/tests/test_fixers.py +4640 -0
  765. package/python3.6.2/lib/python3.6/lib2to3/tests/test_main.py +139 -0
  766. package/python3.6.2/lib/python3.6/lib2to3/tests/test_parser.py +472 -0
  767. package/python3.6.2/lib/python3.6/lib2to3/tests/test_pytree.py +472 -0
  768. package/python3.6.2/lib/python3.6/lib2to3/tests/test_refactor.py +316 -0
  769. package/python3.6.2/lib/python3.6/lib2to3/tests/test_util.py +591 -0
  770. package/python3.6.2/lib/python3.6/linecache.py +177 -0
  771. package/python3.6.2/lib/python3.6/locale.py +1684 -0
  772. package/python3.6.2/lib/python3.6/logging/__init__.py +2019 -0
  773. package/python3.6.2/lib/python3.6/logging/config.py +933 -0
  774. package/python3.6.2/lib/python3.6/logging/handlers.py +1505 -0
  775. package/python3.6.2/lib/python3.6/lzma.py +347 -0
  776. package/python3.6.2/lib/python3.6/macpath.py +211 -0
  777. package/python3.6.2/lib/python3.6/macurl2path.py +77 -0
  778. package/python3.6.2/lib/python3.6/mailbox.py +2146 -0
  779. package/python3.6.2/lib/python3.6/mailcap.py +275 -0
  780. package/python3.6.2/lib/python3.6/mimetypes.py +598 -0
  781. package/python3.6.2/lib/python3.6/modulefinder.py +633 -0
  782. package/python3.6.2/lib/python3.6/msilib/__init__.py +483 -0
  783. package/python3.6.2/lib/python3.6/msilib/schema.py +1007 -0
  784. package/python3.6.2/lib/python3.6/msilib/sequence.py +126 -0
  785. package/python3.6.2/lib/python3.6/msilib/text.py +129 -0
  786. package/python3.6.2/lib/python3.6/multiprocessing/__init__.py +38 -0
  787. package/python3.6.2/lib/python3.6/multiprocessing/connection.py +953 -0
  788. package/python3.6.2/lib/python3.6/multiprocessing/context.py +357 -0
  789. package/python3.6.2/lib/python3.6/multiprocessing/dummy/__init__.py +119 -0
  790. package/python3.6.2/lib/python3.6/multiprocessing/dummy/connection.py +73 -0
  791. package/python3.6.2/lib/python3.6/multiprocessing/forkserver.py +266 -0
  792. package/python3.6.2/lib/python3.6/multiprocessing/heap.py +254 -0
  793. package/python3.6.2/lib/python3.6/multiprocessing/managers.py +1160 -0
  794. package/python3.6.2/lib/python3.6/multiprocessing/pool.py +803 -0
  795. package/python3.6.2/lib/python3.6/multiprocessing/popen_fork.py +86 -0
  796. package/python3.6.2/lib/python3.6/multiprocessing/popen_forkserver.py +68 -0
  797. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_posix.py +68 -0
  798. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_win32.py +98 -0
  799. package/python3.6.2/lib/python3.6/multiprocessing/process.py +336 -0
  800. package/python3.6.2/lib/python3.6/multiprocessing/queues.py +347 -0
  801. package/python3.6.2/lib/python3.6/multiprocessing/reduction.py +274 -0
  802. package/python3.6.2/lib/python3.6/multiprocessing/resource_sharer.py +158 -0
  803. package/python3.6.2/lib/python3.6/multiprocessing/semaphore_tracker.py +157 -0
  804. package/python3.6.2/lib/python3.6/multiprocessing/sharedctypes.py +239 -0
  805. package/python3.6.2/lib/python3.6/multiprocessing/spawn.py +286 -0
  806. package/python3.6.2/lib/python3.6/multiprocessing/synchronize.py +406 -0
  807. package/python3.6.2/lib/python3.6/multiprocessing/util.py +406 -0
  808. package/python3.6.2/lib/python3.6/netrc.py +142 -0
  809. package/python3.6.2/lib/python3.6/nntplib.py +1147 -0
  810. package/python3.6.2/lib/python3.6/ntpath.py +692 -0
  811. package/python3.6.2/lib/python3.6/nturl2path.py +68 -0
  812. package/python3.6.2/lib/python3.6/numbers.py +389 -0
  813. package/python3.6.2/lib/python3.6/opcode.py +215 -0
  814. package/python3.6.2/lib/python3.6/operator.py +464 -0
  815. package/python3.6.2/lib/python3.6/optparse.py +1681 -0
  816. package/python3.6.2/lib/python3.6/os.py +1069 -0
  817. package/python3.6.2/lib/python3.6/pathlib.py +1434 -0
  818. package/python3.6.2/lib/python3.6/pdb.py +1694 -0
  819. package/python3.6.2/lib/python3.6/pickle.py +1605 -0
  820. package/python3.6.2/lib/python3.6/pickletools.py +2840 -0
  821. package/python3.6.2/lib/python3.6/pipes.py +247 -0
  822. package/python3.6.2/lib/python3.6/pkgutil.py +634 -0
  823. package/python3.6.2/lib/python3.6/platform.py +1400 -0
  824. package/python3.6.2/lib/python3.6/plistlib.py +1043 -0
  825. package/python3.6.2/lib/python3.6/poplib.py +478 -0
  826. package/python3.6.2/lib/python3.6/posixpath.py +520 -0
  827. package/python3.6.2/lib/python3.6/pprint.py +597 -0
  828. package/python3.6.2/lib/python3.6/profile.py +589 -0
  829. package/python3.6.2/lib/python3.6/pstats.py +697 -0
  830. package/python3.6.2/lib/python3.6/pty.py +170 -0
  831. package/python3.6.2/lib/python3.6/py_compile.py +186 -0
  832. package/python3.6.2/lib/python3.6/pyclbr.py +352 -0
  833. package/python3.6.2/lib/python3.6/pydoc.py +2663 -0
  834. package/python3.6.2/lib/python3.6/pydoc_data/__init__.py +0 -0
  835. package/python3.6.2/lib/python3.6/pydoc_data/topics.py +12951 -0
  836. package/python3.6.2/lib/python3.6/queue.py +246 -0
  837. package/python3.6.2/lib/python3.6/quopri.py +242 -0
  838. package/python3.6.2/lib/python3.6/random.py +768 -0
  839. package/python3.6.2/lib/python3.6/re.py +381 -0
  840. package/python3.6.2/lib/python3.6/reprlib.py +164 -0
  841. package/python3.6.2/lib/python3.6/rlcompleter.py +205 -0
  842. package/python3.6.2/lib/python3.6/runpy.py +294 -0
  843. package/python3.6.2/lib/python3.6/sched.py +170 -0
  844. package/python3.6.2/lib/python3.6/secrets.py +73 -0
  845. package/python3.6.2/lib/python3.6/selectors.py +611 -0
  846. package/python3.6.2/lib/python3.6/shelve.py +243 -0
  847. package/python3.6.2/lib/python3.6/shlex.py +335 -0
  848. package/python3.6.2/lib/python3.6/shutil.py +1153 -0
  849. package/python3.6.2/lib/python3.6/signal.py +79 -0
  850. package/python3.6.2/lib/python3.6/site.py +598 -0
  851. package/python3.6.2/lib/python3.6/smtpd.py +965 -0
  852. package/python3.6.2/lib/python3.6/smtplib.py +1115 -0
  853. package/python3.6.2/lib/python3.6/sndhdr.py +257 -0
  854. package/python3.6.2/lib/python3.6/socket.py +750 -0
  855. package/python3.6.2/lib/python3.6/socketserver.py +793 -0
  856. package/python3.6.2/lib/python3.6/sqlite3/__init__.py +23 -0
  857. package/python3.6.2/lib/python3.6/sqlite3/dbapi2.py +89 -0
  858. package/python3.6.2/lib/python3.6/sqlite3/dump.py +70 -0
  859. package/python3.6.2/lib/python3.6/sqlite3/test/__init__.py +0 -0
  860. package/python3.6.2/lib/python3.6/sqlite3/test/dbapi.py +938 -0
  861. package/python3.6.2/lib/python3.6/sqlite3/test/dump.py +81 -0
  862. package/python3.6.2/lib/python3.6/sqlite3/test/factory.py +293 -0
  863. package/python3.6.2/lib/python3.6/sqlite3/test/hooks.py +264 -0
  864. package/python3.6.2/lib/python3.6/sqlite3/test/regression.py +410 -0
  865. package/python3.6.2/lib/python3.6/sqlite3/test/transactions.py +214 -0
  866. package/python3.6.2/lib/python3.6/sqlite3/test/types.py +421 -0
  867. package/python3.6.2/lib/python3.6/sqlite3/test/userfunctions.py +473 -0
  868. package/python3.6.2/lib/python3.6/sre_compile.py +580 -0
  869. package/python3.6.2/lib/python3.6/sre_constants.py +233 -0
  870. package/python3.6.2/lib/python3.6/sre_parse.py +973 -0
  871. package/python3.6.2/lib/python3.6/ssl.py +1228 -0
  872. package/python3.6.2/lib/python3.6/stat.py +178 -0
  873. package/python3.6.2/lib/python3.6/statistics.py +670 -0
  874. package/python3.6.2/lib/python3.6/string.py +309 -0
  875. package/python3.6.2/lib/python3.6/stringprep.py +272 -0
  876. package/python3.6.2/lib/python3.6/struct.py +15 -0
  877. package/python3.6.2/lib/python3.6/subprocess.py +1590 -0
  878. package/python3.6.2/lib/python3.6/sunau.py +525 -0
  879. package/python3.6.2/lib/python3.6/symbol.py +115 -0
  880. package/python3.6.2/lib/python3.6/symtable.py +238 -0
  881. package/python3.6.2/lib/python3.6/sysconfig.py +721 -0
  882. package/python3.6.2/lib/python3.6/tabnanny.py +332 -0
  883. package/python3.6.2/lib/python3.6/tarfile.py +2547 -0
  884. package/python3.6.2/lib/python3.6/telnetlib.py +675 -0
  885. package/python3.6.2/lib/python3.6/tempfile.py +811 -0
  886. package/python3.6.2/lib/python3.6/test/Sine-1000Hz-300ms.aif +0 -0
  887. package/python3.6.2/lib/python3.6/test/__init__.py +1 -0
  888. package/python3.6.2/lib/python3.6/test/__main__.py +2 -0
  889. package/python3.6.2/lib/python3.6/test/_test_multiprocessing.py +4458 -0
  890. package/python3.6.2/lib/python3.6/test/allsans.pem +37 -0
  891. package/python3.6.2/lib/python3.6/test/ann_module.py +53 -0
  892. package/python3.6.2/lib/python3.6/test/ann_module2.py +36 -0
  893. package/python3.6.2/lib/python3.6/test/ann_module3.py +18 -0
  894. package/python3.6.2/lib/python3.6/test/audiodata/pluck-alaw.aifc +0 -0
  895. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.aiff +0 -0
  896. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.au +0 -0
  897. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.wav +0 -0
  898. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.aiff +0 -0
  899. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.au +0 -0
  900. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.wav +0 -0
  901. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.aiff +0 -0
  902. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.au +0 -0
  903. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.wav +0 -0
  904. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.aiff +0 -0
  905. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.au +0 -0
  906. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.wav +0 -0
  907. package/python3.6.2/lib/python3.6/test/audiodata/pluck-ulaw.aifc +0 -0
  908. package/python3.6.2/lib/python3.6/test/audiodata/pluck-ulaw.au +0 -0
  909. package/python3.6.2/lib/python3.6/test/audiotest.au +0 -0
  910. package/python3.6.2/lib/python3.6/test/audiotests.py +329 -0
  911. package/python3.6.2/lib/python3.6/test/autotest.py +5 -0
  912. package/python3.6.2/lib/python3.6/test/bad_coding.py +1 -0
  913. package/python3.6.2/lib/python3.6/test/bad_coding2.py +2 -0
  914. package/python3.6.2/lib/python3.6/test/badcert.pem +36 -0
  915. package/python3.6.2/lib/python3.6/test/badkey.pem +40 -0
  916. package/python3.6.2/lib/python3.6/test/badsyntax_3131.py +2 -0
  917. package/python3.6.2/lib/python3.6/test/badsyntax_future10.py +3 -0
  918. package/python3.6.2/lib/python3.6/test/badsyntax_future3.py +10 -0
  919. package/python3.6.2/lib/python3.6/test/badsyntax_future4.py +10 -0
  920. package/python3.6.2/lib/python3.6/test/badsyntax_future5.py +12 -0
  921. package/python3.6.2/lib/python3.6/test/badsyntax_future6.py +10 -0
  922. package/python3.6.2/lib/python3.6/test/badsyntax_future7.py +11 -0
  923. package/python3.6.2/lib/python3.6/test/badsyntax_future8.py +10 -0
  924. package/python3.6.2/lib/python3.6/test/badsyntax_future9.py +10 -0
  925. package/python3.6.2/lib/python3.6/test/badsyntax_pep3120.py +1 -0
  926. package/python3.6.2/lib/python3.6/test/bisect.py +167 -0
  927. package/python3.6.2/lib/python3.6/test/bytecode_helper.py +41 -0
  928. package/python3.6.2/lib/python3.6/test/capath/4e1295a3.0 +14 -0
  929. package/python3.6.2/lib/python3.6/test/capath/5ed36f99.0 +41 -0
  930. package/python3.6.2/lib/python3.6/test/capath/6e88d7b8.0 +14 -0
  931. package/python3.6.2/lib/python3.6/test/capath/99d0fa06.0 +41 -0
  932. package/python3.6.2/lib/python3.6/test/capath/b1930218.0 +21 -0
  933. package/python3.6.2/lib/python3.6/test/capath/ceff1710.0 +21 -0
  934. package/python3.6.2/lib/python3.6/test/cfgparser.1 +3 -0
  935. package/python3.6.2/lib/python3.6/test/cfgparser.2 +537 -0
  936. package/python3.6.2/lib/python3.6/test/cfgparser.3 +69 -0
  937. package/python3.6.2/lib/python3.6/test/cjkencodings/big5-utf8.txt +9 -0
  938. package/python3.6.2/lib/python3.6/test/cjkencodings/big5.txt +9 -0
  939. package/python3.6.2/lib/python3.6/test/cjkencodings/big5hkscs-utf8.txt +2 -0
  940. package/python3.6.2/lib/python3.6/test/cjkencodings/big5hkscs.txt +2 -0
  941. package/python3.6.2/lib/python3.6/test/cjkencodings/cp949-utf8.txt +9 -0
  942. package/python3.6.2/lib/python3.6/test/cjkencodings/cp949.txt +9 -0
  943. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jisx0213-utf8.txt +8 -0
  944. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jisx0213.txt +8 -0
  945. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jp-utf8.txt +7 -0
  946. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jp.txt +7 -0
  947. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_kr-utf8.txt +7 -0
  948. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_kr.txt +7 -0
  949. package/python3.6.2/lib/python3.6/test/cjkencodings/gb18030-utf8.txt +15 -0
  950. package/python3.6.2/lib/python3.6/test/cjkencodings/gb18030.txt +15 -0
  951. package/python3.6.2/lib/python3.6/test/cjkencodings/gb2312-utf8.txt +6 -0
  952. package/python3.6.2/lib/python3.6/test/cjkencodings/gb2312.txt +6 -0
  953. package/python3.6.2/lib/python3.6/test/cjkencodings/gbk-utf8.txt +14 -0
  954. package/python3.6.2/lib/python3.6/test/cjkencodings/gbk.txt +14 -0
  955. package/python3.6.2/lib/python3.6/test/cjkencodings/hz-utf8.txt +2 -0
  956. package/python3.6.2/lib/python3.6/test/cjkencodings/hz.txt +2 -0
  957. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_jp-utf8.txt +7 -0
  958. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_jp.txt +7 -0
  959. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_kr-utf8.txt +7 -0
  960. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_kr.txt +7 -0
  961. package/python3.6.2/lib/python3.6/test/cjkencodings/johab-utf8.txt +9 -0
  962. package/python3.6.2/lib/python3.6/test/cjkencodings/johab.txt +9 -0
  963. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jis-utf8.txt +7 -0
  964. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jis.txt +7 -0
  965. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jisx0213-utf8.txt +8 -0
  966. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jisx0213.txt +8 -0
  967. package/python3.6.2/lib/python3.6/test/cmath_testcases.txt +2511 -0
  968. package/python3.6.2/lib/python3.6/test/coding20731.py +4 -0
  969. package/python3.6.2/lib/python3.6/test/crashers/README +20 -0
  970. package/python3.6.2/lib/python3.6/test/crashers/bogus_code_obj.py +19 -0
  971. package/python3.6.2/lib/python3.6/test/crashers/gc_inspection.py +32 -0
  972. package/python3.6.2/lib/python3.6/test/crashers/infinite_loop_re.py +16 -0
  973. package/python3.6.2/lib/python3.6/test/crashers/mutation_inside_cyclegc.py +31 -0
  974. package/python3.6.2/lib/python3.6/test/crashers/recursive_call.py +15 -0
  975. package/python3.6.2/lib/python3.6/test/crashers/trace_at_recursion_limit.py +27 -0
  976. package/python3.6.2/lib/python3.6/test/crashers/underlying_dict.py +20 -0
  977. package/python3.6.2/lib/python3.6/test/curses_tests.py +46 -0
  978. package/python3.6.2/lib/python3.6/test/data/README +2 -0
  979. package/python3.6.2/lib/python3.6/test/datetimetester.py +4929 -0
  980. package/python3.6.2/lib/python3.6/test/decimaltestdata/abs.decTest +161 -0
  981. package/python3.6.2/lib/python3.6/test/decimaltestdata/add.decTest +2716 -0
  982. package/python3.6.2/lib/python3.6/test/decimaltestdata/and.decTest +338 -0
  983. package/python3.6.2/lib/python3.6/test/decimaltestdata/base.decTest +1411 -0
  984. package/python3.6.2/lib/python3.6/test/decimaltestdata/clamp.decTest +211 -0
  985. package/python3.6.2/lib/python3.6/test/decimaltestdata/class.decTest +131 -0
  986. package/python3.6.2/lib/python3.6/test/decimaltestdata/compare.decTest +758 -0
  987. package/python3.6.2/lib/python3.6/test/decimaltestdata/comparetotal.decTest +798 -0
  988. package/python3.6.2/lib/python3.6/test/decimaltestdata/comparetotmag.decTest +790 -0
  989. package/python3.6.2/lib/python3.6/test/decimaltestdata/copy.decTest +86 -0
  990. package/python3.6.2/lib/python3.6/test/decimaltestdata/copyabs.decTest +86 -0
  991. package/python3.6.2/lib/python3.6/test/decimaltestdata/copynegate.decTest +86 -0
  992. package/python3.6.2/lib/python3.6/test/decimaltestdata/copysign.decTest +177 -0
  993. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAbs.decTest +126 -0
  994. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAdd.decTest +1328 -0
  995. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAnd.decTest +347 -0
  996. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddBase.decTest +1104 -0
  997. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCanonical.decTest +357 -0
  998. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddClass.decTest +76 -0
  999. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompare.decTest +744 -0
  1000. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareSig.decTest +647 -0
  1001. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareTotal.decTest +706 -0
  1002. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareTotalMag.decTest +706 -0
  1003. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopy.decTest +88 -0
  1004. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopyAbs.decTest +88 -0
  1005. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopyNegate.decTest +88 -0
  1006. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopySign.decTest +175 -0
  1007. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddDivide.decTest +863 -0
  1008. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddDivideInt.decTest +449 -0
  1009. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddEncode.decTest +495 -0
  1010. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddFMA.decTest +1698 -0
  1011. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddInvert.decTest +202 -0
  1012. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddLogB.decTest +159 -0
  1013. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMax.decTest +322 -0
  1014. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMaxMag.decTest +304 -0
  1015. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMin.decTest +309 -0
  1016. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMinMag.decTest +293 -0
  1017. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMinus.decTest +88 -0
  1018. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMultiply.decTest +553 -0
  1019. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextMinus.decTest +126 -0
  1020. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextPlus.decTest +124 -0
  1021. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextToward.decTest +374 -0
  1022. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddOr.decTest +292 -0
  1023. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddPlus.decTest +88 -0
  1024. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddQuantize.decTest +833 -0
  1025. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddReduce.decTest +182 -0
  1026. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRemainder.decTest +600 -0
  1027. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRemainderNear.decTest +629 -0
  1028. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRotate.decTest +262 -0
  1029. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddSameQuantum.decTest +389 -0
  1030. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddScaleB.decTest +243 -0
  1031. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddShift.decTest +262 -0
  1032. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddSubtract.decTest +629 -0
  1033. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddToIntegral.decTest +257 -0
  1034. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddXor.decTest +337 -0
  1035. package/python3.6.2/lib/python3.6/test/decimaltestdata/decDouble.decTest +65 -0
  1036. package/python3.6.2/lib/python3.6/test/decimaltestdata/decQuad.decTest +65 -0
  1037. package/python3.6.2/lib/python3.6/test/decimaltestdata/decSingle.decTest +25 -0
  1038. package/python3.6.2/lib/python3.6/test/decimaltestdata/divide.decTest +854 -0
  1039. package/python3.6.2/lib/python3.6/test/decimaltestdata/divideint.decTest +486 -0
  1040. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAbs.decTest +126 -0
  1041. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAdd.decTest +1215 -0
  1042. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAnd.decTest +420 -0
  1043. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqBase.decTest +1081 -0
  1044. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCanonical.decTest +372 -0
  1045. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqClass.decTest +77 -0
  1046. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompare.decTest +753 -0
  1047. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareSig.decTest +647 -0
  1048. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareTotal.decTest +706 -0
  1049. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareTotalMag.decTest +706 -0
  1050. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopy.decTest +88 -0
  1051. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopyAbs.decTest +88 -0
  1052. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopyNegate.decTest +88 -0
  1053. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopySign.decTest +175 -0
  1054. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqDivide.decTest +808 -0
  1055. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqDivideInt.decTest +453 -0
  1056. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqEncode.decTest +477 -0
  1057. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqFMA.decTest +1786 -0
  1058. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqInvert.decTest +245 -0
  1059. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqLogB.decTest +160 -0
  1060. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMax.decTest +322 -0
  1061. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMaxMag.decTest +304 -0
  1062. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMin.decTest +309 -0
  1063. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMinMag.decTest +293 -0
  1064. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMinus.decTest +88 -0
  1065. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMultiply.decTest +589 -0
  1066. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextMinus.decTest +126 -0
  1067. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextPlus.decTest +124 -0
  1068. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextToward.decTest +375 -0
  1069. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqOr.decTest +401 -0
  1070. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqPlus.decTest +88 -0
  1071. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqQuantize.decTest +836 -0
  1072. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqReduce.decTest +183 -0
  1073. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRemainder.decTest +597 -0
  1074. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRemainderNear.decTest +631 -0
  1075. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRotate.decTest +298 -0
  1076. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqSameQuantum.decTest +389 -0
  1077. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqScaleB.decTest +260 -0
  1078. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqShift.decTest +298 -0
  1079. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqSubtract.decTest +635 -0
  1080. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqToIntegral.decTest +257 -0
  1081. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqXor.decTest +410 -0
  1082. package/python3.6.2/lib/python3.6/test/decimaltestdata/dsBase.decTest +1062 -0
  1083. package/python3.6.2/lib/python3.6/test/decimaltestdata/dsEncode.decTest +372 -0
  1084. package/python3.6.2/lib/python3.6/test/decimaltestdata/exp.decTest +674 -0
  1085. package/python3.6.2/lib/python3.6/test/decimaltestdata/extra.decTest +2830 -0
  1086. package/python3.6.2/lib/python3.6/test/decimaltestdata/fma.decTest +3426 -0
  1087. package/python3.6.2/lib/python3.6/test/decimaltestdata/inexact.decTest +215 -0
  1088. package/python3.6.2/lib/python3.6/test/decimaltestdata/invert.decTest +176 -0
  1089. package/python3.6.2/lib/python3.6/test/decimaltestdata/ln.decTest +611 -0
  1090. package/python3.6.2/lib/python3.6/test/decimaltestdata/log10.decTest +551 -0
  1091. package/python3.6.2/lib/python3.6/test/decimaltestdata/logb.decTest +188 -0
  1092. package/python3.6.2/lib/python3.6/test/decimaltestdata/max.decTest +424 -0
  1093. package/python3.6.2/lib/python3.6/test/decimaltestdata/maxmag.decTest +404 -0
  1094. package/python3.6.2/lib/python3.6/test/decimaltestdata/min.decTest +407 -0
  1095. package/python3.6.2/lib/python3.6/test/decimaltestdata/minmag.decTest +390 -0
  1096. package/python3.6.2/lib/python3.6/test/decimaltestdata/minus.decTest +182 -0
  1097. package/python3.6.2/lib/python3.6/test/decimaltestdata/multiply.decTest +731 -0
  1098. package/python3.6.2/lib/python3.6/test/decimaltestdata/nextminus.decTest +148 -0
  1099. package/python3.6.2/lib/python3.6/test/decimaltestdata/nextplus.decTest +150 -0
  1100. package/python3.6.2/lib/python3.6/test/decimaltestdata/nexttoward.decTest +426 -0
  1101. package/python3.6.2/lib/python3.6/test/decimaltestdata/or.decTest +334 -0
  1102. package/python3.6.2/lib/python3.6/test/decimaltestdata/plus.decTest +195 -0
  1103. package/python3.6.2/lib/python3.6/test/decimaltestdata/power.decTest +1624 -0
  1104. package/python3.6.2/lib/python3.6/test/decimaltestdata/powersqrt.decTest +2970 -0
  1105. package/python3.6.2/lib/python3.6/test/decimaltestdata/quantize.decTest +948 -0
  1106. package/python3.6.2/lib/python3.6/test/decimaltestdata/randomBound32.decTest +2443 -0
  1107. package/python3.6.2/lib/python3.6/test/decimaltestdata/randoms.decTest +4030 -0
  1108. package/python3.6.2/lib/python3.6/test/decimaltestdata/reduce.decTest +234 -0
  1109. package/python3.6.2/lib/python3.6/test/decimaltestdata/remainder.decTest +640 -0
  1110. package/python3.6.2/lib/python3.6/test/decimaltestdata/remainderNear.decTest +572 -0
  1111. package/python3.6.2/lib/python3.6/test/decimaltestdata/rescale.decTest +764 -0
  1112. package/python3.6.2/lib/python3.6/test/decimaltestdata/rotate.decTest +247 -0
  1113. package/python3.6.2/lib/python3.6/test/decimaltestdata/rounding.decTest +1303 -0
  1114. package/python3.6.2/lib/python3.6/test/decimaltestdata/samequantum.decTest +389 -0
  1115. package/python3.6.2/lib/python3.6/test/decimaltestdata/scaleb.decTest +209 -0
  1116. package/python3.6.2/lib/python3.6/test/decimaltestdata/shift.decTest +250 -0
  1117. package/python3.6.2/lib/python3.6/test/decimaltestdata/squareroot.decTest +3834 -0
  1118. package/python3.6.2/lib/python3.6/test/decimaltestdata/subtract.decTest +873 -0
  1119. package/python3.6.2/lib/python3.6/test/decimaltestdata/testall.decTest +87 -0
  1120. package/python3.6.2/lib/python3.6/test/decimaltestdata/tointegral.decTest +241 -0
  1121. package/python3.6.2/lib/python3.6/test/decimaltestdata/tointegralx.decTest +255 -0
  1122. package/python3.6.2/lib/python3.6/test/decimaltestdata/xor.decTest +335 -0
  1123. package/python3.6.2/lib/python3.6/test/dh1024.pem +7 -0
  1124. package/python3.6.2/lib/python3.6/test/dis_module.py +5 -0
  1125. package/python3.6.2/lib/python3.6/test/doctest_aliases.py +13 -0
  1126. package/python3.6.2/lib/python3.6/test/double_const.py +30 -0
  1127. package/python3.6.2/lib/python3.6/test/dtracedata/assert_usable.d +5 -0
  1128. package/python3.6.2/lib/python3.6/test/dtracedata/assert_usable.stp +5 -0
  1129. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.d +31 -0
  1130. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.d.expected +18 -0
  1131. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.py +30 -0
  1132. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.stp +41 -0
  1133. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.stp.expected +14 -0
  1134. package/python3.6.2/lib/python3.6/test/dtracedata/gc.d +18 -0
  1135. package/python3.6.2/lib/python3.6/test/dtracedata/gc.d.expected +8 -0
  1136. package/python3.6.2/lib/python3.6/test/dtracedata/gc.py +13 -0
  1137. package/python3.6.2/lib/python3.6/test/dtracedata/gc.stp +26 -0
  1138. package/python3.6.2/lib/python3.6/test/dtracedata/gc.stp.expected +8 -0
  1139. package/python3.6.2/lib/python3.6/test/dtracedata/instance.py +24 -0
  1140. package/python3.6.2/lib/python3.6/test/dtracedata/line.d +7 -0
  1141. package/python3.6.2/lib/python3.6/test/dtracedata/line.d.expected +20 -0
  1142. package/python3.6.2/lib/python3.6/test/dtracedata/line.py +17 -0
  1143. package/python3.6.2/lib/python3.6/test/eintrdata/eintr_tester.py +493 -0
  1144. package/python3.6.2/lib/python3.6/test/empty.vbs +1 -0
  1145. package/python3.6.2/lib/python3.6/test/encoded_modules/__init__.py +23 -0
  1146. package/python3.6.2/lib/python3.6/test/encoded_modules/module_iso_8859_1.py +5 -0
  1147. package/python3.6.2/lib/python3.6/test/encoded_modules/module_koi8_r.py +3 -0
  1148. package/python3.6.2/lib/python3.6/test/exception_hierarchy.txt +64 -0
  1149. package/python3.6.2/lib/python3.6/test/final_a.py +19 -0
  1150. package/python3.6.2/lib/python3.6/test/final_b.py +19 -0
  1151. package/python3.6.2/lib/python3.6/test/floating_points.txt +1028 -0
  1152. package/python3.6.2/lib/python3.6/test/fork_wait.py +91 -0
  1153. package/python3.6.2/lib/python3.6/test/formatfloat_testcases.txt +355 -0
  1154. package/python3.6.2/lib/python3.6/test/future_test1.py +11 -0
  1155. package/python3.6.2/lib/python3.6/test/future_test2.py +10 -0
  1156. package/python3.6.2/lib/python3.6/test/gdb_sample.py +12 -0
  1157. package/python3.6.2/lib/python3.6/test/ieee754.txt +185 -0
  1158. package/python3.6.2/lib/python3.6/test/imghdrdata/python.bmp +0 -0
  1159. package/python3.6.2/lib/python3.6/test/imghdrdata/python.exr +0 -0
  1160. package/python3.6.2/lib/python3.6/test/imghdrdata/python.gif +0 -0
  1161. package/python3.6.2/lib/python3.6/test/imghdrdata/python.jpg +0 -0
  1162. package/python3.6.2/lib/python3.6/test/imghdrdata/python.pbm +3 -0
  1163. package/python3.6.2/lib/python3.6/test/imghdrdata/python.pgm +0 -0
  1164. package/python3.6.2/lib/python3.6/test/imghdrdata/python.png +0 -0
  1165. package/python3.6.2/lib/python3.6/test/imghdrdata/python.ppm +0 -0
  1166. package/python3.6.2/lib/python3.6/test/imghdrdata/python.ras +0 -0
  1167. package/python3.6.2/lib/python3.6/test/imghdrdata/python.sgi +0 -0
  1168. package/python3.6.2/lib/python3.6/test/imghdrdata/python.tiff +0 -0
  1169. package/python3.6.2/lib/python3.6/test/imghdrdata/python.webp +0 -0
  1170. package/python3.6.2/lib/python3.6/test/imghdrdata/python.xbm +6 -0
  1171. package/python3.6.2/lib/python3.6/test/imp_dummy.py +3 -0
  1172. package/python3.6.2/lib/python3.6/test/inspect_fodder.py +76 -0
  1173. package/python3.6.2/lib/python3.6/test/inspect_fodder2.py +139 -0
  1174. package/python3.6.2/lib/python3.6/test/keycert.passwd.pem +33 -0
  1175. package/python3.6.2/lib/python3.6/test/keycert.pem +31 -0
  1176. package/python3.6.2/lib/python3.6/test/keycert2.pem +31 -0
  1177. package/python3.6.2/lib/python3.6/test/keycert3.pem +73 -0
  1178. package/python3.6.2/lib/python3.6/test/keycert4.pem +73 -0
  1179. package/python3.6.2/lib/python3.6/test/leakers/README.txt +32 -0
  1180. package/python3.6.2/lib/python3.6/test/leakers/__init__.py +0 -0
  1181. package/python3.6.2/lib/python3.6/test/leakers/test_ctypes.py +15 -0
  1182. package/python3.6.2/lib/python3.6/test/leakers/test_selftype.py +13 -0
  1183. package/python3.6.2/lib/python3.6/test/libregrtest/__init__.py +5 -0
  1184. package/python3.6.2/lib/python3.6/test/libregrtest/cmdline.py +387 -0
  1185. package/python3.6.2/lib/python3.6/test/libregrtest/main.py +584 -0
  1186. package/python3.6.2/lib/python3.6/test/libregrtest/refleak.py +294 -0
  1187. package/python3.6.2/lib/python3.6/test/libregrtest/runtest.py +254 -0
  1188. package/python3.6.2/lib/python3.6/test/libregrtest/runtest_mp.py +244 -0
  1189. package/python3.6.2/lib/python3.6/test/libregrtest/save_env.py +284 -0
  1190. package/python3.6.2/lib/python3.6/test/libregrtest/setup.py +140 -0
  1191. package/python3.6.2/lib/python3.6/test/list_tests.py +618 -0
  1192. package/python3.6.2/lib/python3.6/test/lock_tests.py +936 -0
  1193. package/python3.6.2/lib/python3.6/test/mailcap.txt +39 -0
  1194. package/python3.6.2/lib/python3.6/test/make_ssl_certs.py +216 -0
  1195. package/python3.6.2/lib/python3.6/test/mapping_tests.py +657 -0
  1196. package/python3.6.2/lib/python3.6/test/math_testcases.txt +633 -0
  1197. package/python3.6.2/lib/python3.6/test/memory_watchdog.py +28 -0
  1198. package/python3.6.2/lib/python3.6/test/mime.types +1445 -0
  1199. package/python3.6.2/lib/python3.6/test/mock_socket.py +159 -0
  1200. package/python3.6.2/lib/python3.6/test/mod_generics_cache.py +53 -0
  1201. package/python3.6.2/lib/python3.6/test/mp_fork_bomb.py +18 -0
  1202. package/python3.6.2/lib/python3.6/test/mp_preload.py +18 -0
  1203. package/python3.6.2/lib/python3.6/test/multibytecodec_support.py +384 -0
  1204. package/python3.6.2/lib/python3.6/test/nokia.pem +31 -0
  1205. package/python3.6.2/lib/python3.6/test/nullbytecert.pem +90 -0
  1206. package/python3.6.2/lib/python3.6/test/nullcert.pem +0 -0
  1207. package/python3.6.2/lib/python3.6/test/outstanding_bugs.py +18 -0
  1208. package/python3.6.2/lib/python3.6/test/pickletester.py +2922 -0
  1209. package/python3.6.2/lib/python3.6/test/profilee.py +115 -0
  1210. package/python3.6.2/lib/python3.6/test/pstats.pck +0 -0
  1211. package/python3.6.2/lib/python3.6/test/pycacert.pem +78 -0
  1212. package/python3.6.2/lib/python3.6/test/pycakey.pem +28 -0
  1213. package/python3.6.2/lib/python3.6/test/pyclbr_input.py +33 -0
  1214. package/python3.6.2/lib/python3.6/test/pydoc_mod.py +37 -0
  1215. package/python3.6.2/lib/python3.6/test/pydocfodder.py +216 -0
  1216. package/python3.6.2/lib/python3.6/test/pystone.py +277 -0
  1217. package/python3.6.2/lib/python3.6/test/pythoninfo.py +486 -0
  1218. package/python3.6.2/lib/python3.6/test/randv2_32.pck +633 -0
  1219. package/python3.6.2/lib/python3.6/test/randv2_64.pck +633 -0
  1220. package/python3.6.2/lib/python3.6/test/randv3.pck +633 -0
  1221. package/python3.6.2/lib/python3.6/test/re_tests.py +670 -0
  1222. package/python3.6.2/lib/python3.6/test/regrtest.py +50 -0
  1223. package/python3.6.2/lib/python3.6/test/relimport.py +1 -0
  1224. package/python3.6.2/lib/python3.6/test/reperf.py +23 -0
  1225. package/python3.6.2/lib/python3.6/test/revocation.crl +11 -0
  1226. package/python3.6.2/lib/python3.6/test/sample_doctest.py +76 -0
  1227. package/python3.6.2/lib/python3.6/test/sample_doctest_no_docstrings.py +12 -0
  1228. package/python3.6.2/lib/python3.6/test/sample_doctest_no_doctests.py +15 -0
  1229. package/python3.6.2/lib/python3.6/test/selfsigned_pythontestdotnet.pem +16 -0
  1230. package/python3.6.2/lib/python3.6/test/seq_tests.py +414 -0
  1231. package/python3.6.2/lib/python3.6/test/sgml_input.html +212 -0
  1232. package/python3.6.2/lib/python3.6/test/signalinterproctester.py +84 -0
  1233. package/python3.6.2/lib/python3.6/test/sndhdrdata/README +5 -0
  1234. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.8svx +0 -0
  1235. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.aifc +0 -0
  1236. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.aiff +0 -0
  1237. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.au +0 -0
  1238. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.hcom +0 -0
  1239. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.sndt +0 -0
  1240. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.voc +0 -0
  1241. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.wav +0 -0
  1242. package/python3.6.2/lib/python3.6/test/sortperf.py +169 -0
  1243. package/python3.6.2/lib/python3.6/test/ssl_cert.pem +15 -0
  1244. package/python3.6.2/lib/python3.6/test/ssl_key.passwd.pem +18 -0
  1245. package/python3.6.2/lib/python3.6/test/ssl_key.pem +16 -0
  1246. package/python3.6.2/lib/python3.6/test/ssl_servers.py +209 -0
  1247. package/python3.6.2/lib/python3.6/test/ssltests.py +37 -0
  1248. package/python3.6.2/lib/python3.6/test/string_tests.py +1383 -0
  1249. package/python3.6.2/lib/python3.6/test/subprocessdata/fd_status.py +34 -0
  1250. package/python3.6.2/lib/python3.6/test/subprocessdata/input_reader.py +7 -0
  1251. package/python3.6.2/lib/python3.6/test/subprocessdata/qcat.py +7 -0
  1252. package/python3.6.2/lib/python3.6/test/subprocessdata/qgrep.py +10 -0
  1253. package/python3.6.2/lib/python3.6/test/subprocessdata/sigchild_ignore.py +15 -0
  1254. package/python3.6.2/lib/python3.6/test/support/__init__.py +2706 -0
  1255. package/python3.6.2/lib/python3.6/test/support/script_helper.py +259 -0
  1256. package/python3.6.2/lib/python3.6/test/test___all__.py +109 -0
  1257. package/python3.6.2/lib/python3.6/test/test___future__.py +61 -0
  1258. package/python3.6.2/lib/python3.6/test/test__locale.py +193 -0
  1259. package/python3.6.2/lib/python3.6/test/test__opcode.py +20 -0
  1260. package/python3.6.2/lib/python3.6/test/test__osx_support.py +276 -0
  1261. package/python3.6.2/lib/python3.6/test/test_abc.py +420 -0
  1262. package/python3.6.2/lib/python3.6/test/test_abstract_numbers.py +44 -0
  1263. package/python3.6.2/lib/python3.6/test/test_aifc.py +399 -0
  1264. package/python3.6.2/lib/python3.6/test/test_argparse.py +5006 -0
  1265. package/python3.6.2/lib/python3.6/test/test_array.py +1388 -0
  1266. package/python3.6.2/lib/python3.6/test/test_asdl_parser.py +122 -0
  1267. package/python3.6.2/lib/python3.6/test/test_ast.py +1170 -0
  1268. package/python3.6.2/lib/python3.6/test/test_asyncgen.py +1044 -0
  1269. package/python3.6.2/lib/python3.6/test/test_asynchat.py +308 -0
  1270. package/python3.6.2/lib/python3.6/test/test_asyncio/__init__.py +10 -0
  1271. package/python3.6.2/lib/python3.6/test/test_asyncio/__main__.py +4 -0
  1272. package/python3.6.2/lib/python3.6/test/test_asyncio/echo.py +8 -0
  1273. package/python3.6.2/lib/python3.6/test/test_asyncio/echo2.py +6 -0
  1274. package/python3.6.2/lib/python3.6/test/test_asyncio/echo3.py +11 -0
  1275. package/python3.6.2/lib/python3.6/test/test_asyncio/keycert3.pem +73 -0
  1276. package/python3.6.2/lib/python3.6/test/test_asyncio/pycacert.pem +78 -0
  1277. package/python3.6.2/lib/python3.6/test/test_asyncio/ssl_cert.pem +15 -0
  1278. package/python3.6.2/lib/python3.6/test/test_asyncio/ssl_key.pem +16 -0
  1279. package/python3.6.2/lib/python3.6/test/test_asyncio/test_base_events.py +1761 -0
  1280. package/python3.6.2/lib/python3.6/test/test_asyncio/test_events.py +2791 -0
  1281. package/python3.6.2/lib/python3.6/test/test_asyncio/test_futures.py +692 -0
  1282. package/python3.6.2/lib/python3.6/test/test_asyncio/test_locks.py +943 -0
  1283. package/python3.6.2/lib/python3.6/test/test_asyncio/test_pep492.py +232 -0
  1284. package/python3.6.2/lib/python3.6/test/test_asyncio/test_proactor_events.py +593 -0
  1285. package/python3.6.2/lib/python3.6/test/test_asyncio/test_queues.py +643 -0
  1286. package/python3.6.2/lib/python3.6/test/test_asyncio/test_selector_events.py +1833 -0
  1287. package/python3.6.2/lib/python3.6/test/test_asyncio/test_sslproto.py +134 -0
  1288. package/python3.6.2/lib/python3.6/test/test_asyncio/test_streams.py +868 -0
  1289. package/python3.6.2/lib/python3.6/test/test_asyncio/test_subprocess.py +532 -0
  1290. package/python3.6.2/lib/python3.6/test/test_asyncio/test_tasks.py +2598 -0
  1291. package/python3.6.2/lib/python3.6/test/test_asyncio/test_transports.py +91 -0
  1292. package/python3.6.2/lib/python3.6/test/test_asyncio/test_unix_events.py +1621 -0
  1293. package/python3.6.2/lib/python3.6/test/test_asyncio/test_windows_events.py +164 -0
  1294. package/python3.6.2/lib/python3.6/test/test_asyncio/test_windows_utils.py +182 -0
  1295. package/python3.6.2/lib/python3.6/test/test_asyncore.py +847 -0
  1296. package/python3.6.2/lib/python3.6/test/test_atexit.py +192 -0
  1297. package/python3.6.2/lib/python3.6/test/test_audioop.py +565 -0
  1298. package/python3.6.2/lib/python3.6/test/test_augassign.py +326 -0
  1299. package/python3.6.2/lib/python3.6/test/test_base64.py +681 -0
  1300. package/python3.6.2/lib/python3.6/test/test_baseexception.py +183 -0
  1301. package/python3.6.2/lib/python3.6/test/test_bigaddrspace.py +101 -0
  1302. package/python3.6.2/lib/python3.6/test/test_bigmem.py +1256 -0
  1303. package/python3.6.2/lib/python3.6/test/test_binascii.py +373 -0
  1304. package/python3.6.2/lib/python3.6/test/test_binhex.py +55 -0
  1305. package/python3.6.2/lib/python3.6/test/test_binop.py +441 -0
  1306. package/python3.6.2/lib/python3.6/test/test_bisect.py +328 -0
  1307. package/python3.6.2/lib/python3.6/test/test_bool.py +368 -0
  1308. package/python3.6.2/lib/python3.6/test/test_buffer.py +4396 -0
  1309. package/python3.6.2/lib/python3.6/test/test_bufio.py +73 -0
  1310. package/python3.6.2/lib/python3.6/test/test_builtin.py +1851 -0
  1311. package/python3.6.2/lib/python3.6/test/test_bytes.py +1759 -0
  1312. package/python3.6.2/lib/python3.6/test/test_bz2.py +1002 -0
  1313. package/python3.6.2/lib/python3.6/test/test_calendar.py +848 -0
  1314. package/python3.6.2/lib/python3.6/test/test_call.py +302 -0
  1315. package/python3.6.2/lib/python3.6/test/test_capi.py +753 -0
  1316. package/python3.6.2/lib/python3.6/test/test_cgi.py +539 -0
  1317. package/python3.6.2/lib/python3.6/test/test_cgitb.py +67 -0
  1318. package/python3.6.2/lib/python3.6/test/test_charmapcodec.py +53 -0
  1319. package/python3.6.2/lib/python3.6/test/test_class.py +599 -0
  1320. package/python3.6.2/lib/python3.6/test/test_cmath.py +643 -0
  1321. package/python3.6.2/lib/python3.6/test/test_cmd.py +243 -0
  1322. package/python3.6.2/lib/python3.6/test/test_cmd_line.py +494 -0
  1323. package/python3.6.2/lib/python3.6/test/test_cmd_line_script.py +648 -0
  1324. package/python3.6.2/lib/python3.6/test/test_code.py +367 -0
  1325. package/python3.6.2/lib/python3.6/test/test_code_module.py +154 -0
  1326. package/python3.6.2/lib/python3.6/test/test_codeccallbacks.py +1074 -0
  1327. package/python3.6.2/lib/python3.6/test/test_codecencodings_cn.py +96 -0
  1328. package/python3.6.2/lib/python3.6/test/test_codecencodings_hk.py +22 -0
  1329. package/python3.6.2/lib/python3.6/test/test_codecencodings_iso2022.py +41 -0
  1330. package/python3.6.2/lib/python3.6/test/test_codecencodings_jp.py +126 -0
  1331. package/python3.6.2/lib/python3.6/test/test_codecencodings_kr.py +69 -0
  1332. package/python3.6.2/lib/python3.6/test/test_codecencodings_tw.py +22 -0
  1333. package/python3.6.2/lib/python3.6/test/test_codecmaps_cn.py +26 -0
  1334. package/python3.6.2/lib/python3.6/test/test_codecmaps_hk.py +15 -0
  1335. package/python3.6.2/lib/python3.6/test/test_codecmaps_jp.py +60 -0
  1336. package/python3.6.2/lib/python3.6/test/test_codecmaps_kr.py +37 -0
  1337. package/python3.6.2/lib/python3.6/test/test_codecmaps_tw.py +27 -0
  1338. package/python3.6.2/lib/python3.6/test/test_codecs.py +3272 -0
  1339. package/python3.6.2/lib/python3.6/test/test_codeop.py +299 -0
  1340. package/python3.6.2/lib/python3.6/test/test_collections.py +1926 -0
  1341. package/python3.6.2/lib/python3.6/test/test_colorsys.py +100 -0
  1342. package/python3.6.2/lib/python3.6/test/test_compare.py +124 -0
  1343. package/python3.6.2/lib/python3.6/test/test_compile.py +720 -0
  1344. package/python3.6.2/lib/python3.6/test/test_compileall.py +547 -0
  1345. package/python3.6.2/lib/python3.6/test/test_complex.py +688 -0
  1346. package/python3.6.2/lib/python3.6/test/test_concurrent_futures.py +836 -0
  1347. package/python3.6.2/lib/python3.6/test/test_configparser.py +2096 -0
  1348. package/python3.6.2/lib/python3.6/test/test_contains.py +114 -0
  1349. package/python3.6.2/lib/python3.6/test/test_contextlib.py +990 -0
  1350. package/python3.6.2/lib/python3.6/test/test_copy.py +888 -0
  1351. package/python3.6.2/lib/python3.6/test/test_copyreg.py +126 -0
  1352. package/python3.6.2/lib/python3.6/test/test_coroutines.py +2151 -0
  1353. package/python3.6.2/lib/python3.6/test/test_cprofile.py +98 -0
  1354. package/python3.6.2/lib/python3.6/test/test_crashers.py +37 -0
  1355. package/python3.6.2/lib/python3.6/test/test_crypt.py +45 -0
  1356. package/python3.6.2/lib/python3.6/test/test_csv.py +1175 -0
  1357. package/python3.6.2/lib/python3.6/test/test_ctypes.py +9 -0
  1358. package/python3.6.2/lib/python3.6/test/test_curses.py +549 -0
  1359. package/python3.6.2/lib/python3.6/test/test_datetime.py +57 -0
  1360. package/python3.6.2/lib/python3.6/test/test_dbm.py +192 -0
  1361. package/python3.6.2/lib/python3.6/test/test_dbm_dumb.py +286 -0
  1362. package/python3.6.2/lib/python3.6/test/test_dbm_gnu.py +97 -0
  1363. package/python3.6.2/lib/python3.6/test/test_dbm_ndbm.py +52 -0
  1364. package/python3.6.2/lib/python3.6/test/test_decimal.py +5707 -0
  1365. package/python3.6.2/lib/python3.6/test/test_decorators.py +304 -0
  1366. package/python3.6.2/lib/python3.6/test/test_defaultdict.py +187 -0
  1367. package/python3.6.2/lib/python3.6/test/test_deque.py +1059 -0
  1368. package/python3.6.2/lib/python3.6/test/test_descr.py +5452 -0
  1369. package/python3.6.2/lib/python3.6/test/test_descrtut.py +486 -0
  1370. package/python3.6.2/lib/python3.6/test/test_devpoll.py +145 -0
  1371. package/python3.6.2/lib/python3.6/test/test_dict.py +1217 -0
  1372. package/python3.6.2/lib/python3.6/test/test_dict_version.py +186 -0
  1373. package/python3.6.2/lib/python3.6/test/test_dictcomps.py +86 -0
  1374. package/python3.6.2/lib/python3.6/test/test_dictviews.py +272 -0
  1375. package/python3.6.2/lib/python3.6/test/test_difflib.py +478 -0
  1376. package/python3.6.2/lib/python3.6/test/test_difflib_expect.html +526 -0
  1377. package/python3.6.2/lib/python3.6/test/test_dis.py +960 -0
  1378. package/python3.6.2/lib/python3.6/test/test_distutils.py +18 -0
  1379. package/python3.6.2/lib/python3.6/test/test_doctest.py +2962 -0
  1380. package/python3.6.2/lib/python3.6/test/test_doctest.txt +17 -0
  1381. package/python3.6.2/lib/python3.6/test/test_doctest2.py +123 -0
  1382. package/python3.6.2/lib/python3.6/test/test_doctest2.txt +14 -0
  1383. package/python3.6.2/lib/python3.6/test/test_doctest3.txt +5 -0
  1384. package/python3.6.2/lib/python3.6/test/test_doctest4.txt +11 -0
  1385. package/python3.6.2/lib/python3.6/test/test_docxmlrpc.py +198 -0
  1386. package/python3.6.2/lib/python3.6/test/test_dtrace.py +178 -0
  1387. package/python3.6.2/lib/python3.6/test/test_dummy_thread.py +256 -0
  1388. package/python3.6.2/lib/python3.6/test/test_dummy_threading.py +60 -0
  1389. package/python3.6.2/lib/python3.6/test/test_dynamic.py +138 -0
  1390. package/python3.6.2/lib/python3.6/test/test_dynamicclassattribute.py +300 -0
  1391. package/python3.6.2/lib/python3.6/test/test_eintr.py +22 -0
  1392. package/python3.6.2/lib/python3.6/test/test_email/__init__.py +166 -0
  1393. package/python3.6.2/lib/python3.6/test/test_email/__main__.py +4 -0
  1394. package/python3.6.2/lib/python3.6/test/test_email/data/PyBanner048.gif +0 -0
  1395. package/python3.6.2/lib/python3.6/test/test_email/data/audiotest.au +0 -0
  1396. package/python3.6.2/lib/python3.6/test/test_email/data/msg_01.txt +19 -0
  1397. package/python3.6.2/lib/python3.6/test/test_email/data/msg_02.txt +136 -0
  1398. package/python3.6.2/lib/python3.6/test/test_email/data/msg_03.txt +16 -0
  1399. package/python3.6.2/lib/python3.6/test/test_email/data/msg_04.txt +37 -0
  1400. package/python3.6.2/lib/python3.6/test/test_email/data/msg_05.txt +28 -0
  1401. package/python3.6.2/lib/python3.6/test/test_email/data/msg_06.txt +33 -0
  1402. package/python3.6.2/lib/python3.6/test/test_email/data/msg_07.txt +83 -0
  1403. package/python3.6.2/lib/python3.6/test/test_email/data/msg_08.txt +24 -0
  1404. package/python3.6.2/lib/python3.6/test/test_email/data/msg_09.txt +24 -0
  1405. package/python3.6.2/lib/python3.6/test/test_email/data/msg_10.txt +39 -0
  1406. package/python3.6.2/lib/python3.6/test/test_email/data/msg_11.txt +7 -0
  1407. package/python3.6.2/lib/python3.6/test/test_email/data/msg_12.txt +36 -0
  1408. package/python3.6.2/lib/python3.6/test/test_email/data/msg_12a.txt +38 -0
  1409. package/python3.6.2/lib/python3.6/test/test_email/data/msg_13.txt +94 -0
  1410. package/python3.6.2/lib/python3.6/test/test_email/data/msg_14.txt +23 -0
  1411. package/python3.6.2/lib/python3.6/test/test_email/data/msg_15.txt +52 -0
  1412. package/python3.6.2/lib/python3.6/test/test_email/data/msg_16.txt +123 -0
  1413. package/python3.6.2/lib/python3.6/test/test_email/data/msg_17.txt +12 -0
  1414. package/python3.6.2/lib/python3.6/test/test_email/data/msg_18.txt +6 -0
  1415. package/python3.6.2/lib/python3.6/test/test_email/data/msg_19.txt +43 -0
  1416. package/python3.6.2/lib/python3.6/test/test_email/data/msg_20.txt +22 -0
  1417. package/python3.6.2/lib/python3.6/test/test_email/data/msg_21.txt +20 -0
  1418. package/python3.6.2/lib/python3.6/test/test_email/data/msg_22.txt +46 -0
  1419. package/python3.6.2/lib/python3.6/test/test_email/data/msg_23.txt +8 -0
  1420. package/python3.6.2/lib/python3.6/test/test_email/data/msg_24.txt +10 -0
  1421. package/python3.6.2/lib/python3.6/test/test_email/data/msg_25.txt +117 -0
  1422. package/python3.6.2/lib/python3.6/test/test_email/data/msg_26.txt +46 -0
  1423. package/python3.6.2/lib/python3.6/test/test_email/data/msg_27.txt +15 -0
  1424. package/python3.6.2/lib/python3.6/test/test_email/data/msg_28.txt +25 -0
  1425. package/python3.6.2/lib/python3.6/test/test_email/data/msg_29.txt +22 -0
  1426. package/python3.6.2/lib/python3.6/test/test_email/data/msg_30.txt +23 -0
  1427. package/python3.6.2/lib/python3.6/test/test_email/data/msg_31.txt +15 -0
  1428. package/python3.6.2/lib/python3.6/test/test_email/data/msg_32.txt +14 -0
  1429. package/python3.6.2/lib/python3.6/test/test_email/data/msg_33.txt +29 -0
  1430. package/python3.6.2/lib/python3.6/test/test_email/data/msg_34.txt +19 -0
  1431. package/python3.6.2/lib/python3.6/test/test_email/data/msg_35.txt +4 -0
  1432. package/python3.6.2/lib/python3.6/test/test_email/data/msg_36.txt +40 -0
  1433. package/python3.6.2/lib/python3.6/test/test_email/data/msg_37.txt +22 -0
  1434. package/python3.6.2/lib/python3.6/test/test_email/data/msg_38.txt +101 -0
  1435. package/python3.6.2/lib/python3.6/test/test_email/data/msg_39.txt +83 -0
  1436. package/python3.6.2/lib/python3.6/test/test_email/data/msg_40.txt +10 -0
  1437. package/python3.6.2/lib/python3.6/test/test_email/data/msg_41.txt +8 -0
  1438. package/python3.6.2/lib/python3.6/test/test_email/data/msg_42.txt +20 -0
  1439. package/python3.6.2/lib/python3.6/test/test_email/data/msg_43.txt +217 -0
  1440. package/python3.6.2/lib/python3.6/test/test_email/data/msg_44.txt +33 -0
  1441. package/python3.6.2/lib/python3.6/test/test_email/data/msg_45.txt +33 -0
  1442. package/python3.6.2/lib/python3.6/test/test_email/data/msg_46.txt +23 -0
  1443. package/python3.6.2/lib/python3.6/test/test_email/test__encoded_words.py +192 -0
  1444. package/python3.6.2/lib/python3.6/test/test_email/test__header_value_parser.py +2723 -0
  1445. package/python3.6.2/lib/python3.6/test/test_email/test_asian_codecs.py +81 -0
  1446. package/python3.6.2/lib/python3.6/test/test_email/test_contentmanager.py +796 -0
  1447. package/python3.6.2/lib/python3.6/test/test_email/test_defect_handling.py +320 -0
  1448. package/python3.6.2/lib/python3.6/test/test_email/test_email.py +5402 -0
  1449. package/python3.6.2/lib/python3.6/test/test_email/test_generator.py +296 -0
  1450. package/python3.6.2/lib/python3.6/test/test_email/test_headerregistry.py +1653 -0
  1451. package/python3.6.2/lib/python3.6/test/test_email/test_inversion.py +70 -0
  1452. package/python3.6.2/lib/python3.6/test/test_email/test_message.py +803 -0
  1453. package/python3.6.2/lib/python3.6/test/test_email/test_parser.py +110 -0
  1454. package/python3.6.2/lib/python3.6/test/test_email/test_pickleable.py +76 -0
  1455. package/python3.6.2/lib/python3.6/test/test_email/test_policy.py +346 -0
  1456. package/python3.6.2/lib/python3.6/test/test_email/test_utils.py +163 -0
  1457. package/python3.6.2/lib/python3.6/test/test_email/torture_test.py +133 -0
  1458. package/python3.6.2/lib/python3.6/test/test_ensurepip.py +310 -0
  1459. package/python3.6.2/lib/python3.6/test/test_enum.py +2618 -0
  1460. package/python3.6.2/lib/python3.6/test/test_enumerate.py +269 -0
  1461. package/python3.6.2/lib/python3.6/test/test_eof.py +28 -0
  1462. package/python3.6.2/lib/python3.6/test/test_epoll.py +255 -0
  1463. package/python3.6.2/lib/python3.6/test/test_errno.py +35 -0
  1464. package/python3.6.2/lib/python3.6/test/test_exception_hierarchy.py +204 -0
  1465. package/python3.6.2/lib/python3.6/test/test_exception_variations.py +176 -0
  1466. package/python3.6.2/lib/python3.6/test/test_exceptions.py +1288 -0
  1467. package/python3.6.2/lib/python3.6/test/test_extcall.py +465 -0
  1468. package/python3.6.2/lib/python3.6/test/test_faulthandler.py +817 -0
  1469. package/python3.6.2/lib/python3.6/test/test_fcntl.py +152 -0
  1470. package/python3.6.2/lib/python3.6/test/test_file.py +329 -0
  1471. package/python3.6.2/lib/python3.6/test/test_file_eintr.py +252 -0
  1472. package/python3.6.2/lib/python3.6/test/test_filecmp.py +217 -0
  1473. package/python3.6.2/lib/python3.6/test/test_fileinput.py +1015 -0
  1474. package/python3.6.2/lib/python3.6/test/test_fileio.py +595 -0
  1475. package/python3.6.2/lib/python3.6/test/test_finalization.py +519 -0
  1476. package/python3.6.2/lib/python3.6/test/test_float.py +1422 -0
  1477. package/python3.6.2/lib/python3.6/test/test_flufl.py +22 -0
  1478. package/python3.6.2/lib/python3.6/test/test_fnmatch.py +128 -0
  1479. package/python3.6.2/lib/python3.6/test/test_fork1.py +112 -0
  1480. package/python3.6.2/lib/python3.6/test/test_format.py +494 -0
  1481. package/python3.6.2/lib/python3.6/test/test_fractions.py +635 -0
  1482. package/python3.6.2/lib/python3.6/test/test_frame.py +165 -0
  1483. package/python3.6.2/lib/python3.6/test/test_fstring.py +1038 -0
  1484. package/python3.6.2/lib/python3.6/test/test_ftplib.py +1091 -0
  1485. package/python3.6.2/lib/python3.6/test/test_funcattrs.py +377 -0
  1486. package/python3.6.2/lib/python3.6/test/test_functools.py +2083 -0
  1487. package/python3.6.2/lib/python3.6/test/test_future.py +108 -0
  1488. package/python3.6.2/lib/python3.6/test/test_future3.py +26 -0
  1489. package/python3.6.2/lib/python3.6/test/test_future4.py +6 -0
  1490. package/python3.6.2/lib/python3.6/test/test_future5.py +21 -0
  1491. package/python3.6.2/lib/python3.6/test/test_gc.py +1031 -0
  1492. package/python3.6.2/lib/python3.6/test/test_gdb.py +936 -0
  1493. package/python3.6.2/lib/python3.6/test/test_generator_stop.py +34 -0
  1494. package/python3.6.2/lib/python3.6/test/test_generators.py +2232 -0
  1495. package/python3.6.2/lib/python3.6/test/test_genericpath.py +537 -0
  1496. package/python3.6.2/lib/python3.6/test/test_genexps.py +285 -0
  1497. package/python3.6.2/lib/python3.6/test/test_getargs2.py +958 -0
  1498. package/python3.6.2/lib/python3.6/test/test_getopt.py +184 -0
  1499. package/python3.6.2/lib/python3.6/test/test_getpass.py +163 -0
  1500. package/python3.6.2/lib/python3.6/test/test_gettext.py +770 -0
  1501. package/python3.6.2/lib/python3.6/test/test_glob.py +317 -0
  1502. package/python3.6.2/lib/python3.6/test/test_global.py +61 -0
  1503. package/python3.6.2/lib/python3.6/test/test_grammar.py +1417 -0
  1504. package/python3.6.2/lib/python3.6/test/test_grp.py +108 -0
  1505. package/python3.6.2/lib/python3.6/test/test_gzip.py +672 -0
  1506. package/python3.6.2/lib/python3.6/test/test_hash.py +346 -0
  1507. package/python3.6.2/lib/python3.6/test/test_hashlib.py +954 -0
  1508. package/python3.6.2/lib/python3.6/test/test_heapq.py +427 -0
  1509. package/python3.6.2/lib/python3.6/test/test_hmac.py +496 -0
  1510. package/python3.6.2/lib/python3.6/test/test_html.py +103 -0
  1511. package/python3.6.2/lib/python3.6/test/test_htmlparser.py +778 -0
  1512. package/python3.6.2/lib/python3.6/test/test_http_cookiejar.py +1772 -0
  1513. package/python3.6.2/lib/python3.6/test/test_http_cookies.py +472 -0
  1514. package/python3.6.2/lib/python3.6/test/test_httplib.py +1903 -0
  1515. package/python3.6.2/lib/python3.6/test/test_httpservers.py +1060 -0
  1516. package/python3.6.2/lib/python3.6/test/test_idle.py +23 -0
  1517. package/python3.6.2/lib/python3.6/test/test_imaplib.py +998 -0
  1518. package/python3.6.2/lib/python3.6/test/test_imghdr.py +140 -0
  1519. package/python3.6.2/lib/python3.6/test/test_imp.py +416 -0
  1520. package/python3.6.2/lib/python3.6/test/test_import/__init__.py +1199 -0
  1521. package/python3.6.2/lib/python3.6/test/test_import/__main__.py +3 -0
  1522. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/basic.py +2 -0
  1523. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/basic2.py +1 -0
  1524. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/indirect.py +1 -0
  1525. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/rebinding.py +3 -0
  1526. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/rebinding2.py +3 -0
  1527. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpackage.py +2 -0
  1528. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpkg/subpackage2.py +2 -0
  1529. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpkg/util.py +2 -0
  1530. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/util.py +2 -0
  1531. package/python3.6.2/lib/python3.6/test/test_import/data/package/__init__.py +2 -0
  1532. package/python3.6.2/lib/python3.6/test/test_import/data/package/submodule.py +0 -0
  1533. package/python3.6.2/lib/python3.6/test/test_import/data/package2/submodule1.py +3 -0
  1534. package/python3.6.2/lib/python3.6/test/test_import/data/package2/submodule2.py +0 -0
  1535. package/python3.6.2/lib/python3.6/test/test_importlib/__init__.py +5 -0
  1536. package/python3.6.2/lib/python3.6/test/test_importlib/__main__.py +4 -0
  1537. package/python3.6.2/lib/python3.6/test/test_importlib/abc.py +94 -0
  1538. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/__init__.py +5 -0
  1539. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/__main__.py +4 -0
  1540. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/test_finder.py +90 -0
  1541. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/test_loader.py +108 -0
  1542. package/python3.6.2/lib/python3.6/test/test_importlib/extension/__init__.py +5 -0
  1543. package/python3.6.2/lib/python3.6/test/test_importlib/extension/__main__.py +4 -0
  1544. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_case_sensitivity.py +46 -0
  1545. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_finder.py +44 -0
  1546. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_loader.py +277 -0
  1547. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_path_hook.py +31 -0
  1548. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/__init__.py +5 -0
  1549. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/__main__.py +4 -0
  1550. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/test_finder.py +84 -0
  1551. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/test_loader.py +225 -0
  1552. package/python3.6.2/lib/python3.6/test/test_importlib/import_/__init__.py +5 -0
  1553. package/python3.6.2/lib/python3.6/test/test_importlib/import_/__main__.py +4 -0
  1554. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test___loader__.py +75 -0
  1555. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test___package__.py +163 -0
  1556. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_api.py +119 -0
  1557. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_caching.py +93 -0
  1558. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_fromlist.py +175 -0
  1559. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_meta_path.py +125 -0
  1560. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_packages.py +110 -0
  1561. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_path.py +257 -0
  1562. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_relative_imports.py +232 -0
  1563. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/both_portions/foo/one.py +1 -0
  1564. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/both_portions/foo/two.py +1 -0
  1565. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/missing_directory.zip +0 -0
  1566. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty +0 -0
  1567. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py +1 -0
  1568. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/nested_portion1.zip +0 -0
  1569. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py +0 -0
  1570. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py +1 -0
  1571. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/portion1/foo/one.py +1 -0
  1572. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/portion2/foo/two.py +1 -0
  1573. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project1/parent/child/one.py +1 -0
  1574. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project2/parent/child/two.py +1 -0
  1575. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project3/parent/child/three.py +1 -0
  1576. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/top_level_portion1.zip +0 -0
  1577. package/python3.6.2/lib/python3.6/test/test_importlib/source/__init__.py +5 -0
  1578. package/python3.6.2/lib/python3.6/test/test_importlib/source/__main__.py +4 -0
  1579. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_case_sensitivity.py +85 -0
  1580. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_file_loader.py +602 -0
  1581. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_finder.py +236 -0
  1582. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_path_hook.py +41 -0
  1583. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_source_encoding.py +175 -0
  1584. package/python3.6.2/lib/python3.6/test/test_importlib/test_abc.py +953 -0
  1585. package/python3.6.2/lib/python3.6/test/test_importlib/test_api.py +449 -0
  1586. package/python3.6.2/lib/python3.6/test/test_importlib/test_lazy.py +145 -0
  1587. package/python3.6.2/lib/python3.6/test/test_importlib/test_locks.py +175 -0
  1588. package/python3.6.2/lib/python3.6/test/test_importlib/test_namespace_pkgs.py +321 -0
  1589. package/python3.6.2/lib/python3.6/test/test_importlib/test_spec.py +819 -0
  1590. package/python3.6.2/lib/python3.6/test/test_importlib/test_util.py +805 -0
  1591. package/python3.6.2/lib/python3.6/test/test_importlib/test_windows.py +109 -0
  1592. package/python3.6.2/lib/python3.6/test/test_importlib/util.py +388 -0
  1593. package/python3.6.2/lib/python3.6/test/test_index.py +275 -0
  1594. package/python3.6.2/lib/python3.6/test/test_inspect.py +3725 -0
  1595. package/python3.6.2/lib/python3.6/test/test_int.py +518 -0
  1596. package/python3.6.2/lib/python3.6/test/test_int_literal.py +143 -0
  1597. package/python3.6.2/lib/python3.6/test/test_io.py +4054 -0
  1598. package/python3.6.2/lib/python3.6/test/test_ioctl.py +91 -0
  1599. package/python3.6.2/lib/python3.6/test/test_ipaddress.py +1972 -0
  1600. package/python3.6.2/lib/python3.6/test/test_isinstance.py +280 -0
  1601. package/python3.6.2/lib/python3.6/test/test_iter.py +1016 -0
  1602. package/python3.6.2/lib/python3.6/test/test_iterlen.py +228 -0
  1603. package/python3.6.2/lib/python3.6/test/test_itertools.py +2340 -0
  1604. package/python3.6.2/lib/python3.6/test/test_json/__init__.py +56 -0
  1605. package/python3.6.2/lib/python3.6/test/test_json/__main__.py +4 -0
  1606. package/python3.6.2/lib/python3.6/test/test_json/test_decode.py +97 -0
  1607. package/python3.6.2/lib/python3.6/test/test_json/test_default.py +12 -0
  1608. package/python3.6.2/lib/python3.6/test/test_json/test_dump.py +68 -0
  1609. package/python3.6.2/lib/python3.6/test/test_json/test_encode_basestring_ascii.py +48 -0
  1610. package/python3.6.2/lib/python3.6/test/test_json/test_enum.py +120 -0
  1611. package/python3.6.2/lib/python3.6/test/test_json/test_fail.py +216 -0
  1612. package/python3.6.2/lib/python3.6/test/test_json/test_float.py +33 -0
  1613. package/python3.6.2/lib/python3.6/test/test_json/test_indent.py +67 -0
  1614. package/python3.6.2/lib/python3.6/test/test_json/test_pass1.py +75 -0
  1615. package/python3.6.2/lib/python3.6/test/test_json/test_pass2.py +18 -0
  1616. package/python3.6.2/lib/python3.6/test/test_json/test_pass3.py +24 -0
  1617. package/python3.6.2/lib/python3.6/test/test_json/test_recursion.py +100 -0
  1618. package/python3.6.2/lib/python3.6/test/test_json/test_scanstring.py +141 -0
  1619. package/python3.6.2/lib/python3.6/test/test_json/test_separators.py +50 -0
  1620. package/python3.6.2/lib/python3.6/test/test_json/test_speedups.py +71 -0
  1621. package/python3.6.2/lib/python3.6/test/test_json/test_tool.py +107 -0
  1622. package/python3.6.2/lib/python3.6/test/test_json/test_unicode.py +98 -0
  1623. package/python3.6.2/lib/python3.6/test/test_keyword.py +138 -0
  1624. package/python3.6.2/lib/python3.6/test/test_keywordonlyarg.py +189 -0
  1625. package/python3.6.2/lib/python3.6/test/test_kqueue.py +263 -0
  1626. package/python3.6.2/lib/python3.6/test/test_largefile.py +180 -0
  1627. package/python3.6.2/lib/python3.6/test/test_lib2to3.py +5 -0
  1628. package/python3.6.2/lib/python3.6/test/test_linecache.py +242 -0
  1629. package/python3.6.2/lib/python3.6/test/test_list.py +155 -0
  1630. package/python3.6.2/lib/python3.6/test/test_listcomps.py +148 -0
  1631. package/python3.6.2/lib/python3.6/test/test_locale.py +587 -0
  1632. package/python3.6.2/lib/python3.6/test/test_logging.py +4442 -0
  1633. package/python3.6.2/lib/python3.6/test/test_long.py +1322 -0
  1634. package/python3.6.2/lib/python3.6/test/test_longexp.py +10 -0
  1635. package/python3.6.2/lib/python3.6/test/test_lzma.py +1764 -0
  1636. package/python3.6.2/lib/python3.6/test/test_macpath.py +149 -0
  1637. package/python3.6.2/lib/python3.6/test/test_macurl2path.py +31 -0
  1638. package/python3.6.2/lib/python3.6/test/test_mailbox.py +2288 -0
  1639. package/python3.6.2/lib/python3.6/test/test_mailcap.py +239 -0
  1640. package/python3.6.2/lib/python3.6/test/test_marshal.py +556 -0
  1641. package/python3.6.2/lib/python3.6/test/test_math.py +1422 -0
  1642. package/python3.6.2/lib/python3.6/test/test_memoryio.py +842 -0
  1643. package/python3.6.2/lib/python3.6/test/test_memoryview.py +537 -0
  1644. package/python3.6.2/lib/python3.6/test/test_metaclass.py +265 -0
  1645. package/python3.6.2/lib/python3.6/test/test_mimetypes.py +111 -0
  1646. package/python3.6.2/lib/python3.6/test/test_minidom.py +1574 -0
  1647. package/python3.6.2/lib/python3.6/test/test_mmap.py +803 -0
  1648. package/python3.6.2/lib/python3.6/test/test_module.py +244 -0
  1649. package/python3.6.2/lib/python3.6/test/test_modulefinder.py +337 -0
  1650. package/python3.6.2/lib/python3.6/test/test_msilib.py +99 -0
  1651. package/python3.6.2/lib/python3.6/test/test_multibytecodec.py +270 -0
  1652. package/python3.6.2/lib/python3.6/test/test_multiprocessing_fork.py +13 -0
  1653. package/python3.6.2/lib/python3.6/test/test_multiprocessing_forkserver.py +12 -0
  1654. package/python3.6.2/lib/python3.6/test/test_multiprocessing_main_handling.py +290 -0
  1655. package/python3.6.2/lib/python3.6/test/test_multiprocessing_spawn.py +12 -0
  1656. package/python3.6.2/lib/python3.6/test/test_netrc.py +133 -0
  1657. package/python3.6.2/lib/python3.6/test/test_nis.py +39 -0
  1658. package/python3.6.2/lib/python3.6/test/test_nntplib.py +1581 -0
  1659. package/python3.6.2/lib/python3.6/test/test_normalization.py +108 -0
  1660. package/python3.6.2/lib/python3.6/test/test_ntpath.py +539 -0
  1661. package/python3.6.2/lib/python3.6/test/test_numeric_tower.py +202 -0
  1662. package/python3.6.2/lib/python3.6/test/test_opcodes.py +135 -0
  1663. package/python3.6.2/lib/python3.6/test/test_openpty.py +21 -0
  1664. package/python3.6.2/lib/python3.6/test/test_operator.py +609 -0
  1665. package/python3.6.2/lib/python3.6/test/test_optparse.py +1664 -0
  1666. package/python3.6.2/lib/python3.6/test/test_ordered_dict.py +787 -0
  1667. package/python3.6.2/lib/python3.6/test/test_os.py +3548 -0
  1668. package/python3.6.2/lib/python3.6/test/test_ossaudiodev.py +202 -0
  1669. package/python3.6.2/lib/python3.6/test/test_osx_env.py +34 -0
  1670. package/python3.6.2/lib/python3.6/test/test_parser.py +905 -0
  1671. package/python3.6.2/lib/python3.6/test/test_pathlib.py +2252 -0
  1672. package/python3.6.2/lib/python3.6/test/test_pdb.py +1124 -0
  1673. package/python3.6.2/lib/python3.6/test/test_peepholer.py +325 -0
  1674. package/python3.6.2/lib/python3.6/test/test_pickle.py +514 -0
  1675. package/python3.6.2/lib/python3.6/test/test_pickletools.py +99 -0
  1676. package/python3.6.2/lib/python3.6/test/test_pipes.py +203 -0
  1677. package/python3.6.2/lib/python3.6/test/test_pkg.py +295 -0
  1678. package/python3.6.2/lib/python3.6/test/test_pkgimport.py +80 -0
  1679. package/python3.6.2/lib/python3.6/test/test_pkgutil.py +491 -0
  1680. package/python3.6.2/lib/python3.6/test/test_platform.py +370 -0
  1681. package/python3.6.2/lib/python3.6/test/test_plistlib.py +662 -0
  1682. package/python3.6.2/lib/python3.6/test/test_poll.py +238 -0
  1683. package/python3.6.2/lib/python3.6/test/test_popen.py +65 -0
  1684. package/python3.6.2/lib/python3.6/test/test_poplib.py +520 -0
  1685. package/python3.6.2/lib/python3.6/test/test_posix.py +1298 -0
  1686. package/python3.6.2/lib/python3.6/test/test_posixpath.py +680 -0
  1687. package/python3.6.2/lib/python3.6/test/test_pow.py +123 -0
  1688. package/python3.6.2/lib/python3.6/test/test_pprint.py +1012 -0
  1689. package/python3.6.2/lib/python3.6/test/test_print.py +193 -0
  1690. package/python3.6.2/lib/python3.6/test/test_profile.py +187 -0
  1691. package/python3.6.2/lib/python3.6/test/test_property.py +272 -0
  1692. package/python3.6.2/lib/python3.6/test/test_pstats.py +38 -0
  1693. package/python3.6.2/lib/python3.6/test/test_pty.py +316 -0
  1694. package/python3.6.2/lib/python3.6/test/test_pulldom.py +342 -0
  1695. package/python3.6.2/lib/python3.6/test/test_pwd.py +125 -0
  1696. package/python3.6.2/lib/python3.6/test/test_py_compile.py +127 -0
  1697. package/python3.6.2/lib/python3.6/test/test_pyclbr.py +176 -0
  1698. package/python3.6.2/lib/python3.6/test/test_pydoc.py +1107 -0
  1699. package/python3.6.2/lib/python3.6/test/test_pyexpat.py +733 -0
  1700. package/python3.6.2/lib/python3.6/test/test_queue.py +362 -0
  1701. package/python3.6.2/lib/python3.6/test/test_quopri.py +210 -0
  1702. package/python3.6.2/lib/python3.6/test/test_raise.py +419 -0
  1703. package/python3.6.2/lib/python3.6/test/test_random.py +939 -0
  1704. package/python3.6.2/lib/python3.6/test/test_range.py +693 -0
  1705. package/python3.6.2/lib/python3.6/test/test_re.py +2087 -0
  1706. package/python3.6.2/lib/python3.6/test/test_readline.py +309 -0
  1707. package/python3.6.2/lib/python3.6/test/test_regrtest.py +967 -0
  1708. package/python3.6.2/lib/python3.6/test/test_repl.py +62 -0
  1709. package/python3.6.2/lib/python3.6/test/test_reprlib.py +405 -0
  1710. package/python3.6.2/lib/python3.6/test/test_resource.py +180 -0
  1711. package/python3.6.2/lib/python3.6/test/test_richcmp.py +355 -0
  1712. package/python3.6.2/lib/python3.6/test/test_rlcompleter.py +141 -0
  1713. package/python3.6.2/lib/python3.6/test/test_robotparser.py +335 -0
  1714. package/python3.6.2/lib/python3.6/test/test_runpy.py +749 -0
  1715. package/python3.6.2/lib/python3.6/test/test_sax.py +1273 -0
  1716. package/python3.6.2/lib/python3.6/test/test_sched.py +204 -0
  1717. package/python3.6.2/lib/python3.6/test/test_scope.py +761 -0
  1718. package/python3.6.2/lib/python3.6/test/test_script_helper.py +110 -0
  1719. package/python3.6.2/lib/python3.6/test/test_secrets.py +124 -0
  1720. package/python3.6.2/lib/python3.6/test/test_select.py +82 -0
  1721. package/python3.6.2/lib/python3.6/test/test_selectors.py +526 -0
  1722. package/python3.6.2/lib/python3.6/test/test_set.py +1903 -0
  1723. package/python3.6.2/lib/python3.6/test/test_setcomps.py +151 -0
  1724. package/python3.6.2/lib/python3.6/test/test_shelve.py +228 -0
  1725. package/python3.6.2/lib/python3.6/test/test_shlex.py +318 -0
  1726. package/python3.6.2/lib/python3.6/test/test_shutil.py +1925 -0
  1727. package/python3.6.2/lib/python3.6/test/test_signal.py +1093 -0
  1728. package/python3.6.2/lib/python3.6/test/test_site.py +595 -0
  1729. package/python3.6.2/lib/python3.6/test/test_slice.py +255 -0
  1730. package/python3.6.2/lib/python3.6/test/test_smtpd.py +1013 -0
  1731. package/python3.6.2/lib/python3.6/test/test_smtplib.py +1292 -0
  1732. package/python3.6.2/lib/python3.6/test/test_smtpnet.py +83 -0
  1733. package/python3.6.2/lib/python3.6/test/test_sndhdr.py +37 -0
  1734. package/python3.6.2/lib/python3.6/test/test_socket.py +5648 -0
  1735. package/python3.6.2/lib/python3.6/test/test_socketserver.py +505 -0
  1736. package/python3.6.2/lib/python3.6/test/test_sort.py +265 -0
  1737. package/python3.6.2/lib/python3.6/test/test_source_encoding.py +225 -0
  1738. package/python3.6.2/lib/python3.6/test/test_spwd.py +75 -0
  1739. package/python3.6.2/lib/python3.6/test/test_sqlite.py +24 -0
  1740. package/python3.6.2/lib/python3.6/test/test_ssl.py +3663 -0
  1741. package/python3.6.2/lib/python3.6/test/test_startfile.py +34 -0
  1742. package/python3.6.2/lib/python3.6/test/test_stat.py +234 -0
  1743. package/python3.6.2/lib/python3.6/test/test_statistics.py +1992 -0
  1744. package/python3.6.2/lib/python3.6/test/test_strftime.py +206 -0
  1745. package/python3.6.2/lib/python3.6/test/test_string.py +439 -0
  1746. package/python3.6.2/lib/python3.6/test/test_string_literals.py +249 -0
  1747. package/python3.6.2/lib/python3.6/test/test_stringprep.py +92 -0
  1748. package/python3.6.2/lib/python3.6/test/test_strptime.py +673 -0
  1749. package/python3.6.2/lib/python3.6/test/test_strtod.py +433 -0
  1750. package/python3.6.2/lib/python3.6/test/test_struct.py +756 -0
  1751. package/python3.6.2/lib/python3.6/test/test_structmembers.py +144 -0
  1752. package/python3.6.2/lib/python3.6/test/test_structseq.py +126 -0
  1753. package/python3.6.2/lib/python3.6/test/test_subclassinit.py +284 -0
  1754. package/python3.6.2/lib/python3.6/test/test_subprocess.py +3005 -0
  1755. package/python3.6.2/lib/python3.6/test/test_sunau.py +121 -0
  1756. package/python3.6.2/lib/python3.6/test/test_sundry.py +57 -0
  1757. package/python3.6.2/lib/python3.6/test/test_super.py +347 -0
  1758. package/python3.6.2/lib/python3.6/test/test_support.py +459 -0
  1759. package/python3.6.2/lib/python3.6/test/test_symbol.py +54 -0
  1760. package/python3.6.2/lib/python3.6/test/test_symtable.py +193 -0
  1761. package/python3.6.2/lib/python3.6/test/test_syntax.py +618 -0
  1762. package/python3.6.2/lib/python3.6/test/test_sys.py +1270 -0
  1763. package/python3.6.2/lib/python3.6/test/test_sys_setprofile.py +376 -0
  1764. package/python3.6.2/lib/python3.6/test/test_sys_settrace.py +854 -0
  1765. package/python3.6.2/lib/python3.6/test/test_sysconfig.py +445 -0
  1766. package/python3.6.2/lib/python3.6/test/test_syslog.py +40 -0
  1767. package/python3.6.2/lib/python3.6/test/test_tarfile.py +2635 -0
  1768. package/python3.6.2/lib/python3.6/test/test_tcl.py +715 -0
  1769. package/python3.6.2/lib/python3.6/test/test_telnetlib.py +401 -0
  1770. package/python3.6.2/lib/python3.6/test/test_tempfile.py +1458 -0
  1771. package/python3.6.2/lib/python3.6/test/test_textwrap.py +981 -0
  1772. package/python3.6.2/lib/python3.6/test/test_thread.py +269 -0
  1773. package/python3.6.2/lib/python3.6/test/test_threaded_import.py +254 -0
  1774. package/python3.6.2/lib/python3.6/test/test_threadedtempfile.py +62 -0
  1775. package/python3.6.2/lib/python3.6/test/test_threading.py +1170 -0
  1776. package/python3.6.2/lib/python3.6/test/test_threading_local.py +220 -0
  1777. package/python3.6.2/lib/python3.6/test/test_threadsignals.py +227 -0
  1778. package/python3.6.2/lib/python3.6/test/test_time.py +1000 -0
  1779. package/python3.6.2/lib/python3.6/test/test_timeit.py +381 -0
  1780. package/python3.6.2/lib/python3.6/test/test_timeout.py +303 -0
  1781. package/python3.6.2/lib/python3.6/test/test_tix.py +32 -0
  1782. package/python3.6.2/lib/python3.6/test/test_tk.py +15 -0
  1783. package/python3.6.2/lib/python3.6/test/test_tokenize.py +1590 -0
  1784. package/python3.6.2/lib/python3.6/test/test_tools/__init__.py +24 -0
  1785. package/python3.6.2/lib/python3.6/test/test_tools/__main__.py +4 -0
  1786. package/python3.6.2/lib/python3.6/test/test_tools/test_fixcid.py +92 -0
  1787. package/python3.6.2/lib/python3.6/test/test_tools/test_gprof2html.py +35 -0
  1788. package/python3.6.2/lib/python3.6/test/test_tools/test_i18n.py +72 -0
  1789. package/python3.6.2/lib/python3.6/test/test_tools/test_md5sum.py +76 -0
  1790. package/python3.6.2/lib/python3.6/test/test_tools/test_pdeps.py +32 -0
  1791. package/python3.6.2/lib/python3.6/test/test_tools/test_pindent.py +339 -0
  1792. package/python3.6.2/lib/python3.6/test/test_tools/test_reindent.py +35 -0
  1793. package/python3.6.2/lib/python3.6/test/test_tools/test_sundry.py +53 -0
  1794. package/python3.6.2/lib/python3.6/test/test_tools/test_unparse.py +313 -0
  1795. package/python3.6.2/lib/python3.6/test/test_trace.py +391 -0
  1796. package/python3.6.2/lib/python3.6/test/test_traceback.py +1111 -0
  1797. package/python3.6.2/lib/python3.6/test/test_tracemalloc.py +994 -0
  1798. package/python3.6.2/lib/python3.6/test/test_ttk_guionly.py +34 -0
  1799. package/python3.6.2/lib/python3.6/test/test_ttk_textonly.py +13 -0
  1800. package/python3.6.2/lib/python3.6/test/test_tuple.py +221 -0
  1801. package/python3.6.2/lib/python3.6/test/test_turtle.py +436 -0
  1802. package/python3.6.2/lib/python3.6/test/test_typechecks.py +71 -0
  1803. package/python3.6.2/lib/python3.6/test/test_types.py +1550 -0
  1804. package/python3.6.2/lib/python3.6/test/test_typing.py +2577 -0
  1805. package/python3.6.2/lib/python3.6/test/test_ucn.py +237 -0
  1806. package/python3.6.2/lib/python3.6/test/test_unary.py +53 -0
  1807. package/python3.6.2/lib/python3.6/test/test_unicode.py +2894 -0
  1808. package/python3.6.2/lib/python3.6/test/test_unicode_file.py +140 -0
  1809. package/python3.6.2/lib/python3.6/test/test_unicode_file_functions.py +195 -0
  1810. package/python3.6.2/lib/python3.6/test/test_unicode_identifiers.py +31 -0
  1811. package/python3.6.2/lib/python3.6/test/test_unicodedata.py +316 -0
  1812. package/python3.6.2/lib/python3.6/test/test_unittest.py +16 -0
  1813. package/python3.6.2/lib/python3.6/test/test_univnewlines.py +123 -0
  1814. package/python3.6.2/lib/python3.6/test/test_unpack.py +151 -0
  1815. package/python3.6.2/lib/python3.6/test/test_unpack_ex.py +365 -0
  1816. package/python3.6.2/lib/python3.6/test/test_urllib.py +1572 -0
  1817. package/python3.6.2/lib/python3.6/test/test_urllib2.py +1930 -0
  1818. package/python3.6.2/lib/python3.6/test/test_urllib2_localnet.py +679 -0
  1819. package/python3.6.2/lib/python3.6/test/test_urllib2net.py +329 -0
  1820. package/python3.6.2/lib/python3.6/test/test_urllib_response.py +59 -0
  1821. package/python3.6.2/lib/python3.6/test/test_urllibnet.py +218 -0
  1822. package/python3.6.2/lib/python3.6/test/test_urlparse.py +1122 -0
  1823. package/python3.6.2/lib/python3.6/test/test_userdict.py +220 -0
  1824. package/python3.6.2/lib/python3.6/test/test_userlist.py +63 -0
  1825. package/python3.6.2/lib/python3.6/test/test_userstring.py +44 -0
  1826. package/python3.6.2/lib/python3.6/test/test_utf8source.py +43 -0
  1827. package/python3.6.2/lib/python3.6/test/test_uu.py +260 -0
  1828. package/python3.6.2/lib/python3.6/test/test_uuid.py +511 -0
  1829. package/python3.6.2/lib/python3.6/test/test_venv.py +433 -0
  1830. package/python3.6.2/lib/python3.6/test/test_wait3.py +38 -0
  1831. package/python3.6.2/lib/python3.6/test/test_wait4.py +39 -0
  1832. package/python3.6.2/lib/python3.6/test/test_warnings/__init__.py +1216 -0
  1833. package/python3.6.2/lib/python3.6/test/test_warnings/__main__.py +3 -0
  1834. package/python3.6.2/lib/python3.6/test/test_warnings/data/import_warning.py +3 -0
  1835. package/python3.6.2/lib/python3.6/test/test_warnings/data/stacklevel.py +9 -0
  1836. package/python3.6.2/lib/python3.6/test/test_wave.py +113 -0
  1837. package/python3.6.2/lib/python3.6/test/test_weakref.py +1952 -0
  1838. package/python3.6.2/lib/python3.6/test/test_weakset.py +439 -0
  1839. package/python3.6.2/lib/python3.6/test/test_webbrowser.py +217 -0
  1840. package/python3.6.2/lib/python3.6/test/test_winconsoleio.py +191 -0
  1841. package/python3.6.2/lib/python3.6/test/test_winreg.py +498 -0
  1842. package/python3.6.2/lib/python3.6/test/test_winsound.py +150 -0
  1843. package/python3.6.2/lib/python3.6/test/test_with.py +746 -0
  1844. package/python3.6.2/lib/python3.6/test/test_wsgiref.py +785 -0
  1845. package/python3.6.2/lib/python3.6/test/test_xdrlib.py +77 -0
  1846. package/python3.6.2/lib/python3.6/test/test_xml_dom_minicompat.py +138 -0
  1847. package/python3.6.2/lib/python3.6/test/test_xml_etree.py +3166 -0
  1848. package/python3.6.2/lib/python3.6/test/test_xml_etree_c.py +188 -0
  1849. package/python3.6.2/lib/python3.6/test/test_xmlrpc.py +1415 -0
  1850. package/python3.6.2/lib/python3.6/test/test_xmlrpc_net.py +32 -0
  1851. package/python3.6.2/lib/python3.6/test/test_yield_from.py +1052 -0
  1852. package/python3.6.2/lib/python3.6/test/test_zipapp.py +349 -0
  1853. package/python3.6.2/lib/python3.6/test/test_zipfile.py +2241 -0
  1854. package/python3.6.2/lib/python3.6/test/test_zipfile64.py +155 -0
  1855. package/python3.6.2/lib/python3.6/test/test_zipimport.py +759 -0
  1856. package/python3.6.2/lib/python3.6/test/test_zipimport_support.py +244 -0
  1857. package/python3.6.2/lib/python3.6/test/test_zlib.py +898 -0
  1858. package/python3.6.2/lib/python3.6/test/testcodec.py +48 -0
  1859. package/python3.6.2/lib/python3.6/test/testtar.tar +0 -0
  1860. package/python3.6.2/lib/python3.6/test/tf_inherit_check.py +27 -0
  1861. package/python3.6.2/lib/python3.6/test/threaded_import_hangers.py +45 -0
  1862. package/python3.6.2/lib/python3.6/test/time_hashlib.py +88 -0
  1863. package/python3.6.2/lib/python3.6/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt +13 -0
  1864. package/python3.6.2/lib/python3.6/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt +11 -0
  1865. package/python3.6.2/lib/python3.6/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt +13 -0
  1866. package/python3.6.2/lib/python3.6/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt +12 -0
  1867. package/python3.6.2/lib/python3.6/test/tokenize_tests.txt +189 -0
  1868. package/python3.6.2/lib/python3.6/test/tracedmodules/__init__.py +4 -0
  1869. package/python3.6.2/lib/python3.6/test/tracedmodules/testmod.py +9 -0
  1870. package/python3.6.2/lib/python3.6/test/win_console_handler.py +49 -0
  1871. package/python3.6.2/lib/python3.6/test/wrongcert.pem +32 -0
  1872. package/python3.6.2/lib/python3.6/test/xmltestdata/expat224_utf8_bug.xml +2 -0
  1873. package/python3.6.2/lib/python3.6/test/xmltestdata/simple-ns.xml +7 -0
  1874. package/python3.6.2/lib/python3.6/test/xmltestdata/simple.xml +6 -0
  1875. package/python3.6.2/lib/python3.6/test/xmltestdata/test.xml +115 -0
  1876. package/python3.6.2/lib/python3.6/test/xmltestdata/test.xml.out +115 -0
  1877. package/python3.6.2/lib/python3.6/test/xmltests.py +21 -0
  1878. package/python3.6.2/lib/python3.6/test/zip_cp437_header.zip +0 -0
  1879. package/python3.6.2/lib/python3.6/test/zipdir.zip +0 -0
  1880. package/python3.6.2/lib/python3.6/textwrap.py +488 -0
  1881. package/python3.6.2/lib/python3.6/this.py +28 -0
  1882. package/python3.6.2/lib/python3.6/threading.py +1357 -0
  1883. package/python3.6.2/lib/python3.6/timeit.py +362 -0
  1884. package/python3.6.2/lib/python3.6/tkinter/__init__.py +4002 -0
  1885. package/python3.6.2/lib/python3.6/tkinter/__main__.py +7 -0
  1886. package/python3.6.2/lib/python3.6/tkinter/colorchooser.py +72 -0
  1887. package/python3.6.2/lib/python3.6/tkinter/commondialog.py +55 -0
  1888. package/python3.6.2/lib/python3.6/tkinter/constants.py +110 -0
  1889. package/python3.6.2/lib/python3.6/tkinter/dialog.py +46 -0
  1890. package/python3.6.2/lib/python3.6/tkinter/dnd.py +321 -0
  1891. package/python3.6.2/lib/python3.6/tkinter/filedialog.py +479 -0
  1892. package/python3.6.2/lib/python3.6/tkinter/font.py +232 -0
  1893. package/python3.6.2/lib/python3.6/tkinter/messagebox.py +134 -0
  1894. package/python3.6.2/lib/python3.6/tkinter/scrolledtext.py +54 -0
  1895. package/python3.6.2/lib/python3.6/tkinter/simpledialog.py +423 -0
  1896. package/python3.6.2/lib/python3.6/tkinter/test/README +14 -0
  1897. package/python3.6.2/lib/python3.6/tkinter/test/__init__.py +0 -0
  1898. package/python3.6.2/lib/python3.6/tkinter/test/runtktests.py +69 -0
  1899. package/python3.6.2/lib/python3.6/tkinter/test/support.py +105 -0
  1900. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/__init__.py +0 -0
  1901. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_font.py +96 -0
  1902. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_geometry_managers.py +906 -0
  1903. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_images.py +327 -0
  1904. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_loadtk.py +46 -0
  1905. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_misc.py +55 -0
  1906. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_text.py +47 -0
  1907. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_variables.py +310 -0
  1908. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_widgets.py +1204 -0
  1909. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/__init__.py +0 -0
  1910. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_extensions.py +323 -0
  1911. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_functions.py +461 -0
  1912. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_style.py +92 -0
  1913. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_widgets.py +1707 -0
  1914. package/python3.6.2/lib/python3.6/tkinter/test/widget_tests.py +548 -0
  1915. package/python3.6.2/lib/python3.6/tkinter/tix.py +1946 -0
  1916. package/python3.6.2/lib/python3.6/tkinter/ttk.py +1655 -0
  1917. package/python3.6.2/lib/python3.6/token.py +143 -0
  1918. package/python3.6.2/lib/python3.6/tokenize.py +793 -0
  1919. package/python3.6.2/lib/python3.6/trace.py +742 -0
  1920. package/python3.6.2/lib/python3.6/traceback.py +600 -0
  1921. package/python3.6.2/lib/python3.6/tracemalloc.py +524 -0
  1922. package/python3.6.2/lib/python3.6/tty.py +36 -0
  1923. package/python3.6.2/lib/python3.6/turtle.py +4139 -0
  1924. package/python3.6.2/lib/python3.6/turtledemo/__init__.py +14 -0
  1925. package/python3.6.2/lib/python3.6/turtledemo/__main__.py +386 -0
  1926. package/python3.6.2/lib/python3.6/turtledemo/bytedesign.py +161 -0
  1927. package/python3.6.2/lib/python3.6/turtledemo/chaos.py +59 -0
  1928. package/python3.6.2/lib/python3.6/turtledemo/clock.py +132 -0
  1929. package/python3.6.2/lib/python3.6/turtledemo/colormixer.py +58 -0
  1930. package/python3.6.2/lib/python3.6/turtledemo/forest.py +108 -0
  1931. package/python3.6.2/lib/python3.6/turtledemo/fractalcurves.py +138 -0
  1932. package/python3.6.2/lib/python3.6/turtledemo/lindenmayer.py +119 -0
  1933. package/python3.6.2/lib/python3.6/turtledemo/minimal_hanoi.py +79 -0
  1934. package/python3.6.2/lib/python3.6/turtledemo/nim.py +226 -0
  1935. package/python3.6.2/lib/python3.6/turtledemo/paint.py +54 -0
  1936. package/python3.6.2/lib/python3.6/turtledemo/peace.py +61 -0
  1937. package/python3.6.2/lib/python3.6/turtledemo/penrose.py +181 -0
  1938. package/python3.6.2/lib/python3.6/turtledemo/planet_and_moon.py +111 -0
  1939. package/python3.6.2/lib/python3.6/turtledemo/round_dance.py +86 -0
  1940. package/python3.6.2/lib/python3.6/turtledemo/sorting_animate.py +204 -0
  1941. package/python3.6.2/lib/python3.6/turtledemo/tree.py +63 -0
  1942. package/python3.6.2/lib/python3.6/turtledemo/turtle.cfg +10 -0
  1943. package/python3.6.2/lib/python3.6/turtledemo/two_canvases.py +54 -0
  1944. package/python3.6.2/lib/python3.6/turtledemo/wikipedia.py +65 -0
  1945. package/python3.6.2/lib/python3.6/turtledemo/yinyang.py +49 -0
  1946. package/python3.6.2/lib/python3.6/types.py +266 -0
  1947. package/python3.6.2/lib/python3.6/typing.py +2403 -0
  1948. package/python3.6.2/lib/python3.6/unittest/__init__.py +78 -0
  1949. package/python3.6.2/lib/python3.6/unittest/__main__.py +18 -0
  1950. package/python3.6.2/lib/python3.6/unittest/case.py +1429 -0
  1951. package/python3.6.2/lib/python3.6/unittest/loader.py +508 -0
  1952. package/python3.6.2/lib/python3.6/unittest/main.py +260 -0
  1953. package/python3.6.2/lib/python3.6/unittest/mock.py +2407 -0
  1954. package/python3.6.2/lib/python3.6/unittest/result.py +216 -0
  1955. package/python3.6.2/lib/python3.6/unittest/runner.py +221 -0
  1956. package/python3.6.2/lib/python3.6/unittest/signals.py +71 -0
  1957. package/python3.6.2/lib/python3.6/unittest/suite.py +321 -0
  1958. package/python3.6.2/lib/python3.6/unittest/test/__init__.py +22 -0
  1959. package/python3.6.2/lib/python3.6/unittest/test/__main__.py +18 -0
  1960. package/python3.6.2/lib/python3.6/unittest/test/_test_warnings.py +73 -0
  1961. package/python3.6.2/lib/python3.6/unittest/test/dummy.py +1 -0
  1962. package/python3.6.2/lib/python3.6/unittest/test/support.py +138 -0
  1963. package/python3.6.2/lib/python3.6/unittest/test/test_assertions.py +411 -0
  1964. package/python3.6.2/lib/python3.6/unittest/test/test_break.py +291 -0
  1965. package/python3.6.2/lib/python3.6/unittest/test/test_case.py +1833 -0
  1966. package/python3.6.2/lib/python3.6/unittest/test/test_discovery.py +872 -0
  1967. package/python3.6.2/lib/python3.6/unittest/test/test_functiontestcase.py +148 -0
  1968. package/python3.6.2/lib/python3.6/unittest/test/test_loader.py +1529 -0
  1969. package/python3.6.2/lib/python3.6/unittest/test/test_program.py +414 -0
  1970. package/python3.6.2/lib/python3.6/unittest/test/test_result.py +695 -0
  1971. package/python3.6.2/lib/python3.6/unittest/test/test_runner.py +353 -0
  1972. package/python3.6.2/lib/python3.6/unittest/test/test_setups.py +507 -0
  1973. package/python3.6.2/lib/python3.6/unittest/test/test_skipping.py +260 -0
  1974. package/python3.6.2/lib/python3.6/unittest/test/test_suite.py +447 -0
  1975. package/python3.6.2/lib/python3.6/unittest/test/testmock/__init__.py +17 -0
  1976. package/python3.6.2/lib/python3.6/unittest/test/testmock/__main__.py +18 -0
  1977. package/python3.6.2/lib/python3.6/unittest/test/testmock/support.py +21 -0
  1978. package/python3.6.2/lib/python3.6/unittest/test/testmock/testcallable.py +151 -0
  1979. package/python3.6.2/lib/python3.6/unittest/test/testmock/testhelpers.py +946 -0
  1980. package/python3.6.2/lib/python3.6/unittest/test/testmock/testmagicmethods.py +468 -0
  1981. package/python3.6.2/lib/python3.6/unittest/test/testmock/testmock.py +1569 -0
  1982. package/python3.6.2/lib/python3.6/unittest/test/testmock/testpatch.py +1853 -0
  1983. package/python3.6.2/lib/python3.6/unittest/test/testmock/testsentinel.py +28 -0
  1984. package/python3.6.2/lib/python3.6/unittest/test/testmock/testwith.py +301 -0
  1985. package/python3.6.2/lib/python3.6/unittest/util.py +177 -0
  1986. package/python3.6.2/lib/python3.6/urllib/__init__.py +0 -0
  1987. package/python3.6.2/lib/python3.6/urllib/error.py +77 -0
  1988. package/python3.6.2/lib/python3.6/urllib/parse.py +1021 -0
  1989. package/python3.6.2/lib/python3.6/urllib/request.py +2739 -0
  1990. package/python3.6.2/lib/python3.6/urllib/response.py +80 -0
  1991. package/python3.6.2/lib/python3.6/urllib/robotparser.py +250 -0
  1992. package/python3.6.2/lib/python3.6/uu.py +199 -0
  1993. package/python3.6.2/lib/python3.6/uuid.py +629 -0
  1994. package/python3.6.2/lib/python3.6/venv/__init__.py +425 -0
  1995. package/python3.6.2/lib/python3.6/venv/__main__.py +10 -0
  1996. package/python3.6.2/lib/python3.6/venv/scripts/nt/Activate.ps1 +51 -0
  1997. package/python3.6.2/lib/python3.6/venv/scripts/nt/activate.bat +32 -0
  1998. package/python3.6.2/lib/python3.6/venv/scripts/nt/deactivate.bat +21 -0
  1999. package/python3.6.2/lib/python3.6/warnings.py +526 -0
  2000. package/python3.6.2/lib/python3.6/wave.py +505 -0
  2001. package/python3.6.2/lib/python3.6/weakref.py +632 -0
  2002. package/python3.6.2/lib/python3.6/webbrowser.py +664 -0
  2003. package/python3.6.2/lib/python3.6/wsgiref/__init__.py +23 -0
  2004. package/python3.6.2/lib/python3.6/wsgiref/handlers.py +557 -0
  2005. package/python3.6.2/lib/python3.6/wsgiref/headers.py +184 -0
  2006. package/python3.6.2/lib/python3.6/wsgiref/simple_server.py +164 -0
  2007. package/python3.6.2/lib/python3.6/wsgiref/util.py +165 -0
  2008. package/python3.6.2/lib/python3.6/wsgiref/validate.py +443 -0
  2009. package/python3.6.2/lib/python3.6/xdrlib.py +241 -0
  2010. package/python3.6.2/lib/python3.6/xml/__init__.py +20 -0
  2011. package/python3.6.2/lib/python3.6/xml/dom/NodeFilter.py +27 -0
  2012. package/python3.6.2/lib/python3.6/xml/dom/__init__.py +140 -0
  2013. package/python3.6.2/lib/python3.6/xml/dom/domreg.py +97 -0
  2014. package/python3.6.2/lib/python3.6/xml/dom/expatbuilder.py +965 -0
  2015. package/python3.6.2/lib/python3.6/xml/dom/minicompat.py +109 -0
  2016. package/python3.6.2/lib/python3.6/xml/dom/minidom.py +1981 -0
  2017. package/python3.6.2/lib/python3.6/xml/dom/pulldom.py +342 -0
  2018. package/python3.6.2/lib/python3.6/xml/dom/xmlbuilder.py +410 -0
  2019. package/python3.6.2/lib/python3.6/xml/etree/ElementInclude.py +143 -0
  2020. package/python3.6.2/lib/python3.6/xml/etree/ElementPath.py +314 -0
  2021. package/python3.6.2/lib/python3.6/xml/etree/ElementTree.py +1656 -0
  2022. package/python3.6.2/lib/python3.6/xml/etree/__init__.py +33 -0
  2023. package/python3.6.2/lib/python3.6/xml/etree/cElementTree.py +3 -0
  2024. package/python3.6.2/lib/python3.6/xml/parsers/__init__.py +8 -0
  2025. package/python3.6.2/lib/python3.6/xml/parsers/expat.py +8 -0
  2026. package/python3.6.2/lib/python3.6/xml/sax/__init__.py +107 -0
  2027. package/python3.6.2/lib/python3.6/xml/sax/_exceptions.py +131 -0
  2028. package/python3.6.2/lib/python3.6/xml/sax/expatreader.py +446 -0
  2029. package/python3.6.2/lib/python3.6/xml/sax/handler.py +342 -0
  2030. package/python3.6.2/lib/python3.6/xml/sax/saxutils.py +368 -0
  2031. package/python3.6.2/lib/python3.6/xml/sax/xmlreader.py +380 -0
  2032. package/python3.6.2/lib/python3.6/xmlrpc/__init__.py +1 -0
  2033. package/python3.6.2/lib/python3.6/xmlrpc/client.py +1518 -0
  2034. package/python3.6.2/lib/python3.6/xmlrpc/server.py +1002 -0
  2035. package/python3.6.2/lib/python3.6/zipapp.py +201 -0
  2036. package/python3.6.2/lib/python3.6/zipfile.py +2036 -0
  2037. package/python3.6.2/lib/python3.6/LICENSE.txt +0 -254
  2038. package/python3.6.2/lib/python3.6/__future__.pyc +0 -0
  2039. package/python3.6.2/lib/python3.6/__phello__.foo.pyc +0 -0
  2040. package/python3.6.2/lib/python3.6/_bootlocale.pyc +0 -0
  2041. package/python3.6.2/lib/python3.6/_collections_abc.pyc +0 -0
  2042. package/python3.6.2/lib/python3.6/_compat_pickle.pyc +0 -0
  2043. package/python3.6.2/lib/python3.6/_compression.pyc +0 -0
  2044. package/python3.6.2/lib/python3.6/_dummy_thread.pyc +0 -0
  2045. package/python3.6.2/lib/python3.6/_markupbase.pyc +0 -0
  2046. package/python3.6.2/lib/python3.6/_osx_support.pyc +0 -0
  2047. package/python3.6.2/lib/python3.6/_pydecimal.pyc +0 -0
  2048. package/python3.6.2/lib/python3.6/_pyio.pyc +0 -0
  2049. package/python3.6.2/lib/python3.6/_sitebuiltins.pyc +0 -0
  2050. package/python3.6.2/lib/python3.6/_strptime.pyc +0 -0
  2051. package/python3.6.2/lib/python3.6/_threading_local.pyc +0 -0
  2052. package/python3.6.2/lib/python3.6/_weakrefset.pyc +0 -0
  2053. package/python3.6.2/lib/python3.6/abc.pyc +0 -0
  2054. package/python3.6.2/lib/python3.6/aifc.pyc +0 -0
  2055. package/python3.6.2/lib/python3.6/android.pyc +0 -0
  2056. package/python3.6.2/lib/python3.6/antigravity.pyc +0 -0
  2057. package/python3.6.2/lib/python3.6/argparse.pyc +0 -0
  2058. package/python3.6.2/lib/python3.6/ast.pyc +0 -0
  2059. package/python3.6.2/lib/python3.6/asynchat.pyc +0 -0
  2060. package/python3.6.2/lib/python3.6/asyncio/__init__.pyc +0 -0
  2061. package/python3.6.2/lib/python3.6/asyncio/base_events.pyc +0 -0
  2062. package/python3.6.2/lib/python3.6/asyncio/base_futures.pyc +0 -0
  2063. package/python3.6.2/lib/python3.6/asyncio/base_subprocess.pyc +0 -0
  2064. package/python3.6.2/lib/python3.6/asyncio/base_tasks.pyc +0 -0
  2065. package/python3.6.2/lib/python3.6/asyncio/compat.pyc +0 -0
  2066. package/python3.6.2/lib/python3.6/asyncio/constants.pyc +0 -0
  2067. package/python3.6.2/lib/python3.6/asyncio/coroutines.pyc +0 -0
  2068. package/python3.6.2/lib/python3.6/asyncio/events.pyc +0 -0
  2069. package/python3.6.2/lib/python3.6/asyncio/futures.pyc +0 -0
  2070. package/python3.6.2/lib/python3.6/asyncio/locks.pyc +0 -0
  2071. package/python3.6.2/lib/python3.6/asyncio/log.pyc +0 -0
  2072. package/python3.6.2/lib/python3.6/asyncio/proactor_events.pyc +0 -0
  2073. package/python3.6.2/lib/python3.6/asyncio/protocols.pyc +0 -0
  2074. package/python3.6.2/lib/python3.6/asyncio/queues.pyc +0 -0
  2075. package/python3.6.2/lib/python3.6/asyncio/selector_events.pyc +0 -0
  2076. package/python3.6.2/lib/python3.6/asyncio/sslproto.pyc +0 -0
  2077. package/python3.6.2/lib/python3.6/asyncio/streams.pyc +0 -0
  2078. package/python3.6.2/lib/python3.6/asyncio/subprocess.pyc +0 -0
  2079. package/python3.6.2/lib/python3.6/asyncio/tasks.pyc +0 -0
  2080. package/python3.6.2/lib/python3.6/asyncio/test_utils.pyc +0 -0
  2081. package/python3.6.2/lib/python3.6/asyncio/transports.pyc +0 -0
  2082. package/python3.6.2/lib/python3.6/asyncio/unix_events.pyc +0 -0
  2083. package/python3.6.2/lib/python3.6/asyncio/windows_events.pyc +0 -0
  2084. package/python3.6.2/lib/python3.6/asyncio/windows_utils.pyc +0 -0
  2085. package/python3.6.2/lib/python3.6/asyncore.pyc +0 -0
  2086. package/python3.6.2/lib/python3.6/base64.pyc +0 -0
  2087. package/python3.6.2/lib/python3.6/bdb.pyc +0 -0
  2088. package/python3.6.2/lib/python3.6/binhex.pyc +0 -0
  2089. package/python3.6.2/lib/python3.6/bisect.pyc +0 -0
  2090. package/python3.6.2/lib/python3.6/bz2.pyc +0 -0
  2091. package/python3.6.2/lib/python3.6/cProfile.pyc +0 -0
  2092. package/python3.6.2/lib/python3.6/calendar.pyc +0 -0
  2093. package/python3.6.2/lib/python3.6/cgi.pyc +0 -0
  2094. package/python3.6.2/lib/python3.6/cgitb.pyc +0 -0
  2095. package/python3.6.2/lib/python3.6/chunk.pyc +0 -0
  2096. package/python3.6.2/lib/python3.6/cmd.pyc +0 -0
  2097. package/python3.6.2/lib/python3.6/code.pyc +0 -0
  2098. package/python3.6.2/lib/python3.6/codecs.pyc +0 -0
  2099. package/python3.6.2/lib/python3.6/codeop.pyc +0 -0
  2100. package/python3.6.2/lib/python3.6/collections/__init__.pyc +0 -0
  2101. package/python3.6.2/lib/python3.6/collections/abc.pyc +0 -0
  2102. package/python3.6.2/lib/python3.6/colorsys.pyc +0 -0
  2103. package/python3.6.2/lib/python3.6/compileall.pyc +0 -0
  2104. package/python3.6.2/lib/python3.6/concurrent/__init__.pyc +0 -0
  2105. package/python3.6.2/lib/python3.6/concurrent/futures/__init__.pyc +0 -0
  2106. package/python3.6.2/lib/python3.6/concurrent/futures/_base.pyc +0 -0
  2107. package/python3.6.2/lib/python3.6/concurrent/futures/process.pyc +0 -0
  2108. package/python3.6.2/lib/python3.6/concurrent/futures/thread.pyc +0 -0
  2109. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Makefile +0 -1808
  2110. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup +0 -397
  2111. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup.config +0 -10
  2112. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup.local +0 -1
  2113. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/config.c +0 -114
  2114. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/config.c.in +0 -67
  2115. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/install-sh +0 -294
  2116. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/makesetup +0 -296
  2117. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/python-config.pyc +0 -0
  2118. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/python.o +0 -0
  2119. package/python3.6.2/lib/python3.6/configparser.pyc +0 -0
  2120. package/python3.6.2/lib/python3.6/contextlib.pyc +0 -0
  2121. package/python3.6.2/lib/python3.6/copy.pyc +0 -0
  2122. package/python3.6.2/lib/python3.6/copyreg.pyc +0 -0
  2123. package/python3.6.2/lib/python3.6/crypt.pyc +0 -0
  2124. package/python3.6.2/lib/python3.6/csv.pyc +0 -0
  2125. package/python3.6.2/lib/python3.6/ctypes/__init__.pyc +0 -0
  2126. package/python3.6.2/lib/python3.6/ctypes/_endian.pyc +0 -0
  2127. package/python3.6.2/lib/python3.6/ctypes/macholib/__init__.pyc +0 -0
  2128. package/python3.6.2/lib/python3.6/ctypes/macholib/dyld.pyc +0 -0
  2129. package/python3.6.2/lib/python3.6/ctypes/macholib/dylib.pyc +0 -0
  2130. package/python3.6.2/lib/python3.6/ctypes/macholib/framework.pyc +0 -0
  2131. package/python3.6.2/lib/python3.6/ctypes/util.pyc +0 -0
  2132. package/python3.6.2/lib/python3.6/ctypes/wintypes.pyc +0 -0
  2133. package/python3.6.2/lib/python3.6/curses/__init__.pyc +0 -0
  2134. package/python3.6.2/lib/python3.6/curses/ascii.pyc +0 -0
  2135. package/python3.6.2/lib/python3.6/curses/has_key.pyc +0 -0
  2136. package/python3.6.2/lib/python3.6/curses/panel.pyc +0 -0
  2137. package/python3.6.2/lib/python3.6/curses/textpad.pyc +0 -0
  2138. package/python3.6.2/lib/python3.6/datetime.pyc +0 -0
  2139. package/python3.6.2/lib/python3.6/dbm/__init__.pyc +0 -0
  2140. package/python3.6.2/lib/python3.6/dbm/dumb.pyc +0 -0
  2141. package/python3.6.2/lib/python3.6/dbm/gnu.pyc +0 -0
  2142. package/python3.6.2/lib/python3.6/dbm/ndbm.pyc +0 -0
  2143. package/python3.6.2/lib/python3.6/decimal.pyc +0 -0
  2144. package/python3.6.2/lib/python3.6/difflib.pyc +0 -0
  2145. package/python3.6.2/lib/python3.6/dis.pyc +0 -0
  2146. package/python3.6.2/lib/python3.6/distutils/__init__.pyc +0 -0
  2147. package/python3.6.2/lib/python3.6/distutils/_msvccompiler.pyc +0 -0
  2148. package/python3.6.2/lib/python3.6/distutils/archive_util.pyc +0 -0
  2149. package/python3.6.2/lib/python3.6/distutils/bcppcompiler.pyc +0 -0
  2150. package/python3.6.2/lib/python3.6/distutils/ccompiler.pyc +0 -0
  2151. package/python3.6.2/lib/python3.6/distutils/cmd.pyc +0 -0
  2152. package/python3.6.2/lib/python3.6/distutils/command/__init__.pyc +0 -0
  2153. package/python3.6.2/lib/python3.6/distutils/command/bdist.pyc +0 -0
  2154. package/python3.6.2/lib/python3.6/distutils/command/bdist_dumb.pyc +0 -0
  2155. package/python3.6.2/lib/python3.6/distutils/command/bdist_msi.pyc +0 -0
  2156. package/python3.6.2/lib/python3.6/distutils/command/bdist_rpm.pyc +0 -0
  2157. package/python3.6.2/lib/python3.6/distutils/command/bdist_wininst.pyc +0 -0
  2158. package/python3.6.2/lib/python3.6/distutils/command/build.pyc +0 -0
  2159. package/python3.6.2/lib/python3.6/distutils/command/build_clib.pyc +0 -0
  2160. package/python3.6.2/lib/python3.6/distutils/command/build_ext.pyc +0 -0
  2161. package/python3.6.2/lib/python3.6/distutils/command/build_py.pyc +0 -0
  2162. package/python3.6.2/lib/python3.6/distutils/command/build_scripts.pyc +0 -0
  2163. package/python3.6.2/lib/python3.6/distutils/command/check.pyc +0 -0
  2164. package/python3.6.2/lib/python3.6/distutils/command/clean.pyc +0 -0
  2165. package/python3.6.2/lib/python3.6/distutils/command/config.pyc +0 -0
  2166. package/python3.6.2/lib/python3.6/distutils/command/install.pyc +0 -0
  2167. package/python3.6.2/lib/python3.6/distutils/command/install_data.pyc +0 -0
  2168. package/python3.6.2/lib/python3.6/distutils/command/install_egg_info.pyc +0 -0
  2169. package/python3.6.2/lib/python3.6/distutils/command/install_headers.pyc +0 -0
  2170. package/python3.6.2/lib/python3.6/distutils/command/install_lib.pyc +0 -0
  2171. package/python3.6.2/lib/python3.6/distutils/command/install_scripts.pyc +0 -0
  2172. package/python3.6.2/lib/python3.6/distutils/command/register.pyc +0 -0
  2173. package/python3.6.2/lib/python3.6/distutils/command/sdist.pyc +0 -0
  2174. package/python3.6.2/lib/python3.6/distutils/command/upload.pyc +0 -0
  2175. package/python3.6.2/lib/python3.6/distutils/config.pyc +0 -0
  2176. package/python3.6.2/lib/python3.6/distutils/core.pyc +0 -0
  2177. package/python3.6.2/lib/python3.6/distutils/cygwinccompiler.pyc +0 -0
  2178. package/python3.6.2/lib/python3.6/distutils/debug.pyc +0 -0
  2179. package/python3.6.2/lib/python3.6/distutils/dep_util.pyc +0 -0
  2180. package/python3.6.2/lib/python3.6/distutils/dir_util.pyc +0 -0
  2181. package/python3.6.2/lib/python3.6/distutils/dist.pyc +0 -0
  2182. package/python3.6.2/lib/python3.6/distutils/errors.pyc +0 -0
  2183. package/python3.6.2/lib/python3.6/distutils/extension.pyc +0 -0
  2184. package/python3.6.2/lib/python3.6/distutils/fancy_getopt.pyc +0 -0
  2185. package/python3.6.2/lib/python3.6/distutils/file_util.pyc +0 -0
  2186. package/python3.6.2/lib/python3.6/distutils/filelist.pyc +0 -0
  2187. package/python3.6.2/lib/python3.6/distutils/log.pyc +0 -0
  2188. package/python3.6.2/lib/python3.6/distutils/msvc9compiler.pyc +0 -0
  2189. package/python3.6.2/lib/python3.6/distutils/msvccompiler.pyc +0 -0
  2190. package/python3.6.2/lib/python3.6/distutils/spawn.pyc +0 -0
  2191. package/python3.6.2/lib/python3.6/distutils/sysconfig.pyc +0 -0
  2192. package/python3.6.2/lib/python3.6/distutils/text_file.pyc +0 -0
  2193. package/python3.6.2/lib/python3.6/distutils/unixccompiler.pyc +0 -0
  2194. package/python3.6.2/lib/python3.6/distutils/util.pyc +0 -0
  2195. package/python3.6.2/lib/python3.6/distutils/version.pyc +0 -0
  2196. package/python3.6.2/lib/python3.6/distutils/versionpredicate.pyc +0 -0
  2197. package/python3.6.2/lib/python3.6/doctest.pyc +0 -0
  2198. package/python3.6.2/lib/python3.6/dummy_threading.pyc +0 -0
  2199. package/python3.6.2/lib/python3.6/email/__init__.pyc +0 -0
  2200. package/python3.6.2/lib/python3.6/email/_encoded_words.pyc +0 -0
  2201. package/python3.6.2/lib/python3.6/email/_header_value_parser.pyc +0 -0
  2202. package/python3.6.2/lib/python3.6/email/_parseaddr.pyc +0 -0
  2203. package/python3.6.2/lib/python3.6/email/_policybase.pyc +0 -0
  2204. package/python3.6.2/lib/python3.6/email/base64mime.pyc +0 -0
  2205. package/python3.6.2/lib/python3.6/email/charset.pyc +0 -0
  2206. package/python3.6.2/lib/python3.6/email/contentmanager.pyc +0 -0
  2207. package/python3.6.2/lib/python3.6/email/encoders.pyc +0 -0
  2208. package/python3.6.2/lib/python3.6/email/errors.pyc +0 -0
  2209. package/python3.6.2/lib/python3.6/email/feedparser.pyc +0 -0
  2210. package/python3.6.2/lib/python3.6/email/generator.pyc +0 -0
  2211. package/python3.6.2/lib/python3.6/email/header.pyc +0 -0
  2212. package/python3.6.2/lib/python3.6/email/headerregistry.pyc +0 -0
  2213. package/python3.6.2/lib/python3.6/email/iterators.pyc +0 -0
  2214. package/python3.6.2/lib/python3.6/email/message.pyc +0 -0
  2215. package/python3.6.2/lib/python3.6/email/mime/__init__.pyc +0 -0
  2216. package/python3.6.2/lib/python3.6/email/mime/application.pyc +0 -0
  2217. package/python3.6.2/lib/python3.6/email/mime/audio.pyc +0 -0
  2218. package/python3.6.2/lib/python3.6/email/mime/base.pyc +0 -0
  2219. package/python3.6.2/lib/python3.6/email/mime/image.pyc +0 -0
  2220. package/python3.6.2/lib/python3.6/email/mime/message.pyc +0 -0
  2221. package/python3.6.2/lib/python3.6/email/mime/multipart.pyc +0 -0
  2222. package/python3.6.2/lib/python3.6/email/mime/nonmultipart.pyc +0 -0
  2223. package/python3.6.2/lib/python3.6/email/mime/text.pyc +0 -0
  2224. package/python3.6.2/lib/python3.6/email/parser.pyc +0 -0
  2225. package/python3.6.2/lib/python3.6/email/policy.pyc +0 -0
  2226. package/python3.6.2/lib/python3.6/email/quoprimime.pyc +0 -0
  2227. package/python3.6.2/lib/python3.6/email/utils.pyc +0 -0
  2228. package/python3.6.2/lib/python3.6/encodings/__init__.pyc +0 -0
  2229. package/python3.6.2/lib/python3.6/encodings/aliases.pyc +0 -0
  2230. package/python3.6.2/lib/python3.6/encodings/ascii.pyc +0 -0
  2231. package/python3.6.2/lib/python3.6/encodings/base64_codec.pyc +0 -0
  2232. package/python3.6.2/lib/python3.6/encodings/big5.pyc +0 -0
  2233. package/python3.6.2/lib/python3.6/encodings/big5hkscs.pyc +0 -0
  2234. package/python3.6.2/lib/python3.6/encodings/bz2_codec.pyc +0 -0
  2235. package/python3.6.2/lib/python3.6/encodings/charmap.pyc +0 -0
  2236. package/python3.6.2/lib/python3.6/encodings/cp037.pyc +0 -0
  2237. package/python3.6.2/lib/python3.6/encodings/cp1006.pyc +0 -0
  2238. package/python3.6.2/lib/python3.6/encodings/cp1026.pyc +0 -0
  2239. package/python3.6.2/lib/python3.6/encodings/cp1125.pyc +0 -0
  2240. package/python3.6.2/lib/python3.6/encodings/cp1140.pyc +0 -0
  2241. package/python3.6.2/lib/python3.6/encodings/cp1250.pyc +0 -0
  2242. package/python3.6.2/lib/python3.6/encodings/cp1251.pyc +0 -0
  2243. package/python3.6.2/lib/python3.6/encodings/cp1252.pyc +0 -0
  2244. package/python3.6.2/lib/python3.6/encodings/cp1253.pyc +0 -0
  2245. package/python3.6.2/lib/python3.6/encodings/cp1254.pyc +0 -0
  2246. package/python3.6.2/lib/python3.6/encodings/cp1255.pyc +0 -0
  2247. package/python3.6.2/lib/python3.6/encodings/cp1256.pyc +0 -0
  2248. package/python3.6.2/lib/python3.6/encodings/cp1257.pyc +0 -0
  2249. package/python3.6.2/lib/python3.6/encodings/cp1258.pyc +0 -0
  2250. package/python3.6.2/lib/python3.6/encodings/cp273.pyc +0 -0
  2251. package/python3.6.2/lib/python3.6/encodings/cp424.pyc +0 -0
  2252. package/python3.6.2/lib/python3.6/encodings/cp437.pyc +0 -0
  2253. package/python3.6.2/lib/python3.6/encodings/cp500.pyc +0 -0
  2254. package/python3.6.2/lib/python3.6/encodings/cp65001.pyc +0 -0
  2255. package/python3.6.2/lib/python3.6/encodings/cp720.pyc +0 -0
  2256. package/python3.6.2/lib/python3.6/encodings/cp737.pyc +0 -0
  2257. package/python3.6.2/lib/python3.6/encodings/cp775.pyc +0 -0
  2258. package/python3.6.2/lib/python3.6/encodings/cp850.pyc +0 -0
  2259. package/python3.6.2/lib/python3.6/encodings/cp852.pyc +0 -0
  2260. package/python3.6.2/lib/python3.6/encodings/cp855.pyc +0 -0
  2261. package/python3.6.2/lib/python3.6/encodings/cp856.pyc +0 -0
  2262. package/python3.6.2/lib/python3.6/encodings/cp857.pyc +0 -0
  2263. package/python3.6.2/lib/python3.6/encodings/cp858.pyc +0 -0
  2264. package/python3.6.2/lib/python3.6/encodings/cp860.pyc +0 -0
  2265. package/python3.6.2/lib/python3.6/encodings/cp861.pyc +0 -0
  2266. package/python3.6.2/lib/python3.6/encodings/cp862.pyc +0 -0
  2267. package/python3.6.2/lib/python3.6/encodings/cp863.pyc +0 -0
  2268. package/python3.6.2/lib/python3.6/encodings/cp864.pyc +0 -0
  2269. package/python3.6.2/lib/python3.6/encodings/cp865.pyc +0 -0
  2270. package/python3.6.2/lib/python3.6/encodings/cp866.pyc +0 -0
  2271. package/python3.6.2/lib/python3.6/encodings/cp869.pyc +0 -0
  2272. package/python3.6.2/lib/python3.6/encodings/cp874.pyc +0 -0
  2273. package/python3.6.2/lib/python3.6/encodings/cp875.pyc +0 -0
  2274. package/python3.6.2/lib/python3.6/encodings/cp932.pyc +0 -0
  2275. package/python3.6.2/lib/python3.6/encodings/cp949.pyc +0 -0
  2276. package/python3.6.2/lib/python3.6/encodings/cp950.pyc +0 -0
  2277. package/python3.6.2/lib/python3.6/encodings/euc_jis_2004.pyc +0 -0
  2278. package/python3.6.2/lib/python3.6/encodings/euc_jisx0213.pyc +0 -0
  2279. package/python3.6.2/lib/python3.6/encodings/euc_jp.pyc +0 -0
  2280. package/python3.6.2/lib/python3.6/encodings/euc_kr.pyc +0 -0
  2281. package/python3.6.2/lib/python3.6/encodings/gb18030.pyc +0 -0
  2282. package/python3.6.2/lib/python3.6/encodings/gb2312.pyc +0 -0
  2283. package/python3.6.2/lib/python3.6/encodings/gbk.pyc +0 -0
  2284. package/python3.6.2/lib/python3.6/encodings/hex_codec.pyc +0 -0
  2285. package/python3.6.2/lib/python3.6/encodings/hp_roman8.pyc +0 -0
  2286. package/python3.6.2/lib/python3.6/encodings/hz.pyc +0 -0
  2287. package/python3.6.2/lib/python3.6/encodings/idna.pyc +0 -0
  2288. package/python3.6.2/lib/python3.6/encodings/iso2022_jp.pyc +0 -0
  2289. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_1.pyc +0 -0
  2290. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2.pyc +0 -0
  2291. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2004.pyc +0 -0
  2292. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_3.pyc +0 -0
  2293. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_ext.pyc +0 -0
  2294. package/python3.6.2/lib/python3.6/encodings/iso2022_kr.pyc +0 -0
  2295. package/python3.6.2/lib/python3.6/encodings/iso8859_1.pyc +0 -0
  2296. package/python3.6.2/lib/python3.6/encodings/iso8859_10.pyc +0 -0
  2297. package/python3.6.2/lib/python3.6/encodings/iso8859_11.pyc +0 -0
  2298. package/python3.6.2/lib/python3.6/encodings/iso8859_13.pyc +0 -0
  2299. package/python3.6.2/lib/python3.6/encodings/iso8859_14.pyc +0 -0
  2300. package/python3.6.2/lib/python3.6/encodings/iso8859_15.pyc +0 -0
  2301. package/python3.6.2/lib/python3.6/encodings/iso8859_16.pyc +0 -0
  2302. package/python3.6.2/lib/python3.6/encodings/iso8859_2.pyc +0 -0
  2303. package/python3.6.2/lib/python3.6/encodings/iso8859_3.pyc +0 -0
  2304. package/python3.6.2/lib/python3.6/encodings/iso8859_4.pyc +0 -0
  2305. package/python3.6.2/lib/python3.6/encodings/iso8859_5.pyc +0 -0
  2306. package/python3.6.2/lib/python3.6/encodings/iso8859_6.pyc +0 -0
  2307. package/python3.6.2/lib/python3.6/encodings/iso8859_7.pyc +0 -0
  2308. package/python3.6.2/lib/python3.6/encodings/iso8859_8.pyc +0 -0
  2309. package/python3.6.2/lib/python3.6/encodings/iso8859_9.pyc +0 -0
  2310. package/python3.6.2/lib/python3.6/encodings/johab.pyc +0 -0
  2311. package/python3.6.2/lib/python3.6/encodings/koi8_r.pyc +0 -0
  2312. package/python3.6.2/lib/python3.6/encodings/koi8_t.pyc +0 -0
  2313. package/python3.6.2/lib/python3.6/encodings/koi8_u.pyc +0 -0
  2314. package/python3.6.2/lib/python3.6/encodings/kz1048.pyc +0 -0
  2315. package/python3.6.2/lib/python3.6/encodings/latin_1.pyc +0 -0
  2316. package/python3.6.2/lib/python3.6/encodings/mac_arabic.pyc +0 -0
  2317. package/python3.6.2/lib/python3.6/encodings/mac_centeuro.pyc +0 -0
  2318. package/python3.6.2/lib/python3.6/encodings/mac_croatian.pyc +0 -0
  2319. package/python3.6.2/lib/python3.6/encodings/mac_cyrillic.pyc +0 -0
  2320. package/python3.6.2/lib/python3.6/encodings/mac_farsi.pyc +0 -0
  2321. package/python3.6.2/lib/python3.6/encodings/mac_greek.pyc +0 -0
  2322. package/python3.6.2/lib/python3.6/encodings/mac_iceland.pyc +0 -0
  2323. package/python3.6.2/lib/python3.6/encodings/mac_latin2.pyc +0 -0
  2324. package/python3.6.2/lib/python3.6/encodings/mac_roman.pyc +0 -0
  2325. package/python3.6.2/lib/python3.6/encodings/mac_romanian.pyc +0 -0
  2326. package/python3.6.2/lib/python3.6/encodings/mac_turkish.pyc +0 -0
  2327. package/python3.6.2/lib/python3.6/encodings/mbcs.pyc +0 -0
  2328. package/python3.6.2/lib/python3.6/encodings/oem.pyc +0 -0
  2329. package/python3.6.2/lib/python3.6/encodings/palmos.pyc +0 -0
  2330. package/python3.6.2/lib/python3.6/encodings/ptcp154.pyc +0 -0
  2331. package/python3.6.2/lib/python3.6/encodings/punycode.pyc +0 -0
  2332. package/python3.6.2/lib/python3.6/encodings/quopri_codec.pyc +0 -0
  2333. package/python3.6.2/lib/python3.6/encodings/raw_unicode_escape.pyc +0 -0
  2334. package/python3.6.2/lib/python3.6/encodings/rot_13.pyc +0 -0
  2335. package/python3.6.2/lib/python3.6/encodings/shift_jis.pyc +0 -0
  2336. package/python3.6.2/lib/python3.6/encodings/shift_jis_2004.pyc +0 -0
  2337. package/python3.6.2/lib/python3.6/encodings/shift_jisx0213.pyc +0 -0
  2338. package/python3.6.2/lib/python3.6/encodings/tis_620.pyc +0 -0
  2339. package/python3.6.2/lib/python3.6/encodings/undefined.pyc +0 -0
  2340. package/python3.6.2/lib/python3.6/encodings/unicode_escape.pyc +0 -0
  2341. package/python3.6.2/lib/python3.6/encodings/unicode_internal.pyc +0 -0
  2342. package/python3.6.2/lib/python3.6/encodings/utf_16.pyc +0 -0
  2343. package/python3.6.2/lib/python3.6/encodings/utf_16_be.pyc +0 -0
  2344. package/python3.6.2/lib/python3.6/encodings/utf_16_le.pyc +0 -0
  2345. package/python3.6.2/lib/python3.6/encodings/utf_32.pyc +0 -0
  2346. package/python3.6.2/lib/python3.6/encodings/utf_32_be.pyc +0 -0
  2347. package/python3.6.2/lib/python3.6/encodings/utf_32_le.pyc +0 -0
  2348. package/python3.6.2/lib/python3.6/encodings/utf_7.pyc +0 -0
  2349. package/python3.6.2/lib/python3.6/encodings/utf_8.pyc +0 -0
  2350. package/python3.6.2/lib/python3.6/encodings/utf_8_sig.pyc +0 -0
  2351. package/python3.6.2/lib/python3.6/encodings/uu_codec.pyc +0 -0
  2352. package/python3.6.2/lib/python3.6/encodings/zlib_codec.pyc +0 -0
  2353. package/python3.6.2/lib/python3.6/ensurepip/__init__.pyc +0 -0
  2354. package/python3.6.2/lib/python3.6/ensurepip/__main__.pyc +0 -0
  2355. package/python3.6.2/lib/python3.6/ensurepip/_uninstall.pyc +0 -0
  2356. package/python3.6.2/lib/python3.6/enum.pyc +0 -0
  2357. package/python3.6.2/lib/python3.6/filecmp.pyc +0 -0
  2358. package/python3.6.2/lib/python3.6/fileinput.pyc +0 -0
  2359. package/python3.6.2/lib/python3.6/fnmatch.pyc +0 -0
  2360. package/python3.6.2/lib/python3.6/formatter.pyc +0 -0
  2361. package/python3.6.2/lib/python3.6/fractions.pyc +0 -0
  2362. package/python3.6.2/lib/python3.6/ftplib.pyc +0 -0
  2363. package/python3.6.2/lib/python3.6/functools.pyc +0 -0
  2364. package/python3.6.2/lib/python3.6/genericpath.pyc +0 -0
  2365. package/python3.6.2/lib/python3.6/getopt.pyc +0 -0
  2366. package/python3.6.2/lib/python3.6/getpass.pyc +0 -0
  2367. package/python3.6.2/lib/python3.6/gettext.pyc +0 -0
  2368. package/python3.6.2/lib/python3.6/glob.pyc +0 -0
  2369. package/python3.6.2/lib/python3.6/gzip.pyc +0 -0
  2370. package/python3.6.2/lib/python3.6/hashlib.pyc +0 -0
  2371. package/python3.6.2/lib/python3.6/heapq.pyc +0 -0
  2372. package/python3.6.2/lib/python3.6/hmac.pyc +0 -0
  2373. package/python3.6.2/lib/python3.6/html/__init__.pyc +0 -0
  2374. package/python3.6.2/lib/python3.6/html/entities.pyc +0 -0
  2375. package/python3.6.2/lib/python3.6/html/parser.pyc +0 -0
  2376. package/python3.6.2/lib/python3.6/http/__init__.pyc +0 -0
  2377. package/python3.6.2/lib/python3.6/http/client.pyc +0 -0
  2378. package/python3.6.2/lib/python3.6/http/cookiejar.pyc +0 -0
  2379. package/python3.6.2/lib/python3.6/http/cookies.pyc +0 -0
  2380. package/python3.6.2/lib/python3.6/http/server.pyc +0 -0
  2381. package/python3.6.2/lib/python3.6/imaplib.pyc +0 -0
  2382. package/python3.6.2/lib/python3.6/imghdr.pyc +0 -0
  2383. package/python3.6.2/lib/python3.6/imp.pyc +0 -0
  2384. package/python3.6.2/lib/python3.6/importlib/__init__.pyc +0 -0
  2385. package/python3.6.2/lib/python3.6/importlib/_bootstrap.pyc +0 -0
  2386. package/python3.6.2/lib/python3.6/importlib/_bootstrap_external.pyc +0 -0
  2387. package/python3.6.2/lib/python3.6/importlib/abc.pyc +0 -0
  2388. package/python3.6.2/lib/python3.6/importlib/machinery.pyc +0 -0
  2389. package/python3.6.2/lib/python3.6/importlib/util.pyc +0 -0
  2390. package/python3.6.2/lib/python3.6/inspect.pyc +0 -0
  2391. package/python3.6.2/lib/python3.6/io.pyc +0 -0
  2392. package/python3.6.2/lib/python3.6/ipaddress.pyc +0 -0
  2393. package/python3.6.2/lib/python3.6/json/__init__.pyc +0 -0
  2394. package/python3.6.2/lib/python3.6/json/decoder.pyc +0 -0
  2395. package/python3.6.2/lib/python3.6/json/encoder.pyc +0 -0
  2396. package/python3.6.2/lib/python3.6/json/scanner.pyc +0 -0
  2397. package/python3.6.2/lib/python3.6/json/tool.pyc +0 -0
  2398. package/python3.6.2/lib/python3.6/keyword.pyc +0 -0
  2399. package/python3.6.2/lib/python3.6/lib2to3/Grammar3.6.3.final.0.pickle +0 -0
  2400. package/python3.6.2/lib/python3.6/lib2to3/PatternGrammar3.6.3.final.0.pickle +0 -0
  2401. package/python3.6.2/lib/python3.6/lib2to3/__init__.pyc +0 -0
  2402. package/python3.6.2/lib/python3.6/lib2to3/__main__.pyc +0 -0
  2403. package/python3.6.2/lib/python3.6/lib2to3/btm_matcher.pyc +0 -0
  2404. package/python3.6.2/lib/python3.6/lib2to3/btm_utils.pyc +0 -0
  2405. package/python3.6.2/lib/python3.6/lib2to3/fixer_base.pyc +0 -0
  2406. package/python3.6.2/lib/python3.6/lib2to3/fixer_util.pyc +0 -0
  2407. package/python3.6.2/lib/python3.6/lib2to3/fixes/__init__.pyc +0 -0
  2408. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_apply.pyc +0 -0
  2409. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_asserts.pyc +0 -0
  2410. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_basestring.pyc +0 -0
  2411. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_buffer.pyc +0 -0
  2412. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_dict.pyc +0 -0
  2413. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_except.pyc +0 -0
  2414. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exec.pyc +0 -0
  2415. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_execfile.pyc +0 -0
  2416. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exitfunc.pyc +0 -0
  2417. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_filter.pyc +0 -0
  2418. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_funcattrs.pyc +0 -0
  2419. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_future.pyc +0 -0
  2420. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_getcwdu.pyc +0 -0
  2421. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_has_key.pyc +0 -0
  2422. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_idioms.pyc +0 -0
  2423. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_import.pyc +0 -0
  2424. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports.pyc +0 -0
  2425. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports2.pyc +0 -0
  2426. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_input.pyc +0 -0
  2427. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_intern.pyc +0 -0
  2428. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_isinstance.pyc +0 -0
  2429. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools.pyc +0 -0
  2430. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools_imports.pyc +0 -0
  2431. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_long.pyc +0 -0
  2432. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_map.pyc +0 -0
  2433. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_metaclass.pyc +0 -0
  2434. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_methodattrs.pyc +0 -0
  2435. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ne.pyc +0 -0
  2436. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_next.pyc +0 -0
  2437. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_nonzero.pyc +0 -0
  2438. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_numliterals.pyc +0 -0
  2439. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_operator.pyc +0 -0
  2440. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_paren.pyc +0 -0
  2441. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_print.pyc +0 -0
  2442. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raise.pyc +0 -0
  2443. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raw_input.pyc +0 -0
  2444. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reduce.pyc +0 -0
  2445. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reload.pyc +0 -0
  2446. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_renames.pyc +0 -0
  2447. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_repr.pyc +0 -0
  2448. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_set_literal.pyc +0 -0
  2449. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_standarderror.pyc +0 -0
  2450. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_sys_exc.pyc +0 -0
  2451. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_throw.pyc +0 -0
  2452. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_tuple_params.pyc +0 -0
  2453. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_types.pyc +0 -0
  2454. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_unicode.pyc +0 -0
  2455. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_urllib.pyc +0 -0
  2456. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ws_comma.pyc +0 -0
  2457. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xrange.pyc +0 -0
  2458. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xreadlines.pyc +0 -0
  2459. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_zip.pyc +0 -0
  2460. package/python3.6.2/lib/python3.6/lib2to3/main.pyc +0 -0
  2461. package/python3.6.2/lib/python3.6/lib2to3/patcomp.pyc +0 -0
  2462. package/python3.6.2/lib/python3.6/lib2to3/pgen2/__init__.pyc +0 -0
  2463. package/python3.6.2/lib/python3.6/lib2to3/pgen2/conv.pyc +0 -0
  2464. package/python3.6.2/lib/python3.6/lib2to3/pgen2/driver.pyc +0 -0
  2465. package/python3.6.2/lib/python3.6/lib2to3/pgen2/grammar.pyc +0 -0
  2466. package/python3.6.2/lib/python3.6/lib2to3/pgen2/literals.pyc +0 -0
  2467. package/python3.6.2/lib/python3.6/lib2to3/pgen2/parse.pyc +0 -0
  2468. package/python3.6.2/lib/python3.6/lib2to3/pgen2/pgen.pyc +0 -0
  2469. package/python3.6.2/lib/python3.6/lib2to3/pgen2/token.pyc +0 -0
  2470. package/python3.6.2/lib/python3.6/lib2to3/pgen2/tokenize.pyc +0 -0
  2471. package/python3.6.2/lib/python3.6/lib2to3/pygram.pyc +0 -0
  2472. package/python3.6.2/lib/python3.6/lib2to3/pytree.pyc +0 -0
  2473. package/python3.6.2/lib/python3.6/lib2to3/refactor.pyc +0 -0
  2474. package/python3.6.2/lib/python3.6/linecache.pyc +0 -0
  2475. package/python3.6.2/lib/python3.6/locale.pyc +0 -0
  2476. package/python3.6.2/lib/python3.6/logging/__init__.pyc +0 -0
  2477. package/python3.6.2/lib/python3.6/logging/config.pyc +0 -0
  2478. package/python3.6.2/lib/python3.6/logging/handlers.pyc +0 -0
  2479. package/python3.6.2/lib/python3.6/lzma.pyc +0 -0
  2480. package/python3.6.2/lib/python3.6/macpath.pyc +0 -0
  2481. package/python3.6.2/lib/python3.6/macurl2path.pyc +0 -0
  2482. package/python3.6.2/lib/python3.6/mailbox.pyc +0 -0
  2483. package/python3.6.2/lib/python3.6/mailcap.pyc +0 -0
  2484. package/python3.6.2/lib/python3.6/mimetypes.pyc +0 -0
  2485. package/python3.6.2/lib/python3.6/modulefinder.pyc +0 -0
  2486. package/python3.6.2/lib/python3.6/multiprocessing/__init__.pyc +0 -0
  2487. package/python3.6.2/lib/python3.6/multiprocessing/connection.pyc +0 -0
  2488. package/python3.6.2/lib/python3.6/multiprocessing/context.pyc +0 -0
  2489. package/python3.6.2/lib/python3.6/multiprocessing/dummy/__init__.pyc +0 -0
  2490. package/python3.6.2/lib/python3.6/multiprocessing/dummy/connection.pyc +0 -0
  2491. package/python3.6.2/lib/python3.6/multiprocessing/forkserver.pyc +0 -0
  2492. package/python3.6.2/lib/python3.6/multiprocessing/heap.pyc +0 -0
  2493. package/python3.6.2/lib/python3.6/multiprocessing/managers.pyc +0 -0
  2494. package/python3.6.2/lib/python3.6/multiprocessing/pool.pyc +0 -0
  2495. package/python3.6.2/lib/python3.6/multiprocessing/popen_fork.pyc +0 -0
  2496. package/python3.6.2/lib/python3.6/multiprocessing/popen_forkserver.pyc +0 -0
  2497. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_posix.pyc +0 -0
  2498. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_win32.pyc +0 -0
  2499. package/python3.6.2/lib/python3.6/multiprocessing/process.pyc +0 -0
  2500. package/python3.6.2/lib/python3.6/multiprocessing/queues.pyc +0 -0
  2501. package/python3.6.2/lib/python3.6/multiprocessing/reduction.pyc +0 -0
  2502. package/python3.6.2/lib/python3.6/multiprocessing/resource_sharer.pyc +0 -0
  2503. package/python3.6.2/lib/python3.6/multiprocessing/semaphore_tracker.pyc +0 -0
  2504. package/python3.6.2/lib/python3.6/multiprocessing/sharedctypes.pyc +0 -0
  2505. package/python3.6.2/lib/python3.6/multiprocessing/spawn.pyc +0 -0
  2506. package/python3.6.2/lib/python3.6/multiprocessing/synchronize.pyc +0 -0
  2507. package/python3.6.2/lib/python3.6/multiprocessing/util.pyc +0 -0
  2508. package/python3.6.2/lib/python3.6/netrc.pyc +0 -0
  2509. package/python3.6.2/lib/python3.6/nntplib.pyc +0 -0
  2510. package/python3.6.2/lib/python3.6/ntpath.pyc +0 -0
  2511. package/python3.6.2/lib/python3.6/nturl2path.pyc +0 -0
  2512. package/python3.6.2/lib/python3.6/numbers.pyc +0 -0
  2513. package/python3.6.2/lib/python3.6/opcode.pyc +0 -0
  2514. package/python3.6.2/lib/python3.6/operator.pyc +0 -0
  2515. package/python3.6.2/lib/python3.6/optparse.pyc +0 -0
  2516. package/python3.6.2/lib/python3.6/os.pyc +0 -0
  2517. package/python3.6.2/lib/python3.6/pathlib.pyc +0 -0
  2518. package/python3.6.2/lib/python3.6/pdb.pyc +0 -0
  2519. package/python3.6.2/lib/python3.6/pickle.pyc +0 -0
  2520. package/python3.6.2/lib/python3.6/pickletools.pyc +0 -0
  2521. package/python3.6.2/lib/python3.6/pipes.pyc +0 -0
  2522. package/python3.6.2/lib/python3.6/pkgutil.pyc +0 -0
  2523. package/python3.6.2/lib/python3.6/platform.pyc +0 -0
  2524. package/python3.6.2/lib/python3.6/plistlib.pyc +0 -0
  2525. package/python3.6.2/lib/python3.6/poplib.pyc +0 -0
  2526. package/python3.6.2/lib/python3.6/posixpath.pyc +0 -0
  2527. package/python3.6.2/lib/python3.6/pprint.pyc +0 -0
  2528. package/python3.6.2/lib/python3.6/profile.pyc +0 -0
  2529. package/python3.6.2/lib/python3.6/pstats.pyc +0 -0
  2530. package/python3.6.2/lib/python3.6/pty.pyc +0 -0
  2531. package/python3.6.2/lib/python3.6/py_compile.pyc +0 -0
  2532. package/python3.6.2/lib/python3.6/pyclbr.pyc +0 -0
  2533. package/python3.6.2/lib/python3.6/pydoc.pyc +0 -0
  2534. package/python3.6.2/lib/python3.6/pydoc_data/__init__.pyc +0 -0
  2535. package/python3.6.2/lib/python3.6/pydoc_data/topics.pyc +0 -0
  2536. package/python3.6.2/lib/python3.6/queue.pyc +0 -0
  2537. package/python3.6.2/lib/python3.6/quopri.pyc +0 -0
  2538. package/python3.6.2/lib/python3.6/random.pyc +0 -0
  2539. package/python3.6.2/lib/python3.6/re.pyc +0 -0
  2540. package/python3.6.2/lib/python3.6/reprlib.pyc +0 -0
  2541. package/python3.6.2/lib/python3.6/rlcompleter.pyc +0 -0
  2542. package/python3.6.2/lib/python3.6/runpy.pyc +0 -0
  2543. package/python3.6.2/lib/python3.6/sched.pyc +0 -0
  2544. package/python3.6.2/lib/python3.6/secrets.pyc +0 -0
  2545. package/python3.6.2/lib/python3.6/selectors.pyc +0 -0
  2546. package/python3.6.2/lib/python3.6/shelve.pyc +0 -0
  2547. package/python3.6.2/lib/python3.6/shlex.pyc +0 -0
  2548. package/python3.6.2/lib/python3.6/shutil.pyc +0 -0
  2549. package/python3.6.2/lib/python3.6/signal.pyc +0 -0
  2550. package/python3.6.2/lib/python3.6/site.pyc +0 -0
  2551. package/python3.6.2/lib/python3.6/smtpd.pyc +0 -0
  2552. package/python3.6.2/lib/python3.6/smtplib.pyc +0 -0
  2553. package/python3.6.2/lib/python3.6/sndhdr.pyc +0 -0
  2554. package/python3.6.2/lib/python3.6/socket.pyc +0 -0
  2555. package/python3.6.2/lib/python3.6/socketserver.pyc +0 -0
  2556. package/python3.6.2/lib/python3.6/sqlite3/__init__.pyc +0 -0
  2557. package/python3.6.2/lib/python3.6/sqlite3/dbapi2.pyc +0 -0
  2558. package/python3.6.2/lib/python3.6/sqlite3/dump.pyc +0 -0
  2559. package/python3.6.2/lib/python3.6/sre_compile.pyc +0 -0
  2560. package/python3.6.2/lib/python3.6/sre_constants.pyc +0 -0
  2561. package/python3.6.2/lib/python3.6/sre_parse.pyc +0 -0
  2562. package/python3.6.2/lib/python3.6/ssl.pyc +0 -0
  2563. package/python3.6.2/lib/python3.6/stat.pyc +0 -0
  2564. package/python3.6.2/lib/python3.6/statistics.pyc +0 -0
  2565. package/python3.6.2/lib/python3.6/string.pyc +0 -0
  2566. package/python3.6.2/lib/python3.6/stringprep.pyc +0 -0
  2567. package/python3.6.2/lib/python3.6/struct.pyc +0 -0
  2568. package/python3.6.2/lib/python3.6/subprocess.pyc +0 -0
  2569. package/python3.6.2/lib/python3.6/sunau.pyc +0 -0
  2570. package/python3.6.2/lib/python3.6/symbol.pyc +0 -0
  2571. package/python3.6.2/lib/python3.6/symtable.pyc +0 -0
  2572. package/python3.6.2/lib/python3.6/sysconfig.pyc +0 -0
  2573. package/python3.6.2/lib/python3.6/tabnanny.pyc +0 -0
  2574. package/python3.6.2/lib/python3.6/tarfile.pyc +0 -0
  2575. package/python3.6.2/lib/python3.6/telnetlib.pyc +0 -0
  2576. package/python3.6.2/lib/python3.6/tempfile.pyc +0 -0
  2577. package/python3.6.2/lib/python3.6/textwrap.pyc +0 -0
  2578. package/python3.6.2/lib/python3.6/this.pyc +0 -0
  2579. package/python3.6.2/lib/python3.6/threading.pyc +0 -0
  2580. package/python3.6.2/lib/python3.6/timeit.pyc +0 -0
  2581. package/python3.6.2/lib/python3.6/token.pyc +0 -0
  2582. package/python3.6.2/lib/python3.6/tokenize.pyc +0 -0
  2583. package/python3.6.2/lib/python3.6/trace.pyc +0 -0
  2584. package/python3.6.2/lib/python3.6/traceback.pyc +0 -0
  2585. package/python3.6.2/lib/python3.6/tracemalloc.pyc +0 -0
  2586. package/python3.6.2/lib/python3.6/tty.pyc +0 -0
  2587. package/python3.6.2/lib/python3.6/turtle.pyc +0 -0
  2588. package/python3.6.2/lib/python3.6/types.pyc +0 -0
  2589. package/python3.6.2/lib/python3.6/typing.pyc +0 -0
  2590. package/python3.6.2/lib/python3.6/unittest/__init__.pyc +0 -0
  2591. package/python3.6.2/lib/python3.6/unittest/__main__.pyc +0 -0
  2592. package/python3.6.2/lib/python3.6/unittest/case.pyc +0 -0
  2593. package/python3.6.2/lib/python3.6/unittest/loader.pyc +0 -0
  2594. package/python3.6.2/lib/python3.6/unittest/main.pyc +0 -0
  2595. package/python3.6.2/lib/python3.6/unittest/mock.pyc +0 -0
  2596. package/python3.6.2/lib/python3.6/unittest/result.pyc +0 -0
  2597. package/python3.6.2/lib/python3.6/unittest/runner.pyc +0 -0
  2598. package/python3.6.2/lib/python3.6/unittest/signals.pyc +0 -0
  2599. package/python3.6.2/lib/python3.6/unittest/suite.pyc +0 -0
  2600. package/python3.6.2/lib/python3.6/unittest/util.pyc +0 -0
  2601. package/python3.6.2/lib/python3.6/urllib/__init__.pyc +0 -0
  2602. package/python3.6.2/lib/python3.6/urllib/error.pyc +0 -0
  2603. package/python3.6.2/lib/python3.6/urllib/parse.pyc +0 -0
  2604. package/python3.6.2/lib/python3.6/urllib/request.pyc +0 -0
  2605. package/python3.6.2/lib/python3.6/urllib/response.pyc +0 -0
  2606. package/python3.6.2/lib/python3.6/urllib/robotparser.pyc +0 -0
  2607. package/python3.6.2/lib/python3.6/uu.pyc +0 -0
  2608. package/python3.6.2/lib/python3.6/uuid.pyc +0 -0
  2609. package/python3.6.2/lib/python3.6/venv/__init__.pyc +0 -0
  2610. package/python3.6.2/lib/python3.6/venv/__main__.pyc +0 -0
  2611. package/python3.6.2/lib/python3.6/warnings.pyc +0 -0
  2612. package/python3.6.2/lib/python3.6/wave.pyc +0 -0
  2613. package/python3.6.2/lib/python3.6/weakref.pyc +0 -0
  2614. package/python3.6.2/lib/python3.6/webbrowser.pyc +0 -0
  2615. package/python3.6.2/lib/python3.6/wsgiref/__init__.pyc +0 -0
  2616. package/python3.6.2/lib/python3.6/wsgiref/handlers.pyc +0 -0
  2617. package/python3.6.2/lib/python3.6/wsgiref/headers.pyc +0 -0
  2618. package/python3.6.2/lib/python3.6/wsgiref/simple_server.pyc +0 -0
  2619. package/python3.6.2/lib/python3.6/wsgiref/util.pyc +0 -0
  2620. package/python3.6.2/lib/python3.6/wsgiref/validate.pyc +0 -0
  2621. package/python3.6.2/lib/python3.6/xdrlib.pyc +0 -0
  2622. package/python3.6.2/lib/python3.6/xml/__init__.pyc +0 -0
  2623. package/python3.6.2/lib/python3.6/xml/dom/NodeFilter.pyc +0 -0
  2624. package/python3.6.2/lib/python3.6/xml/dom/__init__.pyc +0 -0
  2625. package/python3.6.2/lib/python3.6/xml/dom/domreg.pyc +0 -0
  2626. package/python3.6.2/lib/python3.6/xml/dom/expatbuilder.pyc +0 -0
  2627. package/python3.6.2/lib/python3.6/xml/dom/minicompat.pyc +0 -0
  2628. package/python3.6.2/lib/python3.6/xml/dom/minidom.pyc +0 -0
  2629. package/python3.6.2/lib/python3.6/xml/dom/pulldom.pyc +0 -0
  2630. package/python3.6.2/lib/python3.6/xml/dom/xmlbuilder.pyc +0 -0
  2631. package/python3.6.2/lib/python3.6/xml/etree/ElementInclude.pyc +0 -0
  2632. package/python3.6.2/lib/python3.6/xml/etree/ElementPath.pyc +0 -0
  2633. package/python3.6.2/lib/python3.6/xml/etree/ElementTree.pyc +0 -0
  2634. package/python3.6.2/lib/python3.6/xml/etree/__init__.pyc +0 -0
  2635. package/python3.6.2/lib/python3.6/xml/etree/cElementTree.pyc +0 -0
  2636. package/python3.6.2/lib/python3.6/xml/parsers/__init__.pyc +0 -0
  2637. package/python3.6.2/lib/python3.6/xml/parsers/expat.pyc +0 -0
  2638. package/python3.6.2/lib/python3.6/xml/sax/__init__.pyc +0 -0
  2639. package/python3.6.2/lib/python3.6/xml/sax/_exceptions.pyc +0 -0
  2640. package/python3.6.2/lib/python3.6/xml/sax/expatreader.pyc +0 -0
  2641. package/python3.6.2/lib/python3.6/xml/sax/handler.pyc +0 -0
  2642. package/python3.6.2/lib/python3.6/xml/sax/saxutils.pyc +0 -0
  2643. package/python3.6.2/lib/python3.6/xml/sax/xmlreader.pyc +0 -0
  2644. package/python3.6.2/lib/python3.6/xmlrpc/__init__.pyc +0 -0
  2645. package/python3.6.2/lib/python3.6/xmlrpc/client.pyc +0 -0
  2646. package/python3.6.2/lib/python3.6/xmlrpc/server.pyc +0 -0
  2647. package/python3.6.2/lib/python3.6/zipapp.pyc +0 -0
  2648. package/python3.6.2/lib/python3.6/zipfile.pyc +0 -0
@@ -0,0 +1,3005 @@
1
+ import unittest
2
+ from unittest import mock
3
+ from test import support
4
+ import subprocess
5
+ import sys
6
+ import platform
7
+ import signal
8
+ import io
9
+ import os
10
+ import errno
11
+ import tempfile
12
+ import time
13
+ import selectors
14
+ import sysconfig
15
+ import select
16
+ import shutil
17
+ import gc
18
+ import textwrap
19
+
20
+ try:
21
+ import ctypes
22
+ except ImportError:
23
+ ctypes = None
24
+ else:
25
+ import ctypes.util
26
+
27
+ try:
28
+ import threading
29
+ except ImportError:
30
+ threading = None
31
+
32
+ try:
33
+ import _testcapi
34
+ except ImportError:
35
+ _testcapi = None
36
+
37
+ if support.PGO:
38
+ raise unittest.SkipTest("test is not helpful for PGO")
39
+
40
+ mswindows = (sys.platform == "win32")
41
+
42
+ #
43
+ # Depends on the following external programs: Python
44
+ #
45
+
46
+ if mswindows:
47
+ SETBINARY = ('import msvcrt; msvcrt.setmode(sys.stdout.fileno(), '
48
+ 'os.O_BINARY);')
49
+ else:
50
+ SETBINARY = ''
51
+
52
+ NONEXISTING_CMD = ('nonexisting_i_hope',)
53
+
54
+
55
+ class BaseTestCase(unittest.TestCase):
56
+ def setUp(self):
57
+ # Try to minimize the number of children we have so this test
58
+ # doesn't crash on some buildbots (Alphas in particular).
59
+ support.reap_children()
60
+
61
+ def tearDown(self):
62
+ for inst in subprocess._active:
63
+ inst.wait()
64
+ subprocess._cleanup()
65
+ self.assertFalse(subprocess._active, "subprocess._active not empty")
66
+ self.doCleanups()
67
+ support.reap_children()
68
+
69
+ def assertStderrEqual(self, stderr, expected, msg=None):
70
+ # In a debug build, stuff like "[6580 refs]" is printed to stderr at
71
+ # shutdown time. That frustrates tests trying to check stderr produced
72
+ # from a spawned Python process.
73
+ actual = support.strip_python_stderr(stderr)
74
+ # strip_python_stderr also strips whitespace, so we do too.
75
+ expected = expected.strip()
76
+ self.assertEqual(actual, expected, msg)
77
+
78
+
79
+ class PopenTestException(Exception):
80
+ pass
81
+
82
+
83
+ class PopenExecuteChildRaises(subprocess.Popen):
84
+ """Popen subclass for testing cleanup of subprocess.PIPE filehandles when
85
+ _execute_child fails.
86
+ """
87
+ def _execute_child(self, *args, **kwargs):
88
+ raise PopenTestException("Forced Exception for Test")
89
+
90
+
91
+ class ProcessTestCase(BaseTestCase):
92
+
93
+ def test_io_buffered_by_default(self):
94
+ p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
95
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
96
+ stderr=subprocess.PIPE)
97
+ try:
98
+ self.assertIsInstance(p.stdin, io.BufferedIOBase)
99
+ self.assertIsInstance(p.stdout, io.BufferedIOBase)
100
+ self.assertIsInstance(p.stderr, io.BufferedIOBase)
101
+ finally:
102
+ p.stdin.close()
103
+ p.stdout.close()
104
+ p.stderr.close()
105
+ p.wait()
106
+
107
+ def test_io_unbuffered_works(self):
108
+ p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
109
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
110
+ stderr=subprocess.PIPE, bufsize=0)
111
+ try:
112
+ self.assertIsInstance(p.stdin, io.RawIOBase)
113
+ self.assertIsInstance(p.stdout, io.RawIOBase)
114
+ self.assertIsInstance(p.stderr, io.RawIOBase)
115
+ finally:
116
+ p.stdin.close()
117
+ p.stdout.close()
118
+ p.stderr.close()
119
+ p.wait()
120
+
121
+ def test_call_seq(self):
122
+ # call() function with sequence argument
123
+ rc = subprocess.call([sys.executable, "-c",
124
+ "import sys; sys.exit(47)"])
125
+ self.assertEqual(rc, 47)
126
+
127
+ def test_call_timeout(self):
128
+ # call() function with timeout argument; we want to test that the child
129
+ # process gets killed when the timeout expires. If the child isn't
130
+ # killed, this call will deadlock since subprocess.call waits for the
131
+ # child.
132
+ self.assertRaises(subprocess.TimeoutExpired, subprocess.call,
133
+ [sys.executable, "-c", "while True: pass"],
134
+ timeout=0.1)
135
+
136
+ def test_check_call_zero(self):
137
+ # check_call() function with zero return code
138
+ rc = subprocess.check_call([sys.executable, "-c",
139
+ "import sys; sys.exit(0)"])
140
+ self.assertEqual(rc, 0)
141
+
142
+ def test_check_call_nonzero(self):
143
+ # check_call() function with non-zero return code
144
+ with self.assertRaises(subprocess.CalledProcessError) as c:
145
+ subprocess.check_call([sys.executable, "-c",
146
+ "import sys; sys.exit(47)"])
147
+ self.assertEqual(c.exception.returncode, 47)
148
+
149
+ def test_check_output(self):
150
+ # check_output() function with zero return code
151
+ output = subprocess.check_output(
152
+ [sys.executable, "-c", "print('BDFL')"])
153
+ self.assertIn(b'BDFL', output)
154
+
155
+ def test_check_output_nonzero(self):
156
+ # check_call() function with non-zero return code
157
+ with self.assertRaises(subprocess.CalledProcessError) as c:
158
+ subprocess.check_output(
159
+ [sys.executable, "-c", "import sys; sys.exit(5)"])
160
+ self.assertEqual(c.exception.returncode, 5)
161
+
162
+ def test_check_output_stderr(self):
163
+ # check_output() function stderr redirected to stdout
164
+ output = subprocess.check_output(
165
+ [sys.executable, "-c", "import sys; sys.stderr.write('BDFL')"],
166
+ stderr=subprocess.STDOUT)
167
+ self.assertIn(b'BDFL', output)
168
+
169
+ def test_check_output_stdin_arg(self):
170
+ # check_output() can be called with stdin set to a file
171
+ tf = tempfile.TemporaryFile()
172
+ self.addCleanup(tf.close)
173
+ tf.write(b'pear')
174
+ tf.seek(0)
175
+ output = subprocess.check_output(
176
+ [sys.executable, "-c",
177
+ "import sys; sys.stdout.write(sys.stdin.read().upper())"],
178
+ stdin=tf)
179
+ self.assertIn(b'PEAR', output)
180
+
181
+ def test_check_output_input_arg(self):
182
+ # check_output() can be called with input set to a string
183
+ output = subprocess.check_output(
184
+ [sys.executable, "-c",
185
+ "import sys; sys.stdout.write(sys.stdin.read().upper())"],
186
+ input=b'pear')
187
+ self.assertIn(b'PEAR', output)
188
+
189
+ def test_check_output_stdout_arg(self):
190
+ # check_output() refuses to accept 'stdout' argument
191
+ with self.assertRaises(ValueError) as c:
192
+ output = subprocess.check_output(
193
+ [sys.executable, "-c", "print('will not be run')"],
194
+ stdout=sys.stdout)
195
+ self.fail("Expected ValueError when stdout arg supplied.")
196
+ self.assertIn('stdout', c.exception.args[0])
197
+
198
+ def test_check_output_stdin_with_input_arg(self):
199
+ # check_output() refuses to accept 'stdin' with 'input'
200
+ tf = tempfile.TemporaryFile()
201
+ self.addCleanup(tf.close)
202
+ tf.write(b'pear')
203
+ tf.seek(0)
204
+ with self.assertRaises(ValueError) as c:
205
+ output = subprocess.check_output(
206
+ [sys.executable, "-c", "print('will not be run')"],
207
+ stdin=tf, input=b'hare')
208
+ self.fail("Expected ValueError when stdin and input args supplied.")
209
+ self.assertIn('stdin', c.exception.args[0])
210
+ self.assertIn('input', c.exception.args[0])
211
+
212
+ def test_check_output_timeout(self):
213
+ # check_output() function with timeout arg
214
+ with self.assertRaises(subprocess.TimeoutExpired) as c:
215
+ output = subprocess.check_output(
216
+ [sys.executable, "-c",
217
+ "import sys, time\n"
218
+ "sys.stdout.write('BDFL')\n"
219
+ "sys.stdout.flush()\n"
220
+ "time.sleep(3600)"],
221
+ # Some heavily loaded buildbots (sparc Debian 3.x) require
222
+ # this much time to start and print.
223
+ timeout=3)
224
+ self.fail("Expected TimeoutExpired.")
225
+ self.assertEqual(c.exception.output, b'BDFL')
226
+
227
+ def test_call_kwargs(self):
228
+ # call() function with keyword args
229
+ newenv = os.environ.copy()
230
+ newenv["FRUIT"] = "banana"
231
+ rc = subprocess.call([sys.executable, "-c",
232
+ 'import sys, os;'
233
+ 'sys.exit(os.getenv("FRUIT")=="banana")'],
234
+ env=newenv)
235
+ self.assertEqual(rc, 1)
236
+
237
+ def test_invalid_args(self):
238
+ # Popen() called with invalid arguments should raise TypeError
239
+ # but Popen.__del__ should not complain (issue #12085)
240
+ with support.captured_stderr() as s:
241
+ self.assertRaises(TypeError, subprocess.Popen, invalid_arg_name=1)
242
+ argcount = subprocess.Popen.__init__.__code__.co_argcount
243
+ too_many_args = [0] * (argcount + 1)
244
+ self.assertRaises(TypeError, subprocess.Popen, *too_many_args)
245
+ self.assertEqual(s.getvalue(), '')
246
+
247
+ def test_stdin_none(self):
248
+ # .stdin is None when not redirected
249
+ p = subprocess.Popen([sys.executable, "-c", 'print("banana")'],
250
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
251
+ self.addCleanup(p.stdout.close)
252
+ self.addCleanup(p.stderr.close)
253
+ p.wait()
254
+ self.assertEqual(p.stdin, None)
255
+
256
+ def test_stdout_none(self):
257
+ # .stdout is None when not redirected, and the child's stdout will
258
+ # be inherited from the parent. In order to test this we run a
259
+ # subprocess in a subprocess:
260
+ # this_test
261
+ # \-- subprocess created by this test (parent)
262
+ # \-- subprocess created by the parent subprocess (child)
263
+ # The parent doesn't specify stdout, so the child will use the
264
+ # parent's stdout. This test checks that the message printed by the
265
+ # child goes to the parent stdout. The parent also checks that the
266
+ # child's stdout is None. See #11963.
267
+ code = ('import sys; from subprocess import Popen, PIPE;'
268
+ 'p = Popen([sys.executable, "-c", "print(\'test_stdout_none\')"],'
269
+ ' stdin=PIPE, stderr=PIPE);'
270
+ 'p.wait(); assert p.stdout is None;')
271
+ p = subprocess.Popen([sys.executable, "-c", code],
272
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
273
+ self.addCleanup(p.stdout.close)
274
+ self.addCleanup(p.stderr.close)
275
+ out, err = p.communicate()
276
+ self.assertEqual(p.returncode, 0, err)
277
+ self.assertEqual(out.rstrip(), b'test_stdout_none')
278
+
279
+ def test_stderr_none(self):
280
+ # .stderr is None when not redirected
281
+ p = subprocess.Popen([sys.executable, "-c", 'print("banana")'],
282
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE)
283
+ self.addCleanup(p.stdout.close)
284
+ self.addCleanup(p.stdin.close)
285
+ p.wait()
286
+ self.assertEqual(p.stderr, None)
287
+
288
+ def _assert_python(self, pre_args, **kwargs):
289
+ # We include sys.exit() to prevent the test runner from hanging
290
+ # whenever python is found.
291
+ args = pre_args + ["import sys; sys.exit(47)"]
292
+ p = subprocess.Popen(args, **kwargs)
293
+ p.wait()
294
+ self.assertEqual(47, p.returncode)
295
+
296
+ def test_executable(self):
297
+ # Check that the executable argument works.
298
+ #
299
+ # On Unix (non-Mac and non-Windows), Python looks at args[0] to
300
+ # determine where its standard library is, so we need the directory
301
+ # of args[0] to be valid for the Popen() call to Python to succeed.
302
+ # See also issue #16170 and issue #7774.
303
+ doesnotexist = os.path.join(os.path.dirname(sys.executable),
304
+ "doesnotexist")
305
+ self._assert_python([doesnotexist, "-c"], executable=sys.executable)
306
+
307
+ def test_executable_takes_precedence(self):
308
+ # Check that the executable argument takes precedence over args[0].
309
+ #
310
+ # Verify first that the call succeeds without the executable arg.
311
+ pre_args = [sys.executable, "-c"]
312
+ self._assert_python(pre_args)
313
+ self.assertRaises((FileNotFoundError, PermissionError),
314
+ self._assert_python, pre_args,
315
+ executable="doesnotexist")
316
+
317
+ @unittest.skipIf(mswindows, "executable argument replaces shell")
318
+ def test_executable_replaces_shell(self):
319
+ # Check that the executable argument replaces the default shell
320
+ # when shell=True.
321
+ self._assert_python([], executable=sys.executable, shell=True)
322
+
323
+ # For use in the test_cwd* tests below.
324
+ def _normalize_cwd(self, cwd):
325
+ # Normalize an expected cwd (for Tru64 support).
326
+ # We can't use os.path.realpath since it doesn't expand Tru64 {memb}
327
+ # strings. See bug #1063571.
328
+ with support.change_cwd(cwd):
329
+ return os.getcwd()
330
+
331
+ # For use in the test_cwd* tests below.
332
+ def _split_python_path(self):
333
+ # Return normalized (python_dir, python_base).
334
+ python_path = os.path.realpath(sys.executable)
335
+ return os.path.split(python_path)
336
+
337
+ # For use in the test_cwd* tests below.
338
+ def _assert_cwd(self, expected_cwd, python_arg, **kwargs):
339
+ # Invoke Python via Popen, and assert that (1) the call succeeds,
340
+ # and that (2) the current working directory of the child process
341
+ # matches *expected_cwd*.
342
+ p = subprocess.Popen([python_arg, "-c",
343
+ "import os, sys; "
344
+ "sys.stdout.write(os.getcwd()); "
345
+ "sys.exit(47)"],
346
+ stdout=subprocess.PIPE,
347
+ **kwargs)
348
+ self.addCleanup(p.stdout.close)
349
+ p.wait()
350
+ self.assertEqual(47, p.returncode)
351
+ normcase = os.path.normcase
352
+ self.assertEqual(normcase(expected_cwd),
353
+ normcase(p.stdout.read().decode("utf-8")))
354
+
355
+ def test_cwd(self):
356
+ # Check that cwd changes the cwd for the child process.
357
+ temp_dir = tempfile.gettempdir()
358
+ temp_dir = self._normalize_cwd(temp_dir)
359
+ self._assert_cwd(temp_dir, sys.executable, cwd=temp_dir)
360
+
361
+ def test_cwd_with_pathlike(self):
362
+ temp_dir = tempfile.gettempdir()
363
+ temp_dir = self._normalize_cwd(temp_dir)
364
+
365
+ class _PathLikeObj:
366
+ def __fspath__(self):
367
+ return temp_dir
368
+
369
+ self._assert_cwd(temp_dir, sys.executable, cwd=_PathLikeObj())
370
+
371
+ @unittest.skipIf(mswindows, "pending resolution of issue #15533")
372
+ def test_cwd_with_relative_arg(self):
373
+ # Check that Popen looks for args[0] relative to cwd if args[0]
374
+ # is relative.
375
+ python_dir, python_base = self._split_python_path()
376
+ rel_python = os.path.join(os.curdir, python_base)
377
+ with support.temp_cwd() as wrong_dir:
378
+ # Before calling with the correct cwd, confirm that the call fails
379
+ # without cwd and with the wrong cwd.
380
+ self.assertRaises(FileNotFoundError, subprocess.Popen,
381
+ [rel_python])
382
+ self.assertRaises(FileNotFoundError, subprocess.Popen,
383
+ [rel_python], cwd=wrong_dir)
384
+ python_dir = self._normalize_cwd(python_dir)
385
+ self._assert_cwd(python_dir, rel_python, cwd=python_dir)
386
+
387
+ @unittest.skipIf(mswindows, "pending resolution of issue #15533")
388
+ def test_cwd_with_relative_executable(self):
389
+ # Check that Popen looks for executable relative to cwd if executable
390
+ # is relative (and that executable takes precedence over args[0]).
391
+ python_dir, python_base = self._split_python_path()
392
+ rel_python = os.path.join(os.curdir, python_base)
393
+ doesntexist = "somethingyoudonthave"
394
+ with support.temp_cwd() as wrong_dir:
395
+ # Before calling with the correct cwd, confirm that the call fails
396
+ # without cwd and with the wrong cwd.
397
+ self.assertRaises(FileNotFoundError, subprocess.Popen,
398
+ [doesntexist], executable=rel_python)
399
+ self.assertRaises(FileNotFoundError, subprocess.Popen,
400
+ [doesntexist], executable=rel_python,
401
+ cwd=wrong_dir)
402
+ python_dir = self._normalize_cwd(python_dir)
403
+ self._assert_cwd(python_dir, doesntexist, executable=rel_python,
404
+ cwd=python_dir)
405
+
406
+ def test_cwd_with_absolute_arg(self):
407
+ # Check that Popen can find the executable when the cwd is wrong
408
+ # if args[0] is an absolute path.
409
+ python_dir, python_base = self._split_python_path()
410
+ abs_python = os.path.join(python_dir, python_base)
411
+ rel_python = os.path.join(os.curdir, python_base)
412
+ with support.temp_dir() as wrong_dir:
413
+ # Before calling with an absolute path, confirm that using a
414
+ # relative path fails.
415
+ self.assertRaises(FileNotFoundError, subprocess.Popen,
416
+ [rel_python], cwd=wrong_dir)
417
+ wrong_dir = self._normalize_cwd(wrong_dir)
418
+ self._assert_cwd(wrong_dir, abs_python, cwd=wrong_dir)
419
+
420
+ @unittest.skipIf(sys.base_prefix != sys.prefix,
421
+ 'Test is not venv-compatible')
422
+ def test_executable_with_cwd(self):
423
+ python_dir, python_base = self._split_python_path()
424
+ python_dir = self._normalize_cwd(python_dir)
425
+ self._assert_cwd(python_dir, "somethingyoudonthave",
426
+ executable=sys.executable, cwd=python_dir)
427
+
428
+ @unittest.skipIf(sys.base_prefix != sys.prefix,
429
+ 'Test is not venv-compatible')
430
+ @unittest.skipIf(sysconfig.is_python_build(),
431
+ "need an installed Python. See #7774")
432
+ def test_executable_without_cwd(self):
433
+ # For a normal installation, it should work without 'cwd'
434
+ # argument. For test runs in the build directory, see #7774.
435
+ self._assert_cwd(os.getcwd(), "somethingyoudonthave",
436
+ executable=sys.executable)
437
+
438
+ def test_stdin_pipe(self):
439
+ # stdin redirection
440
+ p = subprocess.Popen([sys.executable, "-c",
441
+ 'import sys; sys.exit(sys.stdin.read() == "pear")'],
442
+ stdin=subprocess.PIPE)
443
+ p.stdin.write(b"pear")
444
+ p.stdin.close()
445
+ p.wait()
446
+ self.assertEqual(p.returncode, 1)
447
+
448
+ def test_stdin_filedes(self):
449
+ # stdin is set to open file descriptor
450
+ tf = tempfile.TemporaryFile()
451
+ self.addCleanup(tf.close)
452
+ d = tf.fileno()
453
+ os.write(d, b"pear")
454
+ os.lseek(d, 0, 0)
455
+ p = subprocess.Popen([sys.executable, "-c",
456
+ 'import sys; sys.exit(sys.stdin.read() == "pear")'],
457
+ stdin=d)
458
+ p.wait()
459
+ self.assertEqual(p.returncode, 1)
460
+
461
+ def test_stdin_fileobj(self):
462
+ # stdin is set to open file object
463
+ tf = tempfile.TemporaryFile()
464
+ self.addCleanup(tf.close)
465
+ tf.write(b"pear")
466
+ tf.seek(0)
467
+ p = subprocess.Popen([sys.executable, "-c",
468
+ 'import sys; sys.exit(sys.stdin.read() == "pear")'],
469
+ stdin=tf)
470
+ p.wait()
471
+ self.assertEqual(p.returncode, 1)
472
+
473
+ def test_stdout_pipe(self):
474
+ # stdout redirection
475
+ p = subprocess.Popen([sys.executable, "-c",
476
+ 'import sys; sys.stdout.write("orange")'],
477
+ stdout=subprocess.PIPE)
478
+ with p:
479
+ self.assertEqual(p.stdout.read(), b"orange")
480
+
481
+ def test_stdout_filedes(self):
482
+ # stdout is set to open file descriptor
483
+ tf = tempfile.TemporaryFile()
484
+ self.addCleanup(tf.close)
485
+ d = tf.fileno()
486
+ p = subprocess.Popen([sys.executable, "-c",
487
+ 'import sys; sys.stdout.write("orange")'],
488
+ stdout=d)
489
+ p.wait()
490
+ os.lseek(d, 0, 0)
491
+ self.assertEqual(os.read(d, 1024), b"orange")
492
+
493
+ def test_stdout_fileobj(self):
494
+ # stdout is set to open file object
495
+ tf = tempfile.TemporaryFile()
496
+ self.addCleanup(tf.close)
497
+ p = subprocess.Popen([sys.executable, "-c",
498
+ 'import sys; sys.stdout.write("orange")'],
499
+ stdout=tf)
500
+ p.wait()
501
+ tf.seek(0)
502
+ self.assertEqual(tf.read(), b"orange")
503
+
504
+ def test_stderr_pipe(self):
505
+ # stderr redirection
506
+ p = subprocess.Popen([sys.executable, "-c",
507
+ 'import sys; sys.stderr.write("strawberry")'],
508
+ stderr=subprocess.PIPE)
509
+ with p:
510
+ self.assertStderrEqual(p.stderr.read(), b"strawberry")
511
+
512
+ def test_stderr_filedes(self):
513
+ # stderr is set to open file descriptor
514
+ tf = tempfile.TemporaryFile()
515
+ self.addCleanup(tf.close)
516
+ d = tf.fileno()
517
+ p = subprocess.Popen([sys.executable, "-c",
518
+ 'import sys; sys.stderr.write("strawberry")'],
519
+ stderr=d)
520
+ p.wait()
521
+ os.lseek(d, 0, 0)
522
+ self.assertStderrEqual(os.read(d, 1024), b"strawberry")
523
+
524
+ def test_stderr_fileobj(self):
525
+ # stderr is set to open file object
526
+ tf = tempfile.TemporaryFile()
527
+ self.addCleanup(tf.close)
528
+ p = subprocess.Popen([sys.executable, "-c",
529
+ 'import sys; sys.stderr.write("strawberry")'],
530
+ stderr=tf)
531
+ p.wait()
532
+ tf.seek(0)
533
+ self.assertStderrEqual(tf.read(), b"strawberry")
534
+
535
+ def test_stderr_redirect_with_no_stdout_redirect(self):
536
+ # test stderr=STDOUT while stdout=None (not set)
537
+
538
+ # - grandchild prints to stderr
539
+ # - child redirects grandchild's stderr to its stdout
540
+ # - the parent should get grandchild's stderr in child's stdout
541
+ p = subprocess.Popen([sys.executable, "-c",
542
+ 'import sys, subprocess;'
543
+ 'rc = subprocess.call([sys.executable, "-c",'
544
+ ' "import sys;"'
545
+ ' "sys.stderr.write(\'42\')"],'
546
+ ' stderr=subprocess.STDOUT);'
547
+ 'sys.exit(rc)'],
548
+ stdout=subprocess.PIPE,
549
+ stderr=subprocess.PIPE)
550
+ stdout, stderr = p.communicate()
551
+ #NOTE: stdout should get stderr from grandchild
552
+ self.assertStderrEqual(stdout, b'42')
553
+ self.assertStderrEqual(stderr, b'') # should be empty
554
+ self.assertEqual(p.returncode, 0)
555
+
556
+ def test_stdout_stderr_pipe(self):
557
+ # capture stdout and stderr to the same pipe
558
+ p = subprocess.Popen([sys.executable, "-c",
559
+ 'import sys;'
560
+ 'sys.stdout.write("apple");'
561
+ 'sys.stdout.flush();'
562
+ 'sys.stderr.write("orange")'],
563
+ stdout=subprocess.PIPE,
564
+ stderr=subprocess.STDOUT)
565
+ with p:
566
+ self.assertStderrEqual(p.stdout.read(), b"appleorange")
567
+
568
+ def test_stdout_stderr_file(self):
569
+ # capture stdout and stderr to the same open file
570
+ tf = tempfile.TemporaryFile()
571
+ self.addCleanup(tf.close)
572
+ p = subprocess.Popen([sys.executable, "-c",
573
+ 'import sys;'
574
+ 'sys.stdout.write("apple");'
575
+ 'sys.stdout.flush();'
576
+ 'sys.stderr.write("orange")'],
577
+ stdout=tf,
578
+ stderr=tf)
579
+ p.wait()
580
+ tf.seek(0)
581
+ self.assertStderrEqual(tf.read(), b"appleorange")
582
+
583
+ def test_stdout_filedes_of_stdout(self):
584
+ # stdout is set to 1 (#1531862).
585
+ # To avoid printing the text on stdout, we do something similar to
586
+ # test_stdout_none (see above). The parent subprocess calls the child
587
+ # subprocess passing stdout=1, and this test uses stdout=PIPE in
588
+ # order to capture and check the output of the parent. See #11963.
589
+ code = ('import sys, subprocess; '
590
+ 'rc = subprocess.call([sys.executable, "-c", '
591
+ ' "import os, sys; sys.exit(os.write(sys.stdout.fileno(), '
592
+ 'b\'test with stdout=1\'))"], stdout=1); '
593
+ 'assert rc == 18')
594
+ p = subprocess.Popen([sys.executable, "-c", code],
595
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
596
+ self.addCleanup(p.stdout.close)
597
+ self.addCleanup(p.stderr.close)
598
+ out, err = p.communicate()
599
+ self.assertEqual(p.returncode, 0, err)
600
+ self.assertEqual(out.rstrip(), b'test with stdout=1')
601
+
602
+ def test_stdout_devnull(self):
603
+ p = subprocess.Popen([sys.executable, "-c",
604
+ 'for i in range(10240):'
605
+ 'print("x" * 1024)'],
606
+ stdout=subprocess.DEVNULL)
607
+ p.wait()
608
+ self.assertEqual(p.stdout, None)
609
+
610
+ def test_stderr_devnull(self):
611
+ p = subprocess.Popen([sys.executable, "-c",
612
+ 'import sys\n'
613
+ 'for i in range(10240):'
614
+ 'sys.stderr.write("x" * 1024)'],
615
+ stderr=subprocess.DEVNULL)
616
+ p.wait()
617
+ self.assertEqual(p.stderr, None)
618
+
619
+ def test_stdin_devnull(self):
620
+ p = subprocess.Popen([sys.executable, "-c",
621
+ 'import sys;'
622
+ 'sys.stdin.read(1)'],
623
+ stdin=subprocess.DEVNULL)
624
+ p.wait()
625
+ self.assertEqual(p.stdin, None)
626
+
627
+ def test_env(self):
628
+ newenv = os.environ.copy()
629
+ newenv["FRUIT"] = "orange"
630
+ with subprocess.Popen([sys.executable, "-c",
631
+ 'import sys,os;'
632
+ 'sys.stdout.write(os.getenv("FRUIT"))'],
633
+ stdout=subprocess.PIPE,
634
+ env=newenv) as p:
635
+ stdout, stderr = p.communicate()
636
+ self.assertEqual(stdout, b"orange")
637
+
638
+ # Windows requires at least the SYSTEMROOT environment variable to start
639
+ # Python
640
+ @unittest.skipIf(sys.platform == 'win32',
641
+ 'cannot test an empty env on Windows')
642
+ @unittest.skipIf(sysconfig.get_config_var('Py_ENABLE_SHARED') is not None,
643
+ 'the python library cannot be loaded '
644
+ 'with an empty environment')
645
+ def test_empty_env(self):
646
+ with subprocess.Popen([sys.executable, "-c",
647
+ 'import os; '
648
+ 'print(list(os.environ.keys()))'],
649
+ stdout=subprocess.PIPE,
650
+ env={}) as p:
651
+ stdout, stderr = p.communicate()
652
+ self.assertIn(stdout.strip(),
653
+ (b"[]",
654
+ # Mac OS X adds __CF_USER_TEXT_ENCODING variable to an empty
655
+ # environment
656
+ b"['__CF_USER_TEXT_ENCODING']"))
657
+
658
+ def test_invalid_cmd(self):
659
+ # null character in the command name
660
+ cmd = sys.executable + '\0'
661
+ with self.assertRaises(ValueError):
662
+ subprocess.Popen([cmd, "-c", "pass"])
663
+
664
+ # null character in the command argument
665
+ with self.assertRaises(ValueError):
666
+ subprocess.Popen([sys.executable, "-c", "pass#\0"])
667
+
668
+ def test_invalid_env(self):
669
+ # null character in the enviroment variable name
670
+ newenv = os.environ.copy()
671
+ newenv["FRUIT\0VEGETABLE"] = "cabbage"
672
+ with self.assertRaises(ValueError):
673
+ subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
674
+
675
+ # null character in the enviroment variable value
676
+ newenv = os.environ.copy()
677
+ newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
678
+ with self.assertRaises(ValueError):
679
+ subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
680
+
681
+ # equal character in the enviroment variable name
682
+ newenv = os.environ.copy()
683
+ newenv["FRUIT=ORANGE"] = "lemon"
684
+ with self.assertRaises(ValueError):
685
+ subprocess.Popen([sys.executable, "-c", "pass"], env=newenv)
686
+
687
+ # equal character in the enviroment variable value
688
+ newenv = os.environ.copy()
689
+ newenv["FRUIT"] = "orange=lemon"
690
+ with subprocess.Popen([sys.executable, "-c",
691
+ 'import sys, os;'
692
+ 'sys.stdout.write(os.getenv("FRUIT"))'],
693
+ stdout=subprocess.PIPE,
694
+ env=newenv) as p:
695
+ stdout, stderr = p.communicate()
696
+ self.assertEqual(stdout, b"orange=lemon")
697
+
698
+ def test_communicate_stdin(self):
699
+ p = subprocess.Popen([sys.executable, "-c",
700
+ 'import sys;'
701
+ 'sys.exit(sys.stdin.read() == "pear")'],
702
+ stdin=subprocess.PIPE)
703
+ p.communicate(b"pear")
704
+ self.assertEqual(p.returncode, 1)
705
+
706
+ def test_communicate_stdout(self):
707
+ p = subprocess.Popen([sys.executable, "-c",
708
+ 'import sys; sys.stdout.write("pineapple")'],
709
+ stdout=subprocess.PIPE)
710
+ (stdout, stderr) = p.communicate()
711
+ self.assertEqual(stdout, b"pineapple")
712
+ self.assertEqual(stderr, None)
713
+
714
+ def test_communicate_stderr(self):
715
+ p = subprocess.Popen([sys.executable, "-c",
716
+ 'import sys; sys.stderr.write("pineapple")'],
717
+ stderr=subprocess.PIPE)
718
+ (stdout, stderr) = p.communicate()
719
+ self.assertEqual(stdout, None)
720
+ self.assertStderrEqual(stderr, b"pineapple")
721
+
722
+ def test_communicate(self):
723
+ p = subprocess.Popen([sys.executable, "-c",
724
+ 'import sys,os;'
725
+ 'sys.stderr.write("pineapple");'
726
+ 'sys.stdout.write(sys.stdin.read())'],
727
+ stdin=subprocess.PIPE,
728
+ stdout=subprocess.PIPE,
729
+ stderr=subprocess.PIPE)
730
+ self.addCleanup(p.stdout.close)
731
+ self.addCleanup(p.stderr.close)
732
+ self.addCleanup(p.stdin.close)
733
+ (stdout, stderr) = p.communicate(b"banana")
734
+ self.assertEqual(stdout, b"banana")
735
+ self.assertStderrEqual(stderr, b"pineapple")
736
+
737
+ def test_communicate_timeout(self):
738
+ p = subprocess.Popen([sys.executable, "-c",
739
+ 'import sys,os,time;'
740
+ 'sys.stderr.write("pineapple\\n");'
741
+ 'time.sleep(1);'
742
+ 'sys.stderr.write("pear\\n");'
743
+ 'sys.stdout.write(sys.stdin.read())'],
744
+ universal_newlines=True,
745
+ stdin=subprocess.PIPE,
746
+ stdout=subprocess.PIPE,
747
+ stderr=subprocess.PIPE)
748
+ self.assertRaises(subprocess.TimeoutExpired, p.communicate, "banana",
749
+ timeout=0.3)
750
+ # Make sure we can keep waiting for it, and that we get the whole output
751
+ # after it completes.
752
+ (stdout, stderr) = p.communicate()
753
+ self.assertEqual(stdout, "banana")
754
+ self.assertStderrEqual(stderr.encode(), b"pineapple\npear\n")
755
+
756
+ def test_communicate_timeout_large_output(self):
757
+ # Test an expiring timeout while the child is outputting lots of data.
758
+ p = subprocess.Popen([sys.executable, "-c",
759
+ 'import sys,os,time;'
760
+ 'sys.stdout.write("a" * (64 * 1024));'
761
+ 'time.sleep(0.2);'
762
+ 'sys.stdout.write("a" * (64 * 1024));'
763
+ 'time.sleep(0.2);'
764
+ 'sys.stdout.write("a" * (64 * 1024));'
765
+ 'time.sleep(0.2);'
766
+ 'sys.stdout.write("a" * (64 * 1024));'],
767
+ stdout=subprocess.PIPE)
768
+ self.assertRaises(subprocess.TimeoutExpired, p.communicate, timeout=0.4)
769
+ (stdout, _) = p.communicate()
770
+ self.assertEqual(len(stdout), 4 * 64 * 1024)
771
+
772
+ # Test for the fd leak reported in http://bugs.python.org/issue2791.
773
+ def test_communicate_pipe_fd_leak(self):
774
+ for stdin_pipe in (False, True):
775
+ for stdout_pipe in (False, True):
776
+ for stderr_pipe in (False, True):
777
+ options = {}
778
+ if stdin_pipe:
779
+ options['stdin'] = subprocess.PIPE
780
+ if stdout_pipe:
781
+ options['stdout'] = subprocess.PIPE
782
+ if stderr_pipe:
783
+ options['stderr'] = subprocess.PIPE
784
+ if not options:
785
+ continue
786
+ p = subprocess.Popen((sys.executable, "-c", "pass"), **options)
787
+ p.communicate()
788
+ if p.stdin is not None:
789
+ self.assertTrue(p.stdin.closed)
790
+ if p.stdout is not None:
791
+ self.assertTrue(p.stdout.closed)
792
+ if p.stderr is not None:
793
+ self.assertTrue(p.stderr.closed)
794
+
795
+ def test_communicate_returns(self):
796
+ # communicate() should return None if no redirection is active
797
+ p = subprocess.Popen([sys.executable, "-c",
798
+ "import sys; sys.exit(47)"])
799
+ (stdout, stderr) = p.communicate()
800
+ self.assertEqual(stdout, None)
801
+ self.assertEqual(stderr, None)
802
+
803
+ def test_communicate_pipe_buf(self):
804
+ # communicate() with writes larger than pipe_buf
805
+ # This test will probably deadlock rather than fail, if
806
+ # communicate() does not work properly.
807
+ x, y = os.pipe()
808
+ os.close(x)
809
+ os.close(y)
810
+ p = subprocess.Popen([sys.executable, "-c",
811
+ 'import sys,os;'
812
+ 'sys.stdout.write(sys.stdin.read(47));'
813
+ 'sys.stderr.write("x" * %d);'
814
+ 'sys.stdout.write(sys.stdin.read())' %
815
+ support.PIPE_MAX_SIZE],
816
+ stdin=subprocess.PIPE,
817
+ stdout=subprocess.PIPE,
818
+ stderr=subprocess.PIPE)
819
+ self.addCleanup(p.stdout.close)
820
+ self.addCleanup(p.stderr.close)
821
+ self.addCleanup(p.stdin.close)
822
+ string_to_write = b"a" * support.PIPE_MAX_SIZE
823
+ (stdout, stderr) = p.communicate(string_to_write)
824
+ self.assertEqual(stdout, string_to_write)
825
+
826
+ def test_writes_before_communicate(self):
827
+ # stdin.write before communicate()
828
+ p = subprocess.Popen([sys.executable, "-c",
829
+ 'import sys,os;'
830
+ 'sys.stdout.write(sys.stdin.read())'],
831
+ stdin=subprocess.PIPE,
832
+ stdout=subprocess.PIPE,
833
+ stderr=subprocess.PIPE)
834
+ self.addCleanup(p.stdout.close)
835
+ self.addCleanup(p.stderr.close)
836
+ self.addCleanup(p.stdin.close)
837
+ p.stdin.write(b"banana")
838
+ (stdout, stderr) = p.communicate(b"split")
839
+ self.assertEqual(stdout, b"bananasplit")
840
+ self.assertStderrEqual(stderr, b"")
841
+
842
+ def test_universal_newlines(self):
843
+ p = subprocess.Popen([sys.executable, "-c",
844
+ 'import sys,os;' + SETBINARY +
845
+ 'buf = sys.stdout.buffer;'
846
+ 'buf.write(sys.stdin.readline().encode());'
847
+ 'buf.flush();'
848
+ 'buf.write(b"line2\\n");'
849
+ 'buf.flush();'
850
+ 'buf.write(sys.stdin.read().encode());'
851
+ 'buf.flush();'
852
+ 'buf.write(b"line4\\n");'
853
+ 'buf.flush();'
854
+ 'buf.write(b"line5\\r\\n");'
855
+ 'buf.flush();'
856
+ 'buf.write(b"line6\\r");'
857
+ 'buf.flush();'
858
+ 'buf.write(b"\\nline7");'
859
+ 'buf.flush();'
860
+ 'buf.write(b"\\nline8");'],
861
+ stdin=subprocess.PIPE,
862
+ stdout=subprocess.PIPE,
863
+ universal_newlines=1)
864
+ with p:
865
+ p.stdin.write("line1\n")
866
+ p.stdin.flush()
867
+ self.assertEqual(p.stdout.readline(), "line1\n")
868
+ p.stdin.write("line3\n")
869
+ p.stdin.close()
870
+ self.addCleanup(p.stdout.close)
871
+ self.assertEqual(p.stdout.readline(),
872
+ "line2\n")
873
+ self.assertEqual(p.stdout.read(6),
874
+ "line3\n")
875
+ self.assertEqual(p.stdout.read(),
876
+ "line4\nline5\nline6\nline7\nline8")
877
+
878
+ def test_universal_newlines_communicate(self):
879
+ # universal newlines through communicate()
880
+ p = subprocess.Popen([sys.executable, "-c",
881
+ 'import sys,os;' + SETBINARY +
882
+ 'buf = sys.stdout.buffer;'
883
+ 'buf.write(b"line2\\n");'
884
+ 'buf.flush();'
885
+ 'buf.write(b"line4\\n");'
886
+ 'buf.flush();'
887
+ 'buf.write(b"line5\\r\\n");'
888
+ 'buf.flush();'
889
+ 'buf.write(b"line6\\r");'
890
+ 'buf.flush();'
891
+ 'buf.write(b"\\nline7");'
892
+ 'buf.flush();'
893
+ 'buf.write(b"\\nline8");'],
894
+ stderr=subprocess.PIPE,
895
+ stdout=subprocess.PIPE,
896
+ universal_newlines=1)
897
+ self.addCleanup(p.stdout.close)
898
+ self.addCleanup(p.stderr.close)
899
+ (stdout, stderr) = p.communicate()
900
+ self.assertEqual(stdout,
901
+ "line2\nline4\nline5\nline6\nline7\nline8")
902
+
903
+ def test_universal_newlines_communicate_stdin(self):
904
+ # universal newlines through communicate(), with only stdin
905
+ p = subprocess.Popen([sys.executable, "-c",
906
+ 'import sys,os;' + SETBINARY + textwrap.dedent('''
907
+ s = sys.stdin.readline()
908
+ assert s == "line1\\n", repr(s)
909
+ s = sys.stdin.read()
910
+ assert s == "line3\\n", repr(s)
911
+ ''')],
912
+ stdin=subprocess.PIPE,
913
+ universal_newlines=1)
914
+ (stdout, stderr) = p.communicate("line1\nline3\n")
915
+ self.assertEqual(p.returncode, 0)
916
+
917
+ def test_universal_newlines_communicate_input_none(self):
918
+ # Test communicate(input=None) with universal newlines.
919
+ #
920
+ # We set stdout to PIPE because, as of this writing, a different
921
+ # code path is tested when the number of pipes is zero or one.
922
+ p = subprocess.Popen([sys.executable, "-c", "pass"],
923
+ stdin=subprocess.PIPE,
924
+ stdout=subprocess.PIPE,
925
+ universal_newlines=True)
926
+ p.communicate()
927
+ self.assertEqual(p.returncode, 0)
928
+
929
+ def test_universal_newlines_communicate_stdin_stdout_stderr(self):
930
+ # universal newlines through communicate(), with stdin, stdout, stderr
931
+ p = subprocess.Popen([sys.executable, "-c",
932
+ 'import sys,os;' + SETBINARY + textwrap.dedent('''
933
+ s = sys.stdin.buffer.readline()
934
+ sys.stdout.buffer.write(s)
935
+ sys.stdout.buffer.write(b"line2\\r")
936
+ sys.stderr.buffer.write(b"eline2\\n")
937
+ s = sys.stdin.buffer.read()
938
+ sys.stdout.buffer.write(s)
939
+ sys.stdout.buffer.write(b"line4\\n")
940
+ sys.stdout.buffer.write(b"line5\\r\\n")
941
+ sys.stderr.buffer.write(b"eline6\\r")
942
+ sys.stderr.buffer.write(b"eline7\\r\\nz")
943
+ ''')],
944
+ stdin=subprocess.PIPE,
945
+ stderr=subprocess.PIPE,
946
+ stdout=subprocess.PIPE,
947
+ universal_newlines=True)
948
+ self.addCleanup(p.stdout.close)
949
+ self.addCleanup(p.stderr.close)
950
+ (stdout, stderr) = p.communicate("line1\nline3\n")
951
+ self.assertEqual(p.returncode, 0)
952
+ self.assertEqual("line1\nline2\nline3\nline4\nline5\n", stdout)
953
+ # Python debug build push something like "[42442 refs]\n"
954
+ # to stderr at exit of subprocess.
955
+ # Don't use assertStderrEqual because it strips CR and LF from output.
956
+ self.assertTrue(stderr.startswith("eline2\neline6\neline7\n"))
957
+
958
+ def test_universal_newlines_communicate_encodings(self):
959
+ # Check that universal newlines mode works for various encodings,
960
+ # in particular for encodings in the UTF-16 and UTF-32 families.
961
+ # See issue #15595.
962
+ #
963
+ # UTF-16 and UTF-32-BE are sufficient to check both with BOM and
964
+ # without, and UTF-16 and UTF-32.
965
+ for encoding in ['utf-16', 'utf-32-be']:
966
+ code = ("import sys; "
967
+ r"sys.stdout.buffer.write('1\r\n2\r3\n4'.encode('%s'))" %
968
+ encoding)
969
+ args = [sys.executable, '-c', code]
970
+ # We set stdin to be non-None because, as of this writing,
971
+ # a different code path is used when the number of pipes is
972
+ # zero or one.
973
+ popen = subprocess.Popen(args,
974
+ stdin=subprocess.PIPE,
975
+ stdout=subprocess.PIPE,
976
+ encoding=encoding)
977
+ stdout, stderr = popen.communicate(input='')
978
+ self.assertEqual(stdout, '1\n2\n3\n4')
979
+
980
+ def test_communicate_errors(self):
981
+ for errors, expected in [
982
+ ('ignore', ''),
983
+ ('replace', '\ufffd\ufffd'),
984
+ ('surrogateescape', '\udc80\udc80'),
985
+ ('backslashreplace', '\\x80\\x80'),
986
+ ]:
987
+ code = ("import sys; "
988
+ r"sys.stdout.buffer.write(b'[\x80\x80]')")
989
+ args = [sys.executable, '-c', code]
990
+ # We set stdin to be non-None because, as of this writing,
991
+ # a different code path is used when the number of pipes is
992
+ # zero or one.
993
+ popen = subprocess.Popen(args,
994
+ stdin=subprocess.PIPE,
995
+ stdout=subprocess.PIPE,
996
+ encoding='utf-8',
997
+ errors=errors)
998
+ stdout, stderr = popen.communicate(input='')
999
+ self.assertEqual(stdout, '[{}]'.format(expected))
1000
+
1001
+ def test_no_leaking(self):
1002
+ # Make sure we leak no resources
1003
+ if not mswindows:
1004
+ max_handles = 1026 # too much for most UNIX systems
1005
+ else:
1006
+ max_handles = 2050 # too much for (at least some) Windows setups
1007
+ handles = []
1008
+ tmpdir = tempfile.mkdtemp()
1009
+ try:
1010
+ for i in range(max_handles):
1011
+ try:
1012
+ tmpfile = os.path.join(tmpdir, support.TESTFN)
1013
+ handles.append(os.open(tmpfile, os.O_WRONLY|os.O_CREAT))
1014
+ except OSError as e:
1015
+ if e.errno != errno.EMFILE:
1016
+ raise
1017
+ break
1018
+ else:
1019
+ self.skipTest("failed to reach the file descriptor limit "
1020
+ "(tried %d)" % max_handles)
1021
+ # Close a couple of them (should be enough for a subprocess)
1022
+ for i in range(10):
1023
+ os.close(handles.pop())
1024
+ # Loop creating some subprocesses. If one of them leaks some fds,
1025
+ # the next loop iteration will fail by reaching the max fd limit.
1026
+ for i in range(15):
1027
+ p = subprocess.Popen([sys.executable, "-c",
1028
+ "import sys;"
1029
+ "sys.stdout.write(sys.stdin.read())"],
1030
+ stdin=subprocess.PIPE,
1031
+ stdout=subprocess.PIPE,
1032
+ stderr=subprocess.PIPE)
1033
+ data = p.communicate(b"lime")[0]
1034
+ self.assertEqual(data, b"lime")
1035
+ finally:
1036
+ for h in handles:
1037
+ os.close(h)
1038
+ shutil.rmtree(tmpdir)
1039
+
1040
+ def test_list2cmdline(self):
1041
+ self.assertEqual(subprocess.list2cmdline(['a b c', 'd', 'e']),
1042
+ '"a b c" d e')
1043
+ self.assertEqual(subprocess.list2cmdline(['ab"c', '\\', 'd']),
1044
+ 'ab\\"c \\ d')
1045
+ self.assertEqual(subprocess.list2cmdline(['ab"c', ' \\', 'd']),
1046
+ 'ab\\"c " \\\\" d')
1047
+ self.assertEqual(subprocess.list2cmdline(['a\\\\\\b', 'de fg', 'h']),
1048
+ 'a\\\\\\b "de fg" h')
1049
+ self.assertEqual(subprocess.list2cmdline(['a\\"b', 'c', 'd']),
1050
+ 'a\\\\\\"b c d')
1051
+ self.assertEqual(subprocess.list2cmdline(['a\\\\b c', 'd', 'e']),
1052
+ '"a\\\\b c" d e')
1053
+ self.assertEqual(subprocess.list2cmdline(['a\\\\b\\ c', 'd', 'e']),
1054
+ '"a\\\\b\\ c" d e')
1055
+ self.assertEqual(subprocess.list2cmdline(['ab', '']),
1056
+ 'ab ""')
1057
+
1058
+ def test_poll(self):
1059
+ p = subprocess.Popen([sys.executable, "-c",
1060
+ "import os; os.read(0, 1)"],
1061
+ stdin=subprocess.PIPE)
1062
+ self.addCleanup(p.stdin.close)
1063
+ self.assertIsNone(p.poll())
1064
+ os.write(p.stdin.fileno(), b'A')
1065
+ p.wait()
1066
+ # Subsequent invocations should just return the returncode
1067
+ self.assertEqual(p.poll(), 0)
1068
+
1069
+ def test_wait(self):
1070
+ p = subprocess.Popen([sys.executable, "-c", "pass"])
1071
+ self.assertEqual(p.wait(), 0)
1072
+ # Subsequent invocations should just return the returncode
1073
+ self.assertEqual(p.wait(), 0)
1074
+
1075
+ def test_wait_timeout(self):
1076
+ p = subprocess.Popen([sys.executable,
1077
+ "-c", "import time; time.sleep(0.3)"])
1078
+ with self.assertRaises(subprocess.TimeoutExpired) as c:
1079
+ p.wait(timeout=0.0001)
1080
+ self.assertIn("0.0001", str(c.exception)) # For coverage of __str__.
1081
+ # Some heavily loaded buildbots (sparc Debian 3.x) require this much
1082
+ # time to start.
1083
+ self.assertEqual(p.wait(timeout=3), 0)
1084
+
1085
+ def test_wait_endtime(self):
1086
+ """Confirm that the deprecated endtime parameter warns."""
1087
+ p = subprocess.Popen([sys.executable, "-c", "pass"])
1088
+ try:
1089
+ with self.assertWarns(DeprecationWarning) as warn_cm:
1090
+ p.wait(endtime=time.time()+0.01)
1091
+ except subprocess.TimeoutExpired:
1092
+ pass # We're not testing endtime timeout behavior.
1093
+ finally:
1094
+ p.kill()
1095
+ self.assertIn('test_subprocess.py', warn_cm.filename)
1096
+ self.assertIn('endtime', str(warn_cm.warning))
1097
+
1098
+ def test_invalid_bufsize(self):
1099
+ # an invalid type of the bufsize argument should raise
1100
+ # TypeError.
1101
+ with self.assertRaises(TypeError):
1102
+ subprocess.Popen([sys.executable, "-c", "pass"], "orange")
1103
+
1104
+ def test_bufsize_is_none(self):
1105
+ # bufsize=None should be the same as bufsize=0.
1106
+ p = subprocess.Popen([sys.executable, "-c", "pass"], None)
1107
+ self.assertEqual(p.wait(), 0)
1108
+ # Again with keyword arg
1109
+ p = subprocess.Popen([sys.executable, "-c", "pass"], bufsize=None)
1110
+ self.assertEqual(p.wait(), 0)
1111
+
1112
+ def _test_bufsize_equal_one(self, line, expected, universal_newlines):
1113
+ # subprocess may deadlock with bufsize=1, see issue #21332
1114
+ with subprocess.Popen([sys.executable, "-c", "import sys;"
1115
+ "sys.stdout.write(sys.stdin.readline());"
1116
+ "sys.stdout.flush()"],
1117
+ stdin=subprocess.PIPE,
1118
+ stdout=subprocess.PIPE,
1119
+ stderr=subprocess.DEVNULL,
1120
+ bufsize=1,
1121
+ universal_newlines=universal_newlines) as p:
1122
+ p.stdin.write(line) # expect that it flushes the line in text mode
1123
+ os.close(p.stdin.fileno()) # close it without flushing the buffer
1124
+ read_line = p.stdout.readline()
1125
+ with support.SuppressCrashReport():
1126
+ try:
1127
+ p.stdin.close()
1128
+ except OSError:
1129
+ pass
1130
+ p.stdin = None
1131
+ self.assertEqual(p.returncode, 0)
1132
+ self.assertEqual(read_line, expected)
1133
+
1134
+ def test_bufsize_equal_one_text_mode(self):
1135
+ # line is flushed in text mode with bufsize=1.
1136
+ # we should get the full line in return
1137
+ line = "line\n"
1138
+ self._test_bufsize_equal_one(line, line, universal_newlines=True)
1139
+
1140
+ def test_bufsize_equal_one_binary_mode(self):
1141
+ # line is not flushed in binary mode with bufsize=1.
1142
+ # we should get empty response
1143
+ line = b'line' + os.linesep.encode() # assume ascii-based locale
1144
+ self._test_bufsize_equal_one(line, b'', universal_newlines=False)
1145
+
1146
+ def test_leaking_fds_on_error(self):
1147
+ # see bug #5179: Popen leaks file descriptors to PIPEs if
1148
+ # the child fails to execute; this will eventually exhaust
1149
+ # the maximum number of open fds. 1024 seems a very common
1150
+ # value for that limit, but Windows has 2048, so we loop
1151
+ # 1024 times (each call leaked two fds).
1152
+ for i in range(1024):
1153
+ with self.assertRaises(OSError) as c:
1154
+ subprocess.Popen(NONEXISTING_CMD,
1155
+ stdout=subprocess.PIPE,
1156
+ stderr=subprocess.PIPE)
1157
+ # ignore errors that indicate the command was not found
1158
+ if c.exception.errno not in (errno.ENOENT, errno.EACCES):
1159
+ raise c.exception
1160
+
1161
+ def test_nonexisting_with_pipes(self):
1162
+ # bpo-30121: Popen with pipes must close properly pipes on error.
1163
+ # Previously, os.close() was called with a Windows handle which is not
1164
+ # a valid file descriptor.
1165
+ #
1166
+ # Run the test in a subprocess to control how the CRT reports errors
1167
+ # and to get stderr content.
1168
+ try:
1169
+ import msvcrt
1170
+ msvcrt.CrtSetReportMode
1171
+ except (AttributeError, ImportError):
1172
+ self.skipTest("need msvcrt.CrtSetReportMode")
1173
+
1174
+ code = textwrap.dedent(f"""
1175
+ import msvcrt
1176
+ import subprocess
1177
+
1178
+ cmd = {NONEXISTING_CMD!r}
1179
+
1180
+ for report_type in [msvcrt.CRT_WARN,
1181
+ msvcrt.CRT_ERROR,
1182
+ msvcrt.CRT_ASSERT]:
1183
+ msvcrt.CrtSetReportMode(report_type, msvcrt.CRTDBG_MODE_FILE)
1184
+ msvcrt.CrtSetReportFile(report_type, msvcrt.CRTDBG_FILE_STDERR)
1185
+
1186
+ try:
1187
+ subprocess.Popen([cmd],
1188
+ stdout=subprocess.PIPE,
1189
+ stderr=subprocess.PIPE)
1190
+ except OSError:
1191
+ pass
1192
+ """)
1193
+ cmd = [sys.executable, "-c", code]
1194
+ proc = subprocess.Popen(cmd,
1195
+ stderr=subprocess.PIPE,
1196
+ universal_newlines=True)
1197
+ with proc:
1198
+ stderr = proc.communicate()[1]
1199
+ self.assertEqual(stderr, "")
1200
+ self.assertEqual(proc.returncode, 0)
1201
+
1202
+ @unittest.skipIf(threading is None, "threading required")
1203
+ def test_double_close_on_error(self):
1204
+ # Issue #18851
1205
+ fds = []
1206
+ def open_fds():
1207
+ for i in range(20):
1208
+ fds.extend(os.pipe())
1209
+ time.sleep(0.001)
1210
+ t = threading.Thread(target=open_fds)
1211
+ t.start()
1212
+ try:
1213
+ with self.assertRaises(EnvironmentError):
1214
+ subprocess.Popen(NONEXISTING_CMD,
1215
+ stdin=subprocess.PIPE,
1216
+ stdout=subprocess.PIPE,
1217
+ stderr=subprocess.PIPE)
1218
+ finally:
1219
+ t.join()
1220
+ exc = None
1221
+ for fd in fds:
1222
+ # If a double close occurred, some of those fds will
1223
+ # already have been closed by mistake, and os.close()
1224
+ # here will raise.
1225
+ try:
1226
+ os.close(fd)
1227
+ except OSError as e:
1228
+ exc = e
1229
+ if exc is not None:
1230
+ raise exc
1231
+
1232
+ @unittest.skipIf(threading is None, "threading required")
1233
+ def test_threadsafe_wait(self):
1234
+ """Issue21291: Popen.wait() needs to be threadsafe for returncode."""
1235
+ proc = subprocess.Popen([sys.executable, '-c',
1236
+ 'import time; time.sleep(12)'])
1237
+ self.assertEqual(proc.returncode, None)
1238
+ results = []
1239
+
1240
+ def kill_proc_timer_thread():
1241
+ results.append(('thread-start-poll-result', proc.poll()))
1242
+ # terminate it from the thread and wait for the result.
1243
+ proc.kill()
1244
+ proc.wait()
1245
+ results.append(('thread-after-kill-and-wait', proc.returncode))
1246
+ # this wait should be a no-op given the above.
1247
+ proc.wait()
1248
+ results.append(('thread-after-second-wait', proc.returncode))
1249
+
1250
+ # This is a timing sensitive test, the failure mode is
1251
+ # triggered when both the main thread and this thread are in
1252
+ # the wait() call at once. The delay here is to allow the
1253
+ # main thread to most likely be blocked in its wait() call.
1254
+ t = threading.Timer(0.2, kill_proc_timer_thread)
1255
+ t.start()
1256
+
1257
+ if mswindows:
1258
+ expected_errorcode = 1
1259
+ else:
1260
+ # Should be -9 because of the proc.kill() from the thread.
1261
+ expected_errorcode = -9
1262
+
1263
+ # Wait for the process to finish; the thread should kill it
1264
+ # long before it finishes on its own. Supplying a timeout
1265
+ # triggers a different code path for better coverage.
1266
+ proc.wait(timeout=20)
1267
+ self.assertEqual(proc.returncode, expected_errorcode,
1268
+ msg="unexpected result in wait from main thread")
1269
+
1270
+ # This should be a no-op with no change in returncode.
1271
+ proc.wait()
1272
+ self.assertEqual(proc.returncode, expected_errorcode,
1273
+ msg="unexpected result in second main wait.")
1274
+
1275
+ t.join()
1276
+ # Ensure that all of the thread results are as expected.
1277
+ # When a race condition occurs in wait(), the returncode could
1278
+ # be set by the wrong thread that doesn't actually have it
1279
+ # leading to an incorrect value.
1280
+ self.assertEqual([('thread-start-poll-result', None),
1281
+ ('thread-after-kill-and-wait', expected_errorcode),
1282
+ ('thread-after-second-wait', expected_errorcode)],
1283
+ results)
1284
+
1285
+ def test_issue8780(self):
1286
+ # Ensure that stdout is inherited from the parent
1287
+ # if stdout=PIPE is not used
1288
+ code = ';'.join((
1289
+ 'import subprocess, sys',
1290
+ 'retcode = subprocess.call('
1291
+ "[sys.executable, '-c', 'print(\"Hello World!\")'])",
1292
+ 'assert retcode == 0'))
1293
+ output = subprocess.check_output([sys.executable, '-c', code])
1294
+ self.assertTrue(output.startswith(b'Hello World!'), ascii(output))
1295
+
1296
+ def test_handles_closed_on_exception(self):
1297
+ # If CreateProcess exits with an error, ensure the
1298
+ # duplicate output handles are released
1299
+ ifhandle, ifname = tempfile.mkstemp()
1300
+ ofhandle, ofname = tempfile.mkstemp()
1301
+ efhandle, efname = tempfile.mkstemp()
1302
+ try:
1303
+ subprocess.Popen (["*"], stdin=ifhandle, stdout=ofhandle,
1304
+ stderr=efhandle)
1305
+ except OSError:
1306
+ os.close(ifhandle)
1307
+ os.remove(ifname)
1308
+ os.close(ofhandle)
1309
+ os.remove(ofname)
1310
+ os.close(efhandle)
1311
+ os.remove(efname)
1312
+ self.assertFalse(os.path.exists(ifname))
1313
+ self.assertFalse(os.path.exists(ofname))
1314
+ self.assertFalse(os.path.exists(efname))
1315
+
1316
+ def test_communicate_epipe(self):
1317
+ # Issue 10963: communicate() should hide EPIPE
1318
+ p = subprocess.Popen([sys.executable, "-c", 'pass'],
1319
+ stdin=subprocess.PIPE,
1320
+ stdout=subprocess.PIPE,
1321
+ stderr=subprocess.PIPE)
1322
+ self.addCleanup(p.stdout.close)
1323
+ self.addCleanup(p.stderr.close)
1324
+ self.addCleanup(p.stdin.close)
1325
+ p.communicate(b"x" * 2**20)
1326
+
1327
+ def test_communicate_epipe_only_stdin(self):
1328
+ # Issue 10963: communicate() should hide EPIPE
1329
+ p = subprocess.Popen([sys.executable, "-c", 'pass'],
1330
+ stdin=subprocess.PIPE)
1331
+ self.addCleanup(p.stdin.close)
1332
+ p.wait()
1333
+ p.communicate(b"x" * 2**20)
1334
+
1335
+ @unittest.skipUnless(hasattr(signal, 'SIGUSR1'),
1336
+ "Requires signal.SIGUSR1")
1337
+ @unittest.skipUnless(hasattr(os, 'kill'),
1338
+ "Requires os.kill")
1339
+ @unittest.skipUnless(hasattr(os, 'getppid'),
1340
+ "Requires os.getppid")
1341
+ def test_communicate_eintr(self):
1342
+ # Issue #12493: communicate() should handle EINTR
1343
+ def handler(signum, frame):
1344
+ pass
1345
+ old_handler = signal.signal(signal.SIGUSR1, handler)
1346
+ self.addCleanup(signal.signal, signal.SIGUSR1, old_handler)
1347
+
1348
+ args = [sys.executable, "-c",
1349
+ 'import os, signal;'
1350
+ 'os.kill(os.getppid(), signal.SIGUSR1)']
1351
+ for stream in ('stdout', 'stderr'):
1352
+ kw = {stream: subprocess.PIPE}
1353
+ with subprocess.Popen(args, **kw) as process:
1354
+ # communicate() will be interrupted by SIGUSR1
1355
+ process.communicate()
1356
+
1357
+
1358
+ # This test is Linux-ish specific for simplicity to at least have
1359
+ # some coverage. It is not a platform specific bug.
1360
+ @unittest.skipUnless(os.path.isdir('/proc/%d/fd' % os.getpid()),
1361
+ "Linux specific")
1362
+ def test_failed_child_execute_fd_leak(self):
1363
+ """Test for the fork() failure fd leak reported in issue16327."""
1364
+ fd_directory = '/proc/%d/fd' % os.getpid()
1365
+ fds_before_popen = os.listdir(fd_directory)
1366
+ with self.assertRaises(PopenTestException):
1367
+ PopenExecuteChildRaises(
1368
+ [sys.executable, '-c', 'pass'], stdin=subprocess.PIPE,
1369
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
1370
+
1371
+ # NOTE: This test doesn't verify that the real _execute_child
1372
+ # does not close the file descriptors itself on the way out
1373
+ # during an exception. Code inspection has confirmed that.
1374
+
1375
+ fds_after_exception = os.listdir(fd_directory)
1376
+ self.assertEqual(fds_before_popen, fds_after_exception)
1377
+
1378
+ @unittest.skipIf(mswindows, "behavior currently not supported on Windows")
1379
+ def test_file_not_found_includes_filename(self):
1380
+ with self.assertRaises(FileNotFoundError) as c:
1381
+ subprocess.call(['/opt/nonexistent_binary', 'with', 'some', 'args'])
1382
+ self.assertEqual(c.exception.filename, '/opt/nonexistent_binary')
1383
+
1384
+ @unittest.skipIf(mswindows, "behavior currently not supported on Windows")
1385
+ def test_file_not_found_with_bad_cwd(self):
1386
+ with self.assertRaises(FileNotFoundError) as c:
1387
+ subprocess.Popen(['exit', '0'], cwd='/some/nonexistent/directory')
1388
+ self.assertEqual(c.exception.filename, '/some/nonexistent/directory')
1389
+
1390
+
1391
+ class RunFuncTestCase(BaseTestCase):
1392
+ def run_python(self, code, **kwargs):
1393
+ """Run Python code in a subprocess using subprocess.run"""
1394
+ argv = [sys.executable, "-c", code]
1395
+ return subprocess.run(argv, **kwargs)
1396
+
1397
+ def test_returncode(self):
1398
+ # call() function with sequence argument
1399
+ cp = self.run_python("import sys; sys.exit(47)")
1400
+ self.assertEqual(cp.returncode, 47)
1401
+ with self.assertRaises(subprocess.CalledProcessError):
1402
+ cp.check_returncode()
1403
+
1404
+ def test_check(self):
1405
+ with self.assertRaises(subprocess.CalledProcessError) as c:
1406
+ self.run_python("import sys; sys.exit(47)", check=True)
1407
+ self.assertEqual(c.exception.returncode, 47)
1408
+
1409
+ def test_check_zero(self):
1410
+ # check_returncode shouldn't raise when returncode is zero
1411
+ cp = self.run_python("import sys; sys.exit(0)", check=True)
1412
+ self.assertEqual(cp.returncode, 0)
1413
+
1414
+ def test_timeout(self):
1415
+ # run() function with timeout argument; we want to test that the child
1416
+ # process gets killed when the timeout expires. If the child isn't
1417
+ # killed, this call will deadlock since subprocess.run waits for the
1418
+ # child.
1419
+ with self.assertRaises(subprocess.TimeoutExpired):
1420
+ self.run_python("while True: pass", timeout=0.0001)
1421
+
1422
+ def test_capture_stdout(self):
1423
+ # capture stdout with zero return code
1424
+ cp = self.run_python("print('BDFL')", stdout=subprocess.PIPE)
1425
+ self.assertIn(b'BDFL', cp.stdout)
1426
+
1427
+ def test_capture_stderr(self):
1428
+ cp = self.run_python("import sys; sys.stderr.write('BDFL')",
1429
+ stderr=subprocess.PIPE)
1430
+ self.assertIn(b'BDFL', cp.stderr)
1431
+
1432
+ def test_check_output_stdin_arg(self):
1433
+ # run() can be called with stdin set to a file
1434
+ tf = tempfile.TemporaryFile()
1435
+ self.addCleanup(tf.close)
1436
+ tf.write(b'pear')
1437
+ tf.seek(0)
1438
+ cp = self.run_python(
1439
+ "import sys; sys.stdout.write(sys.stdin.read().upper())",
1440
+ stdin=tf, stdout=subprocess.PIPE)
1441
+ self.assertIn(b'PEAR', cp.stdout)
1442
+
1443
+ def test_check_output_input_arg(self):
1444
+ # check_output() can be called with input set to a string
1445
+ cp = self.run_python(
1446
+ "import sys; sys.stdout.write(sys.stdin.read().upper())",
1447
+ input=b'pear', stdout=subprocess.PIPE)
1448
+ self.assertIn(b'PEAR', cp.stdout)
1449
+
1450
+ def test_check_output_stdin_with_input_arg(self):
1451
+ # run() refuses to accept 'stdin' with 'input'
1452
+ tf = tempfile.TemporaryFile()
1453
+ self.addCleanup(tf.close)
1454
+ tf.write(b'pear')
1455
+ tf.seek(0)
1456
+ with self.assertRaises(ValueError,
1457
+ msg="Expected ValueError when stdin and input args supplied.") as c:
1458
+ output = self.run_python("print('will not be run')",
1459
+ stdin=tf, input=b'hare')
1460
+ self.assertIn('stdin', c.exception.args[0])
1461
+ self.assertIn('input', c.exception.args[0])
1462
+
1463
+ def test_check_output_timeout(self):
1464
+ with self.assertRaises(subprocess.TimeoutExpired) as c:
1465
+ cp = self.run_python((
1466
+ "import sys, time\n"
1467
+ "sys.stdout.write('BDFL')\n"
1468
+ "sys.stdout.flush()\n"
1469
+ "time.sleep(3600)"),
1470
+ # Some heavily loaded buildbots (sparc Debian 3.x) require
1471
+ # this much time to start and print.
1472
+ timeout=3, stdout=subprocess.PIPE)
1473
+ self.assertEqual(c.exception.output, b'BDFL')
1474
+ # output is aliased to stdout
1475
+ self.assertEqual(c.exception.stdout, b'BDFL')
1476
+
1477
+ def test_run_kwargs(self):
1478
+ newenv = os.environ.copy()
1479
+ newenv["FRUIT"] = "banana"
1480
+ cp = self.run_python(('import sys, os;'
1481
+ 'sys.exit(33 if os.getenv("FRUIT")=="banana" else 31)'),
1482
+ env=newenv)
1483
+ self.assertEqual(cp.returncode, 33)
1484
+
1485
+
1486
+ @unittest.skipIf(mswindows, "POSIX specific tests")
1487
+ class POSIXProcessTestCase(BaseTestCase):
1488
+
1489
+ def setUp(self):
1490
+ super().setUp()
1491
+ self._nonexistent_dir = "/_this/pa.th/does/not/exist"
1492
+
1493
+ def _get_chdir_exception(self):
1494
+ try:
1495
+ os.chdir(self._nonexistent_dir)
1496
+ except OSError as e:
1497
+ # This avoids hard coding the errno value or the OS perror()
1498
+ # string and instead capture the exception that we want to see
1499
+ # below for comparison.
1500
+ desired_exception = e
1501
+ desired_exception.strerror += ': ' + repr(self._nonexistent_dir)
1502
+ else:
1503
+ self.fail("chdir to nonexistent directory %s succeeded." %
1504
+ self._nonexistent_dir)
1505
+ return desired_exception
1506
+
1507
+ def test_exception_cwd(self):
1508
+ """Test error in the child raised in the parent for a bad cwd."""
1509
+ desired_exception = self._get_chdir_exception()
1510
+ try:
1511
+ p = subprocess.Popen([sys.executable, "-c", ""],
1512
+ cwd=self._nonexistent_dir)
1513
+ except OSError as e:
1514
+ # Test that the child process chdir failure actually makes
1515
+ # it up to the parent process as the correct exception.
1516
+ self.assertEqual(desired_exception.errno, e.errno)
1517
+ self.assertEqual(desired_exception.strerror, e.strerror)
1518
+ else:
1519
+ self.fail("Expected OSError: %s" % desired_exception)
1520
+
1521
+ def test_exception_bad_executable(self):
1522
+ """Test error in the child raised in the parent for a bad executable."""
1523
+ desired_exception = self._get_chdir_exception()
1524
+ try:
1525
+ p = subprocess.Popen([sys.executable, "-c", ""],
1526
+ executable=self._nonexistent_dir)
1527
+ except OSError as e:
1528
+ # Test that the child process exec failure actually makes
1529
+ # it up to the parent process as the correct exception.
1530
+ self.assertEqual(desired_exception.errno, e.errno)
1531
+ self.assertEqual(desired_exception.strerror, e.strerror)
1532
+ else:
1533
+ self.fail("Expected OSError: %s" % desired_exception)
1534
+
1535
+ def test_exception_bad_args_0(self):
1536
+ """Test error in the child raised in the parent for a bad args[0]."""
1537
+ desired_exception = self._get_chdir_exception()
1538
+ try:
1539
+ p = subprocess.Popen([self._nonexistent_dir, "-c", ""])
1540
+ except OSError as e:
1541
+ # Test that the child process exec failure actually makes
1542
+ # it up to the parent process as the correct exception.
1543
+ self.assertEqual(desired_exception.errno, e.errno)
1544
+ self.assertEqual(desired_exception.strerror, e.strerror)
1545
+ else:
1546
+ self.fail("Expected OSError: %s" % desired_exception)
1547
+
1548
+ # We mock the __del__ method for Popen in the next two tests
1549
+ # because it does cleanup based on the pid returned by fork_exec
1550
+ # along with issuing a resource warning if it still exists. Since
1551
+ # we don't actually spawn a process in these tests we can forego
1552
+ # the destructor. An alternative would be to set _child_created to
1553
+ # False before the destructor is called but there is no easy way
1554
+ # to do that
1555
+ class PopenNoDestructor(subprocess.Popen):
1556
+ def __del__(self):
1557
+ pass
1558
+
1559
+ @mock.patch("subprocess._posixsubprocess.fork_exec")
1560
+ def test_exception_errpipe_normal(self, fork_exec):
1561
+ """Test error passing done through errpipe_write in the good case"""
1562
+ def proper_error(*args):
1563
+ errpipe_write = args[13]
1564
+ # Write the hex for the error code EISDIR: 'is a directory'
1565
+ err_code = '{:x}'.format(errno.EISDIR).encode()
1566
+ os.write(errpipe_write, b"OSError:" + err_code + b":")
1567
+ return 0
1568
+
1569
+ fork_exec.side_effect = proper_error
1570
+
1571
+ with mock.patch("subprocess.os.waitpid",
1572
+ side_effect=ChildProcessError):
1573
+ with self.assertRaises(IsADirectoryError):
1574
+ self.PopenNoDestructor(["non_existent_command"])
1575
+
1576
+ @mock.patch("subprocess._posixsubprocess.fork_exec")
1577
+ def test_exception_errpipe_bad_data(self, fork_exec):
1578
+ """Test error passing done through errpipe_write where its not
1579
+ in the expected format"""
1580
+ error_data = b"\xFF\x00\xDE\xAD"
1581
+ def bad_error(*args):
1582
+ errpipe_write = args[13]
1583
+ # Anything can be in the pipe, no assumptions should
1584
+ # be made about its encoding, so we'll write some
1585
+ # arbitrary hex bytes to test it out
1586
+ os.write(errpipe_write, error_data)
1587
+ return 0
1588
+
1589
+ fork_exec.side_effect = bad_error
1590
+
1591
+ with mock.patch("subprocess.os.waitpid",
1592
+ side_effect=ChildProcessError):
1593
+ with self.assertRaises(subprocess.SubprocessError) as e:
1594
+ self.PopenNoDestructor(["non_existent_command"])
1595
+
1596
+ self.assertIn(repr(error_data), str(e.exception))
1597
+
1598
+
1599
+ def test_restore_signals(self):
1600
+ # Code coverage for both values of restore_signals to make sure it
1601
+ # at least does not blow up.
1602
+ # A test for behavior would be complex. Contributions welcome.
1603
+ subprocess.call([sys.executable, "-c", ""], restore_signals=True)
1604
+ subprocess.call([sys.executable, "-c", ""], restore_signals=False)
1605
+
1606
+ def test_start_new_session(self):
1607
+ # For code coverage of calling setsid(). We don't care if we get an
1608
+ # EPERM error from it depending on the test execution environment, that
1609
+ # still indicates that it was called.
1610
+ try:
1611
+ output = subprocess.check_output(
1612
+ [sys.executable, "-c",
1613
+ "import os; print(os.getpgid(os.getpid()))"],
1614
+ start_new_session=True)
1615
+ except OSError as e:
1616
+ if e.errno != errno.EPERM:
1617
+ raise
1618
+ else:
1619
+ parent_pgid = os.getpgid(os.getpid())
1620
+ child_pgid = int(output)
1621
+ self.assertNotEqual(parent_pgid, child_pgid)
1622
+
1623
+ def test_run_abort(self):
1624
+ # returncode handles signal termination
1625
+ with support.SuppressCrashReport():
1626
+ p = subprocess.Popen([sys.executable, "-c",
1627
+ 'import os; os.abort()'])
1628
+ p.wait()
1629
+ self.assertEqual(-p.returncode, signal.SIGABRT)
1630
+
1631
+ def test_CalledProcessError_str_signal(self):
1632
+ err = subprocess.CalledProcessError(-int(signal.SIGABRT), "fake cmd")
1633
+ error_string = str(err)
1634
+ # We're relying on the repr() of the signal.Signals intenum to provide
1635
+ # the word signal, the signal name and the numeric value.
1636
+ self.assertIn("signal", error_string.lower())
1637
+ # We're not being specific about the signal name as some signals have
1638
+ # multiple names and which name is revealed can vary.
1639
+ self.assertIn("SIG", error_string)
1640
+ self.assertIn(str(signal.SIGABRT), error_string)
1641
+
1642
+ def test_CalledProcessError_str_unknown_signal(self):
1643
+ err = subprocess.CalledProcessError(-9876543, "fake cmd")
1644
+ error_string = str(err)
1645
+ self.assertIn("unknown signal 9876543.", error_string)
1646
+
1647
+ def test_CalledProcessError_str_non_zero(self):
1648
+ err = subprocess.CalledProcessError(2, "fake cmd")
1649
+ error_string = str(err)
1650
+ self.assertIn("non-zero exit status 2.", error_string)
1651
+
1652
+ def test_preexec(self):
1653
+ # DISCLAIMER: Setting environment variables is *not* a good use
1654
+ # of a preexec_fn. This is merely a test.
1655
+ p = subprocess.Popen([sys.executable, "-c",
1656
+ 'import sys,os;'
1657
+ 'sys.stdout.write(os.getenv("FRUIT"))'],
1658
+ stdout=subprocess.PIPE,
1659
+ preexec_fn=lambda: os.putenv("FRUIT", "apple"))
1660
+ with p:
1661
+ self.assertEqual(p.stdout.read(), b"apple")
1662
+
1663
+ def test_preexec_exception(self):
1664
+ def raise_it():
1665
+ raise ValueError("What if two swallows carried a coconut?")
1666
+ try:
1667
+ p = subprocess.Popen([sys.executable, "-c", ""],
1668
+ preexec_fn=raise_it)
1669
+ except subprocess.SubprocessError as e:
1670
+ self.assertTrue(
1671
+ subprocess._posixsubprocess,
1672
+ "Expected a ValueError from the preexec_fn")
1673
+ except ValueError as e:
1674
+ self.assertIn("coconut", e.args[0])
1675
+ else:
1676
+ self.fail("Exception raised by preexec_fn did not make it "
1677
+ "to the parent process.")
1678
+
1679
+ class _TestExecuteChildPopen(subprocess.Popen):
1680
+ """Used to test behavior at the end of _execute_child."""
1681
+ def __init__(self, testcase, *args, **kwargs):
1682
+ self._testcase = testcase
1683
+ subprocess.Popen.__init__(self, *args, **kwargs)
1684
+
1685
+ def _execute_child(self, *args, **kwargs):
1686
+ try:
1687
+ subprocess.Popen._execute_child(self, *args, **kwargs)
1688
+ finally:
1689
+ # Open a bunch of file descriptors and verify that
1690
+ # none of them are the same as the ones the Popen
1691
+ # instance is using for stdin/stdout/stderr.
1692
+ devzero_fds = [os.open("/dev/zero", os.O_RDONLY)
1693
+ for _ in range(8)]
1694
+ try:
1695
+ for fd in devzero_fds:
1696
+ self._testcase.assertNotIn(
1697
+ fd, (self.stdin.fileno(), self.stdout.fileno(),
1698
+ self.stderr.fileno()),
1699
+ msg="At least one fd was closed early.")
1700
+ finally:
1701
+ for fd in devzero_fds:
1702
+ os.close(fd)
1703
+
1704
+ @unittest.skipIf(not os.path.exists("/dev/zero"), "/dev/zero required.")
1705
+ def test_preexec_errpipe_does_not_double_close_pipes(self):
1706
+ """Issue16140: Don't double close pipes on preexec error."""
1707
+
1708
+ def raise_it():
1709
+ raise subprocess.SubprocessError(
1710
+ "force the _execute_child() errpipe_data path.")
1711
+
1712
+ with self.assertRaises(subprocess.SubprocessError):
1713
+ self._TestExecuteChildPopen(
1714
+ self, [sys.executable, "-c", "pass"],
1715
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
1716
+ stderr=subprocess.PIPE, preexec_fn=raise_it)
1717
+
1718
+ def test_preexec_gc_module_failure(self):
1719
+ # This tests the code that disables garbage collection if the child
1720
+ # process will execute any Python.
1721
+ def raise_runtime_error():
1722
+ raise RuntimeError("this shouldn't escape")
1723
+ enabled = gc.isenabled()
1724
+ orig_gc_disable = gc.disable
1725
+ orig_gc_isenabled = gc.isenabled
1726
+ try:
1727
+ gc.disable()
1728
+ self.assertFalse(gc.isenabled())
1729
+ subprocess.call([sys.executable, '-c', ''],
1730
+ preexec_fn=lambda: None)
1731
+ self.assertFalse(gc.isenabled(),
1732
+ "Popen enabled gc when it shouldn't.")
1733
+
1734
+ gc.enable()
1735
+ self.assertTrue(gc.isenabled())
1736
+ subprocess.call([sys.executable, '-c', ''],
1737
+ preexec_fn=lambda: None)
1738
+ self.assertTrue(gc.isenabled(), "Popen left gc disabled.")
1739
+
1740
+ gc.disable = raise_runtime_error
1741
+ self.assertRaises(RuntimeError, subprocess.Popen,
1742
+ [sys.executable, '-c', ''],
1743
+ preexec_fn=lambda: None)
1744
+
1745
+ del gc.isenabled # force an AttributeError
1746
+ self.assertRaises(AttributeError, subprocess.Popen,
1747
+ [sys.executable, '-c', ''],
1748
+ preexec_fn=lambda: None)
1749
+ finally:
1750
+ gc.disable = orig_gc_disable
1751
+ gc.isenabled = orig_gc_isenabled
1752
+ if not enabled:
1753
+ gc.disable()
1754
+
1755
+ @unittest.skipIf(
1756
+ sys.platform == 'darwin', 'setrlimit() seems to fail on OS X')
1757
+ def test_preexec_fork_failure(self):
1758
+ # The internal code did not preserve the previous exception when
1759
+ # re-enabling garbage collection
1760
+ try:
1761
+ from resource import getrlimit, setrlimit, RLIMIT_NPROC
1762
+ except ImportError as err:
1763
+ self.skipTest(err) # RLIMIT_NPROC is specific to Linux and BSD
1764
+ limits = getrlimit(RLIMIT_NPROC)
1765
+ [_, hard] = limits
1766
+ setrlimit(RLIMIT_NPROC, (0, hard))
1767
+ self.addCleanup(setrlimit, RLIMIT_NPROC, limits)
1768
+ try:
1769
+ subprocess.call([sys.executable, '-c', ''],
1770
+ preexec_fn=lambda: None)
1771
+ except BlockingIOError:
1772
+ # Forking should raise EAGAIN, translated to BlockingIOError
1773
+ pass
1774
+ else:
1775
+ self.skipTest('RLIMIT_NPROC had no effect; probably superuser')
1776
+
1777
+ def test_args_string(self):
1778
+ # args is a string
1779
+ fd, fname = tempfile.mkstemp()
1780
+ # reopen in text mode
1781
+ with open(fd, "w", errors="surrogateescape") as fobj:
1782
+ fobj.write("#!%s\n" % support.unix_shell)
1783
+ fobj.write("exec '%s' -c 'import sys; sys.exit(47)'\n" %
1784
+ sys.executable)
1785
+ os.chmod(fname, 0o700)
1786
+ p = subprocess.Popen(fname)
1787
+ p.wait()
1788
+ os.remove(fname)
1789
+ self.assertEqual(p.returncode, 47)
1790
+
1791
+ def test_invalid_args(self):
1792
+ # invalid arguments should raise ValueError
1793
+ self.assertRaises(ValueError, subprocess.call,
1794
+ [sys.executable, "-c",
1795
+ "import sys; sys.exit(47)"],
1796
+ startupinfo=47)
1797
+ self.assertRaises(ValueError, subprocess.call,
1798
+ [sys.executable, "-c",
1799
+ "import sys; sys.exit(47)"],
1800
+ creationflags=47)
1801
+
1802
+ def test_shell_sequence(self):
1803
+ # Run command through the shell (sequence)
1804
+ newenv = os.environ.copy()
1805
+ newenv["FRUIT"] = "apple"
1806
+ p = subprocess.Popen(["echo $FRUIT"], shell=1,
1807
+ stdout=subprocess.PIPE,
1808
+ env=newenv)
1809
+ with p:
1810
+ self.assertEqual(p.stdout.read().strip(b" \t\r\n\f"), b"apple")
1811
+
1812
+ def test_shell_string(self):
1813
+ # Run command through the shell (string)
1814
+ newenv = os.environ.copy()
1815
+ newenv["FRUIT"] = "apple"
1816
+ p = subprocess.Popen("echo $FRUIT", shell=1,
1817
+ stdout=subprocess.PIPE,
1818
+ env=newenv)
1819
+ with p:
1820
+ self.assertEqual(p.stdout.read().strip(b" \t\r\n\f"), b"apple")
1821
+
1822
+ def test_call_string(self):
1823
+ # call() function with string argument on UNIX
1824
+ fd, fname = tempfile.mkstemp()
1825
+ # reopen in text mode
1826
+ with open(fd, "w", errors="surrogateescape") as fobj:
1827
+ fobj.write("#!%s\n" % support.unix_shell)
1828
+ fobj.write("exec '%s' -c 'import sys; sys.exit(47)'\n" %
1829
+ sys.executable)
1830
+ os.chmod(fname, 0o700)
1831
+ rc = subprocess.call(fname)
1832
+ os.remove(fname)
1833
+ self.assertEqual(rc, 47)
1834
+
1835
+ def test_specific_shell(self):
1836
+ # Issue #9265: Incorrect name passed as arg[0].
1837
+ shells = []
1838
+ for prefix in ['/bin', '/usr/bin/', '/usr/local/bin']:
1839
+ for name in ['bash', 'ksh']:
1840
+ sh = os.path.join(prefix, name)
1841
+ if os.path.isfile(sh):
1842
+ shells.append(sh)
1843
+ if not shells: # Will probably work for any shell but csh.
1844
+ self.skipTest("bash or ksh required for this test")
1845
+ sh = '/bin/sh'
1846
+ if os.path.isfile(sh) and not os.path.islink(sh):
1847
+ # Test will fail if /bin/sh is a symlink to csh.
1848
+ shells.append(sh)
1849
+ for sh in shells:
1850
+ p = subprocess.Popen("echo $0", executable=sh, shell=True,
1851
+ stdout=subprocess.PIPE)
1852
+ with p:
1853
+ self.assertEqual(p.stdout.read().strip(), bytes(sh, 'ascii'))
1854
+
1855
+ def _kill_process(self, method, *args):
1856
+ # Do not inherit file handles from the parent.
1857
+ # It should fix failures on some platforms.
1858
+ # Also set the SIGINT handler to the default to make sure it's not
1859
+ # being ignored (some tests rely on that.)
1860
+ old_handler = signal.signal(signal.SIGINT, signal.default_int_handler)
1861
+ try:
1862
+ p = subprocess.Popen([sys.executable, "-c", """if 1:
1863
+ import sys, time
1864
+ sys.stdout.write('x\\n')
1865
+ sys.stdout.flush()
1866
+ time.sleep(30)
1867
+ """],
1868
+ close_fds=True,
1869
+ stdin=subprocess.PIPE,
1870
+ stdout=subprocess.PIPE,
1871
+ stderr=subprocess.PIPE)
1872
+ finally:
1873
+ signal.signal(signal.SIGINT, old_handler)
1874
+ # Wait for the interpreter to be completely initialized before
1875
+ # sending any signal.
1876
+ p.stdout.read(1)
1877
+ getattr(p, method)(*args)
1878
+ return p
1879
+
1880
+ @unittest.skipIf(sys.platform.startswith(('netbsd', 'openbsd')),
1881
+ "Due to known OS bug (issue #16762)")
1882
+ def _kill_dead_process(self, method, *args):
1883
+ # Do not inherit file handles from the parent.
1884
+ # It should fix failures on some platforms.
1885
+ p = subprocess.Popen([sys.executable, "-c", """if 1:
1886
+ import sys, time
1887
+ sys.stdout.write('x\\n')
1888
+ sys.stdout.flush()
1889
+ """],
1890
+ close_fds=True,
1891
+ stdin=subprocess.PIPE,
1892
+ stdout=subprocess.PIPE,
1893
+ stderr=subprocess.PIPE)
1894
+ # Wait for the interpreter to be completely initialized before
1895
+ # sending any signal.
1896
+ p.stdout.read(1)
1897
+ # The process should end after this
1898
+ time.sleep(1)
1899
+ # This shouldn't raise even though the child is now dead
1900
+ getattr(p, method)(*args)
1901
+ p.communicate()
1902
+
1903
+ def test_send_signal(self):
1904
+ p = self._kill_process('send_signal', signal.SIGINT)
1905
+ _, stderr = p.communicate()
1906
+ self.assertIn(b'KeyboardInterrupt', stderr)
1907
+ self.assertNotEqual(p.wait(), 0)
1908
+
1909
+ def test_kill(self):
1910
+ p = self._kill_process('kill')
1911
+ _, stderr = p.communicate()
1912
+ self.assertStderrEqual(stderr, b'')
1913
+ self.assertEqual(p.wait(), -signal.SIGKILL)
1914
+
1915
+ def test_terminate(self):
1916
+ p = self._kill_process('terminate')
1917
+ _, stderr = p.communicate()
1918
+ self.assertStderrEqual(stderr, b'')
1919
+ self.assertEqual(p.wait(), -signal.SIGTERM)
1920
+
1921
+ def test_send_signal_dead(self):
1922
+ # Sending a signal to a dead process
1923
+ self._kill_dead_process('send_signal', signal.SIGINT)
1924
+
1925
+ def test_kill_dead(self):
1926
+ # Killing a dead process
1927
+ self._kill_dead_process('kill')
1928
+
1929
+ def test_terminate_dead(self):
1930
+ # Terminating a dead process
1931
+ self._kill_dead_process('terminate')
1932
+
1933
+ def _save_fds(self, save_fds):
1934
+ fds = []
1935
+ for fd in save_fds:
1936
+ inheritable = os.get_inheritable(fd)
1937
+ saved = os.dup(fd)
1938
+ fds.append((fd, saved, inheritable))
1939
+ return fds
1940
+
1941
+ def _restore_fds(self, fds):
1942
+ for fd, saved, inheritable in fds:
1943
+ os.dup2(saved, fd, inheritable=inheritable)
1944
+ os.close(saved)
1945
+
1946
+ def check_close_std_fds(self, fds):
1947
+ # Issue #9905: test that subprocess pipes still work properly with
1948
+ # some standard fds closed
1949
+ stdin = 0
1950
+ saved_fds = self._save_fds(fds)
1951
+ for fd, saved, inheritable in saved_fds:
1952
+ if fd == 0:
1953
+ stdin = saved
1954
+ break
1955
+ try:
1956
+ for fd in fds:
1957
+ os.close(fd)
1958
+ out, err = subprocess.Popen([sys.executable, "-c",
1959
+ 'import sys;'
1960
+ 'sys.stdout.write("apple");'
1961
+ 'sys.stdout.flush();'
1962
+ 'sys.stderr.write("orange")'],
1963
+ stdin=stdin,
1964
+ stdout=subprocess.PIPE,
1965
+ stderr=subprocess.PIPE).communicate()
1966
+ err = support.strip_python_stderr(err)
1967
+ self.assertEqual((out, err), (b'apple', b'orange'))
1968
+ finally:
1969
+ self._restore_fds(saved_fds)
1970
+
1971
+ def test_close_fd_0(self):
1972
+ self.check_close_std_fds([0])
1973
+
1974
+ def test_close_fd_1(self):
1975
+ self.check_close_std_fds([1])
1976
+
1977
+ def test_close_fd_2(self):
1978
+ self.check_close_std_fds([2])
1979
+
1980
+ def test_close_fds_0_1(self):
1981
+ self.check_close_std_fds([0, 1])
1982
+
1983
+ def test_close_fds_0_2(self):
1984
+ self.check_close_std_fds([0, 2])
1985
+
1986
+ def test_close_fds_1_2(self):
1987
+ self.check_close_std_fds([1, 2])
1988
+
1989
+ def test_close_fds_0_1_2(self):
1990
+ # Issue #10806: test that subprocess pipes still work properly with
1991
+ # all standard fds closed.
1992
+ self.check_close_std_fds([0, 1, 2])
1993
+
1994
+ def test_small_errpipe_write_fd(self):
1995
+ """Issue #15798: Popen should work when stdio fds are available."""
1996
+ new_stdin = os.dup(0)
1997
+ new_stdout = os.dup(1)
1998
+ try:
1999
+ os.close(0)
2000
+ os.close(1)
2001
+
2002
+ # Side test: if errpipe_write fails to have its CLOEXEC
2003
+ # flag set this should cause the parent to think the exec
2004
+ # failed. Extremely unlikely: everyone supports CLOEXEC.
2005
+ subprocess.Popen([
2006
+ sys.executable, "-c",
2007
+ "print('AssertionError:0:CLOEXEC failure.')"]).wait()
2008
+ finally:
2009
+ # Restore original stdin and stdout
2010
+ os.dup2(new_stdin, 0)
2011
+ os.dup2(new_stdout, 1)
2012
+ os.close(new_stdin)
2013
+ os.close(new_stdout)
2014
+
2015
+ def test_remapping_std_fds(self):
2016
+ # open up some temporary files
2017
+ temps = [tempfile.mkstemp() for i in range(3)]
2018
+ try:
2019
+ temp_fds = [fd for fd, fname in temps]
2020
+
2021
+ # unlink the files -- we won't need to reopen them
2022
+ for fd, fname in temps:
2023
+ os.unlink(fname)
2024
+
2025
+ # write some data to what will become stdin, and rewind
2026
+ os.write(temp_fds[1], b"STDIN")
2027
+ os.lseek(temp_fds[1], 0, 0)
2028
+
2029
+ # move the standard file descriptors out of the way
2030
+ saved_fds = self._save_fds(range(3))
2031
+ try:
2032
+ # duplicate the file objects over the standard fd's
2033
+ for fd, temp_fd in enumerate(temp_fds):
2034
+ os.dup2(temp_fd, fd)
2035
+
2036
+ # now use those files in the "wrong" order, so that subprocess
2037
+ # has to rearrange them in the child
2038
+ p = subprocess.Popen([sys.executable, "-c",
2039
+ 'import sys; got = sys.stdin.read();'
2040
+ 'sys.stdout.write("got %s"%got); sys.stderr.write("err")'],
2041
+ stdin=temp_fds[1],
2042
+ stdout=temp_fds[2],
2043
+ stderr=temp_fds[0])
2044
+ p.wait()
2045
+ finally:
2046
+ self._restore_fds(saved_fds)
2047
+
2048
+ for fd in temp_fds:
2049
+ os.lseek(fd, 0, 0)
2050
+
2051
+ out = os.read(temp_fds[2], 1024)
2052
+ err = support.strip_python_stderr(os.read(temp_fds[0], 1024))
2053
+ self.assertEqual(out, b"got STDIN")
2054
+ self.assertEqual(err, b"err")
2055
+
2056
+ finally:
2057
+ for fd in temp_fds:
2058
+ os.close(fd)
2059
+
2060
+ def check_swap_fds(self, stdin_no, stdout_no, stderr_no):
2061
+ # open up some temporary files
2062
+ temps = [tempfile.mkstemp() for i in range(3)]
2063
+ temp_fds = [fd for fd, fname in temps]
2064
+ try:
2065
+ # unlink the files -- we won't need to reopen them
2066
+ for fd, fname in temps:
2067
+ os.unlink(fname)
2068
+
2069
+ # save a copy of the standard file descriptors
2070
+ saved_fds = self._save_fds(range(3))
2071
+ try:
2072
+ # duplicate the temp files over the standard fd's 0, 1, 2
2073
+ for fd, temp_fd in enumerate(temp_fds):
2074
+ os.dup2(temp_fd, fd)
2075
+
2076
+ # write some data to what will become stdin, and rewind
2077
+ os.write(stdin_no, b"STDIN")
2078
+ os.lseek(stdin_no, 0, 0)
2079
+
2080
+ # now use those files in the given order, so that subprocess
2081
+ # has to rearrange them in the child
2082
+ p = subprocess.Popen([sys.executable, "-c",
2083
+ 'import sys; got = sys.stdin.read();'
2084
+ 'sys.stdout.write("got %s"%got); sys.stderr.write("err")'],
2085
+ stdin=stdin_no,
2086
+ stdout=stdout_no,
2087
+ stderr=stderr_no)
2088
+ p.wait()
2089
+
2090
+ for fd in temp_fds:
2091
+ os.lseek(fd, 0, 0)
2092
+
2093
+ out = os.read(stdout_no, 1024)
2094
+ err = support.strip_python_stderr(os.read(stderr_no, 1024))
2095
+ finally:
2096
+ self._restore_fds(saved_fds)
2097
+
2098
+ self.assertEqual(out, b"got STDIN")
2099
+ self.assertEqual(err, b"err")
2100
+
2101
+ finally:
2102
+ for fd in temp_fds:
2103
+ os.close(fd)
2104
+
2105
+ # When duping fds, if there arises a situation where one of the fds is
2106
+ # either 0, 1 or 2, it is possible that it is overwritten (#12607).
2107
+ # This tests all combinations of this.
2108
+ def test_swap_fds(self):
2109
+ self.check_swap_fds(0, 1, 2)
2110
+ self.check_swap_fds(0, 2, 1)
2111
+ self.check_swap_fds(1, 0, 2)
2112
+ self.check_swap_fds(1, 2, 0)
2113
+ self.check_swap_fds(2, 0, 1)
2114
+ self.check_swap_fds(2, 1, 0)
2115
+
2116
+ def test_surrogates_error_message(self):
2117
+ def prepare():
2118
+ raise ValueError("surrogate:\uDCff")
2119
+
2120
+ try:
2121
+ subprocess.call(
2122
+ [sys.executable, "-c", "pass"],
2123
+ preexec_fn=prepare)
2124
+ except ValueError as err:
2125
+ # Pure Python implementations keeps the message
2126
+ self.assertIsNone(subprocess._posixsubprocess)
2127
+ self.assertEqual(str(err), "surrogate:\uDCff")
2128
+ except subprocess.SubprocessError as err:
2129
+ # _posixsubprocess uses a default message
2130
+ self.assertIsNotNone(subprocess._posixsubprocess)
2131
+ self.assertEqual(str(err), "Exception occurred in preexec_fn.")
2132
+ else:
2133
+ self.fail("Expected ValueError or subprocess.SubprocessError")
2134
+
2135
+ def test_undecodable_env(self):
2136
+ for key, value in (('test', 'abc\uDCFF'), ('test\uDCFF', '42')):
2137
+ encoded_value = value.encode("ascii", "surrogateescape")
2138
+
2139
+ # test str with surrogates
2140
+ script = "import os; print(ascii(os.getenv(%s)))" % repr(key)
2141
+ env = os.environ.copy()
2142
+ env[key] = value
2143
+ # Use C locale to get ASCII for the locale encoding to force
2144
+ # surrogate-escaping of \xFF in the child process; otherwise it can
2145
+ # be decoded as-is if the default locale is latin-1.
2146
+ env['LC_ALL'] = 'C'
2147
+ if sys.platform.startswith("aix"):
2148
+ # On AIX, the C locale uses the Latin1 encoding
2149
+ decoded_value = encoded_value.decode("latin1", "surrogateescape")
2150
+ else:
2151
+ # On other UNIXes, the C locale uses the ASCII encoding
2152
+ decoded_value = value
2153
+ stdout = subprocess.check_output(
2154
+ [sys.executable, "-c", script],
2155
+ env=env)
2156
+ stdout = stdout.rstrip(b'\n\r')
2157
+ self.assertEqual(stdout.decode('ascii'), ascii(decoded_value))
2158
+
2159
+ # test bytes
2160
+ key = key.encode("ascii", "surrogateescape")
2161
+ script = "import os; print(ascii(os.getenvb(%s)))" % repr(key)
2162
+ env = os.environ.copy()
2163
+ env[key] = encoded_value
2164
+ stdout = subprocess.check_output(
2165
+ [sys.executable, "-c", script],
2166
+ env=env)
2167
+ stdout = stdout.rstrip(b'\n\r')
2168
+ self.assertEqual(stdout.decode('ascii'), ascii(encoded_value))
2169
+
2170
+ def test_bytes_program(self):
2171
+ abs_program = os.fsencode(sys.executable)
2172
+ path, program = os.path.split(sys.executable)
2173
+ program = os.fsencode(program)
2174
+
2175
+ # absolute bytes path
2176
+ exitcode = subprocess.call([abs_program, "-c", "pass"])
2177
+ self.assertEqual(exitcode, 0)
2178
+
2179
+ # absolute bytes path as a string
2180
+ cmd = b"'" + abs_program + b"' -c pass"
2181
+ exitcode = subprocess.call(cmd, shell=True)
2182
+ self.assertEqual(exitcode, 0)
2183
+
2184
+ # bytes program, unicode PATH
2185
+ env = os.environ.copy()
2186
+ env["PATH"] = path
2187
+ exitcode = subprocess.call([program, "-c", "pass"], env=env)
2188
+ self.assertEqual(exitcode, 0)
2189
+
2190
+ # bytes program, bytes PATH
2191
+ envb = os.environb.copy()
2192
+ envb[b"PATH"] = os.fsencode(path)
2193
+ exitcode = subprocess.call([program, "-c", "pass"], env=envb)
2194
+ self.assertEqual(exitcode, 0)
2195
+
2196
+ def test_pipe_cloexec(self):
2197
+ sleeper = support.findfile("input_reader.py", subdir="subprocessdata")
2198
+ fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
2199
+
2200
+ p1 = subprocess.Popen([sys.executable, sleeper],
2201
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
2202
+ stderr=subprocess.PIPE, close_fds=False)
2203
+
2204
+ self.addCleanup(p1.communicate, b'')
2205
+
2206
+ p2 = subprocess.Popen([sys.executable, fd_status],
2207
+ stdout=subprocess.PIPE, close_fds=False)
2208
+
2209
+ output, error = p2.communicate()
2210
+ result_fds = set(map(int, output.split(b',')))
2211
+ unwanted_fds = set([p1.stdin.fileno(), p1.stdout.fileno(),
2212
+ p1.stderr.fileno()])
2213
+
2214
+ self.assertFalse(result_fds & unwanted_fds,
2215
+ "Expected no fds from %r to be open in child, "
2216
+ "found %r" %
2217
+ (unwanted_fds, result_fds & unwanted_fds))
2218
+
2219
+ def test_pipe_cloexec_real_tools(self):
2220
+ qcat = support.findfile("qcat.py", subdir="subprocessdata")
2221
+ qgrep = support.findfile("qgrep.py", subdir="subprocessdata")
2222
+
2223
+ subdata = b'zxcvbn'
2224
+ data = subdata * 4 + b'\n'
2225
+
2226
+ p1 = subprocess.Popen([sys.executable, qcat],
2227
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE,
2228
+ close_fds=False)
2229
+
2230
+ p2 = subprocess.Popen([sys.executable, qgrep, subdata],
2231
+ stdin=p1.stdout, stdout=subprocess.PIPE,
2232
+ close_fds=False)
2233
+
2234
+ self.addCleanup(p1.wait)
2235
+ self.addCleanup(p2.wait)
2236
+ def kill_p1():
2237
+ try:
2238
+ p1.terminate()
2239
+ except ProcessLookupError:
2240
+ pass
2241
+ def kill_p2():
2242
+ try:
2243
+ p2.terminate()
2244
+ except ProcessLookupError:
2245
+ pass
2246
+ self.addCleanup(kill_p1)
2247
+ self.addCleanup(kill_p2)
2248
+
2249
+ p1.stdin.write(data)
2250
+ p1.stdin.close()
2251
+
2252
+ readfiles, ignored1, ignored2 = select.select([p2.stdout], [], [], 10)
2253
+
2254
+ self.assertTrue(readfiles, "The child hung")
2255
+ self.assertEqual(p2.stdout.read(), data)
2256
+
2257
+ p1.stdout.close()
2258
+ p2.stdout.close()
2259
+
2260
+ def test_close_fds(self):
2261
+ fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
2262
+
2263
+ fds = os.pipe()
2264
+ self.addCleanup(os.close, fds[0])
2265
+ self.addCleanup(os.close, fds[1])
2266
+
2267
+ open_fds = set(fds)
2268
+ # add a bunch more fds
2269
+ for _ in range(9):
2270
+ fd = os.open(os.devnull, os.O_RDONLY)
2271
+ self.addCleanup(os.close, fd)
2272
+ open_fds.add(fd)
2273
+
2274
+ for fd in open_fds:
2275
+ os.set_inheritable(fd, True)
2276
+
2277
+ p = subprocess.Popen([sys.executable, fd_status],
2278
+ stdout=subprocess.PIPE, close_fds=False)
2279
+ output, ignored = p.communicate()
2280
+ remaining_fds = set(map(int, output.split(b',')))
2281
+
2282
+ self.assertEqual(remaining_fds & open_fds, open_fds,
2283
+ "Some fds were closed")
2284
+
2285
+ p = subprocess.Popen([sys.executable, fd_status],
2286
+ stdout=subprocess.PIPE, close_fds=True)
2287
+ output, ignored = p.communicate()
2288
+ remaining_fds = set(map(int, output.split(b',')))
2289
+
2290
+ self.assertFalse(remaining_fds & open_fds,
2291
+ "Some fds were left open")
2292
+ self.assertIn(1, remaining_fds, "Subprocess failed")
2293
+
2294
+ # Keep some of the fd's we opened open in the subprocess.
2295
+ # This tests _posixsubprocess.c's proper handling of fds_to_keep.
2296
+ fds_to_keep = set(open_fds.pop() for _ in range(8))
2297
+ p = subprocess.Popen([sys.executable, fd_status],
2298
+ stdout=subprocess.PIPE, close_fds=True,
2299
+ pass_fds=())
2300
+ output, ignored = p.communicate()
2301
+ remaining_fds = set(map(int, output.split(b',')))
2302
+
2303
+ self.assertFalse(remaining_fds & fds_to_keep & open_fds,
2304
+ "Some fds not in pass_fds were left open")
2305
+ self.assertIn(1, remaining_fds, "Subprocess failed")
2306
+
2307
+
2308
+ @unittest.skipIf(sys.platform.startswith("freebsd") and
2309
+ os.stat("/dev").st_dev == os.stat("/dev/fd").st_dev,
2310
+ "Requires fdescfs mounted on /dev/fd on FreeBSD.")
2311
+ def test_close_fds_when_max_fd_is_lowered(self):
2312
+ """Confirm that issue21618 is fixed (may fail under valgrind)."""
2313
+ fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
2314
+
2315
+ # This launches the meat of the test in a child process to
2316
+ # avoid messing with the larger unittest processes maximum
2317
+ # number of file descriptors.
2318
+ # This process launches:
2319
+ # +--> Process that lowers its RLIMIT_NOFILE aftr setting up
2320
+ # a bunch of high open fds above the new lower rlimit.
2321
+ # Those are reported via stdout before launching a new
2322
+ # process with close_fds=False to run the actual test:
2323
+ # +--> The TEST: This one launches a fd_status.py
2324
+ # subprocess with close_fds=True so we can find out if
2325
+ # any of the fds above the lowered rlimit are still open.
2326
+ p = subprocess.Popen([sys.executable, '-c', textwrap.dedent(
2327
+ '''
2328
+ import os, resource, subprocess, sys, textwrap
2329
+ open_fds = set()
2330
+ # Add a bunch more fds to pass down.
2331
+ for _ in range(40):
2332
+ fd = os.open(os.devnull, os.O_RDONLY)
2333
+ open_fds.add(fd)
2334
+
2335
+ # Leave a two pairs of low ones available for use by the
2336
+ # internal child error pipe and the stdout pipe.
2337
+ # We also leave 10 more open as some Python buildbots run into
2338
+ # "too many open files" errors during the test if we do not.
2339
+ for fd in sorted(open_fds)[:14]:
2340
+ os.close(fd)
2341
+ open_fds.remove(fd)
2342
+
2343
+ for fd in open_fds:
2344
+ #self.addCleanup(os.close, fd)
2345
+ os.set_inheritable(fd, True)
2346
+
2347
+ max_fd_open = max(open_fds)
2348
+
2349
+ # Communicate the open_fds to the parent unittest.TestCase process.
2350
+ print(','.join(map(str, sorted(open_fds))))
2351
+ sys.stdout.flush()
2352
+
2353
+ rlim_cur, rlim_max = resource.getrlimit(resource.RLIMIT_NOFILE)
2354
+ try:
2355
+ # 29 is lower than the highest fds we are leaving open.
2356
+ resource.setrlimit(resource.RLIMIT_NOFILE, (29, rlim_max))
2357
+ # Launch a new Python interpreter with our low fd rlim_cur that
2358
+ # inherits open fds above that limit. It then uses subprocess
2359
+ # with close_fds=True to get a report of open fds in the child.
2360
+ # An explicit list of fds to check is passed to fd_status.py as
2361
+ # letting fd_status rely on its default logic would miss the
2362
+ # fds above rlim_cur as it normally only checks up to that limit.
2363
+ subprocess.Popen(
2364
+ [sys.executable, '-c',
2365
+ textwrap.dedent("""
2366
+ import subprocess, sys
2367
+ subprocess.Popen([sys.executable, %r] +
2368
+ [str(x) for x in range({max_fd})],
2369
+ close_fds=True).wait()
2370
+ """.format(max_fd=max_fd_open+1))],
2371
+ close_fds=False).wait()
2372
+ finally:
2373
+ resource.setrlimit(resource.RLIMIT_NOFILE, (rlim_cur, rlim_max))
2374
+ ''' % fd_status)], stdout=subprocess.PIPE)
2375
+
2376
+ output, unused_stderr = p.communicate()
2377
+ output_lines = output.splitlines()
2378
+ self.assertEqual(len(output_lines), 2,
2379
+ msg="expected exactly two lines of output:\n%r" % output)
2380
+ opened_fds = set(map(int, output_lines[0].strip().split(b',')))
2381
+ remaining_fds = set(map(int, output_lines[1].strip().split(b',')))
2382
+
2383
+ self.assertFalse(remaining_fds & opened_fds,
2384
+ msg="Some fds were left open.")
2385
+
2386
+
2387
+ # Mac OS X Tiger (10.4) has a kernel bug: sometimes, the file
2388
+ # descriptor of a pipe closed in the parent process is valid in the
2389
+ # child process according to fstat(), but the mode of the file
2390
+ # descriptor is invalid, and read or write raise an error.
2391
+ @support.requires_mac_ver(10, 5)
2392
+ def test_pass_fds(self):
2393
+ fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
2394
+
2395
+ open_fds = set()
2396
+
2397
+ for x in range(5):
2398
+ fds = os.pipe()
2399
+ self.addCleanup(os.close, fds[0])
2400
+ self.addCleanup(os.close, fds[1])
2401
+ os.set_inheritable(fds[0], True)
2402
+ os.set_inheritable(fds[1], True)
2403
+ open_fds.update(fds)
2404
+
2405
+ for fd in open_fds:
2406
+ p = subprocess.Popen([sys.executable, fd_status],
2407
+ stdout=subprocess.PIPE, close_fds=True,
2408
+ pass_fds=(fd, ))
2409
+ output, ignored = p.communicate()
2410
+
2411
+ remaining_fds = set(map(int, output.split(b',')))
2412
+ to_be_closed = open_fds - {fd}
2413
+
2414
+ self.assertIn(fd, remaining_fds, "fd to be passed not passed")
2415
+ self.assertFalse(remaining_fds & to_be_closed,
2416
+ "fd to be closed passed")
2417
+
2418
+ # pass_fds overrides close_fds with a warning.
2419
+ with self.assertWarns(RuntimeWarning) as context:
2420
+ self.assertFalse(subprocess.call(
2421
+ [sys.executable, "-c", "import sys; sys.exit(0)"],
2422
+ close_fds=False, pass_fds=(fd, )))
2423
+ self.assertIn('overriding close_fds', str(context.warning))
2424
+
2425
+ def test_pass_fds_inheritable(self):
2426
+ script = support.findfile("fd_status.py", subdir="subprocessdata")
2427
+
2428
+ inheritable, non_inheritable = os.pipe()
2429
+ self.addCleanup(os.close, inheritable)
2430
+ self.addCleanup(os.close, non_inheritable)
2431
+ os.set_inheritable(inheritable, True)
2432
+ os.set_inheritable(non_inheritable, False)
2433
+ pass_fds = (inheritable, non_inheritable)
2434
+ args = [sys.executable, script]
2435
+ args += list(map(str, pass_fds))
2436
+
2437
+ p = subprocess.Popen(args,
2438
+ stdout=subprocess.PIPE, close_fds=True,
2439
+ pass_fds=pass_fds)
2440
+ output, ignored = p.communicate()
2441
+ fds = set(map(int, output.split(b',')))
2442
+
2443
+ # the inheritable file descriptor must be inherited, so its inheritable
2444
+ # flag must be set in the child process after fork() and before exec()
2445
+ self.assertEqual(fds, set(pass_fds), "output=%a" % output)
2446
+
2447
+ # inheritable flag must not be changed in the parent process
2448
+ self.assertEqual(os.get_inheritable(inheritable), True)
2449
+ self.assertEqual(os.get_inheritable(non_inheritable), False)
2450
+
2451
+ def test_stdout_stdin_are_single_inout_fd(self):
2452
+ with io.open(os.devnull, "r+") as inout:
2453
+ p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
2454
+ stdout=inout, stdin=inout)
2455
+ p.wait()
2456
+
2457
+ def test_stdout_stderr_are_single_inout_fd(self):
2458
+ with io.open(os.devnull, "r+") as inout:
2459
+ p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
2460
+ stdout=inout, stderr=inout)
2461
+ p.wait()
2462
+
2463
+ def test_stderr_stdin_are_single_inout_fd(self):
2464
+ with io.open(os.devnull, "r+") as inout:
2465
+ p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(0)"],
2466
+ stderr=inout, stdin=inout)
2467
+ p.wait()
2468
+
2469
+ def test_wait_when_sigchild_ignored(self):
2470
+ # NOTE: sigchild_ignore.py may not be an effective test on all OSes.
2471
+ sigchild_ignore = support.findfile("sigchild_ignore.py",
2472
+ subdir="subprocessdata")
2473
+ p = subprocess.Popen([sys.executable, sigchild_ignore],
2474
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
2475
+ stdout, stderr = p.communicate()
2476
+ self.assertEqual(0, p.returncode, "sigchild_ignore.py exited"
2477
+ " non-zero with this error:\n%s" %
2478
+ stderr.decode('utf-8'))
2479
+
2480
+ def test_select_unbuffered(self):
2481
+ # Issue #11459: bufsize=0 should really set the pipes as
2482
+ # unbuffered (and therefore let select() work properly).
2483
+ select = support.import_module("select")
2484
+ p = subprocess.Popen([sys.executable, "-c",
2485
+ 'import sys;'
2486
+ 'sys.stdout.write("apple")'],
2487
+ stdout=subprocess.PIPE,
2488
+ bufsize=0)
2489
+ f = p.stdout
2490
+ self.addCleanup(f.close)
2491
+ try:
2492
+ self.assertEqual(f.read(4), b"appl")
2493
+ self.assertIn(f, select.select([f], [], [], 0.0)[0])
2494
+ finally:
2495
+ p.wait()
2496
+
2497
+ def test_zombie_fast_process_del(self):
2498
+ # Issue #12650: on Unix, if Popen.__del__() was called before the
2499
+ # process exited, it wouldn't be added to subprocess._active, and would
2500
+ # remain a zombie.
2501
+ # spawn a Popen, and delete its reference before it exits
2502
+ p = subprocess.Popen([sys.executable, "-c",
2503
+ 'import sys, time;'
2504
+ 'time.sleep(0.2)'],
2505
+ stdout=subprocess.PIPE,
2506
+ stderr=subprocess.PIPE)
2507
+ self.addCleanup(p.stdout.close)
2508
+ self.addCleanup(p.stderr.close)
2509
+ ident = id(p)
2510
+ pid = p.pid
2511
+ with support.check_warnings(('', ResourceWarning)):
2512
+ p = None
2513
+
2514
+ # check that p is in the active processes list
2515
+ self.assertIn(ident, [id(o) for o in subprocess._active])
2516
+
2517
+ def test_leak_fast_process_del_killed(self):
2518
+ # Issue #12650: on Unix, if Popen.__del__() was called before the
2519
+ # process exited, and the process got killed by a signal, it would never
2520
+ # be removed from subprocess._active, which triggered a FD and memory
2521
+ # leak.
2522
+ # spawn a Popen, delete its reference and kill it
2523
+ p = subprocess.Popen([sys.executable, "-c",
2524
+ 'import time;'
2525
+ 'time.sleep(3)'],
2526
+ stdout=subprocess.PIPE,
2527
+ stderr=subprocess.PIPE)
2528
+ self.addCleanup(p.stdout.close)
2529
+ self.addCleanup(p.stderr.close)
2530
+ ident = id(p)
2531
+ pid = p.pid
2532
+ with support.check_warnings(('', ResourceWarning)):
2533
+ p = None
2534
+
2535
+ os.kill(pid, signal.SIGKILL)
2536
+ # check that p is in the active processes list
2537
+ self.assertIn(ident, [id(o) for o in subprocess._active])
2538
+
2539
+ # let some time for the process to exit, and create a new Popen: this
2540
+ # should trigger the wait() of p
2541
+ time.sleep(0.2)
2542
+ with self.assertRaises(OSError) as c:
2543
+ with subprocess.Popen(NONEXISTING_CMD,
2544
+ stdout=subprocess.PIPE,
2545
+ stderr=subprocess.PIPE) as proc:
2546
+ pass
2547
+ # p should have been wait()ed on, and removed from the _active list
2548
+ self.assertRaises(OSError, os.waitpid, pid, 0)
2549
+ self.assertNotIn(ident, [id(o) for o in subprocess._active])
2550
+
2551
+ def test_close_fds_after_preexec(self):
2552
+ fd_status = support.findfile("fd_status.py", subdir="subprocessdata")
2553
+
2554
+ # this FD is used as dup2() target by preexec_fn, and should be closed
2555
+ # in the child process
2556
+ fd = os.dup(1)
2557
+ self.addCleanup(os.close, fd)
2558
+
2559
+ p = subprocess.Popen([sys.executable, fd_status],
2560
+ stdout=subprocess.PIPE, close_fds=True,
2561
+ preexec_fn=lambda: os.dup2(1, fd))
2562
+ output, ignored = p.communicate()
2563
+
2564
+ remaining_fds = set(map(int, output.split(b',')))
2565
+
2566
+ self.assertNotIn(fd, remaining_fds)
2567
+
2568
+ @support.cpython_only
2569
+ def test_fork_exec(self):
2570
+ # Issue #22290: fork_exec() must not crash on memory allocation failure
2571
+ # or other errors
2572
+ import _posixsubprocess
2573
+ gc_enabled = gc.isenabled()
2574
+ try:
2575
+ # Use a preexec function and enable the garbage collector
2576
+ # to force fork_exec() to re-enable the garbage collector
2577
+ # on error.
2578
+ func = lambda: None
2579
+ gc.enable()
2580
+
2581
+ for args, exe_list, cwd, env_list in (
2582
+ (123, [b"exe"], None, [b"env"]),
2583
+ ([b"arg"], 123, None, [b"env"]),
2584
+ ([b"arg"], [b"exe"], 123, [b"env"]),
2585
+ ([b"arg"], [b"exe"], None, 123),
2586
+ ):
2587
+ with self.assertRaises(TypeError):
2588
+ _posixsubprocess.fork_exec(
2589
+ args, exe_list,
2590
+ True, (), cwd, env_list,
2591
+ -1, -1, -1, -1,
2592
+ 1, 2, 3, 4,
2593
+ True, True, func)
2594
+ finally:
2595
+ if not gc_enabled:
2596
+ gc.disable()
2597
+
2598
+ @support.cpython_only
2599
+ def test_fork_exec_sorted_fd_sanity_check(self):
2600
+ # Issue #23564: sanity check the fork_exec() fds_to_keep sanity check.
2601
+ import _posixsubprocess
2602
+ class BadInt:
2603
+ first = True
2604
+ def __init__(self, value):
2605
+ self.value = value
2606
+ def __int__(self):
2607
+ if self.first:
2608
+ self.first = False
2609
+ return self.value
2610
+ raise ValueError
2611
+
2612
+ gc_enabled = gc.isenabled()
2613
+ try:
2614
+ gc.enable()
2615
+
2616
+ for fds_to_keep in (
2617
+ (-1, 2, 3, 4, 5), # Negative number.
2618
+ ('str', 4), # Not an int.
2619
+ (18, 23, 42, 2**63), # Out of range.
2620
+ (5, 4), # Not sorted.
2621
+ (6, 7, 7, 8), # Duplicate.
2622
+ (BadInt(1), BadInt(2)),
2623
+ ):
2624
+ with self.assertRaises(
2625
+ ValueError,
2626
+ msg='fds_to_keep={}'.format(fds_to_keep)) as c:
2627
+ _posixsubprocess.fork_exec(
2628
+ [b"false"], [b"false"],
2629
+ True, fds_to_keep, None, [b"env"],
2630
+ -1, -1, -1, -1,
2631
+ 1, 2, 3, 4,
2632
+ True, True, None)
2633
+ self.assertIn('fds_to_keep', str(c.exception))
2634
+ finally:
2635
+ if not gc_enabled:
2636
+ gc.disable()
2637
+
2638
+ def test_communicate_BrokenPipeError_stdin_close(self):
2639
+ # By not setting stdout or stderr or a timeout we force the fast path
2640
+ # that just calls _stdin_write() internally due to our mock.
2641
+ proc = subprocess.Popen([sys.executable, '-c', 'pass'])
2642
+ with proc, mock.patch.object(proc, 'stdin') as mock_proc_stdin:
2643
+ mock_proc_stdin.close.side_effect = BrokenPipeError
2644
+ proc.communicate() # Should swallow BrokenPipeError from close.
2645
+ mock_proc_stdin.close.assert_called_with()
2646
+
2647
+ def test_communicate_BrokenPipeError_stdin_write(self):
2648
+ # By not setting stdout or stderr or a timeout we force the fast path
2649
+ # that just calls _stdin_write() internally due to our mock.
2650
+ proc = subprocess.Popen([sys.executable, '-c', 'pass'])
2651
+ with proc, mock.patch.object(proc, 'stdin') as mock_proc_stdin:
2652
+ mock_proc_stdin.write.side_effect = BrokenPipeError
2653
+ proc.communicate(b'stuff') # Should swallow the BrokenPipeError.
2654
+ mock_proc_stdin.write.assert_called_once_with(b'stuff')
2655
+ mock_proc_stdin.close.assert_called_once_with()
2656
+
2657
+ def test_communicate_BrokenPipeError_stdin_flush(self):
2658
+ # Setting stdin and stdout forces the ._communicate() code path.
2659
+ # python -h exits faster than python -c pass (but spams stdout).
2660
+ proc = subprocess.Popen([sys.executable, '-h'],
2661
+ stdin=subprocess.PIPE,
2662
+ stdout=subprocess.PIPE)
2663
+ with proc, mock.patch.object(proc, 'stdin') as mock_proc_stdin, \
2664
+ open(os.devnull, 'wb') as dev_null:
2665
+ mock_proc_stdin.flush.side_effect = BrokenPipeError
2666
+ # because _communicate registers a selector using proc.stdin...
2667
+ mock_proc_stdin.fileno.return_value = dev_null.fileno()
2668
+ # _communicate() should swallow BrokenPipeError from flush.
2669
+ proc.communicate(b'stuff')
2670
+ mock_proc_stdin.flush.assert_called_once_with()
2671
+
2672
+ def test_communicate_BrokenPipeError_stdin_close_with_timeout(self):
2673
+ # Setting stdin and stdout forces the ._communicate() code path.
2674
+ # python -h exits faster than python -c pass (but spams stdout).
2675
+ proc = subprocess.Popen([sys.executable, '-h'],
2676
+ stdin=subprocess.PIPE,
2677
+ stdout=subprocess.PIPE)
2678
+ with proc, mock.patch.object(proc, 'stdin') as mock_proc_stdin:
2679
+ mock_proc_stdin.close.side_effect = BrokenPipeError
2680
+ # _communicate() should swallow BrokenPipeError from close.
2681
+ proc.communicate(timeout=999)
2682
+ mock_proc_stdin.close.assert_called_once_with()
2683
+
2684
+ @unittest.skipUnless(_testcapi is not None
2685
+ and hasattr(_testcapi, 'W_STOPCODE'),
2686
+ 'need _testcapi.W_STOPCODE')
2687
+ def test_stopped(self):
2688
+ """Test wait() behavior when waitpid returns WIFSTOPPED; issue29335."""
2689
+ args = [sys.executable, '-c', 'pass']
2690
+ proc = subprocess.Popen(args)
2691
+
2692
+ # Wait until the real process completes to avoid zombie process
2693
+ pid = proc.pid
2694
+ pid, status = os.waitpid(pid, 0)
2695
+ self.assertEqual(status, 0)
2696
+
2697
+ status = _testcapi.W_STOPCODE(3)
2698
+ with mock.patch('subprocess.os.waitpid', return_value=(pid, status)):
2699
+ returncode = proc.wait()
2700
+
2701
+ self.assertEqual(returncode, -3)
2702
+
2703
+
2704
+ @unittest.skipUnless(mswindows, "Windows specific tests")
2705
+ class Win32ProcessTestCase(BaseTestCase):
2706
+
2707
+ def test_startupinfo(self):
2708
+ # startupinfo argument
2709
+ # We uses hardcoded constants, because we do not want to
2710
+ # depend on win32all.
2711
+ STARTF_USESHOWWINDOW = 1
2712
+ SW_MAXIMIZE = 3
2713
+ startupinfo = subprocess.STARTUPINFO()
2714
+ startupinfo.dwFlags = STARTF_USESHOWWINDOW
2715
+ startupinfo.wShowWindow = SW_MAXIMIZE
2716
+ # Since Python is a console process, it won't be affected
2717
+ # by wShowWindow, but the argument should be silently
2718
+ # ignored
2719
+ subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
2720
+ startupinfo=startupinfo)
2721
+
2722
+ def test_creationflags(self):
2723
+ # creationflags argument
2724
+ CREATE_NEW_CONSOLE = 16
2725
+ sys.stderr.write(" a DOS box should flash briefly ...\n")
2726
+ subprocess.call(sys.executable +
2727
+ ' -c "import time; time.sleep(0.25)"',
2728
+ creationflags=CREATE_NEW_CONSOLE)
2729
+
2730
+ def test_invalid_args(self):
2731
+ # invalid arguments should raise ValueError
2732
+ self.assertRaises(ValueError, subprocess.call,
2733
+ [sys.executable, "-c",
2734
+ "import sys; sys.exit(47)"],
2735
+ preexec_fn=lambda: 1)
2736
+ self.assertRaises(ValueError, subprocess.call,
2737
+ [sys.executable, "-c",
2738
+ "import sys; sys.exit(47)"],
2739
+ stdout=subprocess.PIPE,
2740
+ close_fds=True)
2741
+
2742
+ @support.cpython_only
2743
+ def test_issue31471(self):
2744
+ # There shouldn't be an assertion failure in Popen() in case the env
2745
+ # argument has a bad keys() method.
2746
+ class BadEnv(dict):
2747
+ keys = None
2748
+ with self.assertRaises(TypeError):
2749
+ subprocess.Popen([sys.executable, "-c", "pass"], env=BadEnv())
2750
+
2751
+ def test_close_fds(self):
2752
+ # close file descriptors
2753
+ rc = subprocess.call([sys.executable, "-c",
2754
+ "import sys; sys.exit(47)"],
2755
+ close_fds=True)
2756
+ self.assertEqual(rc, 47)
2757
+
2758
+ def test_shell_sequence(self):
2759
+ # Run command through the shell (sequence)
2760
+ newenv = os.environ.copy()
2761
+ newenv["FRUIT"] = "physalis"
2762
+ p = subprocess.Popen(["set"], shell=1,
2763
+ stdout=subprocess.PIPE,
2764
+ env=newenv)
2765
+ with p:
2766
+ self.assertIn(b"physalis", p.stdout.read())
2767
+
2768
+ def test_shell_string(self):
2769
+ # Run command through the shell (string)
2770
+ newenv = os.environ.copy()
2771
+ newenv["FRUIT"] = "physalis"
2772
+ p = subprocess.Popen("set", shell=1,
2773
+ stdout=subprocess.PIPE,
2774
+ env=newenv)
2775
+ with p:
2776
+ self.assertIn(b"physalis", p.stdout.read())
2777
+
2778
+ def test_shell_encodings(self):
2779
+ # Run command through the shell (string)
2780
+ for enc in ['ansi', 'oem']:
2781
+ newenv = os.environ.copy()
2782
+ newenv["FRUIT"] = "physalis"
2783
+ p = subprocess.Popen("set", shell=1,
2784
+ stdout=subprocess.PIPE,
2785
+ env=newenv,
2786
+ encoding=enc)
2787
+ with p:
2788
+ self.assertIn("physalis", p.stdout.read(), enc)
2789
+
2790
+ def test_call_string(self):
2791
+ # call() function with string argument on Windows
2792
+ rc = subprocess.call(sys.executable +
2793
+ ' -c "import sys; sys.exit(47)"')
2794
+ self.assertEqual(rc, 47)
2795
+
2796
+ def _kill_process(self, method, *args):
2797
+ # Some win32 buildbot raises EOFError if stdin is inherited
2798
+ p = subprocess.Popen([sys.executable, "-c", """if 1:
2799
+ import sys, time
2800
+ sys.stdout.write('x\\n')
2801
+ sys.stdout.flush()
2802
+ time.sleep(30)
2803
+ """],
2804
+ stdin=subprocess.PIPE,
2805
+ stdout=subprocess.PIPE,
2806
+ stderr=subprocess.PIPE)
2807
+ with p:
2808
+ # Wait for the interpreter to be completely initialized before
2809
+ # sending any signal.
2810
+ p.stdout.read(1)
2811
+ getattr(p, method)(*args)
2812
+ _, stderr = p.communicate()
2813
+ self.assertStderrEqual(stderr, b'')
2814
+ returncode = p.wait()
2815
+ self.assertNotEqual(returncode, 0)
2816
+
2817
+ def _kill_dead_process(self, method, *args):
2818
+ p = subprocess.Popen([sys.executable, "-c", """if 1:
2819
+ import sys, time
2820
+ sys.stdout.write('x\\n')
2821
+ sys.stdout.flush()
2822
+ sys.exit(42)
2823
+ """],
2824
+ stdin=subprocess.PIPE,
2825
+ stdout=subprocess.PIPE,
2826
+ stderr=subprocess.PIPE)
2827
+ with p:
2828
+ # Wait for the interpreter to be completely initialized before
2829
+ # sending any signal.
2830
+ p.stdout.read(1)
2831
+ # The process should end after this
2832
+ time.sleep(1)
2833
+ # This shouldn't raise even though the child is now dead
2834
+ getattr(p, method)(*args)
2835
+ _, stderr = p.communicate()
2836
+ self.assertStderrEqual(stderr, b'')
2837
+ rc = p.wait()
2838
+ self.assertEqual(rc, 42)
2839
+
2840
+ def test_send_signal(self):
2841
+ self._kill_process('send_signal', signal.SIGTERM)
2842
+
2843
+ def test_kill(self):
2844
+ self._kill_process('kill')
2845
+
2846
+ def test_terminate(self):
2847
+ self._kill_process('terminate')
2848
+
2849
+ def test_send_signal_dead(self):
2850
+ self._kill_dead_process('send_signal', signal.SIGTERM)
2851
+
2852
+ def test_kill_dead(self):
2853
+ self._kill_dead_process('kill')
2854
+
2855
+ def test_terminate_dead(self):
2856
+ self._kill_dead_process('terminate')
2857
+
2858
+ class MiscTests(unittest.TestCase):
2859
+ def test_getoutput(self):
2860
+ self.assertEqual(subprocess.getoutput('echo xyzzy'), 'xyzzy')
2861
+ self.assertEqual(subprocess.getstatusoutput('echo xyzzy'),
2862
+ (0, 'xyzzy'))
2863
+
2864
+ # we use mkdtemp in the next line to create an empty directory
2865
+ # under our exclusive control; from that, we can invent a pathname
2866
+ # that we _know_ won't exist. This is guaranteed to fail.
2867
+ dir = None
2868
+ try:
2869
+ dir = tempfile.mkdtemp()
2870
+ name = os.path.join(dir, "foo")
2871
+ status, output = subprocess.getstatusoutput(
2872
+ ("type " if mswindows else "cat ") + name)
2873
+ self.assertNotEqual(status, 0)
2874
+ finally:
2875
+ if dir is not None:
2876
+ os.rmdir(dir)
2877
+
2878
+ def test__all__(self):
2879
+ """Ensure that __all__ is populated properly."""
2880
+ intentionally_excluded = {"list2cmdline", "Handle"}
2881
+ exported = set(subprocess.__all__)
2882
+ possible_exports = set()
2883
+ import types
2884
+ for name, value in subprocess.__dict__.items():
2885
+ if name.startswith('_'):
2886
+ continue
2887
+ if isinstance(value, (types.ModuleType,)):
2888
+ continue
2889
+ possible_exports.add(name)
2890
+ self.assertEqual(exported, possible_exports - intentionally_excluded)
2891
+
2892
+
2893
+ @unittest.skipUnless(hasattr(selectors, 'PollSelector'),
2894
+ "Test needs selectors.PollSelector")
2895
+ class ProcessTestCaseNoPoll(ProcessTestCase):
2896
+ def setUp(self):
2897
+ self.orig_selector = subprocess._PopenSelector
2898
+ subprocess._PopenSelector = selectors.SelectSelector
2899
+ ProcessTestCase.setUp(self)
2900
+
2901
+ def tearDown(self):
2902
+ subprocess._PopenSelector = self.orig_selector
2903
+ ProcessTestCase.tearDown(self)
2904
+
2905
+
2906
+ @unittest.skipUnless(mswindows, "Windows-specific tests")
2907
+ class CommandsWithSpaces (BaseTestCase):
2908
+
2909
+ def setUp(self):
2910
+ super().setUp()
2911
+ f, fname = tempfile.mkstemp(".py", "te st")
2912
+ self.fname = fname.lower ()
2913
+ os.write(f, b"import sys;"
2914
+ b"sys.stdout.write('%d %s' % (len(sys.argv), [a.lower () for a in sys.argv]))"
2915
+ )
2916
+ os.close(f)
2917
+
2918
+ def tearDown(self):
2919
+ os.remove(self.fname)
2920
+ super().tearDown()
2921
+
2922
+ def with_spaces(self, *args, **kwargs):
2923
+ kwargs['stdout'] = subprocess.PIPE
2924
+ p = subprocess.Popen(*args, **kwargs)
2925
+ with p:
2926
+ self.assertEqual(
2927
+ p.stdout.read ().decode("mbcs"),
2928
+ "2 [%r, 'ab cd']" % self.fname
2929
+ )
2930
+
2931
+ def test_shell_string_with_spaces(self):
2932
+ # call() function with string argument with spaces on Windows
2933
+ self.with_spaces('"%s" "%s" "%s"' % (sys.executable, self.fname,
2934
+ "ab cd"), shell=1)
2935
+
2936
+ def test_shell_sequence_with_spaces(self):
2937
+ # call() function with sequence argument with spaces on Windows
2938
+ self.with_spaces([sys.executable, self.fname, "ab cd"], shell=1)
2939
+
2940
+ def test_noshell_string_with_spaces(self):
2941
+ # call() function with string argument with spaces on Windows
2942
+ self.with_spaces('"%s" "%s" "%s"' % (sys.executable, self.fname,
2943
+ "ab cd"))
2944
+
2945
+ def test_noshell_sequence_with_spaces(self):
2946
+ # call() function with sequence argument with spaces on Windows
2947
+ self.with_spaces([sys.executable, self.fname, "ab cd"])
2948
+
2949
+
2950
+ class ContextManagerTests(BaseTestCase):
2951
+
2952
+ def test_pipe(self):
2953
+ with subprocess.Popen([sys.executable, "-c",
2954
+ "import sys;"
2955
+ "sys.stdout.write('stdout');"
2956
+ "sys.stderr.write('stderr');"],
2957
+ stdout=subprocess.PIPE,
2958
+ stderr=subprocess.PIPE) as proc:
2959
+ self.assertEqual(proc.stdout.read(), b"stdout")
2960
+ self.assertStderrEqual(proc.stderr.read(), b"stderr")
2961
+
2962
+ self.assertTrue(proc.stdout.closed)
2963
+ self.assertTrue(proc.stderr.closed)
2964
+
2965
+ def test_returncode(self):
2966
+ with subprocess.Popen([sys.executable, "-c",
2967
+ "import sys; sys.exit(100)"]) as proc:
2968
+ pass
2969
+ # __exit__ calls wait(), so the returncode should be set
2970
+ self.assertEqual(proc.returncode, 100)
2971
+
2972
+ def test_communicate_stdin(self):
2973
+ with subprocess.Popen([sys.executable, "-c",
2974
+ "import sys;"
2975
+ "sys.exit(sys.stdin.read() == 'context')"],
2976
+ stdin=subprocess.PIPE) as proc:
2977
+ proc.communicate(b"context")
2978
+ self.assertEqual(proc.returncode, 1)
2979
+
2980
+ def test_invalid_args(self):
2981
+ with self.assertRaises((FileNotFoundError, PermissionError)) as c:
2982
+ with subprocess.Popen(NONEXISTING_CMD,
2983
+ stdout=subprocess.PIPE,
2984
+ stderr=subprocess.PIPE) as proc:
2985
+ pass
2986
+
2987
+ def test_broken_pipe_cleanup(self):
2988
+ """Broken pipe error should not prevent wait() (Issue 21619)"""
2989
+ proc = subprocess.Popen([sys.executable, '-c', 'pass'],
2990
+ stdin=subprocess.PIPE,
2991
+ bufsize=support.PIPE_MAX_SIZE*2)
2992
+ proc = proc.__enter__()
2993
+ # Prepare to send enough data to overflow any OS pipe buffering and
2994
+ # guarantee a broken pipe error. Data is held in BufferedWriter
2995
+ # buffer until closed.
2996
+ proc.stdin.write(b'x' * support.PIPE_MAX_SIZE)
2997
+ self.assertIsNone(proc.returncode)
2998
+ # EPIPE expected under POSIX; EINVAL under Windows
2999
+ self.assertRaises(OSError, proc.__exit__, None, None, None)
3000
+ self.assertEqual(proc.returncode, 0)
3001
+ self.assertTrue(proc.stdin.closed)
3002
+
3003
+
3004
+ if __name__ == "__main__":
3005
+ unittest.main()