@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,693 @@
1
+ """Functions that read and write gzipped files.
2
+
3
+ The user of the file doesn't have to worry about the compression,
4
+ but random access is not allowed."""
5
+
6
+ # based on Andrew Kuchling's minigzip.py distributed with the zlib module
7
+
8
+ import _compression
9
+ import builtins
10
+ import io
11
+ import os
12
+ import struct
13
+ import sys
14
+ import time
15
+ import weakref
16
+ import zlib
17
+
18
+ __all__ = ["BadGzipFile", "GzipFile", "open", "compress", "decompress"]
19
+
20
+ FTEXT, FHCRC, FEXTRA, FNAME, FCOMMENT = 1, 2, 4, 8, 16
21
+
22
+ READ = 'rb'
23
+ WRITE = 'wb'
24
+
25
+ _COMPRESS_LEVEL_FAST = 1
26
+ _COMPRESS_LEVEL_TRADEOFF = 6
27
+ _COMPRESS_LEVEL_BEST = 9
28
+
29
+ READ_BUFFER_SIZE = 128 * 1024
30
+ _WRITE_BUFFER_SIZE = 4 * io.DEFAULT_BUFFER_SIZE
31
+
32
+
33
+ def open(filename, mode="rb", compresslevel=_COMPRESS_LEVEL_BEST,
34
+ encoding=None, errors=None, newline=None):
35
+ """Open a gzip-compressed file in binary or text mode.
36
+
37
+ The filename argument can be an actual filename (a str or bytes object),
38
+ or an existing file object to read from or write to.
39
+
40
+ The mode argument can be "r", "rb", "w", "wb", "x", "xb", "a" or "ab"
41
+ for binary mode, or "rt", "wt", "xt" or "at" for text mode. The default
42
+ mode is "rb", and the default compresslevel is 9.
43
+
44
+ For binary mode, this function is equivalent to the GzipFile
45
+ constructor: GzipFile(filename, mode, compresslevel). In this case,
46
+ the encoding, errors and newline arguments must not be provided.
47
+
48
+ For text mode, a GzipFile object is created, and wrapped in an
49
+ io.TextIOWrapper instance with the specified encoding, error handling
50
+ behavior, and line ending(s).
51
+
52
+ """
53
+ if "t" in mode:
54
+ if "b" in mode:
55
+ raise ValueError("Invalid mode: %r" % (mode,))
56
+ else:
57
+ if encoding is not None:
58
+ raise ValueError("Argument 'encoding' not supported in binary mode")
59
+ if errors is not None:
60
+ raise ValueError("Argument 'errors' not supported in binary mode")
61
+ if newline is not None:
62
+ raise ValueError("Argument 'newline' not supported in binary mode")
63
+
64
+ gz_mode = mode.replace("t", "")
65
+ if isinstance(filename, (str, bytes, os.PathLike)):
66
+ binary_file = GzipFile(filename, gz_mode, compresslevel)
67
+ elif hasattr(filename, "read") or hasattr(filename, "write"):
68
+ binary_file = GzipFile(None, gz_mode, compresslevel, filename)
69
+ else:
70
+ raise TypeError("filename must be a str or bytes object, or a file")
71
+
72
+ if "t" in mode:
73
+ encoding = io.text_encoding(encoding)
74
+ return io.TextIOWrapper(binary_file, encoding, errors, newline)
75
+ else:
76
+ return binary_file
77
+
78
+ def write32u(output, value):
79
+ # The L format writes the bit pattern correctly whether signed
80
+ # or unsigned.
81
+ output.write(struct.pack("<L", value))
82
+
83
+ class _PaddedFile:
84
+ """Minimal read-only file object that prepends a string to the contents
85
+ of an actual file. Shouldn't be used outside of gzip.py, as it lacks
86
+ essential functionality."""
87
+
88
+ def __init__(self, f, prepend=b''):
89
+ self._buffer = prepend
90
+ self._length = len(prepend)
91
+ self.file = f
92
+ self._read = 0
93
+
94
+ def read(self, size):
95
+ if self._read is None:
96
+ return self.file.read(size)
97
+ if self._read + size <= self._length:
98
+ read = self._read
99
+ self._read += size
100
+ return self._buffer[read:self._read]
101
+ else:
102
+ read = self._read
103
+ self._read = None
104
+ return self._buffer[read:] + \
105
+ self.file.read(size-self._length+read)
106
+
107
+ def prepend(self, prepend=b''):
108
+ if self._read is None:
109
+ self._buffer = prepend
110
+ else: # Assume data was read since the last prepend() call
111
+ self._read -= len(prepend)
112
+ return
113
+ self._length = len(self._buffer)
114
+ self._read = 0
115
+
116
+ def seek(self, off):
117
+ self._read = None
118
+ self._buffer = None
119
+ return self.file.seek(off)
120
+
121
+ def seekable(self):
122
+ return True # Allows fast-forwarding even in unseekable streams
123
+
124
+
125
+ class BadGzipFile(OSError):
126
+ """Exception raised in some cases for invalid gzip files."""
127
+
128
+
129
+ class _WriteBufferStream(io.RawIOBase):
130
+ """Minimal object to pass WriteBuffer flushes into GzipFile"""
131
+ def __init__(self, gzip_file):
132
+ self.gzip_file = weakref.ref(gzip_file)
133
+
134
+ def write(self, data):
135
+ gzip_file = self.gzip_file()
136
+ if gzip_file is None:
137
+ raise RuntimeError("lost gzip_file")
138
+ return gzip_file._write_raw(data)
139
+
140
+ def seekable(self):
141
+ return False
142
+
143
+ def writable(self):
144
+ return True
145
+
146
+
147
+ class GzipFile(_compression.BaseStream):
148
+ """The GzipFile class simulates most of the methods of a file object with
149
+ the exception of the truncate() method.
150
+
151
+ This class only supports opening files in binary mode. If you need to
152
+ open a compressed file in text mode, use the gzip.open() function.
153
+
154
+ """
155
+
156
+ # Overridden with internal file object to be closed, if only a filename
157
+ # is passed in
158
+ myfileobj = None
159
+
160
+ def __init__(self, filename=None, mode=None,
161
+ compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None):
162
+ """Constructor for the GzipFile class.
163
+
164
+ At least one of fileobj and filename must be given a
165
+ non-trivial value.
166
+
167
+ The new class instance is based on fileobj, which can be a regular
168
+ file, an io.BytesIO object, or any other object which simulates
169
+ a file. It defaults to None, in which case filename is opened to
170
+ provide a file object.
171
+
172
+ When fileobj is not None, the filename argument is only used to be
173
+ included in the gzip file header, which may include the original
174
+ filename of the uncompressed file. It defaults to the filename of
175
+ fileobj, if discernible; otherwise, it defaults to the empty string,
176
+ and in this case the original filename is not included in the
177
+ header.
178
+
179
+ The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', 'wb',
180
+ 'x', or 'xb' depending on whether the file will be read or written.
181
+ The default is the mode of fileobj if discernible; otherwise, the
182
+ default is 'rb'. A mode of 'r' is equivalent to one of 'rb', and
183
+ similarly for 'w' and 'wb', 'a' and 'ab', and 'x' and 'xb'.
184
+
185
+ The compresslevel argument is an integer from 0 to 9 controlling
186
+ the level of compression; 1 is fastest and produces the least
187
+ compression, and 9 is slowest and produces the most compression.
188
+ 0 is no compression at all. The default is 9.
189
+
190
+ The optional mtime argument is the timestamp requested by gzip.
191
+ The time is in Unix format, i.e., seconds since 00:00:00 UTC,
192
+ January 1, 1970. If mtime is omitted or None, the current time
193
+ is used. Use mtime = 0 to generate a compressed stream that does
194
+ not depend on creation time.
195
+
196
+ """
197
+
198
+ if mode and ('t' in mode or 'U' in mode):
199
+ raise ValueError("Invalid mode: {!r}".format(mode))
200
+ if mode and 'b' not in mode:
201
+ mode += 'b'
202
+
203
+ try:
204
+ if fileobj is None:
205
+ fileobj = self.myfileobj = builtins.open(filename, mode or 'rb')
206
+ if filename is None:
207
+ filename = getattr(fileobj, 'name', '')
208
+ if not isinstance(filename, (str, bytes)):
209
+ filename = ''
210
+ else:
211
+ filename = os.fspath(filename)
212
+ origmode = mode
213
+ if mode is None:
214
+ mode = getattr(fileobj, 'mode', 'rb')
215
+
216
+
217
+ if mode.startswith('r'):
218
+ self.mode = READ
219
+ raw = _GzipReader(fileobj)
220
+ self._buffer = io.BufferedReader(raw)
221
+ self.name = filename
222
+
223
+ elif mode.startswith(('w', 'a', 'x')):
224
+ if origmode is None:
225
+ import warnings
226
+ warnings.warn(
227
+ "GzipFile was opened for writing, but this will "
228
+ "change in future Python releases. "
229
+ "Specify the mode argument for opening it for writing.",
230
+ FutureWarning, 2)
231
+ self.mode = WRITE
232
+ self._init_write(filename)
233
+ self.compress = zlib.compressobj(compresslevel,
234
+ zlib.DEFLATED,
235
+ -zlib.MAX_WBITS,
236
+ zlib.DEF_MEM_LEVEL,
237
+ 0)
238
+ self._write_mtime = mtime
239
+ self._buffer_size = _WRITE_BUFFER_SIZE
240
+ self._buffer = io.BufferedWriter(_WriteBufferStream(self),
241
+ buffer_size=self._buffer_size)
242
+ else:
243
+ raise ValueError("Invalid mode: {!r}".format(mode))
244
+
245
+ self.fileobj = fileobj
246
+
247
+ if self.mode == WRITE:
248
+ self._write_gzip_header(compresslevel)
249
+ except:
250
+ # Avoid a ResourceWarning if the write fails,
251
+ # eg read-only file or KeyboardInterrupt
252
+ self._close()
253
+ raise
254
+
255
+ @property
256
+ def mtime(self):
257
+ """Last modification time read from stream, or None"""
258
+ return self._buffer.raw._last_mtime
259
+
260
+ def __repr__(self):
261
+ s = repr(self.fileobj)
262
+ return '<gzip ' + s[1:-1] + ' ' + hex(id(self)) + '>'
263
+
264
+ def _init_write(self, filename):
265
+ self.name = filename
266
+ self.crc = zlib.crc32(b"")
267
+ self.size = 0
268
+ self.writebuf = []
269
+ self.bufsize = 0
270
+ self.offset = 0 # Current file offset for seek(), tell(), etc
271
+
272
+ def tell(self):
273
+ self._check_not_closed()
274
+ self._buffer.flush()
275
+ return super().tell()
276
+
277
+ def _write_gzip_header(self, compresslevel):
278
+ self.fileobj.write(b'\037\213') # magic header
279
+ self.fileobj.write(b'\010') # compression method
280
+ try:
281
+ # RFC 1952 requires the FNAME field to be Latin-1. Do not
282
+ # include filenames that cannot be represented that way.
283
+ fname = os.path.basename(self.name)
284
+ if not isinstance(fname, bytes):
285
+ fname = fname.encode('latin-1')
286
+ if fname.endswith(b'.gz'):
287
+ fname = fname[:-3]
288
+ except UnicodeEncodeError:
289
+ fname = b''
290
+ flags = 0
291
+ if fname:
292
+ flags = FNAME
293
+ self.fileobj.write(chr(flags).encode('latin-1'))
294
+ mtime = self._write_mtime
295
+ if mtime is None:
296
+ mtime = time.time()
297
+ write32u(self.fileobj, int(mtime))
298
+ if compresslevel == _COMPRESS_LEVEL_BEST:
299
+ xfl = b'\002'
300
+ elif compresslevel == _COMPRESS_LEVEL_FAST:
301
+ xfl = b'\004'
302
+ else:
303
+ xfl = b'\000'
304
+ self.fileobj.write(xfl)
305
+ self.fileobj.write(b'\377')
306
+ if fname:
307
+ self.fileobj.write(fname + b'\000')
308
+
309
+ def write(self,data):
310
+ self._check_not_closed()
311
+ if self.mode != WRITE:
312
+ import errno
313
+ raise OSError(errno.EBADF, "write() on read-only GzipFile object")
314
+
315
+ if self.fileobj is None:
316
+ raise ValueError("write() on closed GzipFile object")
317
+
318
+ return self._buffer.write(data)
319
+
320
+ def _write_raw(self, data):
321
+ # Called by our self._buffer underlying WriteBufferStream.
322
+ if isinstance(data, (bytes, bytearray)):
323
+ length = len(data)
324
+ else:
325
+ # accept any data that supports the buffer protocol
326
+ data = memoryview(data)
327
+ length = data.nbytes
328
+
329
+ if length > 0:
330
+ self.fileobj.write(self.compress.compress(data))
331
+ self.size += length
332
+ self.crc = zlib.crc32(data, self.crc)
333
+ self.offset += length
334
+
335
+ return length
336
+
337
+ def read(self, size=-1):
338
+ self._check_not_closed()
339
+ if self.mode != READ:
340
+ import errno
341
+ raise OSError(errno.EBADF, "read() on write-only GzipFile object")
342
+ return self._buffer.read(size)
343
+
344
+ def read1(self, size=-1):
345
+ """Implements BufferedIOBase.read1()
346
+
347
+ Reads up to a buffer's worth of data if size is negative."""
348
+ self._check_not_closed()
349
+ if self.mode != READ:
350
+ import errno
351
+ raise OSError(errno.EBADF, "read1() on write-only GzipFile object")
352
+
353
+ if size < 0:
354
+ size = io.DEFAULT_BUFFER_SIZE
355
+ return self._buffer.read1(size)
356
+
357
+ def peek(self, n):
358
+ self._check_not_closed()
359
+ if self.mode != READ:
360
+ import errno
361
+ raise OSError(errno.EBADF, "peek() on write-only GzipFile object")
362
+ return self._buffer.peek(n)
363
+
364
+ @property
365
+ def closed(self):
366
+ return self.fileobj is None
367
+
368
+ def close(self):
369
+ fileobj = self.fileobj
370
+ if fileobj is None or self._buffer.closed:
371
+ return
372
+ try:
373
+ if self.mode == WRITE:
374
+ self._buffer.flush()
375
+ fileobj.write(self.compress.flush())
376
+ write32u(fileobj, self.crc)
377
+ # self.size may exceed 2 GiB, or even 4 GiB
378
+ write32u(fileobj, self.size & 0xffffffff)
379
+ elif self.mode == READ:
380
+ self._buffer.close()
381
+ finally:
382
+ self._close()
383
+
384
+ def _close(self):
385
+ self.fileobj = None
386
+ myfileobj = self.myfileobj
387
+ if myfileobj is not None:
388
+ self.myfileobj = None
389
+ myfileobj.close()
390
+
391
+ def flush(self,zlib_mode=zlib.Z_SYNC_FLUSH):
392
+ self._check_not_closed()
393
+ if self.mode == WRITE:
394
+ self._buffer.flush()
395
+ # Ensure the compressor's buffer is flushed
396
+ self.fileobj.write(self.compress.flush(zlib_mode))
397
+ self.fileobj.flush()
398
+
399
+ def fileno(self):
400
+ """Invoke the underlying file object's fileno() method.
401
+
402
+ This will raise AttributeError if the underlying file object
403
+ doesn't support fileno().
404
+ """
405
+ return self.fileobj.fileno()
406
+
407
+ def rewind(self):
408
+ '''Return the uncompressed stream file position indicator to the
409
+ beginning of the file'''
410
+ if self.mode != READ:
411
+ raise OSError("Can't rewind in write mode")
412
+ self._buffer.seek(0)
413
+
414
+ def readable(self):
415
+ return self.mode == READ
416
+
417
+ def writable(self):
418
+ return self.mode == WRITE
419
+
420
+ def seekable(self):
421
+ return True
422
+
423
+ def seek(self, offset, whence=io.SEEK_SET):
424
+ if self.mode == WRITE:
425
+ self._check_not_closed()
426
+ # Flush buffer to ensure validity of self.offset
427
+ self._buffer.flush()
428
+ if whence != io.SEEK_SET:
429
+ if whence == io.SEEK_CUR:
430
+ offset = self.offset + offset
431
+ else:
432
+ raise ValueError('Seek from end not supported')
433
+ if offset < self.offset:
434
+ raise OSError('Negative seek in write mode')
435
+ count = offset - self.offset
436
+ chunk = b'\0' * self._buffer_size
437
+ for i in range(count // self._buffer_size):
438
+ self.write(chunk)
439
+ self.write(b'\0' * (count % self._buffer_size))
440
+ elif self.mode == READ:
441
+ self._check_not_closed()
442
+ return self._buffer.seek(offset, whence)
443
+
444
+ return self.offset
445
+
446
+ def readline(self, size=-1):
447
+ self._check_not_closed()
448
+ return self._buffer.readline(size)
449
+
450
+
451
+ def _read_exact(fp, n):
452
+ '''Read exactly *n* bytes from `fp`
453
+
454
+ This method is required because fp may be unbuffered,
455
+ i.e. return short reads.
456
+ '''
457
+ data = fp.read(n)
458
+ while len(data) < n:
459
+ b = fp.read(n - len(data))
460
+ if not b:
461
+ raise EOFError("Compressed file ended before the "
462
+ "end-of-stream marker was reached")
463
+ data += b
464
+ return data
465
+
466
+
467
+ def _read_gzip_header(fp):
468
+ '''Read a gzip header from `fp` and progress to the end of the header.
469
+
470
+ Returns last mtime if header was present or None otherwise.
471
+ '''
472
+ magic = fp.read(2)
473
+ if magic == b'':
474
+ return None
475
+
476
+ if magic != b'\037\213':
477
+ raise BadGzipFile('Not a gzipped file (%r)' % magic)
478
+
479
+ (method, flag, last_mtime) = struct.unpack("<BBIxx", _read_exact(fp, 8))
480
+ if method != 8:
481
+ raise BadGzipFile('Unknown compression method')
482
+
483
+ if flag & FEXTRA:
484
+ # Read & discard the extra field, if present
485
+ extra_len, = struct.unpack("<H", _read_exact(fp, 2))
486
+ _read_exact(fp, extra_len)
487
+ if flag & FNAME:
488
+ # Read and discard a null-terminated string containing the filename
489
+ while True:
490
+ s = fp.read(1)
491
+ if not s or s==b'\000':
492
+ break
493
+ if flag & FCOMMENT:
494
+ # Read and discard a null-terminated string containing a comment
495
+ while True:
496
+ s = fp.read(1)
497
+ if not s or s==b'\000':
498
+ break
499
+ if flag & FHCRC:
500
+ _read_exact(fp, 2) # Read & discard the 16-bit header CRC
501
+ return last_mtime
502
+
503
+
504
+ class _GzipReader(_compression.DecompressReader):
505
+ def __init__(self, fp):
506
+ super().__init__(_PaddedFile(fp), zlib._ZlibDecompressor,
507
+ wbits=-zlib.MAX_WBITS)
508
+ # Set flag indicating start of a new member
509
+ self._new_member = True
510
+ self._last_mtime = None
511
+
512
+ def _init_read(self):
513
+ self._crc = zlib.crc32(b"")
514
+ self._stream_size = 0 # Decompressed size of unconcatenated stream
515
+
516
+ def _read_gzip_header(self):
517
+ last_mtime = _read_gzip_header(self._fp)
518
+ if last_mtime is None:
519
+ return False
520
+ self._last_mtime = last_mtime
521
+ return True
522
+
523
+ def read(self, size=-1):
524
+ if size < 0:
525
+ return self.readall()
526
+ # size=0 is special because decompress(max_length=0) is not supported
527
+ if not size:
528
+ return b""
529
+
530
+ # For certain input data, a single
531
+ # call to decompress() may not return
532
+ # any data. In this case, retry until we get some data or reach EOF.
533
+ while True:
534
+ if self._decompressor.eof:
535
+ # Ending case: we've come to the end of a member in the file,
536
+ # so finish up this member, and read a new gzip header.
537
+ # Check the CRC and file size, and set the flag so we read
538
+ # a new member
539
+ self._read_eof()
540
+ self._new_member = True
541
+ self._decompressor = self._decomp_factory(
542
+ **self._decomp_args)
543
+
544
+ if self._new_member:
545
+ # If the _new_member flag is set, we have to
546
+ # jump to the next member, if there is one.
547
+ self._init_read()
548
+ if not self._read_gzip_header():
549
+ self._size = self._pos
550
+ return b""
551
+ self._new_member = False
552
+
553
+ # Read a chunk of data from the file
554
+ if self._decompressor.needs_input:
555
+ buf = self._fp.read(READ_BUFFER_SIZE)
556
+ else:
557
+ buf = b""
558
+
559
+ uncompress = self._decompressor.decompress(buf, size)
560
+ if self._decompressor.unused_data != b"":
561
+ # Prepend the already read bytes to the fileobj so they can
562
+ # be seen by _read_eof() and _read_gzip_header()
563
+ self._fp.prepend(self._decompressor.unused_data)
564
+
565
+ if uncompress != b"":
566
+ break
567
+ if buf == b"":
568
+ raise EOFError("Compressed file ended before the "
569
+ "end-of-stream marker was reached")
570
+
571
+ self._crc = zlib.crc32(uncompress, self._crc)
572
+ self._stream_size += len(uncompress)
573
+ self._pos += len(uncompress)
574
+ return uncompress
575
+
576
+ def _read_eof(self):
577
+ # We've read to the end of the file
578
+ # We check that the computed CRC and size of the
579
+ # uncompressed data matches the stored values. Note that the size
580
+ # stored is the true file size mod 2**32.
581
+ crc32, isize = struct.unpack("<II", _read_exact(self._fp, 8))
582
+ if crc32 != self._crc:
583
+ raise BadGzipFile("CRC check failed %s != %s" % (hex(crc32),
584
+ hex(self._crc)))
585
+ elif isize != (self._stream_size & 0xffffffff):
586
+ raise BadGzipFile("Incorrect length of data produced")
587
+
588
+ # Gzip files can be padded with zeroes and still have archives.
589
+ # Consume all zero bytes and set the file position to the first
590
+ # non-zero byte. See http://www.gzip.org/#faq8
591
+ c = b"\x00"
592
+ while c == b"\x00":
593
+ c = self._fp.read(1)
594
+ if c:
595
+ self._fp.prepend(c)
596
+
597
+ def _rewind(self):
598
+ super()._rewind()
599
+ self._new_member = True
600
+
601
+
602
+ def compress(data, compresslevel=_COMPRESS_LEVEL_BEST, *, mtime=None):
603
+ """Compress data in one shot and return the compressed string.
604
+
605
+ compresslevel sets the compression level in range of 0-9.
606
+ mtime can be used to set the modification time. The modification time is
607
+ set to the current time by default.
608
+ """
609
+ # Wbits=31 automatically includes a gzip header and trailer.
610
+ gzip_data = zlib.compress(data, level=compresslevel, wbits=31)
611
+ if mtime is None:
612
+ mtime = time.time()
613
+ # Reuse gzip header created by zlib, replace mtime and OS byte for
614
+ # consistency.
615
+ header = struct.pack("<4sLBB", gzip_data, int(mtime), gzip_data[8], 255)
616
+ return header + gzip_data[10:]
617
+
618
+
619
+ def decompress(data):
620
+ """Decompress a gzip compressed string in one shot.
621
+ Return the decompressed string.
622
+ """
623
+ decompressed_members = []
624
+ while True:
625
+ fp = io.BytesIO(data)
626
+ if _read_gzip_header(fp) is None:
627
+ return b"".join(decompressed_members)
628
+ # Use a zlib raw deflate compressor
629
+ do = zlib.decompressobj(wbits=-zlib.MAX_WBITS)
630
+ # Read all the data except the header
631
+ decompressed = do.decompress(data[fp.tell():])
632
+ if not do.eof or len(do.unused_data) < 8:
633
+ raise EOFError("Compressed file ended before the end-of-stream "
634
+ "marker was reached")
635
+ crc, length = struct.unpack("<II", do.unused_data[:8])
636
+ if crc != zlib.crc32(decompressed):
637
+ raise BadGzipFile("CRC check failed")
638
+ if length != (len(decompressed) & 0xffffffff):
639
+ raise BadGzipFile("Incorrect length of data produced")
640
+ decompressed_members.append(decompressed)
641
+ data = do.unused_data[8:].lstrip(b"\x00")
642
+
643
+
644
+ def main():
645
+ from argparse import ArgumentParser
646
+ parser = ArgumentParser(description=
647
+ "A simple command line interface for the gzip module: act like gzip, "
648
+ "but do not delete the input file.")
649
+ group = parser.add_mutually_exclusive_group()
650
+ group.add_argument('--fast', action='store_true', help='compress faster')
651
+ group.add_argument('--best', action='store_true', help='compress better')
652
+ group.add_argument("-d", "--decompress", action="store_true",
653
+ help="act like gunzip instead of gzip")
654
+
655
+ parser.add_argument("args", nargs="*", default=["-"], metavar='file')
656
+ args = parser.parse_args()
657
+
658
+ compresslevel = _COMPRESS_LEVEL_TRADEOFF
659
+ if args.fast:
660
+ compresslevel = _COMPRESS_LEVEL_FAST
661
+ elif args.best:
662
+ compresslevel = _COMPRESS_LEVEL_BEST
663
+
664
+ for arg in args.args:
665
+ if args.decompress:
666
+ if arg == "-":
667
+ f = GzipFile(filename="", mode="rb", fileobj=sys.stdin.buffer)
668
+ g = sys.stdout.buffer
669
+ else:
670
+ if arg[-3:] != ".gz":
671
+ sys.exit(f"filename doesn't end in .gz: {arg!r}")
672
+ f = open(arg, "rb")
673
+ g = builtins.open(arg[:-3], "wb")
674
+ else:
675
+ if arg == "-":
676
+ f = sys.stdin.buffer
677
+ g = GzipFile(filename="", mode="wb", fileobj=sys.stdout.buffer,
678
+ compresslevel=compresslevel)
679
+ else:
680
+ f = builtins.open(arg, "rb")
681
+ g = open(arg + ".gz", "wb")
682
+ while True:
683
+ chunk = f.read(READ_BUFFER_SIZE)
684
+ if not chunk:
685
+ break
686
+ g.write(chunk)
687
+ if g is not sys.stdout.buffer:
688
+ g.close()
689
+ if f is not sys.stdin.buffer:
690
+ f.close()
691
+
692
+ if __name__ == '__main__':
693
+ main()