@rowstile/cli-linux-x64 0.1.0-alpha.2

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 (565) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +5 -0
  3. package/package.json +26 -0
  4. package/python/bin/python3.13 +0 -0
  5. package/python/bin/python3.13-config +122 -0
  6. package/python/lib/libpython3.13.so.1.0 +0 -0
  7. package/python/lib/libpython3.so +0 -0
  8. package/python/lib/python3.13/LICENSE.txt +277 -0
  9. package/python/lib/python3.13/__future__.py +147 -0
  10. package/python/lib/python3.13/__hello__.py +16 -0
  11. package/python/lib/python3.13/_aix_support.py +108 -0
  12. package/python/lib/python3.13/_android_support.py +192 -0
  13. package/python/lib/python3.13/_apple_support.py +66 -0
  14. package/python/lib/python3.13/_collections_abc.py +1187 -0
  15. package/python/lib/python3.13/_colorize.py +119 -0
  16. package/python/lib/python3.13/_compat_pickle.py +251 -0
  17. package/python/lib/python3.13/_compression.py +162 -0
  18. package/python/lib/python3.13/_ios_support.py +71 -0
  19. package/python/lib/python3.13/_markupbase.py +396 -0
  20. package/python/lib/python3.13/_opcode_metadata.py +343 -0
  21. package/python/lib/python3.13/_osx_support.py +579 -0
  22. package/python/lib/python3.13/_py_abc.py +147 -0
  23. package/python/lib/python3.13/_pydatetime.py +2640 -0
  24. package/python/lib/python3.13/_pydecimal.py +6356 -0
  25. package/python/lib/python3.13/_pyio.py +2714 -0
  26. package/python/lib/python3.13/_pylong.py +363 -0
  27. package/python/lib/python3.13/_pyrepl/__init__.py +19 -0
  28. package/python/lib/python3.13/_pyrepl/__main__.py +10 -0
  29. package/python/lib/python3.13/_pyrepl/_minimal_curses.py +68 -0
  30. package/python/lib/python3.13/_pyrepl/_threading_handler.py +74 -0
  31. package/python/lib/python3.13/_pyrepl/base_eventqueue.py +110 -0
  32. package/python/lib/python3.13/_pyrepl/commands.py +492 -0
  33. package/python/lib/python3.13/_pyrepl/completing_reader.py +295 -0
  34. package/python/lib/python3.13/_pyrepl/console.py +229 -0
  35. package/python/lib/python3.13/_pyrepl/curses.py +33 -0
  36. package/python/lib/python3.13/_pyrepl/fancy_termios.py +82 -0
  37. package/python/lib/python3.13/_pyrepl/historical_reader.py +419 -0
  38. package/python/lib/python3.13/_pyrepl/input.py +114 -0
  39. package/python/lib/python3.13/_pyrepl/keymap.py +213 -0
  40. package/python/lib/python3.13/_pyrepl/main.py +59 -0
  41. package/python/lib/python3.13/_pyrepl/mypy.ini +29 -0
  42. package/python/lib/python3.13/_pyrepl/pager.py +175 -0
  43. package/python/lib/python3.13/_pyrepl/reader.py +764 -0
  44. package/python/lib/python3.13/_pyrepl/readline.py +599 -0
  45. package/python/lib/python3.13/_pyrepl/simple_interact.py +180 -0
  46. package/python/lib/python3.13/_pyrepl/trace.py +21 -0
  47. package/python/lib/python3.13/_pyrepl/types.py +10 -0
  48. package/python/lib/python3.13/_pyrepl/unix_console.py +852 -0
  49. package/python/lib/python3.13/_pyrepl/unix_eventqueue.py +76 -0
  50. package/python/lib/python3.13/_pyrepl/utils.py +83 -0
  51. package/python/lib/python3.13/_pyrepl/windows_console.py +687 -0
  52. package/python/lib/python3.13/_pyrepl/windows_eventqueue.py +42 -0
  53. package/python/lib/python3.13/_sitebuiltins.py +91 -0
  54. package/python/lib/python3.13/_strptime.py +800 -0
  55. package/python/lib/python3.13/_sysconfigdata__linux_x86_64-linux-gnu.py +1079 -0
  56. package/python/lib/python3.13/_threading_local.py +120 -0
  57. package/python/lib/python3.13/_weakrefset.py +205 -0
  58. package/python/lib/python3.13/abc.py +188 -0
  59. package/python/lib/python3.13/antigravity.py +17 -0
  60. package/python/lib/python3.13/argparse.py +2690 -0
  61. package/python/lib/python3.13/ast.py +1865 -0
  62. package/python/lib/python3.13/asyncio/__init__.py +47 -0
  63. package/python/lib/python3.13/asyncio/__main__.py +211 -0
  64. package/python/lib/python3.13/asyncio/base_events.py +2086 -0
  65. package/python/lib/python3.13/asyncio/base_futures.py +67 -0
  66. package/python/lib/python3.13/asyncio/base_subprocess.py +312 -0
  67. package/python/lib/python3.13/asyncio/base_tasks.py +94 -0
  68. package/python/lib/python3.13/asyncio/constants.py +41 -0
  69. package/python/lib/python3.13/asyncio/coroutines.py +109 -0
  70. package/python/lib/python3.13/asyncio/events.py +885 -0
  71. package/python/lib/python3.13/asyncio/exceptions.py +62 -0
  72. package/python/lib/python3.13/asyncio/format_helpers.py +84 -0
  73. package/python/lib/python3.13/asyncio/futures.py +425 -0
  74. package/python/lib/python3.13/asyncio/locks.py +617 -0
  75. package/python/lib/python3.13/asyncio/log.py +7 -0
  76. package/python/lib/python3.13/asyncio/mixins.py +21 -0
  77. package/python/lib/python3.13/asyncio/proactor_events.py +891 -0
  78. package/python/lib/python3.13/asyncio/protocols.py +216 -0
  79. package/python/lib/python3.13/asyncio/queues.py +309 -0
  80. package/python/lib/python3.13/asyncio/runners.py +217 -0
  81. package/python/lib/python3.13/asyncio/selector_events.py +1328 -0
  82. package/python/lib/python3.13/asyncio/sslproto.py +929 -0
  83. package/python/lib/python3.13/asyncio/staggered.py +174 -0
  84. package/python/lib/python3.13/asyncio/streams.py +787 -0
  85. package/python/lib/python3.13/asyncio/subprocess.py +229 -0
  86. package/python/lib/python3.13/asyncio/taskgroups.py +278 -0
  87. package/python/lib/python3.13/asyncio/tasks.py +1121 -0
  88. package/python/lib/python3.13/asyncio/threads.py +26 -0
  89. package/python/lib/python3.13/asyncio/timeouts.py +185 -0
  90. package/python/lib/python3.13/asyncio/transports.py +337 -0
  91. package/python/lib/python3.13/asyncio/trsock.py +98 -0
  92. package/python/lib/python3.13/asyncio/unix_events.py +1550 -0
  93. package/python/lib/python3.13/asyncio/windows_events.py +906 -0
  94. package/python/lib/python3.13/asyncio/windows_utils.py +181 -0
  95. package/python/lib/python3.13/base64.py +628 -0
  96. package/python/lib/python3.13/bdb.py +973 -0
  97. package/python/lib/python3.13/bisect.py +118 -0
  98. package/python/lib/python3.13/bz2.py +352 -0
  99. package/python/lib/python3.13/cProfile.py +197 -0
  100. package/python/lib/python3.13/calendar.py +813 -0
  101. package/python/lib/python3.13/cmd.py +409 -0
  102. package/python/lib/python3.13/code.py +386 -0
  103. package/python/lib/python3.13/codecs.py +1132 -0
  104. package/python/lib/python3.13/codeop.py +155 -0
  105. package/python/lib/python3.13/collections/__init__.py +1603 -0
  106. package/python/lib/python3.13/colorsys.py +166 -0
  107. package/python/lib/python3.13/compileall.py +470 -0
  108. package/python/lib/python3.13/concurrent/__init__.py +1 -0
  109. package/python/lib/python3.13/concurrent/futures/__init__.py +54 -0
  110. package/python/lib/python3.13/concurrent/futures/_base.py +660 -0
  111. package/python/lib/python3.13/concurrent/futures/process.py +892 -0
  112. package/python/lib/python3.13/concurrent/futures/thread.py +240 -0
  113. package/python/lib/python3.13/configparser.py +1396 -0
  114. package/python/lib/python3.13/contextlib.py +814 -0
  115. package/python/lib/python3.13/contextvars.py +4 -0
  116. package/python/lib/python3.13/copy.py +306 -0
  117. package/python/lib/python3.13/copyreg.py +217 -0
  118. package/python/lib/python3.13/csv.py +527 -0
  119. package/python/lib/python3.13/ctypes/__init__.py +605 -0
  120. package/python/lib/python3.13/ctypes/_aix.py +327 -0
  121. package/python/lib/python3.13/ctypes/_endian.py +78 -0
  122. package/python/lib/python3.13/ctypes/macholib/README.ctypes +7 -0
  123. package/python/lib/python3.13/ctypes/macholib/__init__.py +9 -0
  124. package/python/lib/python3.13/ctypes/macholib/dyld.py +165 -0
  125. package/python/lib/python3.13/ctypes/macholib/dylib.py +42 -0
  126. package/python/lib/python3.13/ctypes/macholib/fetch_macholib +2 -0
  127. package/python/lib/python3.13/ctypes/macholib/fetch_macholib.bat +1 -0
  128. package/python/lib/python3.13/ctypes/macholib/framework.py +42 -0
  129. package/python/lib/python3.13/ctypes/util.py +387 -0
  130. package/python/lib/python3.13/ctypes/wintypes.py +202 -0
  131. package/python/lib/python3.13/curses/__init__.py +101 -0
  132. package/python/lib/python3.13/curses/ascii.py +99 -0
  133. package/python/lib/python3.13/curses/has_key.py +192 -0
  134. package/python/lib/python3.13/curses/panel.py +6 -0
  135. package/python/lib/python3.13/curses/textpad.py +236 -0
  136. package/python/lib/python3.13/dataclasses.py +1679 -0
  137. package/python/lib/python3.13/datetime.py +9 -0
  138. package/python/lib/python3.13/dbm/__init__.py +194 -0
  139. package/python/lib/python3.13/dbm/dumb.py +319 -0
  140. package/python/lib/python3.13/dbm/gnu.py +3 -0
  141. package/python/lib/python3.13/dbm/ndbm.py +3 -0
  142. package/python/lib/python3.13/dbm/sqlite3.py +144 -0
  143. package/python/lib/python3.13/decimal.py +109 -0
  144. package/python/lib/python3.13/difflib.py +2058 -0
  145. package/python/lib/python3.13/dis.py +1075 -0
  146. package/python/lib/python3.13/doctest.py +2919 -0
  147. package/python/lib/python3.13/email/__init__.py +61 -0
  148. package/python/lib/python3.13/email/_encoded_words.py +233 -0
  149. package/python/lib/python3.13/email/_header_value_parser.py +3153 -0
  150. package/python/lib/python3.13/email/_parseaddr.py +563 -0
  151. package/python/lib/python3.13/email/_policybase.py +382 -0
  152. package/python/lib/python3.13/email/architecture.rst +216 -0
  153. package/python/lib/python3.13/email/base64mime.py +115 -0
  154. package/python/lib/python3.13/email/charset.py +396 -0
  155. package/python/lib/python3.13/email/contentmanager.py +254 -0
  156. package/python/lib/python3.13/email/encoders.py +65 -0
  157. package/python/lib/python3.13/email/errors.py +117 -0
  158. package/python/lib/python3.13/email/feedparser.py +536 -0
  159. package/python/lib/python3.13/email/generator.py +530 -0
  160. package/python/lib/python3.13/email/header.py +582 -0
  161. package/python/lib/python3.13/email/headerregistry.py +618 -0
  162. package/python/lib/python3.13/email/iterators.py +68 -0
  163. package/python/lib/python3.13/email/message.py +1217 -0
  164. package/python/lib/python3.13/email/mime/__init__.py +0 -0
  165. package/python/lib/python3.13/email/mime/application.py +37 -0
  166. package/python/lib/python3.13/email/mime/audio.py +97 -0
  167. package/python/lib/python3.13/email/mime/base.py +29 -0
  168. package/python/lib/python3.13/email/mime/image.py +152 -0
  169. package/python/lib/python3.13/email/mime/message.py +33 -0
  170. package/python/lib/python3.13/email/mime/multipart.py +47 -0
  171. package/python/lib/python3.13/email/mime/nonmultipart.py +21 -0
  172. package/python/lib/python3.13/email/mime/text.py +40 -0
  173. package/python/lib/python3.13/email/parser.py +127 -0
  174. package/python/lib/python3.13/email/policy.py +232 -0
  175. package/python/lib/python3.13/email/quoprimime.py +300 -0
  176. package/python/lib/python3.13/email/utils.py +497 -0
  177. package/python/lib/python3.13/encodings/__init__.py +179 -0
  178. package/python/lib/python3.13/encodings/__pycache__/__init__.cpython-313.pyc +0 -0
  179. package/python/lib/python3.13/encodings/__pycache__/aliases.cpython-313.pyc +0 -0
  180. package/python/lib/python3.13/encodings/__pycache__/utf_8.cpython-313.pyc +0 -0
  181. package/python/lib/python3.13/encodings/aliases.py +560 -0
  182. package/python/lib/python3.13/encodings/ascii.py +50 -0
  183. package/python/lib/python3.13/encodings/base64_codec.py +55 -0
  184. package/python/lib/python3.13/encodings/big5.py +39 -0
  185. package/python/lib/python3.13/encodings/big5hkscs.py +39 -0
  186. package/python/lib/python3.13/encodings/bz2_codec.py +78 -0
  187. package/python/lib/python3.13/encodings/charmap.py +69 -0
  188. package/python/lib/python3.13/encodings/cp037.py +307 -0
  189. package/python/lib/python3.13/encodings/cp1006.py +307 -0
  190. package/python/lib/python3.13/encodings/cp1026.py +307 -0
  191. package/python/lib/python3.13/encodings/cp1125.py +698 -0
  192. package/python/lib/python3.13/encodings/cp1140.py +307 -0
  193. package/python/lib/python3.13/encodings/cp1250.py +307 -0
  194. package/python/lib/python3.13/encodings/cp1251.py +307 -0
  195. package/python/lib/python3.13/encodings/cp1252.py +307 -0
  196. package/python/lib/python3.13/encodings/cp1253.py +307 -0
  197. package/python/lib/python3.13/encodings/cp1254.py +307 -0
  198. package/python/lib/python3.13/encodings/cp1255.py +307 -0
  199. package/python/lib/python3.13/encodings/cp1256.py +307 -0
  200. package/python/lib/python3.13/encodings/cp1257.py +307 -0
  201. package/python/lib/python3.13/encodings/cp1258.py +307 -0
  202. package/python/lib/python3.13/encodings/cp273.py +307 -0
  203. package/python/lib/python3.13/encodings/cp424.py +307 -0
  204. package/python/lib/python3.13/encodings/cp437.py +698 -0
  205. package/python/lib/python3.13/encodings/cp500.py +307 -0
  206. package/python/lib/python3.13/encodings/cp720.py +309 -0
  207. package/python/lib/python3.13/encodings/cp737.py +698 -0
  208. package/python/lib/python3.13/encodings/cp775.py +697 -0
  209. package/python/lib/python3.13/encodings/cp850.py +698 -0
  210. package/python/lib/python3.13/encodings/cp852.py +698 -0
  211. package/python/lib/python3.13/encodings/cp855.py +698 -0
  212. package/python/lib/python3.13/encodings/cp856.py +307 -0
  213. package/python/lib/python3.13/encodings/cp857.py +694 -0
  214. package/python/lib/python3.13/encodings/cp858.py +698 -0
  215. package/python/lib/python3.13/encodings/cp860.py +698 -0
  216. package/python/lib/python3.13/encodings/cp861.py +698 -0
  217. package/python/lib/python3.13/encodings/cp862.py +698 -0
  218. package/python/lib/python3.13/encodings/cp863.py +698 -0
  219. package/python/lib/python3.13/encodings/cp864.py +690 -0
  220. package/python/lib/python3.13/encodings/cp865.py +698 -0
  221. package/python/lib/python3.13/encodings/cp866.py +698 -0
  222. package/python/lib/python3.13/encodings/cp869.py +689 -0
  223. package/python/lib/python3.13/encodings/cp874.py +307 -0
  224. package/python/lib/python3.13/encodings/cp875.py +307 -0
  225. package/python/lib/python3.13/encodings/cp932.py +39 -0
  226. package/python/lib/python3.13/encodings/cp949.py +39 -0
  227. package/python/lib/python3.13/encodings/cp950.py +39 -0
  228. package/python/lib/python3.13/encodings/euc_jis_2004.py +39 -0
  229. package/python/lib/python3.13/encodings/euc_jisx0213.py +39 -0
  230. package/python/lib/python3.13/encodings/euc_jp.py +39 -0
  231. package/python/lib/python3.13/encodings/euc_kr.py +39 -0
  232. package/python/lib/python3.13/encodings/gb18030.py +39 -0
  233. package/python/lib/python3.13/encodings/gb2312.py +39 -0
  234. package/python/lib/python3.13/encodings/gbk.py +39 -0
  235. package/python/lib/python3.13/encodings/hex_codec.py +55 -0
  236. package/python/lib/python3.13/encodings/hp_roman8.py +314 -0
  237. package/python/lib/python3.13/encodings/hz.py +39 -0
  238. package/python/lib/python3.13/encodings/idna.py +387 -0
  239. package/python/lib/python3.13/encodings/iso2022_jp.py +39 -0
  240. package/python/lib/python3.13/encodings/iso2022_jp_1.py +39 -0
  241. package/python/lib/python3.13/encodings/iso2022_jp_2.py +39 -0
  242. package/python/lib/python3.13/encodings/iso2022_jp_2004.py +39 -0
  243. package/python/lib/python3.13/encodings/iso2022_jp_3.py +39 -0
  244. package/python/lib/python3.13/encodings/iso2022_jp_ext.py +39 -0
  245. package/python/lib/python3.13/encodings/iso2022_kr.py +39 -0
  246. package/python/lib/python3.13/encodings/iso8859_1.py +307 -0
  247. package/python/lib/python3.13/encodings/iso8859_10.py +307 -0
  248. package/python/lib/python3.13/encodings/iso8859_11.py +307 -0
  249. package/python/lib/python3.13/encodings/iso8859_13.py +307 -0
  250. package/python/lib/python3.13/encodings/iso8859_14.py +307 -0
  251. package/python/lib/python3.13/encodings/iso8859_15.py +307 -0
  252. package/python/lib/python3.13/encodings/iso8859_16.py +307 -0
  253. package/python/lib/python3.13/encodings/iso8859_2.py +307 -0
  254. package/python/lib/python3.13/encodings/iso8859_3.py +307 -0
  255. package/python/lib/python3.13/encodings/iso8859_4.py +307 -0
  256. package/python/lib/python3.13/encodings/iso8859_5.py +307 -0
  257. package/python/lib/python3.13/encodings/iso8859_6.py +307 -0
  258. package/python/lib/python3.13/encodings/iso8859_7.py +307 -0
  259. package/python/lib/python3.13/encodings/iso8859_8.py +307 -0
  260. package/python/lib/python3.13/encodings/iso8859_9.py +307 -0
  261. package/python/lib/python3.13/encodings/johab.py +39 -0
  262. package/python/lib/python3.13/encodings/koi8_r.py +307 -0
  263. package/python/lib/python3.13/encodings/koi8_t.py +308 -0
  264. package/python/lib/python3.13/encodings/koi8_u.py +307 -0
  265. package/python/lib/python3.13/encodings/kz1048.py +307 -0
  266. package/python/lib/python3.13/encodings/latin_1.py +50 -0
  267. package/python/lib/python3.13/encodings/mac_arabic.py +698 -0
  268. package/python/lib/python3.13/encodings/mac_croatian.py +307 -0
  269. package/python/lib/python3.13/encodings/mac_cyrillic.py +307 -0
  270. package/python/lib/python3.13/encodings/mac_farsi.py +307 -0
  271. package/python/lib/python3.13/encodings/mac_greek.py +307 -0
  272. package/python/lib/python3.13/encodings/mac_iceland.py +307 -0
  273. package/python/lib/python3.13/encodings/mac_latin2.py +312 -0
  274. package/python/lib/python3.13/encodings/mac_roman.py +307 -0
  275. package/python/lib/python3.13/encodings/mac_romanian.py +307 -0
  276. package/python/lib/python3.13/encodings/mac_turkish.py +307 -0
  277. package/python/lib/python3.13/encodings/mbcs.py +47 -0
  278. package/python/lib/python3.13/encodings/oem.py +41 -0
  279. package/python/lib/python3.13/encodings/palmos.py +308 -0
  280. package/python/lib/python3.13/encodings/ptcp154.py +312 -0
  281. package/python/lib/python3.13/encodings/punycode.py +253 -0
  282. package/python/lib/python3.13/encodings/quopri_codec.py +56 -0
  283. package/python/lib/python3.13/encodings/raw_unicode_escape.py +46 -0
  284. package/python/lib/python3.13/encodings/rot_13.py +113 -0
  285. package/python/lib/python3.13/encodings/shift_jis.py +39 -0
  286. package/python/lib/python3.13/encodings/shift_jis_2004.py +39 -0
  287. package/python/lib/python3.13/encodings/shift_jisx0213.py +39 -0
  288. package/python/lib/python3.13/encodings/tis_620.py +307 -0
  289. package/python/lib/python3.13/encodings/undefined.py +49 -0
  290. package/python/lib/python3.13/encodings/unicode_escape.py +46 -0
  291. package/python/lib/python3.13/encodings/utf_16.py +155 -0
  292. package/python/lib/python3.13/encodings/utf_16_be.py +42 -0
  293. package/python/lib/python3.13/encodings/utf_16_le.py +42 -0
  294. package/python/lib/python3.13/encodings/utf_32.py +150 -0
  295. package/python/lib/python3.13/encodings/utf_32_be.py +37 -0
  296. package/python/lib/python3.13/encodings/utf_32_le.py +37 -0
  297. package/python/lib/python3.13/encodings/utf_7.py +38 -0
  298. package/python/lib/python3.13/encodings/utf_8.py +42 -0
  299. package/python/lib/python3.13/encodings/utf_8_sig.py +130 -0
  300. package/python/lib/python3.13/encodings/uu_codec.py +103 -0
  301. package/python/lib/python3.13/encodings/zlib_codec.py +77 -0
  302. package/python/lib/python3.13/enum.py +2183 -0
  303. package/python/lib/python3.13/filecmp.py +320 -0
  304. package/python/lib/python3.13/fileinput.py +442 -0
  305. package/python/lib/python3.13/fnmatch.py +192 -0
  306. package/python/lib/python3.13/fractions.py +1043 -0
  307. package/python/lib/python3.13/ftplib.py +975 -0
  308. package/python/lib/python3.13/functools.py +1036 -0
  309. package/python/lib/python3.13/genericpath.py +200 -0
  310. package/python/lib/python3.13/getopt.py +215 -0
  311. package/python/lib/python3.13/getpass.py +192 -0
  312. package/python/lib/python3.13/gettext.py +657 -0
  313. package/python/lib/python3.13/glob.py +572 -0
  314. package/python/lib/python3.13/graphlib.py +250 -0
  315. package/python/lib/python3.13/gzip.py +693 -0
  316. package/python/lib/python3.13/hashlib.py +255 -0
  317. package/python/lib/python3.13/heapq.py +603 -0
  318. package/python/lib/python3.13/hmac.py +220 -0
  319. package/python/lib/python3.13/html/__init__.py +132 -0
  320. package/python/lib/python3.13/html/entities.py +2513 -0
  321. package/python/lib/python3.13/html/parser.py +583 -0
  322. package/python/lib/python3.13/http/__init__.py +202 -0
  323. package/python/lib/python3.13/http/client.py +1598 -0
  324. package/python/lib/python3.13/http/cookiejar.py +2122 -0
  325. package/python/lib/python3.13/http/cookies.py +635 -0
  326. package/python/lib/python3.13/http/server.py +1355 -0
  327. package/python/lib/python3.13/imaplib.py +1769 -0
  328. package/python/lib/python3.13/importlib/__init__.py +136 -0
  329. package/python/lib/python3.13/importlib/_abc.py +39 -0
  330. package/python/lib/python3.13/importlib/_bootstrap.py +1559 -0
  331. package/python/lib/python3.13/importlib/_bootstrap_external.py +1826 -0
  332. package/python/lib/python3.13/importlib/abc.py +243 -0
  333. package/python/lib/python3.13/importlib/machinery.py +21 -0
  334. package/python/lib/python3.13/importlib/metadata/__init__.py +1093 -0
  335. package/python/lib/python3.13/importlib/metadata/_adapters.py +89 -0
  336. package/python/lib/python3.13/importlib/metadata/_collections.py +30 -0
  337. package/python/lib/python3.13/importlib/metadata/_functools.py +104 -0
  338. package/python/lib/python3.13/importlib/metadata/_itertools.py +73 -0
  339. package/python/lib/python3.13/importlib/metadata/_meta.py +67 -0
  340. package/python/lib/python3.13/importlib/metadata/_text.py +99 -0
  341. package/python/lib/python3.13/importlib/metadata/diagnose.py +21 -0
  342. package/python/lib/python3.13/importlib/readers.py +12 -0
  343. package/python/lib/python3.13/importlib/resources/__init__.py +43 -0
  344. package/python/lib/python3.13/importlib/resources/_adapters.py +168 -0
  345. package/python/lib/python3.13/importlib/resources/_common.py +211 -0
  346. package/python/lib/python3.13/importlib/resources/_functional.py +81 -0
  347. package/python/lib/python3.13/importlib/resources/_itertools.py +38 -0
  348. package/python/lib/python3.13/importlib/resources/abc.py +173 -0
  349. package/python/lib/python3.13/importlib/resources/readers.py +203 -0
  350. package/python/lib/python3.13/importlib/resources/simple.py +106 -0
  351. package/python/lib/python3.13/importlib/simple.py +14 -0
  352. package/python/lib/python3.13/importlib/util.py +274 -0
  353. package/python/lib/python3.13/inspect.py +3479 -0
  354. package/python/lib/python3.13/io.py +99 -0
  355. package/python/lib/python3.13/ipaddress.py +2440 -0
  356. package/python/lib/python3.13/json/__init__.py +365 -0
  357. package/python/lib/python3.13/json/decoder.py +364 -0
  358. package/python/lib/python3.13/json/encoder.py +446 -0
  359. package/python/lib/python3.13/json/scanner.py +73 -0
  360. package/python/lib/python3.13/json/tool.py +90 -0
  361. package/python/lib/python3.13/keyword.py +64 -0
  362. package/python/lib/python3.13/lib-dynload/.empty +0 -0
  363. package/python/lib/python3.13/lib-dynload/_dbm.cpython-313-x86_64-linux-gnu.so +0 -0
  364. package/python/lib/python3.13/linecache.py +236 -0
  365. package/python/lib/python3.13/locale.py +1987 -0
  366. package/python/lib/python3.13/logging/__init__.py +2330 -0
  367. package/python/lib/python3.13/logging/config.py +1080 -0
  368. package/python/lib/python3.13/logging/handlers.py +1629 -0
  369. package/python/lib/python3.13/lzma.py +364 -0
  370. package/python/lib/python3.13/mailbox.py +2219 -0
  371. package/python/lib/python3.13/mimetypes.py +679 -0
  372. package/python/lib/python3.13/modulefinder.py +671 -0
  373. package/python/lib/python3.13/multiprocessing/__init__.py +37 -0
  374. package/python/lib/python3.13/multiprocessing/connection.py +1216 -0
  375. package/python/lib/python3.13/multiprocessing/context.py +383 -0
  376. package/python/lib/python3.13/multiprocessing/dummy/__init__.py +126 -0
  377. package/python/lib/python3.13/multiprocessing/dummy/connection.py +75 -0
  378. package/python/lib/python3.13/multiprocessing/forkserver.py +373 -0
  379. package/python/lib/python3.13/multiprocessing/heap.py +337 -0
  380. package/python/lib/python3.13/multiprocessing/managers.py +1397 -0
  381. package/python/lib/python3.13/multiprocessing/pool.py +957 -0
  382. package/python/lib/python3.13/multiprocessing/popen_fork.py +97 -0
  383. package/python/lib/python3.13/multiprocessing/popen_forkserver.py +74 -0
  384. package/python/lib/python3.13/multiprocessing/popen_spawn_posix.py +76 -0
  385. package/python/lib/python3.13/multiprocessing/popen_spawn_win32.py +147 -0
  386. package/python/lib/python3.13/multiprocessing/process.py +436 -0
  387. package/python/lib/python3.13/multiprocessing/queues.py +399 -0
  388. package/python/lib/python3.13/multiprocessing/reduction.py +281 -0
  389. package/python/lib/python3.13/multiprocessing/resource_sharer.py +154 -0
  390. package/python/lib/python3.13/multiprocessing/resource_tracker.py +499 -0
  391. package/python/lib/python3.13/multiprocessing/shared_memory.py +544 -0
  392. package/python/lib/python3.13/multiprocessing/sharedctypes.py +240 -0
  393. package/python/lib/python3.13/multiprocessing/spawn.py +307 -0
  394. package/python/lib/python3.13/multiprocessing/synchronize.py +404 -0
  395. package/python/lib/python3.13/multiprocessing/util.py +562 -0
  396. package/python/lib/python3.13/netrc.py +199 -0
  397. package/python/lib/python3.13/ntpath.py +872 -0
  398. package/python/lib/python3.13/nturl2path.py +69 -0
  399. package/python/lib/python3.13/numbers.py +427 -0
  400. package/python/lib/python3.13/opcode.py +115 -0
  401. package/python/lib/python3.13/operator.py +467 -0
  402. package/python/lib/python3.13/optparse.py +1681 -0
  403. package/python/lib/python3.13/os.py +1184 -0
  404. package/python/lib/python3.13/pathlib/__init__.py +12 -0
  405. package/python/lib/python3.13/pathlib/_abc.py +930 -0
  406. package/python/lib/python3.13/pathlib/_local.py +861 -0
  407. package/python/lib/python3.13/pdb.py +2550 -0
  408. package/python/lib/python3.13/pickle.py +1860 -0
  409. package/python/lib/python3.13/pickletools.py +2904 -0
  410. package/python/lib/python3.13/pkgutil.py +529 -0
  411. package/python/lib/python3.13/platform.py +1454 -0
  412. package/python/lib/python3.13/plistlib.py +948 -0
  413. package/python/lib/python3.13/poplib.py +477 -0
  414. package/python/lib/python3.13/posixpath.py +578 -0
  415. package/python/lib/python3.13/pprint.py +658 -0
  416. package/python/lib/python3.13/profile.py +616 -0
  417. package/python/lib/python3.13/pstats.py +778 -0
  418. package/python/lib/python3.13/pty.py +211 -0
  419. package/python/lib/python3.13/py_compile.py +212 -0
  420. package/python/lib/python3.13/pyclbr.py +314 -0
  421. package/python/lib/python3.13/pydoc.py +2861 -0
  422. package/python/lib/python3.13/queue.py +383 -0
  423. package/python/lib/python3.13/quopri.py +237 -0
  424. package/python/lib/python3.13/random.py +1078 -0
  425. package/python/lib/python3.13/re/__init__.py +428 -0
  426. package/python/lib/python3.13/re/_casefix.py +106 -0
  427. package/python/lib/python3.13/re/_compiler.py +768 -0
  428. package/python/lib/python3.13/re/_constants.py +222 -0
  429. package/python/lib/python3.13/re/_parser.py +1081 -0
  430. package/python/lib/python3.13/reprlib.py +230 -0
  431. package/python/lib/python3.13/rlcompleter.py +222 -0
  432. package/python/lib/python3.13/runpy.py +326 -0
  433. package/python/lib/python3.13/sched.py +167 -0
  434. package/python/lib/python3.13/secrets.py +71 -0
  435. package/python/lib/python3.13/selectors.py +603 -0
  436. package/python/lib/python3.13/shelve.py +250 -0
  437. package/python/lib/python3.13/shlex.py +345 -0
  438. package/python/lib/python3.13/shutil.py +1569 -0
  439. package/python/lib/python3.13/signal.py +94 -0
  440. package/python/lib/python3.13/site.py +773 -0
  441. package/python/lib/python3.13/smtplib.py +1123 -0
  442. package/python/lib/python3.13/socket.py +988 -0
  443. package/python/lib/python3.13/socketserver.py +863 -0
  444. package/python/lib/python3.13/sqlite3/__init__.py +70 -0
  445. package/python/lib/python3.13/sqlite3/__main__.py +139 -0
  446. package/python/lib/python3.13/sqlite3/dbapi2.py +108 -0
  447. package/python/lib/python3.13/sqlite3/dump.py +118 -0
  448. package/python/lib/python3.13/sre_compile.py +7 -0
  449. package/python/lib/python3.13/sre_constants.py +7 -0
  450. package/python/lib/python3.13/sre_parse.py +7 -0
  451. package/python/lib/python3.13/ssl.py +1541 -0
  452. package/python/lib/python3.13/stat.py +212 -0
  453. package/python/lib/python3.13/statistics.py +1817 -0
  454. package/python/lib/python3.13/string.py +314 -0
  455. package/python/lib/python3.13/stringprep.py +272 -0
  456. package/python/lib/python3.13/struct.py +15 -0
  457. package/python/lib/python3.13/subprocess.py +2258 -0
  458. package/python/lib/python3.13/symtable.py +414 -0
  459. package/python/lib/python3.13/sysconfig/__init__.py +734 -0
  460. package/python/lib/python3.13/sysconfig/__main__.py +248 -0
  461. package/python/lib/python3.13/tabnanny.py +340 -0
  462. package/python/lib/python3.13/tarfile.py +3136 -0
  463. package/python/lib/python3.13/tempfile.py +958 -0
  464. package/python/lib/python3.13/textwrap.py +497 -0
  465. package/python/lib/python3.13/this.py +28 -0
  466. package/python/lib/python3.13/threading.py +1602 -0
  467. package/python/lib/python3.13/timeit.py +381 -0
  468. package/python/lib/python3.13/token.py +141 -0
  469. package/python/lib/python3.13/tokenize.py +592 -0
  470. package/python/lib/python3.13/tomllib/__init__.py +10 -0
  471. package/python/lib/python3.13/tomllib/_parser.py +703 -0
  472. package/python/lib/python3.13/tomllib/_re.py +107 -0
  473. package/python/lib/python3.13/tomllib/_types.py +10 -0
  474. package/python/lib/python3.13/tomllib/mypy.ini +15 -0
  475. package/python/lib/python3.13/trace.py +754 -0
  476. package/python/lib/python3.13/traceback.py +1639 -0
  477. package/python/lib/python3.13/tracemalloc.py +560 -0
  478. package/python/lib/python3.13/tty.py +73 -0
  479. package/python/lib/python3.13/types.py +346 -0
  480. package/python/lib/python3.13/typing.py +3846 -0
  481. package/python/lib/python3.13/unittest/__init__.py +80 -0
  482. package/python/lib/python3.13/unittest/__main__.py +18 -0
  483. package/python/lib/python3.13/unittest/_log.py +86 -0
  484. package/python/lib/python3.13/unittest/async_case.py +146 -0
  485. package/python/lib/python3.13/unittest/case.py +1478 -0
  486. package/python/lib/python3.13/unittest/loader.py +460 -0
  487. package/python/lib/python3.13/unittest/main.py +280 -0
  488. package/python/lib/python3.13/unittest/mock.py +3189 -0
  489. package/python/lib/python3.13/unittest/result.py +256 -0
  490. package/python/lib/python3.13/unittest/runner.py +292 -0
  491. package/python/lib/python3.13/unittest/signals.py +71 -0
  492. package/python/lib/python3.13/unittest/suite.py +379 -0
  493. package/python/lib/python3.13/unittest/util.py +170 -0
  494. package/python/lib/python3.13/urllib/__init__.py +0 -0
  495. package/python/lib/python3.13/urllib/error.py +74 -0
  496. package/python/lib/python3.13/urllib/parse.py +1264 -0
  497. package/python/lib/python3.13/urllib/request.py +2796 -0
  498. package/python/lib/python3.13/urllib/response.py +84 -0
  499. package/python/lib/python3.13/urllib/robotparser.py +363 -0
  500. package/python/lib/python3.13/uuid.py +784 -0
  501. package/python/lib/python3.13/warnings.py +735 -0
  502. package/python/lib/python3.13/wave.py +665 -0
  503. package/python/lib/python3.13/weakref.py +674 -0
  504. package/python/lib/python3.13/webbrowser.py +724 -0
  505. package/python/lib/python3.13/wsgiref/__init__.py +25 -0
  506. package/python/lib/python3.13/wsgiref/handlers.py +575 -0
  507. package/python/lib/python3.13/wsgiref/headers.py +192 -0
  508. package/python/lib/python3.13/wsgiref/simple_server.py +161 -0
  509. package/python/lib/python3.13/wsgiref/types.py +54 -0
  510. package/python/lib/python3.13/wsgiref/util.py +159 -0
  511. package/python/lib/python3.13/wsgiref/validate.py +438 -0
  512. package/python/lib/python3.13/xml/__init__.py +20 -0
  513. package/python/lib/python3.13/xml/dom/NodeFilter.py +27 -0
  514. package/python/lib/python3.13/xml/dom/__init__.py +140 -0
  515. package/python/lib/python3.13/xml/dom/domreg.py +99 -0
  516. package/python/lib/python3.13/xml/dom/expatbuilder.py +962 -0
  517. package/python/lib/python3.13/xml/dom/minicompat.py +109 -0
  518. package/python/lib/python3.13/xml/dom/minidom.py +2024 -0
  519. package/python/lib/python3.13/xml/dom/pulldom.py +336 -0
  520. package/python/lib/python3.13/xml/dom/xmlbuilder.py +389 -0
  521. package/python/lib/python3.13/xml/etree/ElementInclude.py +186 -0
  522. package/python/lib/python3.13/xml/etree/ElementPath.py +430 -0
  523. package/python/lib/python3.13/xml/etree/ElementTree.py +2116 -0
  524. package/python/lib/python3.13/xml/etree/__init__.py +33 -0
  525. package/python/lib/python3.13/xml/etree/cElementTree.py +3 -0
  526. package/python/lib/python3.13/xml/parsers/__init__.py +8 -0
  527. package/python/lib/python3.13/xml/parsers/expat.py +8 -0
  528. package/python/lib/python3.13/xml/sax/__init__.py +94 -0
  529. package/python/lib/python3.13/xml/sax/_exceptions.py +127 -0
  530. package/python/lib/python3.13/xml/sax/expatreader.py +454 -0
  531. package/python/lib/python3.13/xml/sax/handler.py +387 -0
  532. package/python/lib/python3.13/xml/sax/saxutils.py +369 -0
  533. package/python/lib/python3.13/xml/sax/xmlreader.py +378 -0
  534. package/python/lib/python3.13/xmlrpc/__init__.py +1 -0
  535. package/python/lib/python3.13/xmlrpc/client.py +1503 -0
  536. package/python/lib/python3.13/xmlrpc/server.py +1002 -0
  537. package/python/lib/python3.13/zipapp.py +229 -0
  538. package/python/lib/python3.13/zipfile/__init__.py +2391 -0
  539. package/python/lib/python3.13/zipfile/__main__.py +4 -0
  540. package/python/lib/python3.13/zipfile/_path/__init__.py +452 -0
  541. package/python/lib/python3.13/zipfile/_path/glob.py +113 -0
  542. package/python/lib/python3.13/zipimport.py +803 -0
  543. package/python/lib/python3.13/zoneinfo/__init__.py +34 -0
  544. package/python/lib/python3.13/zoneinfo/_common.py +172 -0
  545. package/python/lib/python3.13/zoneinfo/_tzpath.py +189 -0
  546. package/python/lib/python3.13/zoneinfo/_zoneinfo.py +779 -0
  547. package/python/licenses/LICENSE.bdb.txt +126 -0
  548. package/python/licenses/LICENSE.bzip2.txt +37 -0
  549. package/python/licenses/LICENSE.cpython.txt +771 -0
  550. package/python/licenses/LICENSE.expat.txt +21 -0
  551. package/python/licenses/LICENSE.libX11.txt +942 -0
  552. package/python/licenses/LICENSE.libXau.txt +21 -0
  553. package/python/licenses/LICENSE.libedit.txt +29 -0
  554. package/python/licenses/LICENSE.libffi.txt +21 -0
  555. package/python/licenses/LICENSE.liblzma.txt +13 -0
  556. package/python/licenses/LICENSE.libuuid.txt +27 -0
  557. package/python/licenses/LICENSE.libxcb.txt +30 -0
  558. package/python/licenses/LICENSE.mpdecimal.txt +24 -0
  559. package/python/licenses/LICENSE.ncurses.txt +29 -0
  560. package/python/licenses/LICENSE.openssl-1.1.txt +124 -0
  561. package/python/licenses/LICENSE.openssl-3.txt +177 -0
  562. package/python/licenses/LICENSE.sqlite.txt +23 -0
  563. package/python/licenses/LICENSE.tcl.txt +40 -0
  564. package/python/licenses/LICENSE.tix.txt +54 -0
  565. package/python/licenses/LICENSE.zlib.txt +21 -0
