@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,658 @@
1
+ # Author: Fred L. Drake, Jr.
2
+ # fdrake@acm.org
3
+ #
4
+ # This is a simple little module I wrote to make life easier. I didn't
5
+ # see anything quite like it in the library, though I may have overlooked
6
+ # something. I wrote this when I was trying to read some heavily nested
7
+ # tuples with fairly non-descriptive content. This is modeled very much
8
+ # after Lisp/Scheme - style pretty-printing of lists. If you find it
9
+ # useful, thank small children who sleep at night.
10
+
11
+ """Support to pretty-print lists, tuples, & dictionaries recursively.
12
+
13
+ Very simple, but useful, especially in debugging data structures.
14
+
15
+ Classes
16
+ -------
17
+
18
+ PrettyPrinter()
19
+ Handle pretty-printing operations onto a stream using a configured
20
+ set of formatting parameters.
21
+
22
+ Functions
23
+ ---------
24
+
25
+ pformat()
26
+ Format a Python object into a pretty-printed representation.
27
+
28
+ pprint()
29
+ Pretty-print a Python object to a stream [default is sys.stdout].
30
+
31
+ saferepr()
32
+ Generate a 'standard' repr()-like value, but protect against recursive
33
+ data structures.
34
+
35
+ """
36
+
37
+ import collections as _collections
38
+ import dataclasses as _dataclasses
39
+ import re
40
+ import sys as _sys
41
+ import types as _types
42
+ from io import StringIO as _StringIO
43
+
44
+ __all__ = ["pprint","pformat","isreadable","isrecursive","saferepr",
45
+ "PrettyPrinter", "pp"]
46
+
47
+
48
+ def pprint(object, stream=None, indent=1, width=80, depth=None, *,
49
+ compact=False, sort_dicts=True, underscore_numbers=False):
50
+ """Pretty-print a Python object to a stream [default is sys.stdout]."""
51
+ printer = PrettyPrinter(
52
+ stream=stream, indent=indent, width=width, depth=depth,
53
+ compact=compact, sort_dicts=sort_dicts,
54
+ underscore_numbers=underscore_numbers)
55
+ printer.pprint(object)
56
+
57
+ def pformat(object, indent=1, width=80, depth=None, *,
58
+ compact=False, sort_dicts=True, underscore_numbers=False):
59
+ """Format a Python object into a pretty-printed representation."""
60
+ return PrettyPrinter(indent=indent, width=width, depth=depth,
61
+ compact=compact, sort_dicts=sort_dicts,
62
+ underscore_numbers=underscore_numbers).pformat(object)
63
+
64
+ def pp(object, *args, sort_dicts=False, **kwargs):
65
+ """Pretty-print a Python object"""
66
+ pprint(object, *args, sort_dicts=sort_dicts, **kwargs)
67
+
68
+ def saferepr(object):
69
+ """Version of repr() which can handle recursive data structures."""
70
+ return PrettyPrinter()._safe_repr(object, {}, None, 0)[0]
71
+
72
+ def isreadable(object):
73
+ """Determine if saferepr(object) is readable by eval()."""
74
+ return PrettyPrinter()._safe_repr(object, {}, None, 0)[1]
75
+
76
+ def isrecursive(object):
77
+ """Determine if object requires a recursive representation."""
78
+ return PrettyPrinter()._safe_repr(object, {}, None, 0)[2]
79
+
80
+ class _safe_key:
81
+ """Helper function for key functions when sorting unorderable objects.
82
+
83
+ The wrapped-object will fallback to a Py2.x style comparison for
84
+ unorderable types (sorting first comparing the type name and then by
85
+ the obj ids). Does not work recursively, so dict.items() must have
86
+ _safe_key applied to both the key and the value.
87
+
88
+ """
89
+
90
+ __slots__ = ['obj']
91
+
92
+ def __init__(self, obj):
93
+ self.obj = obj
94
+
95
+ def __lt__(self, other):
96
+ try:
97
+ return self.obj < other.obj
98
+ except TypeError:
99
+ return ((str(type(self.obj)), id(self.obj)) < \
100
+ (str(type(other.obj)), id(other.obj)))
101
+
102
+ def _safe_tuple(t):
103
+ "Helper function for comparing 2-tuples"
104
+ return _safe_key(t[0]), _safe_key(t[1])
105
+
106
+ class PrettyPrinter:
107
+ def __init__(self, indent=1, width=80, depth=None, stream=None, *,
108
+ compact=False, sort_dicts=True, underscore_numbers=False):
109
+ """Handle pretty printing operations onto a stream using a set of
110
+ configured parameters.
111
+
112
+ indent
113
+ Number of spaces to indent for each level of nesting.
114
+
115
+ width
116
+ Attempted maximum number of columns in the output.
117
+
118
+ depth
119
+ The maximum depth to print out nested structures.
120
+
121
+ stream
122
+ The desired output stream. If omitted (or false), the standard
123
+ output stream available at construction will be used.
124
+
125
+ compact
126
+ If true, several items will be combined in one line.
127
+
128
+ sort_dicts
129
+ If true, dict keys are sorted.
130
+
131
+ underscore_numbers
132
+ If true, digit groups are separated with underscores.
133
+
134
+ """
135
+ indent = int(indent)
136
+ width = int(width)
137
+ if indent < 0:
138
+ raise ValueError('indent must be >= 0')
139
+ if depth is not None and depth <= 0:
140
+ raise ValueError('depth must be > 0')
141
+ if not width:
142
+ raise ValueError('width must be != 0')
143
+ self._depth = depth
144
+ self._indent_per_level = indent
145
+ self._width = width
146
+ if stream is not None:
147
+ self._stream = stream
148
+ else:
149
+ self._stream = _sys.stdout
150
+ self._compact = bool(compact)
151
+ self._sort_dicts = sort_dicts
152
+ self._underscore_numbers = underscore_numbers
153
+
154
+ def pprint(self, object):
155
+ if self._stream is not None:
156
+ self._format(object, self._stream, 0, 0, {}, 0)
157
+ self._stream.write("\n")
158
+
159
+ def pformat(self, object):
160
+ sio = _StringIO()
161
+ self._format(object, sio, 0, 0, {}, 0)
162
+ return sio.getvalue()
163
+
164
+ def isrecursive(self, object):
165
+ return self.format(object, {}, 0, 0)[2]
166
+
167
+ def isreadable(self, object):
168
+ s, readable, recursive = self.format(object, {}, 0, 0)
169
+ return readable and not recursive
170
+
171
+ def _format(self, object, stream, indent, allowance, context, level):
172
+ objid = id(object)
173
+ if objid in context:
174
+ stream.write(_recursion(object))
175
+ self._recursive = True
176
+ self._readable = False
177
+ return
178
+ rep = self._repr(object, context, level)
179
+ max_width = self._width - indent - allowance
180
+ if len(rep) > max_width:
181
+ p = self._dispatch.get(type(object).__repr__, None)
182
+ if p is not None:
183
+ context[objid] = 1
184
+ p(self, object, stream, indent, allowance, context, level + 1)
185
+ del context[objid]
186
+ return
187
+ elif (_dataclasses.is_dataclass(object) and
188
+ not isinstance(object, type) and
189
+ object.__dataclass_params__.repr and
190
+ # Check dataclass has generated repr method.
191
+ hasattr(object.__repr__, "__wrapped__") and
192
+ "__create_fn__" in object.__repr__.__wrapped__.__qualname__):
193
+ context[objid] = 1
194
+ self._pprint_dataclass(object, stream, indent, allowance, context, level + 1)
195
+ del context[objid]
196
+ return
197
+ stream.write(rep)
198
+
199
+ def _pprint_dataclass(self, object, stream, indent, allowance, context, level):
200
+ cls_name = object.__class__.__name__
201
+ indent += len(cls_name) + 1
202
+ items = [(f.name, getattr(object, f.name)) for f in _dataclasses.fields(object) if f.repr]
203
+ stream.write(cls_name + '(')
204
+ self._format_namespace_items(items, stream, indent, allowance, context, level)
205
+ stream.write(')')
206
+
207
+ _dispatch = {}
208
+
209
+ def _pprint_dict(self, object, stream, indent, allowance, context, level):
210
+ write = stream.write
211
+ write('{')
212
+ if self._indent_per_level > 1:
213
+ write((self._indent_per_level - 1) * ' ')
214
+ length = len(object)
215
+ if length:
216
+ if self._sort_dicts:
217
+ items = sorted(object.items(), key=_safe_tuple)
218
+ else:
219
+ items = object.items()
220
+ self._format_dict_items(items, stream, indent, allowance + 1,
221
+ context, level)
222
+ write('}')
223
+
224
+ _dispatch[dict.__repr__] = _pprint_dict
225
+
226
+ def _pprint_ordered_dict(self, object, stream, indent, allowance, context, level):
227
+ if not len(object):
228
+ stream.write(repr(object))
229
+ return
230
+ cls = object.__class__
231
+ stream.write(cls.__name__ + '(')
232
+ self._format(list(object.items()), stream,
233
+ indent + len(cls.__name__) + 1, allowance + 1,
234
+ context, level)
235
+ stream.write(')')
236
+
237
+ _dispatch[_collections.OrderedDict.__repr__] = _pprint_ordered_dict
238
+
239
+ def _pprint_list(self, object, stream, indent, allowance, context, level):
240
+ stream.write('[')
241
+ self._format_items(object, stream, indent, allowance + 1,
242
+ context, level)
243
+ stream.write(']')
244
+
245
+ _dispatch[list.__repr__] = _pprint_list
246
+
247
+ def _pprint_tuple(self, object, stream, indent, allowance, context, level):
248
+ stream.write('(')
249
+ endchar = ',)' if len(object) == 1 else ')'
250
+ self._format_items(object, stream, indent, allowance + len(endchar),
251
+ context, level)
252
+ stream.write(endchar)
253
+
254
+ _dispatch[tuple.__repr__] = _pprint_tuple
255
+
256
+ def _pprint_set(self, object, stream, indent, allowance, context, level):
257
+ if not len(object):
258
+ stream.write(repr(object))
259
+ return
260
+ typ = object.__class__
261
+ if typ is set:
262
+ stream.write('{')
263
+ endchar = '}'
264
+ else:
265
+ stream.write(typ.__name__ + '({')
266
+ endchar = '})'
267
+ indent += len(typ.__name__) + 1
268
+ object = sorted(object, key=_safe_key)
269
+ self._format_items(object, stream, indent, allowance + len(endchar),
270
+ context, level)
271
+ stream.write(endchar)
272
+
273
+ _dispatch[set.__repr__] = _pprint_set
274
+ _dispatch[frozenset.__repr__] = _pprint_set
275
+
276
+ def _pprint_str(self, object, stream, indent, allowance, context, level):
277
+ write = stream.write
278
+ if not len(object):
279
+ write(repr(object))
280
+ return
281
+ chunks = []
282
+ lines = object.splitlines(True)
283
+ if level == 1:
284
+ indent += 1
285
+ allowance += 1
286
+ max_width1 = max_width = self._width - indent
287
+ for i, line in enumerate(lines):
288
+ rep = repr(line)
289
+ if i == len(lines) - 1:
290
+ max_width1 -= allowance
291
+ if len(rep) <= max_width1:
292
+ chunks.append(rep)
293
+ else:
294
+ # A list of alternating (non-space, space) strings
295
+ parts = re.findall(r'\S*\s*', line)
296
+ assert parts
297
+ assert not parts[-1]
298
+ parts.pop() # drop empty last part
299
+ max_width2 = max_width
300
+ current = ''
301
+ for j, part in enumerate(parts):
302
+ candidate = current + part
303
+ if j == len(parts) - 1 and i == len(lines) - 1:
304
+ max_width2 -= allowance
305
+ if len(repr(candidate)) > max_width2:
306
+ if current:
307
+ chunks.append(repr(current))
308
+ current = part
309
+ else:
310
+ current = candidate
311
+ if current:
312
+ chunks.append(repr(current))
313
+ if len(chunks) == 1:
314
+ write(rep)
315
+ return
316
+ if level == 1:
317
+ write('(')
318
+ for i, rep in enumerate(chunks):
319
+ if i > 0:
320
+ write('\n' + ' '*indent)
321
+ write(rep)
322
+ if level == 1:
323
+ write(')')
324
+
325
+ _dispatch[str.__repr__] = _pprint_str
326
+
327
+ def _pprint_bytes(self, object, stream, indent, allowance, context, level):
328
+ write = stream.write
329
+ if len(object) <= 4:
330
+ write(repr(object))
331
+ return
332
+ parens = level == 1
333
+ if parens:
334
+ indent += 1
335
+ allowance += 1
336
+ write('(')
337
+ delim = ''
338
+ for rep in _wrap_bytes_repr(object, self._width - indent, allowance):
339
+ write(delim)
340
+ write(rep)
341
+ if not delim:
342
+ delim = '\n' + ' '*indent
343
+ if parens:
344
+ write(')')
345
+
346
+ _dispatch[bytes.__repr__] = _pprint_bytes
347
+
348
+ def _pprint_bytearray(self, object, stream, indent, allowance, context, level):
349
+ write = stream.write
350
+ write('bytearray(')
351
+ self._pprint_bytes(bytes(object), stream, indent + 10,
352
+ allowance + 1, context, level + 1)
353
+ write(')')
354
+
355
+ _dispatch[bytearray.__repr__] = _pprint_bytearray
356
+
357
+ def _pprint_mappingproxy(self, object, stream, indent, allowance, context, level):
358
+ stream.write('mappingproxy(')
359
+ self._format(object.copy(), stream, indent + 13, allowance + 1,
360
+ context, level)
361
+ stream.write(')')
362
+
363
+ _dispatch[_types.MappingProxyType.__repr__] = _pprint_mappingproxy
364
+
365
+ def _pprint_simplenamespace(self, object, stream, indent, allowance, context, level):
366
+ if type(object) is _types.SimpleNamespace:
367
+ # The SimpleNamespace repr is "namespace" instead of the class
368
+ # name, so we do the same here. For subclasses; use the class name.
369
+ cls_name = 'namespace'
370
+ else:
371
+ cls_name = object.__class__.__name__
372
+ indent += len(cls_name) + 1
373
+ items = object.__dict__.items()
374
+ stream.write(cls_name + '(')
375
+ self._format_namespace_items(items, stream, indent, allowance, context, level)
376
+ stream.write(')')
377
+
378
+ _dispatch[_types.SimpleNamespace.__repr__] = _pprint_simplenamespace
379
+
380
+ def _format_dict_items(self, items, stream, indent, allowance, context,
381
+ level):
382
+ write = stream.write
383
+ indent += self._indent_per_level
384
+ delimnl = ',\n' + ' ' * indent
385
+ last_index = len(items) - 1
386
+ for i, (key, ent) in enumerate(items):
387
+ last = i == last_index
388
+ rep = self._repr(key, context, level)
389
+ write(rep)
390
+ write(': ')
391
+ self._format(ent, stream, indent + len(rep) + 2,
392
+ allowance if last else 1,
393
+ context, level)
394
+ if not last:
395
+ write(delimnl)
396
+
397
+ def _format_namespace_items(self, items, stream, indent, allowance, context, level):
398
+ write = stream.write
399
+ delimnl = ',\n' + ' ' * indent
400
+ last_index = len(items) - 1
401
+ for i, (key, ent) in enumerate(items):
402
+ last = i == last_index
403
+ write(key)
404
+ write('=')
405
+ if id(ent) in context:
406
+ # Special-case representation of recursion to match standard
407
+ # recursive dataclass repr.
408
+ write("...")
409
+ else:
410
+ self._format(ent, stream, indent + len(key) + 1,
411
+ allowance if last else 1,
412
+ context, level)
413
+ if not last:
414
+ write(delimnl)
415
+
416
+ def _format_items(self, items, stream, indent, allowance, context, level):
417
+ write = stream.write
418
+ indent += self._indent_per_level
419
+ if self._indent_per_level > 1:
420
+ write((self._indent_per_level - 1) * ' ')
421
+ delimnl = ',\n' + ' ' * indent
422
+ delim = ''
423
+ width = max_width = self._width - indent + 1
424
+ it = iter(items)
425
+ try:
426
+ next_ent = next(it)
427
+ except StopIteration:
428
+ return
429
+ last = False
430
+ while not last:
431
+ ent = next_ent
432
+ try:
433
+ next_ent = next(it)
434
+ except StopIteration:
435
+ last = True
436
+ max_width -= allowance
437
+ width -= allowance
438
+ if self._compact:
439
+ rep = self._repr(ent, context, level)
440
+ w = len(rep) + 2
441
+ if width < w:
442
+ width = max_width
443
+ if delim:
444
+ delim = delimnl
445
+ if width >= w:
446
+ width -= w
447
+ write(delim)
448
+ delim = ', '
449
+ write(rep)
450
+ continue
451
+ write(delim)
452
+ delim = delimnl
453
+ self._format(ent, stream, indent,
454
+ allowance if last else 1,
455
+ context, level)
456
+
457
+ def _repr(self, object, context, level):
458
+ repr, readable, recursive = self.format(object, context.copy(),
459
+ self._depth, level)
460
+ if not readable:
461
+ self._readable = False
462
+ if recursive:
463
+ self._recursive = True
464
+ return repr
465
+
466
+ def format(self, object, context, maxlevels, level):
467
+ """Format object for a specific context, returning a string
468
+ and flags indicating whether the representation is 'readable'
469
+ and whether the object represents a recursive construct.
470
+ """
471
+ return self._safe_repr(object, context, maxlevels, level)
472
+
473
+ def _pprint_default_dict(self, object, stream, indent, allowance, context, level):
474
+ if not len(object):
475
+ stream.write(repr(object))
476
+ return
477
+ rdf = self._repr(object.default_factory, context, level)
478
+ cls = object.__class__
479
+ indent += len(cls.__name__) + 1
480
+ stream.write('%s(%s,\n%s' % (cls.__name__, rdf, ' ' * indent))
481
+ self._pprint_dict(object, stream, indent, allowance + 1, context, level)
482
+ stream.write(')')
483
+
484
+ _dispatch[_collections.defaultdict.__repr__] = _pprint_default_dict
485
+
486
+ def _pprint_counter(self, object, stream, indent, allowance, context, level):
487
+ if not len(object):
488
+ stream.write(repr(object))
489
+ return
490
+ cls = object.__class__
491
+ stream.write(cls.__name__ + '({')
492
+ if self._indent_per_level > 1:
493
+ stream.write((self._indent_per_level - 1) * ' ')
494
+ items = object.most_common()
495
+ self._format_dict_items(items, stream,
496
+ indent + len(cls.__name__) + 1, allowance + 2,
497
+ context, level)
498
+ stream.write('})')
499
+
500
+ _dispatch[_collections.Counter.__repr__] = _pprint_counter
501
+
502
+ def _pprint_chain_map(self, object, stream, indent, allowance, context, level):
503
+ if not len(object.maps):
504
+ stream.write(repr(object))
505
+ return
506
+ cls = object.__class__
507
+ stream.write(cls.__name__ + '(')
508
+ indent += len(cls.__name__) + 1
509
+ for i, m in enumerate(object.maps):
510
+ if i == len(object.maps) - 1:
511
+ self._format(m, stream, indent, allowance + 1, context, level)
512
+ stream.write(')')
513
+ else:
514
+ self._format(m, stream, indent, 1, context, level)
515
+ stream.write(',\n' + ' ' * indent)
516
+
517
+ _dispatch[_collections.ChainMap.__repr__] = _pprint_chain_map
518
+
519
+ def _pprint_deque(self, object, stream, indent, allowance, context, level):
520
+ if not len(object):
521
+ stream.write(repr(object))
522
+ return
523
+ cls = object.__class__
524
+ stream.write(cls.__name__ + '(')
525
+ indent += len(cls.__name__) + 1
526
+ stream.write('[')
527
+ if object.maxlen is None:
528
+ self._format_items(object, stream, indent, allowance + 2,
529
+ context, level)
530
+ stream.write('])')
531
+ else:
532
+ self._format_items(object, stream, indent, 2,
533
+ context, level)
534
+ rml = self._repr(object.maxlen, context, level)
535
+ stream.write('],\n%smaxlen=%s)' % (' ' * indent, rml))
536
+
537
+ _dispatch[_collections.deque.__repr__] = _pprint_deque
538
+
539
+ def _pprint_user_dict(self, object, stream, indent, allowance, context, level):
540
+ self._format(object.data, stream, indent, allowance, context, level - 1)
541
+
542
+ _dispatch[_collections.UserDict.__repr__] = _pprint_user_dict
543
+
544
+ def _pprint_user_list(self, object, stream, indent, allowance, context, level):
545
+ self._format(object.data, stream, indent, allowance, context, level - 1)
546
+
547
+ _dispatch[_collections.UserList.__repr__] = _pprint_user_list
548
+
549
+ def _pprint_user_string(self, object, stream, indent, allowance, context, level):
550
+ self._format(object.data, stream, indent, allowance, context, level - 1)
551
+
552
+ _dispatch[_collections.UserString.__repr__] = _pprint_user_string
553
+
554
+ def _safe_repr(self, object, context, maxlevels, level):
555
+ # Return triple (repr_string, isreadable, isrecursive).
556
+ typ = type(object)
557
+ if typ in _builtin_scalars:
558
+ return repr(object), True, False
559
+
560
+ r = getattr(typ, "__repr__", None)
561
+
562
+ if issubclass(typ, int) and r is int.__repr__:
563
+ if self._underscore_numbers:
564
+ return f"{object:_d}", True, False
565
+ else:
566
+ return repr(object), True, False
567
+
568
+ if issubclass(typ, dict) and r is dict.__repr__:
569
+ if not object:
570
+ return "{}", True, False
571
+ objid = id(object)
572
+ if maxlevels and level >= maxlevels:
573
+ return "{...}", False, objid in context
574
+ if objid in context:
575
+ return _recursion(object), False, True
576
+ context[objid] = 1
577
+ readable = True
578
+ recursive = False
579
+ components = []
580
+ append = components.append
581
+ level += 1
582
+ if self._sort_dicts:
583
+ items = sorted(object.items(), key=_safe_tuple)
584
+ else:
585
+ items = object.items()
586
+ for k, v in items:
587
+ krepr, kreadable, krecur = self.format(
588
+ k, context, maxlevels, level)
589
+ vrepr, vreadable, vrecur = self.format(
590
+ v, context, maxlevels, level)
591
+ append("%s: %s" % (krepr, vrepr))
592
+ readable = readable and kreadable and vreadable
593
+ if krecur or vrecur:
594
+ recursive = True
595
+ del context[objid]
596
+ return "{%s}" % ", ".join(components), readable, recursive
597
+
598
+ if (issubclass(typ, list) and r is list.__repr__) or \
599
+ (issubclass(typ, tuple) and r is tuple.__repr__):
600
+ if issubclass(typ, list):
601
+ if not object:
602
+ return "[]", True, False
603
+ format = "[%s]"
604
+ elif len(object) == 1:
605
+ format = "(%s,)"
606
+ else:
607
+ if not object:
608
+ return "()", True, False
609
+ format = "(%s)"
610
+ objid = id(object)
611
+ if maxlevels and level >= maxlevels:
612
+ return format % "...", False, objid in context
613
+ if objid in context:
614
+ return _recursion(object), False, True
615
+ context[objid] = 1
616
+ readable = True
617
+ recursive = False
618
+ components = []
619
+ append = components.append
620
+ level += 1
621
+ for o in object:
622
+ orepr, oreadable, orecur = self.format(
623
+ o, context, maxlevels, level)
624
+ append(orepr)
625
+ if not oreadable:
626
+ readable = False
627
+ if orecur:
628
+ recursive = True
629
+ del context[objid]
630
+ return format % ", ".join(components), readable, recursive
631
+
632
+ rep = repr(object)
633
+ return rep, (rep and not rep.startswith('<')), False
634
+
635
+ _builtin_scalars = frozenset({str, bytes, bytearray, float, complex,
636
+ bool, type(None)})
637
+
638
+ def _recursion(object):
639
+ return ("<Recursion on %s with id=%s>"
640
+ % (type(object).__name__, id(object)))
641
+
642
+
643
+ def _wrap_bytes_repr(object, width, allowance):
644
+ current = b''
645
+ last = len(object) // 4 * 4
646
+ for i in range(0, len(object), 4):
647
+ part = object[i: i+4]
648
+ candidate = current + part
649
+ if i == last:
650
+ width -= allowance
651
+ if len(repr(candidate)) > width:
652
+ if current:
653
+ yield repr(current)
654
+ current = part
655
+ else:
656
+ current = candidate
657
+ if current:
658
+ yield repr(current)