@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,147 @@
1
+ """Record of phased-in incompatible language changes.
2
+
3
+ Each line is of the form:
4
+
5
+ FeatureName = "_Feature(" OptionalRelease "," MandatoryRelease ","
6
+ CompilerFlag ")"
7
+
8
+ where, normally, OptionalRelease < MandatoryRelease, and both are 5-tuples
9
+ of the same form as sys.version_info:
10
+
11
+ (PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int
12
+ PY_MINOR_VERSION, # the 1; an int
13
+ PY_MICRO_VERSION, # the 0; an int
14
+ PY_RELEASE_LEVEL, # "alpha", "beta", "candidate" or "final"; string
15
+ PY_RELEASE_SERIAL # the 3; an int
16
+ )
17
+
18
+ OptionalRelease records the first release in which
19
+
20
+ from __future__ import FeatureName
21
+
22
+ was accepted.
23
+
24
+ In the case of MandatoryReleases that have not yet occurred,
25
+ MandatoryRelease predicts the release in which the feature will become part
26
+ of the language.
27
+
28
+ Else MandatoryRelease records when the feature became part of the language;
29
+ in releases at or after that, modules no longer need
30
+
31
+ from __future__ import FeatureName
32
+
33
+ to use the feature in question, but may continue to use such imports.
34
+
35
+ MandatoryRelease may also be None, meaning that a planned feature got
36
+ dropped or that the release version is undetermined.
37
+
38
+ Instances of class _Feature have two corresponding methods,
39
+ .getOptionalRelease() and .getMandatoryRelease().
40
+
41
+ CompilerFlag is the (bitfield) flag that should be passed in the fourth
42
+ argument to the builtin function compile() to enable the feature in
43
+ dynamically compiled code. This flag is stored in the .compiler_flag
44
+ attribute on _Future instances. These values must match the appropriate
45
+ #defines of CO_xxx flags in Include/cpython/compile.h.
46
+
47
+ No feature line is ever to be deleted from this file.
48
+ """
49
+
50
+ all_feature_names = [
51
+ "nested_scopes",
52
+ "generators",
53
+ "division",
54
+ "absolute_import",
55
+ "with_statement",
56
+ "print_function",
57
+ "unicode_literals",
58
+ "barry_as_FLUFL",
59
+ "generator_stop",
60
+ "annotations",
61
+ ]
62
+
63
+ __all__ = ["all_feature_names"] + all_feature_names
64
+
65
+ # The CO_xxx symbols are defined here under the same names defined in
66
+ # code.h and used by compile.h, so that an editor search will find them here.
67
+ # However, they're not exported in __all__, because they don't really belong to
68
+ # this module.
69
+ CO_NESTED = 0x0010 # nested_scopes
70
+ CO_GENERATOR_ALLOWED = 0 # generators (obsolete, was 0x1000)
71
+ CO_FUTURE_DIVISION = 0x20000 # division
72
+ CO_FUTURE_ABSOLUTE_IMPORT = 0x40000 # perform absolute imports by default
73
+ CO_FUTURE_WITH_STATEMENT = 0x80000 # with statement
74
+ CO_FUTURE_PRINT_FUNCTION = 0x100000 # print function
75
+ CO_FUTURE_UNICODE_LITERALS = 0x200000 # unicode string literals
76
+ CO_FUTURE_BARRY_AS_BDFL = 0x400000
77
+ CO_FUTURE_GENERATOR_STOP = 0x800000 # StopIteration becomes RuntimeError in generators
78
+ CO_FUTURE_ANNOTATIONS = 0x1000000 # annotations become strings at runtime
79
+
80
+
81
+ class _Feature:
82
+
83
+ def __init__(self, optionalRelease, mandatoryRelease, compiler_flag):
84
+ self.optional = optionalRelease
85
+ self.mandatory = mandatoryRelease
86
+ self.compiler_flag = compiler_flag
87
+
88
+ def getOptionalRelease(self):
89
+ """Return first release in which this feature was recognized.
90
+
91
+ This is a 5-tuple, of the same form as sys.version_info.
92
+ """
93
+ return self.optional
94
+
95
+ def getMandatoryRelease(self):
96
+ """Return release in which this feature will become mandatory.
97
+
98
+ This is a 5-tuple, of the same form as sys.version_info, or, if
99
+ the feature was dropped, or the release date is undetermined, is None.
100
+ """
101
+ return self.mandatory
102
+
103
+ def __repr__(self):
104
+ return "_Feature" + repr((self.optional,
105
+ self.mandatory,
106
+ self.compiler_flag))
107
+
108
+
109
+ nested_scopes = _Feature((2, 1, 0, "beta", 1),
110
+ (2, 2, 0, "alpha", 0),
111
+ CO_NESTED)
112
+
113
+ generators = _Feature((2, 2, 0, "alpha", 1),
114
+ (2, 3, 0, "final", 0),
115
+ CO_GENERATOR_ALLOWED)
116
+
117
+ division = _Feature((2, 2, 0, "alpha", 2),
118
+ (3, 0, 0, "alpha", 0),
119
+ CO_FUTURE_DIVISION)
120
+
121
+ absolute_import = _Feature((2, 5, 0, "alpha", 1),
122
+ (3, 0, 0, "alpha", 0),
123
+ CO_FUTURE_ABSOLUTE_IMPORT)
124
+
125
+ with_statement = _Feature((2, 5, 0, "alpha", 1),
126
+ (2, 6, 0, "alpha", 0),
127
+ CO_FUTURE_WITH_STATEMENT)
128
+
129
+ print_function = _Feature((2, 6, 0, "alpha", 2),
130
+ (3, 0, 0, "alpha", 0),
131
+ CO_FUTURE_PRINT_FUNCTION)
132
+
133
+ unicode_literals = _Feature((2, 6, 0, "alpha", 2),
134
+ (3, 0, 0, "alpha", 0),
135
+ CO_FUTURE_UNICODE_LITERALS)
136
+
137
+ barry_as_FLUFL = _Feature((3, 1, 0, "alpha", 2),
138
+ (4, 0, 0, "alpha", 0),
139
+ CO_FUTURE_BARRY_AS_BDFL)
140
+
141
+ generator_stop = _Feature((3, 5, 0, "beta", 1),
142
+ (3, 7, 0, "alpha", 0),
143
+ CO_FUTURE_GENERATOR_STOP)
144
+
145
+ annotations = _Feature((3, 7, 0, "beta", 1),
146
+ None,
147
+ CO_FUTURE_ANNOTATIONS)
@@ -0,0 +1,16 @@
1
+ initialized = True
2
+
3
+ class TestFrozenUtf8_1:
4
+ """\u00b6"""
5
+
6
+ class TestFrozenUtf8_2:
7
+ """\u03c0"""
8
+
9
+ class TestFrozenUtf8_4:
10
+ """\U0001f600"""
11
+
12
+ def main():
13
+ print("Hello world!")
14
+
15
+ if __name__ == '__main__':
16
+ main()
@@ -0,0 +1,108 @@
1
+ """Shared AIX support functions."""
2
+
3
+ import sys
4
+ import sysconfig
5
+
6
+
7
+ # Taken from _osx_support _read_output function
8
+ def _read_cmd_output(commandstring, capture_stderr=False):
9
+ """Output from successful command execution or None"""
10
+ # Similar to os.popen(commandstring, "r").read(),
11
+ # but without actually using os.popen because that
12
+ # function is not usable during python bootstrap.
13
+ import os
14
+ import contextlib
15
+ fp = open("/tmp/_aix_support.%s"%(
16
+ os.getpid(),), "w+b")
17
+
18
+ with contextlib.closing(fp) as fp:
19
+ if capture_stderr:
20
+ cmd = "%s >'%s' 2>&1" % (commandstring, fp.name)
21
+ else:
22
+ cmd = "%s 2>/dev/null >'%s'" % (commandstring, fp.name)
23
+ return fp.read() if not os.system(cmd) else None
24
+
25
+
26
+ def _aix_tag(vrtl, bd):
27
+ # type: (List[int], int) -> str
28
+ # Infer the ABI bitwidth from maxsize (assuming 64 bit as the default)
29
+ _sz = 32 if sys.maxsize == (2**31-1) else 64
30
+ _bd = bd if bd != 0 else 9988
31
+ # vrtl[version, release, technology_level]
32
+ return "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(vrtl[0], vrtl[1], vrtl[2], _bd, _sz)
33
+
34
+
35
+ # extract version, release and technology level from a VRMF string
36
+ def _aix_vrtl(vrmf):
37
+ # type: (str) -> List[int]
38
+ v, r, tl = vrmf.split(".")[:3]
39
+ return [int(v[-1]), int(r), int(tl)]
40
+
41
+
42
+ def _aix_bos_rte():
43
+ # type: () -> Tuple[str, int]
44
+ """
45
+ Return a Tuple[str, int] e.g., ['7.1.4.34', 1806]
46
+ The fileset bos.rte represents the current AIX run-time level. It's VRMF and
47
+ builddate reflect the current ABI levels of the runtime environment.
48
+ If no builddate is found give a value that will satisfy pep425 related queries
49
+ """
50
+ # All AIX systems to have lslpp installed in this location
51
+ # subprocess may not be available during python bootstrap
52
+ try:
53
+ import subprocess
54
+ out = subprocess.check_output(["/usr/bin/lslpp", "-Lqc", "bos.rte"])
55
+ except ImportError:
56
+ out = _read_cmd_output("/usr/bin/lslpp -Lqc bos.rte")
57
+ out = out.decode("utf-8")
58
+ out = out.strip().split(":") # type: ignore
59
+ _bd = int(out[-1]) if out[-1] != '' else 9988
60
+ return (str(out[2]), _bd)
61
+
62
+
63
+ def aix_platform():
64
+ # type: () -> str
65
+ """
66
+ AIX filesets are identified by four decimal values: V.R.M.F.
67
+ V (version) and R (release) can be retrieved using ``uname``
68
+ Since 2007, starting with AIX 5.3 TL7, the M value has been
69
+ included with the fileset bos.rte and represents the Technology
70
+ Level (TL) of AIX. The F (Fix) value also increases, but is not
71
+ relevant for comparing releases and binary compatibility.
72
+ For binary compatibility the so-called builddate is needed.
73
+ Again, the builddate of an AIX release is associated with bos.rte.
74
+ AIX ABI compatibility is described as guaranteed at: https://www.ibm.com/\
75
+ support/knowledgecenter/en/ssw_aix_72/install/binary_compatability.html
76
+
77
+ For pep425 purposes the AIX platform tag becomes:
78
+ "aix-{:1x}{:1d}{:02d}-{:04d}-{}".format(v, r, tl, builddate, bitsize)
79
+ e.g., "aix-6107-1415-32" for AIX 6.1 TL7 bd 1415, 32-bit
80
+ and, "aix-6107-1415-64" for AIX 6.1 TL7 bd 1415, 64-bit
81
+ """
82
+ vrmf, bd = _aix_bos_rte()
83
+ return _aix_tag(_aix_vrtl(vrmf), bd)
84
+
85
+
86
+ # extract vrtl from the BUILD_GNU_TYPE as an int
87
+ def _aix_bgt():
88
+ # type: () -> List[int]
89
+ gnu_type = sysconfig.get_config_var("BUILD_GNU_TYPE")
90
+ if not gnu_type:
91
+ raise ValueError("BUILD_GNU_TYPE is not defined")
92
+ return _aix_vrtl(vrmf=gnu_type)
93
+
94
+
95
+ def aix_buildtag():
96
+ # type: () -> str
97
+ """
98
+ Return the platform_tag of the system Python was built on.
99
+ """
100
+ # AIX_BUILDDATE is defined by configure with:
101
+ # lslpp -Lcq bos.rte | awk -F: '{ print $NF }'
102
+ build_date = sysconfig.get_config_var("AIX_BUILDDATE")
103
+ try:
104
+ build_date = int(build_date)
105
+ except (ValueError, TypeError):
106
+ raise ValueError(f"AIX_BUILDDATE is not defined or invalid: "
107
+ f"{build_date!r}")
108
+ return _aix_tag(_aix_bgt(), build_date)
@@ -0,0 +1,192 @@
1
+ import io
2
+ import sys
3
+ from threading import RLock
4
+ from time import sleep, time
5
+
6
+ # The maximum length of a log message in bytes, including the level marker and
7
+ # tag, is defined as LOGGER_ENTRY_MAX_PAYLOAD at
8
+ # https://cs.android.com/android/platform/superproject/+/android-14.0.0_r1:system/logging/liblog/include/log/log.h;l=71.
9
+ # Messages longer than this will be truncated by logcat. This limit has already
10
+ # been reduced at least once in the history of Android (from 4076 to 4068 between
11
+ # API level 23 and 26), so leave some headroom.
12
+ MAX_BYTES_PER_WRITE = 4000
13
+
14
+ # UTF-8 uses a maximum of 4 bytes per character, so limiting text writes to this
15
+ # size ensures that we can always avoid exceeding MAX_BYTES_PER_WRITE.
16
+ # However, if the actual number of bytes per character is smaller than that,
17
+ # then we may still join multiple consecutive text writes into binary
18
+ # writes containing a larger number of characters.
19
+ MAX_CHARS_PER_WRITE = MAX_BYTES_PER_WRITE // 4
20
+
21
+
22
+ # When embedded in an app on current versions of Android, there's no easy way to
23
+ # monitor the C-level stdout and stderr. The testbed comes with a .c file to
24
+ # redirect them to the system log using a pipe, but that wouldn't be convenient
25
+ # or appropriate for all apps. So we redirect at the Python level instead.
26
+ def init_streams(android_log_write, stdout_prio, stderr_prio):
27
+ if sys.executable:
28
+ return # Not embedded in an app.
29
+
30
+ global logcat
31
+ logcat = Logcat(android_log_write)
32
+ sys.stdout = TextLogStream(stdout_prio, "python.stdout", sys.stdout)
33
+ sys.stderr = TextLogStream(stderr_prio, "python.stderr", sys.stderr)
34
+
35
+
36
+ class TextLogStream(io.TextIOWrapper):
37
+ def __init__(self, prio, tag, original=None, **kwargs):
38
+ # Respect the -u option.
39
+ if original:
40
+ kwargs.setdefault("write_through", original.write_through)
41
+ fileno = original.fileno()
42
+ else:
43
+ fileno = None
44
+
45
+ # The default is surrogateescape for stdout and backslashreplace for
46
+ # stderr, but in the context of an Android log, readability is more
47
+ # important than reversibility.
48
+ kwargs.setdefault("encoding", "UTF-8")
49
+ kwargs.setdefault("errors", "backslashreplace")
50
+
51
+ super().__init__(BinaryLogStream(prio, tag, fileno), **kwargs)
52
+ self._lock = RLock()
53
+ self._pending_bytes = []
54
+ self._pending_bytes_count = 0
55
+
56
+ def __repr__(self):
57
+ return f"<TextLogStream {self.buffer.tag!r}>"
58
+
59
+ def write(self, s):
60
+ if not isinstance(s, str):
61
+ raise TypeError(
62
+ f"write() argument must be str, not {type(s).__name__}")
63
+
64
+ # In case `s` is a str subclass that writes itself to stdout or stderr
65
+ # when we call its methods, convert it to an actual str.
66
+ s = str.__str__(s)
67
+
68
+ # We want to emit one log message per line wherever possible, so split
69
+ # the string into lines first. Note that "".splitlines() == [], so
70
+ # nothing will be logged for an empty string.
71
+ with self._lock:
72
+ for line in s.splitlines(keepends=True):
73
+ while line:
74
+ chunk = line[:MAX_CHARS_PER_WRITE]
75
+ line = line[MAX_CHARS_PER_WRITE:]
76
+ self._write_chunk(chunk)
77
+
78
+ return len(s)
79
+
80
+ # The size and behavior of TextIOWrapper's buffer is not part of its public
81
+ # API, so we handle buffering ourselves to avoid truncation.
82
+ def _write_chunk(self, s):
83
+ b = s.encode(self.encoding, self.errors)
84
+ if self._pending_bytes_count + len(b) > MAX_BYTES_PER_WRITE:
85
+ self.flush()
86
+
87
+ self._pending_bytes.append(b)
88
+ self._pending_bytes_count += len(b)
89
+ if (
90
+ self.write_through
91
+ or b.endswith(b"\n")
92
+ or self._pending_bytes_count > MAX_BYTES_PER_WRITE
93
+ ):
94
+ self.flush()
95
+
96
+ def flush(self):
97
+ with self._lock:
98
+ self.buffer.write(b"".join(self._pending_bytes))
99
+ self._pending_bytes.clear()
100
+ self._pending_bytes_count = 0
101
+
102
+ # Since this is a line-based logging system, line buffering cannot be turned
103
+ # off, i.e. a newline always causes a flush.
104
+ @property
105
+ def line_buffering(self):
106
+ return True
107
+
108
+
109
+ class BinaryLogStream(io.RawIOBase):
110
+ def __init__(self, prio, tag, fileno=None):
111
+ self.prio = prio
112
+ self.tag = tag
113
+ self._fileno = fileno
114
+
115
+ def __repr__(self):
116
+ return f"<BinaryLogStream {self.tag!r}>"
117
+
118
+ def writable(self):
119
+ return True
120
+
121
+ def write(self, b):
122
+ if type(b) is not bytes:
123
+ try:
124
+ b = bytes(memoryview(b))
125
+ except TypeError:
126
+ raise TypeError(
127
+ f"write() argument must be bytes-like, not {type(b).__name__}"
128
+ ) from None
129
+
130
+ # Writing an empty string to the stream should have no effect.
131
+ if b:
132
+ logcat.write(self.prio, self.tag, b)
133
+ return len(b)
134
+
135
+ # This is needed by the test suite --timeout option, which uses faulthandler.
136
+ def fileno(self):
137
+ if self._fileno is None:
138
+ raise io.UnsupportedOperation("fileno")
139
+ return self._fileno
140
+
141
+
142
+ # When a large volume of data is written to logcat at once, e.g. when a test
143
+ # module fails in --verbose3 mode, there's a risk of overflowing logcat's own
144
+ # buffer and losing messages. We avoid this by imposing a rate limit using the
145
+ # token bucket algorithm, based on a conservative estimate of how fast `adb
146
+ # logcat` can consume data.
147
+ MAX_BYTES_PER_SECOND = 1024 * 1024
148
+
149
+ # The logcat buffer size of a device can be determined by running `logcat -g`.
150
+ # We set the token bucket size to half of the buffer size of our current minimum
151
+ # API level, because other things on the system will be producing messages as
152
+ # well.
153
+ BUCKET_SIZE = 128 * 1024
154
+
155
+ # https://cs.android.com/android/platform/superproject/+/android-14.0.0_r1:system/logging/liblog/include/log/log_read.h;l=39
156
+ PER_MESSAGE_OVERHEAD = 28
157
+
158
+
159
+ class Logcat:
160
+ def __init__(self, android_log_write):
161
+ self.android_log_write = android_log_write
162
+ self._lock = RLock()
163
+ self._bucket_level = 0
164
+ self._prev_write_time = time()
165
+
166
+ def write(self, prio, tag, message):
167
+ # Encode null bytes using "modified UTF-8" to avoid them truncating the
168
+ # message.
169
+ message = message.replace(b"\x00", b"\xc0\x80")
170
+
171
+ # On API level 30 and higher, Logcat will strip any number of leading
172
+ # newlines. This is visible in all `logcat` modes, even --binary. Work
173
+ # around this by adding a leading space, which shouldn't make any
174
+ # difference to the log's usability.
175
+ if message.startswith(b"\n"):
176
+ message = b" " + message
177
+
178
+ with self._lock:
179
+ now = time()
180
+ self._bucket_level += (
181
+ (now - self._prev_write_time) * MAX_BYTES_PER_SECOND)
182
+
183
+ # If the bucket level is still below zero, the clock must have gone
184
+ # backwards, so reset it to zero and continue.
185
+ self._bucket_level = max(0, min(self._bucket_level, BUCKET_SIZE))
186
+ self._prev_write_time = now
187
+
188
+ self._bucket_level -= PER_MESSAGE_OVERHEAD + len(tag) + len(message)
189
+ if self._bucket_level < 0:
190
+ sleep(-self._bucket_level / MAX_BYTES_PER_SECOND)
191
+
192
+ self.android_log_write(prio, tag, message)
@@ -0,0 +1,66 @@
1
+ import io
2
+ import sys
3
+
4
+
5
+ def init_streams(log_write, stdout_level, stderr_level):
6
+ # Redirect stdout and stderr to the Apple system log. This method is
7
+ # invoked by init_apple_streams() (initconfig.c) if config->use_system_logger
8
+ # is enabled.
9
+ sys.stdout = SystemLog(log_write, stdout_level, errors=sys.stderr.errors)
10
+ sys.stderr = SystemLog(log_write, stderr_level, errors=sys.stderr.errors)
11
+
12
+
13
+ class SystemLog(io.TextIOWrapper):
14
+ def __init__(self, log_write, level, **kwargs):
15
+ kwargs.setdefault("encoding", "UTF-8")
16
+ kwargs.setdefault("line_buffering", True)
17
+ super().__init__(LogStream(log_write, level), **kwargs)
18
+
19
+ def __repr__(self):
20
+ return f"<SystemLog (level {self.buffer.level})>"
21
+
22
+ def write(self, s):
23
+ if not isinstance(s, str):
24
+ raise TypeError(
25
+ f"write() argument must be str, not {type(s).__name__}")
26
+
27
+ # In case `s` is a str subclass that writes itself to stdout or stderr
28
+ # when we call its methods, convert it to an actual str.
29
+ s = str.__str__(s)
30
+
31
+ # We want to emit one log message per line, so split
32
+ # the string before sending it to the superclass.
33
+ for line in s.splitlines(keepends=True):
34
+ super().write(line)
35
+
36
+ return len(s)
37
+
38
+
39
+ class LogStream(io.RawIOBase):
40
+ def __init__(self, log_write, level):
41
+ self.log_write = log_write
42
+ self.level = level
43
+
44
+ def __repr__(self):
45
+ return f"<LogStream (level {self.level!r})>"
46
+
47
+ def writable(self):
48
+ return True
49
+
50
+ def write(self, b):
51
+ if type(b) is not bytes:
52
+ try:
53
+ b = bytes(memoryview(b))
54
+ except TypeError:
55
+ raise TypeError(
56
+ f"write() argument must be bytes-like, not {type(b).__name__}"
57
+ ) from None
58
+
59
+ # Writing an empty string to the stream should have no effect.
60
+ if b:
61
+ # Encode null bytes using "modified UTF-8" to avoid truncating the
62
+ # message. This should not affect the return value, as the caller
63
+ # may be expecting it to match the length of the input.
64
+ self.log_write(self.level, b.replace(b"\x00", b"\xc0\x80"))
65
+
66
+ return len(b)