@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,387 @@
1
+ # This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
2
+
3
+ import stringprep, re, codecs
4
+ from unicodedata import ucd_3_2_0 as unicodedata
5
+
6
+ # IDNA section 3.1
7
+ dots = re.compile("[\u002E\u3002\uFF0E\uFF61]")
8
+
9
+ # IDNA section 5
10
+ ace_prefix = b"xn--"
11
+ sace_prefix = "xn--"
12
+
13
+ # This assumes query strings, so AllowUnassigned is true
14
+ def nameprep(label): # type: (str) -> str
15
+ # Map
16
+ newlabel = []
17
+ for c in label:
18
+ if stringprep.in_table_b1(c):
19
+ # Map to nothing
20
+ continue
21
+ newlabel.append(stringprep.map_table_b2(c))
22
+ label = "".join(newlabel)
23
+
24
+ # Normalize
25
+ label = unicodedata.normalize("NFKC", label)
26
+
27
+ # Prohibit
28
+ for i, c in enumerate(label):
29
+ if stringprep.in_table_c12(c) or \
30
+ stringprep.in_table_c22(c) or \
31
+ stringprep.in_table_c3(c) or \
32
+ stringprep.in_table_c4(c) or \
33
+ stringprep.in_table_c5(c) or \
34
+ stringprep.in_table_c6(c) or \
35
+ stringprep.in_table_c7(c) or \
36
+ stringprep.in_table_c8(c) or \
37
+ stringprep.in_table_c9(c):
38
+ raise UnicodeEncodeError("idna", label, i, i+1, f"Invalid character {c!r}")
39
+
40
+ # Check bidi
41
+ RandAL = [stringprep.in_table_d1(x) for x in label]
42
+ if any(RandAL):
43
+ # There is a RandAL char in the string. Must perform further
44
+ # tests:
45
+ # 1) The characters in section 5.8 MUST be prohibited.
46
+ # This is table C.8, which was already checked
47
+ # 2) If a string contains any RandALCat character, the string
48
+ # MUST NOT contain any LCat character.
49
+ for i, x in enumerate(label):
50
+ if stringprep.in_table_d2(x):
51
+ raise UnicodeEncodeError("idna", label, i, i+1,
52
+ "Violation of BIDI requirement 2")
53
+ # 3) If a string contains any RandALCat character, a
54
+ # RandALCat character MUST be the first character of the
55
+ # string, and a RandALCat character MUST be the last
56
+ # character of the string.
57
+ if not RandAL[0]:
58
+ raise UnicodeEncodeError("idna", label, 0, 1,
59
+ "Violation of BIDI requirement 3")
60
+ if not RandAL[-1]:
61
+ raise UnicodeEncodeError("idna", label, len(label)-1, len(label),
62
+ "Violation of BIDI requirement 3")
63
+
64
+ return label
65
+
66
+ def ToASCII(label): # type: (str) -> bytes
67
+ try:
68
+ # Step 1: try ASCII
69
+ label_ascii = label.encode("ascii")
70
+ except UnicodeEncodeError:
71
+ pass
72
+ else:
73
+ # Skip to step 3: UseSTD3ASCIIRules is false, so
74
+ # Skip to step 8.
75
+ if 0 < len(label_ascii) < 64:
76
+ return label_ascii
77
+ if len(label) == 0:
78
+ raise UnicodeEncodeError("idna", label, 0, 1, "label empty")
79
+ else:
80
+ raise UnicodeEncodeError("idna", label, 0, len(label), "label too long")
81
+
82
+ # Step 2: nameprep
83
+ label = nameprep(label)
84
+
85
+ # Step 3: UseSTD3ASCIIRules is false
86
+ # Step 4: try ASCII
87
+ try:
88
+ label_ascii = label.encode("ascii")
89
+ except UnicodeEncodeError:
90
+ pass
91
+ else:
92
+ # Skip to step 8.
93
+ if 0 < len(label) < 64:
94
+ return label_ascii
95
+ if len(label) == 0:
96
+ raise UnicodeEncodeError("idna", label, 0, 1, "label empty")
97
+ else:
98
+ raise UnicodeEncodeError("idna", label, 0, len(label), "label too long")
99
+
100
+ # Step 5: Check ACE prefix
101
+ if label.lower().startswith(sace_prefix):
102
+ raise UnicodeEncodeError(
103
+ "idna", label, 0, len(sace_prefix), "Label starts with ACE prefix")
104
+
105
+ # Step 6: Encode with PUNYCODE
106
+ label_ascii = label.encode("punycode")
107
+
108
+ # Step 7: Prepend ACE prefix
109
+ label_ascii = ace_prefix + label_ascii
110
+
111
+ # Step 8: Check size
112
+ # do not check for empty as we prepend ace_prefix.
113
+ if len(label_ascii) < 64:
114
+ return label_ascii
115
+ raise UnicodeEncodeError("idna", label, 0, len(label), "label too long")
116
+
117
+ def ToUnicode(label):
118
+ if len(label) > 1024:
119
+ # Protection from https://github.com/python/cpython/issues/98433.
120
+ # https://datatracker.ietf.org/doc/html/rfc5894#section-6
121
+ # doesn't specify a label size limit prior to NAMEPREP. But having
122
+ # one makes practical sense.
123
+ # This leaves ample room for nameprep() to remove Nothing characters
124
+ # per https://www.rfc-editor.org/rfc/rfc3454#section-3.1 while still
125
+ # preventing us from wasting time decoding a big thing that'll just
126
+ # hit the actual <= 63 length limit in Step 6.
127
+ if isinstance(label, str):
128
+ label = label.encode("utf-8", errors="backslashreplace")
129
+ raise UnicodeDecodeError("idna", label, 0, len(label), "label way too long")
130
+ # Step 1: Check for ASCII
131
+ if isinstance(label, bytes):
132
+ pure_ascii = True
133
+ else:
134
+ try:
135
+ label = label.encode("ascii")
136
+ pure_ascii = True
137
+ except UnicodeEncodeError:
138
+ pure_ascii = False
139
+ if not pure_ascii:
140
+ assert isinstance(label, str)
141
+ # Step 2: Perform nameprep
142
+ label = nameprep(label)
143
+ # It doesn't say this, but apparently, it should be ASCII now
144
+ try:
145
+ label = label.encode("ascii")
146
+ except UnicodeEncodeError as exc:
147
+ raise UnicodeEncodeError("idna", label, exc.start, exc.end,
148
+ "Invalid character in IDN label")
149
+ # Step 3: Check for ACE prefix
150
+ assert isinstance(label, bytes)
151
+ if not label.lower().startswith(ace_prefix):
152
+ return str(label, "ascii")
153
+
154
+ # Step 4: Remove ACE prefix
155
+ label1 = label[len(ace_prefix):]
156
+
157
+ # Step 5: Decode using PUNYCODE
158
+ try:
159
+ result = label1.decode("punycode")
160
+ except UnicodeDecodeError as exc:
161
+ offset = len(ace_prefix)
162
+ raise UnicodeDecodeError("idna", label, offset+exc.start, offset+exc.end, exc.reason)
163
+
164
+ # Step 6: Apply ToASCII
165
+ label2 = ToASCII(result)
166
+
167
+ # Step 7: Compare the result of step 6 with the one of step 3
168
+ # label2 will already be in lower case.
169
+ if str(label, "ascii").lower() != str(label2, "ascii"):
170
+ raise UnicodeDecodeError("idna", label, 0, len(label),
171
+ f"IDNA does not round-trip, '{label!r}' != '{label2!r}'")
172
+
173
+ # Step 8: return the result of step 5
174
+ return result
175
+
176
+ ### Codec APIs
177
+
178
+ class Codec(codecs.Codec):
179
+ def encode(self, input, errors='strict'):
180
+
181
+ if errors != 'strict':
182
+ # IDNA is quite clear that implementations must be strict
183
+ raise UnicodeError(f"Unsupported error handling: {errors}")
184
+
185
+ if not input:
186
+ return b'', 0
187
+
188
+ try:
189
+ result = input.encode('ascii')
190
+ except UnicodeEncodeError:
191
+ pass
192
+ else:
193
+ # ASCII name: fast path
194
+ labels = result.split(b'.')
195
+ for i, label in enumerate(labels[:-1]):
196
+ if len(label) == 0:
197
+ offset = sum(len(l) for l in labels[:i]) + i
198
+ raise UnicodeEncodeError("idna", input, offset, offset+1,
199
+ "label empty")
200
+ for i, label in enumerate(labels):
201
+ if len(label) >= 64:
202
+ offset = sum(len(l) for l in labels[:i]) + i
203
+ raise UnicodeEncodeError("idna", input, offset, offset+len(label),
204
+ "label too long")
205
+ return result, len(input)
206
+
207
+ result = bytearray()
208
+ labels = dots.split(input)
209
+ if labels and not labels[-1]:
210
+ trailing_dot = b'.'
211
+ del labels[-1]
212
+ else:
213
+ trailing_dot = b''
214
+ for i, label in enumerate(labels):
215
+ if result:
216
+ # Join with U+002E
217
+ result.extend(b'.')
218
+ try:
219
+ result.extend(ToASCII(label))
220
+ except (UnicodeEncodeError, UnicodeDecodeError) as exc:
221
+ offset = sum(len(l) for l in labels[:i]) + i
222
+ raise UnicodeEncodeError(
223
+ "idna",
224
+ input,
225
+ offset + exc.start,
226
+ offset + exc.end,
227
+ exc.reason,
228
+ )
229
+ return bytes(result+trailing_dot), len(input)
230
+
231
+ def decode(self, input, errors='strict'):
232
+
233
+ if errors != 'strict':
234
+ raise UnicodeError(f"Unsupported error handling: {errors}")
235
+
236
+ if not input:
237
+ return "", 0
238
+
239
+ # IDNA allows decoding to operate on Unicode strings, too.
240
+ if not isinstance(input, bytes):
241
+ # XXX obviously wrong, see #3232
242
+ input = bytes(input)
243
+
244
+ if ace_prefix not in input.lower():
245
+ # Fast path
246
+ try:
247
+ return input.decode('ascii'), len(input)
248
+ except UnicodeDecodeError:
249
+ pass
250
+
251
+ labels = input.split(b".")
252
+
253
+ if labels and len(labels[-1]) == 0:
254
+ trailing_dot = '.'
255
+ del labels[-1]
256
+ else:
257
+ trailing_dot = ''
258
+
259
+ result = []
260
+ for i, label in enumerate(labels):
261
+ try:
262
+ u_label = ToUnicode(label)
263
+ except (UnicodeEncodeError, UnicodeDecodeError) as exc:
264
+ offset = sum(len(x) for x in labels[:i]) + len(labels[:i])
265
+ raise UnicodeDecodeError(
266
+ "idna", input, offset+exc.start, offset+exc.end, exc.reason)
267
+ else:
268
+ result.append(u_label)
269
+
270
+ return ".".join(result)+trailing_dot, len(input)
271
+
272
+ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
273
+ def _buffer_encode(self, input, errors, final):
274
+ if errors != 'strict':
275
+ # IDNA is quite clear that implementations must be strict
276
+ raise UnicodeError(f"Unsupported error handling: {errors}")
277
+
278
+ if not input:
279
+ return (b'', 0)
280
+
281
+ labels = dots.split(input)
282
+ trailing_dot = b''
283
+ if labels:
284
+ if not labels[-1]:
285
+ trailing_dot = b'.'
286
+ del labels[-1]
287
+ elif not final:
288
+ # Keep potentially unfinished label until the next call
289
+ del labels[-1]
290
+ if labels:
291
+ trailing_dot = b'.'
292
+
293
+ result = bytearray()
294
+ size = 0
295
+ for label in labels:
296
+ if size:
297
+ # Join with U+002E
298
+ result.extend(b'.')
299
+ size += 1
300
+ try:
301
+ result.extend(ToASCII(label))
302
+ except (UnicodeEncodeError, UnicodeDecodeError) as exc:
303
+ raise UnicodeEncodeError(
304
+ "idna",
305
+ input,
306
+ size + exc.start,
307
+ size + exc.end,
308
+ exc.reason,
309
+ )
310
+ size += len(label)
311
+
312
+ result += trailing_dot
313
+ size += len(trailing_dot)
314
+ return (bytes(result), size)
315
+
316
+ class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
317
+ def _buffer_decode(self, input, errors, final):
318
+ if errors != 'strict':
319
+ raise UnicodeError(f"Unsupported error handling: {errors}")
320
+
321
+ if not input:
322
+ return ("", 0)
323
+
324
+ # IDNA allows decoding to operate on Unicode strings, too.
325
+ if isinstance(input, str):
326
+ labels = dots.split(input)
327
+ else:
328
+ # Must be ASCII string
329
+ try:
330
+ input = str(input, "ascii")
331
+ except (UnicodeEncodeError, UnicodeDecodeError) as exc:
332
+ raise UnicodeDecodeError("idna", input,
333
+ exc.start, exc.end, exc.reason)
334
+ labels = input.split(".")
335
+
336
+ trailing_dot = ''
337
+ if labels:
338
+ if not labels[-1]:
339
+ trailing_dot = '.'
340
+ del labels[-1]
341
+ elif not final:
342
+ # Keep potentially unfinished label until the next call
343
+ del labels[-1]
344
+ if labels:
345
+ trailing_dot = '.'
346
+
347
+ result = []
348
+ size = 0
349
+ for label in labels:
350
+ try:
351
+ u_label = ToUnicode(label)
352
+ except (UnicodeEncodeError, UnicodeDecodeError) as exc:
353
+ raise UnicodeDecodeError(
354
+ "idna",
355
+ input.encode("ascii", errors="backslashreplace"),
356
+ size + exc.start,
357
+ size + exc.end,
358
+ exc.reason,
359
+ )
360
+ else:
361
+ result.append(u_label)
362
+ if size:
363
+ size += 1
364
+ size += len(label)
365
+
366
+ result = ".".join(result) + trailing_dot
367
+ size += len(trailing_dot)
368
+ return (result, size)
369
+
370
+ class StreamWriter(Codec,codecs.StreamWriter):
371
+ pass
372
+
373
+ class StreamReader(Codec,codecs.StreamReader):
374
+ pass
375
+
376
+ ### encodings module API
377
+
378
+ def getregentry():
379
+ return codecs.CodecInfo(
380
+ name='idna',
381
+ encode=Codec().encode,
382
+ decode=Codec().decode,
383
+ incrementalencoder=IncrementalEncoder,
384
+ incrementaldecoder=IncrementalDecoder,
385
+ streamwriter=StreamWriter,
386
+ streamreader=StreamReader,
387
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp.py: Python Unicode Codec for ISO2022_JP
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp_1.py: Python Unicode Codec for ISO2022_JP_1
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_1')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_1',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp_2.py: Python Unicode Codec for ISO2022_JP_2
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_2')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_2',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp_2004.py: Python Unicode Codec for ISO2022_JP_2004
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_2004')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_2004',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp_3.py: Python Unicode Codec for ISO2022_JP_3
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_3')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_3',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_jp_ext.py: Python Unicode Codec for ISO2022_JP_EXT
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_ext')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_ext',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
@@ -0,0 +1,39 @@
1
+ #
2
+ # iso2022_kr.py: Python Unicode Codec for ISO2022_KR
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_kr')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_kr',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )