@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,442 @@
1
+ """Helper class to quickly write a loop over all standard input files.
2
+
3
+ Typical use is:
4
+
5
+ import fileinput
6
+ for line in fileinput.input(encoding="utf-8"):
7
+ process(line)
8
+
9
+ This iterates over the lines of all files listed in sys.argv[1:],
10
+ defaulting to sys.stdin if the list is empty. If a filename is '-' it
11
+ is also replaced by sys.stdin and the optional arguments mode and
12
+ openhook are ignored. To specify an alternative list of filenames,
13
+ pass it as the argument to input(). A single file name is also allowed.
14
+
15
+ Functions filename(), lineno() return the filename and cumulative line
16
+ number of the line that has just been read; filelineno() returns its
17
+ line number in the current file; isfirstline() returns true iff the
18
+ line just read is the first line of its file; isstdin() returns true
19
+ iff the line was read from sys.stdin. Function nextfile() closes the
20
+ current file so that the next iteration will read the first line from
21
+ the next file (if any); lines not read from the file will not count
22
+ towards the cumulative line count; the filename is not changed until
23
+ after the first line of the next file has been read. Function close()
24
+ closes the sequence.
25
+
26
+ Before any lines have been read, filename() returns None and both line
27
+ numbers are zero; nextfile() has no effect. After all lines have been
28
+ read, filename() and the line number functions return the values
29
+ pertaining to the last line read; nextfile() has no effect.
30
+
31
+ All files are opened in text mode by default, you can override this by
32
+ setting the mode parameter to input() or FileInput.__init__().
33
+ If an I/O error occurs during opening or reading a file, the OSError
34
+ exception is raised.
35
+
36
+ If sys.stdin is used more than once, the second and further use will
37
+ return no lines, except perhaps for interactive use, or if it has been
38
+ explicitly reset (e.g. using sys.stdin.seek(0)).
39
+
40
+ Empty files are opened and immediately closed; the only time their
41
+ presence in the list of filenames is noticeable at all is when the
42
+ last file opened is empty.
43
+
44
+ It is possible that the last line of a file doesn't end in a newline
45
+ character; otherwise lines are returned including the trailing
46
+ newline.
47
+
48
+ Class FileInput is the implementation; its methods filename(),
49
+ lineno(), fileline(), isfirstline(), isstdin(), nextfile() and close()
50
+ correspond to the functions in the module. In addition it has a
51
+ readline() method which returns the next input line, and a
52
+ __getitem__() method which implements the sequence behavior. The
53
+ sequence must be accessed in strictly sequential order; sequence
54
+ access and readline() cannot be mixed.
55
+
56
+ Optional in-place filtering: if the keyword argument inplace=True is
57
+ passed to input() or to the FileInput constructor, the file is moved
58
+ to a backup file and standard output is directed to the input file.
59
+ This makes it possible to write a filter that rewrites its input file
60
+ in place. If the keyword argument backup=".<some extension>" is also
61
+ given, it specifies the extension for the backup file, and the backup
62
+ file remains around; by default, the extension is ".bak" and it is
63
+ deleted when the output file is closed. In-place filtering is
64
+ disabled when standard input is read. XXX The current implementation
65
+ does not work for MS-DOS 8+3 filesystems.
66
+ """
67
+
68
+ import io
69
+ import sys, os
70
+ from types import GenericAlias
71
+
72
+ __all__ = ["input", "close", "nextfile", "filename", "lineno", "filelineno",
73
+ "fileno", "isfirstline", "isstdin", "FileInput", "hook_compressed",
74
+ "hook_encoded"]
75
+
76
+ _state = None
77
+
78
+ def input(files=None, inplace=False, backup="", *, mode="r", openhook=None,
79
+ encoding=None, errors=None):
80
+ """Return an instance of the FileInput class, which can be iterated.
81
+
82
+ The parameters are passed to the constructor of the FileInput class.
83
+ The returned instance, in addition to being an iterator,
84
+ keeps global state for the functions of this module,.
85
+ """
86
+ global _state
87
+ if _state and _state._file:
88
+ raise RuntimeError("input() already active")
89
+ _state = FileInput(files, inplace, backup, mode=mode, openhook=openhook,
90
+ encoding=encoding, errors=errors)
91
+ return _state
92
+
93
+ def close():
94
+ """Close the sequence."""
95
+ global _state
96
+ state = _state
97
+ _state = None
98
+ if state:
99
+ state.close()
100
+
101
+ def nextfile():
102
+ """
103
+ Close the current file so that the next iteration will read the first
104
+ line from the next file (if any); lines not read from the file will
105
+ not count towards the cumulative line count. The filename is not
106
+ changed until after the first line of the next file has been read.
107
+ Before the first line has been read, this function has no effect;
108
+ it cannot be used to skip the first file. After the last line of the
109
+ last file has been read, this function has no effect.
110
+ """
111
+ if not _state:
112
+ raise RuntimeError("no active input()")
113
+ return _state.nextfile()
114
+
115
+ def filename():
116
+ """
117
+ Return the name of the file currently being read.
118
+ Before the first line has been read, returns None.
119
+ """
120
+ if not _state:
121
+ raise RuntimeError("no active input()")
122
+ return _state.filename()
123
+
124
+ def lineno():
125
+ """
126
+ Return the cumulative line number of the line that has just been read.
127
+ Before the first line has been read, returns 0. After the last line
128
+ of the last file has been read, returns the line number of that line.
129
+ """
130
+ if not _state:
131
+ raise RuntimeError("no active input()")
132
+ return _state.lineno()
133
+
134
+ def filelineno():
135
+ """
136
+ Return the line number in the current file. Before the first line
137
+ has been read, returns 0. After the last line of the last file has
138
+ been read, returns the line number of that line within the file.
139
+ """
140
+ if not _state:
141
+ raise RuntimeError("no active input()")
142
+ return _state.filelineno()
143
+
144
+ def fileno():
145
+ """
146
+ Return the file number of the current file. When no file is currently
147
+ opened, returns -1.
148
+ """
149
+ if not _state:
150
+ raise RuntimeError("no active input()")
151
+ return _state.fileno()
152
+
153
+ def isfirstline():
154
+ """
155
+ Returns true the line just read is the first line of its file,
156
+ otherwise returns false.
157
+ """
158
+ if not _state:
159
+ raise RuntimeError("no active input()")
160
+ return _state.isfirstline()
161
+
162
+ def isstdin():
163
+ """
164
+ Returns true if the last line was read from sys.stdin,
165
+ otherwise returns false.
166
+ """
167
+ if not _state:
168
+ raise RuntimeError("no active input()")
169
+ return _state.isstdin()
170
+
171
+ class FileInput:
172
+ """FileInput([files[, inplace[, backup]]], *, mode=None, openhook=None)
173
+
174
+ Class FileInput is the implementation of the module; its methods
175
+ filename(), lineno(), fileline(), isfirstline(), isstdin(), fileno(),
176
+ nextfile() and close() correspond to the functions of the same name
177
+ in the module.
178
+ In addition it has a readline() method which returns the next
179
+ input line, and a __getitem__() method which implements the
180
+ sequence behavior. The sequence must be accessed in strictly
181
+ sequential order; random access and readline() cannot be mixed.
182
+ """
183
+
184
+ def __init__(self, files=None, inplace=False, backup="", *,
185
+ mode="r", openhook=None, encoding=None, errors=None):
186
+ if isinstance(files, str):
187
+ files = (files,)
188
+ elif isinstance(files, os.PathLike):
189
+ files = (os.fspath(files), )
190
+ else:
191
+ if files is None:
192
+ files = sys.argv[1:]
193
+ if not files:
194
+ files = ('-',)
195
+ else:
196
+ files = tuple(files)
197
+ self._files = files
198
+ self._inplace = inplace
199
+ self._backup = backup
200
+ self._savestdout = None
201
+ self._output = None
202
+ self._filename = None
203
+ self._startlineno = 0
204
+ self._filelineno = 0
205
+ self._file = None
206
+ self._isstdin = False
207
+ self._backupfilename = None
208
+ self._encoding = encoding
209
+ self._errors = errors
210
+
211
+ # We can not use io.text_encoding() here because old openhook doesn't
212
+ # take encoding parameter.
213
+ if (sys.flags.warn_default_encoding and
214
+ "b" not in mode and encoding is None and openhook is None):
215
+ import warnings
216
+ warnings.warn("'encoding' argument not specified.",
217
+ EncodingWarning, 2)
218
+
219
+ # restrict mode argument to reading modes
220
+ if mode not in ('r', 'rb'):
221
+ raise ValueError("FileInput opening mode must be 'r' or 'rb'")
222
+ self._mode = mode
223
+ self._write_mode = mode.replace('r', 'w')
224
+ if openhook:
225
+ if inplace:
226
+ raise ValueError("FileInput cannot use an opening hook in inplace mode")
227
+ if not callable(openhook):
228
+ raise ValueError("FileInput openhook must be callable")
229
+ self._openhook = openhook
230
+
231
+ def __del__(self):
232
+ self.close()
233
+
234
+ def close(self):
235
+ try:
236
+ self.nextfile()
237
+ finally:
238
+ self._files = ()
239
+
240
+ def __enter__(self):
241
+ return self
242
+
243
+ def __exit__(self, type, value, traceback):
244
+ self.close()
245
+
246
+ def __iter__(self):
247
+ return self
248
+
249
+ def __next__(self):
250
+ while True:
251
+ line = self._readline()
252
+ if line:
253
+ self._filelineno += 1
254
+ return line
255
+ if not self._file:
256
+ raise StopIteration
257
+ self.nextfile()
258
+ # repeat with next file
259
+
260
+ def nextfile(self):
261
+ savestdout = self._savestdout
262
+ self._savestdout = None
263
+ if savestdout:
264
+ sys.stdout = savestdout
265
+
266
+ output = self._output
267
+ self._output = None
268
+ try:
269
+ if output:
270
+ output.close()
271
+ finally:
272
+ file = self._file
273
+ self._file = None
274
+ try:
275
+ del self._readline # restore FileInput._readline
276
+ except AttributeError:
277
+ pass
278
+ try:
279
+ if file and not self._isstdin:
280
+ file.close()
281
+ finally:
282
+ backupfilename = self._backupfilename
283
+ self._backupfilename = None
284
+ if backupfilename and not self._backup:
285
+ try: os.unlink(backupfilename)
286
+ except OSError: pass
287
+
288
+ self._isstdin = False
289
+
290
+ def readline(self):
291
+ while True:
292
+ line = self._readline()
293
+ if line:
294
+ self._filelineno += 1
295
+ return line
296
+ if not self._file:
297
+ return line
298
+ self.nextfile()
299
+ # repeat with next file
300
+
301
+ def _readline(self):
302
+ if not self._files:
303
+ if 'b' in self._mode:
304
+ return b''
305
+ else:
306
+ return ''
307
+ self._filename = self._files[0]
308
+ self._files = self._files[1:]
309
+ self._startlineno = self.lineno()
310
+ self._filelineno = 0
311
+ self._file = None
312
+ self._isstdin = False
313
+ self._backupfilename = 0
314
+
315
+ # EncodingWarning is emitted in __init__() already
316
+ if "b" not in self._mode:
317
+ encoding = self._encoding or "locale"
318
+ else:
319
+ encoding = None
320
+
321
+ if self._filename == '-':
322
+ self._filename = '<stdin>'
323
+ if 'b' in self._mode:
324
+ self._file = getattr(sys.stdin, 'buffer', sys.stdin)
325
+ else:
326
+ self._file = sys.stdin
327
+ self._isstdin = True
328
+ else:
329
+ if self._inplace:
330
+ self._backupfilename = (
331
+ os.fspath(self._filename) + (self._backup or ".bak"))
332
+ try:
333
+ os.unlink(self._backupfilename)
334
+ except OSError:
335
+ pass
336
+ # The next few lines may raise OSError
337
+ os.rename(self._filename, self._backupfilename)
338
+ self._file = open(self._backupfilename, self._mode,
339
+ encoding=encoding, errors=self._errors)
340
+ try:
341
+ perm = os.fstat(self._file.fileno()).st_mode
342
+ except OSError:
343
+ self._output = open(self._filename, self._write_mode,
344
+ encoding=encoding, errors=self._errors)
345
+ else:
346
+ mode = os.O_CREAT | os.O_WRONLY | os.O_TRUNC
347
+ if hasattr(os, 'O_BINARY'):
348
+ mode |= os.O_BINARY
349
+
350
+ fd = os.open(self._filename, mode, perm)
351
+ self._output = os.fdopen(fd, self._write_mode,
352
+ encoding=encoding, errors=self._errors)
353
+ try:
354
+ os.chmod(self._filename, perm)
355
+ except OSError:
356
+ pass
357
+ self._savestdout = sys.stdout
358
+ sys.stdout = self._output
359
+ else:
360
+ # This may raise OSError
361
+ if self._openhook:
362
+ # Custom hooks made previous to Python 3.10 didn't have
363
+ # encoding argument
364
+ if self._encoding is None:
365
+ self._file = self._openhook(self._filename, self._mode)
366
+ else:
367
+ self._file = self._openhook(
368
+ self._filename, self._mode, encoding=self._encoding, errors=self._errors)
369
+ else:
370
+ self._file = open(self._filename, self._mode, encoding=encoding, errors=self._errors)
371
+ self._readline = self._file.readline # hide FileInput._readline
372
+ return self._readline()
373
+
374
+ def filename(self):
375
+ return self._filename
376
+
377
+ def lineno(self):
378
+ return self._startlineno + self._filelineno
379
+
380
+ def filelineno(self):
381
+ return self._filelineno
382
+
383
+ def fileno(self):
384
+ if self._file:
385
+ try:
386
+ return self._file.fileno()
387
+ except ValueError:
388
+ return -1
389
+ else:
390
+ return -1
391
+
392
+ def isfirstline(self):
393
+ return self._filelineno == 1
394
+
395
+ def isstdin(self):
396
+ return self._isstdin
397
+
398
+ __class_getitem__ = classmethod(GenericAlias)
399
+
400
+
401
+ def hook_compressed(filename, mode, *, encoding=None, errors=None):
402
+ if encoding is None and "b" not in mode: # EncodingWarning is emitted in FileInput() already.
403
+ encoding = "locale"
404
+ ext = os.path.splitext(filename)[1]
405
+ if ext == '.gz':
406
+ import gzip
407
+ stream = gzip.open(filename, mode)
408
+ elif ext == '.bz2':
409
+ import bz2
410
+ stream = bz2.BZ2File(filename, mode)
411
+ else:
412
+ return open(filename, mode, encoding=encoding, errors=errors)
413
+
414
+ # gzip and bz2 are binary mode by default.
415
+ if "b" not in mode:
416
+ stream = io.TextIOWrapper(stream, encoding=encoding, errors=errors)
417
+ return stream
418
+
419
+
420
+ def hook_encoded(encoding, errors=None):
421
+ def openhook(filename, mode):
422
+ return open(filename, mode, encoding=encoding, errors=errors)
423
+ return openhook
424
+
425
+
426
+ def _test():
427
+ import getopt
428
+ inplace = False
429
+ backup = False
430
+ opts, args = getopt.getopt(sys.argv[1:], "ib:")
431
+ for o, a in opts:
432
+ if o == '-i': inplace = True
433
+ if o == '-b': backup = a
434
+ for line in input(args, inplace=inplace, backup=backup):
435
+ if line[-1:] == '\n': line = line[:-1]
436
+ if line[-1:] == '\r': line = line[:-1]
437
+ print("%d: %s[%d]%s %s" % (lineno(), filename(), filelineno(),
438
+ isfirstline() and "*" or "", line))
439
+ print("%d: %s[%d]" % (lineno(), filename(), filelineno()))
440
+
441
+ if __name__ == '__main__':
442
+ _test()
@@ -0,0 +1,192 @@
1
+ """Filename matching with shell patterns.
2
+
3
+ fnmatch(FILENAME, PATTERN) matches according to the local convention.
4
+ fnmatchcase(FILENAME, PATTERN) always takes case in account.
5
+
6
+ The functions operate by translating the pattern into a regular
7
+ expression. They cache the compiled regular expressions for speed.
8
+
9
+ The function translate(PATTERN) returns a regular expression
10
+ corresponding to PATTERN. (It does not compile it.)
11
+ """
12
+ import os
13
+ import posixpath
14
+ import re
15
+ import functools
16
+
17
+ __all__ = ["filter", "fnmatch", "fnmatchcase", "translate"]
18
+
19
+ def fnmatch(name, pat):
20
+ """Test whether FILENAME matches PATTERN.
21
+
22
+ Patterns are Unix shell style:
23
+
24
+ * matches everything
25
+ ? matches any single character
26
+ [seq] matches any character in seq
27
+ [!seq] matches any char not in seq
28
+
29
+ An initial period in FILENAME is not special.
30
+ Both FILENAME and PATTERN are first case-normalized
31
+ if the operating system requires it.
32
+ If you don't want this, use fnmatchcase(FILENAME, PATTERN).
33
+ """
34
+ name = os.path.normcase(name)
35
+ pat = os.path.normcase(pat)
36
+ return fnmatchcase(name, pat)
37
+
38
+ @functools.lru_cache(maxsize=32768, typed=True)
39
+ def _compile_pattern(pat):
40
+ if isinstance(pat, bytes):
41
+ pat_str = str(pat, 'ISO-8859-1')
42
+ res_str = translate(pat_str)
43
+ res = bytes(res_str, 'ISO-8859-1')
44
+ else:
45
+ res = translate(pat)
46
+ return re.compile(res).match
47
+
48
+ def filter(names, pat):
49
+ """Construct a list from those elements of the iterable NAMES that match PAT."""
50
+ result = []
51
+ pat = os.path.normcase(pat)
52
+ match = _compile_pattern(pat)
53
+ if os.path is posixpath:
54
+ # normcase on posix is NOP. Optimize it away from the loop.
55
+ for name in names:
56
+ if match(name):
57
+ result.append(name)
58
+ else:
59
+ for name in names:
60
+ if match(os.path.normcase(name)):
61
+ result.append(name)
62
+ return result
63
+
64
+ def fnmatchcase(name, pat):
65
+ """Test whether FILENAME matches PATTERN, including case.
66
+
67
+ This is a version of fnmatch() which doesn't case-normalize
68
+ its arguments.
69
+ """
70
+ match = _compile_pattern(pat)
71
+ return match(name) is not None
72
+
73
+
74
+ def translate(pat):
75
+ """Translate a shell PATTERN to a regular expression.
76
+
77
+ There is no way to quote meta-characters.
78
+ """
79
+
80
+ STAR = object()
81
+ parts = _translate(pat, STAR, '.')
82
+ return _join_translated_parts(parts, STAR)
83
+
84
+
85
+ def _translate(pat, STAR, QUESTION_MARK):
86
+ res = []
87
+ add = res.append
88
+ i, n = 0, len(pat)
89
+ while i < n:
90
+ c = pat[i]
91
+ i = i+1
92
+ if c == '*':
93
+ # compress consecutive `*` into one
94
+ if (not res) or res[-1] is not STAR:
95
+ add(STAR)
96
+ elif c == '?':
97
+ add(QUESTION_MARK)
98
+ elif c == '[':
99
+ j = i
100
+ if j < n and pat[j] == '!':
101
+ j = j+1
102
+ if j < n and pat[j] == ']':
103
+ j = j+1
104
+ while j < n and pat[j] != ']':
105
+ j = j+1
106
+ if j >= n:
107
+ add('\\[')
108
+ else:
109
+ stuff = pat[i:j]
110
+ if '-' not in stuff:
111
+ stuff = stuff.replace('\\', r'\\')
112
+ else:
113
+ chunks = []
114
+ k = i+2 if pat[i] == '!' else i+1
115
+ while True:
116
+ k = pat.find('-', k, j)
117
+ if k < 0:
118
+ break
119
+ chunks.append(pat[i:k])
120
+ i = k+1
121
+ k = k+3
122
+ chunk = pat[i:j]
123
+ if chunk:
124
+ chunks.append(chunk)
125
+ else:
126
+ chunks[-1] += '-'
127
+ # Remove empty ranges -- invalid in RE.
128
+ for k in range(len(chunks)-1, 0, -1):
129
+ if chunks[k-1][-1] > chunks[k][0]:
130
+ chunks[k-1] = chunks[k-1][:-1] + chunks[k][1:]
131
+ del chunks[k]
132
+ # Escape backslashes and hyphens for set difference (--).
133
+ # Hyphens that create ranges shouldn't be escaped.
134
+ stuff = '-'.join(s.replace('\\', r'\\').replace('-', r'\-')
135
+ for s in chunks)
136
+ # Escape set operations (&&, ~~ and ||).
137
+ stuff = re.sub(r'([&~|])', r'\\\1', stuff)
138
+ i = j+1
139
+ if not stuff:
140
+ # Empty range: never match.
141
+ add('(?!)')
142
+ elif stuff == '!':
143
+ # Negated empty range: match any character.
144
+ add('.')
145
+ else:
146
+ if stuff[0] == '!':
147
+ stuff = '^' + stuff[1:]
148
+ elif stuff[0] in ('^', '['):
149
+ stuff = '\\' + stuff
150
+ add(f'[{stuff}]')
151
+ else:
152
+ add(re.escape(c))
153
+ assert i == n
154
+ return res
155
+
156
+
157
+ def _join_translated_parts(inp, STAR):
158
+ # Deal with STARs.
159
+ res = []
160
+ add = res.append
161
+ i, n = 0, len(inp)
162
+ # Fixed pieces at the start?
163
+ while i < n and inp[i] is not STAR:
164
+ add(inp[i])
165
+ i += 1
166
+ # Now deal with STAR fixed STAR fixed ...
167
+ # For an interior `STAR fixed` pairing, we want to do a minimal
168
+ # .*? match followed by `fixed`, with no possibility of backtracking.
169
+ # Atomic groups ("(?>...)") allow us to spell that directly.
170
+ # Note: people rely on the undocumented ability to join multiple
171
+ # translate() results together via "|" to build large regexps matching
172
+ # "one of many" shell patterns.
173
+ while i < n:
174
+ assert inp[i] is STAR
175
+ i += 1
176
+ if i == n:
177
+ add(".*")
178
+ break
179
+ assert inp[i] is not STAR
180
+ fixed = []
181
+ while i < n and inp[i] is not STAR:
182
+ fixed.append(inp[i])
183
+ i += 1
184
+ fixed = "".join(fixed)
185
+ if i == n:
186
+ add(".*")
187
+ add(fixed)
188
+ else:
189
+ add(f"(?>.*?{fixed})")
190
+ assert i == n
191
+ res = "".join(res)
192
+ return fr'(?s:{res})\Z'