com.googler.python 1.1.2 → 1.1.4

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 (2641) hide show
  1. package/package.json +3 -9
  2. package/python3.6.2/bin/2to3 +1 -1
  3. package/python3.6.2/bin/2to3-3.4 +1 -1
  4. package/python3.6.2/bin/easy_install-3.4 +1 -1
  5. package/python3.6.2/bin/idle3 +1 -1
  6. package/python3.6.2/bin/pip3 +1 -1
  7. package/python3.6.2/bin/pydoc3 +1 -1
  8. package/python3.6.2/bin/pyvenv +1 -1
  9. package/python3.6.2/lib/python3.6/LICENSE.txt +254 -0
  10. package/python3.6.2/lib/python3.6/__future__.pyc +0 -0
  11. package/python3.6.2/lib/python3.6/__phello__.foo.pyc +0 -0
  12. package/python3.6.2/lib/python3.6/_bootlocale.pyc +0 -0
  13. package/python3.6.2/lib/python3.6/_collections_abc.pyc +0 -0
  14. package/python3.6.2/lib/python3.6/_compat_pickle.pyc +0 -0
  15. package/python3.6.2/lib/python3.6/_compression.pyc +0 -0
  16. package/python3.6.2/lib/python3.6/_dummy_thread.pyc +0 -0
  17. package/python3.6.2/lib/python3.6/_markupbase.pyc +0 -0
  18. package/python3.6.2/lib/python3.6/_osx_support.pyc +0 -0
  19. package/python3.6.2/lib/python3.6/_pydecimal.pyc +0 -0
  20. package/python3.6.2/lib/python3.6/_pyio.pyc +0 -0
  21. package/python3.6.2/lib/python3.6/_sitebuiltins.pyc +0 -0
  22. package/python3.6.2/lib/python3.6/_strptime.pyc +0 -0
  23. package/python3.6.2/lib/python3.6/_threading_local.pyc +0 -0
  24. package/python3.6.2/lib/python3.6/_weakrefset.pyc +0 -0
  25. package/python3.6.2/lib/python3.6/abc.pyc +0 -0
  26. package/python3.6.2/lib/python3.6/aifc.pyc +0 -0
  27. package/python3.6.2/lib/python3.6/android.pyc +0 -0
  28. package/python3.6.2/lib/python3.6/antigravity.pyc +0 -0
  29. package/python3.6.2/lib/python3.6/argparse.pyc +0 -0
  30. package/python3.6.2/lib/python3.6/ast.pyc +0 -0
  31. package/python3.6.2/lib/python3.6/asynchat.pyc +0 -0
  32. package/python3.6.2/lib/python3.6/asyncio/__init__.pyc +0 -0
  33. package/python3.6.2/lib/python3.6/asyncio/base_events.pyc +0 -0
  34. package/python3.6.2/lib/python3.6/asyncio/base_futures.pyc +0 -0
  35. package/python3.6.2/lib/python3.6/asyncio/base_subprocess.pyc +0 -0
  36. package/python3.6.2/lib/python3.6/asyncio/base_tasks.pyc +0 -0
  37. package/python3.6.2/lib/python3.6/asyncio/compat.pyc +0 -0
  38. package/python3.6.2/lib/python3.6/asyncio/constants.pyc +0 -0
  39. package/python3.6.2/lib/python3.6/asyncio/coroutines.pyc +0 -0
  40. package/python3.6.2/lib/python3.6/asyncio/events.pyc +0 -0
  41. package/python3.6.2/lib/python3.6/asyncio/futures.pyc +0 -0
  42. package/python3.6.2/lib/python3.6/asyncio/locks.pyc +0 -0
  43. package/python3.6.2/lib/python3.6/asyncio/log.pyc +0 -0
  44. package/python3.6.2/lib/python3.6/asyncio/proactor_events.pyc +0 -0
  45. package/python3.6.2/lib/python3.6/asyncio/protocols.pyc +0 -0
  46. package/python3.6.2/lib/python3.6/asyncio/queues.pyc +0 -0
  47. package/python3.6.2/lib/python3.6/asyncio/selector_events.pyc +0 -0
  48. package/python3.6.2/lib/python3.6/asyncio/sslproto.pyc +0 -0
  49. package/python3.6.2/lib/python3.6/asyncio/streams.pyc +0 -0
  50. package/python3.6.2/lib/python3.6/asyncio/subprocess.pyc +0 -0
  51. package/python3.6.2/lib/python3.6/asyncio/tasks.pyc +0 -0
  52. package/python3.6.2/lib/python3.6/asyncio/test_utils.pyc +0 -0
  53. package/python3.6.2/lib/python3.6/asyncio/transports.pyc +0 -0
  54. package/python3.6.2/lib/python3.6/asyncio/unix_events.pyc +0 -0
  55. package/python3.6.2/lib/python3.6/asyncio/windows_events.pyc +0 -0
  56. package/python3.6.2/lib/python3.6/asyncio/windows_utils.pyc +0 -0
  57. package/python3.6.2/lib/python3.6/asyncore.pyc +0 -0
  58. package/python3.6.2/lib/python3.6/base64.pyc +0 -0
  59. package/python3.6.2/lib/python3.6/bdb.pyc +0 -0
  60. package/python3.6.2/lib/python3.6/binhex.pyc +0 -0
  61. package/python3.6.2/lib/python3.6/bisect.pyc +0 -0
  62. package/python3.6.2/lib/python3.6/bz2.pyc +0 -0
  63. package/python3.6.2/lib/python3.6/cProfile.pyc +0 -0
  64. package/python3.6.2/lib/python3.6/calendar.pyc +0 -0
  65. package/python3.6.2/lib/python3.6/cgi.pyc +0 -0
  66. package/python3.6.2/lib/python3.6/cgitb.pyc +0 -0
  67. package/python3.6.2/lib/python3.6/chunk.pyc +0 -0
  68. package/python3.6.2/lib/python3.6/cmd.pyc +0 -0
  69. package/python3.6.2/lib/python3.6/code.pyc +0 -0
  70. package/python3.6.2/lib/python3.6/codecs.pyc +0 -0
  71. package/python3.6.2/lib/python3.6/codeop.pyc +0 -0
  72. package/python3.6.2/lib/python3.6/collections/__init__.pyc +0 -0
  73. package/python3.6.2/lib/python3.6/collections/abc.pyc +0 -0
  74. package/python3.6.2/lib/python3.6/colorsys.pyc +0 -0
  75. package/python3.6.2/lib/python3.6/compileall.pyc +0 -0
  76. package/python3.6.2/lib/python3.6/concurrent/__init__.pyc +0 -0
  77. package/python3.6.2/lib/python3.6/concurrent/futures/__init__.pyc +0 -0
  78. package/python3.6.2/lib/python3.6/concurrent/futures/_base.pyc +0 -0
  79. package/python3.6.2/lib/python3.6/concurrent/futures/process.pyc +0 -0
  80. package/python3.6.2/lib/python3.6/concurrent/futures/thread.pyc +0 -0
  81. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Makefile +1808 -0
  82. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup +397 -0
  83. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup.config +10 -0
  84. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/Setup.local +1 -0
  85. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/config.c +114 -0
  86. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/config.c.in +67 -0
  87. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/install-sh +294 -0
  88. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/makesetup +296 -0
  89. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/python-config.pyc +0 -0
  90. package/python3.6.2/lib/python3.6/config-3.6m-arm-linux-androideabi/python.o +0 -0
  91. package/python3.6.2/lib/python3.6/configparser.pyc +0 -0
  92. package/python3.6.2/lib/python3.6/contextlib.pyc +0 -0
  93. package/python3.6.2/lib/python3.6/copy.pyc +0 -0
  94. package/python3.6.2/lib/python3.6/copyreg.pyc +0 -0
  95. package/python3.6.2/lib/python3.6/crypt.pyc +0 -0
  96. package/python3.6.2/lib/python3.6/csv.pyc +0 -0
  97. package/python3.6.2/lib/python3.6/ctypes/__init__.pyc +0 -0
  98. package/python3.6.2/lib/python3.6/ctypes/_endian.pyc +0 -0
  99. package/python3.6.2/lib/python3.6/ctypes/macholib/__init__.pyc +0 -0
  100. package/python3.6.2/lib/python3.6/ctypes/macholib/dyld.pyc +0 -0
  101. package/python3.6.2/lib/python3.6/ctypes/macholib/dylib.pyc +0 -0
  102. package/python3.6.2/lib/python3.6/ctypes/macholib/framework.pyc +0 -0
  103. package/python3.6.2/lib/python3.6/ctypes/util.pyc +0 -0
  104. package/python3.6.2/lib/python3.6/ctypes/wintypes.pyc +0 -0
  105. package/python3.6.2/lib/python3.6/curses/__init__.pyc +0 -0
  106. package/python3.6.2/lib/python3.6/curses/ascii.pyc +0 -0
  107. package/python3.6.2/lib/python3.6/curses/has_key.pyc +0 -0
  108. package/python3.6.2/lib/python3.6/curses/panel.pyc +0 -0
  109. package/python3.6.2/lib/python3.6/curses/textpad.pyc +0 -0
  110. package/python3.6.2/lib/python3.6/datetime.pyc +0 -0
  111. package/python3.6.2/lib/python3.6/dbm/__init__.pyc +0 -0
  112. package/python3.6.2/lib/python3.6/dbm/dumb.pyc +0 -0
  113. package/python3.6.2/lib/python3.6/dbm/gnu.pyc +0 -0
  114. package/python3.6.2/lib/python3.6/dbm/ndbm.pyc +0 -0
  115. package/python3.6.2/lib/python3.6/decimal.pyc +0 -0
  116. package/python3.6.2/lib/python3.6/difflib.pyc +0 -0
  117. package/python3.6.2/lib/python3.6/dis.pyc +0 -0
  118. package/python3.6.2/lib/python3.6/distutils/__init__.pyc +0 -0
  119. package/python3.6.2/lib/python3.6/distutils/_msvccompiler.pyc +0 -0
  120. package/python3.6.2/lib/python3.6/distutils/archive_util.pyc +0 -0
  121. package/python3.6.2/lib/python3.6/distutils/bcppcompiler.pyc +0 -0
  122. package/python3.6.2/lib/python3.6/distutils/ccompiler.pyc +0 -0
  123. package/python3.6.2/lib/python3.6/distutils/cmd.pyc +0 -0
  124. package/python3.6.2/lib/python3.6/distutils/command/__init__.pyc +0 -0
  125. package/python3.6.2/lib/python3.6/distutils/command/bdist.pyc +0 -0
  126. package/python3.6.2/lib/python3.6/distutils/command/bdist_dumb.pyc +0 -0
  127. package/python3.6.2/lib/python3.6/distutils/command/bdist_msi.pyc +0 -0
  128. package/python3.6.2/lib/python3.6/distutils/command/bdist_rpm.pyc +0 -0
  129. package/python3.6.2/lib/python3.6/distutils/command/bdist_wininst.pyc +0 -0
  130. package/python3.6.2/lib/python3.6/distutils/command/build.pyc +0 -0
  131. package/python3.6.2/lib/python3.6/distutils/command/build_clib.pyc +0 -0
  132. package/python3.6.2/lib/python3.6/distutils/command/build_ext.pyc +0 -0
  133. package/python3.6.2/lib/python3.6/distutils/command/build_py.pyc +0 -0
  134. package/python3.6.2/lib/python3.6/distutils/command/build_scripts.pyc +0 -0
  135. package/python3.6.2/lib/python3.6/distutils/command/check.pyc +0 -0
  136. package/python3.6.2/lib/python3.6/distutils/command/clean.pyc +0 -0
  137. package/python3.6.2/lib/python3.6/distutils/command/config.pyc +0 -0
  138. package/python3.6.2/lib/python3.6/distutils/command/install.pyc +0 -0
  139. package/python3.6.2/lib/python3.6/distutils/command/install_data.pyc +0 -0
  140. package/python3.6.2/lib/python3.6/distutils/command/install_egg_info.pyc +0 -0
  141. package/python3.6.2/lib/python3.6/distutils/command/install_headers.pyc +0 -0
  142. package/python3.6.2/lib/python3.6/distutils/command/install_lib.pyc +0 -0
  143. package/python3.6.2/lib/python3.6/distutils/command/install_scripts.pyc +0 -0
  144. package/python3.6.2/lib/python3.6/distutils/command/register.pyc +0 -0
  145. package/python3.6.2/lib/python3.6/distutils/command/sdist.pyc +0 -0
  146. package/python3.6.2/lib/python3.6/distutils/command/upload.pyc +0 -0
  147. package/python3.6.2/lib/python3.6/distutils/config.pyc +0 -0
  148. package/python3.6.2/lib/python3.6/distutils/core.pyc +0 -0
  149. package/python3.6.2/lib/python3.6/distutils/cygwinccompiler.pyc +0 -0
  150. package/python3.6.2/lib/python3.6/distutils/debug.pyc +0 -0
  151. package/python3.6.2/lib/python3.6/distutils/dep_util.pyc +0 -0
  152. package/python3.6.2/lib/python3.6/distutils/dir_util.pyc +0 -0
  153. package/python3.6.2/lib/python3.6/distutils/dist.pyc +0 -0
  154. package/python3.6.2/lib/python3.6/distutils/errors.pyc +0 -0
  155. package/python3.6.2/lib/python3.6/distutils/extension.pyc +0 -0
  156. package/python3.6.2/lib/python3.6/distutils/fancy_getopt.pyc +0 -0
  157. package/python3.6.2/lib/python3.6/distutils/file_util.pyc +0 -0
  158. package/python3.6.2/lib/python3.6/distutils/filelist.pyc +0 -0
  159. package/python3.6.2/lib/python3.6/distutils/log.pyc +0 -0
  160. package/python3.6.2/lib/python3.6/distutils/msvc9compiler.pyc +0 -0
  161. package/python3.6.2/lib/python3.6/distutils/msvccompiler.pyc +0 -0
  162. package/python3.6.2/lib/python3.6/distutils/spawn.pyc +0 -0
  163. package/python3.6.2/lib/python3.6/distutils/sysconfig.pyc +0 -0
  164. package/python3.6.2/lib/python3.6/distutils/text_file.pyc +0 -0
  165. package/python3.6.2/lib/python3.6/distutils/unixccompiler.pyc +0 -0
  166. package/python3.6.2/lib/python3.6/distutils/util.pyc +0 -0
  167. package/python3.6.2/lib/python3.6/distutils/version.pyc +0 -0
  168. package/python3.6.2/lib/python3.6/distutils/versionpredicate.pyc +0 -0
  169. package/python3.6.2/lib/python3.6/doctest.pyc +0 -0
  170. package/python3.6.2/lib/python3.6/dummy_threading.pyc +0 -0
  171. package/python3.6.2/lib/python3.6/email/__init__.pyc +0 -0
  172. package/python3.6.2/lib/python3.6/email/_encoded_words.pyc +0 -0
  173. package/python3.6.2/lib/python3.6/email/_header_value_parser.pyc +0 -0
  174. package/python3.6.2/lib/python3.6/email/_parseaddr.pyc +0 -0
  175. package/python3.6.2/lib/python3.6/email/_policybase.pyc +0 -0
  176. package/python3.6.2/lib/python3.6/email/base64mime.pyc +0 -0
  177. package/python3.6.2/lib/python3.6/email/charset.pyc +0 -0
  178. package/python3.6.2/lib/python3.6/email/contentmanager.pyc +0 -0
  179. package/python3.6.2/lib/python3.6/email/encoders.pyc +0 -0
  180. package/python3.6.2/lib/python3.6/email/errors.pyc +0 -0
  181. package/python3.6.2/lib/python3.6/email/feedparser.pyc +0 -0
  182. package/python3.6.2/lib/python3.6/email/generator.pyc +0 -0
  183. package/python3.6.2/lib/python3.6/email/header.pyc +0 -0
  184. package/python3.6.2/lib/python3.6/email/headerregistry.pyc +0 -0
  185. package/python3.6.2/lib/python3.6/email/iterators.pyc +0 -0
  186. package/python3.6.2/lib/python3.6/email/message.pyc +0 -0
  187. package/python3.6.2/lib/python3.6/email/mime/__init__.pyc +0 -0
  188. package/python3.6.2/lib/python3.6/email/mime/application.pyc +0 -0
  189. package/python3.6.2/lib/python3.6/email/mime/audio.pyc +0 -0
  190. package/python3.6.2/lib/python3.6/email/mime/base.pyc +0 -0
  191. package/python3.6.2/lib/python3.6/email/mime/image.pyc +0 -0
  192. package/python3.6.2/lib/python3.6/email/mime/message.pyc +0 -0
  193. package/python3.6.2/lib/python3.6/email/mime/multipart.pyc +0 -0
  194. package/python3.6.2/lib/python3.6/email/mime/nonmultipart.pyc +0 -0
  195. package/python3.6.2/lib/python3.6/email/mime/text.pyc +0 -0
  196. package/python3.6.2/lib/python3.6/email/parser.pyc +0 -0
  197. package/python3.6.2/lib/python3.6/email/policy.pyc +0 -0
  198. package/python3.6.2/lib/python3.6/email/quoprimime.pyc +0 -0
  199. package/python3.6.2/lib/python3.6/email/utils.pyc +0 -0
  200. package/python3.6.2/lib/python3.6/encodings/__init__.pyc +0 -0
  201. package/python3.6.2/lib/python3.6/encodings/aliases.pyc +0 -0
  202. package/python3.6.2/lib/python3.6/encodings/ascii.pyc +0 -0
  203. package/python3.6.2/lib/python3.6/encodings/base64_codec.pyc +0 -0
  204. package/python3.6.2/lib/python3.6/encodings/big5.pyc +0 -0
  205. package/python3.6.2/lib/python3.6/encodings/big5hkscs.pyc +0 -0
  206. package/python3.6.2/lib/python3.6/encodings/bz2_codec.pyc +0 -0
  207. package/python3.6.2/lib/python3.6/encodings/charmap.pyc +0 -0
  208. package/python3.6.2/lib/python3.6/encodings/cp037.pyc +0 -0
  209. package/python3.6.2/lib/python3.6/encodings/cp1006.pyc +0 -0
  210. package/python3.6.2/lib/python3.6/encodings/cp1026.pyc +0 -0
  211. package/python3.6.2/lib/python3.6/encodings/cp1125.pyc +0 -0
  212. package/python3.6.2/lib/python3.6/encodings/cp1140.pyc +0 -0
  213. package/python3.6.2/lib/python3.6/encodings/cp1250.pyc +0 -0
  214. package/python3.6.2/lib/python3.6/encodings/cp1251.pyc +0 -0
  215. package/python3.6.2/lib/python3.6/encodings/cp1252.pyc +0 -0
  216. package/python3.6.2/lib/python3.6/encodings/cp1253.pyc +0 -0
  217. package/python3.6.2/lib/python3.6/encodings/cp1254.pyc +0 -0
  218. package/python3.6.2/lib/python3.6/encodings/cp1255.pyc +0 -0
  219. package/python3.6.2/lib/python3.6/encodings/cp1256.pyc +0 -0
  220. package/python3.6.2/lib/python3.6/encodings/cp1257.pyc +0 -0
  221. package/python3.6.2/lib/python3.6/encodings/cp1258.pyc +0 -0
  222. package/python3.6.2/lib/python3.6/encodings/cp273.pyc +0 -0
  223. package/python3.6.2/lib/python3.6/encodings/cp424.pyc +0 -0
  224. package/python3.6.2/lib/python3.6/encodings/cp437.pyc +0 -0
  225. package/python3.6.2/lib/python3.6/encodings/cp500.pyc +0 -0
  226. package/python3.6.2/lib/python3.6/encodings/cp65001.pyc +0 -0
  227. package/python3.6.2/lib/python3.6/encodings/cp720.pyc +0 -0
  228. package/python3.6.2/lib/python3.6/encodings/cp737.pyc +0 -0
  229. package/python3.6.2/lib/python3.6/encodings/cp775.pyc +0 -0
  230. package/python3.6.2/lib/python3.6/encodings/cp850.pyc +0 -0
  231. package/python3.6.2/lib/python3.6/encodings/cp852.pyc +0 -0
  232. package/python3.6.2/lib/python3.6/encodings/cp855.pyc +0 -0
  233. package/python3.6.2/lib/python3.6/encodings/cp856.pyc +0 -0
  234. package/python3.6.2/lib/python3.6/encodings/cp857.pyc +0 -0
  235. package/python3.6.2/lib/python3.6/encodings/cp858.pyc +0 -0
  236. package/python3.6.2/lib/python3.6/encodings/cp860.pyc +0 -0
  237. package/python3.6.2/lib/python3.6/encodings/cp861.pyc +0 -0
  238. package/python3.6.2/lib/python3.6/encodings/cp862.pyc +0 -0
  239. package/python3.6.2/lib/python3.6/encodings/cp863.pyc +0 -0
  240. package/python3.6.2/lib/python3.6/encodings/cp864.pyc +0 -0
  241. package/python3.6.2/lib/python3.6/encodings/cp865.pyc +0 -0
  242. package/python3.6.2/lib/python3.6/encodings/cp866.pyc +0 -0
  243. package/python3.6.2/lib/python3.6/encodings/cp869.pyc +0 -0
  244. package/python3.6.2/lib/python3.6/encodings/cp874.pyc +0 -0
  245. package/python3.6.2/lib/python3.6/encodings/cp875.pyc +0 -0
  246. package/python3.6.2/lib/python3.6/encodings/cp932.pyc +0 -0
  247. package/python3.6.2/lib/python3.6/encodings/cp949.pyc +0 -0
  248. package/python3.6.2/lib/python3.6/encodings/cp950.pyc +0 -0
  249. package/python3.6.2/lib/python3.6/encodings/euc_jis_2004.pyc +0 -0
  250. package/python3.6.2/lib/python3.6/encodings/euc_jisx0213.pyc +0 -0
  251. package/python3.6.2/lib/python3.6/encodings/euc_jp.pyc +0 -0
  252. package/python3.6.2/lib/python3.6/encodings/euc_kr.pyc +0 -0
  253. package/python3.6.2/lib/python3.6/encodings/gb18030.pyc +0 -0
  254. package/python3.6.2/lib/python3.6/encodings/gb2312.pyc +0 -0
  255. package/python3.6.2/lib/python3.6/encodings/gbk.pyc +0 -0
  256. package/python3.6.2/lib/python3.6/encodings/hex_codec.pyc +0 -0
  257. package/python3.6.2/lib/python3.6/encodings/hp_roman8.pyc +0 -0
  258. package/python3.6.2/lib/python3.6/encodings/hz.pyc +0 -0
  259. package/python3.6.2/lib/python3.6/encodings/idna.pyc +0 -0
  260. package/python3.6.2/lib/python3.6/encodings/iso2022_jp.pyc +0 -0
  261. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_1.pyc +0 -0
  262. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2.pyc +0 -0
  263. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2004.pyc +0 -0
  264. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_3.pyc +0 -0
  265. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_ext.pyc +0 -0
  266. package/python3.6.2/lib/python3.6/encodings/iso2022_kr.pyc +0 -0
  267. package/python3.6.2/lib/python3.6/encodings/iso8859_1.pyc +0 -0
  268. package/python3.6.2/lib/python3.6/encodings/iso8859_10.pyc +0 -0
  269. package/python3.6.2/lib/python3.6/encodings/iso8859_11.pyc +0 -0
  270. package/python3.6.2/lib/python3.6/encodings/iso8859_13.pyc +0 -0
  271. package/python3.6.2/lib/python3.6/encodings/iso8859_14.pyc +0 -0
  272. package/python3.6.2/lib/python3.6/encodings/iso8859_15.pyc +0 -0
  273. package/python3.6.2/lib/python3.6/encodings/iso8859_16.pyc +0 -0
  274. package/python3.6.2/lib/python3.6/encodings/iso8859_2.pyc +0 -0
  275. package/python3.6.2/lib/python3.6/encodings/iso8859_3.pyc +0 -0
  276. package/python3.6.2/lib/python3.6/encodings/iso8859_4.pyc +0 -0
  277. package/python3.6.2/lib/python3.6/encodings/iso8859_5.pyc +0 -0
  278. package/python3.6.2/lib/python3.6/encodings/iso8859_6.pyc +0 -0
  279. package/python3.6.2/lib/python3.6/encodings/iso8859_7.pyc +0 -0
  280. package/python3.6.2/lib/python3.6/encodings/iso8859_8.pyc +0 -0
  281. package/python3.6.2/lib/python3.6/encodings/iso8859_9.pyc +0 -0
  282. package/python3.6.2/lib/python3.6/encodings/johab.pyc +0 -0
  283. package/python3.6.2/lib/python3.6/encodings/koi8_r.pyc +0 -0
  284. package/python3.6.2/lib/python3.6/encodings/koi8_t.pyc +0 -0
  285. package/python3.6.2/lib/python3.6/encodings/koi8_u.pyc +0 -0
  286. package/python3.6.2/lib/python3.6/encodings/kz1048.pyc +0 -0
  287. package/python3.6.2/lib/python3.6/encodings/latin_1.pyc +0 -0
  288. package/python3.6.2/lib/python3.6/encodings/mac_arabic.pyc +0 -0
  289. package/python3.6.2/lib/python3.6/encodings/mac_centeuro.pyc +0 -0
  290. package/python3.6.2/lib/python3.6/encodings/mac_croatian.pyc +0 -0
  291. package/python3.6.2/lib/python3.6/encodings/mac_cyrillic.pyc +0 -0
  292. package/python3.6.2/lib/python3.6/encodings/mac_farsi.pyc +0 -0
  293. package/python3.6.2/lib/python3.6/encodings/mac_greek.pyc +0 -0
  294. package/python3.6.2/lib/python3.6/encodings/mac_iceland.pyc +0 -0
  295. package/python3.6.2/lib/python3.6/encodings/mac_latin2.pyc +0 -0
  296. package/python3.6.2/lib/python3.6/encodings/mac_roman.pyc +0 -0
  297. package/python3.6.2/lib/python3.6/encodings/mac_romanian.pyc +0 -0
  298. package/python3.6.2/lib/python3.6/encodings/mac_turkish.pyc +0 -0
  299. package/python3.6.2/lib/python3.6/encodings/mbcs.pyc +0 -0
  300. package/python3.6.2/lib/python3.6/encodings/oem.pyc +0 -0
  301. package/python3.6.2/lib/python3.6/encodings/palmos.pyc +0 -0
  302. package/python3.6.2/lib/python3.6/encodings/ptcp154.pyc +0 -0
  303. package/python3.6.2/lib/python3.6/encodings/punycode.pyc +0 -0
  304. package/python3.6.2/lib/python3.6/encodings/quopri_codec.pyc +0 -0
  305. package/python3.6.2/lib/python3.6/encodings/raw_unicode_escape.pyc +0 -0
  306. package/python3.6.2/lib/python3.6/encodings/rot_13.pyc +0 -0
  307. package/python3.6.2/lib/python3.6/encodings/shift_jis.pyc +0 -0
  308. package/python3.6.2/lib/python3.6/encodings/shift_jis_2004.pyc +0 -0
  309. package/python3.6.2/lib/python3.6/encodings/shift_jisx0213.pyc +0 -0
  310. package/python3.6.2/lib/python3.6/encodings/tis_620.pyc +0 -0
  311. package/python3.6.2/lib/python3.6/encodings/undefined.pyc +0 -0
  312. package/python3.6.2/lib/python3.6/encodings/unicode_escape.pyc +0 -0
  313. package/python3.6.2/lib/python3.6/encodings/unicode_internal.pyc +0 -0
  314. package/python3.6.2/lib/python3.6/encodings/utf_16.pyc +0 -0
  315. package/python3.6.2/lib/python3.6/encodings/utf_16_be.pyc +0 -0
  316. package/python3.6.2/lib/python3.6/encodings/utf_16_le.pyc +0 -0
  317. package/python3.6.2/lib/python3.6/encodings/utf_32.pyc +0 -0
  318. package/python3.6.2/lib/python3.6/encodings/utf_32_be.pyc +0 -0
  319. package/python3.6.2/lib/python3.6/encodings/utf_32_le.pyc +0 -0
  320. package/python3.6.2/lib/python3.6/encodings/utf_7.pyc +0 -0
  321. package/python3.6.2/lib/python3.6/encodings/utf_8.pyc +0 -0
  322. package/python3.6.2/lib/python3.6/encodings/utf_8_sig.pyc +0 -0
  323. package/python3.6.2/lib/python3.6/encodings/uu_codec.pyc +0 -0
  324. package/python3.6.2/lib/python3.6/encodings/zlib_codec.pyc +0 -0
  325. package/python3.6.2/lib/python3.6/ensurepip/__init__.pyc +0 -0
  326. package/python3.6.2/lib/python3.6/ensurepip/__main__.pyc +0 -0
  327. package/python3.6.2/lib/python3.6/ensurepip/_uninstall.pyc +0 -0
  328. package/python3.6.2/lib/python3.6/enum.pyc +0 -0
  329. package/python3.6.2/lib/python3.6/filecmp.pyc +0 -0
  330. package/python3.6.2/lib/python3.6/fileinput.pyc +0 -0
  331. package/python3.6.2/lib/python3.6/fnmatch.pyc +0 -0
  332. package/python3.6.2/lib/python3.6/formatter.pyc +0 -0
  333. package/python3.6.2/lib/python3.6/fractions.pyc +0 -0
  334. package/python3.6.2/lib/python3.6/ftplib.pyc +0 -0
  335. package/python3.6.2/lib/python3.6/functools.pyc +0 -0
  336. package/python3.6.2/lib/python3.6/genericpath.pyc +0 -0
  337. package/python3.6.2/lib/python3.6/getopt.pyc +0 -0
  338. package/python3.6.2/lib/python3.6/getpass.pyc +0 -0
  339. package/python3.6.2/lib/python3.6/gettext.pyc +0 -0
  340. package/python3.6.2/lib/python3.6/glob.pyc +0 -0
  341. package/python3.6.2/lib/python3.6/gzip.pyc +0 -0
  342. package/python3.6.2/lib/python3.6/hashlib.pyc +0 -0
  343. package/python3.6.2/lib/python3.6/heapq.pyc +0 -0
  344. package/python3.6.2/lib/python3.6/hmac.pyc +0 -0
  345. package/python3.6.2/lib/python3.6/html/__init__.pyc +0 -0
  346. package/python3.6.2/lib/python3.6/html/entities.pyc +0 -0
  347. package/python3.6.2/lib/python3.6/html/parser.pyc +0 -0
  348. package/python3.6.2/lib/python3.6/http/__init__.pyc +0 -0
  349. package/python3.6.2/lib/python3.6/http/client.pyc +0 -0
  350. package/python3.6.2/lib/python3.6/http/cookiejar.pyc +0 -0
  351. package/python3.6.2/lib/python3.6/http/cookies.pyc +0 -0
  352. package/python3.6.2/lib/python3.6/http/server.pyc +0 -0
  353. package/python3.6.2/lib/python3.6/imaplib.pyc +0 -0
  354. package/python3.6.2/lib/python3.6/imghdr.pyc +0 -0
  355. package/python3.6.2/lib/python3.6/imp.pyc +0 -0
  356. package/python3.6.2/lib/python3.6/importlib/__init__.pyc +0 -0
  357. package/python3.6.2/lib/python3.6/importlib/_bootstrap.pyc +0 -0
  358. package/python3.6.2/lib/python3.6/importlib/_bootstrap_external.pyc +0 -0
  359. package/python3.6.2/lib/python3.6/importlib/abc.pyc +0 -0
  360. package/python3.6.2/lib/python3.6/importlib/machinery.pyc +0 -0
  361. package/python3.6.2/lib/python3.6/importlib/util.pyc +0 -0
  362. package/python3.6.2/lib/python3.6/inspect.pyc +0 -0
  363. package/python3.6.2/lib/python3.6/io.pyc +0 -0
  364. package/python3.6.2/lib/python3.6/ipaddress.pyc +0 -0
  365. package/python3.6.2/lib/python3.6/json/__init__.pyc +0 -0
  366. package/python3.6.2/lib/python3.6/json/decoder.pyc +0 -0
  367. package/python3.6.2/lib/python3.6/json/encoder.pyc +0 -0
  368. package/python3.6.2/lib/python3.6/json/scanner.pyc +0 -0
  369. package/python3.6.2/lib/python3.6/json/tool.pyc +0 -0
  370. package/python3.6.2/lib/python3.6/keyword.pyc +0 -0
  371. package/python3.6.2/lib/python3.6/lib2to3/Grammar3.6.3.final.0.pickle +0 -0
  372. package/python3.6.2/lib/python3.6/lib2to3/PatternGrammar3.6.3.final.0.pickle +0 -0
  373. package/python3.6.2/lib/python3.6/lib2to3/__init__.pyc +0 -0
  374. package/python3.6.2/lib/python3.6/lib2to3/__main__.pyc +0 -0
  375. package/python3.6.2/lib/python3.6/lib2to3/btm_matcher.pyc +0 -0
  376. package/python3.6.2/lib/python3.6/lib2to3/btm_utils.pyc +0 -0
  377. package/python3.6.2/lib/python3.6/lib2to3/fixer_base.pyc +0 -0
  378. package/python3.6.2/lib/python3.6/lib2to3/fixer_util.pyc +0 -0
  379. package/python3.6.2/lib/python3.6/lib2to3/fixes/__init__.pyc +0 -0
  380. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_apply.pyc +0 -0
  381. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_asserts.pyc +0 -0
  382. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_basestring.pyc +0 -0
  383. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_buffer.pyc +0 -0
  384. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_dict.pyc +0 -0
  385. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_except.pyc +0 -0
  386. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exec.pyc +0 -0
  387. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_execfile.pyc +0 -0
  388. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exitfunc.pyc +0 -0
  389. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_filter.pyc +0 -0
  390. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_funcattrs.pyc +0 -0
  391. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_future.pyc +0 -0
  392. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_getcwdu.pyc +0 -0
  393. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_has_key.pyc +0 -0
  394. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_idioms.pyc +0 -0
  395. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_import.pyc +0 -0
  396. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports.pyc +0 -0
  397. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports2.pyc +0 -0
  398. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_input.pyc +0 -0
  399. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_intern.pyc +0 -0
  400. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_isinstance.pyc +0 -0
  401. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools.pyc +0 -0
  402. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools_imports.pyc +0 -0
  403. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_long.pyc +0 -0
  404. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_map.pyc +0 -0
  405. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_metaclass.pyc +0 -0
  406. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_methodattrs.pyc +0 -0
  407. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ne.pyc +0 -0
  408. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_next.pyc +0 -0
  409. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_nonzero.pyc +0 -0
  410. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_numliterals.pyc +0 -0
  411. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_operator.pyc +0 -0
  412. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_paren.pyc +0 -0
  413. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_print.pyc +0 -0
  414. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raise.pyc +0 -0
  415. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raw_input.pyc +0 -0
  416. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reduce.pyc +0 -0
  417. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reload.pyc +0 -0
  418. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_renames.pyc +0 -0
  419. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_repr.pyc +0 -0
  420. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_set_literal.pyc +0 -0
  421. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_standarderror.pyc +0 -0
  422. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_sys_exc.pyc +0 -0
  423. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_throw.pyc +0 -0
  424. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_tuple_params.pyc +0 -0
  425. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_types.pyc +0 -0
  426. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_unicode.pyc +0 -0
  427. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_urllib.pyc +0 -0
  428. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ws_comma.pyc +0 -0
  429. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xrange.pyc +0 -0
  430. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xreadlines.pyc +0 -0
  431. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_zip.pyc +0 -0
  432. package/python3.6.2/lib/python3.6/lib2to3/main.pyc +0 -0
  433. package/python3.6.2/lib/python3.6/lib2to3/patcomp.pyc +0 -0
  434. package/python3.6.2/lib/python3.6/lib2to3/pgen2/__init__.pyc +0 -0
  435. package/python3.6.2/lib/python3.6/lib2to3/pgen2/conv.pyc +0 -0
  436. package/python3.6.2/lib/python3.6/lib2to3/pgen2/driver.pyc +0 -0
  437. package/python3.6.2/lib/python3.6/lib2to3/pgen2/grammar.pyc +0 -0
  438. package/python3.6.2/lib/python3.6/lib2to3/pgen2/literals.pyc +0 -0
  439. package/python3.6.2/lib/python3.6/lib2to3/pgen2/parse.pyc +0 -0
  440. package/python3.6.2/lib/python3.6/lib2to3/pgen2/pgen.pyc +0 -0
  441. package/python3.6.2/lib/python3.6/lib2to3/pgen2/token.pyc +0 -0
  442. package/python3.6.2/lib/python3.6/lib2to3/pgen2/tokenize.pyc +0 -0
  443. package/python3.6.2/lib/python3.6/lib2to3/pygram.pyc +0 -0
  444. package/python3.6.2/lib/python3.6/lib2to3/pytree.pyc +0 -0
  445. package/python3.6.2/lib/python3.6/lib2to3/refactor.pyc +0 -0
  446. package/python3.6.2/lib/python3.6/linecache.pyc +0 -0
  447. package/python3.6.2/lib/python3.6/locale.pyc +0 -0
  448. package/python3.6.2/lib/python3.6/logging/__init__.pyc +0 -0
  449. package/python3.6.2/lib/python3.6/logging/config.pyc +0 -0
  450. package/python3.6.2/lib/python3.6/logging/handlers.pyc +0 -0
  451. package/python3.6.2/lib/python3.6/lzma.pyc +0 -0
  452. package/python3.6.2/lib/python3.6/macpath.pyc +0 -0
  453. package/python3.6.2/lib/python3.6/macurl2path.pyc +0 -0
  454. package/python3.6.2/lib/python3.6/mailbox.pyc +0 -0
  455. package/python3.6.2/lib/python3.6/mailcap.pyc +0 -0
  456. package/python3.6.2/lib/python3.6/mimetypes.pyc +0 -0
  457. package/python3.6.2/lib/python3.6/modulefinder.pyc +0 -0
  458. package/python3.6.2/lib/python3.6/multiprocessing/__init__.pyc +0 -0
  459. package/python3.6.2/lib/python3.6/multiprocessing/connection.pyc +0 -0
  460. package/python3.6.2/lib/python3.6/multiprocessing/context.pyc +0 -0
  461. package/python3.6.2/lib/python3.6/multiprocessing/dummy/__init__.pyc +0 -0
  462. package/python3.6.2/lib/python3.6/multiprocessing/dummy/connection.pyc +0 -0
  463. package/python3.6.2/lib/python3.6/multiprocessing/forkserver.pyc +0 -0
  464. package/python3.6.2/lib/python3.6/multiprocessing/heap.pyc +0 -0
  465. package/python3.6.2/lib/python3.6/multiprocessing/managers.pyc +0 -0
  466. package/python3.6.2/lib/python3.6/multiprocessing/pool.pyc +0 -0
  467. package/python3.6.2/lib/python3.6/multiprocessing/popen_fork.pyc +0 -0
  468. package/python3.6.2/lib/python3.6/multiprocessing/popen_forkserver.pyc +0 -0
  469. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_posix.pyc +0 -0
  470. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_win32.pyc +0 -0
  471. package/python3.6.2/lib/python3.6/multiprocessing/process.pyc +0 -0
  472. package/python3.6.2/lib/python3.6/multiprocessing/queues.pyc +0 -0
  473. package/python3.6.2/lib/python3.6/multiprocessing/reduction.pyc +0 -0
  474. package/python3.6.2/lib/python3.6/multiprocessing/resource_sharer.pyc +0 -0
  475. package/python3.6.2/lib/python3.6/multiprocessing/semaphore_tracker.pyc +0 -0
  476. package/python3.6.2/lib/python3.6/multiprocessing/sharedctypes.pyc +0 -0
  477. package/python3.6.2/lib/python3.6/multiprocessing/spawn.pyc +0 -0
  478. package/python3.6.2/lib/python3.6/multiprocessing/synchronize.pyc +0 -0
  479. package/python3.6.2/lib/python3.6/multiprocessing/util.pyc +0 -0
  480. package/python3.6.2/lib/python3.6/netrc.pyc +0 -0
  481. package/python3.6.2/lib/python3.6/nntplib.pyc +0 -0
  482. package/python3.6.2/lib/python3.6/ntpath.pyc +0 -0
  483. package/python3.6.2/lib/python3.6/nturl2path.pyc +0 -0
  484. package/python3.6.2/lib/python3.6/numbers.pyc +0 -0
  485. package/python3.6.2/lib/python3.6/opcode.pyc +0 -0
  486. package/python3.6.2/lib/python3.6/operator.pyc +0 -0
  487. package/python3.6.2/lib/python3.6/optparse.pyc +0 -0
  488. package/python3.6.2/lib/python3.6/os.pyc +0 -0
  489. package/python3.6.2/lib/python3.6/pathlib.pyc +0 -0
  490. package/python3.6.2/lib/python3.6/pdb.pyc +0 -0
  491. package/python3.6.2/lib/python3.6/pickle.pyc +0 -0
  492. package/python3.6.2/lib/python3.6/pickletools.pyc +0 -0
  493. package/python3.6.2/lib/python3.6/pipes.pyc +0 -0
  494. package/python3.6.2/lib/python3.6/pkgutil.pyc +0 -0
  495. package/python3.6.2/lib/python3.6/platform.pyc +0 -0
  496. package/python3.6.2/lib/python3.6/plistlib.pyc +0 -0
  497. package/python3.6.2/lib/python3.6/poplib.pyc +0 -0
  498. package/python3.6.2/lib/python3.6/posixpath.pyc +0 -0
  499. package/python3.6.2/lib/python3.6/pprint.pyc +0 -0
  500. package/python3.6.2/lib/python3.6/profile.pyc +0 -0
  501. package/python3.6.2/lib/python3.6/pstats.pyc +0 -0
  502. package/python3.6.2/lib/python3.6/pty.pyc +0 -0
  503. package/python3.6.2/lib/python3.6/py_compile.pyc +0 -0
  504. package/python3.6.2/lib/python3.6/pyclbr.pyc +0 -0
  505. package/python3.6.2/lib/python3.6/pydoc.pyc +0 -0
  506. package/python3.6.2/lib/python3.6/pydoc_data/__init__.pyc +0 -0
  507. package/python3.6.2/lib/python3.6/pydoc_data/topics.pyc +0 -0
  508. package/python3.6.2/lib/python3.6/queue.pyc +0 -0
  509. package/python3.6.2/lib/python3.6/quopri.pyc +0 -0
  510. package/python3.6.2/lib/python3.6/random.pyc +0 -0
  511. package/python3.6.2/lib/python3.6/re.pyc +0 -0
  512. package/python3.6.2/lib/python3.6/reprlib.pyc +0 -0
  513. package/python3.6.2/lib/python3.6/rlcompleter.pyc +0 -0
  514. package/python3.6.2/lib/python3.6/runpy.pyc +0 -0
  515. package/python3.6.2/lib/python3.6/sched.pyc +0 -0
  516. package/python3.6.2/lib/python3.6/secrets.pyc +0 -0
  517. package/python3.6.2/lib/python3.6/selectors.pyc +0 -0
  518. package/python3.6.2/lib/python3.6/shelve.pyc +0 -0
  519. package/python3.6.2/lib/python3.6/shlex.pyc +0 -0
  520. package/python3.6.2/lib/python3.6/shutil.pyc +0 -0
  521. package/python3.6.2/lib/python3.6/signal.pyc +0 -0
  522. package/python3.6.2/lib/python3.6/site.pyc +0 -0
  523. package/python3.6.2/lib/python3.6/smtpd.pyc +0 -0
  524. package/python3.6.2/lib/python3.6/smtplib.pyc +0 -0
  525. package/python3.6.2/lib/python3.6/sndhdr.pyc +0 -0
  526. package/python3.6.2/lib/python3.6/socket.pyc +0 -0
  527. package/python3.6.2/lib/python3.6/socketserver.pyc +0 -0
  528. package/python3.6.2/lib/python3.6/sqlite3/__init__.pyc +0 -0
  529. package/python3.6.2/lib/python3.6/sqlite3/dbapi2.pyc +0 -0
  530. package/python3.6.2/lib/python3.6/sqlite3/dump.pyc +0 -0
  531. package/python3.6.2/lib/python3.6/sre_compile.pyc +0 -0
  532. package/python3.6.2/lib/python3.6/sre_constants.pyc +0 -0
  533. package/python3.6.2/lib/python3.6/sre_parse.pyc +0 -0
  534. package/python3.6.2/lib/python3.6/ssl.pyc +0 -0
  535. package/python3.6.2/lib/python3.6/stat.pyc +0 -0
  536. package/python3.6.2/lib/python3.6/statistics.pyc +0 -0
  537. package/python3.6.2/lib/python3.6/string.pyc +0 -0
  538. package/python3.6.2/lib/python3.6/stringprep.pyc +0 -0
  539. package/python3.6.2/lib/python3.6/struct.pyc +0 -0
  540. package/python3.6.2/lib/python3.6/subprocess.pyc +0 -0
  541. package/python3.6.2/lib/python3.6/sunau.pyc +0 -0
  542. package/python3.6.2/lib/python3.6/symbol.pyc +0 -0
  543. package/python3.6.2/lib/python3.6/symtable.pyc +0 -0
  544. package/python3.6.2/lib/python3.6/sysconfig.pyc +0 -0
  545. package/python3.6.2/lib/python3.6/tabnanny.pyc +0 -0
  546. package/python3.6.2/lib/python3.6/tarfile.pyc +0 -0
  547. package/python3.6.2/lib/python3.6/telnetlib.pyc +0 -0
  548. package/python3.6.2/lib/python3.6/tempfile.pyc +0 -0
  549. package/python3.6.2/lib/python3.6/textwrap.pyc +0 -0
  550. package/python3.6.2/lib/python3.6/this.pyc +0 -0
  551. package/python3.6.2/lib/python3.6/threading.pyc +0 -0
  552. package/python3.6.2/lib/python3.6/timeit.pyc +0 -0
  553. package/python3.6.2/lib/python3.6/token.pyc +0 -0
  554. package/python3.6.2/lib/python3.6/tokenize.pyc +0 -0
  555. package/python3.6.2/lib/python3.6/trace.pyc +0 -0
  556. package/python3.6.2/lib/python3.6/traceback.pyc +0 -0
  557. package/python3.6.2/lib/python3.6/tracemalloc.pyc +0 -0
  558. package/python3.6.2/lib/python3.6/tty.pyc +0 -0
  559. package/python3.6.2/lib/python3.6/turtle.pyc +0 -0
  560. package/python3.6.2/lib/python3.6/types.pyc +0 -0
  561. package/python3.6.2/lib/python3.6/typing.pyc +0 -0
  562. package/python3.6.2/lib/python3.6/unittest/__init__.pyc +0 -0
  563. package/python3.6.2/lib/python3.6/unittest/__main__.pyc +0 -0
  564. package/python3.6.2/lib/python3.6/unittest/case.pyc +0 -0
  565. package/python3.6.2/lib/python3.6/unittest/loader.pyc +0 -0
  566. package/python3.6.2/lib/python3.6/unittest/main.pyc +0 -0
  567. package/python3.6.2/lib/python3.6/unittest/mock.pyc +0 -0
  568. package/python3.6.2/lib/python3.6/unittest/result.pyc +0 -0
  569. package/python3.6.2/lib/python3.6/unittest/runner.pyc +0 -0
  570. package/python3.6.2/lib/python3.6/unittest/signals.pyc +0 -0
  571. package/python3.6.2/lib/python3.6/unittest/suite.pyc +0 -0
  572. package/python3.6.2/lib/python3.6/unittest/util.pyc +0 -0
  573. package/python3.6.2/lib/python3.6/urllib/__init__.pyc +0 -0
  574. package/python3.6.2/lib/python3.6/urllib/error.pyc +0 -0
  575. package/python3.6.2/lib/python3.6/urllib/parse.pyc +0 -0
  576. package/python3.6.2/lib/python3.6/urllib/request.pyc +0 -0
  577. package/python3.6.2/lib/python3.6/urllib/response.pyc +0 -0
  578. package/python3.6.2/lib/python3.6/urllib/robotparser.pyc +0 -0
  579. package/python3.6.2/lib/python3.6/uu.pyc +0 -0
  580. package/python3.6.2/lib/python3.6/uuid.pyc +0 -0
  581. package/python3.6.2/lib/python3.6/venv/__init__.pyc +0 -0
  582. package/python3.6.2/lib/python3.6/venv/__main__.pyc +0 -0
  583. package/python3.6.2/lib/python3.6/warnings.pyc +0 -0
  584. package/python3.6.2/lib/python3.6/wave.pyc +0 -0
  585. package/python3.6.2/lib/python3.6/weakref.pyc +0 -0
  586. package/python3.6.2/lib/python3.6/webbrowser.pyc +0 -0
  587. package/python3.6.2/lib/python3.6/wsgiref/__init__.pyc +0 -0
  588. package/python3.6.2/lib/python3.6/wsgiref/handlers.pyc +0 -0
  589. package/python3.6.2/lib/python3.6/wsgiref/headers.pyc +0 -0
  590. package/python3.6.2/lib/python3.6/wsgiref/simple_server.pyc +0 -0
  591. package/python3.6.2/lib/python3.6/wsgiref/util.pyc +0 -0
  592. package/python3.6.2/lib/python3.6/wsgiref/validate.pyc +0 -0
  593. package/python3.6.2/lib/python3.6/xdrlib.pyc +0 -0
  594. package/python3.6.2/lib/python3.6/xml/__init__.pyc +0 -0
  595. package/python3.6.2/lib/python3.6/xml/dom/NodeFilter.pyc +0 -0
  596. package/python3.6.2/lib/python3.6/xml/dom/__init__.pyc +0 -0
  597. package/python3.6.2/lib/python3.6/xml/dom/domreg.pyc +0 -0
  598. package/python3.6.2/lib/python3.6/xml/dom/expatbuilder.pyc +0 -0
  599. package/python3.6.2/lib/python3.6/xml/dom/minicompat.pyc +0 -0
  600. package/python3.6.2/lib/python3.6/xml/dom/minidom.pyc +0 -0
  601. package/python3.6.2/lib/python3.6/xml/dom/pulldom.pyc +0 -0
  602. package/python3.6.2/lib/python3.6/xml/dom/xmlbuilder.pyc +0 -0
  603. package/python3.6.2/lib/python3.6/xml/etree/ElementInclude.pyc +0 -0
  604. package/python3.6.2/lib/python3.6/xml/etree/ElementPath.pyc +0 -0
  605. package/python3.6.2/lib/python3.6/xml/etree/ElementTree.pyc +0 -0
  606. package/python3.6.2/lib/python3.6/xml/etree/__init__.pyc +0 -0
  607. package/python3.6.2/lib/python3.6/xml/etree/cElementTree.pyc +0 -0
  608. package/python3.6.2/lib/python3.6/xml/parsers/__init__.pyc +0 -0
  609. package/python3.6.2/lib/python3.6/xml/parsers/expat.pyc +0 -0
  610. package/python3.6.2/lib/python3.6/xml/sax/__init__.pyc +0 -0
  611. package/python3.6.2/lib/python3.6/xml/sax/_exceptions.pyc +0 -0
  612. package/python3.6.2/lib/python3.6/xml/sax/expatreader.pyc +0 -0
  613. package/python3.6.2/lib/python3.6/xml/sax/handler.pyc +0 -0
  614. package/python3.6.2/lib/python3.6/xml/sax/saxutils.pyc +0 -0
  615. package/python3.6.2/lib/python3.6/xml/sax/xmlreader.pyc +0 -0
  616. package/python3.6.2/lib/python3.6/xmlrpc/__init__.pyc +0 -0
  617. package/python3.6.2/lib/python3.6/xmlrpc/client.pyc +0 -0
  618. package/python3.6.2/lib/python3.6/xmlrpc/server.pyc +0 -0
  619. package/python3.6.2/lib/python3.6/zipapp.pyc +0 -0
  620. package/python3.6.2/lib/python3.6/zipfile.pyc +0 -0
  621. package/python3.6.2/bin/idle3.4 +0 -5
  622. package/python3.6.2/bin/pip3.4 +0 -11
  623. package/python3.6.2/bin/pydoc3.4 +0 -5
  624. package/python3.6.2/bin/pyvenv-3.4 +0 -11
  625. package/python3.6.2/lib/python3.6/__future__.py +0 -140
  626. package/python3.6.2/lib/python3.6/__phello__.foo.py +0 -1
  627. package/python3.6.2/lib/python3.6/_bootlocale.py +0 -34
  628. package/python3.6.2/lib/python3.6/_collections_abc.py +0 -1008
  629. package/python3.6.2/lib/python3.6/_compat_pickle.py +0 -251
  630. package/python3.6.2/lib/python3.6/_compression.py +0 -152
  631. package/python3.6.2/lib/python3.6/_dummy_thread.py +0 -163
  632. package/python3.6.2/lib/python3.6/_markupbase.py +0 -395
  633. package/python3.6.2/lib/python3.6/_osx_support.py +0 -502
  634. package/python3.6.2/lib/python3.6/_pydecimal.py +0 -6449
  635. package/python3.6.2/lib/python3.6/_pyio.py +0 -2531
  636. package/python3.6.2/lib/python3.6/_sitebuiltins.py +0 -103
  637. package/python3.6.2/lib/python3.6/_strptime.py +0 -576
  638. package/python3.6.2/lib/python3.6/_threading_local.py +0 -246
  639. package/python3.6.2/lib/python3.6/_weakrefset.py +0 -196
  640. package/python3.6.2/lib/python3.6/abc.py +0 -248
  641. package/python3.6.2/lib/python3.6/aifc.py +0 -943
  642. package/python3.6.2/lib/python3.6/antigravity.py +0 -17
  643. package/python3.6.2/lib/python3.6/argparse.py +0 -2389
  644. package/python3.6.2/lib/python3.6/ast.py +0 -322
  645. package/python3.6.2/lib/python3.6/asynchat.py +0 -307
  646. package/python3.6.2/lib/python3.6/asyncio/__init__.py +0 -50
  647. package/python3.6.2/lib/python3.6/asyncio/base_events.py +0 -1474
  648. package/python3.6.2/lib/python3.6/asyncio/base_futures.py +0 -71
  649. package/python3.6.2/lib/python3.6/asyncio/base_subprocess.py +0 -293
  650. package/python3.6.2/lib/python3.6/asyncio/base_tasks.py +0 -76
  651. package/python3.6.2/lib/python3.6/asyncio/compat.py +0 -18
  652. package/python3.6.2/lib/python3.6/asyncio/constants.py +0 -12
  653. package/python3.6.2/lib/python3.6/asyncio/coroutines.py +0 -346
  654. package/python3.6.2/lib/python3.6/asyncio/events.py +0 -715
  655. package/python3.6.2/lib/python3.6/asyncio/futures.py +0 -439
  656. package/python3.6.2/lib/python3.6/asyncio/locks.py +0 -485
  657. package/python3.6.2/lib/python3.6/asyncio/log.py +0 -7
  658. package/python3.6.2/lib/python3.6/asyncio/proactor_events.py +0 -551
  659. package/python3.6.2/lib/python3.6/asyncio/protocols.py +0 -134
  660. package/python3.6.2/lib/python3.6/asyncio/queues.py +0 -259
  661. package/python3.6.2/lib/python3.6/asyncio/selector_events.py +0 -1141
  662. package/python3.6.2/lib/python3.6/asyncio/sslproto.py +0 -697
  663. package/python3.6.2/lib/python3.6/asyncio/streams.py +0 -701
  664. package/python3.6.2/lib/python3.6/asyncio/subprocess.py +0 -226
  665. package/python3.6.2/lib/python3.6/asyncio/tasks.py +0 -717
  666. package/python3.6.2/lib/python3.6/asyncio/test_utils.py +0 -519
  667. package/python3.6.2/lib/python3.6/asyncio/transports.py +0 -306
  668. package/python3.6.2/lib/python3.6/asyncio/unix_events.py +0 -1074
  669. package/python3.6.2/lib/python3.6/asyncio/windows_events.py +0 -779
  670. package/python3.6.2/lib/python3.6/asyncio/windows_utils.py +0 -224
  671. package/python3.6.2/lib/python3.6/asyncore.py +0 -645
  672. package/python3.6.2/lib/python3.6/base64.py +0 -602
  673. package/python3.6.2/lib/python3.6/bdb.py +0 -673
  674. package/python3.6.2/lib/python3.6/binhex.py +0 -479
  675. package/python3.6.2/lib/python3.6/bisect.py +0 -92
  676. package/python3.6.2/lib/python3.6/bz2.py +0 -361
  677. package/python3.6.2/lib/python3.6/cProfile.py +0 -160
  678. package/python3.6.2/lib/python3.6/calendar.py +0 -713
  679. package/python3.6.2/lib/python3.6/cgi.py +0 -1077
  680. package/python3.6.2/lib/python3.6/cgitb.py +0 -319
  681. package/python3.6.2/lib/python3.6/chunk.py +0 -169
  682. package/python3.6.2/lib/python3.6/cmd.py +0 -401
  683. package/python3.6.2/lib/python3.6/code.py +0 -314
  684. package/python3.6.2/lib/python3.6/codecs.py +0 -1113
  685. package/python3.6.2/lib/python3.6/codeop.py +0 -168
  686. package/python3.6.2/lib/python3.6/collections/__init__.py +0 -1244
  687. package/python3.6.2/lib/python3.6/collections/abc.py +0 -2
  688. package/python3.6.2/lib/python3.6/colorsys.py +0 -164
  689. package/python3.6.2/lib/python3.6/compileall.py +0 -295
  690. package/python3.6.2/lib/python3.6/concurrent/__init__.py +0 -1
  691. package/python3.6.2/lib/python3.6/concurrent/futures/__init__.py +0 -18
  692. package/python3.6.2/lib/python3.6/concurrent/futures/_base.py +0 -612
  693. package/python3.6.2/lib/python3.6/concurrent/futures/process.py +0 -515
  694. package/python3.6.2/lib/python3.6/concurrent/futures/thread.py +0 -153
  695. package/python3.6.2/lib/python3.6/configparser.py +0 -1342
  696. package/python3.6.2/lib/python3.6/contextlib.py +0 -384
  697. package/python3.6.2/lib/python3.6/copy.py +0 -313
  698. package/python3.6.2/lib/python3.6/copyreg.py +0 -206
  699. package/python3.6.2/lib/python3.6/crypt.py +0 -61
  700. package/python3.6.2/lib/python3.6/csv.py +0 -449
  701. package/python3.6.2/lib/python3.6/ctypes/__init__.py +0 -538
  702. package/python3.6.2/lib/python3.6/ctypes/_endian.py +0 -61
  703. package/python3.6.2/lib/python3.6/ctypes/macholib/__init__.py +0 -9
  704. package/python3.6.2/lib/python3.6/ctypes/macholib/dyld.py +0 -159
  705. package/python3.6.2/lib/python3.6/ctypes/macholib/dylib.py +0 -63
  706. package/python3.6.2/lib/python3.6/ctypes/macholib/framework.py +0 -65
  707. package/python3.6.2/lib/python3.6/ctypes/test/__init__.py +0 -14
  708. package/python3.6.2/lib/python3.6/ctypes/test/__main__.py +0 -4
  709. package/python3.6.2/lib/python3.6/ctypes/test/test_anon.py +0 -73
  710. package/python3.6.2/lib/python3.6/ctypes/test/test_array_in_pointer.py +0 -64
  711. package/python3.6.2/lib/python3.6/ctypes/test/test_arrays.py +0 -185
  712. package/python3.6.2/lib/python3.6/ctypes/test/test_as_parameter.py +0 -226
  713. package/python3.6.2/lib/python3.6/ctypes/test/test_bitfields.py +0 -290
  714. package/python3.6.2/lib/python3.6/ctypes/test/test_buffers.py +0 -64
  715. package/python3.6.2/lib/python3.6/ctypes/test/test_bytes.py +0 -65
  716. package/python3.6.2/lib/python3.6/ctypes/test/test_byteswap.py +0 -315
  717. package/python3.6.2/lib/python3.6/ctypes/test/test_callbacks.py +0 -293
  718. package/python3.6.2/lib/python3.6/ctypes/test/test_cast.py +0 -86
  719. package/python3.6.2/lib/python3.6/ctypes/test/test_cfuncs.py +0 -212
  720. package/python3.6.2/lib/python3.6/ctypes/test/test_checkretval.py +0 -36
  721. package/python3.6.2/lib/python3.6/ctypes/test/test_delattr.py +0 -21
  722. package/python3.6.2/lib/python3.6/ctypes/test/test_errno.py +0 -79
  723. package/python3.6.2/lib/python3.6/ctypes/test/test_find.py +0 -116
  724. package/python3.6.2/lib/python3.6/ctypes/test/test_frombuffer.py +0 -141
  725. package/python3.6.2/lib/python3.6/ctypes/test/test_funcptr.py +0 -132
  726. package/python3.6.2/lib/python3.6/ctypes/test/test_functions.py +0 -402
  727. package/python3.6.2/lib/python3.6/ctypes/test/test_incomplete.py +0 -42
  728. package/python3.6.2/lib/python3.6/ctypes/test/test_init.py +0 -40
  729. package/python3.6.2/lib/python3.6/ctypes/test/test_internals.py +0 -100
  730. package/python3.6.2/lib/python3.6/ctypes/test/test_keeprefs.py +0 -153
  731. package/python3.6.2/lib/python3.6/ctypes/test/test_libc.py +0 -33
  732. package/python3.6.2/lib/python3.6/ctypes/test/test_loading.py +0 -116
  733. package/python3.6.2/lib/python3.6/ctypes/test/test_macholib.py +0 -63
  734. package/python3.6.2/lib/python3.6/ctypes/test/test_memfunctions.py +0 -79
  735. package/python3.6.2/lib/python3.6/ctypes/test/test_numbers.py +0 -290
  736. package/python3.6.2/lib/python3.6/ctypes/test/test_objects.py +0 -67
  737. package/python3.6.2/lib/python3.6/ctypes/test/test_parameters.py +0 -207
  738. package/python3.6.2/lib/python3.6/ctypes/test/test_pep3118.py +0 -233
  739. package/python3.6.2/lib/python3.6/ctypes/test/test_pickling.py +0 -81
  740. package/python3.6.2/lib/python3.6/ctypes/test/test_pointers.py +0 -223
  741. package/python3.6.2/lib/python3.6/ctypes/test/test_prototypes.py +0 -222
  742. package/python3.6.2/lib/python3.6/ctypes/test/test_python_api.py +0 -89
  743. package/python3.6.2/lib/python3.6/ctypes/test/test_random_things.py +0 -74
  744. package/python3.6.2/lib/python3.6/ctypes/test/test_refcounts.py +0 -101
  745. package/python3.6.2/lib/python3.6/ctypes/test/test_repr.py +0 -29
  746. package/python3.6.2/lib/python3.6/ctypes/test/test_returnfuncptrs.py +0 -66
  747. package/python3.6.2/lib/python3.6/ctypes/test/test_simplesubclasses.py +0 -55
  748. package/python3.6.2/lib/python3.6/ctypes/test/test_sizes.py +0 -33
  749. package/python3.6.2/lib/python3.6/ctypes/test/test_slicing.py +0 -167
  750. package/python3.6.2/lib/python3.6/ctypes/test/test_stringptr.py +0 -77
  751. package/python3.6.2/lib/python3.6/ctypes/test/test_strings.py +0 -225
  752. package/python3.6.2/lib/python3.6/ctypes/test/test_struct_fields.py +0 -74
  753. package/python3.6.2/lib/python3.6/ctypes/test/test_structures.py +0 -491
  754. package/python3.6.2/lib/python3.6/ctypes/test/test_unaligned_structures.py +0 -45
  755. package/python3.6.2/lib/python3.6/ctypes/test/test_unicode.py +0 -56
  756. package/python3.6.2/lib/python3.6/ctypes/test/test_values.py +0 -100
  757. package/python3.6.2/lib/python3.6/ctypes/test/test_varsize_struct.py +0 -50
  758. package/python3.6.2/lib/python3.6/ctypes/test/test_win32.py +0 -147
  759. package/python3.6.2/lib/python3.6/ctypes/test/test_wintypes.py +0 -41
  760. package/python3.6.2/lib/python3.6/ctypes/util.py +0 -337
  761. package/python3.6.2/lib/python3.6/ctypes/wintypes.py +0 -202
  762. package/python3.6.2/lib/python3.6/curses/__init__.py +0 -101
  763. package/python3.6.2/lib/python3.6/curses/ascii.py +0 -99
  764. package/python3.6.2/lib/python3.6/curses/has_key.py +0 -192
  765. package/python3.6.2/lib/python3.6/curses/panel.py +0 -6
  766. package/python3.6.2/lib/python3.6/curses/textpad.py +0 -201
  767. package/python3.6.2/lib/python3.6/datetime.py +0 -2280
  768. package/python3.6.2/lib/python3.6/dbm/__init__.py +0 -188
  769. package/python3.6.2/lib/python3.6/dbm/dumb.py +0 -324
  770. package/python3.6.2/lib/python3.6/dbm/gnu.py +0 -3
  771. package/python3.6.2/lib/python3.6/dbm/ndbm.py +0 -3
  772. package/python3.6.2/lib/python3.6/decimal.py +0 -11
  773. package/python3.6.2/lib/python3.6/difflib.py +0 -2093
  774. package/python3.6.2/lib/python3.6/dis.py +0 -490
  775. package/python3.6.2/lib/python3.6/distutils/__init__.py +0 -13
  776. package/python3.6.2/lib/python3.6/distutils/_msvccompiler.py +0 -574
  777. package/python3.6.2/lib/python3.6/distutils/archive_util.py +0 -248
  778. package/python3.6.2/lib/python3.6/distutils/bcppcompiler.py +0 -393
  779. package/python3.6.2/lib/python3.6/distutils/ccompiler.py +0 -1115
  780. package/python3.6.2/lib/python3.6/distutils/cmd.py +0 -434
  781. package/python3.6.2/lib/python3.6/distutils/command/__init__.py +0 -31
  782. package/python3.6.2/lib/python3.6/distutils/command/bdist.py +0 -143
  783. package/python3.6.2/lib/python3.6/distutils/command/bdist_dumb.py +0 -123
  784. package/python3.6.2/lib/python3.6/distutils/command/bdist_msi.py +0 -741
  785. package/python3.6.2/lib/python3.6/distutils/command/bdist_rpm.py +0 -582
  786. package/python3.6.2/lib/python3.6/distutils/command/bdist_wininst.py +0 -365
  787. package/python3.6.2/lib/python3.6/distutils/command/build.py +0 -157
  788. package/python3.6.2/lib/python3.6/distutils/command/build_clib.py +0 -209
  789. package/python3.6.2/lib/python3.6/distutils/command/build_ext.py +0 -755
  790. package/python3.6.2/lib/python3.6/distutils/command/build_py.py +0 -416
  791. package/python3.6.2/lib/python3.6/distutils/command/build_scripts.py +0 -160
  792. package/python3.6.2/lib/python3.6/distutils/command/check.py +0 -145
  793. package/python3.6.2/lib/python3.6/distutils/command/clean.py +0 -76
  794. package/python3.6.2/lib/python3.6/distutils/command/config.py +0 -347
  795. package/python3.6.2/lib/python3.6/distutils/command/install.py +0 -656
  796. package/python3.6.2/lib/python3.6/distutils/command/install_data.py +0 -79
  797. package/python3.6.2/lib/python3.6/distutils/command/install_egg_info.py +0 -77
  798. package/python3.6.2/lib/python3.6/distutils/command/install_headers.py +0 -47
  799. package/python3.6.2/lib/python3.6/distutils/command/install_lib.py +0 -217
  800. package/python3.6.2/lib/python3.6/distutils/command/install_scripts.py +0 -60
  801. package/python3.6.2/lib/python3.6/distutils/command/register.py +0 -304
  802. package/python3.6.2/lib/python3.6/distutils/command/sdist.py +0 -456
  803. package/python3.6.2/lib/python3.6/distutils/command/upload.py +0 -201
  804. package/python3.6.2/lib/python3.6/distutils/command/wininst-10.0-amd64.exe +0 -0
  805. package/python3.6.2/lib/python3.6/distutils/command/wininst-10.0.exe +0 -0
  806. package/python3.6.2/lib/python3.6/distutils/command/wininst-14.0-amd64.exe +0 -0
  807. package/python3.6.2/lib/python3.6/distutils/command/wininst-14.0.exe +0 -0
  808. package/python3.6.2/lib/python3.6/distutils/command/wininst-6.0.exe +0 -0
  809. package/python3.6.2/lib/python3.6/distutils/command/wininst-7.1.exe +0 -0
  810. package/python3.6.2/lib/python3.6/distutils/command/wininst-8.0.exe +0 -0
  811. package/python3.6.2/lib/python3.6/distutils/command/wininst-9.0-amd64.exe +0 -0
  812. package/python3.6.2/lib/python3.6/distutils/command/wininst-9.0.exe +0 -0
  813. package/python3.6.2/lib/python3.6/distutils/config.py +0 -131
  814. package/python3.6.2/lib/python3.6/distutils/core.py +0 -234
  815. package/python3.6.2/lib/python3.6/distutils/cygwinccompiler.py +0 -405
  816. package/python3.6.2/lib/python3.6/distutils/debug.py +0 -5
  817. package/python3.6.2/lib/python3.6/distutils/dep_util.py +0 -92
  818. package/python3.6.2/lib/python3.6/distutils/dir_util.py +0 -210
  819. package/python3.6.2/lib/python3.6/distutils/dist.py +0 -1236
  820. package/python3.6.2/lib/python3.6/distutils/errors.py +0 -97
  821. package/python3.6.2/lib/python3.6/distutils/extension.py +0 -240
  822. package/python3.6.2/lib/python3.6/distutils/fancy_getopt.py +0 -457
  823. package/python3.6.2/lib/python3.6/distutils/file_util.py +0 -238
  824. package/python3.6.2/lib/python3.6/distutils/filelist.py +0 -327
  825. package/python3.6.2/lib/python3.6/distutils/log.py +0 -75
  826. package/python3.6.2/lib/python3.6/distutils/msvc9compiler.py +0 -791
  827. package/python3.6.2/lib/python3.6/distutils/msvccompiler.py +0 -643
  828. package/python3.6.2/lib/python3.6/distutils/spawn.py +0 -192
  829. package/python3.6.2/lib/python3.6/distutils/sysconfig.py +0 -532
  830. package/python3.6.2/lib/python3.6/distutils/tests/Setup.sample +0 -67
  831. package/python3.6.2/lib/python3.6/distutils/tests/__init__.py +0 -36
  832. package/python3.6.2/lib/python3.6/distutils/tests/support.py +0 -210
  833. package/python3.6.2/lib/python3.6/distutils/tests/test_archive_util.py +0 -395
  834. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist.py +0 -50
  835. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_dumb.py +0 -97
  836. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_msi.py +0 -25
  837. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_rpm.py +0 -135
  838. package/python3.6.2/lib/python3.6/distutils/tests/test_bdist_wininst.py +0 -31
  839. package/python3.6.2/lib/python3.6/distutils/tests/test_build.py +0 -56
  840. package/python3.6.2/lib/python3.6/distutils/tests/test_build_clib.py +0 -135
  841. package/python3.6.2/lib/python3.6/distutils/tests/test_build_ext.py +0 -521
  842. package/python3.6.2/lib/python3.6/distutils/tests/test_build_py.py +0 -179
  843. package/python3.6.2/lib/python3.6/distutils/tests/test_build_scripts.py +0 -112
  844. package/python3.6.2/lib/python3.6/distutils/tests/test_check.py +0 -149
  845. package/python3.6.2/lib/python3.6/distutils/tests/test_clean.py +0 -49
  846. package/python3.6.2/lib/python3.6/distutils/tests/test_cmd.py +0 -126
  847. package/python3.6.2/lib/python3.6/distutils/tests/test_config.py +0 -140
  848. package/python3.6.2/lib/python3.6/distutils/tests/test_config_cmd.py +0 -92
  849. package/python3.6.2/lib/python3.6/distutils/tests/test_core.py +0 -140
  850. package/python3.6.2/lib/python3.6/distutils/tests/test_cygwinccompiler.py +0 -154
  851. package/python3.6.2/lib/python3.6/distutils/tests/test_dep_util.py +0 -80
  852. package/python3.6.2/lib/python3.6/distutils/tests/test_dir_util.py +0 -139
  853. package/python3.6.2/lib/python3.6/distutils/tests/test_dist.py +0 -456
  854. package/python3.6.2/lib/python3.6/distutils/tests/test_extension.py +0 -69
  855. package/python3.6.2/lib/python3.6/distutils/tests/test_file_util.py +0 -114
  856. package/python3.6.2/lib/python3.6/distutils/tests/test_filelist.py +0 -340
  857. package/python3.6.2/lib/python3.6/distutils/tests/test_install.py +0 -248
  858. package/python3.6.2/lib/python3.6/distutils/tests/test_install_data.py +0 -75
  859. package/python3.6.2/lib/python3.6/distutils/tests/test_install_headers.py +0 -39
  860. package/python3.6.2/lib/python3.6/distutils/tests/test_install_lib.py +0 -115
  861. package/python3.6.2/lib/python3.6/distutils/tests/test_install_scripts.py +0 -82
  862. package/python3.6.2/lib/python3.6/distutils/tests/test_log.py +0 -38
  863. package/python3.6.2/lib/python3.6/distutils/tests/test_msvc9compiler.py +0 -184
  864. package/python3.6.2/lib/python3.6/distutils/tests/test_msvccompiler.py +0 -132
  865. package/python3.6.2/lib/python3.6/distutils/tests/test_register.py +0 -323
  866. package/python3.6.2/lib/python3.6/distutils/tests/test_sdist.py +0 -484
  867. package/python3.6.2/lib/python3.6/distutils/tests/test_spawn.py +0 -58
  868. package/python3.6.2/lib/python3.6/distutils/tests/test_sysconfig.py +0 -198
  869. package/python3.6.2/lib/python3.6/distutils/tests/test_text_file.py +0 -107
  870. package/python3.6.2/lib/python3.6/distutils/tests/test_unixccompiler.py +0 -149
  871. package/python3.6.2/lib/python3.6/distutils/tests/test_upload.py +0 -181
  872. package/python3.6.2/lib/python3.6/distutils/tests/test_util.py +0 -300
  873. package/python3.6.2/lib/python3.6/distutils/tests/test_version.py +0 -71
  874. package/python3.6.2/lib/python3.6/distutils/tests/test_versionpredicate.py +0 -13
  875. package/python3.6.2/lib/python3.6/distutils/text_file.py +0 -286
  876. package/python3.6.2/lib/python3.6/distutils/unixccompiler.py +0 -322
  877. package/python3.6.2/lib/python3.6/distutils/util.py +0 -557
  878. package/python3.6.2/lib/python3.6/distutils/version.py +0 -343
  879. package/python3.6.2/lib/python3.6/distutils/versionpredicate.py +0 -166
  880. package/python3.6.2/lib/python3.6/doctest.py +0 -2787
  881. package/python3.6.2/lib/python3.6/dummy_threading.py +0 -78
  882. package/python3.6.2/lib/python3.6/email/__init__.py +0 -62
  883. package/python3.6.2/lib/python3.6/email/_encoded_words.py +0 -221
  884. package/python3.6.2/lib/python3.6/email/_header_value_parser.py +0 -2811
  885. package/python3.6.2/lib/python3.6/email/_parseaddr.py +0 -540
  886. package/python3.6.2/lib/python3.6/email/_policybase.py +0 -374
  887. package/python3.6.2/lib/python3.6/email/base64mime.py +0 -119
  888. package/python3.6.2/lib/python3.6/email/charset.py +0 -406
  889. package/python3.6.2/lib/python3.6/email/contentmanager.py +0 -250
  890. package/python3.6.2/lib/python3.6/email/encoders.py +0 -69
  891. package/python3.6.2/lib/python3.6/email/errors.py +0 -107
  892. package/python3.6.2/lib/python3.6/email/feedparser.py +0 -536
  893. package/python3.6.2/lib/python3.6/email/generator.py +0 -508
  894. package/python3.6.2/lib/python3.6/email/header.py +0 -578
  895. package/python3.6.2/lib/python3.6/email/headerregistry.py +0 -589
  896. package/python3.6.2/lib/python3.6/email/iterators.py +0 -71
  897. package/python3.6.2/lib/python3.6/email/message.py +0 -1164
  898. package/python3.6.2/lib/python3.6/email/mime/__init__.py +0 -0
  899. package/python3.6.2/lib/python3.6/email/mime/application.py +0 -37
  900. package/python3.6.2/lib/python3.6/email/mime/audio.py +0 -74
  901. package/python3.6.2/lib/python3.6/email/mime/base.py +0 -30
  902. package/python3.6.2/lib/python3.6/email/mime/image.py +0 -47
  903. package/python3.6.2/lib/python3.6/email/mime/message.py +0 -34
  904. package/python3.6.2/lib/python3.6/email/mime/multipart.py +0 -48
  905. package/python3.6.2/lib/python3.6/email/mime/nonmultipart.py +0 -22
  906. package/python3.6.2/lib/python3.6/email/mime/text.py +0 -42
  907. package/python3.6.2/lib/python3.6/email/parser.py +0 -132
  908. package/python3.6.2/lib/python3.6/email/policy.py +0 -223
  909. package/python3.6.2/lib/python3.6/email/quoprimime.py +0 -299
  910. package/python3.6.2/lib/python3.6/email/utils.py +0 -388
  911. package/python3.6.2/lib/python3.6/encodings/__init__.py +0 -169
  912. package/python3.6.2/lib/python3.6/encodings/aliases.py +0 -550
  913. package/python3.6.2/lib/python3.6/encodings/ascii.py +0 -50
  914. package/python3.6.2/lib/python3.6/encodings/base64_codec.py +0 -55
  915. package/python3.6.2/lib/python3.6/encodings/big5.py +0 -39
  916. package/python3.6.2/lib/python3.6/encodings/big5hkscs.py +0 -39
  917. package/python3.6.2/lib/python3.6/encodings/bz2_codec.py +0 -78
  918. package/python3.6.2/lib/python3.6/encodings/charmap.py +0 -69
  919. package/python3.6.2/lib/python3.6/encodings/cp037.py +0 -307
  920. package/python3.6.2/lib/python3.6/encodings/cp1006.py +0 -307
  921. package/python3.6.2/lib/python3.6/encodings/cp1026.py +0 -307
  922. package/python3.6.2/lib/python3.6/encodings/cp1125.py +0 -698
  923. package/python3.6.2/lib/python3.6/encodings/cp1140.py +0 -307
  924. package/python3.6.2/lib/python3.6/encodings/cp1250.py +0 -307
  925. package/python3.6.2/lib/python3.6/encodings/cp1251.py +0 -307
  926. package/python3.6.2/lib/python3.6/encodings/cp1252.py +0 -307
  927. package/python3.6.2/lib/python3.6/encodings/cp1253.py +0 -307
  928. package/python3.6.2/lib/python3.6/encodings/cp1254.py +0 -307
  929. package/python3.6.2/lib/python3.6/encodings/cp1255.py +0 -307
  930. package/python3.6.2/lib/python3.6/encodings/cp1256.py +0 -307
  931. package/python3.6.2/lib/python3.6/encodings/cp1257.py +0 -307
  932. package/python3.6.2/lib/python3.6/encodings/cp1258.py +0 -307
  933. package/python3.6.2/lib/python3.6/encodings/cp273.py +0 -307
  934. package/python3.6.2/lib/python3.6/encodings/cp424.py +0 -307
  935. package/python3.6.2/lib/python3.6/encodings/cp437.py +0 -698
  936. package/python3.6.2/lib/python3.6/encodings/cp500.py +0 -307
  937. package/python3.6.2/lib/python3.6/encodings/cp65001.py +0 -43
  938. package/python3.6.2/lib/python3.6/encodings/cp720.py +0 -309
  939. package/python3.6.2/lib/python3.6/encodings/cp737.py +0 -698
  940. package/python3.6.2/lib/python3.6/encodings/cp775.py +0 -697
  941. package/python3.6.2/lib/python3.6/encodings/cp850.py +0 -698
  942. package/python3.6.2/lib/python3.6/encodings/cp852.py +0 -698
  943. package/python3.6.2/lib/python3.6/encodings/cp855.py +0 -698
  944. package/python3.6.2/lib/python3.6/encodings/cp856.py +0 -307
  945. package/python3.6.2/lib/python3.6/encodings/cp857.py +0 -694
  946. package/python3.6.2/lib/python3.6/encodings/cp858.py +0 -698
  947. package/python3.6.2/lib/python3.6/encodings/cp860.py +0 -698
  948. package/python3.6.2/lib/python3.6/encodings/cp861.py +0 -698
  949. package/python3.6.2/lib/python3.6/encodings/cp862.py +0 -698
  950. package/python3.6.2/lib/python3.6/encodings/cp863.py +0 -698
  951. package/python3.6.2/lib/python3.6/encodings/cp864.py +0 -690
  952. package/python3.6.2/lib/python3.6/encodings/cp865.py +0 -698
  953. package/python3.6.2/lib/python3.6/encodings/cp866.py +0 -698
  954. package/python3.6.2/lib/python3.6/encodings/cp869.py +0 -689
  955. package/python3.6.2/lib/python3.6/encodings/cp874.py +0 -307
  956. package/python3.6.2/lib/python3.6/encodings/cp875.py +0 -307
  957. package/python3.6.2/lib/python3.6/encodings/cp932.py +0 -39
  958. package/python3.6.2/lib/python3.6/encodings/cp949.py +0 -39
  959. package/python3.6.2/lib/python3.6/encodings/cp950.py +0 -39
  960. package/python3.6.2/lib/python3.6/encodings/euc_jis_2004.py +0 -39
  961. package/python3.6.2/lib/python3.6/encodings/euc_jisx0213.py +0 -39
  962. package/python3.6.2/lib/python3.6/encodings/euc_jp.py +0 -39
  963. package/python3.6.2/lib/python3.6/encodings/euc_kr.py +0 -39
  964. package/python3.6.2/lib/python3.6/encodings/gb18030.py +0 -39
  965. package/python3.6.2/lib/python3.6/encodings/gb2312.py +0 -39
  966. package/python3.6.2/lib/python3.6/encodings/gbk.py +0 -39
  967. package/python3.6.2/lib/python3.6/encodings/hex_codec.py +0 -55
  968. package/python3.6.2/lib/python3.6/encodings/hp_roman8.py +0 -314
  969. package/python3.6.2/lib/python3.6/encodings/hz.py +0 -39
  970. package/python3.6.2/lib/python3.6/encodings/idna.py +0 -309
  971. package/python3.6.2/lib/python3.6/encodings/iso2022_jp.py +0 -39
  972. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_1.py +0 -39
  973. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2.py +0 -39
  974. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_2004.py +0 -39
  975. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_3.py +0 -39
  976. package/python3.6.2/lib/python3.6/encodings/iso2022_jp_ext.py +0 -39
  977. package/python3.6.2/lib/python3.6/encodings/iso2022_kr.py +0 -39
  978. package/python3.6.2/lib/python3.6/encodings/iso8859_1.py +0 -307
  979. package/python3.6.2/lib/python3.6/encodings/iso8859_10.py +0 -307
  980. package/python3.6.2/lib/python3.6/encodings/iso8859_11.py +0 -307
  981. package/python3.6.2/lib/python3.6/encodings/iso8859_13.py +0 -307
  982. package/python3.6.2/lib/python3.6/encodings/iso8859_14.py +0 -307
  983. package/python3.6.2/lib/python3.6/encodings/iso8859_15.py +0 -307
  984. package/python3.6.2/lib/python3.6/encodings/iso8859_16.py +0 -307
  985. package/python3.6.2/lib/python3.6/encodings/iso8859_2.py +0 -307
  986. package/python3.6.2/lib/python3.6/encodings/iso8859_3.py +0 -307
  987. package/python3.6.2/lib/python3.6/encodings/iso8859_4.py +0 -307
  988. package/python3.6.2/lib/python3.6/encodings/iso8859_5.py +0 -307
  989. package/python3.6.2/lib/python3.6/encodings/iso8859_6.py +0 -307
  990. package/python3.6.2/lib/python3.6/encodings/iso8859_7.py +0 -307
  991. package/python3.6.2/lib/python3.6/encodings/iso8859_8.py +0 -307
  992. package/python3.6.2/lib/python3.6/encodings/iso8859_9.py +0 -307
  993. package/python3.6.2/lib/python3.6/encodings/johab.py +0 -39
  994. package/python3.6.2/lib/python3.6/encodings/koi8_r.py +0 -307
  995. package/python3.6.2/lib/python3.6/encodings/koi8_t.py +0 -308
  996. package/python3.6.2/lib/python3.6/encodings/koi8_u.py +0 -307
  997. package/python3.6.2/lib/python3.6/encodings/kz1048.py +0 -307
  998. package/python3.6.2/lib/python3.6/encodings/latin_1.py +0 -50
  999. package/python3.6.2/lib/python3.6/encodings/mac_arabic.py +0 -698
  1000. package/python3.6.2/lib/python3.6/encodings/mac_centeuro.py +0 -307
  1001. package/python3.6.2/lib/python3.6/encodings/mac_croatian.py +0 -307
  1002. package/python3.6.2/lib/python3.6/encodings/mac_cyrillic.py +0 -307
  1003. package/python3.6.2/lib/python3.6/encodings/mac_farsi.py +0 -307
  1004. package/python3.6.2/lib/python3.6/encodings/mac_greek.py +0 -307
  1005. package/python3.6.2/lib/python3.6/encodings/mac_iceland.py +0 -307
  1006. package/python3.6.2/lib/python3.6/encodings/mac_latin2.py +0 -312
  1007. package/python3.6.2/lib/python3.6/encodings/mac_roman.py +0 -307
  1008. package/python3.6.2/lib/python3.6/encodings/mac_romanian.py +0 -307
  1009. package/python3.6.2/lib/python3.6/encodings/mac_turkish.py +0 -307
  1010. package/python3.6.2/lib/python3.6/encodings/mbcs.py +0 -47
  1011. package/python3.6.2/lib/python3.6/encodings/oem.py +0 -41
  1012. package/python3.6.2/lib/python3.6/encodings/palmos.py +0 -308
  1013. package/python3.6.2/lib/python3.6/encodings/ptcp154.py +0 -312
  1014. package/python3.6.2/lib/python3.6/encodings/punycode.py +0 -237
  1015. package/python3.6.2/lib/python3.6/encodings/quopri_codec.py +0 -56
  1016. package/python3.6.2/lib/python3.6/encodings/raw_unicode_escape.py +0 -45
  1017. package/python3.6.2/lib/python3.6/encodings/rot_13.py +0 -113
  1018. package/python3.6.2/lib/python3.6/encodings/shift_jis.py +0 -39
  1019. package/python3.6.2/lib/python3.6/encodings/shift_jis_2004.py +0 -39
  1020. package/python3.6.2/lib/python3.6/encodings/shift_jisx0213.py +0 -39
  1021. package/python3.6.2/lib/python3.6/encodings/tis_620.py +0 -307
  1022. package/python3.6.2/lib/python3.6/encodings/undefined.py +0 -49
  1023. package/python3.6.2/lib/python3.6/encodings/unicode_escape.py +0 -45
  1024. package/python3.6.2/lib/python3.6/encodings/unicode_internal.py +0 -45
  1025. package/python3.6.2/lib/python3.6/encodings/utf_16.py +0 -155
  1026. package/python3.6.2/lib/python3.6/encodings/utf_16_be.py +0 -42
  1027. package/python3.6.2/lib/python3.6/encodings/utf_16_le.py +0 -42
  1028. package/python3.6.2/lib/python3.6/encodings/utf_32.py +0 -150
  1029. package/python3.6.2/lib/python3.6/encodings/utf_32_be.py +0 -37
  1030. package/python3.6.2/lib/python3.6/encodings/utf_32_le.py +0 -37
  1031. package/python3.6.2/lib/python3.6/encodings/utf_7.py +0 -38
  1032. package/python3.6.2/lib/python3.6/encodings/utf_8.py +0 -42
  1033. package/python3.6.2/lib/python3.6/encodings/utf_8_sig.py +0 -130
  1034. package/python3.6.2/lib/python3.6/encodings/uu_codec.py +0 -99
  1035. package/python3.6.2/lib/python3.6/encodings/zlib_codec.py +0 -77
  1036. package/python3.6.2/lib/python3.6/ensurepip/__init__.py +0 -205
  1037. package/python3.6.2/lib/python3.6/ensurepip/__main__.py +0 -5
  1038. package/python3.6.2/lib/python3.6/ensurepip/_uninstall.py +0 -31
  1039. package/python3.6.2/lib/python3.6/enum.py +0 -875
  1040. package/python3.6.2/lib/python3.6/filecmp.py +0 -305
  1041. package/python3.6.2/lib/python3.6/fileinput.py +0 -425
  1042. package/python3.6.2/lib/python3.6/fnmatch.py +0 -109
  1043. package/python3.6.2/lib/python3.6/formatter.py +0 -452
  1044. package/python3.6.2/lib/python3.6/fractions.py +0 -643
  1045. package/python3.6.2/lib/python3.6/ftplib.py +0 -989
  1046. package/python3.6.2/lib/python3.6/functools.py +0 -811
  1047. package/python3.6.2/lib/python3.6/genericpath.py +0 -151
  1048. package/python3.6.2/lib/python3.6/getopt.py +0 -215
  1049. package/python3.6.2/lib/python3.6/getpass.py +0 -185
  1050. package/python3.6.2/lib/python3.6/gettext.py +0 -637
  1051. package/python3.6.2/lib/python3.6/glob.py +0 -171
  1052. package/python3.6.2/lib/python3.6/gzip.py +0 -574
  1053. package/python3.6.2/lib/python3.6/hashlib.py +0 -251
  1054. package/python3.6.2/lib/python3.6/heapq.py +0 -607
  1055. package/python3.6.2/lib/python3.6/hmac.py +0 -144
  1056. package/python3.6.2/lib/python3.6/html/__init__.py +0 -132
  1057. package/python3.6.2/lib/python3.6/html/entities.py +0 -2509
  1058. package/python3.6.2/lib/python3.6/html/parser.py +0 -470
  1059. package/python3.6.2/lib/python3.6/http/__init__.py +0 -134
  1060. package/python3.6.2/lib/python3.6/http/client.py +0 -1478
  1061. package/python3.6.2/lib/python3.6/http/cookiejar.py +0 -2098
  1062. package/python3.6.2/lib/python3.6/http/cookies.py +0 -635
  1063. package/python3.6.2/lib/python3.6/http/server.py +0 -1211
  1064. package/python3.6.2/lib/python3.6/idlelib/CREDITS.txt +0 -37
  1065. package/python3.6.2/lib/python3.6/idlelib/ChangeLog +0 -1591
  1066. package/python3.6.2/lib/python3.6/idlelib/HISTORY.txt +0 -296
  1067. package/python3.6.2/lib/python3.6/idlelib/Icons/folder.gif +0 -0
  1068. package/python3.6.2/lib/python3.6/idlelib/Icons/idle.icns +0 -0
  1069. package/python3.6.2/lib/python3.6/idlelib/Icons/idle.ico +0 -0
  1070. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_16.gif +0 -0
  1071. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_16.png +0 -0
  1072. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_32.gif +0 -0
  1073. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_32.png +0 -0
  1074. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_48.gif +0 -0
  1075. package/python3.6.2/lib/python3.6/idlelib/Icons/idle_48.png +0 -0
  1076. package/python3.6.2/lib/python3.6/idlelib/Icons/minusnode.gif +0 -0
  1077. package/python3.6.2/lib/python3.6/idlelib/Icons/openfolder.gif +0 -0
  1078. package/python3.6.2/lib/python3.6/idlelib/Icons/plusnode.gif +0 -0
  1079. package/python3.6.2/lib/python3.6/idlelib/Icons/python.gif +0 -0
  1080. package/python3.6.2/lib/python3.6/idlelib/Icons/tk.gif +0 -0
  1081. package/python3.6.2/lib/python3.6/idlelib/NEWS.txt +0 -749
  1082. package/python3.6.2/lib/python3.6/idlelib/NEWS2x.txt +0 -660
  1083. package/python3.6.2/lib/python3.6/idlelib/README.txt +0 -251
  1084. package/python3.6.2/lib/python3.6/idlelib/TODO.txt +0 -210
  1085. package/python3.6.2/lib/python3.6/idlelib/__init__.py +0 -10
  1086. package/python3.6.2/lib/python3.6/idlelib/__main__.py +0 -8
  1087. package/python3.6.2/lib/python3.6/idlelib/_pyclbr.py +0 -402
  1088. package/python3.6.2/lib/python3.6/idlelib/autocomplete.py +0 -232
  1089. package/python3.6.2/lib/python3.6/idlelib/autocomplete_w.py +0 -460
  1090. package/python3.6.2/lib/python3.6/idlelib/autoexpand.py +0 -96
  1091. package/python3.6.2/lib/python3.6/idlelib/browser.py +0 -248
  1092. package/python3.6.2/lib/python3.6/idlelib/calltip_w.py +0 -164
  1093. package/python3.6.2/lib/python3.6/idlelib/calltips.py +0 -178
  1094. package/python3.6.2/lib/python3.6/idlelib/codecontext.py +0 -185
  1095. package/python3.6.2/lib/python3.6/idlelib/colorizer.py +0 -289
  1096. package/python3.6.2/lib/python3.6/idlelib/config-extensions.def +0 -65
  1097. package/python3.6.2/lib/python3.6/idlelib/config-highlight.def +0 -93
  1098. package/python3.6.2/lib/python3.6/idlelib/config-keys.def +0 -304
  1099. package/python3.6.2/lib/python3.6/idlelib/config-main.def +0 -88
  1100. package/python3.6.2/lib/python3.6/idlelib/config.py +0 -929
  1101. package/python3.6.2/lib/python3.6/idlelib/config_key.py +0 -298
  1102. package/python3.6.2/lib/python3.6/idlelib/configdialog.py +0 -2254
  1103. package/python3.6.2/lib/python3.6/idlelib/debugger.py +0 -544
  1104. package/python3.6.2/lib/python3.6/idlelib/debugger_r.py +0 -388
  1105. package/python3.6.2/lib/python3.6/idlelib/debugobj.py +0 -139
  1106. package/python3.6.2/lib/python3.6/idlelib/debugobj_r.py +0 -36
  1107. package/python3.6.2/lib/python3.6/idlelib/delegator.py +0 -33
  1108. package/python3.6.2/lib/python3.6/idlelib/dynoption.py +0 -58
  1109. package/python3.6.2/lib/python3.6/idlelib/editor.py +0 -1688
  1110. package/python3.6.2/lib/python3.6/idlelib/extend.txt +0 -83
  1111. package/python3.6.2/lib/python3.6/idlelib/filelist.py +0 -132
  1112. package/python3.6.2/lib/python3.6/idlelib/grep.py +0 -200
  1113. package/python3.6.2/lib/python3.6/idlelib/help.html +0 -791
  1114. package/python3.6.2/lib/python3.6/idlelib/help.py +0 -275
  1115. package/python3.6.2/lib/python3.6/idlelib/help_about.py +0 -205
  1116. package/python3.6.2/lib/python3.6/idlelib/history.py +0 -106
  1117. package/python3.6.2/lib/python3.6/idlelib/hyperparser.py +0 -312
  1118. package/python3.6.2/lib/python3.6/idlelib/idle.bat +0 -4
  1119. package/python3.6.2/lib/python3.6/idlelib/idle.py +0 -14
  1120. package/python3.6.2/lib/python3.6/idlelib/idle.pyw +0 -17
  1121. package/python3.6.2/lib/python3.6/idlelib/idle_test/README.txt +0 -226
  1122. package/python3.6.2/lib/python3.6/idlelib/idle_test/__init__.py +0 -17
  1123. package/python3.6.2/lib/python3.6/idlelib/idle_test/htest.py +0 -421
  1124. package/python3.6.2/lib/python3.6/idlelib/idle_test/mock_idle.py +0 -60
  1125. package/python3.6.2/lib/python3.6/idlelib/idle_test/mock_tk.py +0 -303
  1126. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_autocomplete.py +0 -149
  1127. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_autoexpand.py +0 -143
  1128. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_browser.py +0 -253
  1129. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_calltips.py +0 -203
  1130. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_colorizer.py +0 -56
  1131. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_config.py +0 -824
  1132. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_config_key.py +0 -102
  1133. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_configdialog.py +0 -1415
  1134. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_debugger.py +0 -29
  1135. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_delegator.py +0 -40
  1136. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_editmenu.py +0 -74
  1137. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_editor.py +0 -14
  1138. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_grep.py +0 -80
  1139. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_help.py +0 -34
  1140. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_help_about.py +0 -177
  1141. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_history.py +0 -168
  1142. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_hyperparser.py +0 -274
  1143. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_iomenu.py +0 -234
  1144. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_macosx.py +0 -106
  1145. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_outwin.py +0 -172
  1146. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_paragraph.py +0 -376
  1147. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_parenmatch.py +0 -112
  1148. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_pathbrowser.py +0 -88
  1149. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_percolator.py +0 -118
  1150. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_query.py +0 -354
  1151. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_redirector.py +0 -124
  1152. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_replace.py +0 -293
  1153. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_rstrip.py +0 -49
  1154. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_run.py +0 -35
  1155. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_scrolledlist.py +0 -29
  1156. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_search.py +0 -82
  1157. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_searchbase.py +0 -156
  1158. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_searchengine.py +0 -329
  1159. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_text.py +0 -236
  1160. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_textview.py +0 -179
  1161. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_tree.py +0 -35
  1162. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_undo.py +0 -135
  1163. package/python3.6.2/lib/python3.6/idlelib/idle_test/test_warning.py +0 -73
  1164. package/python3.6.2/lib/python3.6/idlelib/iomenu.py +0 -574
  1165. package/python3.6.2/lib/python3.6/idlelib/macosx.py +0 -252
  1166. package/python3.6.2/lib/python3.6/idlelib/mainmenu.py +0 -108
  1167. package/python3.6.2/lib/python3.6/idlelib/multicall.py +0 -445
  1168. package/python3.6.2/lib/python3.6/idlelib/outwin.py +0 -188
  1169. package/python3.6.2/lib/python3.6/idlelib/paragraph.py +0 -195
  1170. package/python3.6.2/lib/python3.6/idlelib/parenmatch.py +0 -183
  1171. package/python3.6.2/lib/python3.6/idlelib/pathbrowser.py +0 -111
  1172. package/python3.6.2/lib/python3.6/idlelib/percolator.py +0 -104
  1173. package/python3.6.2/lib/python3.6/idlelib/pyparse.py +0 -617
  1174. package/python3.6.2/lib/python3.6/idlelib/pyshell.py +0 -1542
  1175. package/python3.6.2/lib/python3.6/idlelib/query.py +0 -308
  1176. package/python3.6.2/lib/python3.6/idlelib/redirector.py +0 -175
  1177. package/python3.6.2/lib/python3.6/idlelib/replace.py +0 -243
  1178. package/python3.6.2/lib/python3.6/idlelib/rpc.py +0 -627
  1179. package/python3.6.2/lib/python3.6/idlelib/rstrip.py +0 -29
  1180. package/python3.6.2/lib/python3.6/idlelib/run.py +0 -525
  1181. package/python3.6.2/lib/python3.6/idlelib/runscript.py +0 -195
  1182. package/python3.6.2/lib/python3.6/idlelib/scrolledlist.py +0 -147
  1183. package/python3.6.2/lib/python3.6/idlelib/search.py +0 -102
  1184. package/python3.6.2/lib/python3.6/idlelib/searchbase.py +0 -200
  1185. package/python3.6.2/lib/python3.6/idlelib/searchengine.py +0 -236
  1186. package/python3.6.2/lib/python3.6/idlelib/stackviewer.py +0 -152
  1187. package/python3.6.2/lib/python3.6/idlelib/statusbar.py +0 -46
  1188. package/python3.6.2/lib/python3.6/idlelib/textview.py +0 -136
  1189. package/python3.6.2/lib/python3.6/idlelib/tooltip.py +0 -96
  1190. package/python3.6.2/lib/python3.6/idlelib/tree.py +0 -467
  1191. package/python3.6.2/lib/python3.6/idlelib/undo.py +0 -366
  1192. package/python3.6.2/lib/python3.6/idlelib/windows.py +0 -92
  1193. package/python3.6.2/lib/python3.6/idlelib/zoomheight.py +0 -48
  1194. package/python3.6.2/lib/python3.6/idlelib/zzdummy.py +0 -42
  1195. package/python3.6.2/lib/python3.6/imaplib.py +0 -1609
  1196. package/python3.6.2/lib/python3.6/imghdr.py +0 -168
  1197. package/python3.6.2/lib/python3.6/imp.py +0 -346
  1198. package/python3.6.2/lib/python3.6/importlib/__init__.py +0 -173
  1199. package/python3.6.2/lib/python3.6/importlib/_bootstrap.py +0 -1161
  1200. package/python3.6.2/lib/python3.6/importlib/_bootstrap_external.py +0 -1443
  1201. package/python3.6.2/lib/python3.6/importlib/abc.py +0 -329
  1202. package/python3.6.2/lib/python3.6/importlib/machinery.py +0 -21
  1203. package/python3.6.2/lib/python3.6/importlib/util.py +0 -288
  1204. package/python3.6.2/lib/python3.6/inspect.py +0 -3098
  1205. package/python3.6.2/lib/python3.6/io.py +0 -99
  1206. package/python3.6.2/lib/python3.6/ipaddress.py +0 -2299
  1207. package/python3.6.2/lib/python3.6/json/__init__.py +0 -367
  1208. package/python3.6.2/lib/python3.6/json/decoder.py +0 -358
  1209. package/python3.6.2/lib/python3.6/json/encoder.py +0 -441
  1210. package/python3.6.2/lib/python3.6/json/scanner.py +0 -73
  1211. package/python3.6.2/lib/python3.6/json/tool.py +0 -50
  1212. package/python3.6.2/lib/python3.6/keyword.py +0 -94
  1213. package/python3.6.2/lib/python3.6/lib-dynload/_asyncio.cpython-36m-arm-linux-androideabi.so +0 -0
  1214. package/python3.6.2/lib/python3.6/lib-dynload/_bisect.cpython-36m-arm-linux-androideabi.so +0 -0
  1215. package/python3.6.2/lib/python3.6/lib-dynload/_blake2.cpython-36m-arm-linux-androideabi.so +0 -0
  1216. package/python3.6.2/lib/python3.6/lib-dynload/_bz2.cpython-36m-arm-linux-androideabi.so +0 -0
  1217. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_cn.cpython-36m-arm-linux-androideabi.so +0 -0
  1218. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_hk.cpython-36m-arm-linux-androideabi.so +0 -0
  1219. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_iso2022.cpython-36m-arm-linux-androideabi.so +0 -0
  1220. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_jp.cpython-36m-arm-linux-androideabi.so +0 -0
  1221. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_kr.cpython-36m-arm-linux-androideabi.so +0 -0
  1222. package/python3.6.2/lib/python3.6/lib-dynload/_codecs_tw.cpython-36m-arm-linux-androideabi.so +0 -0
  1223. package/python3.6.2/lib/python3.6/lib-dynload/_crypt.cpython-36m-arm-linux-androideabi.so +0 -0
  1224. package/python3.6.2/lib/python3.6/lib-dynload/_csv.cpython-36m-arm-linux-androideabi.so +0 -0
  1225. package/python3.6.2/lib/python3.6/lib-dynload/_ctypes.cpython-36m-arm-linux-androideabi.so +0 -0
  1226. package/python3.6.2/lib/python3.6/lib-dynload/_ctypes_test.cpython-36m-arm-linux-androideabi.so +0 -0
  1227. package/python3.6.2/lib/python3.6/lib-dynload/_curses.cpython-36m-arm-linux-androideabi.so +0 -0
  1228. package/python3.6.2/lib/python3.6/lib-dynload/_curses_panel.cpython-36m-arm-linux-androideabi.so +0 -0
  1229. package/python3.6.2/lib/python3.6/lib-dynload/_datetime.cpython-36m-arm-linux-androideabi.so +0 -0
  1230. package/python3.6.2/lib/python3.6/lib-dynload/_elementtree.cpython-36m-arm-linux-androideabi.so +0 -0
  1231. package/python3.6.2/lib/python3.6/lib-dynload/_hashlib.cpython-36m-arm-linux-androideabi.so +0 -0
  1232. package/python3.6.2/lib/python3.6/lib-dynload/_heapq.cpython-36m-arm-linux-androideabi.so +0 -0
  1233. package/python3.6.2/lib/python3.6/lib-dynload/_json.cpython-36m-arm-linux-androideabi.so +0 -0
  1234. package/python3.6.2/lib/python3.6/lib-dynload/_lsprof.cpython-36m-arm-linux-androideabi.so +0 -0
  1235. package/python3.6.2/lib/python3.6/lib-dynload/_md5.cpython-36m-arm-linux-androideabi.so +0 -0
  1236. package/python3.6.2/lib/python3.6/lib-dynload/_multibytecodec.cpython-36m-arm-linux-androideabi.so +0 -0
  1237. package/python3.6.2/lib/python3.6/lib-dynload/_multiprocessing.cpython-36m-arm-linux-androideabi.so +0 -0
  1238. package/python3.6.2/lib/python3.6/lib-dynload/_opcode.cpython-36m-arm-linux-androideabi.so +0 -0
  1239. package/python3.6.2/lib/python3.6/lib-dynload/_pickle.cpython-36m-arm-linux-androideabi.so +0 -0
  1240. package/python3.6.2/lib/python3.6/lib-dynload/_posixsubprocess.cpython-36m-arm-linux-androideabi.so +0 -0
  1241. package/python3.6.2/lib/python3.6/lib-dynload/_random.cpython-36m-arm-linux-androideabi.so +0 -0
  1242. package/python3.6.2/lib/python3.6/lib-dynload/_sha1.cpython-36m-arm-linux-androideabi.so +0 -0
  1243. package/python3.6.2/lib/python3.6/lib-dynload/_sha256.cpython-36m-arm-linux-androideabi.so +0 -0
  1244. package/python3.6.2/lib/python3.6/lib-dynload/_sha3.cpython-36m-arm-linux-androideabi.so +0 -0
  1245. package/python3.6.2/lib/python3.6/lib-dynload/_sha512.cpython-36m-arm-linux-androideabi.so +0 -0
  1246. package/python3.6.2/lib/python3.6/lib-dynload/_socket.cpython-36m-arm-linux-androideabi.so +0 -0
  1247. package/python3.6.2/lib/python3.6/lib-dynload/_sqlite3.cpython-36m-arm-linux-androideabi.so +0 -0
  1248. package/python3.6.2/lib/python3.6/lib-dynload/_ssl.cpython-36m-arm-linux-androideabi.so +0 -0
  1249. package/python3.6.2/lib/python3.6/lib-dynload/_struct.cpython-36m-arm-linux-androideabi.so +0 -0
  1250. package/python3.6.2/lib/python3.6/lib-dynload/_sysconfigdata_m_linux_arm-linux-androideabi.py +0 -743
  1251. package/python3.6.2/lib/python3.6/lib-dynload/_testbuffer.cpython-36m-arm-linux-androideabi.so +0 -0
  1252. package/python3.6.2/lib/python3.6/lib-dynload/_testcapi.cpython-36m-arm-linux-androideabi.so +0 -0
  1253. package/python3.6.2/lib/python3.6/lib-dynload/_testimportmultiple.cpython-36m-arm-linux-androideabi.so +0 -0
  1254. package/python3.6.2/lib/python3.6/lib-dynload/_testmultiphase.cpython-36m-arm-linux-androideabi.so +0 -0
  1255. package/python3.6.2/lib/python3.6/lib-dynload/array.cpython-36m-arm-linux-androideabi.so +0 -0
  1256. package/python3.6.2/lib/python3.6/lib-dynload/audioop.cpython-36m-arm-linux-androideabi.so +0 -0
  1257. package/python3.6.2/lib/python3.6/lib-dynload/binascii.cpython-36m-arm-linux-androideabi.so +0 -0
  1258. package/python3.6.2/lib/python3.6/lib-dynload/cmath.cpython-36m-arm-linux-androideabi.so +0 -0
  1259. package/python3.6.2/lib/python3.6/lib-dynload/fcntl.cpython-36m-arm-linux-androideabi.so +0 -0
  1260. package/python3.6.2/lib/python3.6/lib-dynload/grp.cpython-36m-arm-linux-androideabi.so +0 -0
  1261. package/python3.6.2/lib/python3.6/lib-dynload/math.cpython-36m-arm-linux-androideabi.so +0 -0
  1262. package/python3.6.2/lib/python3.6/lib-dynload/mmap.cpython-36m-arm-linux-androideabi.so +0 -0
  1263. package/python3.6.2/lib/python3.6/lib-dynload/ossaudiodev.cpython-36m-arm-linux-androideabi.so +0 -0
  1264. package/python3.6.2/lib/python3.6/lib-dynload/parser.cpython-36m-arm-linux-androideabi.so +0 -0
  1265. package/python3.6.2/lib/python3.6/lib-dynload/pyexpat.cpython-36m-arm-linux-androideabi.so +0 -0
  1266. package/python3.6.2/lib/python3.6/lib-dynload/readline.cpython-36m-arm-linux-androideabi.so +0 -0
  1267. package/python3.6.2/lib/python3.6/lib-dynload/resource.cpython-36m-arm-linux-androideabi.so +0 -0
  1268. package/python3.6.2/lib/python3.6/lib-dynload/select.cpython-36m-arm-linux-androideabi.so +0 -0
  1269. package/python3.6.2/lib/python3.6/lib-dynload/syslog.cpython-36m-arm-linux-androideabi.so +0 -0
  1270. package/python3.6.2/lib/python3.6/lib-dynload/termios.cpython-36m-arm-linux-androideabi.so +0 -0
  1271. package/python3.6.2/lib/python3.6/lib-dynload/unicodedata.cpython-36m-arm-linux-androideabi.so +0 -0
  1272. package/python3.6.2/lib/python3.6/lib-dynload/xxlimited.cpython-36m-arm-linux-androideabi.so +0 -0
  1273. package/python3.6.2/lib/python3.6/lib-dynload/zlib.cpython-36m-arm-linux-androideabi.so +0 -0
  1274. package/python3.6.2/lib/python3.6/lib2to3/__init__.py +0 -1
  1275. package/python3.6.2/lib/python3.6/lib2to3/__main__.py +0 -4
  1276. package/python3.6.2/lib/python3.6/lib2to3/btm_matcher.py +0 -168
  1277. package/python3.6.2/lib/python3.6/lib2to3/btm_utils.py +0 -281
  1278. package/python3.6.2/lib/python3.6/lib2to3/fixer_base.py +0 -186
  1279. package/python3.6.2/lib/python3.6/lib2to3/fixer_util.py +0 -453
  1280. package/python3.6.2/lib/python3.6/lib2to3/fixes/__init__.py +0 -1
  1281. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_apply.py +0 -70
  1282. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_asserts.py +0 -34
  1283. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_basestring.py +0 -14
  1284. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_buffer.py +0 -22
  1285. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_dict.py +0 -106
  1286. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_except.py +0 -93
  1287. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exec.py +0 -39
  1288. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_execfile.py +0 -52
  1289. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_exitfunc.py +0 -72
  1290. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_filter.py +0 -90
  1291. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_funcattrs.py +0 -21
  1292. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_future.py +0 -22
  1293. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_getcwdu.py +0 -19
  1294. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_has_key.py +0 -109
  1295. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_idioms.py +0 -152
  1296. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_import.py +0 -99
  1297. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports.py +0 -145
  1298. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_imports2.py +0 -16
  1299. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_input.py +0 -26
  1300. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_intern.py +0 -41
  1301. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_isinstance.py +0 -52
  1302. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools.py +0 -43
  1303. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_itertools_imports.py +0 -57
  1304. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_long.py +0 -19
  1305. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_map.py +0 -110
  1306. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_metaclass.py +0 -228
  1307. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_methodattrs.py +0 -24
  1308. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ne.py +0 -23
  1309. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_next.py +0 -103
  1310. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_nonzero.py +0 -21
  1311. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_numliterals.py +0 -28
  1312. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_operator.py +0 -98
  1313. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_paren.py +0 -44
  1314. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_print.py +0 -87
  1315. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raise.py +0 -90
  1316. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_raw_input.py +0 -17
  1317. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reduce.py +0 -35
  1318. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_reload.py +0 -38
  1319. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_renames.py +0 -70
  1320. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_repr.py +0 -23
  1321. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_set_literal.py +0 -53
  1322. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_standarderror.py +0 -18
  1323. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_sys_exc.py +0 -30
  1324. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_throw.py +0 -56
  1325. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_tuple_params.py +0 -175
  1326. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_types.py +0 -61
  1327. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_unicode.py +0 -42
  1328. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_urllib.py +0 -196
  1329. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_ws_comma.py +0 -39
  1330. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xrange.py +0 -73
  1331. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_xreadlines.py +0 -25
  1332. package/python3.6.2/lib/python3.6/lib2to3/fixes/fix_zip.py +0 -46
  1333. package/python3.6.2/lib/python3.6/lib2to3/main.py +0 -268
  1334. package/python3.6.2/lib/python3.6/lib2to3/patcomp.py +0 -205
  1335. package/python3.6.2/lib/python3.6/lib2to3/pgen2/__init__.py +0 -4
  1336. package/python3.6.2/lib/python3.6/lib2to3/pgen2/conv.py +0 -257
  1337. package/python3.6.2/lib/python3.6/lib2to3/pgen2/driver.py +0 -160
  1338. package/python3.6.2/lib/python3.6/lib2to3/pgen2/grammar.py +0 -207
  1339. package/python3.6.2/lib/python3.6/lib2to3/pgen2/literals.py +0 -60
  1340. package/python3.6.2/lib/python3.6/lib2to3/pgen2/parse.py +0 -201
  1341. package/python3.6.2/lib/python3.6/lib2to3/pgen2/pgen.py +0 -386
  1342. package/python3.6.2/lib/python3.6/lib2to3/pgen2/token.py +0 -85
  1343. package/python3.6.2/lib/python3.6/lib2to3/pgen2/tokenize.py +0 -590
  1344. package/python3.6.2/lib/python3.6/lib2to3/pygram.py +0 -40
  1345. package/python3.6.2/lib/python3.6/lib2to3/pytree.py +0 -854
  1346. package/python3.6.2/lib/python3.6/lib2to3/refactor.py +0 -744
  1347. package/python3.6.2/lib/python3.6/lib2to3/tests/__init__.py +0 -9
  1348. package/python3.6.2/lib/python3.6/lib2to3/tests/__main__.py +0 -4
  1349. package/python3.6.2/lib/python3.6/lib2to3/tests/data/README +0 -6
  1350. package/python3.6.2/lib/python3.6/lib2to3/tests/data/bom.py +0 -2
  1351. package/python3.6.2/lib/python3.6/lib2to3/tests/data/crlf.py +0 -3
  1352. package/python3.6.2/lib/python3.6/lib2to3/tests/data/different_encoding.py +0 -6
  1353. package/python3.6.2/lib/python3.6/lib2to3/tests/data/false_encoding.py +0 -2
  1354. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/bad_order.py +0 -5
  1355. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/__init__.py +0 -0
  1356. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_explicit.py +0 -6
  1357. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_first.py +0 -6
  1358. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_last.py +0 -7
  1359. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_parrot.py +0 -13
  1360. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/myfixes/fix_preorder.py +0 -6
  1361. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/no_fixer_cls.py +0 -1
  1362. package/python3.6.2/lib/python3.6/lib2to3/tests/data/fixers/parrot_example.py +0 -2
  1363. package/python3.6.2/lib/python3.6/lib2to3/tests/data/infinite_recursion.py +0 -2669
  1364. package/python3.6.2/lib/python3.6/lib2to3/tests/data/py2_test_grammar.py +0 -974
  1365. package/python3.6.2/lib/python3.6/lib2to3/tests/data/py3_test_grammar.py +0 -945
  1366. package/python3.6.2/lib/python3.6/lib2to3/tests/pytree_idempotency.py +0 -94
  1367. package/python3.6.2/lib/python3.6/lib2to3/tests/support.py +0 -52
  1368. package/python3.6.2/lib/python3.6/lib2to3/tests/test_all_fixers.py +0 -27
  1369. package/python3.6.2/lib/python3.6/lib2to3/tests/test_fixers.py +0 -4640
  1370. package/python3.6.2/lib/python3.6/lib2to3/tests/test_main.py +0 -139
  1371. package/python3.6.2/lib/python3.6/lib2to3/tests/test_parser.py +0 -472
  1372. package/python3.6.2/lib/python3.6/lib2to3/tests/test_pytree.py +0 -472
  1373. package/python3.6.2/lib/python3.6/lib2to3/tests/test_refactor.py +0 -316
  1374. package/python3.6.2/lib/python3.6/lib2to3/tests/test_util.py +0 -591
  1375. package/python3.6.2/lib/python3.6/linecache.py +0 -177
  1376. package/python3.6.2/lib/python3.6/locale.py +0 -1684
  1377. package/python3.6.2/lib/python3.6/logging/__init__.py +0 -2019
  1378. package/python3.6.2/lib/python3.6/logging/config.py +0 -933
  1379. package/python3.6.2/lib/python3.6/logging/handlers.py +0 -1505
  1380. package/python3.6.2/lib/python3.6/lzma.py +0 -347
  1381. package/python3.6.2/lib/python3.6/macpath.py +0 -211
  1382. package/python3.6.2/lib/python3.6/macurl2path.py +0 -77
  1383. package/python3.6.2/lib/python3.6/mailbox.py +0 -2146
  1384. package/python3.6.2/lib/python3.6/mailcap.py +0 -275
  1385. package/python3.6.2/lib/python3.6/mimetypes.py +0 -598
  1386. package/python3.6.2/lib/python3.6/modulefinder.py +0 -633
  1387. package/python3.6.2/lib/python3.6/msilib/__init__.py +0 -483
  1388. package/python3.6.2/lib/python3.6/msilib/schema.py +0 -1007
  1389. package/python3.6.2/lib/python3.6/msilib/sequence.py +0 -126
  1390. package/python3.6.2/lib/python3.6/msilib/text.py +0 -129
  1391. package/python3.6.2/lib/python3.6/multiprocessing/__init__.py +0 -38
  1392. package/python3.6.2/lib/python3.6/multiprocessing/connection.py +0 -953
  1393. package/python3.6.2/lib/python3.6/multiprocessing/context.py +0 -357
  1394. package/python3.6.2/lib/python3.6/multiprocessing/dummy/__init__.py +0 -119
  1395. package/python3.6.2/lib/python3.6/multiprocessing/dummy/connection.py +0 -73
  1396. package/python3.6.2/lib/python3.6/multiprocessing/forkserver.py +0 -266
  1397. package/python3.6.2/lib/python3.6/multiprocessing/heap.py +0 -254
  1398. package/python3.6.2/lib/python3.6/multiprocessing/managers.py +0 -1160
  1399. package/python3.6.2/lib/python3.6/multiprocessing/pool.py +0 -803
  1400. package/python3.6.2/lib/python3.6/multiprocessing/popen_fork.py +0 -86
  1401. package/python3.6.2/lib/python3.6/multiprocessing/popen_forkserver.py +0 -68
  1402. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_posix.py +0 -68
  1403. package/python3.6.2/lib/python3.6/multiprocessing/popen_spawn_win32.py +0 -98
  1404. package/python3.6.2/lib/python3.6/multiprocessing/process.py +0 -336
  1405. package/python3.6.2/lib/python3.6/multiprocessing/queues.py +0 -347
  1406. package/python3.6.2/lib/python3.6/multiprocessing/reduction.py +0 -274
  1407. package/python3.6.2/lib/python3.6/multiprocessing/resource_sharer.py +0 -158
  1408. package/python3.6.2/lib/python3.6/multiprocessing/semaphore_tracker.py +0 -157
  1409. package/python3.6.2/lib/python3.6/multiprocessing/sharedctypes.py +0 -239
  1410. package/python3.6.2/lib/python3.6/multiprocessing/spawn.py +0 -286
  1411. package/python3.6.2/lib/python3.6/multiprocessing/synchronize.py +0 -406
  1412. package/python3.6.2/lib/python3.6/multiprocessing/util.py +0 -406
  1413. package/python3.6.2/lib/python3.6/netrc.py +0 -142
  1414. package/python3.6.2/lib/python3.6/nntplib.py +0 -1147
  1415. package/python3.6.2/lib/python3.6/ntpath.py +0 -692
  1416. package/python3.6.2/lib/python3.6/nturl2path.py +0 -68
  1417. package/python3.6.2/lib/python3.6/numbers.py +0 -389
  1418. package/python3.6.2/lib/python3.6/opcode.py +0 -215
  1419. package/python3.6.2/lib/python3.6/operator.py +0 -464
  1420. package/python3.6.2/lib/python3.6/optparse.py +0 -1681
  1421. package/python3.6.2/lib/python3.6/os.py +0 -1069
  1422. package/python3.6.2/lib/python3.6/pathlib.py +0 -1434
  1423. package/python3.6.2/lib/python3.6/pdb.py +0 -1694
  1424. package/python3.6.2/lib/python3.6/pickle.py +0 -1605
  1425. package/python3.6.2/lib/python3.6/pickletools.py +0 -2840
  1426. package/python3.6.2/lib/python3.6/pipes.py +0 -247
  1427. package/python3.6.2/lib/python3.6/pkgutil.py +0 -634
  1428. package/python3.6.2/lib/python3.6/platform.py +0 -1400
  1429. package/python3.6.2/lib/python3.6/plistlib.py +0 -1043
  1430. package/python3.6.2/lib/python3.6/poplib.py +0 -478
  1431. package/python3.6.2/lib/python3.6/posixpath.py +0 -520
  1432. package/python3.6.2/lib/python3.6/pprint.py +0 -597
  1433. package/python3.6.2/lib/python3.6/profile.py +0 -589
  1434. package/python3.6.2/lib/python3.6/pstats.py +0 -697
  1435. package/python3.6.2/lib/python3.6/pty.py +0 -170
  1436. package/python3.6.2/lib/python3.6/py_compile.py +0 -186
  1437. package/python3.6.2/lib/python3.6/pyclbr.py +0 -352
  1438. package/python3.6.2/lib/python3.6/pydoc.py +0 -2663
  1439. package/python3.6.2/lib/python3.6/pydoc_data/__init__.py +0 -0
  1440. package/python3.6.2/lib/python3.6/pydoc_data/topics.py +0 -12951
  1441. package/python3.6.2/lib/python3.6/queue.py +0 -246
  1442. package/python3.6.2/lib/python3.6/quopri.py +0 -242
  1443. package/python3.6.2/lib/python3.6/random.py +0 -768
  1444. package/python3.6.2/lib/python3.6/re.py +0 -381
  1445. package/python3.6.2/lib/python3.6/reprlib.py +0 -164
  1446. package/python3.6.2/lib/python3.6/rlcompleter.py +0 -205
  1447. package/python3.6.2/lib/python3.6/runpy.py +0 -294
  1448. package/python3.6.2/lib/python3.6/sched.py +0 -170
  1449. package/python3.6.2/lib/python3.6/secrets.py +0 -73
  1450. package/python3.6.2/lib/python3.6/selectors.py +0 -611
  1451. package/python3.6.2/lib/python3.6/shelve.py +0 -243
  1452. package/python3.6.2/lib/python3.6/shlex.py +0 -335
  1453. package/python3.6.2/lib/python3.6/shutil.py +0 -1153
  1454. package/python3.6.2/lib/python3.6/signal.py +0 -79
  1455. package/python3.6.2/lib/python3.6/site.py +0 -598
  1456. package/python3.6.2/lib/python3.6/smtpd.py +0 -965
  1457. package/python3.6.2/lib/python3.6/smtplib.py +0 -1115
  1458. package/python3.6.2/lib/python3.6/sndhdr.py +0 -257
  1459. package/python3.6.2/lib/python3.6/socket.py +0 -750
  1460. package/python3.6.2/lib/python3.6/socketserver.py +0 -793
  1461. package/python3.6.2/lib/python3.6/sqlite3/__init__.py +0 -23
  1462. package/python3.6.2/lib/python3.6/sqlite3/dbapi2.py +0 -89
  1463. package/python3.6.2/lib/python3.6/sqlite3/dump.py +0 -70
  1464. package/python3.6.2/lib/python3.6/sqlite3/test/__init__.py +0 -0
  1465. package/python3.6.2/lib/python3.6/sqlite3/test/dbapi.py +0 -938
  1466. package/python3.6.2/lib/python3.6/sqlite3/test/dump.py +0 -81
  1467. package/python3.6.2/lib/python3.6/sqlite3/test/factory.py +0 -293
  1468. package/python3.6.2/lib/python3.6/sqlite3/test/hooks.py +0 -264
  1469. package/python3.6.2/lib/python3.6/sqlite3/test/regression.py +0 -410
  1470. package/python3.6.2/lib/python3.6/sqlite3/test/transactions.py +0 -214
  1471. package/python3.6.2/lib/python3.6/sqlite3/test/types.py +0 -421
  1472. package/python3.6.2/lib/python3.6/sqlite3/test/userfunctions.py +0 -473
  1473. package/python3.6.2/lib/python3.6/sre_compile.py +0 -580
  1474. package/python3.6.2/lib/python3.6/sre_constants.py +0 -233
  1475. package/python3.6.2/lib/python3.6/sre_parse.py +0 -973
  1476. package/python3.6.2/lib/python3.6/ssl.py +0 -1228
  1477. package/python3.6.2/lib/python3.6/stat.py +0 -178
  1478. package/python3.6.2/lib/python3.6/statistics.py +0 -670
  1479. package/python3.6.2/lib/python3.6/string.py +0 -309
  1480. package/python3.6.2/lib/python3.6/stringprep.py +0 -272
  1481. package/python3.6.2/lib/python3.6/struct.py +0 -15
  1482. package/python3.6.2/lib/python3.6/subprocess.py +0 -1590
  1483. package/python3.6.2/lib/python3.6/sunau.py +0 -525
  1484. package/python3.6.2/lib/python3.6/symbol.py +0 -115
  1485. package/python3.6.2/lib/python3.6/symtable.py +0 -238
  1486. package/python3.6.2/lib/python3.6/sysconfig.py +0 -721
  1487. package/python3.6.2/lib/python3.6/tabnanny.py +0 -332
  1488. package/python3.6.2/lib/python3.6/tarfile.py +0 -2547
  1489. package/python3.6.2/lib/python3.6/telnetlib.py +0 -675
  1490. package/python3.6.2/lib/python3.6/tempfile.py +0 -811
  1491. package/python3.6.2/lib/python3.6/test/Sine-1000Hz-300ms.aif +0 -0
  1492. package/python3.6.2/lib/python3.6/test/__init__.py +0 -1
  1493. package/python3.6.2/lib/python3.6/test/__main__.py +0 -2
  1494. package/python3.6.2/lib/python3.6/test/_test_multiprocessing.py +0 -4458
  1495. package/python3.6.2/lib/python3.6/test/allsans.pem +0 -37
  1496. package/python3.6.2/lib/python3.6/test/ann_module.py +0 -53
  1497. package/python3.6.2/lib/python3.6/test/ann_module2.py +0 -36
  1498. package/python3.6.2/lib/python3.6/test/ann_module3.py +0 -18
  1499. package/python3.6.2/lib/python3.6/test/audiodata/pluck-alaw.aifc +0 -0
  1500. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.aiff +0 -0
  1501. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.au +0 -0
  1502. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm16.wav +0 -0
  1503. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.aiff +0 -0
  1504. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.au +0 -0
  1505. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm24.wav +0 -0
  1506. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.aiff +0 -0
  1507. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.au +0 -0
  1508. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm32.wav +0 -0
  1509. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.aiff +0 -0
  1510. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.au +0 -0
  1511. package/python3.6.2/lib/python3.6/test/audiodata/pluck-pcm8.wav +0 -0
  1512. package/python3.6.2/lib/python3.6/test/audiodata/pluck-ulaw.aifc +0 -0
  1513. package/python3.6.2/lib/python3.6/test/audiodata/pluck-ulaw.au +0 -0
  1514. package/python3.6.2/lib/python3.6/test/audiotest.au +0 -0
  1515. package/python3.6.2/lib/python3.6/test/audiotests.py +0 -329
  1516. package/python3.6.2/lib/python3.6/test/autotest.py +0 -5
  1517. package/python3.6.2/lib/python3.6/test/bad_coding.py +0 -1
  1518. package/python3.6.2/lib/python3.6/test/bad_coding2.py +0 -2
  1519. package/python3.6.2/lib/python3.6/test/badcert.pem +0 -36
  1520. package/python3.6.2/lib/python3.6/test/badkey.pem +0 -40
  1521. package/python3.6.2/lib/python3.6/test/badsyntax_3131.py +0 -2
  1522. package/python3.6.2/lib/python3.6/test/badsyntax_future10.py +0 -3
  1523. package/python3.6.2/lib/python3.6/test/badsyntax_future3.py +0 -10
  1524. package/python3.6.2/lib/python3.6/test/badsyntax_future4.py +0 -10
  1525. package/python3.6.2/lib/python3.6/test/badsyntax_future5.py +0 -12
  1526. package/python3.6.2/lib/python3.6/test/badsyntax_future6.py +0 -10
  1527. package/python3.6.2/lib/python3.6/test/badsyntax_future7.py +0 -11
  1528. package/python3.6.2/lib/python3.6/test/badsyntax_future8.py +0 -10
  1529. package/python3.6.2/lib/python3.6/test/badsyntax_future9.py +0 -10
  1530. package/python3.6.2/lib/python3.6/test/badsyntax_pep3120.py +0 -1
  1531. package/python3.6.2/lib/python3.6/test/bisect.py +0 -167
  1532. package/python3.6.2/lib/python3.6/test/bytecode_helper.py +0 -41
  1533. package/python3.6.2/lib/python3.6/test/capath/4e1295a3.0 +0 -14
  1534. package/python3.6.2/lib/python3.6/test/capath/5ed36f99.0 +0 -41
  1535. package/python3.6.2/lib/python3.6/test/capath/6e88d7b8.0 +0 -14
  1536. package/python3.6.2/lib/python3.6/test/capath/99d0fa06.0 +0 -41
  1537. package/python3.6.2/lib/python3.6/test/capath/b1930218.0 +0 -21
  1538. package/python3.6.2/lib/python3.6/test/capath/ceff1710.0 +0 -21
  1539. package/python3.6.2/lib/python3.6/test/cfgparser.1 +0 -3
  1540. package/python3.6.2/lib/python3.6/test/cfgparser.2 +0 -537
  1541. package/python3.6.2/lib/python3.6/test/cfgparser.3 +0 -69
  1542. package/python3.6.2/lib/python3.6/test/cjkencodings/big5-utf8.txt +0 -9
  1543. package/python3.6.2/lib/python3.6/test/cjkencodings/big5.txt +0 -9
  1544. package/python3.6.2/lib/python3.6/test/cjkencodings/big5hkscs-utf8.txt +0 -2
  1545. package/python3.6.2/lib/python3.6/test/cjkencodings/big5hkscs.txt +0 -2
  1546. package/python3.6.2/lib/python3.6/test/cjkencodings/cp949-utf8.txt +0 -9
  1547. package/python3.6.2/lib/python3.6/test/cjkencodings/cp949.txt +0 -9
  1548. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jisx0213-utf8.txt +0 -8
  1549. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jisx0213.txt +0 -8
  1550. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jp-utf8.txt +0 -7
  1551. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_jp.txt +0 -7
  1552. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_kr-utf8.txt +0 -7
  1553. package/python3.6.2/lib/python3.6/test/cjkencodings/euc_kr.txt +0 -7
  1554. package/python3.6.2/lib/python3.6/test/cjkencodings/gb18030-utf8.txt +0 -15
  1555. package/python3.6.2/lib/python3.6/test/cjkencodings/gb18030.txt +0 -15
  1556. package/python3.6.2/lib/python3.6/test/cjkencodings/gb2312-utf8.txt +0 -6
  1557. package/python3.6.2/lib/python3.6/test/cjkencodings/gb2312.txt +0 -6
  1558. package/python3.6.2/lib/python3.6/test/cjkencodings/gbk-utf8.txt +0 -14
  1559. package/python3.6.2/lib/python3.6/test/cjkencodings/gbk.txt +0 -14
  1560. package/python3.6.2/lib/python3.6/test/cjkencodings/hz-utf8.txt +0 -2
  1561. package/python3.6.2/lib/python3.6/test/cjkencodings/hz.txt +0 -2
  1562. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_jp-utf8.txt +0 -7
  1563. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_jp.txt +0 -7
  1564. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_kr-utf8.txt +0 -7
  1565. package/python3.6.2/lib/python3.6/test/cjkencodings/iso2022_kr.txt +0 -7
  1566. package/python3.6.2/lib/python3.6/test/cjkencodings/johab-utf8.txt +0 -9
  1567. package/python3.6.2/lib/python3.6/test/cjkencodings/johab.txt +0 -9
  1568. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jis-utf8.txt +0 -7
  1569. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jis.txt +0 -7
  1570. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jisx0213-utf8.txt +0 -8
  1571. package/python3.6.2/lib/python3.6/test/cjkencodings/shift_jisx0213.txt +0 -8
  1572. package/python3.6.2/lib/python3.6/test/cmath_testcases.txt +0 -2511
  1573. package/python3.6.2/lib/python3.6/test/coding20731.py +0 -4
  1574. package/python3.6.2/lib/python3.6/test/crashers/README +0 -20
  1575. package/python3.6.2/lib/python3.6/test/crashers/bogus_code_obj.py +0 -19
  1576. package/python3.6.2/lib/python3.6/test/crashers/gc_inspection.py +0 -32
  1577. package/python3.6.2/lib/python3.6/test/crashers/infinite_loop_re.py +0 -16
  1578. package/python3.6.2/lib/python3.6/test/crashers/mutation_inside_cyclegc.py +0 -31
  1579. package/python3.6.2/lib/python3.6/test/crashers/recursive_call.py +0 -15
  1580. package/python3.6.2/lib/python3.6/test/crashers/trace_at_recursion_limit.py +0 -27
  1581. package/python3.6.2/lib/python3.6/test/crashers/underlying_dict.py +0 -20
  1582. package/python3.6.2/lib/python3.6/test/curses_tests.py +0 -46
  1583. package/python3.6.2/lib/python3.6/test/data/README +0 -2
  1584. package/python3.6.2/lib/python3.6/test/datetimetester.py +0 -4929
  1585. package/python3.6.2/lib/python3.6/test/decimaltestdata/abs.decTest +0 -161
  1586. package/python3.6.2/lib/python3.6/test/decimaltestdata/add.decTest +0 -2716
  1587. package/python3.6.2/lib/python3.6/test/decimaltestdata/and.decTest +0 -338
  1588. package/python3.6.2/lib/python3.6/test/decimaltestdata/base.decTest +0 -1411
  1589. package/python3.6.2/lib/python3.6/test/decimaltestdata/clamp.decTest +0 -211
  1590. package/python3.6.2/lib/python3.6/test/decimaltestdata/class.decTest +0 -131
  1591. package/python3.6.2/lib/python3.6/test/decimaltestdata/compare.decTest +0 -758
  1592. package/python3.6.2/lib/python3.6/test/decimaltestdata/comparetotal.decTest +0 -798
  1593. package/python3.6.2/lib/python3.6/test/decimaltestdata/comparetotmag.decTest +0 -790
  1594. package/python3.6.2/lib/python3.6/test/decimaltestdata/copy.decTest +0 -86
  1595. package/python3.6.2/lib/python3.6/test/decimaltestdata/copyabs.decTest +0 -86
  1596. package/python3.6.2/lib/python3.6/test/decimaltestdata/copynegate.decTest +0 -86
  1597. package/python3.6.2/lib/python3.6/test/decimaltestdata/copysign.decTest +0 -177
  1598. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAbs.decTest +0 -126
  1599. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAdd.decTest +0 -1328
  1600. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddAnd.decTest +0 -347
  1601. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddBase.decTest +0 -1104
  1602. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCanonical.decTest +0 -357
  1603. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddClass.decTest +0 -76
  1604. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompare.decTest +0 -744
  1605. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareSig.decTest +0 -647
  1606. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareTotal.decTest +0 -706
  1607. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCompareTotalMag.decTest +0 -706
  1608. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopy.decTest +0 -88
  1609. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopyAbs.decTest +0 -88
  1610. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopyNegate.decTest +0 -88
  1611. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddCopySign.decTest +0 -175
  1612. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddDivide.decTest +0 -863
  1613. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddDivideInt.decTest +0 -449
  1614. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddEncode.decTest +0 -495
  1615. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddFMA.decTest +0 -1698
  1616. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddInvert.decTest +0 -202
  1617. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddLogB.decTest +0 -159
  1618. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMax.decTest +0 -322
  1619. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMaxMag.decTest +0 -304
  1620. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMin.decTest +0 -309
  1621. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMinMag.decTest +0 -293
  1622. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMinus.decTest +0 -88
  1623. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddMultiply.decTest +0 -553
  1624. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextMinus.decTest +0 -126
  1625. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextPlus.decTest +0 -124
  1626. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddNextToward.decTest +0 -374
  1627. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddOr.decTest +0 -292
  1628. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddPlus.decTest +0 -88
  1629. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddQuantize.decTest +0 -833
  1630. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddReduce.decTest +0 -182
  1631. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRemainder.decTest +0 -600
  1632. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRemainderNear.decTest +0 -629
  1633. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddRotate.decTest +0 -262
  1634. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddSameQuantum.decTest +0 -389
  1635. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddScaleB.decTest +0 -243
  1636. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddShift.decTest +0 -262
  1637. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddSubtract.decTest +0 -629
  1638. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddToIntegral.decTest +0 -257
  1639. package/python3.6.2/lib/python3.6/test/decimaltestdata/ddXor.decTest +0 -337
  1640. package/python3.6.2/lib/python3.6/test/decimaltestdata/decDouble.decTest +0 -65
  1641. package/python3.6.2/lib/python3.6/test/decimaltestdata/decQuad.decTest +0 -65
  1642. package/python3.6.2/lib/python3.6/test/decimaltestdata/decSingle.decTest +0 -25
  1643. package/python3.6.2/lib/python3.6/test/decimaltestdata/divide.decTest +0 -854
  1644. package/python3.6.2/lib/python3.6/test/decimaltestdata/divideint.decTest +0 -486
  1645. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAbs.decTest +0 -126
  1646. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAdd.decTest +0 -1215
  1647. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqAnd.decTest +0 -420
  1648. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqBase.decTest +0 -1081
  1649. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCanonical.decTest +0 -372
  1650. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqClass.decTest +0 -77
  1651. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompare.decTest +0 -753
  1652. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareSig.decTest +0 -647
  1653. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareTotal.decTest +0 -706
  1654. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCompareTotalMag.decTest +0 -706
  1655. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopy.decTest +0 -88
  1656. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopyAbs.decTest +0 -88
  1657. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopyNegate.decTest +0 -88
  1658. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqCopySign.decTest +0 -175
  1659. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqDivide.decTest +0 -808
  1660. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqDivideInt.decTest +0 -453
  1661. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqEncode.decTest +0 -477
  1662. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqFMA.decTest +0 -1786
  1663. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqInvert.decTest +0 -245
  1664. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqLogB.decTest +0 -160
  1665. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMax.decTest +0 -322
  1666. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMaxMag.decTest +0 -304
  1667. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMin.decTest +0 -309
  1668. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMinMag.decTest +0 -293
  1669. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMinus.decTest +0 -88
  1670. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqMultiply.decTest +0 -589
  1671. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextMinus.decTest +0 -126
  1672. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextPlus.decTest +0 -124
  1673. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqNextToward.decTest +0 -375
  1674. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqOr.decTest +0 -401
  1675. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqPlus.decTest +0 -88
  1676. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqQuantize.decTest +0 -836
  1677. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqReduce.decTest +0 -183
  1678. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRemainder.decTest +0 -597
  1679. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRemainderNear.decTest +0 -631
  1680. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqRotate.decTest +0 -298
  1681. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqSameQuantum.decTest +0 -389
  1682. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqScaleB.decTest +0 -260
  1683. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqShift.decTest +0 -298
  1684. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqSubtract.decTest +0 -635
  1685. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqToIntegral.decTest +0 -257
  1686. package/python3.6.2/lib/python3.6/test/decimaltestdata/dqXor.decTest +0 -410
  1687. package/python3.6.2/lib/python3.6/test/decimaltestdata/dsBase.decTest +0 -1062
  1688. package/python3.6.2/lib/python3.6/test/decimaltestdata/dsEncode.decTest +0 -372
  1689. package/python3.6.2/lib/python3.6/test/decimaltestdata/exp.decTest +0 -674
  1690. package/python3.6.2/lib/python3.6/test/decimaltestdata/extra.decTest +0 -2830
  1691. package/python3.6.2/lib/python3.6/test/decimaltestdata/fma.decTest +0 -3426
  1692. package/python3.6.2/lib/python3.6/test/decimaltestdata/inexact.decTest +0 -215
  1693. package/python3.6.2/lib/python3.6/test/decimaltestdata/invert.decTest +0 -176
  1694. package/python3.6.2/lib/python3.6/test/decimaltestdata/ln.decTest +0 -611
  1695. package/python3.6.2/lib/python3.6/test/decimaltestdata/log10.decTest +0 -551
  1696. package/python3.6.2/lib/python3.6/test/decimaltestdata/logb.decTest +0 -188
  1697. package/python3.6.2/lib/python3.6/test/decimaltestdata/max.decTest +0 -424
  1698. package/python3.6.2/lib/python3.6/test/decimaltestdata/maxmag.decTest +0 -404
  1699. package/python3.6.2/lib/python3.6/test/decimaltestdata/min.decTest +0 -407
  1700. package/python3.6.2/lib/python3.6/test/decimaltestdata/minmag.decTest +0 -390
  1701. package/python3.6.2/lib/python3.6/test/decimaltestdata/minus.decTest +0 -182
  1702. package/python3.6.2/lib/python3.6/test/decimaltestdata/multiply.decTest +0 -731
  1703. package/python3.6.2/lib/python3.6/test/decimaltestdata/nextminus.decTest +0 -148
  1704. package/python3.6.2/lib/python3.6/test/decimaltestdata/nextplus.decTest +0 -150
  1705. package/python3.6.2/lib/python3.6/test/decimaltestdata/nexttoward.decTest +0 -426
  1706. package/python3.6.2/lib/python3.6/test/decimaltestdata/or.decTest +0 -334
  1707. package/python3.6.2/lib/python3.6/test/decimaltestdata/plus.decTest +0 -195
  1708. package/python3.6.2/lib/python3.6/test/decimaltestdata/power.decTest +0 -1624
  1709. package/python3.6.2/lib/python3.6/test/decimaltestdata/powersqrt.decTest +0 -2970
  1710. package/python3.6.2/lib/python3.6/test/decimaltestdata/quantize.decTest +0 -948
  1711. package/python3.6.2/lib/python3.6/test/decimaltestdata/randomBound32.decTest +0 -2443
  1712. package/python3.6.2/lib/python3.6/test/decimaltestdata/randoms.decTest +0 -4030
  1713. package/python3.6.2/lib/python3.6/test/decimaltestdata/reduce.decTest +0 -234
  1714. package/python3.6.2/lib/python3.6/test/decimaltestdata/remainder.decTest +0 -640
  1715. package/python3.6.2/lib/python3.6/test/decimaltestdata/remainderNear.decTest +0 -572
  1716. package/python3.6.2/lib/python3.6/test/decimaltestdata/rescale.decTest +0 -764
  1717. package/python3.6.2/lib/python3.6/test/decimaltestdata/rotate.decTest +0 -247
  1718. package/python3.6.2/lib/python3.6/test/decimaltestdata/rounding.decTest +0 -1303
  1719. package/python3.6.2/lib/python3.6/test/decimaltestdata/samequantum.decTest +0 -389
  1720. package/python3.6.2/lib/python3.6/test/decimaltestdata/scaleb.decTest +0 -209
  1721. package/python3.6.2/lib/python3.6/test/decimaltestdata/shift.decTest +0 -250
  1722. package/python3.6.2/lib/python3.6/test/decimaltestdata/squareroot.decTest +0 -3834
  1723. package/python3.6.2/lib/python3.6/test/decimaltestdata/subtract.decTest +0 -873
  1724. package/python3.6.2/lib/python3.6/test/decimaltestdata/testall.decTest +0 -87
  1725. package/python3.6.2/lib/python3.6/test/decimaltestdata/tointegral.decTest +0 -241
  1726. package/python3.6.2/lib/python3.6/test/decimaltestdata/tointegralx.decTest +0 -255
  1727. package/python3.6.2/lib/python3.6/test/decimaltestdata/xor.decTest +0 -335
  1728. package/python3.6.2/lib/python3.6/test/dh1024.pem +0 -7
  1729. package/python3.6.2/lib/python3.6/test/dis_module.py +0 -5
  1730. package/python3.6.2/lib/python3.6/test/doctest_aliases.py +0 -13
  1731. package/python3.6.2/lib/python3.6/test/double_const.py +0 -30
  1732. package/python3.6.2/lib/python3.6/test/dtracedata/assert_usable.d +0 -5
  1733. package/python3.6.2/lib/python3.6/test/dtracedata/assert_usable.stp +0 -5
  1734. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.d +0 -31
  1735. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.d.expected +0 -18
  1736. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.py +0 -30
  1737. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.stp +0 -41
  1738. package/python3.6.2/lib/python3.6/test/dtracedata/call_stack.stp.expected +0 -14
  1739. package/python3.6.2/lib/python3.6/test/dtracedata/gc.d +0 -18
  1740. package/python3.6.2/lib/python3.6/test/dtracedata/gc.d.expected +0 -8
  1741. package/python3.6.2/lib/python3.6/test/dtracedata/gc.py +0 -13
  1742. package/python3.6.2/lib/python3.6/test/dtracedata/gc.stp +0 -26
  1743. package/python3.6.2/lib/python3.6/test/dtracedata/gc.stp.expected +0 -8
  1744. package/python3.6.2/lib/python3.6/test/dtracedata/instance.py +0 -24
  1745. package/python3.6.2/lib/python3.6/test/dtracedata/line.d +0 -7
  1746. package/python3.6.2/lib/python3.6/test/dtracedata/line.d.expected +0 -20
  1747. package/python3.6.2/lib/python3.6/test/dtracedata/line.py +0 -17
  1748. package/python3.6.2/lib/python3.6/test/eintrdata/eintr_tester.py +0 -493
  1749. package/python3.6.2/lib/python3.6/test/empty.vbs +0 -1
  1750. package/python3.6.2/lib/python3.6/test/encoded_modules/__init__.py +0 -23
  1751. package/python3.6.2/lib/python3.6/test/encoded_modules/module_iso_8859_1.py +0 -5
  1752. package/python3.6.2/lib/python3.6/test/encoded_modules/module_koi8_r.py +0 -3
  1753. package/python3.6.2/lib/python3.6/test/exception_hierarchy.txt +0 -64
  1754. package/python3.6.2/lib/python3.6/test/final_a.py +0 -19
  1755. package/python3.6.2/lib/python3.6/test/final_b.py +0 -19
  1756. package/python3.6.2/lib/python3.6/test/floating_points.txt +0 -1028
  1757. package/python3.6.2/lib/python3.6/test/fork_wait.py +0 -91
  1758. package/python3.6.2/lib/python3.6/test/formatfloat_testcases.txt +0 -355
  1759. package/python3.6.2/lib/python3.6/test/future_test1.py +0 -11
  1760. package/python3.6.2/lib/python3.6/test/future_test2.py +0 -10
  1761. package/python3.6.2/lib/python3.6/test/gdb_sample.py +0 -12
  1762. package/python3.6.2/lib/python3.6/test/ieee754.txt +0 -185
  1763. package/python3.6.2/lib/python3.6/test/imghdrdata/python.bmp +0 -0
  1764. package/python3.6.2/lib/python3.6/test/imghdrdata/python.exr +0 -0
  1765. package/python3.6.2/lib/python3.6/test/imghdrdata/python.gif +0 -0
  1766. package/python3.6.2/lib/python3.6/test/imghdrdata/python.jpg +0 -0
  1767. package/python3.6.2/lib/python3.6/test/imghdrdata/python.pbm +0 -3
  1768. package/python3.6.2/lib/python3.6/test/imghdrdata/python.pgm +0 -0
  1769. package/python3.6.2/lib/python3.6/test/imghdrdata/python.png +0 -0
  1770. package/python3.6.2/lib/python3.6/test/imghdrdata/python.ppm +0 -0
  1771. package/python3.6.2/lib/python3.6/test/imghdrdata/python.ras +0 -0
  1772. package/python3.6.2/lib/python3.6/test/imghdrdata/python.sgi +0 -0
  1773. package/python3.6.2/lib/python3.6/test/imghdrdata/python.tiff +0 -0
  1774. package/python3.6.2/lib/python3.6/test/imghdrdata/python.webp +0 -0
  1775. package/python3.6.2/lib/python3.6/test/imghdrdata/python.xbm +0 -6
  1776. package/python3.6.2/lib/python3.6/test/imp_dummy.py +0 -3
  1777. package/python3.6.2/lib/python3.6/test/inspect_fodder.py +0 -76
  1778. package/python3.6.2/lib/python3.6/test/inspect_fodder2.py +0 -139
  1779. package/python3.6.2/lib/python3.6/test/keycert.passwd.pem +0 -33
  1780. package/python3.6.2/lib/python3.6/test/keycert.pem +0 -31
  1781. package/python3.6.2/lib/python3.6/test/keycert2.pem +0 -31
  1782. package/python3.6.2/lib/python3.6/test/keycert3.pem +0 -73
  1783. package/python3.6.2/lib/python3.6/test/keycert4.pem +0 -73
  1784. package/python3.6.2/lib/python3.6/test/leakers/README.txt +0 -32
  1785. package/python3.6.2/lib/python3.6/test/leakers/__init__.py +0 -0
  1786. package/python3.6.2/lib/python3.6/test/leakers/test_ctypes.py +0 -15
  1787. package/python3.6.2/lib/python3.6/test/leakers/test_selftype.py +0 -13
  1788. package/python3.6.2/lib/python3.6/test/libregrtest/__init__.py +0 -5
  1789. package/python3.6.2/lib/python3.6/test/libregrtest/cmdline.py +0 -387
  1790. package/python3.6.2/lib/python3.6/test/libregrtest/main.py +0 -584
  1791. package/python3.6.2/lib/python3.6/test/libregrtest/refleak.py +0 -294
  1792. package/python3.6.2/lib/python3.6/test/libregrtest/runtest.py +0 -254
  1793. package/python3.6.2/lib/python3.6/test/libregrtest/runtest_mp.py +0 -244
  1794. package/python3.6.2/lib/python3.6/test/libregrtest/save_env.py +0 -284
  1795. package/python3.6.2/lib/python3.6/test/libregrtest/setup.py +0 -140
  1796. package/python3.6.2/lib/python3.6/test/list_tests.py +0 -618
  1797. package/python3.6.2/lib/python3.6/test/lock_tests.py +0 -936
  1798. package/python3.6.2/lib/python3.6/test/mailcap.txt +0 -39
  1799. package/python3.6.2/lib/python3.6/test/make_ssl_certs.py +0 -216
  1800. package/python3.6.2/lib/python3.6/test/mapping_tests.py +0 -657
  1801. package/python3.6.2/lib/python3.6/test/math_testcases.txt +0 -633
  1802. package/python3.6.2/lib/python3.6/test/memory_watchdog.py +0 -28
  1803. package/python3.6.2/lib/python3.6/test/mime.types +0 -1445
  1804. package/python3.6.2/lib/python3.6/test/mock_socket.py +0 -159
  1805. package/python3.6.2/lib/python3.6/test/mod_generics_cache.py +0 -53
  1806. package/python3.6.2/lib/python3.6/test/mp_fork_bomb.py +0 -18
  1807. package/python3.6.2/lib/python3.6/test/mp_preload.py +0 -18
  1808. package/python3.6.2/lib/python3.6/test/multibytecodec_support.py +0 -384
  1809. package/python3.6.2/lib/python3.6/test/nokia.pem +0 -31
  1810. package/python3.6.2/lib/python3.6/test/nullbytecert.pem +0 -90
  1811. package/python3.6.2/lib/python3.6/test/nullcert.pem +0 -0
  1812. package/python3.6.2/lib/python3.6/test/outstanding_bugs.py +0 -18
  1813. package/python3.6.2/lib/python3.6/test/pickletester.py +0 -2922
  1814. package/python3.6.2/lib/python3.6/test/profilee.py +0 -115
  1815. package/python3.6.2/lib/python3.6/test/pstats.pck +0 -0
  1816. package/python3.6.2/lib/python3.6/test/pycacert.pem +0 -78
  1817. package/python3.6.2/lib/python3.6/test/pycakey.pem +0 -28
  1818. package/python3.6.2/lib/python3.6/test/pyclbr_input.py +0 -33
  1819. package/python3.6.2/lib/python3.6/test/pydoc_mod.py +0 -37
  1820. package/python3.6.2/lib/python3.6/test/pydocfodder.py +0 -216
  1821. package/python3.6.2/lib/python3.6/test/pystone.py +0 -277
  1822. package/python3.6.2/lib/python3.6/test/pythoninfo.py +0 -486
  1823. package/python3.6.2/lib/python3.6/test/randv2_32.pck +0 -633
  1824. package/python3.6.2/lib/python3.6/test/randv2_64.pck +0 -633
  1825. package/python3.6.2/lib/python3.6/test/randv3.pck +0 -633
  1826. package/python3.6.2/lib/python3.6/test/re_tests.py +0 -670
  1827. package/python3.6.2/lib/python3.6/test/regrtest.py +0 -50
  1828. package/python3.6.2/lib/python3.6/test/relimport.py +0 -1
  1829. package/python3.6.2/lib/python3.6/test/reperf.py +0 -23
  1830. package/python3.6.2/lib/python3.6/test/revocation.crl +0 -11
  1831. package/python3.6.2/lib/python3.6/test/sample_doctest.py +0 -76
  1832. package/python3.6.2/lib/python3.6/test/sample_doctest_no_docstrings.py +0 -12
  1833. package/python3.6.2/lib/python3.6/test/sample_doctest_no_doctests.py +0 -15
  1834. package/python3.6.2/lib/python3.6/test/selfsigned_pythontestdotnet.pem +0 -16
  1835. package/python3.6.2/lib/python3.6/test/seq_tests.py +0 -414
  1836. package/python3.6.2/lib/python3.6/test/sgml_input.html +0 -212
  1837. package/python3.6.2/lib/python3.6/test/signalinterproctester.py +0 -84
  1838. package/python3.6.2/lib/python3.6/test/sndhdrdata/README +0 -5
  1839. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.8svx +0 -0
  1840. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.aifc +0 -0
  1841. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.aiff +0 -0
  1842. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.au +0 -0
  1843. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.hcom +0 -0
  1844. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.sndt +0 -0
  1845. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.voc +0 -0
  1846. package/python3.6.2/lib/python3.6/test/sndhdrdata/sndhdr.wav +0 -0
  1847. package/python3.6.2/lib/python3.6/test/sortperf.py +0 -169
  1848. package/python3.6.2/lib/python3.6/test/ssl_cert.pem +0 -15
  1849. package/python3.6.2/lib/python3.6/test/ssl_key.passwd.pem +0 -18
  1850. package/python3.6.2/lib/python3.6/test/ssl_key.pem +0 -16
  1851. package/python3.6.2/lib/python3.6/test/ssl_servers.py +0 -209
  1852. package/python3.6.2/lib/python3.6/test/ssltests.py +0 -37
  1853. package/python3.6.2/lib/python3.6/test/string_tests.py +0 -1383
  1854. package/python3.6.2/lib/python3.6/test/subprocessdata/fd_status.py +0 -34
  1855. package/python3.6.2/lib/python3.6/test/subprocessdata/input_reader.py +0 -7
  1856. package/python3.6.2/lib/python3.6/test/subprocessdata/qcat.py +0 -7
  1857. package/python3.6.2/lib/python3.6/test/subprocessdata/qgrep.py +0 -10
  1858. package/python3.6.2/lib/python3.6/test/subprocessdata/sigchild_ignore.py +0 -15
  1859. package/python3.6.2/lib/python3.6/test/support/__init__.py +0 -2706
  1860. package/python3.6.2/lib/python3.6/test/support/script_helper.py +0 -259
  1861. package/python3.6.2/lib/python3.6/test/test___all__.py +0 -109
  1862. package/python3.6.2/lib/python3.6/test/test___future__.py +0 -61
  1863. package/python3.6.2/lib/python3.6/test/test__locale.py +0 -193
  1864. package/python3.6.2/lib/python3.6/test/test__opcode.py +0 -20
  1865. package/python3.6.2/lib/python3.6/test/test__osx_support.py +0 -276
  1866. package/python3.6.2/lib/python3.6/test/test_abc.py +0 -420
  1867. package/python3.6.2/lib/python3.6/test/test_abstract_numbers.py +0 -44
  1868. package/python3.6.2/lib/python3.6/test/test_aifc.py +0 -399
  1869. package/python3.6.2/lib/python3.6/test/test_argparse.py +0 -5006
  1870. package/python3.6.2/lib/python3.6/test/test_array.py +0 -1388
  1871. package/python3.6.2/lib/python3.6/test/test_asdl_parser.py +0 -122
  1872. package/python3.6.2/lib/python3.6/test/test_ast.py +0 -1170
  1873. package/python3.6.2/lib/python3.6/test/test_asyncgen.py +0 -1044
  1874. package/python3.6.2/lib/python3.6/test/test_asynchat.py +0 -308
  1875. package/python3.6.2/lib/python3.6/test/test_asyncio/__init__.py +0 -10
  1876. package/python3.6.2/lib/python3.6/test/test_asyncio/__main__.py +0 -4
  1877. package/python3.6.2/lib/python3.6/test/test_asyncio/echo.py +0 -8
  1878. package/python3.6.2/lib/python3.6/test/test_asyncio/echo2.py +0 -6
  1879. package/python3.6.2/lib/python3.6/test/test_asyncio/echo3.py +0 -11
  1880. package/python3.6.2/lib/python3.6/test/test_asyncio/keycert3.pem +0 -73
  1881. package/python3.6.2/lib/python3.6/test/test_asyncio/pycacert.pem +0 -78
  1882. package/python3.6.2/lib/python3.6/test/test_asyncio/ssl_cert.pem +0 -15
  1883. package/python3.6.2/lib/python3.6/test/test_asyncio/ssl_key.pem +0 -16
  1884. package/python3.6.2/lib/python3.6/test/test_asyncio/test_base_events.py +0 -1761
  1885. package/python3.6.2/lib/python3.6/test/test_asyncio/test_events.py +0 -2791
  1886. package/python3.6.2/lib/python3.6/test/test_asyncio/test_futures.py +0 -692
  1887. package/python3.6.2/lib/python3.6/test/test_asyncio/test_locks.py +0 -943
  1888. package/python3.6.2/lib/python3.6/test/test_asyncio/test_pep492.py +0 -232
  1889. package/python3.6.2/lib/python3.6/test/test_asyncio/test_proactor_events.py +0 -593
  1890. package/python3.6.2/lib/python3.6/test/test_asyncio/test_queues.py +0 -643
  1891. package/python3.6.2/lib/python3.6/test/test_asyncio/test_selector_events.py +0 -1833
  1892. package/python3.6.2/lib/python3.6/test/test_asyncio/test_sslproto.py +0 -134
  1893. package/python3.6.2/lib/python3.6/test/test_asyncio/test_streams.py +0 -868
  1894. package/python3.6.2/lib/python3.6/test/test_asyncio/test_subprocess.py +0 -532
  1895. package/python3.6.2/lib/python3.6/test/test_asyncio/test_tasks.py +0 -2598
  1896. package/python3.6.2/lib/python3.6/test/test_asyncio/test_transports.py +0 -91
  1897. package/python3.6.2/lib/python3.6/test/test_asyncio/test_unix_events.py +0 -1621
  1898. package/python3.6.2/lib/python3.6/test/test_asyncio/test_windows_events.py +0 -164
  1899. package/python3.6.2/lib/python3.6/test/test_asyncio/test_windows_utils.py +0 -182
  1900. package/python3.6.2/lib/python3.6/test/test_asyncore.py +0 -847
  1901. package/python3.6.2/lib/python3.6/test/test_atexit.py +0 -192
  1902. package/python3.6.2/lib/python3.6/test/test_audioop.py +0 -565
  1903. package/python3.6.2/lib/python3.6/test/test_augassign.py +0 -326
  1904. package/python3.6.2/lib/python3.6/test/test_base64.py +0 -681
  1905. package/python3.6.2/lib/python3.6/test/test_baseexception.py +0 -183
  1906. package/python3.6.2/lib/python3.6/test/test_bigaddrspace.py +0 -101
  1907. package/python3.6.2/lib/python3.6/test/test_bigmem.py +0 -1256
  1908. package/python3.6.2/lib/python3.6/test/test_binascii.py +0 -373
  1909. package/python3.6.2/lib/python3.6/test/test_binhex.py +0 -55
  1910. package/python3.6.2/lib/python3.6/test/test_binop.py +0 -441
  1911. package/python3.6.2/lib/python3.6/test/test_bisect.py +0 -328
  1912. package/python3.6.2/lib/python3.6/test/test_bool.py +0 -368
  1913. package/python3.6.2/lib/python3.6/test/test_buffer.py +0 -4396
  1914. package/python3.6.2/lib/python3.6/test/test_bufio.py +0 -73
  1915. package/python3.6.2/lib/python3.6/test/test_builtin.py +0 -1851
  1916. package/python3.6.2/lib/python3.6/test/test_bytes.py +0 -1759
  1917. package/python3.6.2/lib/python3.6/test/test_bz2.py +0 -1002
  1918. package/python3.6.2/lib/python3.6/test/test_calendar.py +0 -848
  1919. package/python3.6.2/lib/python3.6/test/test_call.py +0 -302
  1920. package/python3.6.2/lib/python3.6/test/test_capi.py +0 -753
  1921. package/python3.6.2/lib/python3.6/test/test_cgi.py +0 -539
  1922. package/python3.6.2/lib/python3.6/test/test_cgitb.py +0 -67
  1923. package/python3.6.2/lib/python3.6/test/test_charmapcodec.py +0 -53
  1924. package/python3.6.2/lib/python3.6/test/test_class.py +0 -599
  1925. package/python3.6.2/lib/python3.6/test/test_cmath.py +0 -643
  1926. package/python3.6.2/lib/python3.6/test/test_cmd.py +0 -243
  1927. package/python3.6.2/lib/python3.6/test/test_cmd_line.py +0 -494
  1928. package/python3.6.2/lib/python3.6/test/test_cmd_line_script.py +0 -648
  1929. package/python3.6.2/lib/python3.6/test/test_code.py +0 -367
  1930. package/python3.6.2/lib/python3.6/test/test_code_module.py +0 -154
  1931. package/python3.6.2/lib/python3.6/test/test_codeccallbacks.py +0 -1074
  1932. package/python3.6.2/lib/python3.6/test/test_codecencodings_cn.py +0 -96
  1933. package/python3.6.2/lib/python3.6/test/test_codecencodings_hk.py +0 -22
  1934. package/python3.6.2/lib/python3.6/test/test_codecencodings_iso2022.py +0 -41
  1935. package/python3.6.2/lib/python3.6/test/test_codecencodings_jp.py +0 -126
  1936. package/python3.6.2/lib/python3.6/test/test_codecencodings_kr.py +0 -69
  1937. package/python3.6.2/lib/python3.6/test/test_codecencodings_tw.py +0 -22
  1938. package/python3.6.2/lib/python3.6/test/test_codecmaps_cn.py +0 -26
  1939. package/python3.6.2/lib/python3.6/test/test_codecmaps_hk.py +0 -15
  1940. package/python3.6.2/lib/python3.6/test/test_codecmaps_jp.py +0 -60
  1941. package/python3.6.2/lib/python3.6/test/test_codecmaps_kr.py +0 -37
  1942. package/python3.6.2/lib/python3.6/test/test_codecmaps_tw.py +0 -27
  1943. package/python3.6.2/lib/python3.6/test/test_codecs.py +0 -3272
  1944. package/python3.6.2/lib/python3.6/test/test_codeop.py +0 -299
  1945. package/python3.6.2/lib/python3.6/test/test_collections.py +0 -1926
  1946. package/python3.6.2/lib/python3.6/test/test_colorsys.py +0 -100
  1947. package/python3.6.2/lib/python3.6/test/test_compare.py +0 -124
  1948. package/python3.6.2/lib/python3.6/test/test_compile.py +0 -720
  1949. package/python3.6.2/lib/python3.6/test/test_compileall.py +0 -547
  1950. package/python3.6.2/lib/python3.6/test/test_complex.py +0 -688
  1951. package/python3.6.2/lib/python3.6/test/test_concurrent_futures.py +0 -836
  1952. package/python3.6.2/lib/python3.6/test/test_configparser.py +0 -2096
  1953. package/python3.6.2/lib/python3.6/test/test_contains.py +0 -114
  1954. package/python3.6.2/lib/python3.6/test/test_contextlib.py +0 -990
  1955. package/python3.6.2/lib/python3.6/test/test_copy.py +0 -888
  1956. package/python3.6.2/lib/python3.6/test/test_copyreg.py +0 -126
  1957. package/python3.6.2/lib/python3.6/test/test_coroutines.py +0 -2151
  1958. package/python3.6.2/lib/python3.6/test/test_cprofile.py +0 -98
  1959. package/python3.6.2/lib/python3.6/test/test_crashers.py +0 -37
  1960. package/python3.6.2/lib/python3.6/test/test_crypt.py +0 -45
  1961. package/python3.6.2/lib/python3.6/test/test_csv.py +0 -1175
  1962. package/python3.6.2/lib/python3.6/test/test_ctypes.py +0 -9
  1963. package/python3.6.2/lib/python3.6/test/test_curses.py +0 -549
  1964. package/python3.6.2/lib/python3.6/test/test_datetime.py +0 -57
  1965. package/python3.6.2/lib/python3.6/test/test_dbm.py +0 -192
  1966. package/python3.6.2/lib/python3.6/test/test_dbm_dumb.py +0 -286
  1967. package/python3.6.2/lib/python3.6/test/test_dbm_gnu.py +0 -97
  1968. package/python3.6.2/lib/python3.6/test/test_dbm_ndbm.py +0 -52
  1969. package/python3.6.2/lib/python3.6/test/test_decimal.py +0 -5707
  1970. package/python3.6.2/lib/python3.6/test/test_decorators.py +0 -304
  1971. package/python3.6.2/lib/python3.6/test/test_defaultdict.py +0 -187
  1972. package/python3.6.2/lib/python3.6/test/test_deque.py +0 -1059
  1973. package/python3.6.2/lib/python3.6/test/test_descr.py +0 -5452
  1974. package/python3.6.2/lib/python3.6/test/test_descrtut.py +0 -486
  1975. package/python3.6.2/lib/python3.6/test/test_devpoll.py +0 -145
  1976. package/python3.6.2/lib/python3.6/test/test_dict.py +0 -1217
  1977. package/python3.6.2/lib/python3.6/test/test_dict_version.py +0 -186
  1978. package/python3.6.2/lib/python3.6/test/test_dictcomps.py +0 -86
  1979. package/python3.6.2/lib/python3.6/test/test_dictviews.py +0 -272
  1980. package/python3.6.2/lib/python3.6/test/test_difflib.py +0 -478
  1981. package/python3.6.2/lib/python3.6/test/test_difflib_expect.html +0 -526
  1982. package/python3.6.2/lib/python3.6/test/test_dis.py +0 -960
  1983. package/python3.6.2/lib/python3.6/test/test_distutils.py +0 -18
  1984. package/python3.6.2/lib/python3.6/test/test_doctest.py +0 -2962
  1985. package/python3.6.2/lib/python3.6/test/test_doctest.txt +0 -17
  1986. package/python3.6.2/lib/python3.6/test/test_doctest2.py +0 -123
  1987. package/python3.6.2/lib/python3.6/test/test_doctest2.txt +0 -14
  1988. package/python3.6.2/lib/python3.6/test/test_doctest3.txt +0 -5
  1989. package/python3.6.2/lib/python3.6/test/test_doctest4.txt +0 -11
  1990. package/python3.6.2/lib/python3.6/test/test_docxmlrpc.py +0 -198
  1991. package/python3.6.2/lib/python3.6/test/test_dtrace.py +0 -178
  1992. package/python3.6.2/lib/python3.6/test/test_dummy_thread.py +0 -256
  1993. package/python3.6.2/lib/python3.6/test/test_dummy_threading.py +0 -60
  1994. package/python3.6.2/lib/python3.6/test/test_dynamic.py +0 -138
  1995. package/python3.6.2/lib/python3.6/test/test_dynamicclassattribute.py +0 -300
  1996. package/python3.6.2/lib/python3.6/test/test_eintr.py +0 -22
  1997. package/python3.6.2/lib/python3.6/test/test_email/__init__.py +0 -166
  1998. package/python3.6.2/lib/python3.6/test/test_email/__main__.py +0 -4
  1999. package/python3.6.2/lib/python3.6/test/test_email/data/PyBanner048.gif +0 -0
  2000. package/python3.6.2/lib/python3.6/test/test_email/data/audiotest.au +0 -0
  2001. package/python3.6.2/lib/python3.6/test/test_email/data/msg_01.txt +0 -19
  2002. package/python3.6.2/lib/python3.6/test/test_email/data/msg_02.txt +0 -136
  2003. package/python3.6.2/lib/python3.6/test/test_email/data/msg_03.txt +0 -16
  2004. package/python3.6.2/lib/python3.6/test/test_email/data/msg_04.txt +0 -37
  2005. package/python3.6.2/lib/python3.6/test/test_email/data/msg_05.txt +0 -28
  2006. package/python3.6.2/lib/python3.6/test/test_email/data/msg_06.txt +0 -33
  2007. package/python3.6.2/lib/python3.6/test/test_email/data/msg_07.txt +0 -83
  2008. package/python3.6.2/lib/python3.6/test/test_email/data/msg_08.txt +0 -24
  2009. package/python3.6.2/lib/python3.6/test/test_email/data/msg_09.txt +0 -24
  2010. package/python3.6.2/lib/python3.6/test/test_email/data/msg_10.txt +0 -39
  2011. package/python3.6.2/lib/python3.6/test/test_email/data/msg_11.txt +0 -7
  2012. package/python3.6.2/lib/python3.6/test/test_email/data/msg_12.txt +0 -36
  2013. package/python3.6.2/lib/python3.6/test/test_email/data/msg_12a.txt +0 -38
  2014. package/python3.6.2/lib/python3.6/test/test_email/data/msg_13.txt +0 -94
  2015. package/python3.6.2/lib/python3.6/test/test_email/data/msg_14.txt +0 -23
  2016. package/python3.6.2/lib/python3.6/test/test_email/data/msg_15.txt +0 -52
  2017. package/python3.6.2/lib/python3.6/test/test_email/data/msg_16.txt +0 -123
  2018. package/python3.6.2/lib/python3.6/test/test_email/data/msg_17.txt +0 -12
  2019. package/python3.6.2/lib/python3.6/test/test_email/data/msg_18.txt +0 -6
  2020. package/python3.6.2/lib/python3.6/test/test_email/data/msg_19.txt +0 -43
  2021. package/python3.6.2/lib/python3.6/test/test_email/data/msg_20.txt +0 -22
  2022. package/python3.6.2/lib/python3.6/test/test_email/data/msg_21.txt +0 -20
  2023. package/python3.6.2/lib/python3.6/test/test_email/data/msg_22.txt +0 -46
  2024. package/python3.6.2/lib/python3.6/test/test_email/data/msg_23.txt +0 -8
  2025. package/python3.6.2/lib/python3.6/test/test_email/data/msg_24.txt +0 -10
  2026. package/python3.6.2/lib/python3.6/test/test_email/data/msg_25.txt +0 -117
  2027. package/python3.6.2/lib/python3.6/test/test_email/data/msg_26.txt +0 -46
  2028. package/python3.6.2/lib/python3.6/test/test_email/data/msg_27.txt +0 -15
  2029. package/python3.6.2/lib/python3.6/test/test_email/data/msg_28.txt +0 -25
  2030. package/python3.6.2/lib/python3.6/test/test_email/data/msg_29.txt +0 -22
  2031. package/python3.6.2/lib/python3.6/test/test_email/data/msg_30.txt +0 -23
  2032. package/python3.6.2/lib/python3.6/test/test_email/data/msg_31.txt +0 -15
  2033. package/python3.6.2/lib/python3.6/test/test_email/data/msg_32.txt +0 -14
  2034. package/python3.6.2/lib/python3.6/test/test_email/data/msg_33.txt +0 -29
  2035. package/python3.6.2/lib/python3.6/test/test_email/data/msg_34.txt +0 -19
  2036. package/python3.6.2/lib/python3.6/test/test_email/data/msg_35.txt +0 -4
  2037. package/python3.6.2/lib/python3.6/test/test_email/data/msg_36.txt +0 -40
  2038. package/python3.6.2/lib/python3.6/test/test_email/data/msg_37.txt +0 -22
  2039. package/python3.6.2/lib/python3.6/test/test_email/data/msg_38.txt +0 -101
  2040. package/python3.6.2/lib/python3.6/test/test_email/data/msg_39.txt +0 -83
  2041. package/python3.6.2/lib/python3.6/test/test_email/data/msg_40.txt +0 -10
  2042. package/python3.6.2/lib/python3.6/test/test_email/data/msg_41.txt +0 -8
  2043. package/python3.6.2/lib/python3.6/test/test_email/data/msg_42.txt +0 -20
  2044. package/python3.6.2/lib/python3.6/test/test_email/data/msg_43.txt +0 -217
  2045. package/python3.6.2/lib/python3.6/test/test_email/data/msg_44.txt +0 -33
  2046. package/python3.6.2/lib/python3.6/test/test_email/data/msg_45.txt +0 -33
  2047. package/python3.6.2/lib/python3.6/test/test_email/data/msg_46.txt +0 -23
  2048. package/python3.6.2/lib/python3.6/test/test_email/test__encoded_words.py +0 -192
  2049. package/python3.6.2/lib/python3.6/test/test_email/test__header_value_parser.py +0 -2723
  2050. package/python3.6.2/lib/python3.6/test/test_email/test_asian_codecs.py +0 -81
  2051. package/python3.6.2/lib/python3.6/test/test_email/test_contentmanager.py +0 -796
  2052. package/python3.6.2/lib/python3.6/test/test_email/test_defect_handling.py +0 -320
  2053. package/python3.6.2/lib/python3.6/test/test_email/test_email.py +0 -5402
  2054. package/python3.6.2/lib/python3.6/test/test_email/test_generator.py +0 -296
  2055. package/python3.6.2/lib/python3.6/test/test_email/test_headerregistry.py +0 -1653
  2056. package/python3.6.2/lib/python3.6/test/test_email/test_inversion.py +0 -70
  2057. package/python3.6.2/lib/python3.6/test/test_email/test_message.py +0 -803
  2058. package/python3.6.2/lib/python3.6/test/test_email/test_parser.py +0 -110
  2059. package/python3.6.2/lib/python3.6/test/test_email/test_pickleable.py +0 -76
  2060. package/python3.6.2/lib/python3.6/test/test_email/test_policy.py +0 -346
  2061. package/python3.6.2/lib/python3.6/test/test_email/test_utils.py +0 -163
  2062. package/python3.6.2/lib/python3.6/test/test_email/torture_test.py +0 -133
  2063. package/python3.6.2/lib/python3.6/test/test_ensurepip.py +0 -310
  2064. package/python3.6.2/lib/python3.6/test/test_enum.py +0 -2618
  2065. package/python3.6.2/lib/python3.6/test/test_enumerate.py +0 -269
  2066. package/python3.6.2/lib/python3.6/test/test_eof.py +0 -28
  2067. package/python3.6.2/lib/python3.6/test/test_epoll.py +0 -255
  2068. package/python3.6.2/lib/python3.6/test/test_errno.py +0 -35
  2069. package/python3.6.2/lib/python3.6/test/test_exception_hierarchy.py +0 -204
  2070. package/python3.6.2/lib/python3.6/test/test_exception_variations.py +0 -176
  2071. package/python3.6.2/lib/python3.6/test/test_exceptions.py +0 -1288
  2072. package/python3.6.2/lib/python3.6/test/test_extcall.py +0 -465
  2073. package/python3.6.2/lib/python3.6/test/test_faulthandler.py +0 -817
  2074. package/python3.6.2/lib/python3.6/test/test_fcntl.py +0 -152
  2075. package/python3.6.2/lib/python3.6/test/test_file.py +0 -329
  2076. package/python3.6.2/lib/python3.6/test/test_file_eintr.py +0 -252
  2077. package/python3.6.2/lib/python3.6/test/test_filecmp.py +0 -217
  2078. package/python3.6.2/lib/python3.6/test/test_fileinput.py +0 -1015
  2079. package/python3.6.2/lib/python3.6/test/test_fileio.py +0 -595
  2080. package/python3.6.2/lib/python3.6/test/test_finalization.py +0 -519
  2081. package/python3.6.2/lib/python3.6/test/test_float.py +0 -1422
  2082. package/python3.6.2/lib/python3.6/test/test_flufl.py +0 -22
  2083. package/python3.6.2/lib/python3.6/test/test_fnmatch.py +0 -128
  2084. package/python3.6.2/lib/python3.6/test/test_fork1.py +0 -112
  2085. package/python3.6.2/lib/python3.6/test/test_format.py +0 -494
  2086. package/python3.6.2/lib/python3.6/test/test_fractions.py +0 -635
  2087. package/python3.6.2/lib/python3.6/test/test_frame.py +0 -165
  2088. package/python3.6.2/lib/python3.6/test/test_fstring.py +0 -1038
  2089. package/python3.6.2/lib/python3.6/test/test_ftplib.py +0 -1091
  2090. package/python3.6.2/lib/python3.6/test/test_funcattrs.py +0 -377
  2091. package/python3.6.2/lib/python3.6/test/test_functools.py +0 -2083
  2092. package/python3.6.2/lib/python3.6/test/test_future.py +0 -108
  2093. package/python3.6.2/lib/python3.6/test/test_future3.py +0 -26
  2094. package/python3.6.2/lib/python3.6/test/test_future4.py +0 -6
  2095. package/python3.6.2/lib/python3.6/test/test_future5.py +0 -21
  2096. package/python3.6.2/lib/python3.6/test/test_gc.py +0 -1031
  2097. package/python3.6.2/lib/python3.6/test/test_gdb.py +0 -936
  2098. package/python3.6.2/lib/python3.6/test/test_generator_stop.py +0 -34
  2099. package/python3.6.2/lib/python3.6/test/test_generators.py +0 -2232
  2100. package/python3.6.2/lib/python3.6/test/test_genericpath.py +0 -537
  2101. package/python3.6.2/lib/python3.6/test/test_genexps.py +0 -285
  2102. package/python3.6.2/lib/python3.6/test/test_getargs2.py +0 -958
  2103. package/python3.6.2/lib/python3.6/test/test_getopt.py +0 -184
  2104. package/python3.6.2/lib/python3.6/test/test_getpass.py +0 -163
  2105. package/python3.6.2/lib/python3.6/test/test_gettext.py +0 -770
  2106. package/python3.6.2/lib/python3.6/test/test_glob.py +0 -317
  2107. package/python3.6.2/lib/python3.6/test/test_global.py +0 -61
  2108. package/python3.6.2/lib/python3.6/test/test_grammar.py +0 -1417
  2109. package/python3.6.2/lib/python3.6/test/test_grp.py +0 -108
  2110. package/python3.6.2/lib/python3.6/test/test_gzip.py +0 -672
  2111. package/python3.6.2/lib/python3.6/test/test_hash.py +0 -346
  2112. package/python3.6.2/lib/python3.6/test/test_hashlib.py +0 -954
  2113. package/python3.6.2/lib/python3.6/test/test_heapq.py +0 -427
  2114. package/python3.6.2/lib/python3.6/test/test_hmac.py +0 -496
  2115. package/python3.6.2/lib/python3.6/test/test_html.py +0 -103
  2116. package/python3.6.2/lib/python3.6/test/test_htmlparser.py +0 -778
  2117. package/python3.6.2/lib/python3.6/test/test_http_cookiejar.py +0 -1772
  2118. package/python3.6.2/lib/python3.6/test/test_http_cookies.py +0 -472
  2119. package/python3.6.2/lib/python3.6/test/test_httplib.py +0 -1903
  2120. package/python3.6.2/lib/python3.6/test/test_httpservers.py +0 -1060
  2121. package/python3.6.2/lib/python3.6/test/test_idle.py +0 -23
  2122. package/python3.6.2/lib/python3.6/test/test_imaplib.py +0 -998
  2123. package/python3.6.2/lib/python3.6/test/test_imghdr.py +0 -140
  2124. package/python3.6.2/lib/python3.6/test/test_imp.py +0 -416
  2125. package/python3.6.2/lib/python3.6/test/test_import/__init__.py +0 -1199
  2126. package/python3.6.2/lib/python3.6/test/test_import/__main__.py +0 -3
  2127. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/basic.py +0 -2
  2128. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/basic2.py +0 -1
  2129. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/indirect.py +0 -1
  2130. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/rebinding.py +0 -3
  2131. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/rebinding2.py +0 -3
  2132. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpackage.py +0 -2
  2133. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpkg/subpackage2.py +0 -2
  2134. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/subpkg/util.py +0 -2
  2135. package/python3.6.2/lib/python3.6/test/test_import/data/circular_imports/util.py +0 -2
  2136. package/python3.6.2/lib/python3.6/test/test_import/data/package/__init__.py +0 -2
  2137. package/python3.6.2/lib/python3.6/test/test_import/data/package/submodule.py +0 -0
  2138. package/python3.6.2/lib/python3.6/test/test_import/data/package2/submodule1.py +0 -3
  2139. package/python3.6.2/lib/python3.6/test/test_import/data/package2/submodule2.py +0 -0
  2140. package/python3.6.2/lib/python3.6/test/test_importlib/__init__.py +0 -5
  2141. package/python3.6.2/lib/python3.6/test/test_importlib/__main__.py +0 -4
  2142. package/python3.6.2/lib/python3.6/test/test_importlib/abc.py +0 -94
  2143. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/__init__.py +0 -5
  2144. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/__main__.py +0 -4
  2145. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/test_finder.py +0 -90
  2146. package/python3.6.2/lib/python3.6/test/test_importlib/builtin/test_loader.py +0 -108
  2147. package/python3.6.2/lib/python3.6/test/test_importlib/extension/__init__.py +0 -5
  2148. package/python3.6.2/lib/python3.6/test/test_importlib/extension/__main__.py +0 -4
  2149. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_case_sensitivity.py +0 -46
  2150. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_finder.py +0 -44
  2151. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_loader.py +0 -277
  2152. package/python3.6.2/lib/python3.6/test/test_importlib/extension/test_path_hook.py +0 -31
  2153. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/__init__.py +0 -5
  2154. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/__main__.py +0 -4
  2155. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/test_finder.py +0 -84
  2156. package/python3.6.2/lib/python3.6/test/test_importlib/frozen/test_loader.py +0 -225
  2157. package/python3.6.2/lib/python3.6/test/test_importlib/import_/__init__.py +0 -5
  2158. package/python3.6.2/lib/python3.6/test/test_importlib/import_/__main__.py +0 -4
  2159. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test___loader__.py +0 -75
  2160. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test___package__.py +0 -163
  2161. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_api.py +0 -119
  2162. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_caching.py +0 -93
  2163. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_fromlist.py +0 -175
  2164. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_meta_path.py +0 -125
  2165. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_packages.py +0 -110
  2166. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_path.py +0 -257
  2167. package/python3.6.2/lib/python3.6/test/test_importlib/import_/test_relative_imports.py +0 -232
  2168. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/both_portions/foo/one.py +0 -1
  2169. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/both_portions/foo/two.py +0 -1
  2170. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/missing_directory.zip +0 -0
  2171. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty +0 -0
  2172. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test.py +0 -1
  2173. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/nested_portion1.zip +0 -0
  2174. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/__init__.py +0 -0
  2175. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo/one.py +0 -1
  2176. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/portion1/foo/one.py +0 -1
  2177. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/portion2/foo/two.py +0 -1
  2178. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project1/parent/child/one.py +0 -1
  2179. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project2/parent/child/two.py +0 -1
  2180. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/project3/parent/child/three.py +0 -1
  2181. package/python3.6.2/lib/python3.6/test/test_importlib/namespace_pkgs/top_level_portion1.zip +0 -0
  2182. package/python3.6.2/lib/python3.6/test/test_importlib/source/__init__.py +0 -5
  2183. package/python3.6.2/lib/python3.6/test/test_importlib/source/__main__.py +0 -4
  2184. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_case_sensitivity.py +0 -85
  2185. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_file_loader.py +0 -602
  2186. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_finder.py +0 -236
  2187. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_path_hook.py +0 -41
  2188. package/python3.6.2/lib/python3.6/test/test_importlib/source/test_source_encoding.py +0 -175
  2189. package/python3.6.2/lib/python3.6/test/test_importlib/test_abc.py +0 -953
  2190. package/python3.6.2/lib/python3.6/test/test_importlib/test_api.py +0 -449
  2191. package/python3.6.2/lib/python3.6/test/test_importlib/test_lazy.py +0 -145
  2192. package/python3.6.2/lib/python3.6/test/test_importlib/test_locks.py +0 -175
  2193. package/python3.6.2/lib/python3.6/test/test_importlib/test_namespace_pkgs.py +0 -321
  2194. package/python3.6.2/lib/python3.6/test/test_importlib/test_spec.py +0 -819
  2195. package/python3.6.2/lib/python3.6/test/test_importlib/test_util.py +0 -805
  2196. package/python3.6.2/lib/python3.6/test/test_importlib/test_windows.py +0 -109
  2197. package/python3.6.2/lib/python3.6/test/test_importlib/util.py +0 -388
  2198. package/python3.6.2/lib/python3.6/test/test_index.py +0 -275
  2199. package/python3.6.2/lib/python3.6/test/test_inspect.py +0 -3725
  2200. package/python3.6.2/lib/python3.6/test/test_int.py +0 -518
  2201. package/python3.6.2/lib/python3.6/test/test_int_literal.py +0 -143
  2202. package/python3.6.2/lib/python3.6/test/test_io.py +0 -4054
  2203. package/python3.6.2/lib/python3.6/test/test_ioctl.py +0 -91
  2204. package/python3.6.2/lib/python3.6/test/test_ipaddress.py +0 -1972
  2205. package/python3.6.2/lib/python3.6/test/test_isinstance.py +0 -280
  2206. package/python3.6.2/lib/python3.6/test/test_iter.py +0 -1016
  2207. package/python3.6.2/lib/python3.6/test/test_iterlen.py +0 -228
  2208. package/python3.6.2/lib/python3.6/test/test_itertools.py +0 -2340
  2209. package/python3.6.2/lib/python3.6/test/test_json/__init__.py +0 -56
  2210. package/python3.6.2/lib/python3.6/test/test_json/__main__.py +0 -4
  2211. package/python3.6.2/lib/python3.6/test/test_json/test_decode.py +0 -97
  2212. package/python3.6.2/lib/python3.6/test/test_json/test_default.py +0 -12
  2213. package/python3.6.2/lib/python3.6/test/test_json/test_dump.py +0 -68
  2214. package/python3.6.2/lib/python3.6/test/test_json/test_encode_basestring_ascii.py +0 -48
  2215. package/python3.6.2/lib/python3.6/test/test_json/test_enum.py +0 -120
  2216. package/python3.6.2/lib/python3.6/test/test_json/test_fail.py +0 -216
  2217. package/python3.6.2/lib/python3.6/test/test_json/test_float.py +0 -33
  2218. package/python3.6.2/lib/python3.6/test/test_json/test_indent.py +0 -67
  2219. package/python3.6.2/lib/python3.6/test/test_json/test_pass1.py +0 -75
  2220. package/python3.6.2/lib/python3.6/test/test_json/test_pass2.py +0 -18
  2221. package/python3.6.2/lib/python3.6/test/test_json/test_pass3.py +0 -24
  2222. package/python3.6.2/lib/python3.6/test/test_json/test_recursion.py +0 -100
  2223. package/python3.6.2/lib/python3.6/test/test_json/test_scanstring.py +0 -141
  2224. package/python3.6.2/lib/python3.6/test/test_json/test_separators.py +0 -50
  2225. package/python3.6.2/lib/python3.6/test/test_json/test_speedups.py +0 -71
  2226. package/python3.6.2/lib/python3.6/test/test_json/test_tool.py +0 -107
  2227. package/python3.6.2/lib/python3.6/test/test_json/test_unicode.py +0 -98
  2228. package/python3.6.2/lib/python3.6/test/test_keyword.py +0 -138
  2229. package/python3.6.2/lib/python3.6/test/test_keywordonlyarg.py +0 -189
  2230. package/python3.6.2/lib/python3.6/test/test_kqueue.py +0 -263
  2231. package/python3.6.2/lib/python3.6/test/test_largefile.py +0 -180
  2232. package/python3.6.2/lib/python3.6/test/test_lib2to3.py +0 -5
  2233. package/python3.6.2/lib/python3.6/test/test_linecache.py +0 -242
  2234. package/python3.6.2/lib/python3.6/test/test_list.py +0 -155
  2235. package/python3.6.2/lib/python3.6/test/test_listcomps.py +0 -148
  2236. package/python3.6.2/lib/python3.6/test/test_locale.py +0 -587
  2237. package/python3.6.2/lib/python3.6/test/test_logging.py +0 -4442
  2238. package/python3.6.2/lib/python3.6/test/test_long.py +0 -1322
  2239. package/python3.6.2/lib/python3.6/test/test_longexp.py +0 -10
  2240. package/python3.6.2/lib/python3.6/test/test_lzma.py +0 -1764
  2241. package/python3.6.2/lib/python3.6/test/test_macpath.py +0 -149
  2242. package/python3.6.2/lib/python3.6/test/test_macurl2path.py +0 -31
  2243. package/python3.6.2/lib/python3.6/test/test_mailbox.py +0 -2288
  2244. package/python3.6.2/lib/python3.6/test/test_mailcap.py +0 -239
  2245. package/python3.6.2/lib/python3.6/test/test_marshal.py +0 -556
  2246. package/python3.6.2/lib/python3.6/test/test_math.py +0 -1422
  2247. package/python3.6.2/lib/python3.6/test/test_memoryio.py +0 -842
  2248. package/python3.6.2/lib/python3.6/test/test_memoryview.py +0 -537
  2249. package/python3.6.2/lib/python3.6/test/test_metaclass.py +0 -265
  2250. package/python3.6.2/lib/python3.6/test/test_mimetypes.py +0 -111
  2251. package/python3.6.2/lib/python3.6/test/test_minidom.py +0 -1574
  2252. package/python3.6.2/lib/python3.6/test/test_mmap.py +0 -803
  2253. package/python3.6.2/lib/python3.6/test/test_module.py +0 -244
  2254. package/python3.6.2/lib/python3.6/test/test_modulefinder.py +0 -337
  2255. package/python3.6.2/lib/python3.6/test/test_msilib.py +0 -99
  2256. package/python3.6.2/lib/python3.6/test/test_multibytecodec.py +0 -270
  2257. package/python3.6.2/lib/python3.6/test/test_multiprocessing_fork.py +0 -13
  2258. package/python3.6.2/lib/python3.6/test/test_multiprocessing_forkserver.py +0 -12
  2259. package/python3.6.2/lib/python3.6/test/test_multiprocessing_main_handling.py +0 -290
  2260. package/python3.6.2/lib/python3.6/test/test_multiprocessing_spawn.py +0 -12
  2261. package/python3.6.2/lib/python3.6/test/test_netrc.py +0 -133
  2262. package/python3.6.2/lib/python3.6/test/test_nis.py +0 -39
  2263. package/python3.6.2/lib/python3.6/test/test_nntplib.py +0 -1581
  2264. package/python3.6.2/lib/python3.6/test/test_normalization.py +0 -108
  2265. package/python3.6.2/lib/python3.6/test/test_ntpath.py +0 -539
  2266. package/python3.6.2/lib/python3.6/test/test_numeric_tower.py +0 -202
  2267. package/python3.6.2/lib/python3.6/test/test_opcodes.py +0 -135
  2268. package/python3.6.2/lib/python3.6/test/test_openpty.py +0 -21
  2269. package/python3.6.2/lib/python3.6/test/test_operator.py +0 -609
  2270. package/python3.6.2/lib/python3.6/test/test_optparse.py +0 -1664
  2271. package/python3.6.2/lib/python3.6/test/test_ordered_dict.py +0 -787
  2272. package/python3.6.2/lib/python3.6/test/test_os.py +0 -3548
  2273. package/python3.6.2/lib/python3.6/test/test_ossaudiodev.py +0 -202
  2274. package/python3.6.2/lib/python3.6/test/test_osx_env.py +0 -34
  2275. package/python3.6.2/lib/python3.6/test/test_parser.py +0 -905
  2276. package/python3.6.2/lib/python3.6/test/test_pathlib.py +0 -2252
  2277. package/python3.6.2/lib/python3.6/test/test_pdb.py +0 -1124
  2278. package/python3.6.2/lib/python3.6/test/test_peepholer.py +0 -325
  2279. package/python3.6.2/lib/python3.6/test/test_pickle.py +0 -514
  2280. package/python3.6.2/lib/python3.6/test/test_pickletools.py +0 -99
  2281. package/python3.6.2/lib/python3.6/test/test_pipes.py +0 -203
  2282. package/python3.6.2/lib/python3.6/test/test_pkg.py +0 -295
  2283. package/python3.6.2/lib/python3.6/test/test_pkgimport.py +0 -80
  2284. package/python3.6.2/lib/python3.6/test/test_pkgutil.py +0 -491
  2285. package/python3.6.2/lib/python3.6/test/test_platform.py +0 -370
  2286. package/python3.6.2/lib/python3.6/test/test_plistlib.py +0 -662
  2287. package/python3.6.2/lib/python3.6/test/test_poll.py +0 -238
  2288. package/python3.6.2/lib/python3.6/test/test_popen.py +0 -65
  2289. package/python3.6.2/lib/python3.6/test/test_poplib.py +0 -520
  2290. package/python3.6.2/lib/python3.6/test/test_posix.py +0 -1298
  2291. package/python3.6.2/lib/python3.6/test/test_posixpath.py +0 -680
  2292. package/python3.6.2/lib/python3.6/test/test_pow.py +0 -123
  2293. package/python3.6.2/lib/python3.6/test/test_pprint.py +0 -1012
  2294. package/python3.6.2/lib/python3.6/test/test_print.py +0 -193
  2295. package/python3.6.2/lib/python3.6/test/test_profile.py +0 -187
  2296. package/python3.6.2/lib/python3.6/test/test_property.py +0 -272
  2297. package/python3.6.2/lib/python3.6/test/test_pstats.py +0 -38
  2298. package/python3.6.2/lib/python3.6/test/test_pty.py +0 -316
  2299. package/python3.6.2/lib/python3.6/test/test_pulldom.py +0 -342
  2300. package/python3.6.2/lib/python3.6/test/test_pwd.py +0 -125
  2301. package/python3.6.2/lib/python3.6/test/test_py_compile.py +0 -127
  2302. package/python3.6.2/lib/python3.6/test/test_pyclbr.py +0 -176
  2303. package/python3.6.2/lib/python3.6/test/test_pydoc.py +0 -1107
  2304. package/python3.6.2/lib/python3.6/test/test_pyexpat.py +0 -733
  2305. package/python3.6.2/lib/python3.6/test/test_queue.py +0 -362
  2306. package/python3.6.2/lib/python3.6/test/test_quopri.py +0 -210
  2307. package/python3.6.2/lib/python3.6/test/test_raise.py +0 -419
  2308. package/python3.6.2/lib/python3.6/test/test_random.py +0 -939
  2309. package/python3.6.2/lib/python3.6/test/test_range.py +0 -693
  2310. package/python3.6.2/lib/python3.6/test/test_re.py +0 -2087
  2311. package/python3.6.2/lib/python3.6/test/test_readline.py +0 -309
  2312. package/python3.6.2/lib/python3.6/test/test_regrtest.py +0 -967
  2313. package/python3.6.2/lib/python3.6/test/test_repl.py +0 -62
  2314. package/python3.6.2/lib/python3.6/test/test_reprlib.py +0 -405
  2315. package/python3.6.2/lib/python3.6/test/test_resource.py +0 -180
  2316. package/python3.6.2/lib/python3.6/test/test_richcmp.py +0 -355
  2317. package/python3.6.2/lib/python3.6/test/test_rlcompleter.py +0 -141
  2318. package/python3.6.2/lib/python3.6/test/test_robotparser.py +0 -335
  2319. package/python3.6.2/lib/python3.6/test/test_runpy.py +0 -749
  2320. package/python3.6.2/lib/python3.6/test/test_sax.py +0 -1273
  2321. package/python3.6.2/lib/python3.6/test/test_sched.py +0 -204
  2322. package/python3.6.2/lib/python3.6/test/test_scope.py +0 -761
  2323. package/python3.6.2/lib/python3.6/test/test_script_helper.py +0 -110
  2324. package/python3.6.2/lib/python3.6/test/test_secrets.py +0 -124
  2325. package/python3.6.2/lib/python3.6/test/test_select.py +0 -82
  2326. package/python3.6.2/lib/python3.6/test/test_selectors.py +0 -526
  2327. package/python3.6.2/lib/python3.6/test/test_set.py +0 -1903
  2328. package/python3.6.2/lib/python3.6/test/test_setcomps.py +0 -151
  2329. package/python3.6.2/lib/python3.6/test/test_shelve.py +0 -228
  2330. package/python3.6.2/lib/python3.6/test/test_shlex.py +0 -318
  2331. package/python3.6.2/lib/python3.6/test/test_shutil.py +0 -1925
  2332. package/python3.6.2/lib/python3.6/test/test_signal.py +0 -1093
  2333. package/python3.6.2/lib/python3.6/test/test_site.py +0 -595
  2334. package/python3.6.2/lib/python3.6/test/test_slice.py +0 -255
  2335. package/python3.6.2/lib/python3.6/test/test_smtpd.py +0 -1013
  2336. package/python3.6.2/lib/python3.6/test/test_smtplib.py +0 -1292
  2337. package/python3.6.2/lib/python3.6/test/test_smtpnet.py +0 -83
  2338. package/python3.6.2/lib/python3.6/test/test_sndhdr.py +0 -37
  2339. package/python3.6.2/lib/python3.6/test/test_socket.py +0 -5648
  2340. package/python3.6.2/lib/python3.6/test/test_socketserver.py +0 -505
  2341. package/python3.6.2/lib/python3.6/test/test_sort.py +0 -265
  2342. package/python3.6.2/lib/python3.6/test/test_source_encoding.py +0 -225
  2343. package/python3.6.2/lib/python3.6/test/test_spwd.py +0 -75
  2344. package/python3.6.2/lib/python3.6/test/test_sqlite.py +0 -24
  2345. package/python3.6.2/lib/python3.6/test/test_ssl.py +0 -3663
  2346. package/python3.6.2/lib/python3.6/test/test_startfile.py +0 -34
  2347. package/python3.6.2/lib/python3.6/test/test_stat.py +0 -234
  2348. package/python3.6.2/lib/python3.6/test/test_statistics.py +0 -1992
  2349. package/python3.6.2/lib/python3.6/test/test_strftime.py +0 -206
  2350. package/python3.6.2/lib/python3.6/test/test_string.py +0 -439
  2351. package/python3.6.2/lib/python3.6/test/test_string_literals.py +0 -249
  2352. package/python3.6.2/lib/python3.6/test/test_stringprep.py +0 -92
  2353. package/python3.6.2/lib/python3.6/test/test_strptime.py +0 -673
  2354. package/python3.6.2/lib/python3.6/test/test_strtod.py +0 -433
  2355. package/python3.6.2/lib/python3.6/test/test_struct.py +0 -756
  2356. package/python3.6.2/lib/python3.6/test/test_structmembers.py +0 -144
  2357. package/python3.6.2/lib/python3.6/test/test_structseq.py +0 -126
  2358. package/python3.6.2/lib/python3.6/test/test_subclassinit.py +0 -284
  2359. package/python3.6.2/lib/python3.6/test/test_subprocess.py +0 -3005
  2360. package/python3.6.2/lib/python3.6/test/test_sunau.py +0 -121
  2361. package/python3.6.2/lib/python3.6/test/test_sundry.py +0 -57
  2362. package/python3.6.2/lib/python3.6/test/test_super.py +0 -347
  2363. package/python3.6.2/lib/python3.6/test/test_support.py +0 -459
  2364. package/python3.6.2/lib/python3.6/test/test_symbol.py +0 -54
  2365. package/python3.6.2/lib/python3.6/test/test_symtable.py +0 -193
  2366. package/python3.6.2/lib/python3.6/test/test_syntax.py +0 -618
  2367. package/python3.6.2/lib/python3.6/test/test_sys.py +0 -1270
  2368. package/python3.6.2/lib/python3.6/test/test_sys_setprofile.py +0 -376
  2369. package/python3.6.2/lib/python3.6/test/test_sys_settrace.py +0 -854
  2370. package/python3.6.2/lib/python3.6/test/test_sysconfig.py +0 -445
  2371. package/python3.6.2/lib/python3.6/test/test_syslog.py +0 -40
  2372. package/python3.6.2/lib/python3.6/test/test_tarfile.py +0 -2635
  2373. package/python3.6.2/lib/python3.6/test/test_tcl.py +0 -715
  2374. package/python3.6.2/lib/python3.6/test/test_telnetlib.py +0 -401
  2375. package/python3.6.2/lib/python3.6/test/test_tempfile.py +0 -1458
  2376. package/python3.6.2/lib/python3.6/test/test_textwrap.py +0 -981
  2377. package/python3.6.2/lib/python3.6/test/test_thread.py +0 -269
  2378. package/python3.6.2/lib/python3.6/test/test_threaded_import.py +0 -254
  2379. package/python3.6.2/lib/python3.6/test/test_threadedtempfile.py +0 -62
  2380. package/python3.6.2/lib/python3.6/test/test_threading.py +0 -1170
  2381. package/python3.6.2/lib/python3.6/test/test_threading_local.py +0 -220
  2382. package/python3.6.2/lib/python3.6/test/test_threadsignals.py +0 -227
  2383. package/python3.6.2/lib/python3.6/test/test_time.py +0 -1000
  2384. package/python3.6.2/lib/python3.6/test/test_timeit.py +0 -381
  2385. package/python3.6.2/lib/python3.6/test/test_timeout.py +0 -303
  2386. package/python3.6.2/lib/python3.6/test/test_tix.py +0 -32
  2387. package/python3.6.2/lib/python3.6/test/test_tk.py +0 -15
  2388. package/python3.6.2/lib/python3.6/test/test_tokenize.py +0 -1590
  2389. package/python3.6.2/lib/python3.6/test/test_tools/__init__.py +0 -24
  2390. package/python3.6.2/lib/python3.6/test/test_tools/__main__.py +0 -4
  2391. package/python3.6.2/lib/python3.6/test/test_tools/test_fixcid.py +0 -92
  2392. package/python3.6.2/lib/python3.6/test/test_tools/test_gprof2html.py +0 -35
  2393. package/python3.6.2/lib/python3.6/test/test_tools/test_i18n.py +0 -72
  2394. package/python3.6.2/lib/python3.6/test/test_tools/test_md5sum.py +0 -76
  2395. package/python3.6.2/lib/python3.6/test/test_tools/test_pdeps.py +0 -32
  2396. package/python3.6.2/lib/python3.6/test/test_tools/test_pindent.py +0 -339
  2397. package/python3.6.2/lib/python3.6/test/test_tools/test_reindent.py +0 -35
  2398. package/python3.6.2/lib/python3.6/test/test_tools/test_sundry.py +0 -53
  2399. package/python3.6.2/lib/python3.6/test/test_tools/test_unparse.py +0 -313
  2400. package/python3.6.2/lib/python3.6/test/test_trace.py +0 -391
  2401. package/python3.6.2/lib/python3.6/test/test_traceback.py +0 -1111
  2402. package/python3.6.2/lib/python3.6/test/test_tracemalloc.py +0 -994
  2403. package/python3.6.2/lib/python3.6/test/test_ttk_guionly.py +0 -34
  2404. package/python3.6.2/lib/python3.6/test/test_ttk_textonly.py +0 -13
  2405. package/python3.6.2/lib/python3.6/test/test_tuple.py +0 -221
  2406. package/python3.6.2/lib/python3.6/test/test_turtle.py +0 -436
  2407. package/python3.6.2/lib/python3.6/test/test_typechecks.py +0 -71
  2408. package/python3.6.2/lib/python3.6/test/test_types.py +0 -1550
  2409. package/python3.6.2/lib/python3.6/test/test_typing.py +0 -2577
  2410. package/python3.6.2/lib/python3.6/test/test_ucn.py +0 -237
  2411. package/python3.6.2/lib/python3.6/test/test_unary.py +0 -53
  2412. package/python3.6.2/lib/python3.6/test/test_unicode.py +0 -2894
  2413. package/python3.6.2/lib/python3.6/test/test_unicode_file.py +0 -140
  2414. package/python3.6.2/lib/python3.6/test/test_unicode_file_functions.py +0 -195
  2415. package/python3.6.2/lib/python3.6/test/test_unicode_identifiers.py +0 -31
  2416. package/python3.6.2/lib/python3.6/test/test_unicodedata.py +0 -316
  2417. package/python3.6.2/lib/python3.6/test/test_unittest.py +0 -16
  2418. package/python3.6.2/lib/python3.6/test/test_univnewlines.py +0 -123
  2419. package/python3.6.2/lib/python3.6/test/test_unpack.py +0 -151
  2420. package/python3.6.2/lib/python3.6/test/test_unpack_ex.py +0 -365
  2421. package/python3.6.2/lib/python3.6/test/test_urllib.py +0 -1572
  2422. package/python3.6.2/lib/python3.6/test/test_urllib2.py +0 -1930
  2423. package/python3.6.2/lib/python3.6/test/test_urllib2_localnet.py +0 -679
  2424. package/python3.6.2/lib/python3.6/test/test_urllib2net.py +0 -329
  2425. package/python3.6.2/lib/python3.6/test/test_urllib_response.py +0 -59
  2426. package/python3.6.2/lib/python3.6/test/test_urllibnet.py +0 -218
  2427. package/python3.6.2/lib/python3.6/test/test_urlparse.py +0 -1122
  2428. package/python3.6.2/lib/python3.6/test/test_userdict.py +0 -220
  2429. package/python3.6.2/lib/python3.6/test/test_userlist.py +0 -63
  2430. package/python3.6.2/lib/python3.6/test/test_userstring.py +0 -44
  2431. package/python3.6.2/lib/python3.6/test/test_utf8source.py +0 -43
  2432. package/python3.6.2/lib/python3.6/test/test_uu.py +0 -260
  2433. package/python3.6.2/lib/python3.6/test/test_uuid.py +0 -511
  2434. package/python3.6.2/lib/python3.6/test/test_venv.py +0 -433
  2435. package/python3.6.2/lib/python3.6/test/test_wait3.py +0 -38
  2436. package/python3.6.2/lib/python3.6/test/test_wait4.py +0 -39
  2437. package/python3.6.2/lib/python3.6/test/test_warnings/__init__.py +0 -1216
  2438. package/python3.6.2/lib/python3.6/test/test_warnings/__main__.py +0 -3
  2439. package/python3.6.2/lib/python3.6/test/test_warnings/data/import_warning.py +0 -3
  2440. package/python3.6.2/lib/python3.6/test/test_warnings/data/stacklevel.py +0 -9
  2441. package/python3.6.2/lib/python3.6/test/test_wave.py +0 -113
  2442. package/python3.6.2/lib/python3.6/test/test_weakref.py +0 -1952
  2443. package/python3.6.2/lib/python3.6/test/test_weakset.py +0 -439
  2444. package/python3.6.2/lib/python3.6/test/test_webbrowser.py +0 -217
  2445. package/python3.6.2/lib/python3.6/test/test_winconsoleio.py +0 -191
  2446. package/python3.6.2/lib/python3.6/test/test_winreg.py +0 -498
  2447. package/python3.6.2/lib/python3.6/test/test_winsound.py +0 -150
  2448. package/python3.6.2/lib/python3.6/test/test_with.py +0 -746
  2449. package/python3.6.2/lib/python3.6/test/test_wsgiref.py +0 -785
  2450. package/python3.6.2/lib/python3.6/test/test_xdrlib.py +0 -77
  2451. package/python3.6.2/lib/python3.6/test/test_xml_dom_minicompat.py +0 -138
  2452. package/python3.6.2/lib/python3.6/test/test_xml_etree.py +0 -3166
  2453. package/python3.6.2/lib/python3.6/test/test_xml_etree_c.py +0 -188
  2454. package/python3.6.2/lib/python3.6/test/test_xmlrpc.py +0 -1415
  2455. package/python3.6.2/lib/python3.6/test/test_xmlrpc_net.py +0 -32
  2456. package/python3.6.2/lib/python3.6/test/test_yield_from.py +0 -1052
  2457. package/python3.6.2/lib/python3.6/test/test_zipapp.py +0 -349
  2458. package/python3.6.2/lib/python3.6/test/test_zipfile.py +0 -2241
  2459. package/python3.6.2/lib/python3.6/test/test_zipfile64.py +0 -155
  2460. package/python3.6.2/lib/python3.6/test/test_zipimport.py +0 -759
  2461. package/python3.6.2/lib/python3.6/test/test_zipimport_support.py +0 -244
  2462. package/python3.6.2/lib/python3.6/test/test_zlib.py +0 -898
  2463. package/python3.6.2/lib/python3.6/test/testcodec.py +0 -48
  2464. package/python3.6.2/lib/python3.6/test/testtar.tar +0 -0
  2465. package/python3.6.2/lib/python3.6/test/tf_inherit_check.py +0 -27
  2466. package/python3.6.2/lib/python3.6/test/threaded_import_hangers.py +0 -45
  2467. package/python3.6.2/lib/python3.6/test/time_hashlib.py +0 -88
  2468. package/python3.6.2/lib/python3.6/test/tokenize_tests-latin1-coding-cookie-and-utf8-bom-sig.txt +0 -13
  2469. package/python3.6.2/lib/python3.6/test/tokenize_tests-no-coding-cookie-and-utf8-bom-sig-only.txt +0 -11
  2470. package/python3.6.2/lib/python3.6/test/tokenize_tests-utf8-coding-cookie-and-no-utf8-bom-sig.txt +0 -13
  2471. package/python3.6.2/lib/python3.6/test/tokenize_tests-utf8-coding-cookie-and-utf8-bom-sig.txt +0 -12
  2472. package/python3.6.2/lib/python3.6/test/tokenize_tests.txt +0 -189
  2473. package/python3.6.2/lib/python3.6/test/tracedmodules/__init__.py +0 -4
  2474. package/python3.6.2/lib/python3.6/test/tracedmodules/testmod.py +0 -9
  2475. package/python3.6.2/lib/python3.6/test/win_console_handler.py +0 -49
  2476. package/python3.6.2/lib/python3.6/test/wrongcert.pem +0 -32
  2477. package/python3.6.2/lib/python3.6/test/xmltestdata/expat224_utf8_bug.xml +0 -2
  2478. package/python3.6.2/lib/python3.6/test/xmltestdata/simple-ns.xml +0 -7
  2479. package/python3.6.2/lib/python3.6/test/xmltestdata/simple.xml +0 -6
  2480. package/python3.6.2/lib/python3.6/test/xmltestdata/test.xml +0 -115
  2481. package/python3.6.2/lib/python3.6/test/xmltestdata/test.xml.out +0 -115
  2482. package/python3.6.2/lib/python3.6/test/xmltests.py +0 -21
  2483. package/python3.6.2/lib/python3.6/test/zip_cp437_header.zip +0 -0
  2484. package/python3.6.2/lib/python3.6/test/zipdir.zip +0 -0
  2485. package/python3.6.2/lib/python3.6/textwrap.py +0 -488
  2486. package/python3.6.2/lib/python3.6/this.py +0 -28
  2487. package/python3.6.2/lib/python3.6/threading.py +0 -1357
  2488. package/python3.6.2/lib/python3.6/timeit.py +0 -362
  2489. package/python3.6.2/lib/python3.6/tkinter/__init__.py +0 -4002
  2490. package/python3.6.2/lib/python3.6/tkinter/__main__.py +0 -7
  2491. package/python3.6.2/lib/python3.6/tkinter/colorchooser.py +0 -72
  2492. package/python3.6.2/lib/python3.6/tkinter/commondialog.py +0 -55
  2493. package/python3.6.2/lib/python3.6/tkinter/constants.py +0 -110
  2494. package/python3.6.2/lib/python3.6/tkinter/dialog.py +0 -46
  2495. package/python3.6.2/lib/python3.6/tkinter/dnd.py +0 -321
  2496. package/python3.6.2/lib/python3.6/tkinter/filedialog.py +0 -479
  2497. package/python3.6.2/lib/python3.6/tkinter/font.py +0 -232
  2498. package/python3.6.2/lib/python3.6/tkinter/messagebox.py +0 -134
  2499. package/python3.6.2/lib/python3.6/tkinter/scrolledtext.py +0 -54
  2500. package/python3.6.2/lib/python3.6/tkinter/simpledialog.py +0 -423
  2501. package/python3.6.2/lib/python3.6/tkinter/test/README +0 -14
  2502. package/python3.6.2/lib/python3.6/tkinter/test/__init__.py +0 -0
  2503. package/python3.6.2/lib/python3.6/tkinter/test/runtktests.py +0 -69
  2504. package/python3.6.2/lib/python3.6/tkinter/test/support.py +0 -105
  2505. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/__init__.py +0 -0
  2506. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_font.py +0 -96
  2507. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_geometry_managers.py +0 -906
  2508. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_images.py +0 -327
  2509. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_loadtk.py +0 -46
  2510. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_misc.py +0 -55
  2511. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_text.py +0 -47
  2512. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_variables.py +0 -310
  2513. package/python3.6.2/lib/python3.6/tkinter/test/test_tkinter/test_widgets.py +0 -1204
  2514. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/__init__.py +0 -0
  2515. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_extensions.py +0 -323
  2516. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_functions.py +0 -461
  2517. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_style.py +0 -92
  2518. package/python3.6.2/lib/python3.6/tkinter/test/test_ttk/test_widgets.py +0 -1707
  2519. package/python3.6.2/lib/python3.6/tkinter/test/widget_tests.py +0 -548
  2520. package/python3.6.2/lib/python3.6/tkinter/tix.py +0 -1946
  2521. package/python3.6.2/lib/python3.6/tkinter/ttk.py +0 -1655
  2522. package/python3.6.2/lib/python3.6/token.py +0 -143
  2523. package/python3.6.2/lib/python3.6/tokenize.py +0 -793
  2524. package/python3.6.2/lib/python3.6/trace.py +0 -742
  2525. package/python3.6.2/lib/python3.6/traceback.py +0 -600
  2526. package/python3.6.2/lib/python3.6/tracemalloc.py +0 -524
  2527. package/python3.6.2/lib/python3.6/tty.py +0 -36
  2528. package/python3.6.2/lib/python3.6/turtle.py +0 -4139
  2529. package/python3.6.2/lib/python3.6/turtledemo/__init__.py +0 -14
  2530. package/python3.6.2/lib/python3.6/turtledemo/__main__.py +0 -386
  2531. package/python3.6.2/lib/python3.6/turtledemo/bytedesign.py +0 -161
  2532. package/python3.6.2/lib/python3.6/turtledemo/chaos.py +0 -59
  2533. package/python3.6.2/lib/python3.6/turtledemo/clock.py +0 -132
  2534. package/python3.6.2/lib/python3.6/turtledemo/colormixer.py +0 -58
  2535. package/python3.6.2/lib/python3.6/turtledemo/forest.py +0 -108
  2536. package/python3.6.2/lib/python3.6/turtledemo/fractalcurves.py +0 -138
  2537. package/python3.6.2/lib/python3.6/turtledemo/lindenmayer.py +0 -119
  2538. package/python3.6.2/lib/python3.6/turtledemo/minimal_hanoi.py +0 -79
  2539. package/python3.6.2/lib/python3.6/turtledemo/nim.py +0 -226
  2540. package/python3.6.2/lib/python3.6/turtledemo/paint.py +0 -54
  2541. package/python3.6.2/lib/python3.6/turtledemo/peace.py +0 -61
  2542. package/python3.6.2/lib/python3.6/turtledemo/penrose.py +0 -181
  2543. package/python3.6.2/lib/python3.6/turtledemo/planet_and_moon.py +0 -111
  2544. package/python3.6.2/lib/python3.6/turtledemo/round_dance.py +0 -86
  2545. package/python3.6.2/lib/python3.6/turtledemo/sorting_animate.py +0 -204
  2546. package/python3.6.2/lib/python3.6/turtledemo/tree.py +0 -63
  2547. package/python3.6.2/lib/python3.6/turtledemo/turtle.cfg +0 -10
  2548. package/python3.6.2/lib/python3.6/turtledemo/two_canvases.py +0 -54
  2549. package/python3.6.2/lib/python3.6/turtledemo/wikipedia.py +0 -65
  2550. package/python3.6.2/lib/python3.6/turtledemo/yinyang.py +0 -49
  2551. package/python3.6.2/lib/python3.6/types.py +0 -266
  2552. package/python3.6.2/lib/python3.6/typing.py +0 -2403
  2553. package/python3.6.2/lib/python3.6/unittest/__init__.py +0 -78
  2554. package/python3.6.2/lib/python3.6/unittest/__main__.py +0 -18
  2555. package/python3.6.2/lib/python3.6/unittest/case.py +0 -1429
  2556. package/python3.6.2/lib/python3.6/unittest/loader.py +0 -508
  2557. package/python3.6.2/lib/python3.6/unittest/main.py +0 -260
  2558. package/python3.6.2/lib/python3.6/unittest/mock.py +0 -2407
  2559. package/python3.6.2/lib/python3.6/unittest/result.py +0 -216
  2560. package/python3.6.2/lib/python3.6/unittest/runner.py +0 -221
  2561. package/python3.6.2/lib/python3.6/unittest/signals.py +0 -71
  2562. package/python3.6.2/lib/python3.6/unittest/suite.py +0 -321
  2563. package/python3.6.2/lib/python3.6/unittest/test/__init__.py +0 -22
  2564. package/python3.6.2/lib/python3.6/unittest/test/__main__.py +0 -18
  2565. package/python3.6.2/lib/python3.6/unittest/test/_test_warnings.py +0 -73
  2566. package/python3.6.2/lib/python3.6/unittest/test/dummy.py +0 -1
  2567. package/python3.6.2/lib/python3.6/unittest/test/support.py +0 -138
  2568. package/python3.6.2/lib/python3.6/unittest/test/test_assertions.py +0 -411
  2569. package/python3.6.2/lib/python3.6/unittest/test/test_break.py +0 -291
  2570. package/python3.6.2/lib/python3.6/unittest/test/test_case.py +0 -1833
  2571. package/python3.6.2/lib/python3.6/unittest/test/test_discovery.py +0 -872
  2572. package/python3.6.2/lib/python3.6/unittest/test/test_functiontestcase.py +0 -148
  2573. package/python3.6.2/lib/python3.6/unittest/test/test_loader.py +0 -1529
  2574. package/python3.6.2/lib/python3.6/unittest/test/test_program.py +0 -414
  2575. package/python3.6.2/lib/python3.6/unittest/test/test_result.py +0 -695
  2576. package/python3.6.2/lib/python3.6/unittest/test/test_runner.py +0 -353
  2577. package/python3.6.2/lib/python3.6/unittest/test/test_setups.py +0 -507
  2578. package/python3.6.2/lib/python3.6/unittest/test/test_skipping.py +0 -260
  2579. package/python3.6.2/lib/python3.6/unittest/test/test_suite.py +0 -447
  2580. package/python3.6.2/lib/python3.6/unittest/test/testmock/__init__.py +0 -17
  2581. package/python3.6.2/lib/python3.6/unittest/test/testmock/__main__.py +0 -18
  2582. package/python3.6.2/lib/python3.6/unittest/test/testmock/support.py +0 -21
  2583. package/python3.6.2/lib/python3.6/unittest/test/testmock/testcallable.py +0 -151
  2584. package/python3.6.2/lib/python3.6/unittest/test/testmock/testhelpers.py +0 -946
  2585. package/python3.6.2/lib/python3.6/unittest/test/testmock/testmagicmethods.py +0 -468
  2586. package/python3.6.2/lib/python3.6/unittest/test/testmock/testmock.py +0 -1569
  2587. package/python3.6.2/lib/python3.6/unittest/test/testmock/testpatch.py +0 -1853
  2588. package/python3.6.2/lib/python3.6/unittest/test/testmock/testsentinel.py +0 -28
  2589. package/python3.6.2/lib/python3.6/unittest/test/testmock/testwith.py +0 -301
  2590. package/python3.6.2/lib/python3.6/unittest/util.py +0 -177
  2591. package/python3.6.2/lib/python3.6/urllib/__init__.py +0 -0
  2592. package/python3.6.2/lib/python3.6/urllib/error.py +0 -77
  2593. package/python3.6.2/lib/python3.6/urllib/parse.py +0 -1021
  2594. package/python3.6.2/lib/python3.6/urllib/request.py +0 -2739
  2595. package/python3.6.2/lib/python3.6/urllib/response.py +0 -80
  2596. package/python3.6.2/lib/python3.6/urllib/robotparser.py +0 -250
  2597. package/python3.6.2/lib/python3.6/uu.py +0 -199
  2598. package/python3.6.2/lib/python3.6/uuid.py +0 -629
  2599. package/python3.6.2/lib/python3.6/venv/__init__.py +0 -425
  2600. package/python3.6.2/lib/python3.6/venv/__main__.py +0 -10
  2601. package/python3.6.2/lib/python3.6/venv/scripts/nt/Activate.ps1 +0 -51
  2602. package/python3.6.2/lib/python3.6/venv/scripts/nt/activate.bat +0 -32
  2603. package/python3.6.2/lib/python3.6/venv/scripts/nt/deactivate.bat +0 -21
  2604. package/python3.6.2/lib/python3.6/warnings.py +0 -526
  2605. package/python3.6.2/lib/python3.6/wave.py +0 -505
  2606. package/python3.6.2/lib/python3.6/weakref.py +0 -632
  2607. package/python3.6.2/lib/python3.6/webbrowser.py +0 -664
  2608. package/python3.6.2/lib/python3.6/wsgiref/__init__.py +0 -23
  2609. package/python3.6.2/lib/python3.6/wsgiref/handlers.py +0 -557
  2610. package/python3.6.2/lib/python3.6/wsgiref/headers.py +0 -184
  2611. package/python3.6.2/lib/python3.6/wsgiref/simple_server.py +0 -164
  2612. package/python3.6.2/lib/python3.6/wsgiref/util.py +0 -165
  2613. package/python3.6.2/lib/python3.6/wsgiref/validate.py +0 -443
  2614. package/python3.6.2/lib/python3.6/xdrlib.py +0 -241
  2615. package/python3.6.2/lib/python3.6/xml/__init__.py +0 -20
  2616. package/python3.6.2/lib/python3.6/xml/dom/NodeFilter.py +0 -27
  2617. package/python3.6.2/lib/python3.6/xml/dom/__init__.py +0 -140
  2618. package/python3.6.2/lib/python3.6/xml/dom/domreg.py +0 -97
  2619. package/python3.6.2/lib/python3.6/xml/dom/expatbuilder.py +0 -965
  2620. package/python3.6.2/lib/python3.6/xml/dom/minicompat.py +0 -109
  2621. package/python3.6.2/lib/python3.6/xml/dom/minidom.py +0 -1981
  2622. package/python3.6.2/lib/python3.6/xml/dom/pulldom.py +0 -342
  2623. package/python3.6.2/lib/python3.6/xml/dom/xmlbuilder.py +0 -410
  2624. package/python3.6.2/lib/python3.6/xml/etree/ElementInclude.py +0 -143
  2625. package/python3.6.2/lib/python3.6/xml/etree/ElementPath.py +0 -314
  2626. package/python3.6.2/lib/python3.6/xml/etree/ElementTree.py +0 -1656
  2627. package/python3.6.2/lib/python3.6/xml/etree/__init__.py +0 -33
  2628. package/python3.6.2/lib/python3.6/xml/etree/cElementTree.py +0 -3
  2629. package/python3.6.2/lib/python3.6/xml/parsers/__init__.py +0 -8
  2630. package/python3.6.2/lib/python3.6/xml/parsers/expat.py +0 -8
  2631. package/python3.6.2/lib/python3.6/xml/sax/__init__.py +0 -107
  2632. package/python3.6.2/lib/python3.6/xml/sax/_exceptions.py +0 -131
  2633. package/python3.6.2/lib/python3.6/xml/sax/expatreader.py +0 -446
  2634. package/python3.6.2/lib/python3.6/xml/sax/handler.py +0 -342
  2635. package/python3.6.2/lib/python3.6/xml/sax/saxutils.py +0 -368
  2636. package/python3.6.2/lib/python3.6/xml/sax/xmlreader.py +0 -380
  2637. package/python3.6.2/lib/python3.6/xmlrpc/__init__.py +0 -1
  2638. package/python3.6.2/lib/python3.6/xmlrpc/client.py +0 -1518
  2639. package/python3.6.2/lib/python3.6/xmlrpc/server.py +0 -1002
  2640. package/python3.6.2/lib/python3.6/zipapp.py +0 -201
  2641. package/python3.6.2/lib/python3.6/zipfile.py +0 -2036
@@ -1,3005 +0,0 @@
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()