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,3548 +0,0 @@
1
- # As a test suite for the os module, this is woefully inadequate, but this
2
- # does add tests for a few functions which have been determined to be more
3
- # portable than they had been thought to be.
4
-
5
- import asynchat
6
- import asyncore
7
- import codecs
8
- import contextlib
9
- import decimal
10
- import errno
11
- import fractions
12
- import getpass
13
- import itertools
14
- import locale
15
- import mmap
16
- import os
17
- import pickle
18
- import re
19
- import shutil
20
- import signal
21
- import socket
22
- import stat
23
- import subprocess
24
- import sys
25
- import sysconfig
26
- import time
27
- import unittest
28
- import uuid
29
- import warnings
30
- from test import support
31
- try:
32
- import threading
33
- except ImportError:
34
- threading = None
35
- try:
36
- import resource
37
- except ImportError:
38
- resource = None
39
- try:
40
- import fcntl
41
- except ImportError:
42
- fcntl = None
43
- try:
44
- import _winapi
45
- except ImportError:
46
- _winapi = None
47
- try:
48
- import grp
49
- groups = [g.gr_gid for g in grp.getgrall() if getpass.getuser() in g.gr_mem]
50
- if hasattr(os, 'getgid'):
51
- process_gid = os.getgid()
52
- if process_gid not in groups:
53
- groups.append(process_gid)
54
- except ImportError:
55
- groups = []
56
- try:
57
- import pwd
58
- all_users = [u.pw_uid for u in pwd.getpwall()]
59
- except (ImportError, AttributeError):
60
- all_users = []
61
- try:
62
- from _testcapi import INT_MAX, PY_SSIZE_T_MAX
63
- except ImportError:
64
- INT_MAX = PY_SSIZE_T_MAX = sys.maxsize
65
-
66
- from test.support.script_helper import assert_python_ok
67
- from test.support import unix_shell
68
-
69
-
70
- root_in_posix = False
71
- if hasattr(os, 'geteuid'):
72
- root_in_posix = (os.geteuid() == 0)
73
-
74
- # Detect whether we're on a Linux system that uses the (now outdated
75
- # and unmaintained) linuxthreads threading library. There's an issue
76
- # when combining linuxthreads with a failed execv call: see
77
- # http://bugs.python.org/issue4970.
78
- if hasattr(sys, 'thread_info') and sys.thread_info.version:
79
- USING_LINUXTHREADS = sys.thread_info.version.startswith("linuxthreads")
80
- else:
81
- USING_LINUXTHREADS = False
82
-
83
- # Issue #14110: Some tests fail on FreeBSD if the user is in the wheel group.
84
- HAVE_WHEEL_GROUP = sys.platform.startswith('freebsd') and os.getgid() == 0
85
-
86
-
87
- @contextlib.contextmanager
88
- def ignore_deprecation_warnings(msg_regex, quiet=False):
89
- with support.check_warnings((msg_regex, DeprecationWarning), quiet=quiet):
90
- yield
91
-
92
-
93
- def requires_os_func(name):
94
- return unittest.skipUnless(hasattr(os, name), 'requires os.%s' % name)
95
-
96
-
97
- class _PathLike(os.PathLike):
98
-
99
- def __init__(self, path=""):
100
- self.path = path
101
-
102
- def __str__(self):
103
- return str(self.path)
104
-
105
- def __fspath__(self):
106
- if isinstance(self.path, BaseException):
107
- raise self.path
108
- else:
109
- return self.path
110
-
111
-
112
- def create_file(filename, content=b'content'):
113
- with open(filename, "xb", 0) as fp:
114
- fp.write(content)
115
-
116
-
117
- # Tests creating TESTFN
118
- class FileTests(unittest.TestCase):
119
- def setUp(self):
120
- if os.path.lexists(support.TESTFN):
121
- os.unlink(support.TESTFN)
122
- tearDown = setUp
123
-
124
- def test_access(self):
125
- f = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR)
126
- os.close(f)
127
- self.assertTrue(os.access(support.TESTFN, os.W_OK))
128
-
129
- def test_closerange(self):
130
- first = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR)
131
- # We must allocate two consecutive file descriptors, otherwise
132
- # it will mess up other file descriptors (perhaps even the three
133
- # standard ones).
134
- second = os.dup(first)
135
- try:
136
- retries = 0
137
- while second != first + 1:
138
- os.close(first)
139
- retries += 1
140
- if retries > 10:
141
- # XXX test skipped
142
- self.skipTest("couldn't allocate two consecutive fds")
143
- first, second = second, os.dup(second)
144
- finally:
145
- os.close(second)
146
- # close a fd that is open, and one that isn't
147
- os.closerange(first, first + 2)
148
- self.assertRaises(OSError, os.write, first, b"a")
149
-
150
- @support.cpython_only
151
- def test_rename(self):
152
- path = support.TESTFN
153
- old = sys.getrefcount(path)
154
- self.assertRaises(TypeError, os.rename, path, 0)
155
- new = sys.getrefcount(path)
156
- self.assertEqual(old, new)
157
-
158
- def test_read(self):
159
- with open(support.TESTFN, "w+b") as fobj:
160
- fobj.write(b"spam")
161
- fobj.flush()
162
- fd = fobj.fileno()
163
- os.lseek(fd, 0, 0)
164
- s = os.read(fd, 4)
165
- self.assertEqual(type(s), bytes)
166
- self.assertEqual(s, b"spam")
167
-
168
- @support.cpython_only
169
- # Skip the test on 32-bit platforms: the number of bytes must fit in a
170
- # Py_ssize_t type
171
- @unittest.skipUnless(INT_MAX < PY_SSIZE_T_MAX,
172
- "needs INT_MAX < PY_SSIZE_T_MAX")
173
- @support.bigmemtest(size=INT_MAX + 10, memuse=1, dry_run=False)
174
- def test_large_read(self, size):
175
- self.addCleanup(support.unlink, support.TESTFN)
176
- create_file(support.TESTFN, b'test')
177
-
178
- # Issue #21932: Make sure that os.read() does not raise an
179
- # OverflowError for size larger than INT_MAX
180
- with open(support.TESTFN, "rb") as fp:
181
- data = os.read(fp.fileno(), size)
182
-
183
- # The test does not try to read more than 2 GB at once because the
184
- # operating system is free to return less bytes than requested.
185
- self.assertEqual(data, b'test')
186
-
187
- def test_write(self):
188
- # os.write() accepts bytes- and buffer-like objects but not strings
189
- fd = os.open(support.TESTFN, os.O_CREAT | os.O_WRONLY)
190
- self.assertRaises(TypeError, os.write, fd, "beans")
191
- os.write(fd, b"bacon\n")
192
- os.write(fd, bytearray(b"eggs\n"))
193
- os.write(fd, memoryview(b"spam\n"))
194
- os.close(fd)
195
- with open(support.TESTFN, "rb") as fobj:
196
- self.assertEqual(fobj.read().splitlines(),
197
- [b"bacon", b"eggs", b"spam"])
198
-
199
- def write_windows_console(self, *args):
200
- retcode = subprocess.call(args,
201
- # use a new console to not flood the test output
202
- creationflags=subprocess.CREATE_NEW_CONSOLE,
203
- # use a shell to hide the console window (SW_HIDE)
204
- shell=True)
205
- self.assertEqual(retcode, 0)
206
-
207
- @unittest.skipUnless(sys.platform == 'win32',
208
- 'test specific to the Windows console')
209
- def test_write_windows_console(self):
210
- # Issue #11395: the Windows console returns an error (12: not enough
211
- # space error) on writing into stdout if stdout mode is binary and the
212
- # length is greater than 66,000 bytes (or less, depending on heap
213
- # usage).
214
- code = "print('x' * 100000)"
215
- self.write_windows_console(sys.executable, "-c", code)
216
- self.write_windows_console(sys.executable, "-u", "-c", code)
217
-
218
- def fdopen_helper(self, *args):
219
- fd = os.open(support.TESTFN, os.O_RDONLY)
220
- f = os.fdopen(fd, *args)
221
- f.close()
222
-
223
- def test_fdopen(self):
224
- fd = os.open(support.TESTFN, os.O_CREAT|os.O_RDWR)
225
- os.close(fd)
226
-
227
- self.fdopen_helper()
228
- self.fdopen_helper('r')
229
- self.fdopen_helper('r', 100)
230
-
231
- def test_replace(self):
232
- TESTFN2 = support.TESTFN + ".2"
233
- self.addCleanup(support.unlink, support.TESTFN)
234
- self.addCleanup(support.unlink, TESTFN2)
235
-
236
- create_file(support.TESTFN, b"1")
237
- create_file(TESTFN2, b"2")
238
-
239
- os.replace(support.TESTFN, TESTFN2)
240
- self.assertRaises(FileNotFoundError, os.stat, support.TESTFN)
241
- with open(TESTFN2, 'r') as f:
242
- self.assertEqual(f.read(), "1")
243
-
244
- def test_open_keywords(self):
245
- f = os.open(path=__file__, flags=os.O_RDONLY, mode=0o777,
246
- dir_fd=None)
247
- os.close(f)
248
-
249
- def test_symlink_keywords(self):
250
- symlink = support.get_attribute(os, "symlink")
251
- try:
252
- symlink(src='target', dst=support.TESTFN,
253
- target_is_directory=False, dir_fd=None)
254
- except (NotImplementedError, OSError):
255
- pass # No OS support or unprivileged user
256
-
257
-
258
- # Test attributes on return values from os.*stat* family.
259
- class StatAttributeTests(unittest.TestCase):
260
- def setUp(self):
261
- self.fname = support.TESTFN
262
- self.addCleanup(support.unlink, self.fname)
263
- create_file(self.fname, b"ABC")
264
-
265
- @unittest.skipUnless(hasattr(os, 'stat'), 'test needs os.stat()')
266
- def check_stat_attributes(self, fname):
267
- result = os.stat(fname)
268
-
269
- # Make sure direct access works
270
- self.assertEqual(result[stat.ST_SIZE], 3)
271
- self.assertEqual(result.st_size, 3)
272
-
273
- # Make sure all the attributes are there
274
- members = dir(result)
275
- for name in dir(stat):
276
- if name[:3] == 'ST_':
277
- attr = name.lower()
278
- if name.endswith("TIME"):
279
- def trunc(x): return int(x)
280
- else:
281
- def trunc(x): return x
282
- self.assertEqual(trunc(getattr(result, attr)),
283
- result[getattr(stat, name)])
284
- self.assertIn(attr, members)
285
-
286
- # Make sure that the st_?time and st_?time_ns fields roughly agree
287
- # (they should always agree up to around tens-of-microseconds)
288
- for name in 'st_atime st_mtime st_ctime'.split():
289
- floaty = int(getattr(result, name) * 100000)
290
- nanosecondy = getattr(result, name + "_ns") // 10000
291
- self.assertAlmostEqual(floaty, nanosecondy, delta=2)
292
-
293
- try:
294
- result[200]
295
- self.fail("No exception raised")
296
- except IndexError:
297
- pass
298
-
299
- # Make sure that assignment fails
300
- try:
301
- result.st_mode = 1
302
- self.fail("No exception raised")
303
- except AttributeError:
304
- pass
305
-
306
- try:
307
- result.st_rdev = 1
308
- self.fail("No exception raised")
309
- except (AttributeError, TypeError):
310
- pass
311
-
312
- try:
313
- result.parrot = 1
314
- self.fail("No exception raised")
315
- except AttributeError:
316
- pass
317
-
318
- # Use the stat_result constructor with a too-short tuple.
319
- try:
320
- result2 = os.stat_result((10,))
321
- self.fail("No exception raised")
322
- except TypeError:
323
- pass
324
-
325
- # Use the constructor with a too-long tuple.
326
- try:
327
- result2 = os.stat_result((0,1,2,3,4,5,6,7,8,9,10,11,12,13,14))
328
- except TypeError:
329
- pass
330
-
331
- def test_stat_attributes(self):
332
- self.check_stat_attributes(self.fname)
333
-
334
- def test_stat_attributes_bytes(self):
335
- try:
336
- fname = self.fname.encode(sys.getfilesystemencoding())
337
- except UnicodeEncodeError:
338
- self.skipTest("cannot encode %a for the filesystem" % self.fname)
339
- self.check_stat_attributes(fname)
340
-
341
- def test_stat_result_pickle(self):
342
- result = os.stat(self.fname)
343
- for proto in range(pickle.HIGHEST_PROTOCOL + 1):
344
- p = pickle.dumps(result, proto)
345
- self.assertIn(b'stat_result', p)
346
- if proto < 4:
347
- self.assertIn(b'cos\nstat_result\n', p)
348
- unpickled = pickle.loads(p)
349
- self.assertEqual(result, unpickled)
350
-
351
- @unittest.skipUnless(hasattr(os, 'statvfs'), 'test needs os.statvfs()')
352
- def test_statvfs_attributes(self):
353
- try:
354
- result = os.statvfs(self.fname)
355
- except OSError as e:
356
- # On AtheOS, glibc always returns ENOSYS
357
- if e.errno == errno.ENOSYS:
358
- self.skipTest('os.statvfs() failed with ENOSYS')
359
-
360
- # Make sure direct access works
361
- self.assertEqual(result.f_bfree, result[3])
362
-
363
- # Make sure all the attributes are there.
364
- members = ('bsize', 'frsize', 'blocks', 'bfree', 'bavail', 'files',
365
- 'ffree', 'favail', 'flag', 'namemax')
366
- for value, member in enumerate(members):
367
- self.assertEqual(getattr(result, 'f_' + member), result[value])
368
-
369
- # Make sure that assignment really fails
370
- try:
371
- result.f_bfree = 1
372
- self.fail("No exception raised")
373
- except AttributeError:
374
- pass
375
-
376
- try:
377
- result.parrot = 1
378
- self.fail("No exception raised")
379
- except AttributeError:
380
- pass
381
-
382
- # Use the constructor with a too-short tuple.
383
- try:
384
- result2 = os.statvfs_result((10,))
385
- self.fail("No exception raised")
386
- except TypeError:
387
- pass
388
-
389
- # Use the constructor with a too-long tuple.
390
- try:
391
- result2 = os.statvfs_result((0,1,2,3,4,5,6,7,8,9,10,11,12,13,14))
392
- except TypeError:
393
- pass
394
-
395
- @unittest.skipUnless(hasattr(os, 'statvfs'),
396
- "need os.statvfs()")
397
- def test_statvfs_result_pickle(self):
398
- try:
399
- result = os.statvfs(self.fname)
400
- except OSError as e:
401
- # On AtheOS, glibc always returns ENOSYS
402
- if e.errno == errno.ENOSYS:
403
- self.skipTest('os.statvfs() failed with ENOSYS')
404
-
405
- for proto in range(pickle.HIGHEST_PROTOCOL + 1):
406
- p = pickle.dumps(result, proto)
407
- self.assertIn(b'statvfs_result', p)
408
- if proto < 4:
409
- self.assertIn(b'cos\nstatvfs_result\n', p)
410
- unpickled = pickle.loads(p)
411
- self.assertEqual(result, unpickled)
412
-
413
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
414
- def test_1686475(self):
415
- # Verify that an open file can be stat'ed
416
- try:
417
- os.stat(r"c:\pagefile.sys")
418
- except FileNotFoundError:
419
- self.skipTest(r'c:\pagefile.sys does not exist')
420
- except OSError as e:
421
- self.fail("Could not stat pagefile.sys")
422
-
423
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
424
- @unittest.skipUnless(hasattr(os, "pipe"), "requires os.pipe()")
425
- def test_15261(self):
426
- # Verify that stat'ing a closed fd does not cause crash
427
- r, w = os.pipe()
428
- try:
429
- os.stat(r) # should not raise error
430
- finally:
431
- os.close(r)
432
- os.close(w)
433
- with self.assertRaises(OSError) as ctx:
434
- os.stat(r)
435
- self.assertEqual(ctx.exception.errno, errno.EBADF)
436
-
437
- def check_file_attributes(self, result):
438
- self.assertTrue(hasattr(result, 'st_file_attributes'))
439
- self.assertTrue(isinstance(result.st_file_attributes, int))
440
- self.assertTrue(0 <= result.st_file_attributes <= 0xFFFFFFFF)
441
-
442
- @unittest.skipUnless(sys.platform == "win32",
443
- "st_file_attributes is Win32 specific")
444
- def test_file_attributes(self):
445
- # test file st_file_attributes (FILE_ATTRIBUTE_DIRECTORY not set)
446
- result = os.stat(self.fname)
447
- self.check_file_attributes(result)
448
- self.assertEqual(
449
- result.st_file_attributes & stat.FILE_ATTRIBUTE_DIRECTORY,
450
- 0)
451
-
452
- # test directory st_file_attributes (FILE_ATTRIBUTE_DIRECTORY set)
453
- dirname = support.TESTFN + "dir"
454
- os.mkdir(dirname)
455
- self.addCleanup(os.rmdir, dirname)
456
-
457
- result = os.stat(dirname)
458
- self.check_file_attributes(result)
459
- self.assertEqual(
460
- result.st_file_attributes & stat.FILE_ATTRIBUTE_DIRECTORY,
461
- stat.FILE_ATTRIBUTE_DIRECTORY)
462
-
463
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
464
- def test_access_denied(self):
465
- # Default to FindFirstFile WIN32_FIND_DATA when access is
466
- # denied. See issue 28075.
467
- # os.environ['TEMP'] should be located on a volume that
468
- # supports file ACLs.
469
- fname = os.path.join(os.environ['TEMP'], self.fname)
470
- self.addCleanup(support.unlink, fname)
471
- create_file(fname, b'ABC')
472
- # Deny the right to [S]YNCHRONIZE on the file to
473
- # force CreateFile to fail with ERROR_ACCESS_DENIED.
474
- DETACHED_PROCESS = 8
475
- subprocess.check_call(
476
- # bpo-30584: Use security identifier *S-1-5-32-545 instead
477
- # of localized "Users" to not depend on the locale.
478
- ['icacls.exe', fname, '/deny', '*S-1-5-32-545:(S)'],
479
- creationflags=DETACHED_PROCESS
480
- )
481
- result = os.stat(fname)
482
- self.assertNotEqual(result.st_size, 0)
483
-
484
-
485
- class UtimeTests(unittest.TestCase):
486
- def setUp(self):
487
- self.dirname = support.TESTFN
488
- self.fname = os.path.join(self.dirname, "f1")
489
-
490
- self.addCleanup(support.rmtree, self.dirname)
491
- os.mkdir(self.dirname)
492
- create_file(self.fname)
493
-
494
- def restore_float_times(state):
495
- with ignore_deprecation_warnings('stat_float_times'):
496
- os.stat_float_times(state)
497
-
498
- # ensure that st_atime and st_mtime are float
499
- with ignore_deprecation_warnings('stat_float_times'):
500
- old_float_times = os.stat_float_times(-1)
501
- self.addCleanup(restore_float_times, old_float_times)
502
-
503
- os.stat_float_times(True)
504
-
505
- def support_subsecond(self, filename):
506
- # Heuristic to check if the filesystem supports timestamp with
507
- # subsecond resolution: check if float and int timestamps are different
508
- st = os.stat(filename)
509
- return ((st.st_atime != st[7])
510
- or (st.st_mtime != st[8])
511
- or (st.st_ctime != st[9]))
512
-
513
- def _test_utime(self, set_time, filename=None):
514
- if not filename:
515
- filename = self.fname
516
-
517
- support_subsecond = self.support_subsecond(filename)
518
- if support_subsecond:
519
- # Timestamp with a resolution of 1 microsecond (10^-6).
520
- #
521
- # The resolution of the C internal function used by os.utime()
522
- # depends on the platform: 1 sec, 1 us, 1 ns. Writing a portable
523
- # test with a resolution of 1 ns requires more work:
524
- # see the issue #15745.
525
- atime_ns = 1002003000 # 1.002003 seconds
526
- mtime_ns = 4005006000 # 4.005006 seconds
527
- else:
528
- # use a resolution of 1 second
529
- atime_ns = 5 * 10**9
530
- mtime_ns = 8 * 10**9
531
-
532
- set_time(filename, (atime_ns, mtime_ns))
533
- st = os.stat(filename)
534
-
535
- if support_subsecond:
536
- self.assertAlmostEqual(st.st_atime, atime_ns * 1e-9, delta=1e-6)
537
- self.assertAlmostEqual(st.st_mtime, mtime_ns * 1e-9, delta=1e-6)
538
- else:
539
- self.assertEqual(st.st_atime, atime_ns * 1e-9)
540
- self.assertEqual(st.st_mtime, mtime_ns * 1e-9)
541
- self.assertEqual(st.st_atime_ns, atime_ns)
542
- self.assertEqual(st.st_mtime_ns, mtime_ns)
543
-
544
- def test_utime(self):
545
- def set_time(filename, ns):
546
- # test the ns keyword parameter
547
- os.utime(filename, ns=ns)
548
- self._test_utime(set_time)
549
-
550
- @staticmethod
551
- def ns_to_sec(ns):
552
- # Convert a number of nanosecond (int) to a number of seconds (float).
553
- # Round towards infinity by adding 0.5 nanosecond to avoid rounding
554
- # issue, os.utime() rounds towards minus infinity.
555
- return (ns * 1e-9) + 0.5e-9
556
-
557
- def test_utime_by_indexed(self):
558
- # pass times as floating point seconds as the second indexed parameter
559
- def set_time(filename, ns):
560
- atime_ns, mtime_ns = ns
561
- atime = self.ns_to_sec(atime_ns)
562
- mtime = self.ns_to_sec(mtime_ns)
563
- # test utimensat(timespec), utimes(timeval), utime(utimbuf)
564
- # or utime(time_t)
565
- os.utime(filename, (atime, mtime))
566
- self._test_utime(set_time)
567
-
568
- def test_utime_by_times(self):
569
- def set_time(filename, ns):
570
- atime_ns, mtime_ns = ns
571
- atime = self.ns_to_sec(atime_ns)
572
- mtime = self.ns_to_sec(mtime_ns)
573
- # test the times keyword parameter
574
- os.utime(filename, times=(atime, mtime))
575
- self._test_utime(set_time)
576
-
577
- @unittest.skipUnless(os.utime in os.supports_follow_symlinks,
578
- "follow_symlinks support for utime required "
579
- "for this test.")
580
- def test_utime_nofollow_symlinks(self):
581
- def set_time(filename, ns):
582
- # use follow_symlinks=False to test utimensat(timespec)
583
- # or lutimes(timeval)
584
- os.utime(filename, ns=ns, follow_symlinks=False)
585
- self._test_utime(set_time)
586
-
587
- @unittest.skipUnless(os.utime in os.supports_fd,
588
- "fd support for utime required for this test.")
589
- def test_utime_fd(self):
590
- def set_time(filename, ns):
591
- with open(filename, 'wb', 0) as fp:
592
- # use a file descriptor to test futimens(timespec)
593
- # or futimes(timeval)
594
- os.utime(fp.fileno(), ns=ns)
595
- self._test_utime(set_time)
596
-
597
- @unittest.skipUnless(os.utime in os.supports_dir_fd,
598
- "dir_fd support for utime required for this test.")
599
- def test_utime_dir_fd(self):
600
- def set_time(filename, ns):
601
- dirname, name = os.path.split(filename)
602
- dirfd = os.open(dirname, os.O_RDONLY)
603
- try:
604
- # pass dir_fd to test utimensat(timespec) or futimesat(timeval)
605
- os.utime(name, dir_fd=dirfd, ns=ns)
606
- finally:
607
- os.close(dirfd)
608
- self._test_utime(set_time)
609
-
610
- def test_utime_directory(self):
611
- def set_time(filename, ns):
612
- # test calling os.utime() on a directory
613
- os.utime(filename, ns=ns)
614
- self._test_utime(set_time, filename=self.dirname)
615
-
616
- def _test_utime_current(self, set_time):
617
- # Get the system clock
618
- current = time.time()
619
-
620
- # Call os.utime() to set the timestamp to the current system clock
621
- set_time(self.fname)
622
-
623
- if not self.support_subsecond(self.fname):
624
- delta = 1.0
625
- elif os.name == 'nt':
626
- # On Windows, the usual resolution of time.time() is 15.6 ms.
627
- # bpo-30649: Tolerate 50 ms for slow Windows buildbots.
628
- delta = 0.050
629
- else:
630
- # bpo-30649: PPC64 Fedora 3.x buildbot requires
631
- # at least a delta of 14 ms
632
- delta = 0.020
633
- st = os.stat(self.fname)
634
- msg = ("st_time=%r, current=%r, dt=%r"
635
- % (st.st_mtime, current, st.st_mtime - current))
636
- self.assertAlmostEqual(st.st_mtime, current,
637
- delta=delta, msg=msg)
638
-
639
- def test_utime_current(self):
640
- def set_time(filename):
641
- # Set to the current time in the new way
642
- os.utime(self.fname)
643
- self._test_utime_current(set_time)
644
-
645
- def test_utime_current_old(self):
646
- def set_time(filename):
647
- # Set to the current time in the old explicit way.
648
- os.utime(self.fname, None)
649
- self._test_utime_current(set_time)
650
-
651
- def get_file_system(self, path):
652
- if sys.platform == 'win32':
653
- root = os.path.splitdrive(os.path.abspath(path))[0] + '\\'
654
- import ctypes
655
- kernel32 = ctypes.windll.kernel32
656
- buf = ctypes.create_unicode_buffer("", 100)
657
- ok = kernel32.GetVolumeInformationW(root, None, 0,
658
- None, None, None,
659
- buf, len(buf))
660
- if ok:
661
- return buf.value
662
- # return None if the filesystem is unknown
663
-
664
- def test_large_time(self):
665
- # Many filesystems are limited to the year 2038. At least, the test
666
- # pass with NTFS filesystem.
667
- if self.get_file_system(self.dirname) != "NTFS":
668
- self.skipTest("requires NTFS")
669
-
670
- large = 5000000000 # some day in 2128
671
- os.utime(self.fname, (large, large))
672
- self.assertEqual(os.stat(self.fname).st_mtime, large)
673
-
674
- def test_utime_invalid_arguments(self):
675
- # seconds and nanoseconds parameters are mutually exclusive
676
- with self.assertRaises(ValueError):
677
- os.utime(self.fname, (5, 5), ns=(5, 5))
678
-
679
-
680
- from test import mapping_tests
681
-
682
- class EnvironTests(mapping_tests.BasicTestMappingProtocol):
683
- """check that os.environ object conform to mapping protocol"""
684
- type2test = None
685
-
686
- def setUp(self):
687
- self.__save = dict(os.environ)
688
- if os.supports_bytes_environ:
689
- self.__saveb = dict(os.environb)
690
- for key, value in self._reference().items():
691
- os.environ[key] = value
692
-
693
- def tearDown(self):
694
- os.environ.clear()
695
- os.environ.update(self.__save)
696
- if os.supports_bytes_environ:
697
- os.environb.clear()
698
- os.environb.update(self.__saveb)
699
-
700
- def _reference(self):
701
- return {"KEY1":"VALUE1", "KEY2":"VALUE2", "KEY3":"VALUE3"}
702
-
703
- def _empty_mapping(self):
704
- os.environ.clear()
705
- return os.environ
706
-
707
- # Bug 1110478
708
- @unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
709
- 'requires a shell')
710
- def test_update2(self):
711
- os.environ.clear()
712
- os.environ.update(HELLO="World")
713
- with os.popen("%s -c 'echo $HELLO'" % unix_shell) as popen:
714
- value = popen.read().strip()
715
- self.assertEqual(value, "World")
716
-
717
- @unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
718
- 'requires a shell')
719
- def test_os_popen_iter(self):
720
- with os.popen("%s -c 'echo \"line1\nline2\nline3\"'"
721
- % unix_shell) as popen:
722
- it = iter(popen)
723
- self.assertEqual(next(it), "line1\n")
724
- self.assertEqual(next(it), "line2\n")
725
- self.assertEqual(next(it), "line3\n")
726
- self.assertRaises(StopIteration, next, it)
727
-
728
- # Verify environ keys and values from the OS are of the
729
- # correct str type.
730
- def test_keyvalue_types(self):
731
- for key, val in os.environ.items():
732
- self.assertEqual(type(key), str)
733
- self.assertEqual(type(val), str)
734
-
735
- def test_items(self):
736
- for key, value in self._reference().items():
737
- self.assertEqual(os.environ.get(key), value)
738
-
739
- # Issue 7310
740
- def test___repr__(self):
741
- """Check that the repr() of os.environ looks like environ({...})."""
742
- env = os.environ
743
- self.assertEqual(repr(env), 'environ({{{}}})'.format(', '.join(
744
- '{!r}: {!r}'.format(key, value)
745
- for key, value in env.items())))
746
-
747
- def test_get_exec_path(self):
748
- defpath_list = os.defpath.split(os.pathsep)
749
- test_path = ['/monty', '/python', '', '/flying/circus']
750
- test_env = {'PATH': os.pathsep.join(test_path)}
751
-
752
- saved_environ = os.environ
753
- try:
754
- os.environ = dict(test_env)
755
- # Test that defaulting to os.environ works.
756
- self.assertSequenceEqual(test_path, os.get_exec_path())
757
- self.assertSequenceEqual(test_path, os.get_exec_path(env=None))
758
- finally:
759
- os.environ = saved_environ
760
-
761
- # No PATH environment variable
762
- self.assertSequenceEqual(defpath_list, os.get_exec_path({}))
763
- # Empty PATH environment variable
764
- self.assertSequenceEqual(('',), os.get_exec_path({'PATH':''}))
765
- # Supplied PATH environment variable
766
- self.assertSequenceEqual(test_path, os.get_exec_path(test_env))
767
-
768
- if os.supports_bytes_environ:
769
- # env cannot contain 'PATH' and b'PATH' keys
770
- try:
771
- # ignore BytesWarning warning
772
- with warnings.catch_warnings(record=True):
773
- mixed_env = {'PATH': '1', b'PATH': b'2'}
774
- except BytesWarning:
775
- # mixed_env cannot be created with python -bb
776
- pass
777
- else:
778
- self.assertRaises(ValueError, os.get_exec_path, mixed_env)
779
-
780
- # bytes key and/or value
781
- self.assertSequenceEqual(os.get_exec_path({b'PATH': b'abc'}),
782
- ['abc'])
783
- self.assertSequenceEqual(os.get_exec_path({b'PATH': 'abc'}),
784
- ['abc'])
785
- self.assertSequenceEqual(os.get_exec_path({'PATH': b'abc'}),
786
- ['abc'])
787
-
788
- @unittest.skipUnless(os.supports_bytes_environ,
789
- "os.environb required for this test.")
790
- def test_environb(self):
791
- # os.environ -> os.environb
792
- value = 'euro\u20ac'
793
- try:
794
- value_bytes = value.encode(sys.getfilesystemencoding(),
795
- 'surrogateescape')
796
- except UnicodeEncodeError:
797
- msg = "U+20AC character is not encodable to %s" % (
798
- sys.getfilesystemencoding(),)
799
- self.skipTest(msg)
800
- os.environ['unicode'] = value
801
- self.assertEqual(os.environ['unicode'], value)
802
- self.assertEqual(os.environb[b'unicode'], value_bytes)
803
-
804
- # os.environb -> os.environ
805
- value = b'\xff'
806
- os.environb[b'bytes'] = value
807
- self.assertEqual(os.environb[b'bytes'], value)
808
- value_str = value.decode(sys.getfilesystemencoding(), 'surrogateescape')
809
- self.assertEqual(os.environ['bytes'], value_str)
810
-
811
- # On FreeBSD < 7 and OS X < 10.6, unsetenv() doesn't return a value (issue
812
- # #13415).
813
- @support.requires_freebsd_version(7)
814
- @support.requires_mac_ver(10, 6)
815
- def test_unset_error(self):
816
- if sys.platform == "win32":
817
- # an environment variable is limited to 32,767 characters
818
- key = 'x' * 50000
819
- self.assertRaises(ValueError, os.environ.__delitem__, key)
820
- else:
821
- # "=" is not allowed in a variable name
822
- key = 'key='
823
- self.assertRaises(OSError, os.environ.__delitem__, key)
824
-
825
- def test_key_type(self):
826
- missing = 'missingkey'
827
- self.assertNotIn(missing, os.environ)
828
-
829
- with self.assertRaises(KeyError) as cm:
830
- os.environ[missing]
831
- self.assertIs(cm.exception.args[0], missing)
832
- self.assertTrue(cm.exception.__suppress_context__)
833
-
834
- with self.assertRaises(KeyError) as cm:
835
- del os.environ[missing]
836
- self.assertIs(cm.exception.args[0], missing)
837
- self.assertTrue(cm.exception.__suppress_context__)
838
-
839
- def _test_environ_iteration(self, collection):
840
- iterator = iter(collection)
841
- new_key = "__new_key__"
842
-
843
- next(iterator) # start iteration over os.environ.items
844
-
845
- # add a new key in os.environ mapping
846
- os.environ[new_key] = "test_environ_iteration"
847
-
848
- try:
849
- next(iterator) # force iteration over modified mapping
850
- self.assertEqual(os.environ[new_key], "test_environ_iteration")
851
- finally:
852
- del os.environ[new_key]
853
-
854
- def test_iter_error_when_changing_os_environ(self):
855
- self._test_environ_iteration(os.environ)
856
-
857
- def test_iter_error_when_changing_os_environ_items(self):
858
- self._test_environ_iteration(os.environ.items())
859
-
860
- def test_iter_error_when_changing_os_environ_values(self):
861
- self._test_environ_iteration(os.environ.values())
862
-
863
-
864
- class WalkTests(unittest.TestCase):
865
- """Tests for os.walk()."""
866
-
867
- # Wrapper to hide minor differences between os.walk and os.fwalk
868
- # to tests both functions with the same code base
869
- def walk(self, top, **kwargs):
870
- if 'follow_symlinks' in kwargs:
871
- kwargs['followlinks'] = kwargs.pop('follow_symlinks')
872
- return os.walk(top, **kwargs)
873
-
874
- def setUp(self):
875
- join = os.path.join
876
- self.addCleanup(support.rmtree, support.TESTFN)
877
-
878
- # Build:
879
- # TESTFN/
880
- # TEST1/ a file kid and two directory kids
881
- # tmp1
882
- # SUB1/ a file kid and a directory kid
883
- # tmp2
884
- # SUB11/ no kids
885
- # SUB2/ a file kid and a dirsymlink kid
886
- # tmp3
887
- # SUB21/ not readable
888
- # tmp5
889
- # link/ a symlink to TESTFN.2
890
- # broken_link
891
- # broken_link2
892
- # broken_link3
893
- # TEST2/
894
- # tmp4 a lone file
895
- self.walk_path = join(support.TESTFN, "TEST1")
896
- self.sub1_path = join(self.walk_path, "SUB1")
897
- self.sub11_path = join(self.sub1_path, "SUB11")
898
- sub2_path = join(self.walk_path, "SUB2")
899
- sub21_path = join(sub2_path, "SUB21")
900
- tmp1_path = join(self.walk_path, "tmp1")
901
- tmp2_path = join(self.sub1_path, "tmp2")
902
- tmp3_path = join(sub2_path, "tmp3")
903
- tmp5_path = join(sub21_path, "tmp3")
904
- self.link_path = join(sub2_path, "link")
905
- t2_path = join(support.TESTFN, "TEST2")
906
- tmp4_path = join(support.TESTFN, "TEST2", "tmp4")
907
- broken_link_path = join(sub2_path, "broken_link")
908
- broken_link2_path = join(sub2_path, "broken_link2")
909
- broken_link3_path = join(sub2_path, "broken_link3")
910
-
911
- # Create stuff.
912
- os.makedirs(self.sub11_path)
913
- os.makedirs(sub2_path)
914
- os.makedirs(sub21_path)
915
- os.makedirs(t2_path)
916
-
917
- for path in tmp1_path, tmp2_path, tmp3_path, tmp4_path, tmp5_path:
918
- with open(path, "x") as f:
919
- f.write("I'm " + path + " and proud of it. Blame test_os.\n")
920
-
921
- if support.can_symlink():
922
- os.symlink(os.path.abspath(t2_path), self.link_path)
923
- os.symlink('broken', broken_link_path, True)
924
- os.symlink(join('tmp3', 'broken'), broken_link2_path, True)
925
- os.symlink(join('SUB21', 'tmp5'), broken_link3_path, True)
926
- self.sub2_tree = (sub2_path, ["SUB21", "link"],
927
- ["broken_link", "broken_link2", "broken_link3",
928
- "tmp3"])
929
- else:
930
- self.sub2_tree = (sub2_path, [], ["tmp3"])
931
-
932
- os.chmod(sub21_path, 0)
933
- try:
934
- os.listdir(sub21_path)
935
- except PermissionError:
936
- self.addCleanup(os.chmod, sub21_path, stat.S_IRWXU)
937
- else:
938
- os.chmod(sub21_path, stat.S_IRWXU)
939
- os.unlink(tmp5_path)
940
- os.rmdir(sub21_path)
941
- del self.sub2_tree[1][:1]
942
-
943
- def test_walk_topdown(self):
944
- # Walk top-down.
945
- all = list(self.walk(self.walk_path))
946
-
947
- self.assertEqual(len(all), 4)
948
- # We can't know which order SUB1 and SUB2 will appear in.
949
- # Not flipped: TESTFN, SUB1, SUB11, SUB2
950
- # flipped: TESTFN, SUB2, SUB1, SUB11
951
- flipped = all[0][1][0] != "SUB1"
952
- all[0][1].sort()
953
- all[3 - 2 * flipped][-1].sort()
954
- all[3 - 2 * flipped][1].sort()
955
- self.assertEqual(all[0], (self.walk_path, ["SUB1", "SUB2"], ["tmp1"]))
956
- self.assertEqual(all[1 + flipped], (self.sub1_path, ["SUB11"], ["tmp2"]))
957
- self.assertEqual(all[2 + flipped], (self.sub11_path, [], []))
958
- self.assertEqual(all[3 - 2 * flipped], self.sub2_tree)
959
-
960
- def test_walk_prune(self, walk_path=None):
961
- if walk_path is None:
962
- walk_path = self.walk_path
963
- # Prune the search.
964
- all = []
965
- for root, dirs, files in self.walk(walk_path):
966
- all.append((root, dirs, files))
967
- # Don't descend into SUB1.
968
- if 'SUB1' in dirs:
969
- # Note that this also mutates the dirs we appended to all!
970
- dirs.remove('SUB1')
971
-
972
- self.assertEqual(len(all), 2)
973
- self.assertEqual(all[0],
974
- (str(walk_path), ["SUB2"], ["tmp1"]))
975
-
976
- all[1][-1].sort()
977
- all[1][1].sort()
978
- self.assertEqual(all[1], self.sub2_tree)
979
-
980
- def test_file_like_path(self):
981
- self.test_walk_prune(_PathLike(self.walk_path))
982
-
983
- def test_walk_bottom_up(self):
984
- # Walk bottom-up.
985
- all = list(self.walk(self.walk_path, topdown=False))
986
-
987
- self.assertEqual(len(all), 4, all)
988
- # We can't know which order SUB1 and SUB2 will appear in.
989
- # Not flipped: SUB11, SUB1, SUB2, TESTFN
990
- # flipped: SUB2, SUB11, SUB1, TESTFN
991
- flipped = all[3][1][0] != "SUB1"
992
- all[3][1].sort()
993
- all[2 - 2 * flipped][-1].sort()
994
- all[2 - 2 * flipped][1].sort()
995
- self.assertEqual(all[3],
996
- (self.walk_path, ["SUB1", "SUB2"], ["tmp1"]))
997
- self.assertEqual(all[flipped],
998
- (self.sub11_path, [], []))
999
- self.assertEqual(all[flipped + 1],
1000
- (self.sub1_path, ["SUB11"], ["tmp2"]))
1001
- self.assertEqual(all[2 - 2 * flipped],
1002
- self.sub2_tree)
1003
-
1004
- def test_walk_symlink(self):
1005
- if not support.can_symlink():
1006
- self.skipTest("need symlink support")
1007
-
1008
- # Walk, following symlinks.
1009
- walk_it = self.walk(self.walk_path, follow_symlinks=True)
1010
- for root, dirs, files in walk_it:
1011
- if root == self.link_path:
1012
- self.assertEqual(dirs, [])
1013
- self.assertEqual(files, ["tmp4"])
1014
- break
1015
- else:
1016
- self.fail("Didn't follow symlink with followlinks=True")
1017
-
1018
- def test_walk_bad_dir(self):
1019
- # Walk top-down.
1020
- errors = []
1021
- walk_it = self.walk(self.walk_path, onerror=errors.append)
1022
- root, dirs, files = next(walk_it)
1023
- self.assertEqual(errors, [])
1024
- dir1 = 'SUB1'
1025
- path1 = os.path.join(root, dir1)
1026
- path1new = os.path.join(root, dir1 + '.new')
1027
- os.rename(path1, path1new)
1028
- try:
1029
- roots = [r for r, d, f in walk_it]
1030
- self.assertTrue(errors)
1031
- self.assertNotIn(path1, roots)
1032
- self.assertNotIn(path1new, roots)
1033
- for dir2 in dirs:
1034
- if dir2 != dir1:
1035
- self.assertIn(os.path.join(root, dir2), roots)
1036
- finally:
1037
- os.rename(path1new, path1)
1038
-
1039
-
1040
- @unittest.skipUnless(hasattr(os, 'fwalk'), "Test needs os.fwalk()")
1041
- class FwalkTests(WalkTests):
1042
- """Tests for os.fwalk()."""
1043
-
1044
- def walk(self, top, **kwargs):
1045
- for root, dirs, files, root_fd in os.fwalk(top, **kwargs):
1046
- yield (root, dirs, files)
1047
-
1048
- def _compare_to_walk(self, walk_kwargs, fwalk_kwargs):
1049
- """
1050
- compare with walk() results.
1051
- """
1052
- walk_kwargs = walk_kwargs.copy()
1053
- fwalk_kwargs = fwalk_kwargs.copy()
1054
- for topdown, follow_symlinks in itertools.product((True, False), repeat=2):
1055
- walk_kwargs.update(topdown=topdown, followlinks=follow_symlinks)
1056
- fwalk_kwargs.update(topdown=topdown, follow_symlinks=follow_symlinks)
1057
-
1058
- expected = {}
1059
- for root, dirs, files in os.walk(**walk_kwargs):
1060
- expected[root] = (set(dirs), set(files))
1061
-
1062
- for root, dirs, files, rootfd in os.fwalk(**fwalk_kwargs):
1063
- self.assertIn(root, expected)
1064
- self.assertEqual(expected[root], (set(dirs), set(files)))
1065
-
1066
- def test_compare_to_walk(self):
1067
- kwargs = {'top': support.TESTFN}
1068
- self._compare_to_walk(kwargs, kwargs)
1069
-
1070
- def test_dir_fd(self):
1071
- try:
1072
- fd = os.open(".", os.O_RDONLY)
1073
- walk_kwargs = {'top': support.TESTFN}
1074
- fwalk_kwargs = walk_kwargs.copy()
1075
- fwalk_kwargs['dir_fd'] = fd
1076
- self._compare_to_walk(walk_kwargs, fwalk_kwargs)
1077
- finally:
1078
- os.close(fd)
1079
-
1080
- def test_yields_correct_dir_fd(self):
1081
- # check returned file descriptors
1082
- for topdown, follow_symlinks in itertools.product((True, False), repeat=2):
1083
- args = support.TESTFN, topdown, None
1084
- for root, dirs, files, rootfd in os.fwalk(*args, follow_symlinks=follow_symlinks):
1085
- # check that the FD is valid
1086
- os.fstat(rootfd)
1087
- # redundant check
1088
- os.stat(rootfd)
1089
- # check that listdir() returns consistent information
1090
- self.assertEqual(set(os.listdir(rootfd)), set(dirs) | set(files))
1091
-
1092
- def test_fd_leak(self):
1093
- # Since we're opening a lot of FDs, we must be careful to avoid leaks:
1094
- # we both check that calling fwalk() a large number of times doesn't
1095
- # yield EMFILE, and that the minimum allocated FD hasn't changed.
1096
- minfd = os.dup(1)
1097
- os.close(minfd)
1098
- for i in range(256):
1099
- for x in os.fwalk(support.TESTFN):
1100
- pass
1101
- newfd = os.dup(1)
1102
- self.addCleanup(os.close, newfd)
1103
- self.assertEqual(newfd, minfd)
1104
-
1105
- class BytesWalkTests(WalkTests):
1106
- """Tests for os.walk() with bytes."""
1107
- def setUp(self):
1108
- super().setUp()
1109
- self.stack = contextlib.ExitStack()
1110
-
1111
- def tearDown(self):
1112
- self.stack.close()
1113
- super().tearDown()
1114
-
1115
- def walk(self, top, **kwargs):
1116
- if 'follow_symlinks' in kwargs:
1117
- kwargs['followlinks'] = kwargs.pop('follow_symlinks')
1118
- for broot, bdirs, bfiles in os.walk(os.fsencode(top), **kwargs):
1119
- root = os.fsdecode(broot)
1120
- dirs = list(map(os.fsdecode, bdirs))
1121
- files = list(map(os.fsdecode, bfiles))
1122
- yield (root, dirs, files)
1123
- bdirs[:] = list(map(os.fsencode, dirs))
1124
- bfiles[:] = list(map(os.fsencode, files))
1125
-
1126
-
1127
- class MakedirTests(unittest.TestCase):
1128
- def setUp(self):
1129
- os.mkdir(support.TESTFN)
1130
-
1131
- def test_makedir(self):
1132
- base = support.TESTFN
1133
- path = os.path.join(base, 'dir1', 'dir2', 'dir3')
1134
- os.makedirs(path) # Should work
1135
- path = os.path.join(base, 'dir1', 'dir2', 'dir3', 'dir4')
1136
- os.makedirs(path)
1137
-
1138
- # Try paths with a '.' in them
1139
- self.assertRaises(OSError, os.makedirs, os.curdir)
1140
- path = os.path.join(base, 'dir1', 'dir2', 'dir3', 'dir4', 'dir5', os.curdir)
1141
- os.makedirs(path)
1142
- path = os.path.join(base, 'dir1', os.curdir, 'dir2', 'dir3', 'dir4',
1143
- 'dir5', 'dir6')
1144
- os.makedirs(path)
1145
-
1146
- def test_exist_ok_existing_directory(self):
1147
- path = os.path.join(support.TESTFN, 'dir1')
1148
- mode = 0o777
1149
- old_mask = os.umask(0o022)
1150
- os.makedirs(path, mode)
1151
- self.assertRaises(OSError, os.makedirs, path, mode)
1152
- self.assertRaises(OSError, os.makedirs, path, mode, exist_ok=False)
1153
- os.makedirs(path, 0o776, exist_ok=True)
1154
- os.makedirs(path, mode=mode, exist_ok=True)
1155
- os.umask(old_mask)
1156
-
1157
- # Issue #25583: A drive root could raise PermissionError on Windows
1158
- os.makedirs(os.path.abspath('/'), exist_ok=True)
1159
-
1160
- def test_exist_ok_s_isgid_directory(self):
1161
- path = os.path.join(support.TESTFN, 'dir1')
1162
- S_ISGID = stat.S_ISGID
1163
- mode = 0o777
1164
- old_mask = os.umask(0o022)
1165
- try:
1166
- existing_testfn_mode = stat.S_IMODE(
1167
- os.lstat(support.TESTFN).st_mode)
1168
- try:
1169
- os.chmod(support.TESTFN, existing_testfn_mode | S_ISGID)
1170
- except PermissionError:
1171
- raise unittest.SkipTest('Cannot set S_ISGID for dir.')
1172
- if (os.lstat(support.TESTFN).st_mode & S_ISGID != S_ISGID):
1173
- raise unittest.SkipTest('No support for S_ISGID dir mode.')
1174
- # The os should apply S_ISGID from the parent dir for us, but
1175
- # this test need not depend on that behavior. Be explicit.
1176
- os.makedirs(path, mode | S_ISGID)
1177
- # http://bugs.python.org/issue14992
1178
- # Should not fail when the bit is already set.
1179
- os.makedirs(path, mode, exist_ok=True)
1180
- # remove the bit.
1181
- os.chmod(path, stat.S_IMODE(os.lstat(path).st_mode) & ~S_ISGID)
1182
- # May work even when the bit is not already set when demanded.
1183
- os.makedirs(path, mode | S_ISGID, exist_ok=True)
1184
- finally:
1185
- os.umask(old_mask)
1186
-
1187
- def test_exist_ok_existing_regular_file(self):
1188
- base = support.TESTFN
1189
- path = os.path.join(support.TESTFN, 'dir1')
1190
- f = open(path, 'w')
1191
- f.write('abc')
1192
- f.close()
1193
- self.assertRaises(OSError, os.makedirs, path)
1194
- self.assertRaises(OSError, os.makedirs, path, exist_ok=False)
1195
- self.assertRaises(OSError, os.makedirs, path, exist_ok=True)
1196
- os.remove(path)
1197
-
1198
- def tearDown(self):
1199
- path = os.path.join(support.TESTFN, 'dir1', 'dir2', 'dir3',
1200
- 'dir4', 'dir5', 'dir6')
1201
- # If the tests failed, the bottom-most directory ('../dir6')
1202
- # may not have been created, so we look for the outermost directory
1203
- # that exists.
1204
- while not os.path.exists(path) and path != support.TESTFN:
1205
- path = os.path.dirname(path)
1206
-
1207
- os.removedirs(path)
1208
-
1209
-
1210
- @unittest.skipUnless(hasattr(os, 'chown'), "Test needs chown")
1211
- class ChownFileTests(unittest.TestCase):
1212
-
1213
- @classmethod
1214
- def setUpClass(cls):
1215
- os.mkdir(support.TESTFN)
1216
-
1217
- def test_chown_uid_gid_arguments_must_be_index(self):
1218
- stat = os.stat(support.TESTFN)
1219
- uid = stat.st_uid
1220
- gid = stat.st_gid
1221
- for value in (-1.0, -1j, decimal.Decimal(-1), fractions.Fraction(-2, 2)):
1222
- self.assertRaises(TypeError, os.chown, support.TESTFN, value, gid)
1223
- self.assertRaises(TypeError, os.chown, support.TESTFN, uid, value)
1224
- self.assertIsNone(os.chown(support.TESTFN, uid, gid))
1225
- self.assertIsNone(os.chown(support.TESTFN, -1, -1))
1226
-
1227
- @unittest.skipUnless(len(groups) > 1, "test needs more than one group")
1228
- def test_chown(self):
1229
- gid_1, gid_2 = groups[:2]
1230
- uid = os.stat(support.TESTFN).st_uid
1231
- os.chown(support.TESTFN, uid, gid_1)
1232
- gid = os.stat(support.TESTFN).st_gid
1233
- self.assertEqual(gid, gid_1)
1234
- os.chown(support.TESTFN, uid, gid_2)
1235
- gid = os.stat(support.TESTFN).st_gid
1236
- self.assertEqual(gid, gid_2)
1237
-
1238
- @unittest.skipUnless(root_in_posix and len(all_users) > 1,
1239
- "test needs root privilege and more than one user")
1240
- def test_chown_with_root(self):
1241
- uid_1, uid_2 = all_users[:2]
1242
- gid = os.stat(support.TESTFN).st_gid
1243
- os.chown(support.TESTFN, uid_1, gid)
1244
- uid = os.stat(support.TESTFN).st_uid
1245
- self.assertEqual(uid, uid_1)
1246
- os.chown(support.TESTFN, uid_2, gid)
1247
- uid = os.stat(support.TESTFN).st_uid
1248
- self.assertEqual(uid, uid_2)
1249
-
1250
- @unittest.skipUnless(not root_in_posix and len(all_users) > 1,
1251
- "test needs non-root account and more than one user")
1252
- def test_chown_without_permission(self):
1253
- uid_1, uid_2 = all_users[:2]
1254
- gid = os.stat(support.TESTFN).st_gid
1255
- with self.assertRaises(PermissionError):
1256
- os.chown(support.TESTFN, uid_1, gid)
1257
- os.chown(support.TESTFN, uid_2, gid)
1258
-
1259
- @classmethod
1260
- def tearDownClass(cls):
1261
- os.rmdir(support.TESTFN)
1262
-
1263
-
1264
- class RemoveDirsTests(unittest.TestCase):
1265
- def setUp(self):
1266
- os.makedirs(support.TESTFN)
1267
-
1268
- def tearDown(self):
1269
- support.rmtree(support.TESTFN)
1270
-
1271
- def test_remove_all(self):
1272
- dira = os.path.join(support.TESTFN, 'dira')
1273
- os.mkdir(dira)
1274
- dirb = os.path.join(dira, 'dirb')
1275
- os.mkdir(dirb)
1276
- os.removedirs(dirb)
1277
- self.assertFalse(os.path.exists(dirb))
1278
- self.assertFalse(os.path.exists(dira))
1279
- self.assertFalse(os.path.exists(support.TESTFN))
1280
-
1281
- def test_remove_partial(self):
1282
- dira = os.path.join(support.TESTFN, 'dira')
1283
- os.mkdir(dira)
1284
- dirb = os.path.join(dira, 'dirb')
1285
- os.mkdir(dirb)
1286
- create_file(os.path.join(dira, 'file.txt'))
1287
- os.removedirs(dirb)
1288
- self.assertFalse(os.path.exists(dirb))
1289
- self.assertTrue(os.path.exists(dira))
1290
- self.assertTrue(os.path.exists(support.TESTFN))
1291
-
1292
- def test_remove_nothing(self):
1293
- dira = os.path.join(support.TESTFN, 'dira')
1294
- os.mkdir(dira)
1295
- dirb = os.path.join(dira, 'dirb')
1296
- os.mkdir(dirb)
1297
- create_file(os.path.join(dirb, 'file.txt'))
1298
- with self.assertRaises(OSError):
1299
- os.removedirs(dirb)
1300
- self.assertTrue(os.path.exists(dirb))
1301
- self.assertTrue(os.path.exists(dira))
1302
- self.assertTrue(os.path.exists(support.TESTFN))
1303
-
1304
-
1305
- class DevNullTests(unittest.TestCase):
1306
- def test_devnull(self):
1307
- with open(os.devnull, 'wb', 0) as f:
1308
- f.write(b'hello')
1309
- f.close()
1310
- with open(os.devnull, 'rb') as f:
1311
- self.assertEqual(f.read(), b'')
1312
-
1313
-
1314
- class URandomTests(unittest.TestCase):
1315
- def test_urandom_length(self):
1316
- self.assertEqual(len(os.urandom(0)), 0)
1317
- self.assertEqual(len(os.urandom(1)), 1)
1318
- self.assertEqual(len(os.urandom(10)), 10)
1319
- self.assertEqual(len(os.urandom(100)), 100)
1320
- self.assertEqual(len(os.urandom(1000)), 1000)
1321
-
1322
- def test_urandom_value(self):
1323
- data1 = os.urandom(16)
1324
- self.assertIsInstance(data1, bytes)
1325
- data2 = os.urandom(16)
1326
- self.assertNotEqual(data1, data2)
1327
-
1328
- def get_urandom_subprocess(self, count):
1329
- code = '\n'.join((
1330
- 'import os, sys',
1331
- 'data = os.urandom(%s)' % count,
1332
- 'sys.stdout.buffer.write(data)',
1333
- 'sys.stdout.buffer.flush()'))
1334
- out = assert_python_ok('-c', code)
1335
- stdout = out[1]
1336
- self.assertEqual(len(stdout), 16)
1337
- return stdout
1338
-
1339
- def test_urandom_subprocess(self):
1340
- data1 = self.get_urandom_subprocess(16)
1341
- data2 = self.get_urandom_subprocess(16)
1342
- self.assertNotEqual(data1, data2)
1343
-
1344
-
1345
- @unittest.skipUnless(hasattr(os, 'getrandom'), 'need os.getrandom()')
1346
- class GetRandomTests(unittest.TestCase):
1347
- @classmethod
1348
- def setUpClass(cls):
1349
- try:
1350
- os.getrandom(1)
1351
- except OSError as exc:
1352
- if exc.errno == errno.ENOSYS:
1353
- # Python compiled on a more recent Linux version
1354
- # than the current Linux kernel
1355
- raise unittest.SkipTest("getrandom() syscall fails with ENOSYS")
1356
- else:
1357
- raise
1358
-
1359
- def test_getrandom_type(self):
1360
- data = os.getrandom(16)
1361
- self.assertIsInstance(data, bytes)
1362
- self.assertEqual(len(data), 16)
1363
-
1364
- def test_getrandom0(self):
1365
- empty = os.getrandom(0)
1366
- self.assertEqual(empty, b'')
1367
-
1368
- def test_getrandom_random(self):
1369
- self.assertTrue(hasattr(os, 'GRND_RANDOM'))
1370
-
1371
- # Don't test os.getrandom(1, os.GRND_RANDOM) to not consume the rare
1372
- # resource /dev/random
1373
-
1374
- def test_getrandom_nonblock(self):
1375
- # The call must not fail. Check also that the flag exists
1376
- try:
1377
- os.getrandom(1, os.GRND_NONBLOCK)
1378
- except BlockingIOError:
1379
- # System urandom is not initialized yet
1380
- pass
1381
-
1382
- def test_getrandom_value(self):
1383
- data1 = os.getrandom(16)
1384
- data2 = os.getrandom(16)
1385
- self.assertNotEqual(data1, data2)
1386
-
1387
-
1388
- # os.urandom() doesn't use a file descriptor when it is implemented with the
1389
- # getentropy() function, the getrandom() function or the getrandom() syscall
1390
- OS_URANDOM_DONT_USE_FD = (
1391
- sysconfig.get_config_var('HAVE_GETENTROPY') == 1
1392
- or sysconfig.get_config_var('HAVE_GETRANDOM') == 1
1393
- or sysconfig.get_config_var('HAVE_GETRANDOM_SYSCALL') == 1)
1394
-
1395
- @unittest.skipIf(OS_URANDOM_DONT_USE_FD ,
1396
- "os.random() does not use a file descriptor")
1397
- class URandomFDTests(unittest.TestCase):
1398
- @unittest.skipUnless(resource, "test requires the resource module")
1399
- def test_urandom_failure(self):
1400
- # Check urandom() failing when it is not able to open /dev/random.
1401
- # We spawn a new process to make the test more robust (if getrlimit()
1402
- # failed to restore the file descriptor limit after this, the whole
1403
- # test suite would crash; this actually happened on the OS X Tiger
1404
- # buildbot).
1405
- code = """if 1:
1406
- import errno
1407
- import os
1408
- import resource
1409
-
1410
- soft_limit, hard_limit = resource.getrlimit(resource.RLIMIT_NOFILE)
1411
- resource.setrlimit(resource.RLIMIT_NOFILE, (1, hard_limit))
1412
- try:
1413
- os.urandom(16)
1414
- except OSError as e:
1415
- assert e.errno == errno.EMFILE, e.errno
1416
- else:
1417
- raise AssertionError("OSError not raised")
1418
- """
1419
- assert_python_ok('-c', code)
1420
-
1421
- def test_urandom_fd_closed(self):
1422
- # Issue #21207: urandom() should reopen its fd to /dev/urandom if
1423
- # closed.
1424
- code = """if 1:
1425
- import os
1426
- import sys
1427
- import test.support
1428
- os.urandom(4)
1429
- with test.support.SuppressCrashReport():
1430
- os.closerange(3, 256)
1431
- sys.stdout.buffer.write(os.urandom(4))
1432
- """
1433
- rc, out, err = assert_python_ok('-Sc', code)
1434
-
1435
- def test_urandom_fd_reopened(self):
1436
- # Issue #21207: urandom() should detect its fd to /dev/urandom
1437
- # changed to something else, and reopen it.
1438
- self.addCleanup(support.unlink, support.TESTFN)
1439
- create_file(support.TESTFN, b"x" * 256)
1440
-
1441
- code = """if 1:
1442
- import os
1443
- import sys
1444
- import test.support
1445
- os.urandom(4)
1446
- with test.support.SuppressCrashReport():
1447
- for fd in range(3, 256):
1448
- try:
1449
- os.close(fd)
1450
- except OSError:
1451
- pass
1452
- else:
1453
- # Found the urandom fd (XXX hopefully)
1454
- break
1455
- os.closerange(3, 256)
1456
- with open({TESTFN!r}, 'rb') as f:
1457
- new_fd = f.fileno()
1458
- # Issue #26935: posix allows new_fd and fd to be equal but
1459
- # some libc implementations have dup2 return an error in this
1460
- # case.
1461
- if new_fd != fd:
1462
- os.dup2(new_fd, fd)
1463
- sys.stdout.buffer.write(os.urandom(4))
1464
- sys.stdout.buffer.write(os.urandom(4))
1465
- """.format(TESTFN=support.TESTFN)
1466
- rc, out, err = assert_python_ok('-Sc', code)
1467
- self.assertEqual(len(out), 8)
1468
- self.assertNotEqual(out[0:4], out[4:8])
1469
- rc, out2, err2 = assert_python_ok('-Sc', code)
1470
- self.assertEqual(len(out2), 8)
1471
- self.assertNotEqual(out2, out)
1472
-
1473
-
1474
- @contextlib.contextmanager
1475
- def _execvpe_mockup(defpath=None):
1476
- """
1477
- Stubs out execv and execve functions when used as context manager.
1478
- Records exec calls. The mock execv and execve functions always raise an
1479
- exception as they would normally never return.
1480
- """
1481
- # A list of tuples containing (function name, first arg, args)
1482
- # of calls to execv or execve that have been made.
1483
- calls = []
1484
-
1485
- def mock_execv(name, *args):
1486
- calls.append(('execv', name, args))
1487
- raise RuntimeError("execv called")
1488
-
1489
- def mock_execve(name, *args):
1490
- calls.append(('execve', name, args))
1491
- raise OSError(errno.ENOTDIR, "execve called")
1492
-
1493
- try:
1494
- orig_execv = os.execv
1495
- orig_execve = os.execve
1496
- orig_defpath = os.defpath
1497
- os.execv = mock_execv
1498
- os.execve = mock_execve
1499
- if defpath is not None:
1500
- os.defpath = defpath
1501
- yield calls
1502
- finally:
1503
- os.execv = orig_execv
1504
- os.execve = orig_execve
1505
- os.defpath = orig_defpath
1506
-
1507
-
1508
- class ExecTests(unittest.TestCase):
1509
- @unittest.skipIf(USING_LINUXTHREADS,
1510
- "avoid triggering a linuxthreads bug: see issue #4970")
1511
- def test_execvpe_with_bad_program(self):
1512
- self.assertRaises(OSError, os.execvpe, 'no such app-',
1513
- ['no such app-'], None)
1514
-
1515
- def test_execv_with_bad_arglist(self):
1516
- self.assertRaises(ValueError, os.execv, 'notepad', ())
1517
- self.assertRaises(ValueError, os.execv, 'notepad', [])
1518
- self.assertRaises(ValueError, os.execv, 'notepad', ('',))
1519
- self.assertRaises(ValueError, os.execv, 'notepad', [''])
1520
-
1521
- def test_execvpe_with_bad_arglist(self):
1522
- self.assertRaises(ValueError, os.execvpe, 'notepad', [], None)
1523
- self.assertRaises(ValueError, os.execvpe, 'notepad', [], {})
1524
- self.assertRaises(ValueError, os.execvpe, 'notepad', [''], {})
1525
-
1526
- @unittest.skipUnless(hasattr(os, '_execvpe'),
1527
- "No internal os._execvpe function to test.")
1528
- def _test_internal_execvpe(self, test_type):
1529
- program_path = os.sep + 'absolutepath'
1530
- if test_type is bytes:
1531
- program = b'executable'
1532
- fullpath = os.path.join(os.fsencode(program_path), program)
1533
- native_fullpath = fullpath
1534
- arguments = [b'progname', 'arg1', 'arg2']
1535
- else:
1536
- program = 'executable'
1537
- arguments = ['progname', 'arg1', 'arg2']
1538
- fullpath = os.path.join(program_path, program)
1539
- if os.name != "nt":
1540
- native_fullpath = os.fsencode(fullpath)
1541
- else:
1542
- native_fullpath = fullpath
1543
- env = {'spam': 'beans'}
1544
-
1545
- # test os._execvpe() with an absolute path
1546
- with _execvpe_mockup() as calls:
1547
- self.assertRaises(RuntimeError,
1548
- os._execvpe, fullpath, arguments)
1549
- self.assertEqual(len(calls), 1)
1550
- self.assertEqual(calls[0], ('execv', fullpath, (arguments,)))
1551
-
1552
- # test os._execvpe() with a relative path:
1553
- # os.get_exec_path() returns defpath
1554
- with _execvpe_mockup(defpath=program_path) as calls:
1555
- self.assertRaises(OSError,
1556
- os._execvpe, program, arguments, env=env)
1557
- self.assertEqual(len(calls), 1)
1558
- self.assertSequenceEqual(calls[0],
1559
- ('execve', native_fullpath, (arguments, env)))
1560
-
1561
- # test os._execvpe() with a relative path:
1562
- # os.get_exec_path() reads the 'PATH' variable
1563
- with _execvpe_mockup() as calls:
1564
- env_path = env.copy()
1565
- if test_type is bytes:
1566
- env_path[b'PATH'] = program_path
1567
- else:
1568
- env_path['PATH'] = program_path
1569
- self.assertRaises(OSError,
1570
- os._execvpe, program, arguments, env=env_path)
1571
- self.assertEqual(len(calls), 1)
1572
- self.assertSequenceEqual(calls[0],
1573
- ('execve', native_fullpath, (arguments, env_path)))
1574
-
1575
- def test_internal_execvpe_str(self):
1576
- self._test_internal_execvpe(str)
1577
- if os.name != "nt":
1578
- self._test_internal_execvpe(bytes)
1579
-
1580
- def test_execve_invalid_env(self):
1581
- args = [sys.executable, '-c', 'pass']
1582
-
1583
- # null character in the enviroment variable name
1584
- newenv = os.environ.copy()
1585
- newenv["FRUIT\0VEGETABLE"] = "cabbage"
1586
- with self.assertRaises(ValueError):
1587
- os.execve(args[0], args, newenv)
1588
-
1589
- # null character in the enviroment variable value
1590
- newenv = os.environ.copy()
1591
- newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
1592
- with self.assertRaises(ValueError):
1593
- os.execve(args[0], args, newenv)
1594
-
1595
- # equal character in the enviroment variable name
1596
- newenv = os.environ.copy()
1597
- newenv["FRUIT=ORANGE"] = "lemon"
1598
- with self.assertRaises(ValueError):
1599
- os.execve(args[0], args, newenv)
1600
-
1601
-
1602
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
1603
- class Win32ErrorTests(unittest.TestCase):
1604
- def setUp(self):
1605
- try:
1606
- os.stat(support.TESTFN)
1607
- except FileNotFoundError:
1608
- exists = False
1609
- except OSError as exc:
1610
- exists = True
1611
- self.fail("file %s must not exist; os.stat failed with %s"
1612
- % (support.TESTFN, exc))
1613
- else:
1614
- self.fail("file %s must not exist" % support.TESTFN)
1615
-
1616
- def test_rename(self):
1617
- self.assertRaises(OSError, os.rename, support.TESTFN, support.TESTFN+".bak")
1618
-
1619
- def test_remove(self):
1620
- self.assertRaises(OSError, os.remove, support.TESTFN)
1621
-
1622
- def test_chdir(self):
1623
- self.assertRaises(OSError, os.chdir, support.TESTFN)
1624
-
1625
- def test_mkdir(self):
1626
- self.addCleanup(support.unlink, support.TESTFN)
1627
-
1628
- with open(support.TESTFN, "x") as f:
1629
- self.assertRaises(OSError, os.mkdir, support.TESTFN)
1630
-
1631
- def test_utime(self):
1632
- self.assertRaises(OSError, os.utime, support.TESTFN, None)
1633
-
1634
- def test_chmod(self):
1635
- self.assertRaises(OSError, os.chmod, support.TESTFN, 0)
1636
-
1637
-
1638
- class TestInvalidFD(unittest.TestCase):
1639
- singles = ["fchdir", "dup", "fdopen", "fdatasync", "fstat",
1640
- "fstatvfs", "fsync", "tcgetpgrp", "ttyname"]
1641
- #singles.append("close")
1642
- #We omit close because it doesn't raise an exception on some platforms
1643
- def get_single(f):
1644
- def helper(self):
1645
- if hasattr(os, f):
1646
- self.check(getattr(os, f))
1647
- return helper
1648
- for f in singles:
1649
- locals()["test_"+f] = get_single(f)
1650
-
1651
- def check(self, f, *args):
1652
- try:
1653
- f(support.make_bad_fd(), *args)
1654
- except OSError as e:
1655
- self.assertEqual(e.errno, errno.EBADF)
1656
- else:
1657
- self.fail("%r didn't raise an OSError with a bad file descriptor"
1658
- % f)
1659
-
1660
- @unittest.skipUnless(hasattr(os, 'isatty'), 'test needs os.isatty()')
1661
- def test_isatty(self):
1662
- self.assertEqual(os.isatty(support.make_bad_fd()), False)
1663
-
1664
- @unittest.skipUnless(hasattr(os, 'closerange'), 'test needs os.closerange()')
1665
- def test_closerange(self):
1666
- fd = support.make_bad_fd()
1667
- # Make sure none of the descriptors we are about to close are
1668
- # currently valid (issue 6542).
1669
- for i in range(10):
1670
- try: os.fstat(fd+i)
1671
- except OSError:
1672
- pass
1673
- else:
1674
- break
1675
- if i < 2:
1676
- raise unittest.SkipTest(
1677
- "Unable to acquire a range of invalid file descriptors")
1678
- self.assertEqual(os.closerange(fd, fd + i-1), None)
1679
-
1680
- @unittest.skipUnless(hasattr(os, 'dup2'), 'test needs os.dup2()')
1681
- def test_dup2(self):
1682
- self.check(os.dup2, 20)
1683
-
1684
- @unittest.skipUnless(hasattr(os, 'fchmod'), 'test needs os.fchmod()')
1685
- def test_fchmod(self):
1686
- self.check(os.fchmod, 0)
1687
-
1688
- @unittest.skipUnless(hasattr(os, 'fchown'), 'test needs os.fchown()')
1689
- def test_fchown(self):
1690
- self.check(os.fchown, -1, -1)
1691
-
1692
- @unittest.skipUnless(hasattr(os, 'fpathconf'), 'test needs os.fpathconf()')
1693
- def test_fpathconf(self):
1694
- self.check(os.pathconf, "PC_NAME_MAX")
1695
- self.check(os.fpathconf, "PC_NAME_MAX")
1696
-
1697
- @unittest.skipUnless(hasattr(os, 'ftruncate'), 'test needs os.ftruncate()')
1698
- def test_ftruncate(self):
1699
- self.check(os.truncate, 0)
1700
- self.check(os.ftruncate, 0)
1701
-
1702
- @unittest.skipUnless(hasattr(os, 'lseek'), 'test needs os.lseek()')
1703
- def test_lseek(self):
1704
- self.check(os.lseek, 0, 0)
1705
-
1706
- @unittest.skipUnless(hasattr(os, 'read'), 'test needs os.read()')
1707
- def test_read(self):
1708
- self.check(os.read, 1)
1709
-
1710
- @unittest.skipUnless(hasattr(os, 'readv'), 'test needs os.readv()')
1711
- def test_readv(self):
1712
- buf = bytearray(10)
1713
- self.check(os.readv, [buf])
1714
-
1715
- @unittest.skipUnless(hasattr(os, 'tcsetpgrp'), 'test needs os.tcsetpgrp()')
1716
- def test_tcsetpgrpt(self):
1717
- self.check(os.tcsetpgrp, 0)
1718
-
1719
- @unittest.skipUnless(hasattr(os, 'write'), 'test needs os.write()')
1720
- def test_write(self):
1721
- self.check(os.write, b" ")
1722
-
1723
- @unittest.skipUnless(hasattr(os, 'writev'), 'test needs os.writev()')
1724
- def test_writev(self):
1725
- self.check(os.writev, [b'abc'])
1726
-
1727
- def test_inheritable(self):
1728
- self.check(os.get_inheritable)
1729
- self.check(os.set_inheritable, True)
1730
-
1731
- @unittest.skipUnless(hasattr(os, 'get_blocking'),
1732
- 'needs os.get_blocking() and os.set_blocking()')
1733
- def test_blocking(self):
1734
- self.check(os.get_blocking)
1735
- self.check(os.set_blocking, True)
1736
-
1737
-
1738
- class LinkTests(unittest.TestCase):
1739
- def setUp(self):
1740
- self.file1 = support.TESTFN
1741
- self.file2 = os.path.join(support.TESTFN + "2")
1742
-
1743
- def tearDown(self):
1744
- for file in (self.file1, self.file2):
1745
- if os.path.exists(file):
1746
- os.unlink(file)
1747
-
1748
- def _test_link(self, file1, file2):
1749
- create_file(file1)
1750
-
1751
- os.link(file1, file2)
1752
- with open(file1, "r") as f1, open(file2, "r") as f2:
1753
- self.assertTrue(os.path.sameopenfile(f1.fileno(), f2.fileno()))
1754
-
1755
- def test_link(self):
1756
- self._test_link(self.file1, self.file2)
1757
-
1758
- def test_link_bytes(self):
1759
- self._test_link(bytes(self.file1, sys.getfilesystemencoding()),
1760
- bytes(self.file2, sys.getfilesystemencoding()))
1761
-
1762
- def test_unicode_name(self):
1763
- try:
1764
- os.fsencode("\xf1")
1765
- except UnicodeError:
1766
- raise unittest.SkipTest("Unable to encode for this platform.")
1767
-
1768
- self.file1 += "\xf1"
1769
- self.file2 = self.file1 + "2"
1770
- self._test_link(self.file1, self.file2)
1771
-
1772
- @unittest.skipIf(sys.platform == "win32", "Posix specific tests")
1773
- class PosixUidGidTests(unittest.TestCase):
1774
- @unittest.skipUnless(hasattr(os, 'setuid'), 'test needs os.setuid()')
1775
- def test_setuid(self):
1776
- if os.getuid() != 0:
1777
- self.assertRaises(OSError, os.setuid, 0)
1778
- self.assertRaises(OverflowError, os.setuid, 1<<32)
1779
-
1780
- @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
1781
- def test_setgid(self):
1782
- if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
1783
- self.assertRaises(OSError, os.setgid, 0)
1784
- self.assertRaises(OverflowError, os.setgid, 1<<32)
1785
-
1786
- @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
1787
- def test_seteuid(self):
1788
- if os.getuid() != 0:
1789
- self.assertRaises(OSError, os.seteuid, 0)
1790
- self.assertRaises(OverflowError, os.seteuid, 1<<32)
1791
-
1792
- @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
1793
- def test_setegid(self):
1794
- if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
1795
- self.assertRaises(OSError, os.setegid, 0)
1796
- self.assertRaises(OverflowError, os.setegid, 1<<32)
1797
-
1798
- @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
1799
- def test_setreuid(self):
1800
- if os.getuid() != 0:
1801
- self.assertRaises(OSError, os.setreuid, 0, 0)
1802
- self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
1803
- self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
1804
-
1805
- @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
1806
- def test_setreuid_neg1(self):
1807
- # Needs to accept -1. We run this in a subprocess to avoid
1808
- # altering the test runner's process state (issue8045).
1809
- subprocess.check_call([
1810
- sys.executable, '-c',
1811
- 'import os,sys;os.setreuid(-1,-1);sys.exit(0)'])
1812
-
1813
- @unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()')
1814
- def test_setregid(self):
1815
- if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
1816
- self.assertRaises(OSError, os.setregid, 0, 0)
1817
- self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
1818
- self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
1819
-
1820
- @unittest.skipUnless(hasattr(os, 'setregid'), 'test needs os.setregid()')
1821
- def test_setregid_neg1(self):
1822
- # Needs to accept -1. We run this in a subprocess to avoid
1823
- # altering the test runner's process state (issue8045).
1824
- subprocess.check_call([
1825
- sys.executable, '-c',
1826
- 'import os,sys;os.setregid(-1,-1);sys.exit(0)'])
1827
-
1828
- @unittest.skipIf(sys.platform == "win32", "Posix specific tests")
1829
- class Pep383Tests(unittest.TestCase):
1830
- def setUp(self):
1831
- if support.TESTFN_UNENCODABLE:
1832
- self.dir = support.TESTFN_UNENCODABLE
1833
- elif support.TESTFN_NONASCII:
1834
- self.dir = support.TESTFN_NONASCII
1835
- else:
1836
- self.dir = support.TESTFN
1837
- self.bdir = os.fsencode(self.dir)
1838
-
1839
- bytesfn = []
1840
- def add_filename(fn):
1841
- try:
1842
- fn = os.fsencode(fn)
1843
- except UnicodeEncodeError:
1844
- return
1845
- bytesfn.append(fn)
1846
- add_filename(support.TESTFN_UNICODE)
1847
- if support.TESTFN_UNENCODABLE:
1848
- add_filename(support.TESTFN_UNENCODABLE)
1849
- if support.TESTFN_NONASCII:
1850
- add_filename(support.TESTFN_NONASCII)
1851
- if not bytesfn:
1852
- self.skipTest("couldn't create any non-ascii filename")
1853
-
1854
- self.unicodefn = set()
1855
- os.mkdir(self.dir)
1856
- try:
1857
- for fn in bytesfn:
1858
- support.create_empty_file(os.path.join(self.bdir, fn))
1859
- fn = os.fsdecode(fn)
1860
- if fn in self.unicodefn:
1861
- raise ValueError("duplicate filename")
1862
- self.unicodefn.add(fn)
1863
- except:
1864
- shutil.rmtree(self.dir)
1865
- raise
1866
-
1867
- def tearDown(self):
1868
- shutil.rmtree(self.dir)
1869
-
1870
- def test_listdir(self):
1871
- expected = self.unicodefn
1872
- found = set(os.listdir(self.dir))
1873
- self.assertEqual(found, expected)
1874
- # test listdir without arguments
1875
- current_directory = os.getcwd()
1876
- try:
1877
- os.chdir(os.sep)
1878
- self.assertEqual(set(os.listdir()), set(os.listdir(os.sep)))
1879
- finally:
1880
- os.chdir(current_directory)
1881
-
1882
- def test_open(self):
1883
- for fn in self.unicodefn:
1884
- f = open(os.path.join(self.dir, fn), 'rb')
1885
- f.close()
1886
-
1887
- @unittest.skipUnless(hasattr(os, 'statvfs'),
1888
- "need os.statvfs()")
1889
- def test_statvfs(self):
1890
- # issue #9645
1891
- for fn in self.unicodefn:
1892
- # should not fail with file not found error
1893
- fullname = os.path.join(self.dir, fn)
1894
- os.statvfs(fullname)
1895
-
1896
- def test_stat(self):
1897
- for fn in self.unicodefn:
1898
- os.stat(os.path.join(self.dir, fn))
1899
-
1900
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
1901
- class Win32KillTests(unittest.TestCase):
1902
- def _kill(self, sig):
1903
- # Start sys.executable as a subprocess and communicate from the
1904
- # subprocess to the parent that the interpreter is ready. When it
1905
- # becomes ready, send *sig* via os.kill to the subprocess and check
1906
- # that the return code is equal to *sig*.
1907
- import ctypes
1908
- from ctypes import wintypes
1909
- import msvcrt
1910
-
1911
- # Since we can't access the contents of the process' stdout until the
1912
- # process has exited, use PeekNamedPipe to see what's inside stdout
1913
- # without waiting. This is done so we can tell that the interpreter
1914
- # is started and running at a point where it could handle a signal.
1915
- PeekNamedPipe = ctypes.windll.kernel32.PeekNamedPipe
1916
- PeekNamedPipe.restype = wintypes.BOOL
1917
- PeekNamedPipe.argtypes = (wintypes.HANDLE, # Pipe handle
1918
- ctypes.POINTER(ctypes.c_char), # stdout buf
1919
- wintypes.DWORD, # Buffer size
1920
- ctypes.POINTER(wintypes.DWORD), # bytes read
1921
- ctypes.POINTER(wintypes.DWORD), # bytes avail
1922
- ctypes.POINTER(wintypes.DWORD)) # bytes left
1923
- msg = "running"
1924
- proc = subprocess.Popen([sys.executable, "-c",
1925
- "import sys;"
1926
- "sys.stdout.write('{}');"
1927
- "sys.stdout.flush();"
1928
- "input()".format(msg)],
1929
- stdout=subprocess.PIPE,
1930
- stderr=subprocess.PIPE,
1931
- stdin=subprocess.PIPE)
1932
- self.addCleanup(proc.stdout.close)
1933
- self.addCleanup(proc.stderr.close)
1934
- self.addCleanup(proc.stdin.close)
1935
-
1936
- count, max = 0, 100
1937
- while count < max and proc.poll() is None:
1938
- # Create a string buffer to store the result of stdout from the pipe
1939
- buf = ctypes.create_string_buffer(len(msg))
1940
- # Obtain the text currently in proc.stdout
1941
- # Bytes read/avail/left are left as NULL and unused
1942
- rslt = PeekNamedPipe(msvcrt.get_osfhandle(proc.stdout.fileno()),
1943
- buf, ctypes.sizeof(buf), None, None, None)
1944
- self.assertNotEqual(rslt, 0, "PeekNamedPipe failed")
1945
- if buf.value:
1946
- self.assertEqual(msg, buf.value.decode())
1947
- break
1948
- time.sleep(0.1)
1949
- count += 1
1950
- else:
1951
- self.fail("Did not receive communication from the subprocess")
1952
-
1953
- os.kill(proc.pid, sig)
1954
- self.assertEqual(proc.wait(), sig)
1955
-
1956
- def test_kill_sigterm(self):
1957
- # SIGTERM doesn't mean anything special, but make sure it works
1958
- self._kill(signal.SIGTERM)
1959
-
1960
- def test_kill_int(self):
1961
- # os.kill on Windows can take an int which gets set as the exit code
1962
- self._kill(100)
1963
-
1964
- def _kill_with_event(self, event, name):
1965
- tagname = "test_os_%s" % uuid.uuid1()
1966
- m = mmap.mmap(-1, 1, tagname)
1967
- m[0] = 0
1968
- # Run a script which has console control handling enabled.
1969
- proc = subprocess.Popen([sys.executable,
1970
- os.path.join(os.path.dirname(__file__),
1971
- "win_console_handler.py"), tagname],
1972
- creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)
1973
- # Let the interpreter startup before we send signals. See #3137.
1974
- count, max = 0, 100
1975
- while count < max and proc.poll() is None:
1976
- if m[0] == 1:
1977
- break
1978
- time.sleep(0.1)
1979
- count += 1
1980
- else:
1981
- # Forcefully kill the process if we weren't able to signal it.
1982
- os.kill(proc.pid, signal.SIGINT)
1983
- self.fail("Subprocess didn't finish initialization")
1984
- os.kill(proc.pid, event)
1985
- # proc.send_signal(event) could also be done here.
1986
- # Allow time for the signal to be passed and the process to exit.
1987
- time.sleep(0.5)
1988
- if not proc.poll():
1989
- # Forcefully kill the process if we weren't able to signal it.
1990
- os.kill(proc.pid, signal.SIGINT)
1991
- self.fail("subprocess did not stop on {}".format(name))
1992
-
1993
- @unittest.skip("subprocesses aren't inheriting Ctrl+C property")
1994
- def test_CTRL_C_EVENT(self):
1995
- from ctypes import wintypes
1996
- import ctypes
1997
-
1998
- # Make a NULL value by creating a pointer with no argument.
1999
- NULL = ctypes.POINTER(ctypes.c_int)()
2000
- SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler
2001
- SetConsoleCtrlHandler.argtypes = (ctypes.POINTER(ctypes.c_int),
2002
- wintypes.BOOL)
2003
- SetConsoleCtrlHandler.restype = wintypes.BOOL
2004
-
2005
- # Calling this with NULL and FALSE causes the calling process to
2006
- # handle Ctrl+C, rather than ignore it. This property is inherited
2007
- # by subprocesses.
2008
- SetConsoleCtrlHandler(NULL, 0)
2009
-
2010
- self._kill_with_event(signal.CTRL_C_EVENT, "CTRL_C_EVENT")
2011
-
2012
- def test_CTRL_BREAK_EVENT(self):
2013
- self._kill_with_event(signal.CTRL_BREAK_EVENT, "CTRL_BREAK_EVENT")
2014
-
2015
-
2016
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
2017
- class Win32ListdirTests(unittest.TestCase):
2018
- """Test listdir on Windows."""
2019
-
2020
- def setUp(self):
2021
- self.created_paths = []
2022
- for i in range(2):
2023
- dir_name = 'SUB%d' % i
2024
- dir_path = os.path.join(support.TESTFN, dir_name)
2025
- file_name = 'FILE%d' % i
2026
- file_path = os.path.join(support.TESTFN, file_name)
2027
- os.makedirs(dir_path)
2028
- with open(file_path, 'w') as f:
2029
- f.write("I'm %s and proud of it. Blame test_os.\n" % file_path)
2030
- self.created_paths.extend([dir_name, file_name])
2031
- self.created_paths.sort()
2032
-
2033
- def tearDown(self):
2034
- shutil.rmtree(support.TESTFN)
2035
-
2036
- def test_listdir_no_extended_path(self):
2037
- """Test when the path is not an "extended" path."""
2038
- # unicode
2039
- self.assertEqual(
2040
- sorted(os.listdir(support.TESTFN)),
2041
- self.created_paths)
2042
-
2043
- # bytes
2044
- self.assertEqual(
2045
- sorted(os.listdir(os.fsencode(support.TESTFN))),
2046
- [os.fsencode(path) for path in self.created_paths])
2047
-
2048
- def test_listdir_extended_path(self):
2049
- """Test when the path starts with '\\\\?\\'."""
2050
- # See: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath
2051
- # unicode
2052
- path = '\\\\?\\' + os.path.abspath(support.TESTFN)
2053
- self.assertEqual(
2054
- sorted(os.listdir(path)),
2055
- self.created_paths)
2056
-
2057
- # bytes
2058
- path = b'\\\\?\\' + os.fsencode(os.path.abspath(support.TESTFN))
2059
- self.assertEqual(
2060
- sorted(os.listdir(path)),
2061
- [os.fsencode(path) for path in self.created_paths])
2062
-
2063
-
2064
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
2065
- @support.skip_unless_symlink
2066
- class Win32SymlinkTests(unittest.TestCase):
2067
- filelink = 'filelinktest'
2068
- filelink_target = os.path.abspath(__file__)
2069
- dirlink = 'dirlinktest'
2070
- dirlink_target = os.path.dirname(filelink_target)
2071
- missing_link = 'missing link'
2072
-
2073
- def setUp(self):
2074
- assert os.path.exists(self.dirlink_target)
2075
- assert os.path.exists(self.filelink_target)
2076
- assert not os.path.exists(self.dirlink)
2077
- assert not os.path.exists(self.filelink)
2078
- assert not os.path.exists(self.missing_link)
2079
-
2080
- def tearDown(self):
2081
- if os.path.exists(self.filelink):
2082
- os.remove(self.filelink)
2083
- if os.path.exists(self.dirlink):
2084
- os.rmdir(self.dirlink)
2085
- if os.path.lexists(self.missing_link):
2086
- os.remove(self.missing_link)
2087
-
2088
- def test_directory_link(self):
2089
- os.symlink(self.dirlink_target, self.dirlink)
2090
- self.assertTrue(os.path.exists(self.dirlink))
2091
- self.assertTrue(os.path.isdir(self.dirlink))
2092
- self.assertTrue(os.path.islink(self.dirlink))
2093
- self.check_stat(self.dirlink, self.dirlink_target)
2094
-
2095
- def test_file_link(self):
2096
- os.symlink(self.filelink_target, self.filelink)
2097
- self.assertTrue(os.path.exists(self.filelink))
2098
- self.assertTrue(os.path.isfile(self.filelink))
2099
- self.assertTrue(os.path.islink(self.filelink))
2100
- self.check_stat(self.filelink, self.filelink_target)
2101
-
2102
- def _create_missing_dir_link(self):
2103
- 'Create a "directory" link to a non-existent target'
2104
- linkname = self.missing_link
2105
- if os.path.lexists(linkname):
2106
- os.remove(linkname)
2107
- target = r'c:\\target does not exist.29r3c740'
2108
- assert not os.path.exists(target)
2109
- target_is_dir = True
2110
- os.symlink(target, linkname, target_is_dir)
2111
-
2112
- def test_remove_directory_link_to_missing_target(self):
2113
- self._create_missing_dir_link()
2114
- # For compatibility with Unix, os.remove will check the
2115
- # directory status and call RemoveDirectory if the symlink
2116
- # was created with target_is_dir==True.
2117
- os.remove(self.missing_link)
2118
-
2119
- @unittest.skip("currently fails; consider for improvement")
2120
- def test_isdir_on_directory_link_to_missing_target(self):
2121
- self._create_missing_dir_link()
2122
- # consider having isdir return true for directory links
2123
- self.assertTrue(os.path.isdir(self.missing_link))
2124
-
2125
- @unittest.skip("currently fails; consider for improvement")
2126
- def test_rmdir_on_directory_link_to_missing_target(self):
2127
- self._create_missing_dir_link()
2128
- # consider allowing rmdir to remove directory links
2129
- os.rmdir(self.missing_link)
2130
-
2131
- def check_stat(self, link, target):
2132
- self.assertEqual(os.stat(link), os.stat(target))
2133
- self.assertNotEqual(os.lstat(link), os.stat(link))
2134
-
2135
- bytes_link = os.fsencode(link)
2136
- self.assertEqual(os.stat(bytes_link), os.stat(target))
2137
- self.assertNotEqual(os.lstat(bytes_link), os.stat(bytes_link))
2138
-
2139
- def test_12084(self):
2140
- level1 = os.path.abspath(support.TESTFN)
2141
- level2 = os.path.join(level1, "level2")
2142
- level3 = os.path.join(level2, "level3")
2143
- self.addCleanup(support.rmtree, level1)
2144
-
2145
- os.mkdir(level1)
2146
- os.mkdir(level2)
2147
- os.mkdir(level3)
2148
-
2149
- file1 = os.path.abspath(os.path.join(level1, "file1"))
2150
- create_file(file1)
2151
-
2152
- orig_dir = os.getcwd()
2153
- try:
2154
- os.chdir(level2)
2155
- link = os.path.join(level2, "link")
2156
- os.symlink(os.path.relpath(file1), "link")
2157
- self.assertIn("link", os.listdir(os.getcwd()))
2158
-
2159
- # Check os.stat calls from the same dir as the link
2160
- self.assertEqual(os.stat(file1), os.stat("link"))
2161
-
2162
- # Check os.stat calls from a dir below the link
2163
- os.chdir(level1)
2164
- self.assertEqual(os.stat(file1),
2165
- os.stat(os.path.relpath(link)))
2166
-
2167
- # Check os.stat calls from a dir above the link
2168
- os.chdir(level3)
2169
- self.assertEqual(os.stat(file1),
2170
- os.stat(os.path.relpath(link)))
2171
- finally:
2172
- os.chdir(orig_dir)
2173
-
2174
-
2175
- @unittest.skipUnless(sys.platform == "win32", "Win32 specific tests")
2176
- class Win32JunctionTests(unittest.TestCase):
2177
- junction = 'junctiontest'
2178
- junction_target = os.path.dirname(os.path.abspath(__file__))
2179
-
2180
- def setUp(self):
2181
- assert os.path.exists(self.junction_target)
2182
- assert not os.path.exists(self.junction)
2183
-
2184
- def tearDown(self):
2185
- if os.path.exists(self.junction):
2186
- # os.rmdir delegates to Windows' RemoveDirectoryW,
2187
- # which removes junction points safely.
2188
- os.rmdir(self.junction)
2189
-
2190
- def test_create_junction(self):
2191
- _winapi.CreateJunction(self.junction_target, self.junction)
2192
- self.assertTrue(os.path.exists(self.junction))
2193
- self.assertTrue(os.path.isdir(self.junction))
2194
-
2195
- # Junctions are not recognized as links.
2196
- self.assertFalse(os.path.islink(self.junction))
2197
-
2198
- def test_unlink_removes_junction(self):
2199
- _winapi.CreateJunction(self.junction_target, self.junction)
2200
- self.assertTrue(os.path.exists(self.junction))
2201
-
2202
- os.unlink(self.junction)
2203
- self.assertFalse(os.path.exists(self.junction))
2204
-
2205
-
2206
- @support.skip_unless_symlink
2207
- class NonLocalSymlinkTests(unittest.TestCase):
2208
-
2209
- def setUp(self):
2210
- r"""
2211
- Create this structure:
2212
-
2213
- base
2214
- \___ some_dir
2215
- """
2216
- os.makedirs('base/some_dir')
2217
-
2218
- def tearDown(self):
2219
- shutil.rmtree('base')
2220
-
2221
- def test_directory_link_nonlocal(self):
2222
- """
2223
- The symlink target should resolve relative to the link, not relative
2224
- to the current directory.
2225
-
2226
- Then, link base/some_link -> base/some_dir and ensure that some_link
2227
- is resolved as a directory.
2228
-
2229
- In issue13772, it was discovered that directory detection failed if
2230
- the symlink target was not specified relative to the current
2231
- directory, which was a defect in the implementation.
2232
- """
2233
- src = os.path.join('base', 'some_link')
2234
- os.symlink('some_dir', src)
2235
- assert os.path.isdir(src)
2236
-
2237
-
2238
- class FSEncodingTests(unittest.TestCase):
2239
- def test_nop(self):
2240
- self.assertEqual(os.fsencode(b'abc\xff'), b'abc\xff')
2241
- self.assertEqual(os.fsdecode('abc\u0141'), 'abc\u0141')
2242
-
2243
- def test_identity(self):
2244
- # assert fsdecode(fsencode(x)) == x
2245
- for fn in ('unicode\u0141', 'latin\xe9', 'ascii'):
2246
- try:
2247
- bytesfn = os.fsencode(fn)
2248
- except UnicodeEncodeError:
2249
- continue
2250
- self.assertEqual(os.fsdecode(bytesfn), fn)
2251
-
2252
-
2253
-
2254
- class DeviceEncodingTests(unittest.TestCase):
2255
-
2256
- def test_bad_fd(self):
2257
- # Return None when an fd doesn't actually exist.
2258
- self.assertIsNone(os.device_encoding(123456))
2259
-
2260
- @unittest.skipUnless(os.isatty(0) and (sys.platform.startswith('win') or
2261
- (hasattr(locale, 'nl_langinfo') and hasattr(locale, 'CODESET'))),
2262
- 'test requires a tty and either Windows or nl_langinfo(CODESET)')
2263
- def test_device_encoding(self):
2264
- encoding = os.device_encoding(0)
2265
- self.assertIsNotNone(encoding)
2266
- self.assertTrue(codecs.lookup(encoding))
2267
-
2268
-
2269
- class PidTests(unittest.TestCase):
2270
- @unittest.skipUnless(hasattr(os, 'getppid'), "test needs os.getppid")
2271
- def test_getppid(self):
2272
- p = subprocess.Popen([sys.executable, '-c',
2273
- 'import os; print(os.getppid())'],
2274
- stdout=subprocess.PIPE)
2275
- stdout, _ = p.communicate()
2276
- # We are the parent of our subprocess
2277
- self.assertEqual(int(stdout), os.getpid())
2278
-
2279
- def test_waitpid(self):
2280
- args = [sys.executable, '-c', 'pass']
2281
- # Add an implicit test for PyUnicode_FSConverter().
2282
- pid = os.spawnv(os.P_NOWAIT, _PathLike(args[0]), args)
2283
- status = os.waitpid(pid, 0)
2284
- self.assertEqual(status, (pid, 0))
2285
-
2286
-
2287
- class SpawnTests(unittest.TestCase):
2288
- def create_args(self, *, with_env=False, use_bytes=False):
2289
- self.exitcode = 17
2290
-
2291
- filename = support.TESTFN
2292
- self.addCleanup(support.unlink, filename)
2293
-
2294
- if not with_env:
2295
- code = 'import sys; sys.exit(%s)' % self.exitcode
2296
- else:
2297
- self.env = dict(os.environ)
2298
- # create an unique key
2299
- self.key = str(uuid.uuid4())
2300
- self.env[self.key] = self.key
2301
- # read the variable from os.environ to check that it exists
2302
- code = ('import sys, os; magic = os.environ[%r]; sys.exit(%s)'
2303
- % (self.key, self.exitcode))
2304
-
2305
- with open(filename, "w") as fp:
2306
- fp.write(code)
2307
-
2308
- args = [sys.executable, filename]
2309
- if use_bytes:
2310
- args = [os.fsencode(a) for a in args]
2311
- self.env = {os.fsencode(k): os.fsencode(v)
2312
- for k, v in self.env.items()}
2313
-
2314
- return args
2315
-
2316
- @requires_os_func('spawnl')
2317
- def test_spawnl(self):
2318
- args = self.create_args()
2319
- exitcode = os.spawnl(os.P_WAIT, args[0], *args)
2320
- self.assertEqual(exitcode, self.exitcode)
2321
-
2322
- @requires_os_func('spawnle')
2323
- def test_spawnle(self):
2324
- args = self.create_args(with_env=True)
2325
- exitcode = os.spawnle(os.P_WAIT, args[0], *args, self.env)
2326
- self.assertEqual(exitcode, self.exitcode)
2327
-
2328
- @requires_os_func('spawnlp')
2329
- def test_spawnlp(self):
2330
- args = self.create_args()
2331
- exitcode = os.spawnlp(os.P_WAIT, args[0], *args)
2332
- self.assertEqual(exitcode, self.exitcode)
2333
-
2334
- @requires_os_func('spawnlpe')
2335
- def test_spawnlpe(self):
2336
- args = self.create_args(with_env=True)
2337
- exitcode = os.spawnlpe(os.P_WAIT, args[0], *args, self.env)
2338
- self.assertEqual(exitcode, self.exitcode)
2339
-
2340
- @requires_os_func('spawnv')
2341
- def test_spawnv(self):
2342
- args = self.create_args()
2343
- exitcode = os.spawnv(os.P_WAIT, args[0], args)
2344
- self.assertEqual(exitcode, self.exitcode)
2345
-
2346
- @requires_os_func('spawnve')
2347
- def test_spawnve(self):
2348
- args = self.create_args(with_env=True)
2349
- exitcode = os.spawnve(os.P_WAIT, args[0], args, self.env)
2350
- self.assertEqual(exitcode, self.exitcode)
2351
-
2352
- @requires_os_func('spawnvp')
2353
- def test_spawnvp(self):
2354
- args = self.create_args()
2355
- exitcode = os.spawnvp(os.P_WAIT, args[0], args)
2356
- self.assertEqual(exitcode, self.exitcode)
2357
-
2358
- @requires_os_func('spawnvpe')
2359
- def test_spawnvpe(self):
2360
- args = self.create_args(with_env=True)
2361
- exitcode = os.spawnvpe(os.P_WAIT, args[0], args, self.env)
2362
- self.assertEqual(exitcode, self.exitcode)
2363
-
2364
- @requires_os_func('spawnv')
2365
- def test_nowait(self):
2366
- args = self.create_args()
2367
- pid = os.spawnv(os.P_NOWAIT, args[0], args)
2368
- result = os.waitpid(pid, 0)
2369
- self.assertEqual(result[0], pid)
2370
- status = result[1]
2371
- if hasattr(os, 'WIFEXITED'):
2372
- self.assertTrue(os.WIFEXITED(status))
2373
- self.assertEqual(os.WEXITSTATUS(status), self.exitcode)
2374
- else:
2375
- self.assertEqual(status, self.exitcode << 8)
2376
-
2377
- @requires_os_func('spawnve')
2378
- def test_spawnve_bytes(self):
2379
- # Test bytes handling in parse_arglist and parse_envlist (#28114)
2380
- args = self.create_args(with_env=True, use_bytes=True)
2381
- exitcode = os.spawnve(os.P_WAIT, args[0], args, self.env)
2382
- self.assertEqual(exitcode, self.exitcode)
2383
-
2384
- @requires_os_func('spawnl')
2385
- def test_spawnl_noargs(self):
2386
- args = self.create_args()
2387
- self.assertRaises(ValueError, os.spawnl, os.P_NOWAIT, args[0])
2388
- self.assertRaises(ValueError, os.spawnl, os.P_NOWAIT, args[0], '')
2389
-
2390
- @requires_os_func('spawnle')
2391
- def test_spawnle_noargs(self):
2392
- args = self.create_args()
2393
- self.assertRaises(ValueError, os.spawnle, os.P_NOWAIT, args[0], {})
2394
- self.assertRaises(ValueError, os.spawnle, os.P_NOWAIT, args[0], '', {})
2395
-
2396
- @requires_os_func('spawnv')
2397
- def test_spawnv_noargs(self):
2398
- args = self.create_args()
2399
- self.assertRaises(ValueError, os.spawnv, os.P_NOWAIT, args[0], ())
2400
- self.assertRaises(ValueError, os.spawnv, os.P_NOWAIT, args[0], [])
2401
- self.assertRaises(ValueError, os.spawnv, os.P_NOWAIT, args[0], ('',))
2402
- self.assertRaises(ValueError, os.spawnv, os.P_NOWAIT, args[0], [''])
2403
-
2404
- @requires_os_func('spawnve')
2405
- def test_spawnve_noargs(self):
2406
- args = self.create_args()
2407
- self.assertRaises(ValueError, os.spawnve, os.P_NOWAIT, args[0], (), {})
2408
- self.assertRaises(ValueError, os.spawnve, os.P_NOWAIT, args[0], [], {})
2409
- self.assertRaises(ValueError, os.spawnve, os.P_NOWAIT, args[0], ('',), {})
2410
- self.assertRaises(ValueError, os.spawnve, os.P_NOWAIT, args[0], [''], {})
2411
-
2412
- def _test_invalid_env(self, spawn):
2413
- args = [sys.executable, '-c', 'pass']
2414
-
2415
- # null character in the enviroment variable name
2416
- newenv = os.environ.copy()
2417
- newenv["FRUIT\0VEGETABLE"] = "cabbage"
2418
- try:
2419
- exitcode = spawn(os.P_WAIT, args[0], args, newenv)
2420
- except ValueError:
2421
- pass
2422
- else:
2423
- self.assertEqual(exitcode, 127)
2424
-
2425
- # null character in the enviroment variable value
2426
- newenv = os.environ.copy()
2427
- newenv["FRUIT"] = "orange\0VEGETABLE=cabbage"
2428
- try:
2429
- exitcode = spawn(os.P_WAIT, args[0], args, newenv)
2430
- except ValueError:
2431
- pass
2432
- else:
2433
- self.assertEqual(exitcode, 127)
2434
-
2435
- # equal character in the enviroment variable name
2436
- newenv = os.environ.copy()
2437
- newenv["FRUIT=ORANGE"] = "lemon"
2438
- try:
2439
- exitcode = spawn(os.P_WAIT, args[0], args, newenv)
2440
- except ValueError:
2441
- pass
2442
- else:
2443
- self.assertEqual(exitcode, 127)
2444
-
2445
- # equal character in the enviroment variable value
2446
- filename = support.TESTFN
2447
- self.addCleanup(support.unlink, filename)
2448
- with open(filename, "w") as fp:
2449
- fp.write('import sys, os\n'
2450
- 'if os.getenv("FRUIT") != "orange=lemon":\n'
2451
- ' raise AssertionError')
2452
- args = [sys.executable, filename]
2453
- newenv = os.environ.copy()
2454
- newenv["FRUIT"] = "orange=lemon"
2455
- exitcode = spawn(os.P_WAIT, args[0], args, newenv)
2456
- self.assertEqual(exitcode, 0)
2457
-
2458
- @requires_os_func('spawnve')
2459
- def test_spawnve_invalid_env(self):
2460
- self._test_invalid_env(os.spawnve)
2461
-
2462
- @requires_os_func('spawnvpe')
2463
- def test_spawnvpe_invalid_env(self):
2464
- self._test_invalid_env(os.spawnvpe)
2465
-
2466
-
2467
- # The introduction of this TestCase caused at least two different errors on
2468
- # *nix buildbots. Temporarily skip this to let the buildbots move along.
2469
- @unittest.skip("Skip due to platform/environment differences on *NIX buildbots")
2470
- @unittest.skipUnless(hasattr(os, 'getlogin'), "test needs os.getlogin")
2471
- class LoginTests(unittest.TestCase):
2472
- def test_getlogin(self):
2473
- user_name = os.getlogin()
2474
- self.assertNotEqual(len(user_name), 0)
2475
-
2476
-
2477
- @unittest.skipUnless(hasattr(os, 'getpriority') and hasattr(os, 'setpriority'),
2478
- "needs os.getpriority and os.setpriority")
2479
- class ProgramPriorityTests(unittest.TestCase):
2480
- """Tests for os.getpriority() and os.setpriority()."""
2481
-
2482
- def test_set_get_priority(self):
2483
-
2484
- base = os.getpriority(os.PRIO_PROCESS, os.getpid())
2485
- os.setpriority(os.PRIO_PROCESS, os.getpid(), base + 1)
2486
- try:
2487
- new_prio = os.getpriority(os.PRIO_PROCESS, os.getpid())
2488
- if base >= 19 and new_prio <= 19:
2489
- raise unittest.SkipTest("unable to reliably test setpriority "
2490
- "at current nice level of %s" % base)
2491
- else:
2492
- self.assertEqual(new_prio, base + 1)
2493
- finally:
2494
- try:
2495
- os.setpriority(os.PRIO_PROCESS, os.getpid(), base)
2496
- except OSError as err:
2497
- if err.errno != errno.EACCES:
2498
- raise
2499
-
2500
-
2501
- if threading is not None:
2502
- class SendfileTestServer(asyncore.dispatcher, threading.Thread):
2503
-
2504
- class Handler(asynchat.async_chat):
2505
-
2506
- def __init__(self, conn):
2507
- asynchat.async_chat.__init__(self, conn)
2508
- self.in_buffer = []
2509
- self.closed = False
2510
- self.push(b"220 ready\r\n")
2511
-
2512
- def handle_read(self):
2513
- data = self.recv(4096)
2514
- self.in_buffer.append(data)
2515
-
2516
- def get_data(self):
2517
- return b''.join(self.in_buffer)
2518
-
2519
- def handle_close(self):
2520
- self.close()
2521
- self.closed = True
2522
-
2523
- def handle_error(self):
2524
- raise
2525
-
2526
- def __init__(self, address):
2527
- threading.Thread.__init__(self)
2528
- asyncore.dispatcher.__init__(self)
2529
- self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
2530
- self.bind(address)
2531
- self.listen(5)
2532
- self.host, self.port = self.socket.getsockname()[:2]
2533
- self.handler_instance = None
2534
- self._active = False
2535
- self._active_lock = threading.Lock()
2536
-
2537
- # --- public API
2538
-
2539
- @property
2540
- def running(self):
2541
- return self._active
2542
-
2543
- def start(self):
2544
- assert not self.running
2545
- self.__flag = threading.Event()
2546
- threading.Thread.start(self)
2547
- self.__flag.wait()
2548
-
2549
- def stop(self):
2550
- assert self.running
2551
- self._active = False
2552
- self.join()
2553
-
2554
- def wait(self):
2555
- # wait for handler connection to be closed, then stop the server
2556
- while not getattr(self.handler_instance, "closed", False):
2557
- time.sleep(0.001)
2558
- self.stop()
2559
-
2560
- # --- internals
2561
-
2562
- def run(self):
2563
- self._active = True
2564
- self.__flag.set()
2565
- while self._active and asyncore.socket_map:
2566
- self._active_lock.acquire()
2567
- asyncore.loop(timeout=0.001, count=1)
2568
- self._active_lock.release()
2569
- asyncore.close_all()
2570
-
2571
- def handle_accept(self):
2572
- conn, addr = self.accept()
2573
- self.handler_instance = self.Handler(conn)
2574
-
2575
- def handle_connect(self):
2576
- self.close()
2577
- handle_read = handle_connect
2578
-
2579
- def writable(self):
2580
- return 0
2581
-
2582
- def handle_error(self):
2583
- raise
2584
-
2585
-
2586
- @unittest.skipUnless(threading is not None, "test needs threading module")
2587
- @unittest.skipUnless(hasattr(os, 'sendfile'), "test needs os.sendfile()")
2588
- class TestSendfile(unittest.TestCase):
2589
-
2590
- DATA = b"12345abcde" * 16 * 1024 # 160 KB
2591
- SUPPORT_HEADERS_TRAILERS = not sys.platform.startswith("linux") and \
2592
- not sys.platform.startswith("solaris") and \
2593
- not sys.platform.startswith("sunos")
2594
- requires_headers_trailers = unittest.skipUnless(SUPPORT_HEADERS_TRAILERS,
2595
- 'requires headers and trailers support')
2596
-
2597
- @classmethod
2598
- def setUpClass(cls):
2599
- cls.key = support.threading_setup()
2600
- create_file(support.TESTFN, cls.DATA)
2601
-
2602
- @classmethod
2603
- def tearDownClass(cls):
2604
- support.threading_cleanup(*cls.key)
2605
- support.unlink(support.TESTFN)
2606
-
2607
- def setUp(self):
2608
- self.server = SendfileTestServer((support.HOST, 0))
2609
- self.server.start()
2610
- self.client = socket.socket()
2611
- self.client.connect((self.server.host, self.server.port))
2612
- self.client.settimeout(1)
2613
- # synchronize by waiting for "220 ready" response
2614
- self.client.recv(1024)
2615
- self.sockno = self.client.fileno()
2616
- self.file = open(support.TESTFN, 'rb')
2617
- self.fileno = self.file.fileno()
2618
-
2619
- def tearDown(self):
2620
- self.file.close()
2621
- self.client.close()
2622
- if self.server.running:
2623
- self.server.stop()
2624
- self.server = None
2625
-
2626
- def sendfile_wrapper(self, sock, file, offset, nbytes, headers=[], trailers=[]):
2627
- """A higher level wrapper representing how an application is
2628
- supposed to use sendfile().
2629
- """
2630
- while 1:
2631
- try:
2632
- if self.SUPPORT_HEADERS_TRAILERS:
2633
- return os.sendfile(sock, file, offset, nbytes, headers,
2634
- trailers)
2635
- else:
2636
- return os.sendfile(sock, file, offset, nbytes)
2637
- except OSError as err:
2638
- if err.errno == errno.ECONNRESET:
2639
- # disconnected
2640
- raise
2641
- elif err.errno in (errno.EAGAIN, errno.EBUSY):
2642
- # we have to retry send data
2643
- continue
2644
- else:
2645
- raise
2646
-
2647
- def test_send_whole_file(self):
2648
- # normal send
2649
- total_sent = 0
2650
- offset = 0
2651
- nbytes = 4096
2652
- while total_sent < len(self.DATA):
2653
- sent = self.sendfile_wrapper(self.sockno, self.fileno, offset, nbytes)
2654
- if sent == 0:
2655
- break
2656
- offset += sent
2657
- total_sent += sent
2658
- self.assertTrue(sent <= nbytes)
2659
- self.assertEqual(offset, total_sent)
2660
-
2661
- self.assertEqual(total_sent, len(self.DATA))
2662
- self.client.shutdown(socket.SHUT_RDWR)
2663
- self.client.close()
2664
- self.server.wait()
2665
- data = self.server.handler_instance.get_data()
2666
- self.assertEqual(len(data), len(self.DATA))
2667
- self.assertEqual(data, self.DATA)
2668
-
2669
- def test_send_at_certain_offset(self):
2670
- # start sending a file at a certain offset
2671
- total_sent = 0
2672
- offset = len(self.DATA) // 2
2673
- must_send = len(self.DATA) - offset
2674
- nbytes = 4096
2675
- while total_sent < must_send:
2676
- sent = self.sendfile_wrapper(self.sockno, self.fileno, offset, nbytes)
2677
- if sent == 0:
2678
- break
2679
- offset += sent
2680
- total_sent += sent
2681
- self.assertTrue(sent <= nbytes)
2682
-
2683
- self.client.shutdown(socket.SHUT_RDWR)
2684
- self.client.close()
2685
- self.server.wait()
2686
- data = self.server.handler_instance.get_data()
2687
- expected = self.DATA[len(self.DATA) // 2:]
2688
- self.assertEqual(total_sent, len(expected))
2689
- self.assertEqual(len(data), len(expected))
2690
- self.assertEqual(data, expected)
2691
-
2692
- def test_offset_overflow(self):
2693
- # specify an offset > file size
2694
- offset = len(self.DATA) + 4096
2695
- try:
2696
- sent = os.sendfile(self.sockno, self.fileno, offset, 4096)
2697
- except OSError as e:
2698
- # Solaris can raise EINVAL if offset >= file length, ignore.
2699
- if e.errno != errno.EINVAL:
2700
- raise
2701
- else:
2702
- self.assertEqual(sent, 0)
2703
- self.client.shutdown(socket.SHUT_RDWR)
2704
- self.client.close()
2705
- self.server.wait()
2706
- data = self.server.handler_instance.get_data()
2707
- self.assertEqual(data, b'')
2708
-
2709
- def test_invalid_offset(self):
2710
- with self.assertRaises(OSError) as cm:
2711
- os.sendfile(self.sockno, self.fileno, -1, 4096)
2712
- self.assertEqual(cm.exception.errno, errno.EINVAL)
2713
-
2714
- def test_keywords(self):
2715
- # Keyword arguments should be supported
2716
- os.sendfile(out=self.sockno, offset=0, count=4096,
2717
- **{'in': self.fileno})
2718
- if self.SUPPORT_HEADERS_TRAILERS:
2719
- os.sendfile(self.sockno, self.fileno, offset=0, count=4096,
2720
- headers=(), trailers=(), flags=0)
2721
-
2722
- # --- headers / trailers tests
2723
-
2724
- @requires_headers_trailers
2725
- def test_headers(self):
2726
- total_sent = 0
2727
- sent = os.sendfile(self.sockno, self.fileno, 0, 4096,
2728
- headers=[b"x" * 512])
2729
- total_sent += sent
2730
- offset = 4096
2731
- nbytes = 4096
2732
- while 1:
2733
- sent = self.sendfile_wrapper(self.sockno, self.fileno,
2734
- offset, nbytes)
2735
- if sent == 0:
2736
- break
2737
- total_sent += sent
2738
- offset += sent
2739
-
2740
- expected_data = b"x" * 512 + self.DATA
2741
- self.assertEqual(total_sent, len(expected_data))
2742
- self.client.close()
2743
- self.server.wait()
2744
- data = self.server.handler_instance.get_data()
2745
- self.assertEqual(hash(data), hash(expected_data))
2746
-
2747
- @requires_headers_trailers
2748
- def test_trailers(self):
2749
- TESTFN2 = support.TESTFN + "2"
2750
- file_data = b"abcdef"
2751
-
2752
- self.addCleanup(support.unlink, TESTFN2)
2753
- create_file(TESTFN2, file_data)
2754
-
2755
- with open(TESTFN2, 'rb') as f:
2756
- os.sendfile(self.sockno, f.fileno(), 0, len(file_data),
2757
- trailers=[b"1234"])
2758
- self.client.close()
2759
- self.server.wait()
2760
- data = self.server.handler_instance.get_data()
2761
- self.assertEqual(data, b"abcdef1234")
2762
-
2763
- @requires_headers_trailers
2764
- @unittest.skipUnless(hasattr(os, 'SF_NODISKIO'),
2765
- 'test needs os.SF_NODISKIO')
2766
- def test_flags(self):
2767
- try:
2768
- os.sendfile(self.sockno, self.fileno, 0, 4096,
2769
- flags=os.SF_NODISKIO)
2770
- except OSError as err:
2771
- if err.errno not in (errno.EBUSY, errno.EAGAIN):
2772
- raise
2773
-
2774
-
2775
- def supports_extended_attributes():
2776
- if not hasattr(os, "setxattr"):
2777
- return False
2778
-
2779
- try:
2780
- with open(support.TESTFN, "xb", 0) as fp:
2781
- try:
2782
- os.setxattr(fp.fileno(), b"user.test", b"")
2783
- except OSError:
2784
- return False
2785
- finally:
2786
- support.unlink(support.TESTFN)
2787
-
2788
- return True
2789
-
2790
-
2791
- @unittest.skipUnless(supports_extended_attributes(),
2792
- "no non-broken extended attribute support")
2793
- # Kernels < 2.6.39 don't respect setxattr flags.
2794
- @support.requires_linux_version(2, 6, 39)
2795
- class ExtendedAttributeTests(unittest.TestCase):
2796
-
2797
- def _check_xattrs_str(self, s, getxattr, setxattr, removexattr, listxattr, **kwargs):
2798
- fn = support.TESTFN
2799
- self.addCleanup(support.unlink, fn)
2800
- create_file(fn)
2801
-
2802
- with self.assertRaises(OSError) as cm:
2803
- getxattr(fn, s("user.test"), **kwargs)
2804
- self.assertEqual(cm.exception.errno, errno.ENODATA)
2805
-
2806
- init_xattr = listxattr(fn)
2807
- self.assertIsInstance(init_xattr, list)
2808
-
2809
- setxattr(fn, s("user.test"), b"", **kwargs)
2810
- xattr = set(init_xattr)
2811
- xattr.add("user.test")
2812
- self.assertEqual(set(listxattr(fn)), xattr)
2813
- self.assertEqual(getxattr(fn, b"user.test", **kwargs), b"")
2814
- setxattr(fn, s("user.test"), b"hello", os.XATTR_REPLACE, **kwargs)
2815
- self.assertEqual(getxattr(fn, b"user.test", **kwargs), b"hello")
2816
-
2817
- with self.assertRaises(OSError) as cm:
2818
- setxattr(fn, s("user.test"), b"bye", os.XATTR_CREATE, **kwargs)
2819
- self.assertEqual(cm.exception.errno, errno.EEXIST)
2820
-
2821
- with self.assertRaises(OSError) as cm:
2822
- setxattr(fn, s("user.test2"), b"bye", os.XATTR_REPLACE, **kwargs)
2823
- self.assertEqual(cm.exception.errno, errno.ENODATA)
2824
-
2825
- setxattr(fn, s("user.test2"), b"foo", os.XATTR_CREATE, **kwargs)
2826
- xattr.add("user.test2")
2827
- self.assertEqual(set(listxattr(fn)), xattr)
2828
- removexattr(fn, s("user.test"), **kwargs)
2829
-
2830
- with self.assertRaises(OSError) as cm:
2831
- getxattr(fn, s("user.test"), **kwargs)
2832
- self.assertEqual(cm.exception.errno, errno.ENODATA)
2833
-
2834
- xattr.remove("user.test")
2835
- self.assertEqual(set(listxattr(fn)), xattr)
2836
- self.assertEqual(getxattr(fn, s("user.test2"), **kwargs), b"foo")
2837
- setxattr(fn, s("user.test"), b"a"*1024, **kwargs)
2838
- self.assertEqual(getxattr(fn, s("user.test"), **kwargs), b"a"*1024)
2839
- removexattr(fn, s("user.test"), **kwargs)
2840
- many = sorted("user.test{}".format(i) for i in range(100))
2841
- for thing in many:
2842
- setxattr(fn, thing, b"x", **kwargs)
2843
- self.assertEqual(set(listxattr(fn)), set(init_xattr) | set(many))
2844
-
2845
- def _check_xattrs(self, *args, **kwargs):
2846
- self._check_xattrs_str(str, *args, **kwargs)
2847
- support.unlink(support.TESTFN)
2848
-
2849
- self._check_xattrs_str(os.fsencode, *args, **kwargs)
2850
- support.unlink(support.TESTFN)
2851
-
2852
- def test_simple(self):
2853
- self._check_xattrs(os.getxattr, os.setxattr, os.removexattr,
2854
- os.listxattr)
2855
-
2856
- def test_lpath(self):
2857
- self._check_xattrs(os.getxattr, os.setxattr, os.removexattr,
2858
- os.listxattr, follow_symlinks=False)
2859
-
2860
- def test_fds(self):
2861
- def getxattr(path, *args):
2862
- with open(path, "rb") as fp:
2863
- return os.getxattr(fp.fileno(), *args)
2864
- def setxattr(path, *args):
2865
- with open(path, "wb", 0) as fp:
2866
- os.setxattr(fp.fileno(), *args)
2867
- def removexattr(path, *args):
2868
- with open(path, "wb", 0) as fp:
2869
- os.removexattr(fp.fileno(), *args)
2870
- def listxattr(path, *args):
2871
- with open(path, "rb") as fp:
2872
- return os.listxattr(fp.fileno(), *args)
2873
- self._check_xattrs(getxattr, setxattr, removexattr, listxattr)
2874
-
2875
-
2876
- @unittest.skipUnless(hasattr(os, 'get_terminal_size'), "requires os.get_terminal_size")
2877
- class TermsizeTests(unittest.TestCase):
2878
- def test_does_not_crash(self):
2879
- """Check if get_terminal_size() returns a meaningful value.
2880
-
2881
- There's no easy portable way to actually check the size of the
2882
- terminal, so let's check if it returns something sensible instead.
2883
- """
2884
- try:
2885
- size = os.get_terminal_size()
2886
- except OSError as e:
2887
- if sys.platform == "win32" or e.errno in (errno.EINVAL, errno.ENOTTY):
2888
- # Under win32 a generic OSError can be thrown if the
2889
- # handle cannot be retrieved
2890
- self.skipTest("failed to query terminal size")
2891
- raise
2892
-
2893
- self.assertGreaterEqual(size.columns, 0)
2894
- self.assertGreaterEqual(size.lines, 0)
2895
-
2896
- def test_stty_match(self):
2897
- """Check if stty returns the same results
2898
-
2899
- stty actually tests stdin, so get_terminal_size is invoked on
2900
- stdin explicitly. If stty succeeded, then get_terminal_size()
2901
- should work too.
2902
- """
2903
- try:
2904
- size = subprocess.check_output(['stty', 'size']).decode().split()
2905
- except (FileNotFoundError, subprocess.CalledProcessError):
2906
- self.skipTest("stty invocation failed")
2907
- expected = (int(size[1]), int(size[0])) # reversed order
2908
-
2909
- try:
2910
- actual = os.get_terminal_size(sys.__stdin__.fileno())
2911
- except OSError as e:
2912
- if sys.platform == "win32" or e.errno in (errno.EINVAL, errno.ENOTTY):
2913
- # Under win32 a generic OSError can be thrown if the
2914
- # handle cannot be retrieved
2915
- self.skipTest("failed to query terminal size")
2916
- raise
2917
- self.assertEqual(expected, actual)
2918
-
2919
-
2920
- class OSErrorTests(unittest.TestCase):
2921
- def setUp(self):
2922
- class Str(str):
2923
- pass
2924
-
2925
- self.bytes_filenames = []
2926
- self.unicode_filenames = []
2927
- if support.TESTFN_UNENCODABLE is not None:
2928
- decoded = support.TESTFN_UNENCODABLE
2929
- else:
2930
- decoded = support.TESTFN
2931
- self.unicode_filenames.append(decoded)
2932
- self.unicode_filenames.append(Str(decoded))
2933
- if support.TESTFN_UNDECODABLE is not None:
2934
- encoded = support.TESTFN_UNDECODABLE
2935
- else:
2936
- encoded = os.fsencode(support.TESTFN)
2937
- self.bytes_filenames.append(encoded)
2938
- self.bytes_filenames.append(bytearray(encoded))
2939
- self.bytes_filenames.append(memoryview(encoded))
2940
-
2941
- self.filenames = self.bytes_filenames + self.unicode_filenames
2942
-
2943
- def test_oserror_filename(self):
2944
- funcs = [
2945
- (self.filenames, os.chdir,),
2946
- (self.filenames, os.chmod, 0o777),
2947
- (self.filenames, os.lstat,),
2948
- (self.filenames, os.open, os.O_RDONLY),
2949
- (self.filenames, os.rmdir,),
2950
- (self.filenames, os.stat,),
2951
- (self.filenames, os.unlink,),
2952
- ]
2953
- if sys.platform == "win32":
2954
- funcs.extend((
2955
- (self.bytes_filenames, os.rename, b"dst"),
2956
- (self.bytes_filenames, os.replace, b"dst"),
2957
- (self.unicode_filenames, os.rename, "dst"),
2958
- (self.unicode_filenames, os.replace, "dst"),
2959
- (self.unicode_filenames, os.listdir, ),
2960
- ))
2961
- else:
2962
- funcs.extend((
2963
- (self.filenames, os.listdir,),
2964
- (self.filenames, os.rename, "dst"),
2965
- (self.filenames, os.replace, "dst"),
2966
- ))
2967
- if hasattr(os, "chown"):
2968
- funcs.append((self.filenames, os.chown, 0, 0))
2969
- if hasattr(os, "lchown"):
2970
- funcs.append((self.filenames, os.lchown, 0, 0))
2971
- if hasattr(os, "truncate"):
2972
- funcs.append((self.filenames, os.truncate, 0))
2973
- if hasattr(os, "chflags"):
2974
- funcs.append((self.filenames, os.chflags, 0))
2975
- if hasattr(os, "lchflags"):
2976
- funcs.append((self.filenames, os.lchflags, 0))
2977
- if hasattr(os, "chroot"):
2978
- funcs.append((self.filenames, os.chroot,))
2979
- if hasattr(os, "link"):
2980
- if sys.platform == "win32":
2981
- funcs.append((self.bytes_filenames, os.link, b"dst"))
2982
- funcs.append((self.unicode_filenames, os.link, "dst"))
2983
- else:
2984
- funcs.append((self.filenames, os.link, "dst"))
2985
- if hasattr(os, "listxattr"):
2986
- funcs.extend((
2987
- (self.filenames, os.listxattr,),
2988
- (self.filenames, os.getxattr, "user.test"),
2989
- (self.filenames, os.setxattr, "user.test", b'user'),
2990
- (self.filenames, os.removexattr, "user.test"),
2991
- ))
2992
- if hasattr(os, "lchmod"):
2993
- funcs.append((self.filenames, os.lchmod, 0o777))
2994
- if hasattr(os, "readlink"):
2995
- if sys.platform == "win32":
2996
- funcs.append((self.unicode_filenames, os.readlink,))
2997
- else:
2998
- funcs.append((self.filenames, os.readlink,))
2999
-
3000
-
3001
- for filenames, func, *func_args in funcs:
3002
- for name in filenames:
3003
- try:
3004
- if isinstance(name, (str, bytes)):
3005
- func(name, *func_args)
3006
- else:
3007
- with self.assertWarnsRegex(DeprecationWarning, 'should be'):
3008
- func(name, *func_args)
3009
- except OSError as err:
3010
- self.assertIs(err.filename, name, str(func))
3011
- except UnicodeDecodeError:
3012
- pass
3013
- else:
3014
- self.fail("No exception thrown by {}".format(func))
3015
-
3016
- class CPUCountTests(unittest.TestCase):
3017
- def test_cpu_count(self):
3018
- cpus = os.cpu_count()
3019
- if cpus is not None:
3020
- self.assertIsInstance(cpus, int)
3021
- self.assertGreater(cpus, 0)
3022
- else:
3023
- self.skipTest("Could not determine the number of CPUs")
3024
-
3025
-
3026
- class FDInheritanceTests(unittest.TestCase):
3027
- def test_get_set_inheritable(self):
3028
- fd = os.open(__file__, os.O_RDONLY)
3029
- self.addCleanup(os.close, fd)
3030
- self.assertEqual(os.get_inheritable(fd), False)
3031
-
3032
- os.set_inheritable(fd, True)
3033
- self.assertEqual(os.get_inheritable(fd), True)
3034
-
3035
- @unittest.skipIf(fcntl is None, "need fcntl")
3036
- def test_get_inheritable_cloexec(self):
3037
- fd = os.open(__file__, os.O_RDONLY)
3038
- self.addCleanup(os.close, fd)
3039
- self.assertEqual(os.get_inheritable(fd), False)
3040
-
3041
- # clear FD_CLOEXEC flag
3042
- flags = fcntl.fcntl(fd, fcntl.F_GETFD)
3043
- flags &= ~fcntl.FD_CLOEXEC
3044
- fcntl.fcntl(fd, fcntl.F_SETFD, flags)
3045
-
3046
- self.assertEqual(os.get_inheritable(fd), True)
3047
-
3048
- @unittest.skipIf(fcntl is None, "need fcntl")
3049
- def test_set_inheritable_cloexec(self):
3050
- fd = os.open(__file__, os.O_RDONLY)
3051
- self.addCleanup(os.close, fd)
3052
- self.assertEqual(fcntl.fcntl(fd, fcntl.F_GETFD) & fcntl.FD_CLOEXEC,
3053
- fcntl.FD_CLOEXEC)
3054
-
3055
- os.set_inheritable(fd, True)
3056
- self.assertEqual(fcntl.fcntl(fd, fcntl.F_GETFD) & fcntl.FD_CLOEXEC,
3057
- 0)
3058
-
3059
- def test_open(self):
3060
- fd = os.open(__file__, os.O_RDONLY)
3061
- self.addCleanup(os.close, fd)
3062
- self.assertEqual(os.get_inheritable(fd), False)
3063
-
3064
- @unittest.skipUnless(hasattr(os, 'pipe'), "need os.pipe()")
3065
- def test_pipe(self):
3066
- rfd, wfd = os.pipe()
3067
- self.addCleanup(os.close, rfd)
3068
- self.addCleanup(os.close, wfd)
3069
- self.assertEqual(os.get_inheritable(rfd), False)
3070
- self.assertEqual(os.get_inheritable(wfd), False)
3071
-
3072
- def test_dup(self):
3073
- fd1 = os.open(__file__, os.O_RDONLY)
3074
- self.addCleanup(os.close, fd1)
3075
-
3076
- fd2 = os.dup(fd1)
3077
- self.addCleanup(os.close, fd2)
3078
- self.assertEqual(os.get_inheritable(fd2), False)
3079
-
3080
- @unittest.skipUnless(hasattr(os, 'dup2'), "need os.dup2()")
3081
- def test_dup2(self):
3082
- fd = os.open(__file__, os.O_RDONLY)
3083
- self.addCleanup(os.close, fd)
3084
-
3085
- # inheritable by default
3086
- fd2 = os.open(__file__, os.O_RDONLY)
3087
- try:
3088
- os.dup2(fd, fd2)
3089
- self.assertEqual(os.get_inheritable(fd2), True)
3090
- finally:
3091
- os.close(fd2)
3092
-
3093
- # force non-inheritable
3094
- fd3 = os.open(__file__, os.O_RDONLY)
3095
- try:
3096
- os.dup2(fd, fd3, inheritable=False)
3097
- self.assertEqual(os.get_inheritable(fd3), False)
3098
- finally:
3099
- os.close(fd3)
3100
-
3101
- @unittest.skipUnless(hasattr(os, 'openpty'), "need os.openpty()")
3102
- def test_openpty(self):
3103
- master_fd, slave_fd = os.openpty()
3104
- self.addCleanup(os.close, master_fd)
3105
- self.addCleanup(os.close, slave_fd)
3106
- self.assertEqual(os.get_inheritable(master_fd), False)
3107
- self.assertEqual(os.get_inheritable(slave_fd), False)
3108
-
3109
-
3110
- class PathTConverterTests(unittest.TestCase):
3111
- # tuples of (function name, allows fd arguments, additional arguments to
3112
- # function, cleanup function)
3113
- functions = [
3114
- ('stat', True, (), None),
3115
- ('lstat', False, (), None),
3116
- ('access', False, (os.F_OK,), None),
3117
- ('chflags', False, (0,), None),
3118
- ('lchflags', False, (0,), None),
3119
- ('open', False, (0,), getattr(os, 'close', None)),
3120
- ]
3121
-
3122
- def test_path_t_converter(self):
3123
- str_filename = support.TESTFN
3124
- if os.name == 'nt':
3125
- bytes_fspath = bytes_filename = None
3126
- else:
3127
- bytes_filename = support.TESTFN.encode('ascii')
3128
- bytes_fspath = _PathLike(bytes_filename)
3129
- fd = os.open(_PathLike(str_filename), os.O_WRONLY|os.O_CREAT)
3130
- self.addCleanup(support.unlink, support.TESTFN)
3131
- self.addCleanup(os.close, fd)
3132
-
3133
- int_fspath = _PathLike(fd)
3134
- str_fspath = _PathLike(str_filename)
3135
-
3136
- for name, allow_fd, extra_args, cleanup_fn in self.functions:
3137
- with self.subTest(name=name):
3138
- try:
3139
- fn = getattr(os, name)
3140
- except AttributeError:
3141
- continue
3142
-
3143
- for path in (str_filename, bytes_filename, str_fspath,
3144
- bytes_fspath):
3145
- if path is None:
3146
- continue
3147
- with self.subTest(name=name, path=path):
3148
- result = fn(path, *extra_args)
3149
- if cleanup_fn is not None:
3150
- cleanup_fn(result)
3151
-
3152
- with self.assertRaisesRegex(
3153
- TypeError, 'should be string, bytes'):
3154
- fn(int_fspath, *extra_args)
3155
-
3156
- if allow_fd:
3157
- result = fn(fd, *extra_args) # should not fail
3158
- if cleanup_fn is not None:
3159
- cleanup_fn(result)
3160
- else:
3161
- with self.assertRaisesRegex(
3162
- TypeError,
3163
- 'os.PathLike'):
3164
- fn(fd, *extra_args)
3165
-
3166
-
3167
- @unittest.skipUnless(hasattr(os, 'get_blocking'),
3168
- 'needs os.get_blocking() and os.set_blocking()')
3169
- class BlockingTests(unittest.TestCase):
3170
- def test_blocking(self):
3171
- fd = os.open(__file__, os.O_RDONLY)
3172
- self.addCleanup(os.close, fd)
3173
- self.assertEqual(os.get_blocking(fd), True)
3174
-
3175
- os.set_blocking(fd, False)
3176
- self.assertEqual(os.get_blocking(fd), False)
3177
-
3178
- os.set_blocking(fd, True)
3179
- self.assertEqual(os.get_blocking(fd), True)
3180
-
3181
-
3182
-
3183
- class ExportsTests(unittest.TestCase):
3184
- def test_os_all(self):
3185
- self.assertIn('open', os.__all__)
3186
- self.assertIn('walk', os.__all__)
3187
-
3188
-
3189
- class TestScandir(unittest.TestCase):
3190
- check_no_resource_warning = support.check_no_resource_warning
3191
-
3192
- def setUp(self):
3193
- self.path = os.path.realpath(support.TESTFN)
3194
- self.bytes_path = os.fsencode(self.path)
3195
- self.addCleanup(support.rmtree, self.path)
3196
- os.mkdir(self.path)
3197
-
3198
- def create_file(self, name="file.txt"):
3199
- path = self.bytes_path if isinstance(name, bytes) else self.path
3200
- filename = os.path.join(path, name)
3201
- create_file(filename, b'python')
3202
- return filename
3203
-
3204
- def get_entries(self, names):
3205
- entries = dict((entry.name, entry)
3206
- for entry in os.scandir(self.path))
3207
- self.assertEqual(sorted(entries.keys()), names)
3208
- return entries
3209
-
3210
- def assert_stat_equal(self, stat1, stat2, skip_fields):
3211
- if skip_fields:
3212
- for attr in dir(stat1):
3213
- if not attr.startswith("st_"):
3214
- continue
3215
- if attr in ("st_dev", "st_ino", "st_nlink"):
3216
- continue
3217
- self.assertEqual(getattr(stat1, attr),
3218
- getattr(stat2, attr),
3219
- (stat1, stat2, attr))
3220
- else:
3221
- self.assertEqual(stat1, stat2)
3222
-
3223
- def check_entry(self, entry, name, is_dir, is_file, is_symlink):
3224
- self.assertIsInstance(entry, os.DirEntry)
3225
- self.assertEqual(entry.name, name)
3226
- self.assertEqual(entry.path, os.path.join(self.path, name))
3227
- self.assertEqual(entry.inode(),
3228
- os.stat(entry.path, follow_symlinks=False).st_ino)
3229
-
3230
- entry_stat = os.stat(entry.path)
3231
- self.assertEqual(entry.is_dir(),
3232
- stat.S_ISDIR(entry_stat.st_mode))
3233
- self.assertEqual(entry.is_file(),
3234
- stat.S_ISREG(entry_stat.st_mode))
3235
- self.assertEqual(entry.is_symlink(),
3236
- os.path.islink(entry.path))
3237
-
3238
- entry_lstat = os.stat(entry.path, follow_symlinks=False)
3239
- self.assertEqual(entry.is_dir(follow_symlinks=False),
3240
- stat.S_ISDIR(entry_lstat.st_mode))
3241
- self.assertEqual(entry.is_file(follow_symlinks=False),
3242
- stat.S_ISREG(entry_lstat.st_mode))
3243
-
3244
- self.assert_stat_equal(entry.stat(),
3245
- entry_stat,
3246
- os.name == 'nt' and not is_symlink)
3247
- self.assert_stat_equal(entry.stat(follow_symlinks=False),
3248
- entry_lstat,
3249
- os.name == 'nt')
3250
-
3251
- def test_attributes(self):
3252
- link = hasattr(os, 'link')
3253
- symlink = support.can_symlink()
3254
-
3255
- dirname = os.path.join(self.path, "dir")
3256
- os.mkdir(dirname)
3257
- filename = self.create_file("file.txt")
3258
- if link:
3259
- os.link(filename, os.path.join(self.path, "link_file.txt"))
3260
- if symlink:
3261
- os.symlink(dirname, os.path.join(self.path, "symlink_dir"),
3262
- target_is_directory=True)
3263
- os.symlink(filename, os.path.join(self.path, "symlink_file.txt"))
3264
-
3265
- names = ['dir', 'file.txt']
3266
- if link:
3267
- names.append('link_file.txt')
3268
- if symlink:
3269
- names.extend(('symlink_dir', 'symlink_file.txt'))
3270
- entries = self.get_entries(names)
3271
-
3272
- entry = entries['dir']
3273
- self.check_entry(entry, 'dir', True, False, False)
3274
-
3275
- entry = entries['file.txt']
3276
- self.check_entry(entry, 'file.txt', False, True, False)
3277
-
3278
- if link:
3279
- entry = entries['link_file.txt']
3280
- self.check_entry(entry, 'link_file.txt', False, True, False)
3281
-
3282
- if symlink:
3283
- entry = entries['symlink_dir']
3284
- self.check_entry(entry, 'symlink_dir', True, False, True)
3285
-
3286
- entry = entries['symlink_file.txt']
3287
- self.check_entry(entry, 'symlink_file.txt', False, True, True)
3288
-
3289
- def get_entry(self, name):
3290
- path = self.bytes_path if isinstance(name, bytes) else self.path
3291
- entries = list(os.scandir(path))
3292
- self.assertEqual(len(entries), 1)
3293
-
3294
- entry = entries[0]
3295
- self.assertEqual(entry.name, name)
3296
- return entry
3297
-
3298
- def create_file_entry(self, name='file.txt'):
3299
- filename = self.create_file(name=name)
3300
- return self.get_entry(os.path.basename(filename))
3301
-
3302
- def test_current_directory(self):
3303
- filename = self.create_file()
3304
- old_dir = os.getcwd()
3305
- try:
3306
- os.chdir(self.path)
3307
-
3308
- # call scandir() without parameter: it must list the content
3309
- # of the current directory
3310
- entries = dict((entry.name, entry) for entry in os.scandir())
3311
- self.assertEqual(sorted(entries.keys()),
3312
- [os.path.basename(filename)])
3313
- finally:
3314
- os.chdir(old_dir)
3315
-
3316
- def test_repr(self):
3317
- entry = self.create_file_entry()
3318
- self.assertEqual(repr(entry), "<DirEntry 'file.txt'>")
3319
-
3320
- def test_fspath_protocol(self):
3321
- entry = self.create_file_entry()
3322
- self.assertEqual(os.fspath(entry), os.path.join(self.path, 'file.txt'))
3323
-
3324
- def test_fspath_protocol_bytes(self):
3325
- bytes_filename = os.fsencode('bytesfile.txt')
3326
- bytes_entry = self.create_file_entry(name=bytes_filename)
3327
- fspath = os.fspath(bytes_entry)
3328
- self.assertIsInstance(fspath, bytes)
3329
- self.assertEqual(fspath,
3330
- os.path.join(os.fsencode(self.path),bytes_filename))
3331
-
3332
- def test_removed_dir(self):
3333
- path = os.path.join(self.path, 'dir')
3334
-
3335
- os.mkdir(path)
3336
- entry = self.get_entry('dir')
3337
- os.rmdir(path)
3338
-
3339
- # On POSIX, is_dir() result depends if scandir() filled d_type or not
3340
- if os.name == 'nt':
3341
- self.assertTrue(entry.is_dir())
3342
- self.assertFalse(entry.is_file())
3343
- self.assertFalse(entry.is_symlink())
3344
- if os.name == 'nt':
3345
- self.assertRaises(FileNotFoundError, entry.inode)
3346
- # don't fail
3347
- entry.stat()
3348
- entry.stat(follow_symlinks=False)
3349
- else:
3350
- self.assertGreater(entry.inode(), 0)
3351
- self.assertRaises(FileNotFoundError, entry.stat)
3352
- self.assertRaises(FileNotFoundError, entry.stat, follow_symlinks=False)
3353
-
3354
- def test_removed_file(self):
3355
- entry = self.create_file_entry()
3356
- os.unlink(entry.path)
3357
-
3358
- self.assertFalse(entry.is_dir())
3359
- # On POSIX, is_dir() result depends if scandir() filled d_type or not
3360
- if os.name == 'nt':
3361
- self.assertTrue(entry.is_file())
3362
- self.assertFalse(entry.is_symlink())
3363
- if os.name == 'nt':
3364
- self.assertRaises(FileNotFoundError, entry.inode)
3365
- # don't fail
3366
- entry.stat()
3367
- entry.stat(follow_symlinks=False)
3368
- else:
3369
- self.assertGreater(entry.inode(), 0)
3370
- self.assertRaises(FileNotFoundError, entry.stat)
3371
- self.assertRaises(FileNotFoundError, entry.stat, follow_symlinks=False)
3372
-
3373
- def test_broken_symlink(self):
3374
- if not support.can_symlink():
3375
- return self.skipTest('cannot create symbolic link')
3376
-
3377
- filename = self.create_file("file.txt")
3378
- os.symlink(filename,
3379
- os.path.join(self.path, "symlink.txt"))
3380
- entries = self.get_entries(['file.txt', 'symlink.txt'])
3381
- entry = entries['symlink.txt']
3382
- os.unlink(filename)
3383
-
3384
- self.assertGreater(entry.inode(), 0)
3385
- self.assertFalse(entry.is_dir())
3386
- self.assertFalse(entry.is_file()) # broken symlink returns False
3387
- self.assertFalse(entry.is_dir(follow_symlinks=False))
3388
- self.assertFalse(entry.is_file(follow_symlinks=False))
3389
- self.assertTrue(entry.is_symlink())
3390
- self.assertRaises(FileNotFoundError, entry.stat)
3391
- # don't fail
3392
- entry.stat(follow_symlinks=False)
3393
-
3394
- def test_bytes(self):
3395
- self.create_file("file.txt")
3396
-
3397
- path_bytes = os.fsencode(self.path)
3398
- entries = list(os.scandir(path_bytes))
3399
- self.assertEqual(len(entries), 1, entries)
3400
- entry = entries[0]
3401
-
3402
- self.assertEqual(entry.name, b'file.txt')
3403
- self.assertEqual(entry.path,
3404
- os.fsencode(os.path.join(self.path, 'file.txt')))
3405
-
3406
- def test_bytes_like(self):
3407
- self.create_file("file.txt")
3408
-
3409
- for cls in bytearray, memoryview:
3410
- path_bytes = cls(os.fsencode(self.path))
3411
- with self.assertWarns(DeprecationWarning):
3412
- entries = list(os.scandir(path_bytes))
3413
- self.assertEqual(len(entries), 1, entries)
3414
- entry = entries[0]
3415
-
3416
- self.assertEqual(entry.name, b'file.txt')
3417
- self.assertEqual(entry.path,
3418
- os.fsencode(os.path.join(self.path, 'file.txt')))
3419
- self.assertIs(type(entry.name), bytes)
3420
- self.assertIs(type(entry.path), bytes)
3421
-
3422
- def test_empty_path(self):
3423
- self.assertRaises(FileNotFoundError, os.scandir, '')
3424
-
3425
- def test_consume_iterator_twice(self):
3426
- self.create_file("file.txt")
3427
- iterator = os.scandir(self.path)
3428
-
3429
- entries = list(iterator)
3430
- self.assertEqual(len(entries), 1, entries)
3431
-
3432
- # check than consuming the iterator twice doesn't raise exception
3433
- entries2 = list(iterator)
3434
- self.assertEqual(len(entries2), 0, entries2)
3435
-
3436
- def test_bad_path_type(self):
3437
- for obj in [1234, 1.234, {}, []]:
3438
- self.assertRaises(TypeError, os.scandir, obj)
3439
-
3440
- def test_close(self):
3441
- self.create_file("file.txt")
3442
- self.create_file("file2.txt")
3443
- iterator = os.scandir(self.path)
3444
- next(iterator)
3445
- iterator.close()
3446
- # multiple closes
3447
- iterator.close()
3448
- with self.check_no_resource_warning():
3449
- del iterator
3450
-
3451
- def test_context_manager(self):
3452
- self.create_file("file.txt")
3453
- self.create_file("file2.txt")
3454
- with os.scandir(self.path) as iterator:
3455
- next(iterator)
3456
- with self.check_no_resource_warning():
3457
- del iterator
3458
-
3459
- def test_context_manager_close(self):
3460
- self.create_file("file.txt")
3461
- self.create_file("file2.txt")
3462
- with os.scandir(self.path) as iterator:
3463
- next(iterator)
3464
- iterator.close()
3465
-
3466
- def test_context_manager_exception(self):
3467
- self.create_file("file.txt")
3468
- self.create_file("file2.txt")
3469
- with self.assertRaises(ZeroDivisionError):
3470
- with os.scandir(self.path) as iterator:
3471
- next(iterator)
3472
- 1/0
3473
- with self.check_no_resource_warning():
3474
- del iterator
3475
-
3476
- def test_resource_warning(self):
3477
- self.create_file("file.txt")
3478
- self.create_file("file2.txt")
3479
- iterator = os.scandir(self.path)
3480
- next(iterator)
3481
- with self.assertWarns(ResourceWarning):
3482
- del iterator
3483
- support.gc_collect()
3484
- # exhausted iterator
3485
- iterator = os.scandir(self.path)
3486
- list(iterator)
3487
- with self.check_no_resource_warning():
3488
- del iterator
3489
-
3490
-
3491
- class TestPEP519(unittest.TestCase):
3492
-
3493
- # Abstracted so it can be overridden to test pure Python implementation
3494
- # if a C version is provided.
3495
- fspath = staticmethod(os.fspath)
3496
-
3497
- def test_return_bytes(self):
3498
- for b in b'hello', b'goodbye', b'some/path/and/file':
3499
- self.assertEqual(b, self.fspath(b))
3500
-
3501
- def test_return_string(self):
3502
- for s in 'hello', 'goodbye', 'some/path/and/file':
3503
- self.assertEqual(s, self.fspath(s))
3504
-
3505
- def test_fsencode_fsdecode(self):
3506
- for p in "path/like/object", b"path/like/object":
3507
- pathlike = _PathLike(p)
3508
-
3509
- self.assertEqual(p, self.fspath(pathlike))
3510
- self.assertEqual(b"path/like/object", os.fsencode(pathlike))
3511
- self.assertEqual("path/like/object", os.fsdecode(pathlike))
3512
-
3513
- def test_pathlike(self):
3514
- self.assertEqual('#feelthegil', self.fspath(_PathLike('#feelthegil')))
3515
- self.assertTrue(issubclass(_PathLike, os.PathLike))
3516
- self.assertTrue(isinstance(_PathLike(), os.PathLike))
3517
-
3518
- def test_garbage_in_exception_out(self):
3519
- vapor = type('blah', (), {})
3520
- for o in int, type, os, vapor():
3521
- self.assertRaises(TypeError, self.fspath, o)
3522
-
3523
- def test_argument_required(self):
3524
- self.assertRaises(TypeError, self.fspath)
3525
-
3526
- def test_bad_pathlike(self):
3527
- # __fspath__ returns a value other than str or bytes.
3528
- self.assertRaises(TypeError, self.fspath, _PathLike(42))
3529
- # __fspath__ attribute that is not callable.
3530
- c = type('foo', (), {})
3531
- c.__fspath__ = 1
3532
- self.assertRaises(TypeError, self.fspath, c())
3533
- # __fspath__ raises an exception.
3534
- self.assertRaises(ZeroDivisionError, self.fspath,
3535
- _PathLike(ZeroDivisionError()))
3536
-
3537
- # Only test if the C version is provided, otherwise TestPEP519 already tested
3538
- # the pure Python implementation.
3539
- if hasattr(os, "_fspath"):
3540
- class TestPEP519PurePython(TestPEP519):
3541
-
3542
- """Explicitly test the pure Python implementation of os.fspath()."""
3543
-
3544
- fspath = staticmethod(os._fspath)
3545
-
3546
-
3547
- if __name__ == "__main__":
3548
- unittest.main()