@@ -0,0 +1,67 @@
1
+ __all__ = ()
2
+
3
+ import reprlib
4
+
5
+ from . import format_helpers
6
+
7
+ # States for Future.
8
+ _PENDING = 'PENDING'
9
+ _CANCELLED = 'CANCELLED'
10
+ _FINISHED = 'FINISHED'
11
+
12
+
13
+ def isfuture(obj):
14
+ """Check for a Future.
15
+
16
+ This returns True when obj is a Future instance or is advertising
17
+ itself as duck-type compatible by setting _asyncio_future_blocking.
18
+ See comment in Future for more details.
19
+ """
20
+ return (hasattr(obj.__class__, '_asyncio_future_blocking') and
21
+ obj._asyncio_future_blocking is not None)
22
+
23
+
24
+ def _format_callbacks(cb):
25
+ """helper function for Future.__repr__"""
26
+ size = len(cb)
27
+ if not size:
28
+ cb = ''
29
+
30
+ def format_cb(callback):
31
+ return format_helpers._format_callback_source(callback, ())
32
+
33
+ if size == 1:
34
+ cb = format_cb(cb[0][0])
35
+ elif size == 2:
36
+ cb = '{}, {}'.format(format_cb(cb[0][0]), format_cb(cb[1][0]))
37
+ elif size > 2:
38
+ cb = '{}, <{} more>, {}'.format(format_cb(cb[0][0]),
39
+ size - 2,
40
+ format_cb(cb[-1][0]))
41
+ return f'cb=[{cb}]'
42
+
43
+
44
+ def _future_repr_info(future):
45
+ # (Future) -> str
46
+ """helper function for Future.__repr__"""
47
+ info = [future._state.lower()]
48
+ if future._state == _FINISHED:
49
+ if future._exception is not None:
50
+ info.append(f'exception={future._exception!r}')
51
+ else:
52
+ # use reprlib to limit the length of the output, especially
53
+ # for very long strings
54
+ result = reprlib.repr(future._result)
55
+ info.append(f'result={result}')
56
+ if future._callbacks:
57
+ info.append(_format_callbacks(future._callbacks))
58
+ if future._source_traceback:
59
+ frame = future._source_traceback[-1]
60
+ info.append(f'created at {frame[0]}:{frame[1]}')
61
+ return info
62
+
63
+
64
+ @reprlib.recursive_repr()
65
+ def _future_repr(future):
66
+ info = ' '.join(_future_repr_info(future))
67
+ return f'<{future.__class__.__name__} {info}>'
@@ -0,0 +1,312 @@
1
+ import collections
2
+ import subprocess
3
+ import warnings
4
+ import os
5
+ import signal
6
+ import sys
7
+
8
+ from . import protocols
9
+ from . import transports
10
+ from .log import logger
11
+
12
+
13
+ class BaseSubprocessTransport(transports.SubprocessTransport):
14
+
15
+ def __init__(self, loop, protocol, args, shell,
16
+ stdin, stdout, stderr, bufsize,
17
+ waiter=None, extra=None, **kwargs):
18
+ super().__init__(extra)
19
+ self._closed = False
20
+ self._protocol = protocol
21
+ self._loop = loop
22
+ self._proc = None
23
+ self._pid = None
24
+ self._returncode = None
25
+ self._exit_waiters = []
26
+ self._pending_calls = collections.deque()
27
+ self._pipes = {}
28
+ self._finished = False
29
+
30
+ if stdin == subprocess.PIPE:
31
+ self._pipes[0] = None
32
+ if stdout == subprocess.PIPE:
33
+ self._pipes[1] = None
34
+ if stderr == subprocess.PIPE:
35
+ self._pipes[2] = None
36
+
37
+ # Create the child process: set the _proc attribute
38
+ try:
39
+ self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
40
+ stderr=stderr, bufsize=bufsize, **kwargs)
41
+ except:
42
+ self.close()
43
+ raise
44
+
45
+ self._pid = self._proc.pid
46
+ self._extra['subprocess'] = self._proc
47
+
48
+ if self._loop.get_debug():
49
+ if isinstance(args, (bytes, str)):
50
+ program = args
51
+ else:
52
+ program = args[0]
53
+ logger.debug('process %r created: pid %s',
54
+ program, self._pid)
55
+
56
+ self._loop.create_task(self._connect_pipes(waiter))
57
+
58
+ def __repr__(self):
59
+ info = [self.__class__.__name__]
60
+ if self._closed:
61
+ info.append('closed')
62
+ if self._pid is not None:
63
+ info.append(f'pid={self._pid}')
64
+ if self._returncode is not None:
65
+ info.append(f'returncode={self._returncode}')
66
+ elif self._pid is not None:
67
+ info.append('running')
68
+ else:
69
+ info.append('not started')
70
+
71
+ stdin = self._pipes.get(0)
72
+ if stdin is not None:
73
+ info.append(f'stdin={stdin.pipe}')
74
+
75
+ stdout = self._pipes.get(1)
76
+ stderr = self._pipes.get(2)
77
+ if stdout is not None and stderr is stdout:
78
+ info.append(f'stdout=stderr={stdout.pipe}')
79
+ else:
80
+ if stdout is not None:
81
+ info.append(f'stdout={stdout.pipe}')
82
+ if stderr is not None:
83
+ info.append(f'stderr={stderr.pipe}')
84
+
85
+ return '<{}>'.format(' '.join(info))
86
+
87
+ def _start(self, args, shell, stdin, stdout, stderr, bufsize, **kwargs):
88
+ raise NotImplementedError
89
+
90
+ def set_protocol(self, protocol):
91
+ self._protocol = protocol
92
+
93
+ def get_protocol(self):
94
+ return self._protocol
95
+
96
+ def is_closing(self):
97
+ return self._closed
98
+
99
+ def close(self):
100
+ if self._closed:
101
+ return
102
+ self._closed = True
103
+
104
+ for proto in self._pipes.values():
105
+ if proto is None:
106
+ continue
107
+ # See gh-114177
108
+ # skip closing the pipe if loop is already closed
109
+ # this can happen e.g. when loop is closed immediately after
110
+ # process is killed
111
+ if self._loop and not self._loop.is_closed():
112
+ proto.pipe.close()
113
+
114
+ if (self._proc is not None and
115
+ # has the child process finished?
116
+ self._returncode is None and
117
+ # the child process has finished, but the
118
+ # transport hasn't been notified yet?
119
+ self._proc.poll() is None):
120
+
121
+ if self._loop.get_debug():
122
+ logger.warning('Close running child process: kill %r', self)
123
+
124
+ try:
125
+ self._proc.kill()
126
+ except (ProcessLookupError, PermissionError):
127
+ # the process may have already exited or may be running setuid
128
+ pass
129
+
130
+ # Don't clear the _proc reference yet: _post_init() may still run
131
+
132
+ def __del__(self, _warn=warnings.warn):
133
+ if not self._closed:
134
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
135
+ self.close()
136
+
137
+ def get_pid(self):
138
+ return self._pid
139
+
140
+ def get_returncode(self):
141
+ return self._returncode
142
+
143
+ def get_pipe_transport(self, fd):
144
+ if fd in self._pipes:
145
+ return self._pipes[fd].pipe
146
+ else:
147
+ return None
148
+
149
+ def _check_proc(self):
150
+ if self._proc is None:
151
+ raise ProcessLookupError()
152
+
153
+ if sys.platform == 'win32':
154
+ def send_signal(self, signal):
155
+ self._check_proc()
156
+ self._proc.send_signal(signal)
157
+
158
+ def terminate(self):
159
+ self._check_proc()
160
+ self._proc.terminate()
161
+
162
+ def kill(self):
163
+ self._check_proc()
164
+ self._proc.kill()
165
+ else:
166
+ def send_signal(self, signal):
167
+ self._check_proc()
168
+ try:
169
+ os.kill(self._proc.pid, signal)
170
+ except ProcessLookupError:
171
+ pass
172
+
173
+ def terminate(self):
174
+ self.send_signal(signal.SIGTERM)
175
+
176
+ def kill(self):
177
+ self.send_signal(signal.SIGKILL)
178
+
179
+ async def _connect_pipes(self, waiter):
180
+ try:
181
+ proc = self._proc
182
+ loop = self._loop
183
+
184
+ if proc.stdin is not None:
185
+ _, pipe = await loop.connect_write_pipe(
186
+ lambda: WriteSubprocessPipeProto(self, 0),
187
+ proc.stdin)
188
+ self._pipes[0] = pipe
189
+
190
+ if proc.stdout is not None:
191
+ _, pipe = await loop.connect_read_pipe(
192
+ lambda: ReadSubprocessPipeProto(self, 1),
193
+ proc.stdout)
194
+ self._pipes[1] = pipe
195
+
196
+ if proc.stderr is not None:
197
+ _, pipe = await loop.connect_read_pipe(
198
+ lambda: ReadSubprocessPipeProto(self, 2),
199
+ proc.stderr)
200
+ self._pipes[2] = pipe
201
+
202
+ assert self._pending_calls is not None
203
+
204
+ loop.call_soon(self._protocol.connection_made, self)
205
+ for callback, data in self._pending_calls:
206
+ loop.call_soon(callback, *data)
207
+ self._pending_calls = None
208
+ except (SystemExit, KeyboardInterrupt):
209
+ raise
210
+ except BaseException as exc:
211
+ if waiter is not None and not waiter.cancelled():
212
+ waiter.set_exception(exc)
213
+ else:
214
+ if waiter is not None and not waiter.cancelled():
215
+ waiter.set_result(None)
216
+
217
+ def _call(self, cb, *data):
218
+ if self._pending_calls is not None:
219
+ self._pending_calls.append((cb, data))
220
+ else:
221
+ self._loop.call_soon(cb, *data)
222
+
223
+ def _pipe_connection_lost(self, fd, exc):
224
+ self._call(self._protocol.pipe_connection_lost, fd, exc)
225
+ self._try_finish()
226
+
227
+ def _pipe_data_received(self, fd, data):
228
+ self._call(self._protocol.pipe_data_received, fd, data)
229
+
230
+ def _process_exited(self, returncode):
231
+ assert returncode is not None, returncode
232
+ assert self._returncode is None, self._returncode
233
+ if self._loop.get_debug():
234
+ logger.info('%r exited with return code %r', self, returncode)
235
+ self._returncode = returncode
236
+
237
+ if self._proc.returncode is None:
238
+ # asyncio uses a child watcher: copy the status into the Popen
239
+ # object. On Python 3.6, it is required to avoid a ResourceWarning.
240
+ self._proc.returncode = returncode
241
+ self._call(self._protocol.process_exited)
242
+
243
+ self._try_finish()
244
+
245
+ # gh-119710: Wake up futures waiting for wait() as soon as the process
246
+ # exits.
247
+ for waiter in self._exit_waiters:
248
+ if not waiter.done():
249
+ waiter.set_result(returncode)
250
+ self._exit_waiters = None
251
+
252
+ async def _wait(self):
253
+ """Wait until the process exit and return the process return code.
254
+
255
+ This method is a coroutine."""
256
+ if self._returncode is not None:
257
+ return self._returncode
258
+
259
+ waiter = self._loop.create_future()
260
+ self._exit_waiters.append(waiter)
261
+ return await waiter
262
+
263
+ def _try_finish(self):
264
+ assert not self._finished
265
+ if self._returncode is None:
266
+ return
267
+
268
+ if all(p is not None and p.disconnected
269
+ for p in self._pipes.values()):
270
+ self._finished = True
271
+ self._call(self._call_connection_lost, None)
272
+
273
+ def _call_connection_lost(self, exc):
274
+ try:
275
+ self._protocol.connection_lost(exc)
276
+ finally:
277
+ self._loop = None
278
+ self._proc = None
279
+ self._protocol = None
280
+
281
+
282
+ class WriteSubprocessPipeProto(protocols.BaseProtocol):
283
+
284
+ def __init__(self, proc, fd):
285
+ self.proc = proc
286
+ self.fd = fd
287
+ self.pipe = None
288
+ self.disconnected = False
289
+
290
+ def connection_made(self, transport):
291
+ self.pipe = transport
292
+
293
+ def __repr__(self):
294
+ return f'<{self.__class__.__name__} fd={self.fd} pipe={self.pipe!r}>'
295
+
296
+ def connection_lost(self, exc):
297
+ self.disconnected = True
298
+ self.proc._pipe_connection_lost(self.fd, exc)
299
+ self.proc = None
300
+
301
+ def pause_writing(self):
302
+ self.proc._protocol.pause_writing()
303
+
304
+ def resume_writing(self):
305
+ self.proc._protocol.resume_writing()
306
+
307
+
308
+ class ReadSubprocessPipeProto(WriteSubprocessPipeProto,
309
+ protocols.Protocol):
310
+
311
+ def data_received(self, data):
312
+ self.proc._pipe_data_received(self.fd, data)
@@ -0,0 +1,94 @@
1
+ import linecache
2
+ import reprlib
3
+ import traceback
4
+
5
+ from . import base_futures
6
+ from . import coroutines
7
+
8
+
9
+ def _task_repr_info(task):
10
+ info = base_futures._future_repr_info(task)
11
+
12
+ if task.cancelling() and not task.done():
13
+ # replace status
14
+ info[0] = 'cancelling'
15
+
16
+ info.insert(1, 'name=%r' % task.get_name())
17
+
18
+ if task._fut_waiter is not None:
19
+ info.insert(2, f'wait_for={task._fut_waiter!r}')
20
+
21
+ if task._coro:
22
+ coro = coroutines._format_coroutine(task._coro)
23
+ info.insert(2, f'coro=<{coro}>')
24
+
25
+ return info
26
+
27
+
28
+ @reprlib.recursive_repr()
29
+ def _task_repr(task):
30
+ info = ' '.join(_task_repr_info(task))
31
+ return f'<{task.__class__.__name__} {info}>'
32
+
33
+
34
+ def _task_get_stack(task, limit):
35
+ frames = []
36
+ if hasattr(task._coro, 'cr_frame'):
37
+ # case 1: 'async def' coroutines
38
+ f = task._coro.cr_frame
39
+ elif hasattr(task._coro, 'gi_frame'):
40
+ # case 2: legacy coroutines
41
+ f = task._coro.gi_frame
42
+ elif hasattr(task._coro, 'ag_frame'):
43
+ # case 3: async generators
44
+ f = task._coro.ag_frame
45
+ else:
46
+ # case 4: unknown objects
47
+ f = None
48
+ if f is not None:
49
+ while f is not None:
50
+ if limit is not None:
51
+ if limit <= 0:
52
+ break
53
+ limit -= 1
54
+ frames.append(f)
55
+ f = f.f_back
56
+ frames.reverse()
57
+ elif task._exception is not None:
58
+ tb = task._exception.__traceback__
59
+ while tb is not None:
60
+ if limit is not None:
61
+ if limit <= 0:
62
+ break
63
+ limit -= 1
64
+ frames.append(tb.tb_frame)
65
+ tb = tb.tb_next
66
+ return frames
67
+
68
+
69
+ def _task_print_stack(task, limit, file):
70
+ extracted_list = []
71
+ checked = set()
72
+ for f in task.get_stack(limit=limit):
73
+ lineno = f.f_lineno
74
+ co = f.f_code
75
+ filename = co.co_filename
76
+ name = co.co_name
77
+ if filename not in checked:
78
+ checked.add(filename)
79
+ linecache.checkcache(filename)
80
+ line = linecache.getline(filename, lineno, f.f_globals)
81
+ extracted_list.append((filename, lineno, name, line))
82
+
83
+ exc = task._exception
84
+ if not extracted_list:
85
+ print(f'No stack for {task!r}', file=file)
86
+ elif exc is not None:
87
+ print(f'Traceback for {task!r} (most recent call last):', file=file)
88
+ else:
89
+ print(f'Stack for {task!r} (most recent call last):', file=file)
90
+
91
+ traceback.print_list(extracted_list, file=file)
92
+ if exc is not None:
93
+ for line in traceback.format_exception_only(exc.__class__, exc):
94
+ print(line, file=file, end='')
@@ -0,0 +1,41 @@
1
+ # Contains code from https://github.com/MagicStack/uvloop/tree/v0.16.0
2
+ # SPDX-License-Identifier: PSF-2.0 AND (MIT OR Apache-2.0)
3
+ # SPDX-FileCopyrightText: Copyright (c) 2015-2021 MagicStack Inc. http://magic.io
4
+
5
+ import enum
6
+
7
+ # After the connection is lost, log warnings after this many write()s.
8
+ LOG_THRESHOLD_FOR_CONNLOST_WRITES = 5
9
+
10
+ # Seconds to wait before retrying accept().
11
+ ACCEPT_RETRY_DELAY = 1
12
+
13
+ # Number of stack entries to capture in debug mode.
14
+ # The larger the number, the slower the operation in debug mode
15
+ # (see extract_stack() in format_helpers.py).
16
+ DEBUG_STACK_DEPTH = 10
17
+
18
+ # Number of seconds to wait for SSL handshake to complete
19
+ # The default timeout matches that of Nginx.
20
+ SSL_HANDSHAKE_TIMEOUT = 60.0
21
+
22
+ # Number of seconds to wait for SSL shutdown to complete
23
+ # The default timeout mimics lingering_time
24
+ SSL_SHUTDOWN_TIMEOUT = 30.0
25
+
26
+ # Used in sendfile fallback code. We use fallback for platforms
27
+ # that don't support sendfile, or for TLS connections.
28
+ SENDFILE_FALLBACK_READBUFFER_SIZE = 1024 * 256
29
+
30
+ FLOW_CONTROL_HIGH_WATER_SSL_READ = 256 # KiB
31
+ FLOW_CONTROL_HIGH_WATER_SSL_WRITE = 512 # KiB
32
+
33
+ # Default timeout for joining the threads in the threadpool
34
+ THREAD_JOIN_TIMEOUT = 300
35
+
36
+ # The enum should be here to break circular dependencies between
37
+ # base_events and sslproto
38
+ class _SendfileMode(enum.Enum):
39
+ UNSUPPORTED = enum.auto()
40
+ TRY_NATIVE = enum.auto()
41
+ FALLBACK = enum.auto()
@@ -0,0 +1,109 @@
1
+ __all__ = 'iscoroutinefunction', 'iscoroutine'
2
+
3
+ import collections.abc
4
+ import inspect
5
+ import os
6
+ import sys
7
+ import types
8
+
9
+
10
+ def _is_debug_mode():
11
+ # See: https://docs.python.org/3/library/asyncio-dev.html#asyncio-debug-mode.
12
+ return sys.flags.dev_mode or (not sys.flags.ignore_environment and
13
+ bool(os.environ.get('PYTHONASYNCIODEBUG')))
14
+
15
+
16
+ # A marker for iscoroutinefunction.
17
+ _is_coroutine = object()
18
+
19
+
20
+ def iscoroutinefunction(func):
21
+ """Return True if func is a decorated coroutine function."""
22
+ return (inspect.iscoroutinefunction(func) or
23
+ getattr(func, '_is_coroutine', None) is _is_coroutine)
24
+
25
+
26
+ # Prioritize native coroutine check to speed-up
27
+ # asyncio.iscoroutine.
28
+ _COROUTINE_TYPES = (types.CoroutineType, collections.abc.Coroutine)
29
+ _iscoroutine_typecache = set()
30
+
31
+
32
+ def iscoroutine(obj):
33
+ """Return True if obj is a coroutine object."""
34
+ if type(obj) in _iscoroutine_typecache:
35
+ return True
36
+
37
+ if isinstance(obj, _COROUTINE_TYPES):
38
+ # Just in case we don't want to cache more than 100
39
+ # positive types. That shouldn't ever happen, unless
40
+ # someone stressing the system on purpose.
41
+ if len(_iscoroutine_typecache) < 100:
42
+ _iscoroutine_typecache.add(type(obj))
43
+ return True
44
+ else:
45
+ return False
46
+
47
+
48
+ def _format_coroutine(coro):
49
+ assert iscoroutine(coro)
50
+
51
+ def get_name(coro):
52
+ # Coroutines compiled with Cython sometimes don't have
53
+ # proper __qualname__ or __name__. While that is a bug
54
+ # in Cython, asyncio shouldn't crash with an AttributeError
55
+ # in its __repr__ functions.
56
+ if hasattr(coro, '__qualname__') and coro.__qualname__:
57
+ coro_name = coro.__qualname__
58
+ elif hasattr(coro, '__name__') and coro.__name__:
59
+ coro_name = coro.__name__
60
+ else:
61
+ # Stop masking Cython bugs, expose them in a friendly way.
62
+ coro_name = f'<{type(coro).__name__} without __name__>'
63
+ return f'{coro_name}()'
64
+
65
+ def is_running(coro):
66
+ try:
67
+ return coro.cr_running
68
+ except AttributeError:
69
+ try:
70
+ return coro.gi_running
71
+ except AttributeError:
72
+ return False
73
+
74
+ coro_code = None
75
+ if hasattr(coro, 'cr_code') and coro.cr_code:
76
+ coro_code = coro.cr_code
77
+ elif hasattr(coro, 'gi_code') and coro.gi_code:
78
+ coro_code = coro.gi_code
79
+
80
+ coro_name = get_name(coro)
81
+
82
+ if not coro_code:
83
+ # Built-in types might not have __qualname__ or __name__.
84
+ if is_running(coro):
85
+ return f'{coro_name} running'
86
+ else:
87
+ return coro_name
88
+
89
+ coro_frame = None
90
+ if hasattr(coro, 'gi_frame') and coro.gi_frame:
91
+ coro_frame = coro.gi_frame
92
+ elif hasattr(coro, 'cr_frame') and coro.cr_frame:
93
+ coro_frame = coro.cr_frame
94
+
95
+ # If Cython's coroutine has a fake code object without proper
96
+ # co_filename -- expose that.
97
+ filename = coro_code.co_filename or '<empty co_filename>'
98
+
99
+ lineno = 0
100
+
101
+ if coro_frame is not None:
102
+ lineno = coro_frame.f_lineno
103
+ coro_repr = f'{coro_name} running at {filename}:{lineno}'
104
+
105
+ else:
106
+ lineno = coro_code.co_firstlineno
107
+ coro_repr = f'{coro_name} done, defined at {filename}:{lineno}'
108
+
109
+ return coro_repr