@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,560 @@
1
+ from collections.abc import Sequence, Iterable
2
+ from functools import total_ordering
3
+ import fnmatch
4
+ import linecache
5
+ import os.path
6
+ import pickle
7
+
8
+ # Import types and functions implemented in C
9
+ from _tracemalloc import *
10
+ from _tracemalloc import _get_object_traceback, _get_traces
11
+
12
+
13
+ def _format_size(size, sign):
14
+ for unit in ('B', 'KiB', 'MiB', 'GiB', 'TiB'):
15
+ if abs(size) < 100 and unit != 'B':
16
+ # 3 digits (xx.x UNIT)
17
+ if sign:
18
+ return "%+.1f %s" % (size, unit)
19
+ else:
20
+ return "%.1f %s" % (size, unit)
21
+ if abs(size) < 10 * 1024 or unit == 'TiB':
22
+ # 4 or 5 digits (xxxx UNIT)
23
+ if sign:
24
+ return "%+.0f %s" % (size, unit)
25
+ else:
26
+ return "%.0f %s" % (size, unit)
27
+ size /= 1024
28
+
29
+
30
+ class Statistic:
31
+ """
32
+ Statistic difference on memory allocations between two Snapshot instance.
33
+ """
34
+
35
+ __slots__ = ('traceback', 'size', 'count')
36
+
37
+ def __init__(self, traceback, size, count):
38
+ self.traceback = traceback
39
+ self.size = size
40
+ self.count = count
41
+
42
+ def __hash__(self):
43
+ return hash((self.traceback, self.size, self.count))
44
+
45
+ def __eq__(self, other):
46
+ if not isinstance(other, Statistic):
47
+ return NotImplemented
48
+ return (self.traceback == other.traceback
49
+ and self.size == other.size
50
+ and self.count == other.count)
51
+
52
+ def __str__(self):
53
+ text = ("%s: size=%s, count=%i"
54
+ % (self.traceback,
55
+ _format_size(self.size, False),
56
+ self.count))
57
+ if self.count:
58
+ average = self.size / self.count
59
+ text += ", average=%s" % _format_size(average, False)
60
+ return text
61
+
62
+ def __repr__(self):
63
+ return ('<Statistic traceback=%r size=%i count=%i>'
64
+ % (self.traceback, self.size, self.count))
65
+
66
+ def _sort_key(self):
67
+ return (self.size, self.count, self.traceback)
68
+
69
+
70
+ class StatisticDiff:
71
+ """
72
+ Statistic difference on memory allocations between an old and a new
73
+ Snapshot instance.
74
+ """
75
+ __slots__ = ('traceback', 'size', 'size_diff', 'count', 'count_diff')
76
+
77
+ def __init__(self, traceback, size, size_diff, count, count_diff):
78
+ self.traceback = traceback
79
+ self.size = size
80
+ self.size_diff = size_diff
81
+ self.count = count
82
+ self.count_diff = count_diff
83
+
84
+ def __hash__(self):
85
+ return hash((self.traceback, self.size, self.size_diff,
86
+ self.count, self.count_diff))
87
+
88
+ def __eq__(self, other):
89
+ if not isinstance(other, StatisticDiff):
90
+ return NotImplemented
91
+ return (self.traceback == other.traceback
92
+ and self.size == other.size
93
+ and self.size_diff == other.size_diff
94
+ and self.count == other.count
95
+ and self.count_diff == other.count_diff)
96
+
97
+ def __str__(self):
98
+ text = ("%s: size=%s (%s), count=%i (%+i)"
99
+ % (self.traceback,
100
+ _format_size(self.size, False),
101
+ _format_size(self.size_diff, True),
102
+ self.count,
103
+ self.count_diff))
104
+ if self.count:
105
+ average = self.size / self.count
106
+ text += ", average=%s" % _format_size(average, False)
107
+ return text
108
+
109
+ def __repr__(self):
110
+ return ('<StatisticDiff traceback=%r size=%i (%+i) count=%i (%+i)>'
111
+ % (self.traceback, self.size, self.size_diff,
112
+ self.count, self.count_diff))
113
+
114
+ def _sort_key(self):
115
+ return (abs(self.size_diff), self.size,
116
+ abs(self.count_diff), self.count,
117
+ self.traceback)
118
+
119
+
120
+ def _compare_grouped_stats(old_group, new_group):
121
+ statistics = []
122
+ for traceback, stat in new_group.items():
123
+ previous = old_group.pop(traceback, None)
124
+ if previous is not None:
125
+ stat = StatisticDiff(traceback,
126
+ stat.size, stat.size - previous.size,
127
+ stat.count, stat.count - previous.count)
128
+ else:
129
+ stat = StatisticDiff(traceback,
130
+ stat.size, stat.size,
131
+ stat.count, stat.count)
132
+ statistics.append(stat)
133
+
134
+ for traceback, stat in old_group.items():
135
+ stat = StatisticDiff(traceback, 0, -stat.size, 0, -stat.count)
136
+ statistics.append(stat)
137
+ return statistics
138
+
139
+
140
+ @total_ordering
141
+ class Frame:
142
+ """
143
+ Frame of a traceback.
144
+ """
145
+ __slots__ = ("_frame",)
146
+
147
+ def __init__(self, frame):
148
+ # frame is a tuple: (filename: str, lineno: int)
149
+ self._frame = frame
150
+
151
+ @property
152
+ def filename(self):
153
+ return self._frame[0]
154
+
155
+ @property
156
+ def lineno(self):
157
+ return self._frame[1]
158
+
159
+ def __eq__(self, other):
160
+ if not isinstance(other, Frame):
161
+ return NotImplemented
162
+ return (self._frame == other._frame)
163
+
164
+ def __lt__(self, other):
165
+ if not isinstance(other, Frame):
166
+ return NotImplemented
167
+ return (self._frame < other._frame)
168
+
169
+ def __hash__(self):
170
+ return hash(self._frame)
171
+
172
+ def __str__(self):
173
+ return "%s:%s" % (self.filename, self.lineno)
174
+
175
+ def __repr__(self):
176
+ return "<Frame filename=%r lineno=%r>" % (self.filename, self.lineno)
177
+
178
+
179
+ @total_ordering
180
+ class Traceback(Sequence):
181
+ """
182
+ Sequence of Frame instances sorted from the oldest frame
183
+ to the most recent frame.
184
+ """
185
+ __slots__ = ("_frames", '_total_nframe')
186
+
187
+ def __init__(self, frames, total_nframe=None):
188
+ Sequence.__init__(self)
189
+ # frames is a tuple of frame tuples: see Frame constructor for the
190
+ # format of a frame tuple; it is reversed, because _tracemalloc
191
+ # returns frames sorted from most recent to oldest, but the
192
+ # Python API expects oldest to most recent
193
+ self._frames = tuple(reversed(frames))
194
+ self._total_nframe = total_nframe
195
+
196
+ @property
197
+ def total_nframe(self):
198
+ return self._total_nframe
199
+
200
+ def __len__(self):
201
+ return len(self._frames)
202
+
203
+ def __getitem__(self, index):
204
+ if isinstance(index, slice):
205
+ return tuple(Frame(trace) for trace in self._frames[index])
206
+ else:
207
+ return Frame(self._frames[index])
208
+
209
+ def __contains__(self, frame):
210
+ return frame._frame in self._frames
211
+
212
+ def __hash__(self):
213
+ return hash(self._frames)
214
+
215
+ def __eq__(self, other):
216
+ if not isinstance(other, Traceback):
217
+ return NotImplemented
218
+ return (self._frames == other._frames)
219
+
220
+ def __lt__(self, other):
221
+ if not isinstance(other, Traceback):
222
+ return NotImplemented
223
+ return (self._frames < other._frames)
224
+
225
+ def __str__(self):
226
+ return str(self[0])
227
+
228
+ def __repr__(self):
229
+ s = f"<Traceback {tuple(self)}"
230
+ if self._total_nframe is None:
231
+ s += ">"
232
+ else:
233
+ s += f" total_nframe={self.total_nframe}>"
234
+ return s
235
+
236
+ def format(self, limit=None, most_recent_first=False):
237
+ lines = []
238
+ if limit is not None:
239
+ if limit > 0:
240
+ frame_slice = self[-limit:]
241
+ else:
242
+ frame_slice = self[:limit]
243
+ else:
244
+ frame_slice = self
245
+
246
+ if most_recent_first:
247
+ frame_slice = reversed(frame_slice)
248
+ for frame in frame_slice:
249
+ lines.append(' File "%s", line %s'
250
+ % (frame.filename, frame.lineno))
251
+ line = linecache.getline(frame.filename, frame.lineno).strip()
252
+ if line:
253
+ lines.append(' %s' % line)
254
+ return lines
255
+
256
+
257
+ def get_object_traceback(obj):
258
+ """
259
+ Get the traceback where the Python object *obj* was allocated.
260
+ Return a Traceback instance.
261
+
262
+ Return None if the tracemalloc module is not tracing memory allocations or
263
+ did not trace the allocation of the object.
264
+ """
265
+ frames = _get_object_traceback(obj)
266
+ if frames is not None:
267
+ return Traceback(frames)
268
+ else:
269
+ return None
270
+
271
+
272
+ class Trace:
273
+ """
274
+ Trace of a memory block.
275
+ """
276
+ __slots__ = ("_trace",)
277
+
278
+ def __init__(self, trace):
279
+ # trace is a tuple: (domain: int, size: int, traceback: tuple).
280
+ # See Traceback constructor for the format of the traceback tuple.
281
+ self._trace = trace
282
+
283
+ @property
284
+ def domain(self):
285
+ return self._trace[0]
286
+
287
+ @property
288
+ def size(self):
289
+ return self._trace[1]
290
+
291
+ @property
292
+ def traceback(self):
293
+ return Traceback(*self._trace[2:])
294
+
295
+ def __eq__(self, other):
296
+ if not isinstance(other, Trace):
297
+ return NotImplemented
298
+ return (self._trace == other._trace)
299
+
300
+ def __hash__(self):
301
+ return hash(self._trace)
302
+
303
+ def __str__(self):
304
+ return "%s: %s" % (self.traceback, _format_size(self.size, False))
305
+
306
+ def __repr__(self):
307
+ return ("<Trace domain=%s size=%s, traceback=%r>"
308
+ % (self.domain, _format_size(self.size, False), self.traceback))
309
+
310
+
311
+ class _Traces(Sequence):
312
+ def __init__(self, traces):
313
+ Sequence.__init__(self)
314
+ # traces is a tuple of trace tuples: see Trace constructor
315
+ self._traces = traces
316
+
317
+ def __len__(self):
318
+ return len(self._traces)
319
+
320
+ def __getitem__(self, index):
321
+ if isinstance(index, slice):
322
+ return tuple(Trace(trace) for trace in self._traces[index])
323
+ else:
324
+ return Trace(self._traces[index])
325
+
326
+ def __contains__(self, trace):
327
+ return trace._trace in self._traces
328
+
329
+ def __eq__(self, other):
330
+ if not isinstance(other, _Traces):
331
+ return NotImplemented
332
+ return (self._traces == other._traces)
333
+
334
+ def __repr__(self):
335
+ return "<Traces len=%s>" % len(self)
336
+
337
+
338
+ def _normalize_filename(filename):
339
+ filename = os.path.normcase(filename)
340
+ if filename.endswith('.pyc'):
341
+ filename = filename[:-1]
342
+ return filename
343
+
344
+
345
+ class BaseFilter:
346
+ def __init__(self, inclusive):
347
+ self.inclusive = inclusive
348
+
349
+ def _match(self, trace):
350
+ raise NotImplementedError
351
+
352
+
353
+ class Filter(BaseFilter):
354
+ def __init__(self, inclusive, filename_pattern,
355
+ lineno=None, all_frames=False, domain=None):
356
+ super().__init__(inclusive)
357
+ self.inclusive = inclusive
358
+ self._filename_pattern = _normalize_filename(filename_pattern)
359
+ self.lineno = lineno
360
+ self.all_frames = all_frames
361
+ self.domain = domain
362
+
363
+ @property
364
+ def filename_pattern(self):
365
+ return self._filename_pattern
366
+
367
+ def _match_frame_impl(self, filename, lineno):
368
+ filename = _normalize_filename(filename)
369
+ if not fnmatch.fnmatch(filename, self._filename_pattern):
370
+ return False
371
+ if self.lineno is None:
372
+ return True
373
+ else:
374
+ return (lineno == self.lineno)
375
+
376
+ def _match_frame(self, filename, lineno):
377
+ return self._match_frame_impl(filename, lineno) ^ (not self.inclusive)
378
+
379
+ def _match_traceback(self, traceback):
380
+ if self.all_frames:
381
+ if any(self._match_frame_impl(filename, lineno)
382
+ for filename, lineno in traceback):
383
+ return self.inclusive
384
+ else:
385
+ return (not self.inclusive)
386
+ else:
387
+ filename, lineno = traceback[0]
388
+ return self._match_frame(filename, lineno)
389
+
390
+ def _match(self, trace):
391
+ domain, size, traceback, total_nframe = trace
392
+ res = self._match_traceback(traceback)
393
+ if self.domain is not None:
394
+ if self.inclusive:
395
+ return res and (domain == self.domain)
396
+ else:
397
+ return res or (domain != self.domain)
398
+ return res
399
+
400
+
401
+ class DomainFilter(BaseFilter):
402
+ def __init__(self, inclusive, domain):
403
+ super().__init__(inclusive)
404
+ self._domain = domain
405
+
406
+ @property
407
+ def domain(self):
408
+ return self._domain
409
+
410
+ def _match(self, trace):
411
+ domain, size, traceback, total_nframe = trace
412
+ return (domain == self.domain) ^ (not self.inclusive)
413
+
414
+
415
+ class Snapshot:
416
+ """
417
+ Snapshot of traces of memory blocks allocated by Python.
418
+ """
419
+
420
+ def __init__(self, traces, traceback_limit):
421
+ # traces is a tuple of trace tuples: see _Traces constructor for
422
+ # the exact format
423
+ self.traces = _Traces(traces)
424
+ self.traceback_limit = traceback_limit
425
+
426
+ def dump(self, filename):
427
+ """
428
+ Write the snapshot into a file.
429
+ """
430
+ with open(filename, "wb") as fp:
431
+ pickle.dump(self, fp, pickle.HIGHEST_PROTOCOL)
432
+
433
+ @staticmethod
434
+ def load(filename):
435
+ """
436
+ Load a snapshot from a file.
437
+ """
438
+ with open(filename, "rb") as fp:
439
+ return pickle.load(fp)
440
+
441
+ def _filter_trace(self, include_filters, exclude_filters, trace):
442
+ if include_filters:
443
+ if not any(trace_filter._match(trace)
444
+ for trace_filter in include_filters):
445
+ return False
446
+ if exclude_filters:
447
+ if any(not trace_filter._match(trace)
448
+ for trace_filter in exclude_filters):
449
+ return False
450
+ return True
451
+
452
+ def filter_traces(self, filters):
453
+ """
454
+ Create a new Snapshot instance with a filtered traces sequence, filters
455
+ is a list of Filter or DomainFilter instances. If filters is an empty
456
+ list, return a new Snapshot instance with a copy of the traces.
457
+ """
458
+ if not isinstance(filters, Iterable):
459
+ raise TypeError("filters must be a list of filters, not %s"
460
+ % type(filters).__name__)
461
+ if filters:
462
+ include_filters = []
463
+ exclude_filters = []
464
+ for trace_filter in filters:
465
+ if trace_filter.inclusive:
466
+ include_filters.append(trace_filter)
467
+ else:
468
+ exclude_filters.append(trace_filter)
469
+ new_traces = [trace for trace in self.traces._traces
470
+ if self._filter_trace(include_filters,
471
+ exclude_filters,
472
+ trace)]
473
+ else:
474
+ new_traces = self.traces._traces.copy()
475
+ return Snapshot(new_traces, self.traceback_limit)
476
+
477
+ def _group_by(self, key_type, cumulative):
478
+ if key_type not in ('traceback', 'filename', 'lineno'):
479
+ raise ValueError("unknown key_type: %r" % (key_type,))
480
+ if cumulative and key_type not in ('lineno', 'filename'):
481
+ raise ValueError("cumulative mode cannot by used "
482
+ "with key type %r" % key_type)
483
+
484
+ stats = {}
485
+ tracebacks = {}
486
+ if not cumulative:
487
+ for trace in self.traces._traces:
488
+ domain, size, trace_traceback, total_nframe = trace
489
+ try:
490
+ traceback = tracebacks[trace_traceback]
491
+ except KeyError:
492
+ if key_type == 'traceback':
493
+ frames = trace_traceback
494
+ elif key_type == 'lineno':
495
+ frames = trace_traceback[:1]
496
+ else: # key_type == 'filename':
497
+ frames = ((trace_traceback[0][0], 0),)
498
+ traceback = Traceback(frames)
499
+ tracebacks[trace_traceback] = traceback
500
+ try:
501
+ stat = stats[traceback]
502
+ stat.size += size
503
+ stat.count += 1
504
+ except KeyError:
505
+ stats[traceback] = Statistic(traceback, size, 1)
506
+ else:
507
+ # cumulative statistics
508
+ for trace in self.traces._traces:
509
+ domain, size, trace_traceback, total_nframe = trace
510
+ for frame in trace_traceback:
511
+ try:
512
+ traceback = tracebacks[frame]
513
+ except KeyError:
514
+ if key_type == 'lineno':
515
+ frames = (frame,)
516
+ else: # key_type == 'filename':
517
+ frames = ((frame[0], 0),)
518
+ traceback = Traceback(frames)
519
+ tracebacks[frame] = traceback
520
+ try:
521
+ stat = stats[traceback]
522
+ stat.size += size
523
+ stat.count += 1
524
+ except KeyError:
525
+ stats[traceback] = Statistic(traceback, size, 1)
526
+ return stats
527
+
528
+ def statistics(self, key_type, cumulative=False):
529
+ """
530
+ Group statistics by key_type. Return a sorted list of Statistic
531
+ instances.
532
+ """
533
+ grouped = self._group_by(key_type, cumulative)
534
+ statistics = list(grouped.values())
535
+ statistics.sort(reverse=True, key=Statistic._sort_key)
536
+ return statistics
537
+
538
+ def compare_to(self, old_snapshot, key_type, cumulative=False):
539
+ """
540
+ Compute the differences with an old snapshot old_snapshot. Get
541
+ statistics as a sorted list of StatisticDiff instances, grouped by
542
+ group_by.
543
+ """
544
+ new_group = self._group_by(key_type, cumulative)
545
+ old_group = old_snapshot._group_by(key_type, cumulative)
546
+ statistics = _compare_grouped_stats(old_group, new_group)
547
+ statistics.sort(reverse=True, key=StatisticDiff._sort_key)
548
+ return statistics
549
+
550
+
551
+ def take_snapshot():
552
+ """
553
+ Take a snapshot of traces of memory blocks allocated by Python.
554
+ """
555
+ if not is_tracing():
556
+ raise RuntimeError("the tracemalloc module must be tracing memory "
557
+ "allocations to take a snapshot")
558
+ traces = _get_traces()
559
+ traceback_limit = get_traceback_limit()
560
+ return Snapshot(traces, traceback_limit)
@@ -0,0 +1,73 @@
1
+ """Terminal utilities."""
2
+
3
+ # Author: Steen Lumholt.
4
+
5
+ from termios import *
6
+
7
+ __all__ = ["cfmakeraw", "cfmakecbreak", "setraw", "setcbreak"]
8
+
9
+ # Indices for termios list.
10
+ IFLAG = 0
11
+ OFLAG = 1
12
+ CFLAG = 2
13
+ LFLAG = 3
14
+ ISPEED = 4
15
+ OSPEED = 5
16
+ CC = 6
17
+
18
+ def cfmakeraw(mode):
19
+ """Make termios mode raw."""
20
+ # Clear all POSIX.1-2017 input mode flags.
21
+ # See chapter 11 "General Terminal Interface"
22
+ # of POSIX.1-2017 Base Definitions.
23
+ mode[IFLAG] &= ~(IGNBRK | BRKINT | IGNPAR | PARMRK | INPCK | ISTRIP |
24
+ INLCR | IGNCR | ICRNL | IXON | IXANY | IXOFF)
25
+
26
+ # Do not post-process output.
27
+ mode[OFLAG] &= ~OPOST
28
+
29
+ # Disable parity generation and detection; clear character size mask;
30
+ # let character size be 8 bits.
31
+ mode[CFLAG] &= ~(PARENB | CSIZE)
32
+ mode[CFLAG] |= CS8
33
+
34
+ # Clear all POSIX.1-2017 local mode flags.
35
+ mode[LFLAG] &= ~(ECHO | ECHOE | ECHOK | ECHONL | ICANON |
36
+ IEXTEN | ISIG | NOFLSH | TOSTOP)
37
+
38
+ # POSIX.1-2017, 11.1.7 Non-Canonical Mode Input Processing,
39
+ # Case B: MIN>0, TIME=0
40
+ # A pending read shall block until MIN (here 1) bytes are received,
41
+ # or a signal is received.
42
+ mode[CC] = list(mode[CC])
43
+ mode[CC][VMIN] = 1
44
+ mode[CC][VTIME] = 0
45
+
46
+ def cfmakecbreak(mode):
47
+ """Make termios mode cbreak."""
48
+ # Do not echo characters; disable canonical input.
49
+ mode[LFLAG] &= ~(ECHO | ICANON)
50
+
51
+ # POSIX.1-2017, 11.1.7 Non-Canonical Mode Input Processing,
52
+ # Case B: MIN>0, TIME=0
53
+ # A pending read shall block until MIN (here 1) bytes are received,
54
+ # or a signal is received.
55
+ mode[CC] = list(mode[CC])
56
+ mode[CC][VMIN] = 1
57
+ mode[CC][VTIME] = 0
58
+
59
+ def setraw(fd, when=TCSAFLUSH):
60
+ """Put terminal into raw mode."""
61
+ mode = tcgetattr(fd)
62
+ new = list(mode)
63
+ cfmakeraw(new)
64
+ tcsetattr(fd, when, new)
65
+ return mode
66
+
67
+ def setcbreak(fd, when=TCSAFLUSH):
68
+ """Put terminal into cbreak mode."""
69
+ mode = tcgetattr(fd)
70
+ new = list(mode)
71
+ cfmakecbreak(new)
72
+ tcsetattr(fd, when, new)
73
+ return mode