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,3725 +0,0 @@
1
- import builtins
2
- import collections
3
- import datetime
4
- import functools
5
- import importlib
6
- import inspect
7
- import io
8
- import linecache
9
- import os
10
- from os.path import normcase
11
- import _pickle
12
- import pickle
13
- import re
14
- import shutil
15
- import sys
16
- import types
17
- import textwrap
18
- import unicodedata
19
- import unittest
20
- import unittest.mock
21
- import warnings
22
-
23
- try:
24
- from concurrent.futures import ThreadPoolExecutor
25
- except ImportError:
26
- ThreadPoolExecutor = None
27
-
28
- from test.support import run_unittest, TESTFN, DirsOnSysPath, cpython_only
29
- from test.support import MISSING_C_DOCSTRINGS, cpython_only
30
- from test.support.script_helper import assert_python_ok, assert_python_failure
31
- from test import inspect_fodder as mod
32
- from test import inspect_fodder2 as mod2
33
- from test import support
34
-
35
- from test.test_import import _ready_to_import
36
-
37
-
38
- # Functions tested in this suite:
39
- # ismodule, isclass, ismethod, isfunction, istraceback, isframe, iscode,
40
- # isbuiltin, isroutine, isgenerator, isgeneratorfunction, getmembers,
41
- # getdoc, getfile, getmodule, getsourcefile, getcomments, getsource,
42
- # getclasstree, getargvalues, formatargspec, formatargvalues,
43
- # currentframe, stack, trace, isdatadescriptor
44
-
45
- # NOTE: There are some additional tests relating to interaction with
46
- # zipimport in the test_zipimport_support test module.
47
-
48
- modfile = mod.__file__
49
- if modfile.endswith(('c', 'o')):
50
- modfile = modfile[:-1]
51
-
52
- # Normalize file names: on Windows, the case of file names of compiled
53
- # modules depends on the path used to start the python executable.
54
- modfile = normcase(modfile)
55
-
56
- def revise(filename, *args):
57
- return (normcase(filename),) + args
58
-
59
- import builtins
60
-
61
- git = mod.StupidGit()
62
-
63
- class IsTestBase(unittest.TestCase):
64
- predicates = set([inspect.isbuiltin, inspect.isclass, inspect.iscode,
65
- inspect.isframe, inspect.isfunction, inspect.ismethod,
66
- inspect.ismodule, inspect.istraceback,
67
- inspect.isgenerator, inspect.isgeneratorfunction,
68
- inspect.iscoroutine, inspect.iscoroutinefunction,
69
- inspect.isasyncgen, inspect.isasyncgenfunction])
70
-
71
- def istest(self, predicate, exp):
72
- obj = eval(exp)
73
- self.assertTrue(predicate(obj), '%s(%s)' % (predicate.__name__, exp))
74
-
75
- for other in self.predicates - set([predicate]):
76
- if (predicate == inspect.isgeneratorfunction or \
77
- predicate == inspect.isasyncgenfunction or \
78
- predicate == inspect.iscoroutinefunction) and \
79
- other == inspect.isfunction:
80
- continue
81
- self.assertFalse(other(obj), 'not %s(%s)' % (other.__name__, exp))
82
-
83
- def generator_function_example(self):
84
- for i in range(2):
85
- yield i
86
-
87
- async def async_generator_function_example(self):
88
- async for i in range(2):
89
- yield i
90
-
91
- async def coroutine_function_example(self):
92
- return 'spam'
93
-
94
- @types.coroutine
95
- def gen_coroutine_function_example(self):
96
- yield
97
- return 'spam'
98
-
99
- class EqualsToAll:
100
- def __eq__(self, other):
101
- return True
102
-
103
- class TestPredicates(IsTestBase):
104
-
105
- def test_excluding_predicates(self):
106
- global tb
107
- self.istest(inspect.isbuiltin, 'sys.exit')
108
- self.istest(inspect.isbuiltin, '[].append')
109
- self.istest(inspect.iscode, 'mod.spam.__code__')
110
- try:
111
- 1/0
112
- except:
113
- tb = sys.exc_info()[2]
114
- self.istest(inspect.isframe, 'tb.tb_frame')
115
- self.istest(inspect.istraceback, 'tb')
116
- if hasattr(types, 'GetSetDescriptorType'):
117
- self.istest(inspect.isgetsetdescriptor,
118
- 'type(tb.tb_frame).f_locals')
119
- else:
120
- self.assertFalse(inspect.isgetsetdescriptor(type(tb.tb_frame).f_locals))
121
- finally:
122
- # Clear traceback and all the frames and local variables hanging to it.
123
- tb = None
124
- self.istest(inspect.isfunction, 'mod.spam')
125
- self.istest(inspect.isfunction, 'mod.StupidGit.abuse')
126
- self.istest(inspect.ismethod, 'git.argue')
127
- self.istest(inspect.ismodule, 'mod')
128
- self.istest(inspect.isdatadescriptor, 'collections.defaultdict.default_factory')
129
- self.istest(inspect.isgenerator, '(x for x in range(2))')
130
- self.istest(inspect.isgeneratorfunction, 'generator_function_example')
131
- self.istest(inspect.isasyncgen,
132
- 'async_generator_function_example(1)')
133
- self.istest(inspect.isasyncgenfunction,
134
- 'async_generator_function_example')
135
-
136
- with warnings.catch_warnings():
137
- warnings.simplefilter("ignore")
138
- self.istest(inspect.iscoroutine, 'coroutine_function_example(1)')
139
- self.istest(inspect.iscoroutinefunction, 'coroutine_function_example')
140
-
141
- if hasattr(types, 'MemberDescriptorType'):
142
- self.istest(inspect.ismemberdescriptor, 'datetime.timedelta.days')
143
- else:
144
- self.assertFalse(inspect.ismemberdescriptor(datetime.timedelta.days))
145
-
146
- def test_iscoroutine(self):
147
- gen_coro = gen_coroutine_function_example(1)
148
- coro = coroutine_function_example(1)
149
-
150
- self.assertFalse(
151
- inspect.iscoroutinefunction(gen_coroutine_function_example))
152
- self.assertFalse(inspect.iscoroutine(gen_coro))
153
-
154
- self.assertTrue(
155
- inspect.isgeneratorfunction(gen_coroutine_function_example))
156
- self.assertTrue(inspect.isgenerator(gen_coro))
157
-
158
- self.assertTrue(
159
- inspect.iscoroutinefunction(coroutine_function_example))
160
- self.assertTrue(inspect.iscoroutine(coro))
161
-
162
- self.assertFalse(
163
- inspect.isgeneratorfunction(coroutine_function_example))
164
- self.assertFalse(inspect.isgenerator(coro))
165
-
166
- coro.close(); gen_coro.close() # silence warnings
167
-
168
- def test_isawaitable(self):
169
- def gen(): yield
170
- self.assertFalse(inspect.isawaitable(gen()))
171
-
172
- coro = coroutine_function_example(1)
173
- gen_coro = gen_coroutine_function_example(1)
174
-
175
- self.assertTrue(inspect.isawaitable(coro))
176
- self.assertTrue(inspect.isawaitable(gen_coro))
177
-
178
- class Future:
179
- def __await__():
180
- pass
181
- self.assertTrue(inspect.isawaitable(Future()))
182
- self.assertFalse(inspect.isawaitable(Future))
183
-
184
- class NotFuture: pass
185
- not_fut = NotFuture()
186
- not_fut.__await__ = lambda: None
187
- self.assertFalse(inspect.isawaitable(not_fut))
188
-
189
- coro.close(); gen_coro.close() # silence warnings
190
-
191
- def test_isroutine(self):
192
- self.assertTrue(inspect.isroutine(mod.spam))
193
- self.assertTrue(inspect.isroutine([].count))
194
-
195
- def test_isclass(self):
196
- self.istest(inspect.isclass, 'mod.StupidGit')
197
- self.assertTrue(inspect.isclass(list))
198
-
199
- class CustomGetattr(object):
200
- def __getattr__(self, attr):
201
- return None
202
- self.assertFalse(inspect.isclass(CustomGetattr()))
203
-
204
- def test_get_slot_members(self):
205
- class C(object):
206
- __slots__ = ("a", "b")
207
- x = C()
208
- x.a = 42
209
- members = dict(inspect.getmembers(x))
210
- self.assertIn('a', members)
211
- self.assertNotIn('b', members)
212
-
213
- def test_isabstract(self):
214
- from abc import ABCMeta, abstractmethod
215
-
216
- class AbstractClassExample(metaclass=ABCMeta):
217
-
218
- @abstractmethod
219
- def foo(self):
220
- pass
221
-
222
- class ClassExample(AbstractClassExample):
223
- def foo(self):
224
- pass
225
-
226
- a = ClassExample()
227
-
228
- # Test general behaviour.
229
- self.assertTrue(inspect.isabstract(AbstractClassExample))
230
- self.assertFalse(inspect.isabstract(ClassExample))
231
- self.assertFalse(inspect.isabstract(a))
232
- self.assertFalse(inspect.isabstract(int))
233
- self.assertFalse(inspect.isabstract(5))
234
-
235
- def test_isabstract_during_init_subclass(self):
236
- from abc import ABCMeta, abstractmethod
237
- isabstract_checks = []
238
- class AbstractChecker(metaclass=ABCMeta):
239
- def __init_subclass__(cls):
240
- isabstract_checks.append(inspect.isabstract(cls))
241
- class AbstractClassExample(AbstractChecker):
242
- @abstractmethod
243
- def foo(self):
244
- pass
245
- class ClassExample(AbstractClassExample):
246
- def foo(self):
247
- pass
248
- self.assertEqual(isabstract_checks, [True, False])
249
-
250
- isabstract_checks.clear()
251
- class AbstractChild(AbstractClassExample):
252
- pass
253
- class AbstractGrandchild(AbstractChild):
254
- pass
255
- class ConcreteGrandchild(ClassExample):
256
- pass
257
- self.assertEqual(isabstract_checks, [True, True, False])
258
-
259
-
260
- class TestInterpreterStack(IsTestBase):
261
- def __init__(self, *args, **kwargs):
262
- unittest.TestCase.__init__(self, *args, **kwargs)
263
-
264
- git.abuse(7, 8, 9)
265
-
266
- def test_abuse_done(self):
267
- self.istest(inspect.istraceback, 'git.ex[2]')
268
- self.istest(inspect.isframe, 'mod.fr')
269
-
270
- def test_stack(self):
271
- self.assertTrue(len(mod.st) >= 5)
272
- self.assertEqual(revise(*mod.st[0][1:]),
273
- (modfile, 16, 'eggs', [' st = inspect.stack()\n'], 0))
274
- self.assertEqual(revise(*mod.st[1][1:]),
275
- (modfile, 9, 'spam', [' eggs(b + d, c + f)\n'], 0))
276
- self.assertEqual(revise(*mod.st[2][1:]),
277
- (modfile, 43, 'argue', [' spam(a, b, c)\n'], 0))
278
- self.assertEqual(revise(*mod.st[3][1:]),
279
- (modfile, 39, 'abuse', [' self.argue(a, b, c)\n'], 0))
280
- # Test named tuple fields
281
- record = mod.st[0]
282
- self.assertIs(record.frame, mod.fr)
283
- self.assertEqual(record.lineno, 16)
284
- self.assertEqual(record.filename, mod.__file__)
285
- self.assertEqual(record.function, 'eggs')
286
- self.assertIn('inspect.stack()', record.code_context[0])
287
- self.assertEqual(record.index, 0)
288
-
289
- def test_trace(self):
290
- self.assertEqual(len(git.tr), 3)
291
- self.assertEqual(revise(*git.tr[0][1:]),
292
- (modfile, 43, 'argue', [' spam(a, b, c)\n'], 0))
293
- self.assertEqual(revise(*git.tr[1][1:]),
294
- (modfile, 9, 'spam', [' eggs(b + d, c + f)\n'], 0))
295
- self.assertEqual(revise(*git.tr[2][1:]),
296
- (modfile, 18, 'eggs', [' q = y / 0\n'], 0))
297
-
298
- def test_frame(self):
299
- args, varargs, varkw, locals = inspect.getargvalues(mod.fr)
300
- self.assertEqual(args, ['x', 'y'])
301
- self.assertEqual(varargs, None)
302
- self.assertEqual(varkw, None)
303
- self.assertEqual(locals, {'x': 11, 'p': 11, 'y': 14})
304
- self.assertEqual(inspect.formatargvalues(args, varargs, varkw, locals),
305
- '(x=11, y=14)')
306
-
307
- def test_previous_frame(self):
308
- args, varargs, varkw, locals = inspect.getargvalues(mod.fr.f_back)
309
- self.assertEqual(args, ['a', 'b', 'c', 'd', 'e', 'f'])
310
- self.assertEqual(varargs, 'g')
311
- self.assertEqual(varkw, 'h')
312
- self.assertEqual(inspect.formatargvalues(args, varargs, varkw, locals),
313
- '(a=7, b=8, c=9, d=3, e=4, f=5, *g=(), **h={})')
314
-
315
- class GetSourceBase(unittest.TestCase):
316
- # Subclasses must override.
317
- fodderModule = None
318
-
319
- def setUp(self):
320
- with open(inspect.getsourcefile(self.fodderModule)) as fp:
321
- self.source = fp.read()
322
-
323
- def sourcerange(self, top, bottom):
324
- lines = self.source.split("\n")
325
- return "\n".join(lines[top-1:bottom]) + "\n"
326
-
327
- def assertSourceEqual(self, obj, top, bottom):
328
- self.assertEqual(inspect.getsource(obj),
329
- self.sourcerange(top, bottom))
330
-
331
- class TestRetrievingSourceCode(GetSourceBase):
332
- fodderModule = mod
333
-
334
- def test_getclasses(self):
335
- classes = inspect.getmembers(mod, inspect.isclass)
336
- self.assertEqual(classes,
337
- [('FesteringGob', mod.FesteringGob),
338
- ('MalodorousPervert', mod.MalodorousPervert),
339
- ('ParrotDroppings', mod.ParrotDroppings),
340
- ('StupidGit', mod.StupidGit),
341
- ('Tit', mod.MalodorousPervert),
342
- ])
343
- tree = inspect.getclasstree([cls[1] for cls in classes])
344
- self.assertEqual(tree,
345
- [(object, ()),
346
- [(mod.ParrotDroppings, (object,)),
347
- [(mod.FesteringGob, (mod.MalodorousPervert,
348
- mod.ParrotDroppings))
349
- ],
350
- (mod.StupidGit, (object,)),
351
- [(mod.MalodorousPervert, (mod.StupidGit,)),
352
- [(mod.FesteringGob, (mod.MalodorousPervert,
353
- mod.ParrotDroppings))
354
- ]
355
- ]
356
- ]
357
- ])
358
- tree = inspect.getclasstree([cls[1] for cls in classes], True)
359
- self.assertEqual(tree,
360
- [(object, ()),
361
- [(mod.ParrotDroppings, (object,)),
362
- (mod.StupidGit, (object,)),
363
- [(mod.MalodorousPervert, (mod.StupidGit,)),
364
- [(mod.FesteringGob, (mod.MalodorousPervert,
365
- mod.ParrotDroppings))
366
- ]
367
- ]
368
- ]
369
- ])
370
-
371
- def test_getfunctions(self):
372
- functions = inspect.getmembers(mod, inspect.isfunction)
373
- self.assertEqual(functions, [('eggs', mod.eggs),
374
- ('lobbest', mod.lobbest),
375
- ('spam', mod.spam)])
376
-
377
- @unittest.skipIf(sys.flags.optimize >= 2,
378
- "Docstrings are omitted with -O2 and above")
379
- def test_getdoc(self):
380
- self.assertEqual(inspect.getdoc(mod), 'A module docstring.')
381
- self.assertEqual(inspect.getdoc(mod.StupidGit),
382
- 'A longer,\n\nindented\n\ndocstring.')
383
- self.assertEqual(inspect.getdoc(git.abuse),
384
- 'Another\n\ndocstring\n\ncontaining\n\ntabs')
385
-
386
- @unittest.skipIf(sys.flags.optimize >= 2,
387
- "Docstrings are omitted with -O2 and above")
388
- def test_getdoc_inherited(self):
389
- self.assertEqual(inspect.getdoc(mod.FesteringGob),
390
- 'A longer,\n\nindented\n\ndocstring.')
391
- self.assertEqual(inspect.getdoc(mod.FesteringGob.abuse),
392
- 'Another\n\ndocstring\n\ncontaining\n\ntabs')
393
- self.assertEqual(inspect.getdoc(mod.FesteringGob().abuse),
394
- 'Another\n\ndocstring\n\ncontaining\n\ntabs')
395
- self.assertEqual(inspect.getdoc(mod.FesteringGob.contradiction),
396
- 'The automatic gainsaying.')
397
-
398
- @unittest.skipIf(MISSING_C_DOCSTRINGS, "test requires docstrings")
399
- def test_finddoc(self):
400
- finddoc = inspect._finddoc
401
- self.assertEqual(finddoc(int), int.__doc__)
402
- self.assertEqual(finddoc(int.to_bytes), int.to_bytes.__doc__)
403
- self.assertEqual(finddoc(int().to_bytes), int.to_bytes.__doc__)
404
- self.assertEqual(finddoc(int.from_bytes), int.from_bytes.__doc__)
405
- self.assertEqual(finddoc(int.real), int.real.__doc__)
406
-
407
- def test_cleandoc(self):
408
- self.assertEqual(inspect.cleandoc('An\n indented\n docstring.'),
409
- 'An\nindented\ndocstring.')
410
-
411
- def test_getcomments(self):
412
- self.assertEqual(inspect.getcomments(mod), '# line 1\n')
413
- self.assertEqual(inspect.getcomments(mod.StupidGit), '# line 20\n')
414
- # If the object source file is not available, return None.
415
- co = compile('x=1', '_non_existing_filename.py', 'exec')
416
- self.assertIsNone(inspect.getcomments(co))
417
- # If the object has been defined in C, return None.
418
- self.assertIsNone(inspect.getcomments(list))
419
-
420
- def test_getmodule(self):
421
- # Check actual module
422
- self.assertEqual(inspect.getmodule(mod), mod)
423
- # Check class (uses __module__ attribute)
424
- self.assertEqual(inspect.getmodule(mod.StupidGit), mod)
425
- # Check a method (no __module__ attribute, falls back to filename)
426
- self.assertEqual(inspect.getmodule(mod.StupidGit.abuse), mod)
427
- # Do it again (check the caching isn't broken)
428
- self.assertEqual(inspect.getmodule(mod.StupidGit.abuse), mod)
429
- # Check a builtin
430
- self.assertEqual(inspect.getmodule(str), sys.modules["builtins"])
431
- # Check filename override
432
- self.assertEqual(inspect.getmodule(None, modfile), mod)
433
-
434
- def test_getframeinfo_get_first_line(self):
435
- frame_info = inspect.getframeinfo(self.fodderModule.fr, 50)
436
- self.assertEqual(frame_info.code_context[0], "# line 1\n")
437
- self.assertEqual(frame_info.code_context[1], "'A module docstring.'\n")
438
-
439
- def test_getsource(self):
440
- self.assertSourceEqual(git.abuse, 29, 39)
441
- self.assertSourceEqual(mod.StupidGit, 21, 51)
442
- self.assertSourceEqual(mod.lobbest, 75, 76)
443
-
444
- def test_getsourcefile(self):
445
- self.assertEqual(normcase(inspect.getsourcefile(mod.spam)), modfile)
446
- self.assertEqual(normcase(inspect.getsourcefile(git.abuse)), modfile)
447
- fn = "_non_existing_filename_used_for_sourcefile_test.py"
448
- co = compile("x=1", fn, "exec")
449
- self.assertEqual(inspect.getsourcefile(co), None)
450
- linecache.cache[co.co_filename] = (1, None, "None", co.co_filename)
451
- try:
452
- self.assertEqual(normcase(inspect.getsourcefile(co)), fn)
453
- finally:
454
- del linecache.cache[co.co_filename]
455
-
456
- def test_getfile(self):
457
- self.assertEqual(inspect.getfile(mod.StupidGit), mod.__file__)
458
-
459
- def test_getfile_class_without_module(self):
460
- class CM(type):
461
- @property
462
- def __module__(cls):
463
- raise AttributeError
464
- class C(metaclass=CM):
465
- pass
466
- with self.assertRaises(TypeError):
467
- inspect.getfile(C)
468
-
469
- def test_getmodule_recursion(self):
470
- from types import ModuleType
471
- name = '__inspect_dummy'
472
- m = sys.modules[name] = ModuleType(name)
473
- m.__file__ = "<string>" # hopefully not a real filename...
474
- m.__loader__ = "dummy" # pretend the filename is understood by a loader
475
- exec("def x(): pass", m.__dict__)
476
- self.assertEqual(inspect.getsourcefile(m.x.__code__), '<string>')
477
- del sys.modules[name]
478
- inspect.getmodule(compile('a=10','','single'))
479
-
480
- def test_proceed_with_fake_filename(self):
481
- '''doctest monkeypatches linecache to enable inspection'''
482
- fn, source = '<test>', 'def x(): pass\n'
483
- getlines = linecache.getlines
484
- def monkey(filename, module_globals=None):
485
- if filename == fn:
486
- return source.splitlines(keepends=True)
487
- else:
488
- return getlines(filename, module_globals)
489
- linecache.getlines = monkey
490
- try:
491
- ns = {}
492
- exec(compile(source, fn, 'single'), ns)
493
- inspect.getsource(ns["x"])
494
- finally:
495
- linecache.getlines = getlines
496
-
497
- def test_getsource_on_code_object(self):
498
- self.assertSourceEqual(mod.eggs.__code__, 12, 18)
499
-
500
- class TestDecorators(GetSourceBase):
501
- fodderModule = mod2
502
-
503
- def test_wrapped_decorator(self):
504
- self.assertSourceEqual(mod2.wrapped, 14, 17)
505
-
506
- def test_replacing_decorator(self):
507
- self.assertSourceEqual(mod2.gone, 9, 10)
508
-
509
- def test_getsource_unwrap(self):
510
- self.assertSourceEqual(mod2.real, 130, 132)
511
-
512
- def test_decorator_with_lambda(self):
513
- self.assertSourceEqual(mod2.func114, 113, 115)
514
-
515
- class TestOneliners(GetSourceBase):
516
- fodderModule = mod2
517
- def test_oneline_lambda(self):
518
- # Test inspect.getsource with a one-line lambda function.
519
- self.assertSourceEqual(mod2.oll, 25, 25)
520
-
521
- def test_threeline_lambda(self):
522
- # Test inspect.getsource with a three-line lambda function,
523
- # where the second and third lines are _not_ indented.
524
- self.assertSourceEqual(mod2.tll, 28, 30)
525
-
526
- def test_twoline_indented_lambda(self):
527
- # Test inspect.getsource with a two-line lambda function,
528
- # where the second line _is_ indented.
529
- self.assertSourceEqual(mod2.tlli, 33, 34)
530
-
531
- def test_onelinefunc(self):
532
- # Test inspect.getsource with a regular one-line function.
533
- self.assertSourceEqual(mod2.onelinefunc, 37, 37)
534
-
535
- def test_manyargs(self):
536
- # Test inspect.getsource with a regular function where
537
- # the arguments are on two lines and _not_ indented and
538
- # the body on the second line with the last arguments.
539
- self.assertSourceEqual(mod2.manyargs, 40, 41)
540
-
541
- def test_twolinefunc(self):
542
- # Test inspect.getsource with a regular function where
543
- # the body is on two lines, following the argument list and
544
- # continued on the next line by a \\.
545
- self.assertSourceEqual(mod2.twolinefunc, 44, 45)
546
-
547
- def test_lambda_in_list(self):
548
- # Test inspect.getsource with a one-line lambda function
549
- # defined in a list, indented.
550
- self.assertSourceEqual(mod2.a[1], 49, 49)
551
-
552
- def test_anonymous(self):
553
- # Test inspect.getsource with a lambda function defined
554
- # as argument to another function.
555
- self.assertSourceEqual(mod2.anonymous, 55, 55)
556
-
557
- class TestBuggyCases(GetSourceBase):
558
- fodderModule = mod2
559
-
560
- def test_with_comment(self):
561
- self.assertSourceEqual(mod2.with_comment, 58, 59)
562
-
563
- def test_multiline_sig(self):
564
- self.assertSourceEqual(mod2.multiline_sig[0], 63, 64)
565
-
566
- def test_nested_class(self):
567
- self.assertSourceEqual(mod2.func69().func71, 71, 72)
568
-
569
- def test_one_liner_followed_by_non_name(self):
570
- self.assertSourceEqual(mod2.func77, 77, 77)
571
-
572
- def test_one_liner_dedent_non_name(self):
573
- self.assertSourceEqual(mod2.cls82.func83, 83, 83)
574
-
575
- def test_with_comment_instead_of_docstring(self):
576
- self.assertSourceEqual(mod2.func88, 88, 90)
577
-
578
- def test_method_in_dynamic_class(self):
579
- self.assertSourceEqual(mod2.method_in_dynamic_class, 95, 97)
580
-
581
- # This should not skip for CPython, but might on a repackaged python where
582
- # unicodedata is not an external module, or on pypy.
583
- @unittest.skipIf(not hasattr(unicodedata, '__file__') or
584
- unicodedata.__file__.endswith('.py'),
585
- "unicodedata is not an external binary module")
586
- def test_findsource_binary(self):
587
- self.assertRaises(OSError, inspect.getsource, unicodedata)
588
- self.assertRaises(OSError, inspect.findsource, unicodedata)
589
-
590
- def test_findsource_code_in_linecache(self):
591
- lines = ["x=1"]
592
- co = compile(lines[0], "_dynamically_created_file", "exec")
593
- self.assertRaises(OSError, inspect.findsource, co)
594
- self.assertRaises(OSError, inspect.getsource, co)
595
- linecache.cache[co.co_filename] = (1, None, lines, co.co_filename)
596
- try:
597
- self.assertEqual(inspect.findsource(co), (lines,0))
598
- self.assertEqual(inspect.getsource(co), lines[0])
599
- finally:
600
- del linecache.cache[co.co_filename]
601
-
602
- def test_findsource_without_filename(self):
603
- for fname in ['', '<string>']:
604
- co = compile('x=1', fname, "exec")
605
- self.assertRaises(IOError, inspect.findsource, co)
606
- self.assertRaises(IOError, inspect.getsource, co)
607
-
608
- def test_getsource_on_method(self):
609
- self.assertSourceEqual(mod2.ClassWithMethod.method, 118, 119)
610
-
611
- def test_nested_func(self):
612
- self.assertSourceEqual(mod2.cls135.func136, 136, 139)
613
-
614
-
615
- class TestNoEOL(GetSourceBase):
616
- def setUp(self):
617
- self.tempdir = TESTFN + '_dir'
618
- os.mkdir(self.tempdir)
619
- with open(os.path.join(self.tempdir,
620
- 'inspect_fodder3%spy' % os.extsep), 'w') as f:
621
- f.write("class X:\n pass # No EOL")
622
- with DirsOnSysPath(self.tempdir):
623
- import inspect_fodder3 as mod3
624
- self.fodderModule = mod3
625
- super().setUp()
626
-
627
- def tearDown(self):
628
- shutil.rmtree(self.tempdir)
629
-
630
- def test_class(self):
631
- self.assertSourceEqual(self.fodderModule.X, 1, 2)
632
-
633
-
634
- class _BrokenDataDescriptor(object):
635
- """
636
- A broken data descriptor. See bug #1785.
637
- """
638
- def __get__(*args):
639
- raise AttributeError("broken data descriptor")
640
-
641
- def __set__(*args):
642
- raise RuntimeError
643
-
644
- def __getattr__(*args):
645
- raise AttributeError("broken data descriptor")
646
-
647
-
648
- class _BrokenMethodDescriptor(object):
649
- """
650
- A broken method descriptor. See bug #1785.
651
- """
652
- def __get__(*args):
653
- raise AttributeError("broken method descriptor")
654
-
655
- def __getattr__(*args):
656
- raise AttributeError("broken method descriptor")
657
-
658
-
659
- # Helper for testing classify_class_attrs.
660
- def attrs_wo_objs(cls):
661
- return [t[:3] for t in inspect.classify_class_attrs(cls)]
662
-
663
-
664
- class TestClassesAndFunctions(unittest.TestCase):
665
- def test_newstyle_mro(self):
666
- # The same w/ new-class MRO.
667
- class A(object): pass
668
- class B(A): pass
669
- class C(A): pass
670
- class D(B, C): pass
671
-
672
- expected = (D, B, C, A, object)
673
- got = inspect.getmro(D)
674
- self.assertEqual(expected, got)
675
-
676
- def assertArgSpecEquals(self, routine, args_e, varargs_e=None,
677
- varkw_e=None, defaults_e=None, formatted=None):
678
- with self.assertWarns(DeprecationWarning):
679
- args, varargs, varkw, defaults = inspect.getargspec(routine)
680
- self.assertEqual(args, args_e)
681
- self.assertEqual(varargs, varargs_e)
682
- self.assertEqual(varkw, varkw_e)
683
- self.assertEqual(defaults, defaults_e)
684
- if formatted is not None:
685
- self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults),
686
- formatted)
687
-
688
- def assertFullArgSpecEquals(self, routine, args_e, varargs_e=None,
689
- varkw_e=None, defaults_e=None,
690
- kwonlyargs_e=[], kwonlydefaults_e=None,
691
- ann_e={}, formatted=None):
692
- args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, ann = \
693
- inspect.getfullargspec(routine)
694
- self.assertEqual(args, args_e)
695
- self.assertEqual(varargs, varargs_e)
696
- self.assertEqual(varkw, varkw_e)
697
- self.assertEqual(defaults, defaults_e)
698
- self.assertEqual(kwonlyargs, kwonlyargs_e)
699
- self.assertEqual(kwonlydefaults, kwonlydefaults_e)
700
- self.assertEqual(ann, ann_e)
701
- if formatted is not None:
702
- self.assertEqual(inspect.formatargspec(args, varargs, varkw, defaults,
703
- kwonlyargs, kwonlydefaults, ann),
704
- formatted)
705
-
706
- def test_getargspec(self):
707
- self.assertArgSpecEquals(mod.eggs, ['x', 'y'], formatted='(x, y)')
708
-
709
- self.assertArgSpecEquals(mod.spam,
710
- ['a', 'b', 'c', 'd', 'e', 'f'],
711
- 'g', 'h', (3, 4, 5),
712
- '(a, b, c, d=3, e=4, f=5, *g, **h)')
713
-
714
- self.assertRaises(ValueError, self.assertArgSpecEquals,
715
- mod2.keyworded, [])
716
-
717
- self.assertRaises(ValueError, self.assertArgSpecEquals,
718
- mod2.annotated, [])
719
- self.assertRaises(ValueError, self.assertArgSpecEquals,
720
- mod2.keyword_only_arg, [])
721
-
722
-
723
- def test_getfullargspec(self):
724
- self.assertFullArgSpecEquals(mod2.keyworded, [], varargs_e='arg1',
725
- kwonlyargs_e=['arg2'],
726
- kwonlydefaults_e={'arg2':1},
727
- formatted='(*arg1, arg2=1)')
728
-
729
- self.assertFullArgSpecEquals(mod2.annotated, ['arg1'],
730
- ann_e={'arg1' : list},
731
- formatted='(arg1: list)')
732
- self.assertFullArgSpecEquals(mod2.keyword_only_arg, [],
733
- kwonlyargs_e=['arg'],
734
- formatted='(*, arg)')
735
-
736
- def test_argspec_api_ignores_wrapped(self):
737
- # Issue 20684: low level introspection API must ignore __wrapped__
738
- @functools.wraps(mod.spam)
739
- def ham(x, y):
740
- pass
741
- # Basic check
742
- self.assertArgSpecEquals(ham, ['x', 'y'], formatted='(x, y)')
743
- self.assertFullArgSpecEquals(ham, ['x', 'y'], formatted='(x, y)')
744
- self.assertFullArgSpecEquals(functools.partial(ham),
745
- ['x', 'y'], formatted='(x, y)')
746
- # Other variants
747
- def check_method(f):
748
- self.assertArgSpecEquals(f, ['self', 'x', 'y'],
749
- formatted='(self, x, y)')
750
- class C:
751
- @functools.wraps(mod.spam)
752
- def ham(self, x, y):
753
- pass
754
- pham = functools.partialmethod(ham)
755
- @functools.wraps(mod.spam)
756
- def __call__(self, x, y):
757
- pass
758
- check_method(C())
759
- check_method(C.ham)
760
- check_method(C().ham)
761
- check_method(C.pham)
762
- check_method(C().pham)
763
-
764
- class C_new:
765
- @functools.wraps(mod.spam)
766
- def __new__(self, x, y):
767
- pass
768
- check_method(C_new)
769
-
770
- class C_init:
771
- @functools.wraps(mod.spam)
772
- def __init__(self, x, y):
773
- pass
774
- check_method(C_init)
775
-
776
- def test_getfullargspec_signature_attr(self):
777
- def test():
778
- pass
779
- spam_param = inspect.Parameter('spam', inspect.Parameter.POSITIONAL_ONLY)
780
- test.__signature__ = inspect.Signature(parameters=(spam_param,))
781
-
782
- self.assertFullArgSpecEquals(test, args_e=['spam'], formatted='(spam)')
783
-
784
- def test_getfullargspec_signature_annos(self):
785
- def test(a:'spam') -> 'ham': pass
786
- spec = inspect.getfullargspec(test)
787
- self.assertEqual(test.__annotations__, spec.annotations)
788
-
789
- def test(): pass
790
- spec = inspect.getfullargspec(test)
791
- self.assertEqual(test.__annotations__, spec.annotations)
792
-
793
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
794
- "Signature information for builtins requires docstrings")
795
- def test_getfullargspec_builtin_methods(self):
796
- self.assertFullArgSpecEquals(_pickle.Pickler.dump,
797
- args_e=['self', 'obj'], formatted='(self, obj)')
798
-
799
- self.assertFullArgSpecEquals(_pickle.Pickler(io.BytesIO()).dump,
800
- args_e=['self', 'obj'], formatted='(self, obj)')
801
-
802
- self.assertFullArgSpecEquals(
803
- os.stat,
804
- args_e=['path'],
805
- kwonlyargs_e=['dir_fd', 'follow_symlinks'],
806
- kwonlydefaults_e={'dir_fd': None, 'follow_symlinks': True},
807
- formatted='(path, *, dir_fd=None, follow_symlinks=True)')
808
-
809
- @cpython_only
810
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
811
- "Signature information for builtins requires docstrings")
812
- def test_getfullagrspec_builtin_func(self):
813
- import _testcapi
814
- builtin = _testcapi.docstring_with_signature_with_defaults
815
- spec = inspect.getfullargspec(builtin)
816
- self.assertEqual(spec.defaults[0], 'avocado')
817
-
818
- @cpython_only
819
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
820
- "Signature information for builtins requires docstrings")
821
- def test_getfullagrspec_builtin_func_no_signature(self):
822
- import _testcapi
823
- builtin = _testcapi.docstring_no_signature
824
- with self.assertRaises(TypeError):
825
- inspect.getfullargspec(builtin)
826
-
827
- def test_getargspec_method(self):
828
- class A(object):
829
- def m(self):
830
- pass
831
- self.assertArgSpecEquals(A.m, ['self'])
832
-
833
- def test_classify_newstyle(self):
834
- class A(object):
835
-
836
- def s(): pass
837
- s = staticmethod(s)
838
-
839
- def c(cls): pass
840
- c = classmethod(c)
841
-
842
- def getp(self): pass
843
- p = property(getp)
844
-
845
- def m(self): pass
846
-
847
- def m1(self): pass
848
-
849
- datablob = '1'
850
-
851
- dd = _BrokenDataDescriptor()
852
- md = _BrokenMethodDescriptor()
853
-
854
- attrs = attrs_wo_objs(A)
855
-
856
- self.assertIn(('__new__', 'method', object), attrs, 'missing __new__')
857
- self.assertIn(('__init__', 'method', object), attrs, 'missing __init__')
858
-
859
- self.assertIn(('s', 'static method', A), attrs, 'missing static method')
860
- self.assertIn(('c', 'class method', A), attrs, 'missing class method')
861
- self.assertIn(('p', 'property', A), attrs, 'missing property')
862
- self.assertIn(('m', 'method', A), attrs,
863
- 'missing plain method: %r' % attrs)
864
- self.assertIn(('m1', 'method', A), attrs, 'missing plain method')
865
- self.assertIn(('datablob', 'data', A), attrs, 'missing data')
866
- self.assertIn(('md', 'method', A), attrs, 'missing method descriptor')
867
- self.assertIn(('dd', 'data', A), attrs, 'missing data descriptor')
868
-
869
- class B(A):
870
-
871
- def m(self): pass
872
-
873
- attrs = attrs_wo_objs(B)
874
- self.assertIn(('s', 'static method', A), attrs, 'missing static method')
875
- self.assertIn(('c', 'class method', A), attrs, 'missing class method')
876
- self.assertIn(('p', 'property', A), attrs, 'missing property')
877
- self.assertIn(('m', 'method', B), attrs, 'missing plain method')
878
- self.assertIn(('m1', 'method', A), attrs, 'missing plain method')
879
- self.assertIn(('datablob', 'data', A), attrs, 'missing data')
880
- self.assertIn(('md', 'method', A), attrs, 'missing method descriptor')
881
- self.assertIn(('dd', 'data', A), attrs, 'missing data descriptor')
882
-
883
-
884
- class C(A):
885
-
886
- def m(self): pass
887
- def c(self): pass
888
-
889
- attrs = attrs_wo_objs(C)
890
- self.assertIn(('s', 'static method', A), attrs, 'missing static method')
891
- self.assertIn(('c', 'method', C), attrs, 'missing plain method')
892
- self.assertIn(('p', 'property', A), attrs, 'missing property')
893
- self.assertIn(('m', 'method', C), attrs, 'missing plain method')
894
- self.assertIn(('m1', 'method', A), attrs, 'missing plain method')
895
- self.assertIn(('datablob', 'data', A), attrs, 'missing data')
896
- self.assertIn(('md', 'method', A), attrs, 'missing method descriptor')
897
- self.assertIn(('dd', 'data', A), attrs, 'missing data descriptor')
898
-
899
- class D(B, C):
900
-
901
- def m1(self): pass
902
-
903
- attrs = attrs_wo_objs(D)
904
- self.assertIn(('s', 'static method', A), attrs, 'missing static method')
905
- self.assertIn(('c', 'method', C), attrs, 'missing plain method')
906
- self.assertIn(('p', 'property', A), attrs, 'missing property')
907
- self.assertIn(('m', 'method', B), attrs, 'missing plain method')
908
- self.assertIn(('m1', 'method', D), attrs, 'missing plain method')
909
- self.assertIn(('datablob', 'data', A), attrs, 'missing data')
910
- self.assertIn(('md', 'method', A), attrs, 'missing method descriptor')
911
- self.assertIn(('dd', 'data', A), attrs, 'missing data descriptor')
912
-
913
- def test_classify_builtin_types(self):
914
- # Simple sanity check that all built-in types can have their
915
- # attributes classified.
916
- for name in dir(__builtins__):
917
- builtin = getattr(__builtins__, name)
918
- if isinstance(builtin, type):
919
- inspect.classify_class_attrs(builtin)
920
-
921
- def test_classify_DynamicClassAttribute(self):
922
- class Meta(type):
923
- def __getattr__(self, name):
924
- if name == 'ham':
925
- return 'spam'
926
- return super().__getattr__(name)
927
- class VA(metaclass=Meta):
928
- @types.DynamicClassAttribute
929
- def ham(self):
930
- return 'eggs'
931
- should_find_dca = inspect.Attribute('ham', 'data', VA, VA.__dict__['ham'])
932
- self.assertIn(should_find_dca, inspect.classify_class_attrs(VA))
933
- should_find_ga = inspect.Attribute('ham', 'data', Meta, 'spam')
934
- self.assertIn(should_find_ga, inspect.classify_class_attrs(VA))
935
-
936
- def test_classify_overrides_bool(self):
937
- class NoBool(object):
938
- def __eq__(self, other):
939
- return NoBool()
940
-
941
- def __bool__(self):
942
- raise NotImplementedError(
943
- "This object does not specify a boolean value")
944
-
945
- class HasNB(object):
946
- dd = NoBool()
947
-
948
- should_find_attr = inspect.Attribute('dd', 'data', HasNB, HasNB.dd)
949
- self.assertIn(should_find_attr, inspect.classify_class_attrs(HasNB))
950
-
951
- def test_classify_metaclass_class_attribute(self):
952
- class Meta(type):
953
- fish = 'slap'
954
- def __dir__(self):
955
- return ['__class__', '__module__', '__name__', 'fish']
956
- class Class(metaclass=Meta):
957
- pass
958
- should_find = inspect.Attribute('fish', 'data', Meta, 'slap')
959
- self.assertIn(should_find, inspect.classify_class_attrs(Class))
960
-
961
- def test_classify_VirtualAttribute(self):
962
- class Meta(type):
963
- def __dir__(cls):
964
- return ['__class__', '__module__', '__name__', 'BOOM']
965
- def __getattr__(self, name):
966
- if name =='BOOM':
967
- return 42
968
- return super().__getattr(name)
969
- class Class(metaclass=Meta):
970
- pass
971
- should_find = inspect.Attribute('BOOM', 'data', Meta, 42)
972
- self.assertIn(should_find, inspect.classify_class_attrs(Class))
973
-
974
- def test_classify_VirtualAttribute_multi_classes(self):
975
- class Meta1(type):
976
- def __dir__(cls):
977
- return ['__class__', '__module__', '__name__', 'one']
978
- def __getattr__(self, name):
979
- if name =='one':
980
- return 1
981
- return super().__getattr__(name)
982
- class Meta2(type):
983
- def __dir__(cls):
984
- return ['__class__', '__module__', '__name__', 'two']
985
- def __getattr__(self, name):
986
- if name =='two':
987
- return 2
988
- return super().__getattr__(name)
989
- class Meta3(Meta1, Meta2):
990
- def __dir__(cls):
991
- return list(sorted(set(['__class__', '__module__', '__name__', 'three'] +
992
- Meta1.__dir__(cls) + Meta2.__dir__(cls))))
993
- def __getattr__(self, name):
994
- if name =='three':
995
- return 3
996
- return super().__getattr__(name)
997
- class Class1(metaclass=Meta1):
998
- pass
999
- class Class2(Class1, metaclass=Meta3):
1000
- pass
1001
-
1002
- should_find1 = inspect.Attribute('one', 'data', Meta1, 1)
1003
- should_find2 = inspect.Attribute('two', 'data', Meta2, 2)
1004
- should_find3 = inspect.Attribute('three', 'data', Meta3, 3)
1005
- cca = inspect.classify_class_attrs(Class2)
1006
- for sf in (should_find1, should_find2, should_find3):
1007
- self.assertIn(sf, cca)
1008
-
1009
- def test_classify_class_attrs_with_buggy_dir(self):
1010
- class M(type):
1011
- def __dir__(cls):
1012
- return ['__class__', '__name__', 'missing']
1013
- class C(metaclass=M):
1014
- pass
1015
- attrs = [a[0] for a in inspect.classify_class_attrs(C)]
1016
- self.assertNotIn('missing', attrs)
1017
-
1018
- def test_getmembers_descriptors(self):
1019
- class A(object):
1020
- dd = _BrokenDataDescriptor()
1021
- md = _BrokenMethodDescriptor()
1022
-
1023
- def pred_wrapper(pred):
1024
- # A quick'n'dirty way to discard standard attributes of new-style
1025
- # classes.
1026
- class Empty(object):
1027
- pass
1028
- def wrapped(x):
1029
- if '__name__' in dir(x) and hasattr(Empty, x.__name__):
1030
- return False
1031
- return pred(x)
1032
- return wrapped
1033
-
1034
- ismethoddescriptor = pred_wrapper(inspect.ismethoddescriptor)
1035
- isdatadescriptor = pred_wrapper(inspect.isdatadescriptor)
1036
-
1037
- self.assertEqual(inspect.getmembers(A, ismethoddescriptor),
1038
- [('md', A.__dict__['md'])])
1039
- self.assertEqual(inspect.getmembers(A, isdatadescriptor),
1040
- [('dd', A.__dict__['dd'])])
1041
-
1042
- class B(A):
1043
- pass
1044
-
1045
- self.assertEqual(inspect.getmembers(B, ismethoddescriptor),
1046
- [('md', A.__dict__['md'])])
1047
- self.assertEqual(inspect.getmembers(B, isdatadescriptor),
1048
- [('dd', A.__dict__['dd'])])
1049
-
1050
- def test_getmembers_method(self):
1051
- class B:
1052
- def f(self):
1053
- pass
1054
-
1055
- self.assertIn(('f', B.f), inspect.getmembers(B))
1056
- self.assertNotIn(('f', B.f), inspect.getmembers(B, inspect.ismethod))
1057
- b = B()
1058
- self.assertIn(('f', b.f), inspect.getmembers(b))
1059
- self.assertIn(('f', b.f), inspect.getmembers(b, inspect.ismethod))
1060
-
1061
- def test_getmembers_VirtualAttribute(self):
1062
- class M(type):
1063
- def __getattr__(cls, name):
1064
- if name == 'eggs':
1065
- return 'scrambled'
1066
- return super().__getattr__(name)
1067
- class A(metaclass=M):
1068
- @types.DynamicClassAttribute
1069
- def eggs(self):
1070
- return 'spam'
1071
- self.assertIn(('eggs', 'scrambled'), inspect.getmembers(A))
1072
- self.assertIn(('eggs', 'spam'), inspect.getmembers(A()))
1073
-
1074
- def test_getmembers_with_buggy_dir(self):
1075
- class M(type):
1076
- def __dir__(cls):
1077
- return ['__class__', '__name__', 'missing']
1078
- class C(metaclass=M):
1079
- pass
1080
- attrs = [a[0] for a in inspect.getmembers(C)]
1081
- self.assertNotIn('missing', attrs)
1082
-
1083
-
1084
- _global_ref = object()
1085
- class TestGetClosureVars(unittest.TestCase):
1086
-
1087
- def test_name_resolution(self):
1088
- # Basic test of the 4 different resolution mechanisms
1089
- def f(nonlocal_ref):
1090
- def g(local_ref):
1091
- print(local_ref, nonlocal_ref, _global_ref, unbound_ref)
1092
- return g
1093
- _arg = object()
1094
- nonlocal_vars = {"nonlocal_ref": _arg}
1095
- global_vars = {"_global_ref": _global_ref}
1096
- builtin_vars = {"print": print}
1097
- unbound_names = {"unbound_ref"}
1098
- expected = inspect.ClosureVars(nonlocal_vars, global_vars,
1099
- builtin_vars, unbound_names)
1100
- self.assertEqual(inspect.getclosurevars(f(_arg)), expected)
1101
-
1102
- def test_generator_closure(self):
1103
- def f(nonlocal_ref):
1104
- def g(local_ref):
1105
- print(local_ref, nonlocal_ref, _global_ref, unbound_ref)
1106
- yield
1107
- return g
1108
- _arg = object()
1109
- nonlocal_vars = {"nonlocal_ref": _arg}
1110
- global_vars = {"_global_ref": _global_ref}
1111
- builtin_vars = {"print": print}
1112
- unbound_names = {"unbound_ref"}
1113
- expected = inspect.ClosureVars(nonlocal_vars, global_vars,
1114
- builtin_vars, unbound_names)
1115
- self.assertEqual(inspect.getclosurevars(f(_arg)), expected)
1116
-
1117
- def test_method_closure(self):
1118
- class C:
1119
- def f(self, nonlocal_ref):
1120
- def g(local_ref):
1121
- print(local_ref, nonlocal_ref, _global_ref, unbound_ref)
1122
- return g
1123
- _arg = object()
1124
- nonlocal_vars = {"nonlocal_ref": _arg}
1125
- global_vars = {"_global_ref": _global_ref}
1126
- builtin_vars = {"print": print}
1127
- unbound_names = {"unbound_ref"}
1128
- expected = inspect.ClosureVars(nonlocal_vars, global_vars,
1129
- builtin_vars, unbound_names)
1130
- self.assertEqual(inspect.getclosurevars(C().f(_arg)), expected)
1131
-
1132
- def test_nonlocal_vars(self):
1133
- # More complex tests of nonlocal resolution
1134
- def _nonlocal_vars(f):
1135
- return inspect.getclosurevars(f).nonlocals
1136
-
1137
- def make_adder(x):
1138
- def add(y):
1139
- return x + y
1140
- return add
1141
-
1142
- def curry(func, arg1):
1143
- return lambda arg2: func(arg1, arg2)
1144
-
1145
- def less_than(a, b):
1146
- return a < b
1147
-
1148
- # The infamous Y combinator.
1149
- def Y(le):
1150
- def g(f):
1151
- return le(lambda x: f(f)(x))
1152
- Y.g_ref = g
1153
- return g(g)
1154
-
1155
- def check_y_combinator(func):
1156
- self.assertEqual(_nonlocal_vars(func), {'f': Y.g_ref})
1157
-
1158
- inc = make_adder(1)
1159
- add_two = make_adder(2)
1160
- greater_than_five = curry(less_than, 5)
1161
-
1162
- self.assertEqual(_nonlocal_vars(inc), {'x': 1})
1163
- self.assertEqual(_nonlocal_vars(add_two), {'x': 2})
1164
- self.assertEqual(_nonlocal_vars(greater_than_five),
1165
- {'arg1': 5, 'func': less_than})
1166
- self.assertEqual(_nonlocal_vars((lambda x: lambda y: x + y)(3)),
1167
- {'x': 3})
1168
- Y(check_y_combinator)
1169
-
1170
- def test_getclosurevars_empty(self):
1171
- def foo(): pass
1172
- _empty = inspect.ClosureVars({}, {}, {}, set())
1173
- self.assertEqual(inspect.getclosurevars(lambda: True), _empty)
1174
- self.assertEqual(inspect.getclosurevars(foo), _empty)
1175
-
1176
- def test_getclosurevars_error(self):
1177
- class T: pass
1178
- self.assertRaises(TypeError, inspect.getclosurevars, 1)
1179
- self.assertRaises(TypeError, inspect.getclosurevars, list)
1180
- self.assertRaises(TypeError, inspect.getclosurevars, {})
1181
-
1182
- def _private_globals(self):
1183
- code = """def f(): print(path)"""
1184
- ns = {}
1185
- exec(code, ns)
1186
- return ns["f"], ns
1187
-
1188
- def test_builtins_fallback(self):
1189
- f, ns = self._private_globals()
1190
- ns.pop("__builtins__", None)
1191
- expected = inspect.ClosureVars({}, {}, {"print":print}, {"path"})
1192
- self.assertEqual(inspect.getclosurevars(f), expected)
1193
-
1194
- def test_builtins_as_dict(self):
1195
- f, ns = self._private_globals()
1196
- ns["__builtins__"] = {"path":1}
1197
- expected = inspect.ClosureVars({}, {}, {"path":1}, {"print"})
1198
- self.assertEqual(inspect.getclosurevars(f), expected)
1199
-
1200
- def test_builtins_as_module(self):
1201
- f, ns = self._private_globals()
1202
- ns["__builtins__"] = os
1203
- expected = inspect.ClosureVars({}, {}, {"path":os.path}, {"print"})
1204
- self.assertEqual(inspect.getclosurevars(f), expected)
1205
-
1206
-
1207
- class TestGetcallargsFunctions(unittest.TestCase):
1208
-
1209
- def assertEqualCallArgs(self, func, call_params_string, locs=None):
1210
- locs = dict(locs or {}, func=func)
1211
- r1 = eval('func(%s)' % call_params_string, None, locs)
1212
- r2 = eval('inspect.getcallargs(func, %s)' % call_params_string, None,
1213
- locs)
1214
- self.assertEqual(r1, r2)
1215
-
1216
- def assertEqualException(self, func, call_param_string, locs=None):
1217
- locs = dict(locs or {}, func=func)
1218
- try:
1219
- eval('func(%s)' % call_param_string, None, locs)
1220
- except Exception as e:
1221
- ex1 = e
1222
- else:
1223
- self.fail('Exception not raised')
1224
- try:
1225
- eval('inspect.getcallargs(func, %s)' % call_param_string, None,
1226
- locs)
1227
- except Exception as e:
1228
- ex2 = e
1229
- else:
1230
- self.fail('Exception not raised')
1231
- self.assertIs(type(ex1), type(ex2))
1232
- self.assertEqual(str(ex1), str(ex2))
1233
- del ex1, ex2
1234
-
1235
- def makeCallable(self, signature):
1236
- """Create a function that returns its locals()"""
1237
- code = "lambda %s: locals()"
1238
- return eval(code % signature)
1239
-
1240
- def test_plain(self):
1241
- f = self.makeCallable('a, b=1')
1242
- self.assertEqualCallArgs(f, '2')
1243
- self.assertEqualCallArgs(f, '2, 3')
1244
- self.assertEqualCallArgs(f, 'a=2')
1245
- self.assertEqualCallArgs(f, 'b=3, a=2')
1246
- self.assertEqualCallArgs(f, '2, b=3')
1247
- # expand *iterable / **mapping
1248
- self.assertEqualCallArgs(f, '*(2,)')
1249
- self.assertEqualCallArgs(f, '*[2]')
1250
- self.assertEqualCallArgs(f, '*(2, 3)')
1251
- self.assertEqualCallArgs(f, '*[2, 3]')
1252
- self.assertEqualCallArgs(f, '**{"a":2}')
1253
- self.assertEqualCallArgs(f, 'b=3, **{"a":2}')
1254
- self.assertEqualCallArgs(f, '2, **{"b":3}')
1255
- self.assertEqualCallArgs(f, '**{"b":3, "a":2}')
1256
- # expand UserList / UserDict
1257
- self.assertEqualCallArgs(f, '*collections.UserList([2])')
1258
- self.assertEqualCallArgs(f, '*collections.UserList([2, 3])')
1259
- self.assertEqualCallArgs(f, '**collections.UserDict(a=2)')
1260
- self.assertEqualCallArgs(f, '2, **collections.UserDict(b=3)')
1261
- self.assertEqualCallArgs(f, 'b=2, **collections.UserDict(a=3)')
1262
-
1263
- def test_varargs(self):
1264
- f = self.makeCallable('a, b=1, *c')
1265
- self.assertEqualCallArgs(f, '2')
1266
- self.assertEqualCallArgs(f, '2, 3')
1267
- self.assertEqualCallArgs(f, '2, 3, 4')
1268
- self.assertEqualCallArgs(f, '*(2,3,4)')
1269
- self.assertEqualCallArgs(f, '2, *[3,4]')
1270
- self.assertEqualCallArgs(f, '2, 3, *collections.UserList([4])')
1271
-
1272
- def test_varkw(self):
1273
- f = self.makeCallable('a, b=1, **c')
1274
- self.assertEqualCallArgs(f, 'a=2')
1275
- self.assertEqualCallArgs(f, '2, b=3, c=4')
1276
- self.assertEqualCallArgs(f, 'b=3, a=2, c=4')
1277
- self.assertEqualCallArgs(f, 'c=4, **{"a":2, "b":3}')
1278
- self.assertEqualCallArgs(f, '2, c=4, **{"b":3}')
1279
- self.assertEqualCallArgs(f, 'b=2, **{"a":3, "c":4}')
1280
- self.assertEqualCallArgs(f, '**collections.UserDict(a=2, b=3, c=4)')
1281
- self.assertEqualCallArgs(f, '2, c=4, **collections.UserDict(b=3)')
1282
- self.assertEqualCallArgs(f, 'b=2, **collections.UserDict(a=3, c=4)')
1283
-
1284
- def test_varkw_only(self):
1285
- # issue11256:
1286
- f = self.makeCallable('**c')
1287
- self.assertEqualCallArgs(f, '')
1288
- self.assertEqualCallArgs(f, 'a=1')
1289
- self.assertEqualCallArgs(f, 'a=1, b=2')
1290
- self.assertEqualCallArgs(f, 'c=3, **{"a": 1, "b": 2}')
1291
- self.assertEqualCallArgs(f, '**collections.UserDict(a=1, b=2)')
1292
- self.assertEqualCallArgs(f, 'c=3, **collections.UserDict(a=1, b=2)')
1293
-
1294
- def test_keyword_only(self):
1295
- f = self.makeCallable('a=3, *, c, d=2')
1296
- self.assertEqualCallArgs(f, 'c=3')
1297
- self.assertEqualCallArgs(f, 'c=3, a=3')
1298
- self.assertEqualCallArgs(f, 'a=2, c=4')
1299
- self.assertEqualCallArgs(f, '4, c=4')
1300
- self.assertEqualException(f, '')
1301
- self.assertEqualException(f, '3')
1302
- self.assertEqualException(f, 'a=3')
1303
- self.assertEqualException(f, 'd=4')
1304
-
1305
- f = self.makeCallable('*, c, d=2')
1306
- self.assertEqualCallArgs(f, 'c=3')
1307
- self.assertEqualCallArgs(f, 'c=3, d=4')
1308
- self.assertEqualCallArgs(f, 'd=4, c=3')
1309
-
1310
- def test_multiple_features(self):
1311
- f = self.makeCallable('a, b=2, *f, **g')
1312
- self.assertEqualCallArgs(f, '2, 3, 7')
1313
- self.assertEqualCallArgs(f, '2, 3, x=8')
1314
- self.assertEqualCallArgs(f, '2, 3, x=8, *[(4,[5,6]), 7]')
1315
- self.assertEqualCallArgs(f, '2, x=8, *[3, (4,[5,6]), 7], y=9')
1316
- self.assertEqualCallArgs(f, 'x=8, *[2, 3, (4,[5,6])], y=9')
1317
- self.assertEqualCallArgs(f, 'x=8, *collections.UserList('
1318
- '[2, 3, (4,[5,6])]), **{"y":9, "z":10}')
1319
- self.assertEqualCallArgs(f, '2, x=8, *collections.UserList([3, '
1320
- '(4,[5,6])]), **collections.UserDict('
1321
- 'y=9, z=10)')
1322
-
1323
- f = self.makeCallable('a, b=2, *f, x, y=99, **g')
1324
- self.assertEqualCallArgs(f, '2, 3, x=8')
1325
- self.assertEqualCallArgs(f, '2, 3, x=8, *[(4,[5,6]), 7]')
1326
- self.assertEqualCallArgs(f, '2, x=8, *[3, (4,[5,6]), 7], y=9, z=10')
1327
- self.assertEqualCallArgs(f, 'x=8, *[2, 3, (4,[5,6])], y=9, z=10')
1328
- self.assertEqualCallArgs(f, 'x=8, *collections.UserList('
1329
- '[2, 3, (4,[5,6])]), q=0, **{"y":9, "z":10}')
1330
- self.assertEqualCallArgs(f, '2, x=8, *collections.UserList([3, '
1331
- '(4,[5,6])]), q=0, **collections.UserDict('
1332
- 'y=9, z=10)')
1333
-
1334
- def test_errors(self):
1335
- f0 = self.makeCallable('')
1336
- f1 = self.makeCallable('a, b')
1337
- f2 = self.makeCallable('a, b=1')
1338
- # f0 takes no arguments
1339
- self.assertEqualException(f0, '1')
1340
- self.assertEqualException(f0, 'x=1')
1341
- self.assertEqualException(f0, '1,x=1')
1342
- # f1 takes exactly 2 arguments
1343
- self.assertEqualException(f1, '')
1344
- self.assertEqualException(f1, '1')
1345
- self.assertEqualException(f1, 'a=2')
1346
- self.assertEqualException(f1, 'b=3')
1347
- # f2 takes at least 1 argument
1348
- self.assertEqualException(f2, '')
1349
- self.assertEqualException(f2, 'b=3')
1350
- for f in f1, f2:
1351
- # f1/f2 takes exactly/at most 2 arguments
1352
- self.assertEqualException(f, '2, 3, 4')
1353
- self.assertEqualException(f, '1, 2, 3, a=1')
1354
- self.assertEqualException(f, '2, 3, 4, c=5')
1355
- # XXX: success of this one depends on dict order
1356
- ## self.assertEqualException(f, '2, 3, 4, a=1, c=5')
1357
- # f got an unexpected keyword argument
1358
- self.assertEqualException(f, 'c=2')
1359
- self.assertEqualException(f, '2, c=3')
1360
- self.assertEqualException(f, '2, 3, c=4')
1361
- self.assertEqualException(f, '2, c=4, b=3')
1362
- self.assertEqualException(f, '**{u"\u03c0\u03b9": 4}')
1363
- # f got multiple values for keyword argument
1364
- self.assertEqualException(f, '1, a=2')
1365
- self.assertEqualException(f, '1, **{"a":2}')
1366
- self.assertEqualException(f, '1, 2, b=3')
1367
- # XXX: Python inconsistency
1368
- # - for functions and bound methods: unexpected keyword 'c'
1369
- # - for unbound methods: multiple values for keyword 'a'
1370
- #self.assertEqualException(f, '1, c=3, a=2')
1371
- # issue11256:
1372
- f3 = self.makeCallable('**c')
1373
- self.assertEqualException(f3, '1, 2')
1374
- self.assertEqualException(f3, '1, 2, a=1, b=2')
1375
- f4 = self.makeCallable('*, a, b=0')
1376
- self.assertEqualException(f3, '1, 2')
1377
- self.assertEqualException(f3, '1, 2, a=1, b=2')
1378
-
1379
- # issue #20816: getcallargs() fails to iterate over non-existent
1380
- # kwonlydefaults and raises a wrong TypeError
1381
- def f5(*, a): pass
1382
- with self.assertRaisesRegex(TypeError,
1383
- 'missing 1 required keyword-only'):
1384
- inspect.getcallargs(f5)
1385
-
1386
-
1387
- # issue20817:
1388
- def f6(a, b, c):
1389
- pass
1390
- with self.assertRaisesRegex(TypeError, "'a', 'b' and 'c'"):
1391
- inspect.getcallargs(f6)
1392
-
1393
- class TestGetcallargsMethods(TestGetcallargsFunctions):
1394
-
1395
- def setUp(self):
1396
- class Foo(object):
1397
- pass
1398
- self.cls = Foo
1399
- self.inst = Foo()
1400
-
1401
- def makeCallable(self, signature):
1402
- assert 'self' not in signature
1403
- mk = super(TestGetcallargsMethods, self).makeCallable
1404
- self.cls.method = mk('self, ' + signature)
1405
- return self.inst.method
1406
-
1407
- class TestGetcallargsUnboundMethods(TestGetcallargsMethods):
1408
-
1409
- def makeCallable(self, signature):
1410
- super(TestGetcallargsUnboundMethods, self).makeCallable(signature)
1411
- return self.cls.method
1412
-
1413
- def assertEqualCallArgs(self, func, call_params_string, locs=None):
1414
- return super(TestGetcallargsUnboundMethods, self).assertEqualCallArgs(
1415
- *self._getAssertEqualParams(func, call_params_string, locs))
1416
-
1417
- def assertEqualException(self, func, call_params_string, locs=None):
1418
- return super(TestGetcallargsUnboundMethods, self).assertEqualException(
1419
- *self._getAssertEqualParams(func, call_params_string, locs))
1420
-
1421
- def _getAssertEqualParams(self, func, call_params_string, locs=None):
1422
- assert 'inst' not in call_params_string
1423
- locs = dict(locs or {}, inst=self.inst)
1424
- return (func, 'inst,' + call_params_string, locs)
1425
-
1426
-
1427
- class TestGetattrStatic(unittest.TestCase):
1428
-
1429
- def test_basic(self):
1430
- class Thing(object):
1431
- x = object()
1432
-
1433
- thing = Thing()
1434
- self.assertEqual(inspect.getattr_static(thing, 'x'), Thing.x)
1435
- self.assertEqual(inspect.getattr_static(thing, 'x', None), Thing.x)
1436
- with self.assertRaises(AttributeError):
1437
- inspect.getattr_static(thing, 'y')
1438
-
1439
- self.assertEqual(inspect.getattr_static(thing, 'y', 3), 3)
1440
-
1441
- def test_inherited(self):
1442
- class Thing(object):
1443
- x = object()
1444
- class OtherThing(Thing):
1445
- pass
1446
-
1447
- something = OtherThing()
1448
- self.assertEqual(inspect.getattr_static(something, 'x'), Thing.x)
1449
-
1450
- def test_instance_attr(self):
1451
- class Thing(object):
1452
- x = 2
1453
- def __init__(self, x):
1454
- self.x = x
1455
- thing = Thing(3)
1456
- self.assertEqual(inspect.getattr_static(thing, 'x'), 3)
1457
- del thing.x
1458
- self.assertEqual(inspect.getattr_static(thing, 'x'), 2)
1459
-
1460
- def test_property(self):
1461
- class Thing(object):
1462
- @property
1463
- def x(self):
1464
- raise AttributeError("I'm pretending not to exist")
1465
- thing = Thing()
1466
- self.assertEqual(inspect.getattr_static(thing, 'x'), Thing.x)
1467
-
1468
- def test_descriptor_raises_AttributeError(self):
1469
- class descriptor(object):
1470
- def __get__(*_):
1471
- raise AttributeError("I'm pretending not to exist")
1472
- desc = descriptor()
1473
- class Thing(object):
1474
- x = desc
1475
- thing = Thing()
1476
- self.assertEqual(inspect.getattr_static(thing, 'x'), desc)
1477
-
1478
- def test_classAttribute(self):
1479
- class Thing(object):
1480
- x = object()
1481
-
1482
- self.assertEqual(inspect.getattr_static(Thing, 'x'), Thing.x)
1483
-
1484
- def test_classVirtualAttribute(self):
1485
- class Thing(object):
1486
- @types.DynamicClassAttribute
1487
- def x(self):
1488
- return self._x
1489
- _x = object()
1490
-
1491
- self.assertEqual(inspect.getattr_static(Thing, 'x'), Thing.__dict__['x'])
1492
-
1493
- def test_inherited_classattribute(self):
1494
- class Thing(object):
1495
- x = object()
1496
- class OtherThing(Thing):
1497
- pass
1498
-
1499
- self.assertEqual(inspect.getattr_static(OtherThing, 'x'), Thing.x)
1500
-
1501
- def test_slots(self):
1502
- class Thing(object):
1503
- y = 'bar'
1504
- __slots__ = ['x']
1505
- def __init__(self):
1506
- self.x = 'foo'
1507
- thing = Thing()
1508
- self.assertEqual(inspect.getattr_static(thing, 'x'), Thing.x)
1509
- self.assertEqual(inspect.getattr_static(thing, 'y'), 'bar')
1510
-
1511
- del thing.x
1512
- self.assertEqual(inspect.getattr_static(thing, 'x'), Thing.x)
1513
-
1514
- def test_metaclass(self):
1515
- class meta(type):
1516
- attr = 'foo'
1517
- class Thing(object, metaclass=meta):
1518
- pass
1519
- self.assertEqual(inspect.getattr_static(Thing, 'attr'), 'foo')
1520
-
1521
- class sub(meta):
1522
- pass
1523
- class OtherThing(object, metaclass=sub):
1524
- x = 3
1525
- self.assertEqual(inspect.getattr_static(OtherThing, 'attr'), 'foo')
1526
-
1527
- class OtherOtherThing(OtherThing):
1528
- pass
1529
- # this test is odd, but it was added as it exposed a bug
1530
- self.assertEqual(inspect.getattr_static(OtherOtherThing, 'x'), 3)
1531
-
1532
- def test_no_dict_no_slots(self):
1533
- self.assertEqual(inspect.getattr_static(1, 'foo', None), None)
1534
- self.assertNotEqual(inspect.getattr_static('foo', 'lower'), None)
1535
-
1536
- def test_no_dict_no_slots_instance_member(self):
1537
- # returns descriptor
1538
- with open(__file__) as handle:
1539
- self.assertEqual(inspect.getattr_static(handle, 'name'), type(handle).name)
1540
-
1541
- def test_inherited_slots(self):
1542
- # returns descriptor
1543
- class Thing(object):
1544
- __slots__ = ['x']
1545
- def __init__(self):
1546
- self.x = 'foo'
1547
-
1548
- class OtherThing(Thing):
1549
- pass
1550
- # it would be nice if this worked...
1551
- # we get the descriptor instead of the instance attribute
1552
- self.assertEqual(inspect.getattr_static(OtherThing(), 'x'), Thing.x)
1553
-
1554
- def test_descriptor(self):
1555
- class descriptor(object):
1556
- def __get__(self, instance, owner):
1557
- return 3
1558
- class Foo(object):
1559
- d = descriptor()
1560
-
1561
- foo = Foo()
1562
-
1563
- # for a non data descriptor we return the instance attribute
1564
- foo.__dict__['d'] = 1
1565
- self.assertEqual(inspect.getattr_static(foo, 'd'), 1)
1566
-
1567
- # if the descriptor is a data-desciptor we should return the
1568
- # descriptor
1569
- descriptor.__set__ = lambda s, i, v: None
1570
- self.assertEqual(inspect.getattr_static(foo, 'd'), Foo.__dict__['d'])
1571
-
1572
-
1573
- def test_metaclass_with_descriptor(self):
1574
- class descriptor(object):
1575
- def __get__(self, instance, owner):
1576
- return 3
1577
- class meta(type):
1578
- d = descriptor()
1579
- class Thing(object, metaclass=meta):
1580
- pass
1581
- self.assertEqual(inspect.getattr_static(Thing, 'd'), meta.__dict__['d'])
1582
-
1583
-
1584
- def test_class_as_property(self):
1585
- class Base(object):
1586
- foo = 3
1587
-
1588
- class Something(Base):
1589
- executed = False
1590
- @property
1591
- def __class__(self):
1592
- self.executed = True
1593
- return object
1594
-
1595
- instance = Something()
1596
- self.assertEqual(inspect.getattr_static(instance, 'foo'), 3)
1597
- self.assertFalse(instance.executed)
1598
- self.assertEqual(inspect.getattr_static(Something, 'foo'), 3)
1599
-
1600
- def test_mro_as_property(self):
1601
- class Meta(type):
1602
- @property
1603
- def __mro__(self):
1604
- return (object,)
1605
-
1606
- class Base(object):
1607
- foo = 3
1608
-
1609
- class Something(Base, metaclass=Meta):
1610
- pass
1611
-
1612
- self.assertEqual(inspect.getattr_static(Something(), 'foo'), 3)
1613
- self.assertEqual(inspect.getattr_static(Something, 'foo'), 3)
1614
-
1615
- def test_dict_as_property(self):
1616
- test = self
1617
- test.called = False
1618
-
1619
- class Foo(dict):
1620
- a = 3
1621
- @property
1622
- def __dict__(self):
1623
- test.called = True
1624
- return {}
1625
-
1626
- foo = Foo()
1627
- foo.a = 4
1628
- self.assertEqual(inspect.getattr_static(foo, 'a'), 3)
1629
- self.assertFalse(test.called)
1630
-
1631
- def test_custom_object_dict(self):
1632
- test = self
1633
- test.called = False
1634
-
1635
- class Custom(dict):
1636
- def get(self, key, default=None):
1637
- test.called = True
1638
- super().get(key, default)
1639
-
1640
- class Foo(object):
1641
- a = 3
1642
- foo = Foo()
1643
- foo.__dict__ = Custom()
1644
- self.assertEqual(inspect.getattr_static(foo, 'a'), 3)
1645
- self.assertFalse(test.called)
1646
-
1647
- def test_metaclass_dict_as_property(self):
1648
- class Meta(type):
1649
- @property
1650
- def __dict__(self):
1651
- self.executed = True
1652
-
1653
- class Thing(metaclass=Meta):
1654
- executed = False
1655
-
1656
- def __init__(self):
1657
- self.spam = 42
1658
-
1659
- instance = Thing()
1660
- self.assertEqual(inspect.getattr_static(instance, "spam"), 42)
1661
- self.assertFalse(Thing.executed)
1662
-
1663
- def test_module(self):
1664
- sentinel = object()
1665
- self.assertIsNot(inspect.getattr_static(sys, "version", sentinel),
1666
- sentinel)
1667
-
1668
- def test_metaclass_with_metaclass_with_dict_as_property(self):
1669
- class MetaMeta(type):
1670
- @property
1671
- def __dict__(self):
1672
- self.executed = True
1673
- return dict(spam=42)
1674
-
1675
- class Meta(type, metaclass=MetaMeta):
1676
- executed = False
1677
-
1678
- class Thing(metaclass=Meta):
1679
- pass
1680
-
1681
- with self.assertRaises(AttributeError):
1682
- inspect.getattr_static(Thing, "spam")
1683
- self.assertFalse(Thing.executed)
1684
-
1685
- class TestGetGeneratorState(unittest.TestCase):
1686
-
1687
- def setUp(self):
1688
- def number_generator():
1689
- for number in range(5):
1690
- yield number
1691
- self.generator = number_generator()
1692
-
1693
- def _generatorstate(self):
1694
- return inspect.getgeneratorstate(self.generator)
1695
-
1696
- def test_created(self):
1697
- self.assertEqual(self._generatorstate(), inspect.GEN_CREATED)
1698
-
1699
- def test_suspended(self):
1700
- next(self.generator)
1701
- self.assertEqual(self._generatorstate(), inspect.GEN_SUSPENDED)
1702
-
1703
- def test_closed_after_exhaustion(self):
1704
- for i in self.generator:
1705
- pass
1706
- self.assertEqual(self._generatorstate(), inspect.GEN_CLOSED)
1707
-
1708
- def test_closed_after_immediate_exception(self):
1709
- with self.assertRaises(RuntimeError):
1710
- self.generator.throw(RuntimeError)
1711
- self.assertEqual(self._generatorstate(), inspect.GEN_CLOSED)
1712
-
1713
- def test_running(self):
1714
- # As mentioned on issue #10220, checking for the RUNNING state only
1715
- # makes sense inside the generator itself.
1716
- # The following generator checks for this by using the closure's
1717
- # reference to self and the generator state checking helper method
1718
- def running_check_generator():
1719
- for number in range(5):
1720
- self.assertEqual(self._generatorstate(), inspect.GEN_RUNNING)
1721
- yield number
1722
- self.assertEqual(self._generatorstate(), inspect.GEN_RUNNING)
1723
- self.generator = running_check_generator()
1724
- # Running up to the first yield
1725
- next(self.generator)
1726
- # Running after the first yield
1727
- next(self.generator)
1728
-
1729
- def test_easy_debugging(self):
1730
- # repr() and str() of a generator state should contain the state name
1731
- names = 'GEN_CREATED GEN_RUNNING GEN_SUSPENDED GEN_CLOSED'.split()
1732
- for name in names:
1733
- state = getattr(inspect, name)
1734
- self.assertIn(name, repr(state))
1735
- self.assertIn(name, str(state))
1736
-
1737
- def test_getgeneratorlocals(self):
1738
- def each(lst, a=None):
1739
- b=(1, 2, 3)
1740
- for v in lst:
1741
- if v == 3:
1742
- c = 12
1743
- yield v
1744
-
1745
- numbers = each([1, 2, 3])
1746
- self.assertEqual(inspect.getgeneratorlocals(numbers),
1747
- {'a': None, 'lst': [1, 2, 3]})
1748
- next(numbers)
1749
- self.assertEqual(inspect.getgeneratorlocals(numbers),
1750
- {'a': None, 'lst': [1, 2, 3], 'v': 1,
1751
- 'b': (1, 2, 3)})
1752
- next(numbers)
1753
- self.assertEqual(inspect.getgeneratorlocals(numbers),
1754
- {'a': None, 'lst': [1, 2, 3], 'v': 2,
1755
- 'b': (1, 2, 3)})
1756
- next(numbers)
1757
- self.assertEqual(inspect.getgeneratorlocals(numbers),
1758
- {'a': None, 'lst': [1, 2, 3], 'v': 3,
1759
- 'b': (1, 2, 3), 'c': 12})
1760
- try:
1761
- next(numbers)
1762
- except StopIteration:
1763
- pass
1764
- self.assertEqual(inspect.getgeneratorlocals(numbers), {})
1765
-
1766
- def test_getgeneratorlocals_empty(self):
1767
- def yield_one():
1768
- yield 1
1769
- one = yield_one()
1770
- self.assertEqual(inspect.getgeneratorlocals(one), {})
1771
- try:
1772
- next(one)
1773
- except StopIteration:
1774
- pass
1775
- self.assertEqual(inspect.getgeneratorlocals(one), {})
1776
-
1777
- def test_getgeneratorlocals_error(self):
1778
- self.assertRaises(TypeError, inspect.getgeneratorlocals, 1)
1779
- self.assertRaises(TypeError, inspect.getgeneratorlocals, lambda x: True)
1780
- self.assertRaises(TypeError, inspect.getgeneratorlocals, set)
1781
- self.assertRaises(TypeError, inspect.getgeneratorlocals, (2,3))
1782
-
1783
-
1784
- class TestGetCoroutineState(unittest.TestCase):
1785
-
1786
- def setUp(self):
1787
- @types.coroutine
1788
- def number_coroutine():
1789
- for number in range(5):
1790
- yield number
1791
- async def coroutine():
1792
- await number_coroutine()
1793
- self.coroutine = coroutine()
1794
-
1795
- def tearDown(self):
1796
- self.coroutine.close()
1797
-
1798
- def _coroutinestate(self):
1799
- return inspect.getcoroutinestate(self.coroutine)
1800
-
1801
- def test_created(self):
1802
- self.assertEqual(self._coroutinestate(), inspect.CORO_CREATED)
1803
-
1804
- def test_suspended(self):
1805
- self.coroutine.send(None)
1806
- self.assertEqual(self._coroutinestate(), inspect.CORO_SUSPENDED)
1807
-
1808
- def test_closed_after_exhaustion(self):
1809
- while True:
1810
- try:
1811
- self.coroutine.send(None)
1812
- except StopIteration:
1813
- break
1814
-
1815
- self.assertEqual(self._coroutinestate(), inspect.CORO_CLOSED)
1816
-
1817
- def test_closed_after_immediate_exception(self):
1818
- with self.assertRaises(RuntimeError):
1819
- self.coroutine.throw(RuntimeError)
1820
- self.assertEqual(self._coroutinestate(), inspect.CORO_CLOSED)
1821
-
1822
- def test_easy_debugging(self):
1823
- # repr() and str() of a coroutine state should contain the state name
1824
- names = 'CORO_CREATED CORO_RUNNING CORO_SUSPENDED CORO_CLOSED'.split()
1825
- for name in names:
1826
- state = getattr(inspect, name)
1827
- self.assertIn(name, repr(state))
1828
- self.assertIn(name, str(state))
1829
-
1830
- def test_getcoroutinelocals(self):
1831
- @types.coroutine
1832
- def gencoro():
1833
- yield
1834
-
1835
- gencoro = gencoro()
1836
- async def func(a=None):
1837
- b = 'spam'
1838
- await gencoro
1839
-
1840
- coro = func()
1841
- self.assertEqual(inspect.getcoroutinelocals(coro),
1842
- {'a': None, 'gencoro': gencoro})
1843
- coro.send(None)
1844
- self.assertEqual(inspect.getcoroutinelocals(coro),
1845
- {'a': None, 'gencoro': gencoro, 'b': 'spam'})
1846
-
1847
-
1848
- class MySignature(inspect.Signature):
1849
- # Top-level to make it picklable;
1850
- # used in test_signature_object_pickle
1851
- pass
1852
-
1853
- class MyParameter(inspect.Parameter):
1854
- # Top-level to make it picklable;
1855
- # used in test_signature_object_pickle
1856
- pass
1857
-
1858
-
1859
-
1860
- class TestSignatureObject(unittest.TestCase):
1861
- @staticmethod
1862
- def signature(func, **kw):
1863
- sig = inspect.signature(func, **kw)
1864
- return (tuple((param.name,
1865
- (... if param.default is param.empty else param.default),
1866
- (... if param.annotation is param.empty
1867
- else param.annotation),
1868
- str(param.kind).lower())
1869
- for param in sig.parameters.values()),
1870
- (... if sig.return_annotation is sig.empty
1871
- else sig.return_annotation))
1872
-
1873
- def test_signature_object(self):
1874
- S = inspect.Signature
1875
- P = inspect.Parameter
1876
-
1877
- self.assertEqual(str(S()), '()')
1878
-
1879
- def test(po, pk, pod=42, pkd=100, *args, ko, **kwargs):
1880
- pass
1881
- sig = inspect.signature(test)
1882
- po = sig.parameters['po'].replace(kind=P.POSITIONAL_ONLY)
1883
- pod = sig.parameters['pod'].replace(kind=P.POSITIONAL_ONLY)
1884
- pk = sig.parameters['pk']
1885
- pkd = sig.parameters['pkd']
1886
- args = sig.parameters['args']
1887
- ko = sig.parameters['ko']
1888
- kwargs = sig.parameters['kwargs']
1889
-
1890
- S((po, pk, args, ko, kwargs))
1891
-
1892
- with self.assertRaisesRegex(ValueError, 'wrong parameter order'):
1893
- S((pk, po, args, ko, kwargs))
1894
-
1895
- with self.assertRaisesRegex(ValueError, 'wrong parameter order'):
1896
- S((po, args, pk, ko, kwargs))
1897
-
1898
- with self.assertRaisesRegex(ValueError, 'wrong parameter order'):
1899
- S((args, po, pk, ko, kwargs))
1900
-
1901
- with self.assertRaisesRegex(ValueError, 'wrong parameter order'):
1902
- S((po, pk, args, kwargs, ko))
1903
-
1904
- kwargs2 = kwargs.replace(name='args')
1905
- with self.assertRaisesRegex(ValueError, 'duplicate parameter name'):
1906
- S((po, pk, args, kwargs2, ko))
1907
-
1908
- with self.assertRaisesRegex(ValueError, 'follows default argument'):
1909
- S((pod, po))
1910
-
1911
- with self.assertRaisesRegex(ValueError, 'follows default argument'):
1912
- S((po, pkd, pk))
1913
-
1914
- with self.assertRaisesRegex(ValueError, 'follows default argument'):
1915
- S((pkd, pk))
1916
-
1917
- self.assertTrue(repr(sig).startswith('<Signature'))
1918
- self.assertTrue('(po, pk' in repr(sig))
1919
-
1920
- def test_signature_object_pickle(self):
1921
- def foo(a, b, *, c:1={}, **kw) -> {42:'ham'}: pass
1922
- foo_partial = functools.partial(foo, a=1)
1923
-
1924
- sig = inspect.signature(foo_partial)
1925
-
1926
- for ver in range(pickle.HIGHEST_PROTOCOL + 1):
1927
- with self.subTest(pickle_ver=ver, subclass=False):
1928
- sig_pickled = pickle.loads(pickle.dumps(sig, ver))
1929
- self.assertEqual(sig, sig_pickled)
1930
-
1931
- # Test that basic sub-classing works
1932
- sig = inspect.signature(foo)
1933
- myparam = MyParameter(name='z', kind=inspect.Parameter.POSITIONAL_ONLY)
1934
- myparams = collections.OrderedDict(sig.parameters, a=myparam)
1935
- mysig = MySignature().replace(parameters=myparams.values(),
1936
- return_annotation=sig.return_annotation)
1937
- self.assertTrue(isinstance(mysig, MySignature))
1938
- self.assertTrue(isinstance(mysig.parameters['z'], MyParameter))
1939
-
1940
- for ver in range(pickle.HIGHEST_PROTOCOL + 1):
1941
- with self.subTest(pickle_ver=ver, subclass=True):
1942
- sig_pickled = pickle.loads(pickle.dumps(mysig, ver))
1943
- self.assertEqual(mysig, sig_pickled)
1944
- self.assertTrue(isinstance(sig_pickled, MySignature))
1945
- self.assertTrue(isinstance(sig_pickled.parameters['z'],
1946
- MyParameter))
1947
-
1948
- def test_signature_immutability(self):
1949
- def test(a):
1950
- pass
1951
- sig = inspect.signature(test)
1952
-
1953
- with self.assertRaises(AttributeError):
1954
- sig.foo = 'bar'
1955
-
1956
- with self.assertRaises(TypeError):
1957
- sig.parameters['a'] = None
1958
-
1959
- def test_signature_on_noarg(self):
1960
- def test():
1961
- pass
1962
- self.assertEqual(self.signature(test), ((), ...))
1963
-
1964
- def test_signature_on_wargs(self):
1965
- def test(a, b:'foo') -> 123:
1966
- pass
1967
- self.assertEqual(self.signature(test),
1968
- ((('a', ..., ..., "positional_or_keyword"),
1969
- ('b', ..., 'foo', "positional_or_keyword")),
1970
- 123))
1971
-
1972
- def test_signature_on_wkwonly(self):
1973
- def test(*, a:float, b:str) -> int:
1974
- pass
1975
- self.assertEqual(self.signature(test),
1976
- ((('a', ..., float, "keyword_only"),
1977
- ('b', ..., str, "keyword_only")),
1978
- int))
1979
-
1980
- def test_signature_on_complex_args(self):
1981
- def test(a, b:'foo'=10, *args:'bar', spam:'baz', ham=123, **kwargs:int):
1982
- pass
1983
- self.assertEqual(self.signature(test),
1984
- ((('a', ..., ..., "positional_or_keyword"),
1985
- ('b', 10, 'foo', "positional_or_keyword"),
1986
- ('args', ..., 'bar', "var_positional"),
1987
- ('spam', ..., 'baz', "keyword_only"),
1988
- ('ham', 123, ..., "keyword_only"),
1989
- ('kwargs', ..., int, "var_keyword")),
1990
- ...))
1991
-
1992
- def test_signature_without_self(self):
1993
- def test_args_only(*args): # NOQA
1994
- pass
1995
-
1996
- def test_args_kwargs_only(*args, **kwargs): # NOQA
1997
- pass
1998
-
1999
- class A:
2000
- @classmethod
2001
- def test_classmethod(*args): # NOQA
2002
- pass
2003
-
2004
- @staticmethod
2005
- def test_staticmethod(*args): # NOQA
2006
- pass
2007
-
2008
- f1 = functools.partialmethod((test_classmethod), 1)
2009
- f2 = functools.partialmethod((test_args_only), 1)
2010
- f3 = functools.partialmethod((test_staticmethod), 1)
2011
- f4 = functools.partialmethod((test_args_kwargs_only),1)
2012
-
2013
- self.assertEqual(self.signature(test_args_only),
2014
- ((('args', ..., ..., 'var_positional'),), ...))
2015
- self.assertEqual(self.signature(test_args_kwargs_only),
2016
- ((('args', ..., ..., 'var_positional'),
2017
- ('kwargs', ..., ..., 'var_keyword')), ...))
2018
- self.assertEqual(self.signature(A.f1),
2019
- ((('args', ..., ..., 'var_positional'),), ...))
2020
- self.assertEqual(self.signature(A.f2),
2021
- ((('args', ..., ..., 'var_positional'),), ...))
2022
- self.assertEqual(self.signature(A.f3),
2023
- ((('args', ..., ..., 'var_positional'),), ...))
2024
- self.assertEqual(self.signature(A.f4),
2025
- ((('args', ..., ..., 'var_positional'),
2026
- ('kwargs', ..., ..., 'var_keyword')), ...))
2027
- @cpython_only
2028
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
2029
- "Signature information for builtins requires docstrings")
2030
- def test_signature_on_builtins(self):
2031
- import _testcapi
2032
-
2033
- def test_unbound_method(o):
2034
- """Use this to test unbound methods (things that should have a self)"""
2035
- signature = inspect.signature(o)
2036
- self.assertTrue(isinstance(signature, inspect.Signature))
2037
- self.assertEqual(list(signature.parameters.values())[0].name, 'self')
2038
- return signature
2039
-
2040
- def test_callable(o):
2041
- """Use this to test bound methods or normal callables (things that don't expect self)"""
2042
- signature = inspect.signature(o)
2043
- self.assertTrue(isinstance(signature, inspect.Signature))
2044
- if signature.parameters:
2045
- self.assertNotEqual(list(signature.parameters.values())[0].name, 'self')
2046
- return signature
2047
-
2048
- signature = test_callable(_testcapi.docstring_with_signature_with_defaults)
2049
- def p(name): return signature.parameters[name].default
2050
- self.assertEqual(p('s'), 'avocado')
2051
- self.assertEqual(p('b'), b'bytes')
2052
- self.assertEqual(p('d'), 3.14)
2053
- self.assertEqual(p('i'), 35)
2054
- self.assertEqual(p('n'), None)
2055
- self.assertEqual(p('t'), True)
2056
- self.assertEqual(p('f'), False)
2057
- self.assertEqual(p('local'), 3)
2058
- self.assertEqual(p('sys'), sys.maxsize)
2059
- self.assertEqual(p('exp'), sys.maxsize - 1)
2060
-
2061
- test_callable(object)
2062
-
2063
- # normal method
2064
- # (PyMethodDescr_Type, "method_descriptor")
2065
- test_unbound_method(_pickle.Pickler.dump)
2066
- d = _pickle.Pickler(io.StringIO())
2067
- test_callable(d.dump)
2068
-
2069
- # static method
2070
- test_callable(str.maketrans)
2071
- test_callable('abc'.maketrans)
2072
-
2073
- # class method
2074
- test_callable(dict.fromkeys)
2075
- test_callable({}.fromkeys)
2076
-
2077
- # wrapper around slot (PyWrapperDescr_Type, "wrapper_descriptor")
2078
- test_unbound_method(type.__call__)
2079
- test_unbound_method(int.__add__)
2080
- test_callable((3).__add__)
2081
-
2082
- # _PyMethodWrapper_Type
2083
- # support for 'method-wrapper'
2084
- test_callable(min.__call__)
2085
-
2086
- # This doesn't work now.
2087
- # (We don't have a valid signature for "type" in 3.4)
2088
- with self.assertRaisesRegex(ValueError, "no signature found"):
2089
- class ThisWorksNow:
2090
- __call__ = type
2091
- test_callable(ThisWorksNow())
2092
-
2093
- # Regression test for issue #20786
2094
- test_unbound_method(dict.__delitem__)
2095
- test_unbound_method(property.__delete__)
2096
-
2097
- # Regression test for issue #20586
2098
- test_callable(_testcapi.docstring_with_signature_but_no_doc)
2099
-
2100
- @cpython_only
2101
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
2102
- "Signature information for builtins requires docstrings")
2103
- def test_signature_on_decorated_builtins(self):
2104
- import _testcapi
2105
- func = _testcapi.docstring_with_signature_with_defaults
2106
-
2107
- def decorator(func):
2108
- @functools.wraps(func)
2109
- def wrapper(*args, **kwargs) -> int:
2110
- return func(*args, **kwargs)
2111
- return wrapper
2112
-
2113
- decorated_func = decorator(func)
2114
-
2115
- self.assertEqual(inspect.signature(func),
2116
- inspect.signature(decorated_func))
2117
-
2118
- def wrapper_like(*args, **kwargs) -> int: pass
2119
- self.assertEqual(inspect.signature(decorated_func,
2120
- follow_wrapped=False),
2121
- inspect.signature(wrapper_like))
2122
-
2123
- @cpython_only
2124
- def test_signature_on_builtins_no_signature(self):
2125
- import _testcapi
2126
- with self.assertRaisesRegex(ValueError,
2127
- 'no signature found for builtin'):
2128
- inspect.signature(_testcapi.docstring_no_signature)
2129
-
2130
- with self.assertRaisesRegex(ValueError,
2131
- 'no signature found for builtin'):
2132
- inspect.signature(str)
2133
-
2134
- def test_signature_on_non_function(self):
2135
- with self.assertRaisesRegex(TypeError, 'is not a callable object'):
2136
- inspect.signature(42)
2137
-
2138
- def test_signature_from_functionlike_object(self):
2139
- def func(a,b, *args, kwonly=True, kwonlyreq, **kwargs):
2140
- pass
2141
-
2142
- class funclike:
2143
- # Has to be callable, and have correct
2144
- # __code__, __annotations__, __defaults__, __name__,
2145
- # and __kwdefaults__ attributes
2146
-
2147
- def __init__(self, func):
2148
- self.__name__ = func.__name__
2149
- self.__code__ = func.__code__
2150
- self.__annotations__ = func.__annotations__
2151
- self.__defaults__ = func.__defaults__
2152
- self.__kwdefaults__ = func.__kwdefaults__
2153
- self.func = func
2154
-
2155
- def __call__(self, *args, **kwargs):
2156
- return self.func(*args, **kwargs)
2157
-
2158
- sig_func = inspect.Signature.from_callable(func)
2159
-
2160
- sig_funclike = inspect.Signature.from_callable(funclike(func))
2161
- self.assertEqual(sig_funclike, sig_func)
2162
-
2163
- sig_funclike = inspect.signature(funclike(func))
2164
- self.assertEqual(sig_funclike, sig_func)
2165
-
2166
- # If object is not a duck type of function, then
2167
- # signature will try to get a signature for its '__call__'
2168
- # method
2169
- fl = funclike(func)
2170
- del fl.__defaults__
2171
- self.assertEqual(self.signature(fl),
2172
- ((('args', ..., ..., "var_positional"),
2173
- ('kwargs', ..., ..., "var_keyword")),
2174
- ...))
2175
-
2176
- # Test with cython-like builtins:
2177
- _orig_isdesc = inspect.ismethoddescriptor
2178
- def _isdesc(obj):
2179
- if hasattr(obj, '_builtinmock'):
2180
- return True
2181
- return _orig_isdesc(obj)
2182
-
2183
- with unittest.mock.patch('inspect.ismethoddescriptor', _isdesc):
2184
- builtin_func = funclike(func)
2185
- # Make sure that our mock setup is working
2186
- self.assertFalse(inspect.ismethoddescriptor(builtin_func))
2187
- builtin_func._builtinmock = True
2188
- self.assertTrue(inspect.ismethoddescriptor(builtin_func))
2189
- self.assertEqual(inspect.signature(builtin_func), sig_func)
2190
-
2191
- def test_signature_functionlike_class(self):
2192
- # We only want to duck type function-like objects,
2193
- # not classes.
2194
-
2195
- def func(a,b, *args, kwonly=True, kwonlyreq, **kwargs):
2196
- pass
2197
-
2198
- class funclike:
2199
- def __init__(self, marker):
2200
- pass
2201
-
2202
- __name__ = func.__name__
2203
- __code__ = func.__code__
2204
- __annotations__ = func.__annotations__
2205
- __defaults__ = func.__defaults__
2206
- __kwdefaults__ = func.__kwdefaults__
2207
-
2208
- self.assertEqual(str(inspect.signature(funclike)), '(marker)')
2209
-
2210
- def test_signature_on_method(self):
2211
- class Test:
2212
- def __init__(*args):
2213
- pass
2214
- def m1(self, arg1, arg2=1) -> int:
2215
- pass
2216
- def m2(*args):
2217
- pass
2218
- def __call__(*, a):
2219
- pass
2220
-
2221
- self.assertEqual(self.signature(Test().m1),
2222
- ((('arg1', ..., ..., "positional_or_keyword"),
2223
- ('arg2', 1, ..., "positional_or_keyword")),
2224
- int))
2225
-
2226
- self.assertEqual(self.signature(Test().m2),
2227
- ((('args', ..., ..., "var_positional"),),
2228
- ...))
2229
-
2230
- self.assertEqual(self.signature(Test),
2231
- ((('args', ..., ..., "var_positional"),),
2232
- ...))
2233
-
2234
- with self.assertRaisesRegex(ValueError, 'invalid method signature'):
2235
- self.signature(Test())
2236
-
2237
- def test_signature_wrapped_bound_method(self):
2238
- # Issue 24298
2239
- class Test:
2240
- def m1(self, arg1, arg2=1) -> int:
2241
- pass
2242
- @functools.wraps(Test().m1)
2243
- def m1d(*args, **kwargs):
2244
- pass
2245
- self.assertEqual(self.signature(m1d),
2246
- ((('arg1', ..., ..., "positional_or_keyword"),
2247
- ('arg2', 1, ..., "positional_or_keyword")),
2248
- int))
2249
-
2250
- def test_signature_on_classmethod(self):
2251
- class Test:
2252
- @classmethod
2253
- def foo(cls, arg1, *, arg2=1):
2254
- pass
2255
-
2256
- meth = Test().foo
2257
- self.assertEqual(self.signature(meth),
2258
- ((('arg1', ..., ..., "positional_or_keyword"),
2259
- ('arg2', 1, ..., "keyword_only")),
2260
- ...))
2261
-
2262
- meth = Test.foo
2263
- self.assertEqual(self.signature(meth),
2264
- ((('arg1', ..., ..., "positional_or_keyword"),
2265
- ('arg2', 1, ..., "keyword_only")),
2266
- ...))
2267
-
2268
- def test_signature_on_staticmethod(self):
2269
- class Test:
2270
- @staticmethod
2271
- def foo(cls, *, arg):
2272
- pass
2273
-
2274
- meth = Test().foo
2275
- self.assertEqual(self.signature(meth),
2276
- ((('cls', ..., ..., "positional_or_keyword"),
2277
- ('arg', ..., ..., "keyword_only")),
2278
- ...))
2279
-
2280
- meth = Test.foo
2281
- self.assertEqual(self.signature(meth),
2282
- ((('cls', ..., ..., "positional_or_keyword"),
2283
- ('arg', ..., ..., "keyword_only")),
2284
- ...))
2285
-
2286
- def test_signature_on_partial(self):
2287
- from functools import partial
2288
-
2289
- Parameter = inspect.Parameter
2290
-
2291
- def test():
2292
- pass
2293
-
2294
- self.assertEqual(self.signature(partial(test)), ((), ...))
2295
-
2296
- with self.assertRaisesRegex(ValueError, "has incorrect arguments"):
2297
- inspect.signature(partial(test, 1))
2298
-
2299
- with self.assertRaisesRegex(ValueError, "has incorrect arguments"):
2300
- inspect.signature(partial(test, a=1))
2301
-
2302
- def test(a, b, *, c, d):
2303
- pass
2304
-
2305
- self.assertEqual(self.signature(partial(test)),
2306
- ((('a', ..., ..., "positional_or_keyword"),
2307
- ('b', ..., ..., "positional_or_keyword"),
2308
- ('c', ..., ..., "keyword_only"),
2309
- ('d', ..., ..., "keyword_only")),
2310
- ...))
2311
-
2312
- self.assertEqual(self.signature(partial(test, 1)),
2313
- ((('b', ..., ..., "positional_or_keyword"),
2314
- ('c', ..., ..., "keyword_only"),
2315
- ('d', ..., ..., "keyword_only")),
2316
- ...))
2317
-
2318
- self.assertEqual(self.signature(partial(test, 1, c=2)),
2319
- ((('b', ..., ..., "positional_or_keyword"),
2320
- ('c', 2, ..., "keyword_only"),
2321
- ('d', ..., ..., "keyword_only")),
2322
- ...))
2323
-
2324
- self.assertEqual(self.signature(partial(test, b=1, c=2)),
2325
- ((('a', ..., ..., "positional_or_keyword"),
2326
- ('b', 1, ..., "keyword_only"),
2327
- ('c', 2, ..., "keyword_only"),
2328
- ('d', ..., ..., "keyword_only")),
2329
- ...))
2330
-
2331
- self.assertEqual(self.signature(partial(test, 0, b=1, c=2)),
2332
- ((('b', 1, ..., "keyword_only"),
2333
- ('c', 2, ..., "keyword_only"),
2334
- ('d', ..., ..., "keyword_only")),
2335
- ...))
2336
-
2337
- self.assertEqual(self.signature(partial(test, a=1)),
2338
- ((('a', 1, ..., "keyword_only"),
2339
- ('b', ..., ..., "keyword_only"),
2340
- ('c', ..., ..., "keyword_only"),
2341
- ('d', ..., ..., "keyword_only")),
2342
- ...))
2343
-
2344
- def test(a, *args, b, **kwargs):
2345
- pass
2346
-
2347
- self.assertEqual(self.signature(partial(test, 1)),
2348
- ((('args', ..., ..., "var_positional"),
2349
- ('b', ..., ..., "keyword_only"),
2350
- ('kwargs', ..., ..., "var_keyword")),
2351
- ...))
2352
-
2353
- self.assertEqual(self.signature(partial(test, a=1)),
2354
- ((('a', 1, ..., "keyword_only"),
2355
- ('b', ..., ..., "keyword_only"),
2356
- ('kwargs', ..., ..., "var_keyword")),
2357
- ...))
2358
-
2359
- self.assertEqual(self.signature(partial(test, 1, 2, 3)),
2360
- ((('args', ..., ..., "var_positional"),
2361
- ('b', ..., ..., "keyword_only"),
2362
- ('kwargs', ..., ..., "var_keyword")),
2363
- ...))
2364
-
2365
- self.assertEqual(self.signature(partial(test, 1, 2, 3, test=True)),
2366
- ((('args', ..., ..., "var_positional"),
2367
- ('b', ..., ..., "keyword_only"),
2368
- ('kwargs', ..., ..., "var_keyword")),
2369
- ...))
2370
-
2371
- self.assertEqual(self.signature(partial(test, 1, 2, 3, test=1, b=0)),
2372
- ((('args', ..., ..., "var_positional"),
2373
- ('b', 0, ..., "keyword_only"),
2374
- ('kwargs', ..., ..., "var_keyword")),
2375
- ...))
2376
-
2377
- self.assertEqual(self.signature(partial(test, b=0)),
2378
- ((('a', ..., ..., "positional_or_keyword"),
2379
- ('args', ..., ..., "var_positional"),
2380
- ('b', 0, ..., "keyword_only"),
2381
- ('kwargs', ..., ..., "var_keyword")),
2382
- ...))
2383
-
2384
- self.assertEqual(self.signature(partial(test, b=0, test=1)),
2385
- ((('a', ..., ..., "positional_or_keyword"),
2386
- ('args', ..., ..., "var_positional"),
2387
- ('b', 0, ..., "keyword_only"),
2388
- ('kwargs', ..., ..., "var_keyword")),
2389
- ...))
2390
-
2391
- def test(a, b, c:int) -> 42:
2392
- pass
2393
-
2394
- sig = test.__signature__ = inspect.signature(test)
2395
-
2396
- self.assertEqual(self.signature(partial(partial(test, 1))),
2397
- ((('b', ..., ..., "positional_or_keyword"),
2398
- ('c', ..., int, "positional_or_keyword")),
2399
- 42))
2400
-
2401
- self.assertEqual(self.signature(partial(partial(test, 1), 2)),
2402
- ((('c', ..., int, "positional_or_keyword"),),
2403
- 42))
2404
-
2405
- psig = inspect.signature(partial(partial(test, 1), 2))
2406
-
2407
- def foo(a):
2408
- return a
2409
- _foo = partial(partial(foo, a=10), a=20)
2410
- self.assertEqual(self.signature(_foo),
2411
- ((('a', 20, ..., "keyword_only"),),
2412
- ...))
2413
- # check that we don't have any side-effects in signature(),
2414
- # and the partial object is still functioning
2415
- self.assertEqual(_foo(), 20)
2416
-
2417
- def foo(a, b, c):
2418
- return a, b, c
2419
- _foo = partial(partial(foo, 1, b=20), b=30)
2420
-
2421
- self.assertEqual(self.signature(_foo),
2422
- ((('b', 30, ..., "keyword_only"),
2423
- ('c', ..., ..., "keyword_only")),
2424
- ...))
2425
- self.assertEqual(_foo(c=10), (1, 30, 10))
2426
-
2427
- def foo(a, b, c, *, d):
2428
- return a, b, c, d
2429
- _foo = partial(partial(foo, d=20, c=20), b=10, d=30)
2430
- self.assertEqual(self.signature(_foo),
2431
- ((('a', ..., ..., "positional_or_keyword"),
2432
- ('b', 10, ..., "keyword_only"),
2433
- ('c', 20, ..., "keyword_only"),
2434
- ('d', 30, ..., "keyword_only"),
2435
- ),
2436
- ...))
2437
- ba = inspect.signature(_foo).bind(a=200, b=11)
2438
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (200, 11, 20, 30))
2439
-
2440
- def foo(a=1, b=2, c=3):
2441
- return a, b, c
2442
- _foo = partial(foo, c=13) # (a=1, b=2, *, c=13)
2443
-
2444
- ba = inspect.signature(_foo).bind(a=11)
2445
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (11, 2, 13))
2446
-
2447
- ba = inspect.signature(_foo).bind(11, 12)
2448
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (11, 12, 13))
2449
-
2450
- ba = inspect.signature(_foo).bind(11, b=12)
2451
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (11, 12, 13))
2452
-
2453
- ba = inspect.signature(_foo).bind(b=12)
2454
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (1, 12, 13))
2455
-
2456
- _foo = partial(_foo, b=10, c=20)
2457
- ba = inspect.signature(_foo).bind(12)
2458
- self.assertEqual(_foo(*ba.args, **ba.kwargs), (12, 10, 20))
2459
-
2460
-
2461
- def foo(a, b, c, d, **kwargs):
2462
- pass
2463
- sig = inspect.signature(foo)
2464
- params = sig.parameters.copy()
2465
- params['a'] = params['a'].replace(kind=Parameter.POSITIONAL_ONLY)
2466
- params['b'] = params['b'].replace(kind=Parameter.POSITIONAL_ONLY)
2467
- foo.__signature__ = inspect.Signature(params.values())
2468
- sig = inspect.signature(foo)
2469
- self.assertEqual(str(sig), '(a, b, /, c, d, **kwargs)')
2470
-
2471
- self.assertEqual(self.signature(partial(foo, 1)),
2472
- ((('b', ..., ..., 'positional_only'),
2473
- ('c', ..., ..., 'positional_or_keyword'),
2474
- ('d', ..., ..., 'positional_or_keyword'),
2475
- ('kwargs', ..., ..., 'var_keyword')),
2476
- ...))
2477
-
2478
- self.assertEqual(self.signature(partial(foo, 1, 2)),
2479
- ((('c', ..., ..., 'positional_or_keyword'),
2480
- ('d', ..., ..., 'positional_or_keyword'),
2481
- ('kwargs', ..., ..., 'var_keyword')),
2482
- ...))
2483
-
2484
- self.assertEqual(self.signature(partial(foo, 1, 2, 3)),
2485
- ((('d', ..., ..., 'positional_or_keyword'),
2486
- ('kwargs', ..., ..., 'var_keyword')),
2487
- ...))
2488
-
2489
- self.assertEqual(self.signature(partial(foo, 1, 2, c=3)),
2490
- ((('c', 3, ..., 'keyword_only'),
2491
- ('d', ..., ..., 'keyword_only'),
2492
- ('kwargs', ..., ..., 'var_keyword')),
2493
- ...))
2494
-
2495
- self.assertEqual(self.signature(partial(foo, 1, c=3)),
2496
- ((('b', ..., ..., 'positional_only'),
2497
- ('c', 3, ..., 'keyword_only'),
2498
- ('d', ..., ..., 'keyword_only'),
2499
- ('kwargs', ..., ..., 'var_keyword')),
2500
- ...))
2501
-
2502
- def test_signature_on_partialmethod(self):
2503
- from functools import partialmethod
2504
-
2505
- class Spam:
2506
- def test():
2507
- pass
2508
- ham = partialmethod(test)
2509
-
2510
- with self.assertRaisesRegex(ValueError, "has incorrect arguments"):
2511
- inspect.signature(Spam.ham)
2512
-
2513
- class Spam:
2514
- def test(it, a, *, c) -> 'spam':
2515
- pass
2516
- ham = partialmethod(test, c=1)
2517
-
2518
- self.assertEqual(self.signature(Spam.ham),
2519
- ((('it', ..., ..., 'positional_or_keyword'),
2520
- ('a', ..., ..., 'positional_or_keyword'),
2521
- ('c', 1, ..., 'keyword_only')),
2522
- 'spam'))
2523
-
2524
- self.assertEqual(self.signature(Spam().ham),
2525
- ((('a', ..., ..., 'positional_or_keyword'),
2526
- ('c', 1, ..., 'keyword_only')),
2527
- 'spam'))
2528
-
2529
- def test_signature_on_fake_partialmethod(self):
2530
- def foo(a): pass
2531
- foo._partialmethod = 'spam'
2532
- self.assertEqual(str(inspect.signature(foo)), '(a)')
2533
-
2534
- def test_signature_on_decorated(self):
2535
- import functools
2536
-
2537
- def decorator(func):
2538
- @functools.wraps(func)
2539
- def wrapper(*args, **kwargs) -> int:
2540
- return func(*args, **kwargs)
2541
- return wrapper
2542
-
2543
- class Foo:
2544
- @decorator
2545
- def bar(self, a, b):
2546
- pass
2547
-
2548
- self.assertEqual(self.signature(Foo.bar),
2549
- ((('self', ..., ..., "positional_or_keyword"),
2550
- ('a', ..., ..., "positional_or_keyword"),
2551
- ('b', ..., ..., "positional_or_keyword")),
2552
- ...))
2553
-
2554
- self.assertEqual(self.signature(Foo().bar),
2555
- ((('a', ..., ..., "positional_or_keyword"),
2556
- ('b', ..., ..., "positional_or_keyword")),
2557
- ...))
2558
-
2559
- self.assertEqual(self.signature(Foo.bar, follow_wrapped=False),
2560
- ((('args', ..., ..., "var_positional"),
2561
- ('kwargs', ..., ..., "var_keyword")),
2562
- ...)) # functools.wraps will copy __annotations__
2563
- # from "func" to "wrapper", hence no
2564
- # return_annotation
2565
-
2566
- # Test that we handle method wrappers correctly
2567
- def decorator(func):
2568
- @functools.wraps(func)
2569
- def wrapper(*args, **kwargs) -> int:
2570
- return func(42, *args, **kwargs)
2571
- sig = inspect.signature(func)
2572
- new_params = tuple(sig.parameters.values())[1:]
2573
- wrapper.__signature__ = sig.replace(parameters=new_params)
2574
- return wrapper
2575
-
2576
- class Foo:
2577
- @decorator
2578
- def __call__(self, a, b):
2579
- pass
2580
-
2581
- self.assertEqual(self.signature(Foo.__call__),
2582
- ((('a', ..., ..., "positional_or_keyword"),
2583
- ('b', ..., ..., "positional_or_keyword")),
2584
- ...))
2585
-
2586
- self.assertEqual(self.signature(Foo().__call__),
2587
- ((('b', ..., ..., "positional_or_keyword"),),
2588
- ...))
2589
-
2590
- # Test we handle __signature__ partway down the wrapper stack
2591
- def wrapped_foo_call():
2592
- pass
2593
- wrapped_foo_call.__wrapped__ = Foo.__call__
2594
-
2595
- self.assertEqual(self.signature(wrapped_foo_call),
2596
- ((('a', ..., ..., "positional_or_keyword"),
2597
- ('b', ..., ..., "positional_or_keyword")),
2598
- ...))
2599
-
2600
-
2601
- def test_signature_on_class(self):
2602
- class C:
2603
- def __init__(self, a):
2604
- pass
2605
-
2606
- self.assertEqual(self.signature(C),
2607
- ((('a', ..., ..., "positional_or_keyword"),),
2608
- ...))
2609
-
2610
- class CM(type):
2611
- def __call__(cls, a):
2612
- pass
2613
- class C(metaclass=CM):
2614
- def __init__(self, b):
2615
- pass
2616
-
2617
- self.assertEqual(self.signature(C),
2618
- ((('a', ..., ..., "positional_or_keyword"),),
2619
- ...))
2620
-
2621
- class CM(type):
2622
- def __new__(mcls, name, bases, dct, *, foo=1):
2623
- return super().__new__(mcls, name, bases, dct)
2624
- class C(metaclass=CM):
2625
- def __init__(self, b):
2626
- pass
2627
-
2628
- self.assertEqual(self.signature(C),
2629
- ((('b', ..., ..., "positional_or_keyword"),),
2630
- ...))
2631
-
2632
- self.assertEqual(self.signature(CM),
2633
- ((('name', ..., ..., "positional_or_keyword"),
2634
- ('bases', ..., ..., "positional_or_keyword"),
2635
- ('dct', ..., ..., "positional_or_keyword"),
2636
- ('foo', 1, ..., "keyword_only")),
2637
- ...))
2638
-
2639
- class CMM(type):
2640
- def __new__(mcls, name, bases, dct, *, foo=1):
2641
- return super().__new__(mcls, name, bases, dct)
2642
- def __call__(cls, nm, bs, dt):
2643
- return type(nm, bs, dt)
2644
- class CM(type, metaclass=CMM):
2645
- def __new__(mcls, name, bases, dct, *, bar=2):
2646
- return super().__new__(mcls, name, bases, dct)
2647
- class C(metaclass=CM):
2648
- def __init__(self, b):
2649
- pass
2650
-
2651
- self.assertEqual(self.signature(CMM),
2652
- ((('name', ..., ..., "positional_or_keyword"),
2653
- ('bases', ..., ..., "positional_or_keyword"),
2654
- ('dct', ..., ..., "positional_or_keyword"),
2655
- ('foo', 1, ..., "keyword_only")),
2656
- ...))
2657
-
2658
- self.assertEqual(self.signature(CM),
2659
- ((('nm', ..., ..., "positional_or_keyword"),
2660
- ('bs', ..., ..., "positional_or_keyword"),
2661
- ('dt', ..., ..., "positional_or_keyword")),
2662
- ...))
2663
-
2664
- self.assertEqual(self.signature(C),
2665
- ((('b', ..., ..., "positional_or_keyword"),),
2666
- ...))
2667
-
2668
- class CM(type):
2669
- def __init__(cls, name, bases, dct, *, bar=2):
2670
- return super().__init__(name, bases, dct)
2671
- class C(metaclass=CM):
2672
- def __init__(self, b):
2673
- pass
2674
-
2675
- self.assertEqual(self.signature(CM),
2676
- ((('name', ..., ..., "positional_or_keyword"),
2677
- ('bases', ..., ..., "positional_or_keyword"),
2678
- ('dct', ..., ..., "positional_or_keyword"),
2679
- ('bar', 2, ..., "keyword_only")),
2680
- ...))
2681
-
2682
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
2683
- "Signature information for builtins requires docstrings")
2684
- def test_signature_on_class_without_init(self):
2685
- # Test classes without user-defined __init__ or __new__
2686
- class C: pass
2687
- self.assertEqual(str(inspect.signature(C)), '()')
2688
- class D(C): pass
2689
- self.assertEqual(str(inspect.signature(D)), '()')
2690
-
2691
- # Test meta-classes without user-defined __init__ or __new__
2692
- class C(type): pass
2693
- class D(C): pass
2694
- with self.assertRaisesRegex(ValueError, "callable.*is not supported"):
2695
- self.assertEqual(inspect.signature(C), None)
2696
- with self.assertRaisesRegex(ValueError, "callable.*is not supported"):
2697
- self.assertEqual(inspect.signature(D), None)
2698
-
2699
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
2700
- "Signature information for builtins requires docstrings")
2701
- def test_signature_on_builtin_class(self):
2702
- self.assertEqual(str(inspect.signature(_pickle.Pickler)),
2703
- '(file, protocol=None, fix_imports=True)')
2704
-
2705
- class P(_pickle.Pickler): pass
2706
- class EmptyTrait: pass
2707
- class P2(EmptyTrait, P): pass
2708
- self.assertEqual(str(inspect.signature(P)),
2709
- '(file, protocol=None, fix_imports=True)')
2710
- self.assertEqual(str(inspect.signature(P2)),
2711
- '(file, protocol=None, fix_imports=True)')
2712
-
2713
- class P3(P2):
2714
- def __init__(self, spam):
2715
- pass
2716
- self.assertEqual(str(inspect.signature(P3)), '(spam)')
2717
-
2718
- class MetaP(type):
2719
- def __call__(cls, foo, bar):
2720
- pass
2721
- class P4(P2, metaclass=MetaP):
2722
- pass
2723
- self.assertEqual(str(inspect.signature(P4)), '(foo, bar)')
2724
-
2725
- def test_signature_on_callable_objects(self):
2726
- class Foo:
2727
- def __call__(self, a):
2728
- pass
2729
-
2730
- self.assertEqual(self.signature(Foo()),
2731
- ((('a', ..., ..., "positional_or_keyword"),),
2732
- ...))
2733
-
2734
- class Spam:
2735
- pass
2736
- with self.assertRaisesRegex(TypeError, "is not a callable object"):
2737
- inspect.signature(Spam())
2738
-
2739
- class Bar(Spam, Foo):
2740
- pass
2741
-
2742
- self.assertEqual(self.signature(Bar()),
2743
- ((('a', ..., ..., "positional_or_keyword"),),
2744
- ...))
2745
-
2746
- class Wrapped:
2747
- pass
2748
- Wrapped.__wrapped__ = lambda a: None
2749
- self.assertEqual(self.signature(Wrapped),
2750
- ((('a', ..., ..., "positional_or_keyword"),),
2751
- ...))
2752
- # wrapper loop:
2753
- Wrapped.__wrapped__ = Wrapped
2754
- with self.assertRaisesRegex(ValueError, 'wrapper loop'):
2755
- self.signature(Wrapped)
2756
-
2757
- def test_signature_on_lambdas(self):
2758
- self.assertEqual(self.signature((lambda a=10: a)),
2759
- ((('a', 10, ..., "positional_or_keyword"),),
2760
- ...))
2761
-
2762
- def test_signature_equality(self):
2763
- def foo(a, *, b:int) -> float: pass
2764
- self.assertFalse(inspect.signature(foo) == 42)
2765
- self.assertTrue(inspect.signature(foo) != 42)
2766
- self.assertTrue(inspect.signature(foo) == EqualsToAll())
2767
- self.assertFalse(inspect.signature(foo) != EqualsToAll())
2768
-
2769
- def bar(a, *, b:int) -> float: pass
2770
- self.assertTrue(inspect.signature(foo) == inspect.signature(bar))
2771
- self.assertFalse(inspect.signature(foo) != inspect.signature(bar))
2772
- self.assertEqual(
2773
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2774
-
2775
- def bar(a, *, b:int) -> int: pass
2776
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2777
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2778
- self.assertNotEqual(
2779
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2780
-
2781
- def bar(a, *, b:int): pass
2782
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2783
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2784
- self.assertNotEqual(
2785
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2786
-
2787
- def bar(a, *, b:int=42) -> float: pass
2788
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2789
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2790
- self.assertNotEqual(
2791
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2792
-
2793
- def bar(a, *, c) -> float: pass
2794
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2795
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2796
- self.assertNotEqual(
2797
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2798
-
2799
- def bar(a, b:int) -> float: pass
2800
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2801
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2802
- self.assertNotEqual(
2803
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2804
- def spam(b:int, a) -> float: pass
2805
- self.assertFalse(inspect.signature(spam) == inspect.signature(bar))
2806
- self.assertTrue(inspect.signature(spam) != inspect.signature(bar))
2807
- self.assertNotEqual(
2808
- hash(inspect.signature(spam)), hash(inspect.signature(bar)))
2809
-
2810
- def foo(*, a, b, c): pass
2811
- def bar(*, c, b, a): pass
2812
- self.assertTrue(inspect.signature(foo) == inspect.signature(bar))
2813
- self.assertFalse(inspect.signature(foo) != inspect.signature(bar))
2814
- self.assertEqual(
2815
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2816
-
2817
- def foo(*, a=1, b, c): pass
2818
- def bar(*, c, b, a=1): pass
2819
- self.assertTrue(inspect.signature(foo) == inspect.signature(bar))
2820
- self.assertFalse(inspect.signature(foo) != inspect.signature(bar))
2821
- self.assertEqual(
2822
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2823
-
2824
- def foo(pos, *, a=1, b, c): pass
2825
- def bar(pos, *, c, b, a=1): pass
2826
- self.assertTrue(inspect.signature(foo) == inspect.signature(bar))
2827
- self.assertFalse(inspect.signature(foo) != inspect.signature(bar))
2828
- self.assertEqual(
2829
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2830
-
2831
- def foo(pos, *, a, b, c): pass
2832
- def bar(pos, *, c, b, a=1): pass
2833
- self.assertFalse(inspect.signature(foo) == inspect.signature(bar))
2834
- self.assertTrue(inspect.signature(foo) != inspect.signature(bar))
2835
- self.assertNotEqual(
2836
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2837
-
2838
- def foo(pos, *args, a=42, b, c, **kwargs:int): pass
2839
- def bar(pos, *args, c, b, a=42, **kwargs:int): pass
2840
- self.assertTrue(inspect.signature(foo) == inspect.signature(bar))
2841
- self.assertFalse(inspect.signature(foo) != inspect.signature(bar))
2842
- self.assertEqual(
2843
- hash(inspect.signature(foo)), hash(inspect.signature(bar)))
2844
-
2845
- def test_signature_hashable(self):
2846
- S = inspect.Signature
2847
- P = inspect.Parameter
2848
-
2849
- def foo(a): pass
2850
- foo_sig = inspect.signature(foo)
2851
-
2852
- manual_sig = S(parameters=[P('a', P.POSITIONAL_OR_KEYWORD)])
2853
-
2854
- self.assertEqual(hash(foo_sig), hash(manual_sig))
2855
- self.assertNotEqual(hash(foo_sig),
2856
- hash(manual_sig.replace(return_annotation='spam')))
2857
-
2858
- def bar(a) -> 1: pass
2859
- self.assertNotEqual(hash(foo_sig), hash(inspect.signature(bar)))
2860
-
2861
- def foo(a={}): pass
2862
- with self.assertRaisesRegex(TypeError, 'unhashable type'):
2863
- hash(inspect.signature(foo))
2864
-
2865
- def foo(a) -> {}: pass
2866
- with self.assertRaisesRegex(TypeError, 'unhashable type'):
2867
- hash(inspect.signature(foo))
2868
-
2869
- def test_signature_str(self):
2870
- def foo(a:int=1, *, b, c=None, **kwargs) -> 42:
2871
- pass
2872
- self.assertEqual(str(inspect.signature(foo)),
2873
- '(a:int=1, *, b, c=None, **kwargs) -> 42')
2874
-
2875
- def foo(a:int=1, *args, b, c=None, **kwargs) -> 42:
2876
- pass
2877
- self.assertEqual(str(inspect.signature(foo)),
2878
- '(a:int=1, *args, b, c=None, **kwargs) -> 42')
2879
-
2880
- def foo():
2881
- pass
2882
- self.assertEqual(str(inspect.signature(foo)), '()')
2883
-
2884
- def test_signature_str_positional_only(self):
2885
- P = inspect.Parameter
2886
- S = inspect.Signature
2887
-
2888
- def test(a_po, *, b, **kwargs):
2889
- return a_po, kwargs
2890
-
2891
- sig = inspect.signature(test)
2892
- new_params = list(sig.parameters.values())
2893
- new_params[0] = new_params[0].replace(kind=P.POSITIONAL_ONLY)
2894
- test.__signature__ = sig.replace(parameters=new_params)
2895
-
2896
- self.assertEqual(str(inspect.signature(test)),
2897
- '(a_po, /, *, b, **kwargs)')
2898
-
2899
- self.assertEqual(str(S(parameters=[P('foo', P.POSITIONAL_ONLY)])),
2900
- '(foo, /)')
2901
-
2902
- self.assertEqual(str(S(parameters=[
2903
- P('foo', P.POSITIONAL_ONLY),
2904
- P('bar', P.VAR_KEYWORD)])),
2905
- '(foo, /, **bar)')
2906
-
2907
- self.assertEqual(str(S(parameters=[
2908
- P('foo', P.POSITIONAL_ONLY),
2909
- P('bar', P.VAR_POSITIONAL)])),
2910
- '(foo, /, *bar)')
2911
-
2912
- def test_signature_replace_anno(self):
2913
- def test() -> 42:
2914
- pass
2915
-
2916
- sig = inspect.signature(test)
2917
- sig = sig.replace(return_annotation=None)
2918
- self.assertIs(sig.return_annotation, None)
2919
- sig = sig.replace(return_annotation=sig.empty)
2920
- self.assertIs(sig.return_annotation, sig.empty)
2921
- sig = sig.replace(return_annotation=42)
2922
- self.assertEqual(sig.return_annotation, 42)
2923
- self.assertEqual(sig, inspect.signature(test))
2924
-
2925
- def test_signature_on_mangled_parameters(self):
2926
- class Spam:
2927
- def foo(self, __p1:1=2, *, __p2:2=3):
2928
- pass
2929
- class Ham(Spam):
2930
- pass
2931
-
2932
- self.assertEqual(self.signature(Spam.foo),
2933
- ((('self', ..., ..., "positional_or_keyword"),
2934
- ('_Spam__p1', 2, 1, "positional_or_keyword"),
2935
- ('_Spam__p2', 3, 2, "keyword_only")),
2936
- ...))
2937
-
2938
- self.assertEqual(self.signature(Spam.foo),
2939
- self.signature(Ham.foo))
2940
-
2941
- def test_signature_from_callable_python_obj(self):
2942
- class MySignature(inspect.Signature): pass
2943
- def foo(a, *, b:1): pass
2944
- foo_sig = MySignature.from_callable(foo)
2945
- self.assertTrue(isinstance(foo_sig, MySignature))
2946
-
2947
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
2948
- "Signature information for builtins requires docstrings")
2949
- def test_signature_from_callable_builtin_obj(self):
2950
- class MySignature(inspect.Signature): pass
2951
- sig = MySignature.from_callable(_pickle.Pickler)
2952
- self.assertTrue(isinstance(sig, MySignature))
2953
-
2954
-
2955
- class TestParameterObject(unittest.TestCase):
2956
- def test_signature_parameter_kinds(self):
2957
- P = inspect.Parameter
2958
- self.assertTrue(P.POSITIONAL_ONLY < P.POSITIONAL_OR_KEYWORD < \
2959
- P.VAR_POSITIONAL < P.KEYWORD_ONLY < P.VAR_KEYWORD)
2960
-
2961
- self.assertEqual(str(P.POSITIONAL_ONLY), 'POSITIONAL_ONLY')
2962
- self.assertTrue('POSITIONAL_ONLY' in repr(P.POSITIONAL_ONLY))
2963
-
2964
- def test_signature_parameter_object(self):
2965
- p = inspect.Parameter('foo', default=10,
2966
- kind=inspect.Parameter.POSITIONAL_ONLY)
2967
- self.assertEqual(p.name, 'foo')
2968
- self.assertEqual(p.default, 10)
2969
- self.assertIs(p.annotation, p.empty)
2970
- self.assertEqual(p.kind, inspect.Parameter.POSITIONAL_ONLY)
2971
-
2972
- with self.assertRaisesRegex(ValueError, 'invalid value'):
2973
- inspect.Parameter('foo', default=10, kind='123')
2974
-
2975
- with self.assertRaisesRegex(ValueError, 'not a valid parameter name'):
2976
- inspect.Parameter('1', kind=inspect.Parameter.VAR_KEYWORD)
2977
-
2978
- with self.assertRaisesRegex(TypeError, 'name must be a str'):
2979
- inspect.Parameter(None, kind=inspect.Parameter.VAR_KEYWORD)
2980
-
2981
- with self.assertRaisesRegex(ValueError,
2982
- 'is not a valid parameter name'):
2983
- inspect.Parameter('$', kind=inspect.Parameter.VAR_KEYWORD)
2984
-
2985
- with self.assertRaisesRegex(ValueError,
2986
- 'is not a valid parameter name'):
2987
- inspect.Parameter('.a', kind=inspect.Parameter.VAR_KEYWORD)
2988
-
2989
- with self.assertRaisesRegex(ValueError, 'cannot have default values'):
2990
- inspect.Parameter('a', default=42,
2991
- kind=inspect.Parameter.VAR_KEYWORD)
2992
-
2993
- with self.assertRaisesRegex(ValueError, 'cannot have default values'):
2994
- inspect.Parameter('a', default=42,
2995
- kind=inspect.Parameter.VAR_POSITIONAL)
2996
-
2997
- p = inspect.Parameter('a', default=42,
2998
- kind=inspect.Parameter.POSITIONAL_OR_KEYWORD)
2999
- with self.assertRaisesRegex(ValueError, 'cannot have default values'):
3000
- p.replace(kind=inspect.Parameter.VAR_POSITIONAL)
3001
-
3002
- self.assertTrue(repr(p).startswith('<Parameter'))
3003
- self.assertTrue('"a=42"' in repr(p))
3004
-
3005
- def test_signature_parameter_hashable(self):
3006
- P = inspect.Parameter
3007
- foo = P('foo', kind=P.POSITIONAL_ONLY)
3008
- self.assertEqual(hash(foo), hash(P('foo', kind=P.POSITIONAL_ONLY)))
3009
- self.assertNotEqual(hash(foo), hash(P('foo', kind=P.POSITIONAL_ONLY,
3010
- default=42)))
3011
- self.assertNotEqual(hash(foo),
3012
- hash(foo.replace(kind=P.VAR_POSITIONAL)))
3013
-
3014
- def test_signature_parameter_equality(self):
3015
- P = inspect.Parameter
3016
- p = P('foo', default=42, kind=inspect.Parameter.KEYWORD_ONLY)
3017
-
3018
- self.assertTrue(p == p)
3019
- self.assertFalse(p != p)
3020
- self.assertFalse(p == 42)
3021
- self.assertTrue(p != 42)
3022
- self.assertTrue(p == EqualsToAll())
3023
- self.assertFalse(p != EqualsToAll())
3024
-
3025
- self.assertTrue(p == P('foo', default=42,
3026
- kind=inspect.Parameter.KEYWORD_ONLY))
3027
- self.assertFalse(p != P('foo', default=42,
3028
- kind=inspect.Parameter.KEYWORD_ONLY))
3029
-
3030
- def test_signature_parameter_replace(self):
3031
- p = inspect.Parameter('foo', default=42,
3032
- kind=inspect.Parameter.KEYWORD_ONLY)
3033
-
3034
- self.assertIsNot(p, p.replace())
3035
- self.assertEqual(p, p.replace())
3036
-
3037
- p2 = p.replace(annotation=1)
3038
- self.assertEqual(p2.annotation, 1)
3039
- p2 = p2.replace(annotation=p2.empty)
3040
- self.assertEqual(p, p2)
3041
-
3042
- p2 = p2.replace(name='bar')
3043
- self.assertEqual(p2.name, 'bar')
3044
- self.assertNotEqual(p2, p)
3045
-
3046
- with self.assertRaisesRegex(ValueError,
3047
- 'name is a required attribute'):
3048
- p2 = p2.replace(name=p2.empty)
3049
-
3050
- p2 = p2.replace(name='foo', default=None)
3051
- self.assertIs(p2.default, None)
3052
- self.assertNotEqual(p2, p)
3053
-
3054
- p2 = p2.replace(name='foo', default=p2.empty)
3055
- self.assertIs(p2.default, p2.empty)
3056
-
3057
-
3058
- p2 = p2.replace(default=42, kind=p2.POSITIONAL_OR_KEYWORD)
3059
- self.assertEqual(p2.kind, p2.POSITIONAL_OR_KEYWORD)
3060
- self.assertNotEqual(p2, p)
3061
-
3062
- with self.assertRaisesRegex(ValueError, 'invalid value for'):
3063
- p2 = p2.replace(kind=p2.empty)
3064
-
3065
- p2 = p2.replace(kind=p2.KEYWORD_ONLY)
3066
- self.assertEqual(p2, p)
3067
-
3068
- def test_signature_parameter_positional_only(self):
3069
- with self.assertRaisesRegex(TypeError, 'name must be a str'):
3070
- inspect.Parameter(None, kind=inspect.Parameter.POSITIONAL_ONLY)
3071
-
3072
- @cpython_only
3073
- def test_signature_parameter_implicit(self):
3074
- with self.assertRaisesRegex(ValueError,
3075
- 'implicit arguments must be passed in as'):
3076
- inspect.Parameter('.0', kind=inspect.Parameter.POSITIONAL_ONLY)
3077
-
3078
- param = inspect.Parameter(
3079
- '.0', kind=inspect.Parameter.POSITIONAL_OR_KEYWORD)
3080
- self.assertEqual(param.kind, inspect.Parameter.POSITIONAL_ONLY)
3081
- self.assertEqual(param.name, 'implicit0')
3082
-
3083
- def test_signature_parameter_immutability(self):
3084
- p = inspect.Parameter('spam', kind=inspect.Parameter.KEYWORD_ONLY)
3085
-
3086
- with self.assertRaises(AttributeError):
3087
- p.foo = 'bar'
3088
-
3089
- with self.assertRaises(AttributeError):
3090
- p.kind = 123
3091
-
3092
-
3093
- class TestSignatureBind(unittest.TestCase):
3094
- @staticmethod
3095
- def call(func, *args, **kwargs):
3096
- sig = inspect.signature(func)
3097
- ba = sig.bind(*args, **kwargs)
3098
- return func(*ba.args, **ba.kwargs)
3099
-
3100
- def test_signature_bind_empty(self):
3101
- def test():
3102
- return 42
3103
-
3104
- self.assertEqual(self.call(test), 42)
3105
- with self.assertRaisesRegex(TypeError, 'too many positional arguments'):
3106
- self.call(test, 1)
3107
- with self.assertRaisesRegex(TypeError, 'too many positional arguments'):
3108
- self.call(test, 1, spam=10)
3109
- with self.assertRaisesRegex(
3110
- TypeError, "got an unexpected keyword argument 'spam'"):
3111
-
3112
- self.call(test, spam=1)
3113
-
3114
- def test_signature_bind_var(self):
3115
- def test(*args, **kwargs):
3116
- return args, kwargs
3117
-
3118
- self.assertEqual(self.call(test), ((), {}))
3119
- self.assertEqual(self.call(test, 1), ((1,), {}))
3120
- self.assertEqual(self.call(test, 1, 2), ((1, 2), {}))
3121
- self.assertEqual(self.call(test, foo='bar'), ((), {'foo': 'bar'}))
3122
- self.assertEqual(self.call(test, 1, foo='bar'), ((1,), {'foo': 'bar'}))
3123
- self.assertEqual(self.call(test, args=10), ((), {'args': 10}))
3124
- self.assertEqual(self.call(test, 1, 2, foo='bar'),
3125
- ((1, 2), {'foo': 'bar'}))
3126
-
3127
- def test_signature_bind_just_args(self):
3128
- def test(a, b, c):
3129
- return a, b, c
3130
-
3131
- self.assertEqual(self.call(test, 1, 2, 3), (1, 2, 3))
3132
-
3133
- with self.assertRaisesRegex(TypeError, 'too many positional arguments'):
3134
- self.call(test, 1, 2, 3, 4)
3135
-
3136
- with self.assertRaisesRegex(TypeError,
3137
- "missing a required argument: 'b'"):
3138
- self.call(test, 1)
3139
-
3140
- with self.assertRaisesRegex(TypeError,
3141
- "missing a required argument: 'a'"):
3142
- self.call(test)
3143
-
3144
- def test(a, b, c=10):
3145
- return a, b, c
3146
- self.assertEqual(self.call(test, 1, 2, 3), (1, 2, 3))
3147
- self.assertEqual(self.call(test, 1, 2), (1, 2, 10))
3148
-
3149
- def test(a=1, b=2, c=3):
3150
- return a, b, c
3151
- self.assertEqual(self.call(test, a=10, c=13), (10, 2, 13))
3152
- self.assertEqual(self.call(test, a=10), (10, 2, 3))
3153
- self.assertEqual(self.call(test, b=10), (1, 10, 3))
3154
-
3155
- def test_signature_bind_varargs_order(self):
3156
- def test(*args):
3157
- return args
3158
-
3159
- self.assertEqual(self.call(test), ())
3160
- self.assertEqual(self.call(test, 1, 2, 3), (1, 2, 3))
3161
-
3162
- def test_signature_bind_args_and_varargs(self):
3163
- def test(a, b, c=3, *args):
3164
- return a, b, c, args
3165
-
3166
- self.assertEqual(self.call(test, 1, 2, 3, 4, 5), (1, 2, 3, (4, 5)))
3167
- self.assertEqual(self.call(test, 1, 2), (1, 2, 3, ()))
3168
- self.assertEqual(self.call(test, b=1, a=2), (2, 1, 3, ()))
3169
- self.assertEqual(self.call(test, 1, b=2), (1, 2, 3, ()))
3170
-
3171
- with self.assertRaisesRegex(TypeError,
3172
- "multiple values for argument 'c'"):
3173
- self.call(test, 1, 2, 3, c=4)
3174
-
3175
- def test_signature_bind_just_kwargs(self):
3176
- def test(**kwargs):
3177
- return kwargs
3178
-
3179
- self.assertEqual(self.call(test), {})
3180
- self.assertEqual(self.call(test, foo='bar', spam='ham'),
3181
- {'foo': 'bar', 'spam': 'ham'})
3182
-
3183
- def test_signature_bind_args_and_kwargs(self):
3184
- def test(a, b, c=3, **kwargs):
3185
- return a, b, c, kwargs
3186
-
3187
- self.assertEqual(self.call(test, 1, 2), (1, 2, 3, {}))
3188
- self.assertEqual(self.call(test, 1, 2, foo='bar', spam='ham'),
3189
- (1, 2, 3, {'foo': 'bar', 'spam': 'ham'}))
3190
- self.assertEqual(self.call(test, b=2, a=1, foo='bar', spam='ham'),
3191
- (1, 2, 3, {'foo': 'bar', 'spam': 'ham'}))
3192
- self.assertEqual(self.call(test, a=1, b=2, foo='bar', spam='ham'),
3193
- (1, 2, 3, {'foo': 'bar', 'spam': 'ham'}))
3194
- self.assertEqual(self.call(test, 1, b=2, foo='bar', spam='ham'),
3195
- (1, 2, 3, {'foo': 'bar', 'spam': 'ham'}))
3196
- self.assertEqual(self.call(test, 1, b=2, c=4, foo='bar', spam='ham'),
3197
- (1, 2, 4, {'foo': 'bar', 'spam': 'ham'}))
3198
- self.assertEqual(self.call(test, 1, 2, 4, foo='bar'),
3199
- (1, 2, 4, {'foo': 'bar'}))
3200
- self.assertEqual(self.call(test, c=5, a=4, b=3),
3201
- (4, 3, 5, {}))
3202
-
3203
- def test_signature_bind_kwonly(self):
3204
- def test(*, foo):
3205
- return foo
3206
- with self.assertRaisesRegex(TypeError,
3207
- 'too many positional arguments'):
3208
- self.call(test, 1)
3209
- self.assertEqual(self.call(test, foo=1), 1)
3210
-
3211
- def test(a, *, foo=1, bar):
3212
- return foo
3213
- with self.assertRaisesRegex(TypeError,
3214
- "missing a required argument: 'bar'"):
3215
- self.call(test, 1)
3216
-
3217
- def test(foo, *, bar):
3218
- return foo, bar
3219
- self.assertEqual(self.call(test, 1, bar=2), (1, 2))
3220
- self.assertEqual(self.call(test, bar=2, foo=1), (1, 2))
3221
-
3222
- with self.assertRaisesRegex(
3223
- TypeError, "got an unexpected keyword argument 'spam'"):
3224
-
3225
- self.call(test, bar=2, foo=1, spam=10)
3226
-
3227
- with self.assertRaisesRegex(TypeError,
3228
- 'too many positional arguments'):
3229
- self.call(test, 1, 2)
3230
-
3231
- with self.assertRaisesRegex(TypeError,
3232
- 'too many positional arguments'):
3233
- self.call(test, 1, 2, bar=2)
3234
-
3235
- with self.assertRaisesRegex(
3236
- TypeError, "got an unexpected keyword argument 'spam'"):
3237
-
3238
- self.call(test, 1, bar=2, spam='ham')
3239
-
3240
- with self.assertRaisesRegex(TypeError,
3241
- "missing a required argument: 'bar'"):
3242
- self.call(test, 1)
3243
-
3244
- def test(foo, *, bar, **bin):
3245
- return foo, bar, bin
3246
- self.assertEqual(self.call(test, 1, bar=2), (1, 2, {}))
3247
- self.assertEqual(self.call(test, foo=1, bar=2), (1, 2, {}))
3248
- self.assertEqual(self.call(test, 1, bar=2, spam='ham'),
3249
- (1, 2, {'spam': 'ham'}))
3250
- self.assertEqual(self.call(test, spam='ham', foo=1, bar=2),
3251
- (1, 2, {'spam': 'ham'}))
3252
- with self.assertRaisesRegex(TypeError,
3253
- "missing a required argument: 'foo'"):
3254
- self.call(test, spam='ham', bar=2)
3255
- self.assertEqual(self.call(test, 1, bar=2, bin=1, spam=10),
3256
- (1, 2, {'bin': 1, 'spam': 10}))
3257
-
3258
- def test_signature_bind_arguments(self):
3259
- def test(a, *args, b, z=100, **kwargs):
3260
- pass
3261
- sig = inspect.signature(test)
3262
- ba = sig.bind(10, 20, b=30, c=40, args=50, kwargs=60)
3263
- # we won't have 'z' argument in the bound arguments object, as we didn't
3264
- # pass it to the 'bind'
3265
- self.assertEqual(tuple(ba.arguments.items()),
3266
- (('a', 10), ('args', (20,)), ('b', 30),
3267
- ('kwargs', {'c': 40, 'args': 50, 'kwargs': 60})))
3268
- self.assertEqual(ba.kwargs,
3269
- {'b': 30, 'c': 40, 'args': 50, 'kwargs': 60})
3270
- self.assertEqual(ba.args, (10, 20))
3271
-
3272
- def test_signature_bind_positional_only(self):
3273
- P = inspect.Parameter
3274
-
3275
- def test(a_po, b_po, c_po=3, foo=42, *, bar=50, **kwargs):
3276
- return a_po, b_po, c_po, foo, bar, kwargs
3277
-
3278
- sig = inspect.signature(test)
3279
- new_params = collections.OrderedDict(tuple(sig.parameters.items()))
3280
- for name in ('a_po', 'b_po', 'c_po'):
3281
- new_params[name] = new_params[name].replace(kind=P.POSITIONAL_ONLY)
3282
- new_sig = sig.replace(parameters=new_params.values())
3283
- test.__signature__ = new_sig
3284
-
3285
- self.assertEqual(self.call(test, 1, 2, 4, 5, bar=6),
3286
- (1, 2, 4, 5, 6, {}))
3287
-
3288
- self.assertEqual(self.call(test, 1, 2),
3289
- (1, 2, 3, 42, 50, {}))
3290
-
3291
- self.assertEqual(self.call(test, 1, 2, foo=4, bar=5),
3292
- (1, 2, 3, 4, 5, {}))
3293
-
3294
- with self.assertRaisesRegex(TypeError, "but was passed as a keyword"):
3295
- self.call(test, 1, 2, foo=4, bar=5, c_po=10)
3296
-
3297
- with self.assertRaisesRegex(TypeError, "parameter is positional only"):
3298
- self.call(test, 1, 2, c_po=4)
3299
-
3300
- with self.assertRaisesRegex(TypeError, "parameter is positional only"):
3301
- self.call(test, a_po=1, b_po=2)
3302
-
3303
- def test_signature_bind_with_self_arg(self):
3304
- # Issue #17071: one of the parameters is named "self
3305
- def test(a, self, b):
3306
- pass
3307
- sig = inspect.signature(test)
3308
- ba = sig.bind(1, 2, 3)
3309
- self.assertEqual(ba.args, (1, 2, 3))
3310
- ba = sig.bind(1, self=2, b=3)
3311
- self.assertEqual(ba.args, (1, 2, 3))
3312
-
3313
- def test_signature_bind_vararg_name(self):
3314
- def test(a, *args):
3315
- return a, args
3316
- sig = inspect.signature(test)
3317
-
3318
- with self.assertRaisesRegex(
3319
- TypeError, "got an unexpected keyword argument 'args'"):
3320
-
3321
- sig.bind(a=0, args=1)
3322
-
3323
- def test(*args, **kwargs):
3324
- return args, kwargs
3325
- self.assertEqual(self.call(test, args=1), ((), {'args': 1}))
3326
-
3327
- sig = inspect.signature(test)
3328
- ba = sig.bind(args=1)
3329
- self.assertEqual(ba.arguments, {'kwargs': {'args': 1}})
3330
-
3331
- @cpython_only
3332
- def test_signature_bind_implicit_arg(self):
3333
- # Issue #19611: getcallargs should work with set comprehensions
3334
- def make_set():
3335
- return {z * z for z in range(5)}
3336
- setcomp_code = make_set.__code__.co_consts[1]
3337
- setcomp_func = types.FunctionType(setcomp_code, {})
3338
-
3339
- iterator = iter(range(5))
3340
- self.assertEqual(self.call(setcomp_func, iterator), {0, 1, 4, 9, 16})
3341
-
3342
-
3343
- class TestBoundArguments(unittest.TestCase):
3344
- def test_signature_bound_arguments_unhashable(self):
3345
- def foo(a): pass
3346
- ba = inspect.signature(foo).bind(1)
3347
-
3348
- with self.assertRaisesRegex(TypeError, 'unhashable type'):
3349
- hash(ba)
3350
-
3351
- def test_signature_bound_arguments_equality(self):
3352
- def foo(a): pass
3353
- ba = inspect.signature(foo).bind(1)
3354
- self.assertTrue(ba == ba)
3355
- self.assertFalse(ba != ba)
3356
- self.assertTrue(ba == EqualsToAll())
3357
- self.assertFalse(ba != EqualsToAll())
3358
-
3359
- ba2 = inspect.signature(foo).bind(1)
3360
- self.assertTrue(ba == ba2)
3361
- self.assertFalse(ba != ba2)
3362
-
3363
- ba3 = inspect.signature(foo).bind(2)
3364
- self.assertFalse(ba == ba3)
3365
- self.assertTrue(ba != ba3)
3366
- ba3.arguments['a'] = 1
3367
- self.assertTrue(ba == ba3)
3368
- self.assertFalse(ba != ba3)
3369
-
3370
- def bar(b): pass
3371
- ba4 = inspect.signature(bar).bind(1)
3372
- self.assertFalse(ba == ba4)
3373
- self.assertTrue(ba != ba4)
3374
-
3375
- def foo(*, a, b): pass
3376
- sig = inspect.signature(foo)
3377
- ba1 = sig.bind(a=1, b=2)
3378
- ba2 = sig.bind(b=2, a=1)
3379
- self.assertTrue(ba1 == ba2)
3380
- self.assertFalse(ba1 != ba2)
3381
-
3382
- def test_signature_bound_arguments_pickle(self):
3383
- def foo(a, b, *, c:1={}, **kw) -> {42:'ham'}: pass
3384
- sig = inspect.signature(foo)
3385
- ba = sig.bind(20, 30, z={})
3386
-
3387
- for ver in range(pickle.HIGHEST_PROTOCOL + 1):
3388
- with self.subTest(pickle_ver=ver):
3389
- ba_pickled = pickle.loads(pickle.dumps(ba, ver))
3390
- self.assertEqual(ba, ba_pickled)
3391
-
3392
- def test_signature_bound_arguments_repr(self):
3393
- def foo(a, b, *, c:1={}, **kw) -> {42:'ham'}: pass
3394
- sig = inspect.signature(foo)
3395
- ba = sig.bind(20, 30, z={})
3396
- self.assertRegex(repr(ba), r'<BoundArguments \(a=20,.*\}\}\)>')
3397
-
3398
- def test_signature_bound_arguments_apply_defaults(self):
3399
- def foo(a, b=1, *args, c:1={}, **kw): pass
3400
- sig = inspect.signature(foo)
3401
-
3402
- ba = sig.bind(20)
3403
- ba.apply_defaults()
3404
- self.assertEqual(
3405
- list(ba.arguments.items()),
3406
- [('a', 20), ('b', 1), ('args', ()), ('c', {}), ('kw', {})])
3407
-
3408
- # Make sure that we preserve the order:
3409
- # i.e. 'c' should be *before* 'kw'.
3410
- ba = sig.bind(10, 20, 30, d=1)
3411
- ba.apply_defaults()
3412
- self.assertEqual(
3413
- list(ba.arguments.items()),
3414
- [('a', 10), ('b', 20), ('args', (30,)), ('c', {}), ('kw', {'d':1})])
3415
-
3416
- # Make sure that BoundArguments produced by bind_partial()
3417
- # are supported.
3418
- def foo(a, b): pass
3419
- sig = inspect.signature(foo)
3420
- ba = sig.bind_partial(20)
3421
- ba.apply_defaults()
3422
- self.assertEqual(
3423
- list(ba.arguments.items()),
3424
- [('a', 20)])
3425
-
3426
- # Test no args
3427
- def foo(): pass
3428
- sig = inspect.signature(foo)
3429
- ba = sig.bind()
3430
- ba.apply_defaults()
3431
- self.assertEqual(list(ba.arguments.items()), [])
3432
-
3433
- # Make sure a no-args binding still acquires proper defaults.
3434
- def foo(a='spam'): pass
3435
- sig = inspect.signature(foo)
3436
- ba = sig.bind()
3437
- ba.apply_defaults()
3438
- self.assertEqual(list(ba.arguments.items()), [('a', 'spam')])
3439
-
3440
-
3441
- class TestSignaturePrivateHelpers(unittest.TestCase):
3442
- def test_signature_get_bound_param(self):
3443
- getter = inspect._signature_get_bound_param
3444
-
3445
- self.assertEqual(getter('($self)'), 'self')
3446
- self.assertEqual(getter('($self, obj)'), 'self')
3447
- self.assertEqual(getter('($cls, /, obj)'), 'cls')
3448
-
3449
- def _strip_non_python_syntax(self, input,
3450
- clean_signature, self_parameter, last_positional_only):
3451
- computed_clean_signature, \
3452
- computed_self_parameter, \
3453
- computed_last_positional_only = \
3454
- inspect._signature_strip_non_python_syntax(input)
3455
- self.assertEqual(computed_clean_signature, clean_signature)
3456
- self.assertEqual(computed_self_parameter, self_parameter)
3457
- self.assertEqual(computed_last_positional_only, last_positional_only)
3458
-
3459
- def test_signature_strip_non_python_syntax(self):
3460
- self._strip_non_python_syntax(
3461
- "($module, /, path, mode, *, dir_fd=None, " +
3462
- "effective_ids=False,\n follow_symlinks=True)",
3463
- "(module, path, mode, *, dir_fd=None, " +
3464
- "effective_ids=False, follow_symlinks=True)",
3465
- 0,
3466
- 0)
3467
-
3468
- self._strip_non_python_syntax(
3469
- "($module, word, salt, /)",
3470
- "(module, word, salt)",
3471
- 0,
3472
- 2)
3473
-
3474
- self._strip_non_python_syntax(
3475
- "(x, y=None, z=None, /)",
3476
- "(x, y=None, z=None)",
3477
- None,
3478
- 2)
3479
-
3480
- self._strip_non_python_syntax(
3481
- "(x, y=None, z=None)",
3482
- "(x, y=None, z=None)",
3483
- None,
3484
- None)
3485
-
3486
- self._strip_non_python_syntax(
3487
- "(x,\n y=None,\n z = None )",
3488
- "(x, y=None, z=None)",
3489
- None,
3490
- None)
3491
-
3492
- self._strip_non_python_syntax(
3493
- "",
3494
- "",
3495
- None,
3496
- None)
3497
-
3498
- self._strip_non_python_syntax(
3499
- None,
3500
- None,
3501
- None,
3502
- None)
3503
-
3504
- class TestSignatureDefinitions(unittest.TestCase):
3505
- # This test case provides a home for checking that particular APIs
3506
- # have signatures available for introspection
3507
-
3508
- @cpython_only
3509
- @unittest.skipIf(MISSING_C_DOCSTRINGS,
3510
- "Signature information for builtins requires docstrings")
3511
- def test_builtins_have_signatures(self):
3512
- # This checks all builtin callables in CPython have signatures
3513
- # A few have signatures Signature can't yet handle, so we skip those
3514
- # since they will have to wait until PEP 457 adds the required
3515
- # introspection support to the inspect module
3516
- # Some others also haven't been converted yet for various other
3517
- # reasons, so we also skip those for the time being, but design
3518
- # the test to fail in order to indicate when it needs to be
3519
- # updated.
3520
- no_signature = set()
3521
- # These need PEP 457 groups
3522
- needs_groups = {"range", "slice", "dir", "getattr",
3523
- "next", "iter", "vars"}
3524
- no_signature |= needs_groups
3525
- # These need PEP 457 groups or a signature change to accept None
3526
- needs_semantic_update = {"round"}
3527
- no_signature |= needs_semantic_update
3528
- # These need *args support in Argument Clinic
3529
- needs_varargs = {"min", "max", "print", "__build_class__"}
3530
- no_signature |= needs_varargs
3531
- # These simply weren't covered in the initial AC conversion
3532
- # for builtin callables
3533
- not_converted_yet = {"open", "__import__"}
3534
- no_signature |= not_converted_yet
3535
- # These builtin types are expected to provide introspection info
3536
- types_with_signatures = set()
3537
- # Check the signatures we expect to be there
3538
- ns = vars(builtins)
3539
- for name, obj in sorted(ns.items()):
3540
- if not callable(obj):
3541
- continue
3542
- # The builtin types haven't been converted to AC yet
3543
- if isinstance(obj, type) and (name not in types_with_signatures):
3544
- # Note that this also skips all the exception types
3545
- no_signature.add(name)
3546
- if (name in no_signature):
3547
- # Not yet converted
3548
- continue
3549
- with self.subTest(builtin=name):
3550
- self.assertIsNotNone(inspect.signature(obj))
3551
- # Check callables that haven't been converted don't claim a signature
3552
- # This ensures this test will start failing as more signatures are
3553
- # added, so the affected items can be moved into the scope of the
3554
- # regression test above
3555
- for name in no_signature:
3556
- with self.subTest(builtin=name):
3557
- self.assertIsNone(obj.__text_signature__)
3558
-
3559
-
3560
- class NTimesUnwrappable:
3561
- def __init__(self, n):
3562
- self.n = n
3563
- self._next = None
3564
-
3565
- @property
3566
- def __wrapped__(self):
3567
- if self.n <= 0:
3568
- raise Exception("Unwrapped too many times")
3569
- if self._next is None:
3570
- self._next = NTimesUnwrappable(self.n - 1)
3571
- return self._next
3572
-
3573
- class TestUnwrap(unittest.TestCase):
3574
-
3575
- def test_unwrap_one(self):
3576
- def func(a, b):
3577
- return a + b
3578
- wrapper = functools.lru_cache(maxsize=20)(func)
3579
- self.assertIs(inspect.unwrap(wrapper), func)
3580
-
3581
- def test_unwrap_several(self):
3582
- def func(a, b):
3583
- return a + b
3584
- wrapper = func
3585
- for __ in range(10):
3586
- @functools.wraps(wrapper)
3587
- def wrapper():
3588
- pass
3589
- self.assertIsNot(wrapper.__wrapped__, func)
3590
- self.assertIs(inspect.unwrap(wrapper), func)
3591
-
3592
- def test_stop(self):
3593
- def func1(a, b):
3594
- return a + b
3595
- @functools.wraps(func1)
3596
- def func2():
3597
- pass
3598
- @functools.wraps(func2)
3599
- def wrapper():
3600
- pass
3601
- func2.stop_here = 1
3602
- unwrapped = inspect.unwrap(wrapper,
3603
- stop=(lambda f: hasattr(f, "stop_here")))
3604
- self.assertIs(unwrapped, func2)
3605
-
3606
- def test_cycle(self):
3607
- def func1(): pass
3608
- func1.__wrapped__ = func1
3609
- with self.assertRaisesRegex(ValueError, 'wrapper loop'):
3610
- inspect.unwrap(func1)
3611
-
3612
- def func2(): pass
3613
- func2.__wrapped__ = func1
3614
- func1.__wrapped__ = func2
3615
- with self.assertRaisesRegex(ValueError, 'wrapper loop'):
3616
- inspect.unwrap(func1)
3617
- with self.assertRaisesRegex(ValueError, 'wrapper loop'):
3618
- inspect.unwrap(func2)
3619
-
3620
- def test_unhashable(self):
3621
- def func(): pass
3622
- func.__wrapped__ = None
3623
- class C:
3624
- __hash__ = None
3625
- __wrapped__ = func
3626
- self.assertIsNone(inspect.unwrap(C()))
3627
-
3628
- def test_recursion_limit(self):
3629
- obj = NTimesUnwrappable(sys.getrecursionlimit() + 1)
3630
- with self.assertRaisesRegex(ValueError, 'wrapper loop'):
3631
- inspect.unwrap(obj)
3632
-
3633
- class TestMain(unittest.TestCase):
3634
- def test_only_source(self):
3635
- module = importlib.import_module('unittest')
3636
- rc, out, err = assert_python_ok('-m', 'inspect',
3637
- 'unittest')
3638
- lines = out.decode().splitlines()
3639
- # ignore the final newline
3640
- self.assertEqual(lines[:-1], inspect.getsource(module).splitlines())
3641
- self.assertEqual(err, b'')
3642
-
3643
- def test_custom_getattr(self):
3644
- def foo():
3645
- pass
3646
- foo.__signature__ = 42
3647
- with self.assertRaises(TypeError):
3648
- inspect.signature(foo)
3649
-
3650
- @unittest.skipIf(ThreadPoolExecutor is None,
3651
- 'threads required to test __qualname__ for source files')
3652
- def test_qualname_source(self):
3653
- rc, out, err = assert_python_ok('-m', 'inspect',
3654
- 'concurrent.futures:ThreadPoolExecutor')
3655
- lines = out.decode().splitlines()
3656
- # ignore the final newline
3657
- self.assertEqual(lines[:-1],
3658
- inspect.getsource(ThreadPoolExecutor).splitlines())
3659
- self.assertEqual(err, b'')
3660
-
3661
- def test_builtins(self):
3662
- module = importlib.import_module('unittest')
3663
- _, out, err = assert_python_failure('-m', 'inspect',
3664
- 'sys')
3665
- lines = err.decode().splitlines()
3666
- self.assertEqual(lines, ["Can't get info for builtin modules."])
3667
-
3668
- def test_details(self):
3669
- module = importlib.import_module('unittest')
3670
- args = support.optim_args_from_interpreter_flags()
3671
- rc, out, err = assert_python_ok(*args, '-m', 'inspect',
3672
- 'unittest', '--details')
3673
- output = out.decode()
3674
- # Just a quick sanity check on the output
3675
- self.assertIn(module.__name__, output)
3676
- self.assertIn(module.__file__, output)
3677
- self.assertIn(module.__cached__, output)
3678
- self.assertEqual(err, b'')
3679
-
3680
-
3681
- class TestReload(unittest.TestCase):
3682
-
3683
- src_before = textwrap.dedent("""\
3684
- def foo():
3685
- print("Bla")
3686
- """)
3687
-
3688
- src_after = textwrap.dedent("""\
3689
- def foo():
3690
- print("Oh no!")
3691
- """)
3692
-
3693
- def assertInspectEqual(self, path, source):
3694
- inspected_src = inspect.getsource(source)
3695
- with open(path) as src:
3696
- self.assertEqual(
3697
- src.read().splitlines(True),
3698
- inspected_src.splitlines(True)
3699
- )
3700
-
3701
- def test_getsource_reload(self):
3702
- # see issue 1218234
3703
- with _ready_to_import('reload_bug', self.src_before) as (name, path):
3704
- module = importlib.import_module(name)
3705
- self.assertInspectEqual(path, module)
3706
- with open(path, 'w') as src:
3707
- src.write(self.src_after)
3708
- self.assertInspectEqual(path, module)
3709
-
3710
-
3711
- def test_main():
3712
- run_unittest(
3713
- TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBuggyCases,
3714
- TestInterpreterStack, TestClassesAndFunctions, TestPredicates,
3715
- TestGetcallargsFunctions, TestGetcallargsMethods,
3716
- TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState,
3717
- TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject,
3718
- TestBoundArguments, TestSignaturePrivateHelpers,
3719
- TestSignatureDefinitions,
3720
- TestGetClosureVars, TestUnwrap, TestMain, TestReload,
3721
- TestGetCoroutineState
3722
- )
3723
-
3724
- if __name__ == "__main__":
3725
- test_main()