@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,200 @@
1
+ """
2
+ Path operations common to more than one OS
3
+ Do not use directly. The OS specific modules import the appropriate
4
+ functions from this module themselves.
5
+ """
6
+ import os
7
+ import stat
8
+
9
+ __all__ = ['commonprefix', 'exists', 'getatime', 'getctime', 'getmtime',
10
+ 'getsize', 'isdevdrive', 'isdir', 'isfile', 'isjunction', 'islink',
11
+ 'lexists', 'samefile', 'sameopenfile', 'samestat', 'ALLOW_MISSING']
12
+
13
+
14
+ # Does a path exist?
15
+ # This is false for dangling symbolic links on systems that support them.
16
+ def exists(path):
17
+ """Test whether a path exists. Returns False for broken symbolic links"""
18
+ try:
19
+ os.stat(path)
20
+ except (OSError, ValueError):
21
+ return False
22
+ return True
23
+
24
+
25
+ # Being true for dangling symbolic links is also useful.
26
+ def lexists(path):
27
+ """Test whether a path exists. Returns True for broken symbolic links"""
28
+ try:
29
+ os.lstat(path)
30
+ except (OSError, ValueError):
31
+ return False
32
+ return True
33
+
34
+ # This follows symbolic links, so both islink() and isdir() can be true
35
+ # for the same path on systems that support symlinks
36
+ def isfile(path):
37
+ """Test whether a path is a regular file"""
38
+ try:
39
+ st = os.stat(path)
40
+ except (OSError, ValueError):
41
+ return False
42
+ return stat.S_ISREG(st.st_mode)
43
+
44
+
45
+ # Is a path a directory?
46
+ # This follows symbolic links, so both islink() and isdir()
47
+ # can be true for the same path on systems that support symlinks
48
+ def isdir(s):
49
+ """Return true if the pathname refers to an existing directory."""
50
+ try:
51
+ st = os.stat(s)
52
+ except (OSError, ValueError):
53
+ return False
54
+ return stat.S_ISDIR(st.st_mode)
55
+
56
+
57
+ # Is a path a symbolic link?
58
+ # This will always return false on systems where os.lstat doesn't exist.
59
+
60
+ def islink(path):
61
+ """Test whether a path is a symbolic link"""
62
+ try:
63
+ st = os.lstat(path)
64
+ except (OSError, ValueError, AttributeError):
65
+ return False
66
+ return stat.S_ISLNK(st.st_mode)
67
+
68
+
69
+ # Is a path a junction?
70
+ def isjunction(path):
71
+ """Test whether a path is a junction
72
+ Junctions are not supported on the current platform"""
73
+ os.fspath(path)
74
+ return False
75
+
76
+
77
+ def isdevdrive(path):
78
+ """Determines whether the specified path is on a Windows Dev Drive.
79
+ Dev Drives are not supported on the current platform"""
80
+ os.fspath(path)
81
+ return False
82
+
83
+
84
+ def getsize(filename):
85
+ """Return the size of a file, reported by os.stat()."""
86
+ return os.stat(filename).st_size
87
+
88
+
89
+ def getmtime(filename):
90
+ """Return the last modification time of a file, reported by os.stat()."""
91
+ return os.stat(filename).st_mtime
92
+
93
+
94
+ def getatime(filename):
95
+ """Return the last access time of a file, reported by os.stat()."""
96
+ return os.stat(filename).st_atime
97
+
98
+
99
+ def getctime(filename):
100
+ """Return the metadata change time of a file, reported by os.stat()."""
101
+ return os.stat(filename).st_ctime
102
+
103
+
104
+ # Return the longest prefix of all list elements.
105
+ def commonprefix(m):
106
+ "Given a list of pathnames, returns the longest common leading component"
107
+ if not m: return ''
108
+ # Some people pass in a list of pathname parts to operate in an OS-agnostic
109
+ # fashion; don't try to translate in that case as that's an abuse of the
110
+ # API and they are already doing what they need to be OS-agnostic and so
111
+ # they most likely won't be using an os.PathLike object in the sublists.
112
+ if not isinstance(m[0], (list, tuple)):
113
+ m = tuple(map(os.fspath, m))
114
+ s1 = min(m)
115
+ s2 = max(m)
116
+ for i, c in enumerate(s1):
117
+ if c != s2[i]:
118
+ return s1[:i]
119
+ return s1
120
+
121
+ # Are two stat buffers (obtained from stat, fstat or lstat)
122
+ # describing the same file?
123
+ def samestat(s1, s2):
124
+ """Test whether two stat buffers reference the same file"""
125
+ return (s1.st_ino == s2.st_ino and
126
+ s1.st_dev == s2.st_dev)
127
+
128
+
129
+ # Are two filenames really pointing to the same file?
130
+ def samefile(f1, f2):
131
+ """Test whether two pathnames reference the same actual file or directory
132
+
133
+ This is determined by the device number and i-node number and
134
+ raises an exception if an os.stat() call on either pathname fails.
135
+ """
136
+ s1 = os.stat(f1)
137
+ s2 = os.stat(f2)
138
+ return samestat(s1, s2)
139
+
140
+
141
+ # Are two open files really referencing the same file?
142
+ # (Not necessarily the same file descriptor!)
143
+ def sameopenfile(fp1, fp2):
144
+ """Test whether two open file objects reference the same file"""
145
+ s1 = os.fstat(fp1)
146
+ s2 = os.fstat(fp2)
147
+ return samestat(s1, s2)
148
+
149
+
150
+ # Split a path in root and extension.
151
+ # The extension is everything starting at the last dot in the last
152
+ # pathname component; the root is everything before that.
153
+ # It is always true that root + ext == p.
154
+
155
+ # Generic implementation of splitext, to be parametrized with
156
+ # the separators
157
+ def _splitext(p, sep, altsep, extsep):
158
+ """Split the extension from a pathname.
159
+
160
+ Extension is everything from the last dot to the end, ignoring
161
+ leading dots. Returns "(root, ext)"; ext may be empty."""
162
+ # NOTE: This code must work for text and bytes strings.
163
+
164
+ sepIndex = p.rfind(sep)
165
+ if altsep:
166
+ altsepIndex = p.rfind(altsep)
167
+ sepIndex = max(sepIndex, altsepIndex)
168
+
169
+ dotIndex = p.rfind(extsep)
170
+ if dotIndex > sepIndex:
171
+ # skip all leading dots
172
+ filenameIndex = sepIndex + 1
173
+ while filenameIndex < dotIndex:
174
+ if p[filenameIndex:filenameIndex+1] != extsep:
175
+ return p[:dotIndex], p[dotIndex:]
176
+ filenameIndex += 1
177
+
178
+ return p, p[:0]
179
+
180
+ def _check_arg_types(funcname, *args):
181
+ hasstr = hasbytes = False
182
+ for s in args:
183
+ if isinstance(s, str):
184
+ hasstr = True
185
+ elif isinstance(s, bytes):
186
+ hasbytes = True
187
+ else:
188
+ raise TypeError(f'{funcname}() argument must be str, bytes, or '
189
+ f'os.PathLike object, not {s.__class__.__name__!r}') from None
190
+ if hasstr and hasbytes:
191
+ raise TypeError("Can't mix strings and bytes in path components") from None
192
+
193
+ # A singleton with a true boolean value.
194
+ @object.__new__
195
+ class ALLOW_MISSING:
196
+ """Special value for use in realpath()."""
197
+ def __repr__(self):
198
+ return 'os.path.ALLOW_MISSING'
199
+ def __reduce__(self):
200
+ return self.__class__.__name__
@@ -0,0 +1,215 @@
1
+ """Parser for command line options.
2
+
3
+ This module helps scripts to parse the command line arguments in
4
+ sys.argv. It supports the same conventions as the Unix getopt()
5
+ function (including the special meanings of arguments of the form `-'
6
+ and `--'). Long options similar to those supported by GNU software
7
+ may be used as well via an optional third argument. This module
8
+ provides two functions and an exception:
9
+
10
+ getopt() -- Parse command line options
11
+ gnu_getopt() -- Like getopt(), but allow option and non-option arguments
12
+ to be intermixed.
13
+ GetoptError -- exception (class) raised with 'opt' attribute, which is the
14
+ option involved with the exception.
15
+ """
16
+
17
+ # Long option support added by Lars Wirzenius <liw@iki.fi>.
18
+ #
19
+ # Gerrit Holl <gerrit@nl.linux.org> moved the string-based exceptions
20
+ # to class-based exceptions.
21
+ #
22
+ # Peter Åstrand <astrand@lysator.liu.se> added gnu_getopt().
23
+ #
24
+ # TODO for gnu_getopt():
25
+ #
26
+ # - GNU getopt_long_only mechanism
27
+ # - allow the caller to specify ordering
28
+ # - RETURN_IN_ORDER option
29
+ # - GNU extension with '-' as first character of option string
30
+ # - optional arguments, specified by double colons
31
+ # - an option string with a W followed by semicolon should
32
+ # treat "-W foo" as "--foo"
33
+
34
+ __all__ = ["GetoptError","error","getopt","gnu_getopt"]
35
+
36
+ import os
37
+ try:
38
+ from gettext import gettext as _
39
+ except ImportError:
40
+ # Bootstrapping Python: gettext's dependencies not built yet
41
+ def _(s): return s
42
+
43
+ class GetoptError(Exception):
44
+ opt = ''
45
+ msg = ''
46
+ def __init__(self, msg, opt=''):
47
+ self.msg = msg
48
+ self.opt = opt
49
+ Exception.__init__(self, msg, opt)
50
+
51
+ def __str__(self):
52
+ return self.msg
53
+
54
+ error = GetoptError # backward compatibility
55
+
56
+ def getopt(args, shortopts, longopts = []):
57
+ """getopt(args, options[, long_options]) -> opts, args
58
+
59
+ Parses command line options and parameter list. args is the
60
+ argument list to be parsed, without the leading reference to the
61
+ running program. Typically, this means "sys.argv[1:]". shortopts
62
+ is the string of option letters that the script wants to
63
+ recognize, with options that require an argument followed by a
64
+ colon (i.e., the same format that Unix getopt() uses). If
65
+ specified, longopts is a list of strings with the names of the
66
+ long options which should be supported. The leading '--'
67
+ characters should not be included in the option name. Options
68
+ which require an argument should be followed by an equal sign
69
+ ('=').
70
+
71
+ The return value consists of two elements: the first is a list of
72
+ (option, value) pairs; the second is the list of program arguments
73
+ left after the option list was stripped (this is a trailing slice
74
+ of the first argument). Each option-and-value pair returned has
75
+ the option as its first element, prefixed with a hyphen (e.g.,
76
+ '-x'), and the option argument as its second element, or an empty
77
+ string if the option has no argument. The options occur in the
78
+ list in the same order in which they were found, thus allowing
79
+ multiple occurrences. Long and short options may be mixed.
80
+
81
+ """
82
+
83
+ opts = []
84
+ if isinstance(longopts, str):
85
+ longopts = [longopts]
86
+ else:
87
+ longopts = list(longopts)
88
+ while args and args[0].startswith('-') and args[0] != '-':
89
+ if args[0] == '--':
90
+ args = args[1:]
91
+ break
92
+ if args[0].startswith('--'):
93
+ opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
94
+ else:
95
+ opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
96
+
97
+ return opts, args
98
+
99
+ def gnu_getopt(args, shortopts, longopts = []):
100
+ """getopt(args, options[, long_options]) -> opts, args
101
+
102
+ This function works like getopt(), except that GNU style scanning
103
+ mode is used by default. This means that option and non-option
104
+ arguments may be intermixed. The getopt() function stops
105
+ processing options as soon as a non-option argument is
106
+ encountered.
107
+
108
+ If the first character of the option string is `+', or if the
109
+ environment variable POSIXLY_CORRECT is set, then option
110
+ processing stops as soon as a non-option argument is encountered.
111
+
112
+ """
113
+
114
+ opts = []
115
+ prog_args = []
116
+ if isinstance(longopts, str):
117
+ longopts = [longopts]
118
+ else:
119
+ longopts = list(longopts)
120
+
121
+ # Allow options after non-option arguments?
122
+ if shortopts.startswith('+'):
123
+ shortopts = shortopts[1:]
124
+ all_options_first = True
125
+ elif os.environ.get("POSIXLY_CORRECT"):
126
+ all_options_first = True
127
+ else:
128
+ all_options_first = False
129
+
130
+ while args:
131
+ if args[0] == '--':
132
+ prog_args += args[1:]
133
+ break
134
+
135
+ if args[0][:2] == '--':
136
+ opts, args = do_longs(opts, args[0][2:], longopts, args[1:])
137
+ elif args[0][:1] == '-' and args[0] != '-':
138
+ opts, args = do_shorts(opts, args[0][1:], shortopts, args[1:])
139
+ else:
140
+ if all_options_first:
141
+ prog_args += args
142
+ break
143
+ else:
144
+ prog_args.append(args[0])
145
+ args = args[1:]
146
+
147
+ return opts, prog_args
148
+
149
+ def do_longs(opts, opt, longopts, args):
150
+ try:
151
+ i = opt.index('=')
152
+ except ValueError:
153
+ optarg = None
154
+ else:
155
+ opt, optarg = opt[:i], opt[i+1:]
156
+
157
+ has_arg, opt = long_has_args(opt, longopts)
158
+ if has_arg:
159
+ if optarg is None:
160
+ if not args:
161
+ raise GetoptError(_('option --%s requires argument') % opt, opt)
162
+ optarg, args = args[0], args[1:]
163
+ elif optarg is not None:
164
+ raise GetoptError(_('option --%s must not have an argument') % opt, opt)
165
+ opts.append(('--' + opt, optarg or ''))
166
+ return opts, args
167
+
168
+ # Return:
169
+ # has_arg?
170
+ # full option name
171
+ def long_has_args(opt, longopts):
172
+ possibilities = [o for o in longopts if o.startswith(opt)]
173
+ if not possibilities:
174
+ raise GetoptError(_('option --%s not recognized') % opt, opt)
175
+ # Is there an exact match?
176
+ if opt in possibilities:
177
+ return False, opt
178
+ elif opt + '=' in possibilities:
179
+ return True, opt
180
+ # No exact match, so better be unique.
181
+ if len(possibilities) > 1:
182
+ # XXX since possibilities contains all valid continuations, might be
183
+ # nice to work them into the error msg
184
+ raise GetoptError(_('option --%s not a unique prefix') % opt, opt)
185
+ assert len(possibilities) == 1
186
+ unique_match = possibilities[0]
187
+ has_arg = unique_match.endswith('=')
188
+ if has_arg:
189
+ unique_match = unique_match[:-1]
190
+ return has_arg, unique_match
191
+
192
+ def do_shorts(opts, optstring, shortopts, args):
193
+ while optstring != '':
194
+ opt, optstring = optstring[0], optstring[1:]
195
+ if short_has_arg(opt, shortopts):
196
+ if optstring == '':
197
+ if not args:
198
+ raise GetoptError(_('option -%s requires argument') % opt,
199
+ opt)
200
+ optstring, args = args[0], args[1:]
201
+ optarg, optstring = optstring, ''
202
+ else:
203
+ optarg = ''
204
+ opts.append(('-' + opt, optarg))
205
+ return opts, args
206
+
207
+ def short_has_arg(opt, shortopts):
208
+ for i in range(len(shortopts)):
209
+ if opt == shortopts[i] != ':':
210
+ return shortopts.startswith(':', i+1)
211
+ raise GetoptError(_('option -%s not recognized') % opt, opt)
212
+
213
+ if __name__ == '__main__':
214
+ import sys
215
+ print(getopt(sys.argv[1:], "a:b", ["alpha=", "beta"]))
@@ -0,0 +1,192 @@
1
+ """Utilities to get a password and/or the current user name.
2
+
3
+ getpass(prompt[, stream]) - Prompt for a password, with echo turned off.
4
+ getuser() - Get the user name from the environment or password database.
5
+
6
+ GetPassWarning - This UserWarning is issued when getpass() cannot prevent
7
+ echoing of the password contents while reading.
8
+
9
+ On Windows, the msvcrt module will be used.
10
+
11
+ """
12
+
13
+ # Authors: Piers Lauder (original)
14
+ # Guido van Rossum (Windows support and cleanup)
15
+ # Gregory P. Smith (tty support & GetPassWarning)
16
+
17
+ import contextlib
18
+ import io
19
+ import os
20
+ import sys
21
+
22
+ __all__ = ["getpass","getuser","GetPassWarning"]
23
+
24
+
25
+ class GetPassWarning(UserWarning): pass
26
+
27
+
28
+ def unix_getpass(prompt='Password: ', stream=None):
29
+ """Prompt for a password, with echo turned off.
30
+
31
+ Args:
32
+ prompt: Written on stream to ask for the input. Default: 'Password: '
33
+ stream: A writable file object to display the prompt. Defaults to
34
+ the tty. If no tty is available defaults to sys.stderr.
35
+ Returns:
36
+ The seKr3t input.
37
+ Raises:
38
+ EOFError: If our input tty or stdin was closed.
39
+ GetPassWarning: When we were unable to turn echo off on the input.
40
+
41
+ Always restores terminal settings before returning.
42
+ """
43
+ passwd = None
44
+ with contextlib.ExitStack() as stack:
45
+ try:
46
+ # Always try reading and writing directly on the tty first.
47
+ fd = os.open('/dev/tty', os.O_RDWR|os.O_NOCTTY)
48
+ tty = io.FileIO(fd, 'w+')
49
+ stack.enter_context(tty)
50
+ input = io.TextIOWrapper(tty)
51
+ stack.enter_context(input)
52
+ if not stream:
53
+ stream = input
54
+ except OSError:
55
+ # If that fails, see if stdin can be controlled.
56
+ stack.close()
57
+ try:
58
+ fd = sys.stdin.fileno()
59
+ except (AttributeError, ValueError):
60
+ fd = None
61
+ passwd = fallback_getpass(prompt, stream)
62
+ input = sys.stdin
63
+ if not stream:
64
+ stream = sys.stderr
65
+
66
+ if fd is not None:
67
+ try:
68
+ old = termios.tcgetattr(fd) # a copy to save
69
+ new = old[:]
70
+ new[3] &= ~termios.ECHO # 3 == 'lflags'
71
+ tcsetattr_flags = termios.TCSAFLUSH
72
+ if hasattr(termios, 'TCSASOFT'):
73
+ tcsetattr_flags |= termios.TCSASOFT
74
+ try:
75
+ termios.tcsetattr(fd, tcsetattr_flags, new)
76
+ passwd = _raw_input(prompt, stream, input=input)
77
+ finally:
78
+ termios.tcsetattr(fd, tcsetattr_flags, old)
79
+ stream.flush() # issue7208
80
+ except termios.error:
81
+ if passwd is not None:
82
+ # _raw_input succeeded. The final tcsetattr failed. Reraise
83
+ # instead of leaving the terminal in an unknown state.
84
+ raise
85
+ # We can't control the tty or stdin. Give up and use normal IO.
86
+ # fallback_getpass() raises an appropriate warning.
87
+ if stream is not input:
88
+ # clean up unused file objects before blocking
89
+ stack.close()
90
+ passwd = fallback_getpass(prompt, stream)
91
+
92
+ stream.write('\n')
93
+ return passwd
94
+
95
+
96
+ def win_getpass(prompt='Password: ', stream=None):
97
+ """Prompt for password with echo off, using Windows getwch()."""
98
+ if sys.stdin is not sys.__stdin__:
99
+ return fallback_getpass(prompt, stream)
100
+
101
+ for c in prompt:
102
+ msvcrt.putwch(c)
103
+ pw = ""
104
+ while 1:
105
+ c = msvcrt.getwch()
106
+ if c == '\r' or c == '\n':
107
+ break
108
+ if c == '\003':
109
+ raise KeyboardInterrupt
110
+ if c == '\b':
111
+ pw = pw[:-1]
112
+ else:
113
+ pw = pw + c
114
+ msvcrt.putwch('\r')
115
+ msvcrt.putwch('\n')
116
+ return pw
117
+
118
+
119
+ def fallback_getpass(prompt='Password: ', stream=None):
120
+ import warnings
121
+ warnings.warn("Can not control echo on the terminal.", GetPassWarning,
122
+ stacklevel=2)
123
+ if not stream:
124
+ stream = sys.stderr
125
+ print("Warning: Password input may be echoed.", file=stream)
126
+ return _raw_input(prompt, stream)
127
+
128
+
129
+ def _raw_input(prompt="", stream=None, input=None):
130
+ # This doesn't save the string in the GNU readline history.
131
+ if not stream:
132
+ stream = sys.stderr
133
+ if not input:
134
+ input = sys.stdin
135
+ prompt = str(prompt)
136
+ if prompt:
137
+ try:
138
+ stream.write(prompt)
139
+ except UnicodeEncodeError:
140
+ # Use replace error handler to get as much as possible printed.
141
+ prompt = prompt.encode(stream.encoding, 'replace')
142
+ prompt = prompt.decode(stream.encoding)
143
+ stream.write(prompt)
144
+ stream.flush()
145
+ # NOTE: The Python C API calls flockfile() (and unlock) during readline.
146
+ line = input.readline()
147
+ if not line:
148
+ raise EOFError
149
+ if line[-1] == '\n':
150
+ line = line[:-1]
151
+ return line
152
+
153
+
154
+ def getuser():
155
+ """Get the username from the environment or password database.
156
+
157
+ First try various environment variables, then the password
158
+ database. This works on Windows as long as USERNAME is set.
159
+ Any failure to find a username raises OSError.
160
+
161
+ .. versionchanged:: 3.13
162
+ Previously, various exceptions beyond just :exc:`OSError`
163
+ were raised.
164
+ """
165
+
166
+ for name in ('LOGNAME', 'USER', 'LNAME', 'USERNAME'):
167
+ user = os.environ.get(name)
168
+ if user:
169
+ return user
170
+
171
+ try:
172
+ import pwd
173
+ return pwd.getpwuid(os.getuid())[0]
174
+ except (ImportError, KeyError) as e:
175
+ raise OSError('No username set in the environment') from e
176
+
177
+
178
+ # Bind the name getpass to the appropriate function
179
+ try:
180
+ import termios
181
+ # it's possible there is an incompatible termios from the
182
+ # McMillan Installer, make sure we have a UNIX-compatible termios
183
+ termios.tcgetattr, termios.tcsetattr
184
+ except (ImportError, AttributeError):
185
+ try:
186
+ import msvcrt
187
+ except ImportError:
188
+ getpass = fallback_getpass
189
+ else:
190
+ getpass = win_getpass
191
+ else:
192
+ getpass = unix_getpass