@rowstile/cli-win32-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 (759) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +5 -0
  3. package/package.json +23 -0
  4. package/python/DLLs/_asyncio.pyd +0 -0
  5. package/python/DLLs/_bz2.pyd +0 -0
  6. package/python/DLLs/_ctypes.pyd +0 -0
  7. package/python/DLLs/_ctypes_test.pyd +0 -0
  8. package/python/DLLs/_decimal.pyd +0 -0
  9. package/python/DLLs/_elementtree.pyd +0 -0
  10. package/python/DLLs/_hashlib.pyd +0 -0
  11. package/python/DLLs/_lzma.pyd +0 -0
  12. package/python/DLLs/_multiprocessing.pyd +0 -0
  13. package/python/DLLs/_overlapped.pyd +0 -0
  14. package/python/DLLs/_queue.pyd +0 -0
  15. package/python/DLLs/_socket.pyd +0 -0
  16. package/python/DLLs/_sqlite3.pyd +0 -0
  17. package/python/DLLs/_ssl.pyd +0 -0
  18. package/python/DLLs/_testbuffer.pyd +0 -0
  19. package/python/DLLs/_testcapi.pyd +0 -0
  20. package/python/DLLs/_testclinic.pyd +0 -0
  21. package/python/DLLs/_testclinic_limited.pyd +0 -0
  22. package/python/DLLs/_testconsole.pyd +0 -0
  23. package/python/DLLs/_testimportmultiple.pyd +0 -0
  24. package/python/DLLs/_testinternalcapi.pyd +0 -0
  25. package/python/DLLs/_testlimitedcapi.pyd +0 -0
  26. package/python/DLLs/_testmultiphase.pyd +0 -0
  27. package/python/DLLs/_testsinglephase.pyd +0 -0
  28. package/python/DLLs/_uuid.pyd +0 -0
  29. package/python/DLLs/_wmi.pyd +0 -0
  30. package/python/DLLs/_zoneinfo.pyd +0 -0
  31. package/python/DLLs/libcrypto-3-x64.dll +0 -0
  32. package/python/DLLs/libffi-8.dll +0 -0
  33. package/python/DLLs/libssl-3-x64.dll +0 -0
  34. package/python/DLLs/pyexpat.pyd +0 -0
  35. package/python/DLLs/select.pyd +0 -0
  36. package/python/DLLs/sqlite3.dll +0 -0
  37. package/python/DLLs/unicodedata.pyd +0 -0
  38. package/python/DLLs/winsound.pyd +0 -0
  39. package/python/DLLs/zlib1.dll +0 -0
  40. package/python/LICENSE.txt +445 -0
  41. package/python/Lib/__future__.py +147 -0
  42. package/python/Lib/__hello__.py +16 -0
  43. package/python/Lib/__pycache__/__future__.cpython-313.pyc +0 -0
  44. package/python/Lib/__pycache__/_colorize.cpython-313.pyc +0 -0
  45. package/python/Lib/__pycache__/_compat_pickle.cpython-313.pyc +0 -0
  46. package/python/Lib/__pycache__/_compression.cpython-313.pyc +0 -0
  47. package/python/Lib/__pycache__/_markupbase.cpython-313.pyc +0 -0
  48. package/python/Lib/__pycache__/_opcode_metadata.cpython-313.pyc +0 -0
  49. package/python/Lib/__pycache__/_weakrefset.cpython-313.pyc +0 -0
  50. package/python/Lib/__pycache__/ast.cpython-313.pyc +0 -0
  51. package/python/Lib/__pycache__/base64.cpython-313.pyc +0 -0
  52. package/python/Lib/__pycache__/bisect.cpython-313.pyc +0 -0
  53. package/python/Lib/__pycache__/bz2.cpython-313.pyc +0 -0
  54. package/python/Lib/__pycache__/calendar.cpython-313.pyc +0 -0
  55. package/python/Lib/__pycache__/colorsys.cpython-313.pyc +0 -0
  56. package/python/Lib/__pycache__/compileall.cpython-313.pyc +0 -0
  57. package/python/Lib/__pycache__/configparser.cpython-313.pyc +0 -0
  58. package/python/Lib/__pycache__/contextlib.cpython-313.pyc +0 -0
  59. package/python/Lib/__pycache__/copy.cpython-313.pyc +0 -0
  60. package/python/Lib/__pycache__/copyreg.cpython-313.pyc +0 -0
  61. package/python/Lib/__pycache__/csv.cpython-313.pyc +0 -0
  62. package/python/Lib/__pycache__/dataclasses.cpython-313.pyc +0 -0
  63. package/python/Lib/__pycache__/datetime.cpython-313.pyc +0 -0
  64. package/python/Lib/__pycache__/decimal.cpython-313.pyc +0 -0
  65. package/python/Lib/__pycache__/dis.cpython-313.pyc +0 -0
  66. package/python/Lib/__pycache__/enum.cpython-313.pyc +0 -0
  67. package/python/Lib/__pycache__/filecmp.cpython-313.pyc +0 -0
  68. package/python/Lib/__pycache__/fnmatch.cpython-313.pyc +0 -0
  69. package/python/Lib/__pycache__/fractions.cpython-313.pyc +0 -0
  70. package/python/Lib/__pycache__/functools.cpython-313.pyc +0 -0
  71. package/python/Lib/__pycache__/getpass.cpython-313.pyc +0 -0
  72. package/python/Lib/__pycache__/gettext.cpython-313.pyc +0 -0
  73. package/python/Lib/__pycache__/glob.cpython-313.pyc +0 -0
  74. package/python/Lib/__pycache__/gzip.cpython-313.pyc +0 -0
  75. package/python/Lib/__pycache__/hashlib.cpython-313.pyc +0 -0
  76. package/python/Lib/__pycache__/heapq.cpython-313.pyc +0 -0
  77. package/python/Lib/__pycache__/hmac.cpython-313.pyc +0 -0
  78. package/python/Lib/__pycache__/inspect.cpython-313.pyc +0 -0
  79. package/python/Lib/__pycache__/ipaddress.cpython-313.pyc +0 -0
  80. package/python/Lib/__pycache__/keyword.cpython-313.pyc +0 -0
  81. package/python/Lib/__pycache__/linecache.cpython-313.pyc +0 -0
  82. package/python/Lib/__pycache__/locale.cpython-313.pyc +0 -0
  83. package/python/Lib/__pycache__/lzma.cpython-313.pyc +0 -0
  84. package/python/Lib/__pycache__/mimetypes.cpython-313.pyc +0 -0
  85. package/python/Lib/__pycache__/nturl2path.cpython-313.pyc +0 -0
  86. package/python/Lib/__pycache__/numbers.cpython-313.pyc +0 -0
  87. package/python/Lib/__pycache__/opcode.cpython-313.pyc +0 -0
  88. package/python/Lib/__pycache__/operator.cpython-313.pyc +0 -0
  89. package/python/Lib/__pycache__/optparse.cpython-313.pyc +0 -0
  90. package/python/Lib/__pycache__/pickle.cpython-313.pyc +0 -0
  91. package/python/Lib/__pycache__/pkgutil.cpython-313.pyc +0 -0
  92. package/python/Lib/__pycache__/platform.cpython-313.pyc +0 -0
  93. package/python/Lib/__pycache__/py_compile.cpython-313.pyc +0 -0
  94. package/python/Lib/__pycache__/queue.cpython-313.pyc +0 -0
  95. package/python/Lib/__pycache__/quopri.cpython-313.pyc +0 -0
  96. package/python/Lib/__pycache__/random.cpython-313.pyc +0 -0
  97. package/python/Lib/__pycache__/reprlib.cpython-313.pyc +0 -0
  98. package/python/Lib/__pycache__/selectors.cpython-313.pyc +0 -0
  99. package/python/Lib/__pycache__/shlex.cpython-313.pyc +0 -0
  100. package/python/Lib/__pycache__/shutil.cpython-313.pyc +0 -0
  101. package/python/Lib/__pycache__/signal.cpython-313.pyc +0 -0
  102. package/python/Lib/__pycache__/socket.cpython-313.pyc +0 -0
  103. package/python/Lib/__pycache__/socketserver.cpython-313.pyc +0 -0
  104. package/python/Lib/__pycache__/ssl.cpython-313.pyc +0 -0
  105. package/python/Lib/__pycache__/string.cpython-313.pyc +0 -0
  106. package/python/Lib/__pycache__/stringprep.cpython-313.pyc +0 -0
  107. package/python/Lib/__pycache__/struct.cpython-313.pyc +0 -0
  108. package/python/Lib/__pycache__/subprocess.cpython-313.pyc +0 -0
  109. package/python/Lib/__pycache__/tarfile.cpython-313.pyc +0 -0
  110. package/python/Lib/__pycache__/tempfile.cpython-313.pyc +0 -0
  111. package/python/Lib/__pycache__/textwrap.cpython-313.pyc +0 -0
  112. package/python/Lib/__pycache__/threading.cpython-313.pyc +0 -0
  113. package/python/Lib/__pycache__/token.cpython-313.pyc +0 -0
  114. package/python/Lib/__pycache__/tokenize.cpython-313.pyc +0 -0
  115. package/python/Lib/__pycache__/traceback.cpython-313.pyc +0 -0
  116. package/python/Lib/__pycache__/types.cpython-313.pyc +0 -0
  117. package/python/Lib/__pycache__/typing.cpython-313.pyc +0 -0
  118. package/python/Lib/__pycache__/uuid.cpython-313.pyc +0 -0
  119. package/python/Lib/__pycache__/warnings.cpython-313.pyc +0 -0
  120. package/python/Lib/__pycache__/weakref.cpython-313.pyc +0 -0
  121. package/python/Lib/_aix_support.py +108 -0
  122. package/python/Lib/_android_support.py +192 -0
  123. package/python/Lib/_apple_support.py +66 -0
  124. package/python/Lib/_collections_abc.py +1187 -0
  125. package/python/Lib/_colorize.py +119 -0
  126. package/python/Lib/_compat_pickle.py +251 -0
  127. package/python/Lib/_compression.py +162 -0
  128. package/python/Lib/_ios_support.py +71 -0
  129. package/python/Lib/_markupbase.py +396 -0
  130. package/python/Lib/_opcode_metadata.py +343 -0
  131. package/python/Lib/_osx_support.py +579 -0
  132. package/python/Lib/_py_abc.py +147 -0
  133. package/python/Lib/_pydatetime.py +2640 -0
  134. package/python/Lib/_pydecimal.py +6356 -0
  135. package/python/Lib/_pyio.py +2714 -0
  136. package/python/Lib/_pylong.py +363 -0
  137. package/python/Lib/_pyrepl/__init__.py +19 -0
  138. package/python/Lib/_pyrepl/__main__.py +10 -0
  139. package/python/Lib/_pyrepl/_minimal_curses.py +68 -0
  140. package/python/Lib/_pyrepl/_threading_handler.py +74 -0
  141. package/python/Lib/_pyrepl/base_eventqueue.py +110 -0
  142. package/python/Lib/_pyrepl/commands.py +492 -0
  143. package/python/Lib/_pyrepl/completing_reader.py +295 -0
  144. package/python/Lib/_pyrepl/console.py +229 -0
  145. package/python/Lib/_pyrepl/curses.py +33 -0
  146. package/python/Lib/_pyrepl/fancy_termios.py +82 -0
  147. package/python/Lib/_pyrepl/historical_reader.py +419 -0
  148. package/python/Lib/_pyrepl/input.py +114 -0
  149. package/python/Lib/_pyrepl/keymap.py +213 -0
  150. package/python/Lib/_pyrepl/main.py +59 -0
  151. package/python/Lib/_pyrepl/mypy.ini +29 -0
  152. package/python/Lib/_pyrepl/pager.py +175 -0
  153. package/python/Lib/_pyrepl/reader.py +764 -0
  154. package/python/Lib/_pyrepl/readline.py +599 -0
  155. package/python/Lib/_pyrepl/simple_interact.py +180 -0
  156. package/python/Lib/_pyrepl/trace.py +21 -0
  157. package/python/Lib/_pyrepl/types.py +10 -0
  158. package/python/Lib/_pyrepl/unix_console.py +852 -0
  159. package/python/Lib/_pyrepl/unix_eventqueue.py +76 -0
  160. package/python/Lib/_pyrepl/utils.py +83 -0
  161. package/python/Lib/_pyrepl/windows_console.py +687 -0
  162. package/python/Lib/_pyrepl/windows_eventqueue.py +42 -0
  163. package/python/Lib/_sitebuiltins.py +91 -0
  164. package/python/Lib/_strptime.py +800 -0
  165. package/python/Lib/_threading_local.py +120 -0
  166. package/python/Lib/_weakrefset.py +205 -0
  167. package/python/Lib/abc.py +188 -0
  168. package/python/Lib/antigravity.py +17 -0
  169. package/python/Lib/argparse.py +2690 -0
  170. package/python/Lib/ast.py +1865 -0
  171. package/python/Lib/asyncio/__init__.py +47 -0
  172. package/python/Lib/asyncio/__main__.py +211 -0
  173. package/python/Lib/asyncio/base_events.py +2086 -0
  174. package/python/Lib/asyncio/base_futures.py +67 -0
  175. package/python/Lib/asyncio/base_subprocess.py +312 -0
  176. package/python/Lib/asyncio/base_tasks.py +94 -0
  177. package/python/Lib/asyncio/constants.py +41 -0
  178. package/python/Lib/asyncio/coroutines.py +109 -0
  179. package/python/Lib/asyncio/events.py +885 -0
  180. package/python/Lib/asyncio/exceptions.py +62 -0
  181. package/python/Lib/asyncio/format_helpers.py +84 -0
  182. package/python/Lib/asyncio/futures.py +425 -0
  183. package/python/Lib/asyncio/locks.py +617 -0
  184. package/python/Lib/asyncio/log.py +7 -0
  185. package/python/Lib/asyncio/mixins.py +21 -0
  186. package/python/Lib/asyncio/proactor_events.py +891 -0
  187. package/python/Lib/asyncio/protocols.py +216 -0
  188. package/python/Lib/asyncio/queues.py +309 -0
  189. package/python/Lib/asyncio/runners.py +217 -0
  190. package/python/Lib/asyncio/selector_events.py +1328 -0
  191. package/python/Lib/asyncio/sslproto.py +929 -0
  192. package/python/Lib/asyncio/staggered.py +174 -0
  193. package/python/Lib/asyncio/streams.py +787 -0
  194. package/python/Lib/asyncio/subprocess.py +229 -0
  195. package/python/Lib/asyncio/taskgroups.py +278 -0
  196. package/python/Lib/asyncio/tasks.py +1121 -0
  197. package/python/Lib/asyncio/threads.py +26 -0
  198. package/python/Lib/asyncio/timeouts.py +185 -0
  199. package/python/Lib/asyncio/transports.py +337 -0
  200. package/python/Lib/asyncio/trsock.py +98 -0
  201. package/python/Lib/asyncio/unix_events.py +1550 -0
  202. package/python/Lib/asyncio/windows_events.py +906 -0
  203. package/python/Lib/asyncio/windows_utils.py +181 -0
  204. package/python/Lib/base64.py +628 -0
  205. package/python/Lib/bdb.py +973 -0
  206. package/python/Lib/bisect.py +118 -0
  207. package/python/Lib/bz2.py +352 -0
  208. package/python/Lib/cProfile.py +197 -0
  209. package/python/Lib/calendar.py +813 -0
  210. package/python/Lib/cmd.py +409 -0
  211. package/python/Lib/code.py +386 -0
  212. package/python/Lib/codecs.py +1132 -0
  213. package/python/Lib/codeop.py +155 -0
  214. package/python/Lib/collections/__init__.py +1603 -0
  215. package/python/Lib/collections/__pycache__/__init__.cpython-313.pyc +0 -0
  216. package/python/Lib/colorsys.py +166 -0
  217. package/python/Lib/compileall.py +470 -0
  218. package/python/Lib/concurrent/__init__.py +1 -0
  219. package/python/Lib/concurrent/futures/__init__.py +54 -0
  220. package/python/Lib/concurrent/futures/_base.py +660 -0
  221. package/python/Lib/concurrent/futures/process.py +892 -0
  222. package/python/Lib/concurrent/futures/thread.py +240 -0
  223. package/python/Lib/configparser.py +1396 -0
  224. package/python/Lib/contextlib.py +814 -0
  225. package/python/Lib/contextvars.py +4 -0
  226. package/python/Lib/copy.py +306 -0
  227. package/python/Lib/copyreg.py +217 -0
  228. package/python/Lib/csv.py +527 -0
  229. package/python/Lib/ctypes/__init__.py +602 -0
  230. package/python/Lib/ctypes/__pycache__/__init__.cpython-313.pyc +0 -0
  231. package/python/Lib/ctypes/__pycache__/_endian.cpython-313.pyc +0 -0
  232. package/python/Lib/ctypes/__pycache__/wintypes.cpython-313.pyc +0 -0
  233. package/python/Lib/ctypes/_aix.py +327 -0
  234. package/python/Lib/ctypes/_endian.py +78 -0
  235. package/python/Lib/ctypes/macholib/README.ctypes +7 -0
  236. package/python/Lib/ctypes/macholib/__init__.py +9 -0
  237. package/python/Lib/ctypes/macholib/dyld.py +165 -0
  238. package/python/Lib/ctypes/macholib/dylib.py +42 -0
  239. package/python/Lib/ctypes/macholib/fetch_macholib +2 -0
  240. package/python/Lib/ctypes/macholib/fetch_macholib.bat +1 -0
  241. package/python/Lib/ctypes/macholib/framework.py +42 -0
  242. package/python/Lib/ctypes/util.py +387 -0
  243. package/python/Lib/ctypes/wintypes.py +202 -0
  244. package/python/Lib/curses/__init__.py +101 -0
  245. package/python/Lib/curses/ascii.py +99 -0
  246. package/python/Lib/curses/has_key.py +192 -0
  247. package/python/Lib/curses/panel.py +6 -0
  248. package/python/Lib/curses/textpad.py +236 -0
  249. package/python/Lib/dataclasses.py +1679 -0
  250. package/python/Lib/datetime.py +9 -0
  251. package/python/Lib/dbm/__init__.py +194 -0
  252. package/python/Lib/dbm/dumb.py +319 -0
  253. package/python/Lib/dbm/gnu.py +3 -0
  254. package/python/Lib/dbm/ndbm.py +3 -0
  255. package/python/Lib/dbm/sqlite3.py +144 -0
  256. package/python/Lib/decimal.py +109 -0
  257. package/python/Lib/difflib.py +2058 -0
  258. package/python/Lib/dis.py +1075 -0
  259. package/python/Lib/doctest.py +2919 -0
  260. package/python/Lib/email/__init__.py +61 -0
  261. package/python/Lib/email/__pycache__/__init__.cpython-313.pyc +0 -0
  262. package/python/Lib/email/__pycache__/_encoded_words.cpython-313.pyc +0 -0
  263. package/python/Lib/email/__pycache__/_parseaddr.cpython-313.pyc +0 -0
  264. package/python/Lib/email/__pycache__/_policybase.cpython-313.pyc +0 -0
  265. package/python/Lib/email/__pycache__/base64mime.cpython-313.pyc +0 -0
  266. package/python/Lib/email/__pycache__/charset.cpython-313.pyc +0 -0
  267. package/python/Lib/email/__pycache__/encoders.cpython-313.pyc +0 -0
  268. package/python/Lib/email/__pycache__/errors.cpython-313.pyc +0 -0
  269. package/python/Lib/email/__pycache__/feedparser.cpython-313.pyc +0 -0
  270. package/python/Lib/email/__pycache__/header.cpython-313.pyc +0 -0
  271. package/python/Lib/email/__pycache__/iterators.cpython-313.pyc +0 -0
  272. package/python/Lib/email/__pycache__/message.cpython-313.pyc +0 -0
  273. package/python/Lib/email/__pycache__/parser.cpython-313.pyc +0 -0
  274. package/python/Lib/email/__pycache__/quoprimime.cpython-313.pyc +0 -0
  275. package/python/Lib/email/__pycache__/utils.cpython-313.pyc +0 -0
  276. package/python/Lib/email/_encoded_words.py +233 -0
  277. package/python/Lib/email/_header_value_parser.py +3153 -0
  278. package/python/Lib/email/_parseaddr.py +563 -0
  279. package/python/Lib/email/_policybase.py +382 -0
  280. package/python/Lib/email/architecture.rst +216 -0
  281. package/python/Lib/email/base64mime.py +115 -0
  282. package/python/Lib/email/charset.py +396 -0
  283. package/python/Lib/email/contentmanager.py +254 -0
  284. package/python/Lib/email/encoders.py +65 -0
  285. package/python/Lib/email/errors.py +117 -0
  286. package/python/Lib/email/feedparser.py +536 -0
  287. package/python/Lib/email/generator.py +530 -0
  288. package/python/Lib/email/header.py +582 -0
  289. package/python/Lib/email/headerregistry.py +618 -0
  290. package/python/Lib/email/iterators.py +68 -0
  291. package/python/Lib/email/message.py +1217 -0
  292. package/python/Lib/email/mime/__init__.py +0 -0
  293. package/python/Lib/email/mime/application.py +37 -0
  294. package/python/Lib/email/mime/audio.py +97 -0
  295. package/python/Lib/email/mime/base.py +29 -0
  296. package/python/Lib/email/mime/image.py +152 -0
  297. package/python/Lib/email/mime/message.py +33 -0
  298. package/python/Lib/email/mime/multipart.py +47 -0
  299. package/python/Lib/email/mime/nonmultipart.py +21 -0
  300. package/python/Lib/email/mime/text.py +40 -0
  301. package/python/Lib/email/parser.py +127 -0
  302. package/python/Lib/email/policy.py +232 -0
  303. package/python/Lib/email/quoprimime.py +300 -0
  304. package/python/Lib/email/utils.py +497 -0
  305. package/python/Lib/encodings/__init__.py +179 -0
  306. package/python/Lib/encodings/__pycache__/__init__.cpython-313.pyc +0 -0
  307. package/python/Lib/encodings/__pycache__/aliases.cpython-313.pyc +0 -0
  308. package/python/Lib/encodings/__pycache__/cp1252.cpython-313.pyc +0 -0
  309. package/python/Lib/encodings/__pycache__/cp437.cpython-313.pyc +0 -0
  310. package/python/Lib/encodings/__pycache__/hex_codec.cpython-313.pyc +0 -0
  311. package/python/Lib/encodings/__pycache__/idna.cpython-313.pyc +0 -0
  312. package/python/Lib/encodings/__pycache__/utf_8.cpython-313.pyc +0 -0
  313. package/python/Lib/encodings/aliases.py +560 -0
  314. package/python/Lib/encodings/ascii.py +50 -0
  315. package/python/Lib/encodings/base64_codec.py +55 -0
  316. package/python/Lib/encodings/big5.py +39 -0
  317. package/python/Lib/encodings/big5hkscs.py +39 -0
  318. package/python/Lib/encodings/bz2_codec.py +78 -0
  319. package/python/Lib/encodings/charmap.py +69 -0
  320. package/python/Lib/encodings/cp037.py +307 -0
  321. package/python/Lib/encodings/cp1006.py +307 -0
  322. package/python/Lib/encodings/cp1026.py +307 -0
  323. package/python/Lib/encodings/cp1125.py +698 -0
  324. package/python/Lib/encodings/cp1140.py +307 -0
  325. package/python/Lib/encodings/cp1250.py +307 -0
  326. package/python/Lib/encodings/cp1251.py +307 -0
  327. package/python/Lib/encodings/cp1252.py +307 -0
  328. package/python/Lib/encodings/cp1253.py +307 -0
  329. package/python/Lib/encodings/cp1254.py +307 -0
  330. package/python/Lib/encodings/cp1255.py +307 -0
  331. package/python/Lib/encodings/cp1256.py +307 -0
  332. package/python/Lib/encodings/cp1257.py +307 -0
  333. package/python/Lib/encodings/cp1258.py +307 -0
  334. package/python/Lib/encodings/cp273.py +307 -0
  335. package/python/Lib/encodings/cp424.py +307 -0
  336. package/python/Lib/encodings/cp437.py +698 -0
  337. package/python/Lib/encodings/cp500.py +307 -0
  338. package/python/Lib/encodings/cp720.py +309 -0
  339. package/python/Lib/encodings/cp737.py +698 -0
  340. package/python/Lib/encodings/cp775.py +697 -0
  341. package/python/Lib/encodings/cp850.py +698 -0
  342. package/python/Lib/encodings/cp852.py +698 -0
  343. package/python/Lib/encodings/cp855.py +698 -0
  344. package/python/Lib/encodings/cp856.py +307 -0
  345. package/python/Lib/encodings/cp857.py +694 -0
  346. package/python/Lib/encodings/cp858.py +698 -0
  347. package/python/Lib/encodings/cp860.py +698 -0
  348. package/python/Lib/encodings/cp861.py +698 -0
  349. package/python/Lib/encodings/cp862.py +698 -0
  350. package/python/Lib/encodings/cp863.py +698 -0
  351. package/python/Lib/encodings/cp864.py +690 -0
  352. package/python/Lib/encodings/cp865.py +698 -0
  353. package/python/Lib/encodings/cp866.py +698 -0
  354. package/python/Lib/encodings/cp869.py +689 -0
  355. package/python/Lib/encodings/cp874.py +307 -0
  356. package/python/Lib/encodings/cp875.py +307 -0
  357. package/python/Lib/encodings/cp932.py +39 -0
  358. package/python/Lib/encodings/cp949.py +39 -0
  359. package/python/Lib/encodings/cp950.py +39 -0
  360. package/python/Lib/encodings/euc_jis_2004.py +39 -0
  361. package/python/Lib/encodings/euc_jisx0213.py +39 -0
  362. package/python/Lib/encodings/euc_jp.py +39 -0
  363. package/python/Lib/encodings/euc_kr.py +39 -0
  364. package/python/Lib/encodings/gb18030.py +39 -0
  365. package/python/Lib/encodings/gb2312.py +39 -0
  366. package/python/Lib/encodings/gbk.py +39 -0
  367. package/python/Lib/encodings/hex_codec.py +55 -0
  368. package/python/Lib/encodings/hp_roman8.py +314 -0
  369. package/python/Lib/encodings/hz.py +39 -0
  370. package/python/Lib/encodings/idna.py +387 -0
  371. package/python/Lib/encodings/iso2022_jp.py +39 -0
  372. package/python/Lib/encodings/iso2022_jp_1.py +39 -0
  373. package/python/Lib/encodings/iso2022_jp_2.py +39 -0
  374. package/python/Lib/encodings/iso2022_jp_2004.py +39 -0
  375. package/python/Lib/encodings/iso2022_jp_3.py +39 -0
  376. package/python/Lib/encodings/iso2022_jp_ext.py +39 -0
  377. package/python/Lib/encodings/iso2022_kr.py +39 -0
  378. package/python/Lib/encodings/iso8859_1.py +307 -0
  379. package/python/Lib/encodings/iso8859_10.py +307 -0
  380. package/python/Lib/encodings/iso8859_11.py +307 -0
  381. package/python/Lib/encodings/iso8859_13.py +307 -0
  382. package/python/Lib/encodings/iso8859_14.py +307 -0
  383. package/python/Lib/encodings/iso8859_15.py +307 -0
  384. package/python/Lib/encodings/iso8859_16.py +307 -0
  385. package/python/Lib/encodings/iso8859_2.py +307 -0
  386. package/python/Lib/encodings/iso8859_3.py +307 -0
  387. package/python/Lib/encodings/iso8859_4.py +307 -0
  388. package/python/Lib/encodings/iso8859_5.py +307 -0
  389. package/python/Lib/encodings/iso8859_6.py +307 -0
  390. package/python/Lib/encodings/iso8859_7.py +307 -0
  391. package/python/Lib/encodings/iso8859_8.py +307 -0
  392. package/python/Lib/encodings/iso8859_9.py +307 -0
  393. package/python/Lib/encodings/johab.py +39 -0
  394. package/python/Lib/encodings/koi8_r.py +307 -0
  395. package/python/Lib/encodings/koi8_t.py +308 -0
  396. package/python/Lib/encodings/koi8_u.py +307 -0
  397. package/python/Lib/encodings/kz1048.py +307 -0
  398. package/python/Lib/encodings/latin_1.py +50 -0
  399. package/python/Lib/encodings/mac_arabic.py +698 -0
  400. package/python/Lib/encodings/mac_croatian.py +307 -0
  401. package/python/Lib/encodings/mac_cyrillic.py +307 -0
  402. package/python/Lib/encodings/mac_farsi.py +307 -0
  403. package/python/Lib/encodings/mac_greek.py +307 -0
  404. package/python/Lib/encodings/mac_iceland.py +307 -0
  405. package/python/Lib/encodings/mac_latin2.py +312 -0
  406. package/python/Lib/encodings/mac_roman.py +307 -0
  407. package/python/Lib/encodings/mac_romanian.py +307 -0
  408. package/python/Lib/encodings/mac_turkish.py +307 -0
  409. package/python/Lib/encodings/mbcs.py +47 -0
  410. package/python/Lib/encodings/oem.py +41 -0
  411. package/python/Lib/encodings/palmos.py +308 -0
  412. package/python/Lib/encodings/ptcp154.py +312 -0
  413. package/python/Lib/encodings/punycode.py +253 -0
  414. package/python/Lib/encodings/quopri_codec.py +56 -0
  415. package/python/Lib/encodings/raw_unicode_escape.py +46 -0
  416. package/python/Lib/encodings/rot_13.py +113 -0
  417. package/python/Lib/encodings/shift_jis.py +39 -0
  418. package/python/Lib/encodings/shift_jis_2004.py +39 -0
  419. package/python/Lib/encodings/shift_jisx0213.py +39 -0
  420. package/python/Lib/encodings/tis_620.py +307 -0
  421. package/python/Lib/encodings/undefined.py +49 -0
  422. package/python/Lib/encodings/unicode_escape.py +46 -0
  423. package/python/Lib/encodings/utf_16.py +155 -0
  424. package/python/Lib/encodings/utf_16_be.py +42 -0
  425. package/python/Lib/encodings/utf_16_le.py +42 -0
  426. package/python/Lib/encodings/utf_32.py +150 -0
  427. package/python/Lib/encodings/utf_32_be.py +37 -0
  428. package/python/Lib/encodings/utf_32_le.py +37 -0
  429. package/python/Lib/encodings/utf_7.py +38 -0
  430. package/python/Lib/encodings/utf_8.py +42 -0
  431. package/python/Lib/encodings/utf_8_sig.py +130 -0
  432. package/python/Lib/encodings/uu_codec.py +103 -0
  433. package/python/Lib/encodings/zlib_codec.py +77 -0
  434. package/python/Lib/enum.py +2183 -0
  435. package/python/Lib/filecmp.py +320 -0
  436. package/python/Lib/fileinput.py +442 -0
  437. package/python/Lib/fnmatch.py +192 -0
  438. package/python/Lib/fractions.py +1043 -0
  439. package/python/Lib/ftplib.py +975 -0
  440. package/python/Lib/functools.py +1036 -0
  441. package/python/Lib/genericpath.py +200 -0
  442. package/python/Lib/getopt.py +215 -0
  443. package/python/Lib/getpass.py +192 -0
  444. package/python/Lib/gettext.py +657 -0
  445. package/python/Lib/glob.py +572 -0
  446. package/python/Lib/graphlib.py +250 -0
  447. package/python/Lib/gzip.py +693 -0
  448. package/python/Lib/hashlib.py +255 -0
  449. package/python/Lib/heapq.py +603 -0
  450. package/python/Lib/hmac.py +220 -0
  451. package/python/Lib/html/__init__.py +132 -0
  452. package/python/Lib/html/__pycache__/__init__.cpython-313.pyc +0 -0
  453. package/python/Lib/html/__pycache__/entities.cpython-313.pyc +0 -0
  454. package/python/Lib/html/__pycache__/parser.cpython-313.pyc +0 -0
  455. package/python/Lib/html/entities.py +2513 -0
  456. package/python/Lib/html/parser.py +583 -0
  457. package/python/Lib/http/__init__.py +202 -0
  458. package/python/Lib/http/__pycache__/__init__.cpython-313.pyc +0 -0
  459. package/python/Lib/http/__pycache__/client.cpython-313.pyc +0 -0
  460. package/python/Lib/http/__pycache__/cookiejar.cpython-313.pyc +0 -0
  461. package/python/Lib/http/__pycache__/cookies.cpython-313.pyc +0 -0
  462. package/python/Lib/http/client.py +1598 -0
  463. package/python/Lib/http/cookiejar.py +2122 -0
  464. package/python/Lib/http/cookies.py +635 -0
  465. package/python/Lib/http/server.py +1355 -0
  466. package/python/Lib/imaplib.py +1769 -0
  467. package/python/Lib/importlib/__init__.py +136 -0
  468. package/python/Lib/importlib/__pycache__/__init__.cpython-313.pyc +0 -0
  469. package/python/Lib/importlib/__pycache__/_abc.cpython-313.pyc +0 -0
  470. package/python/Lib/importlib/__pycache__/abc.cpython-313.pyc +0 -0
  471. package/python/Lib/importlib/__pycache__/readers.cpython-313.pyc +0 -0
  472. package/python/Lib/importlib/_abc.py +39 -0
  473. package/python/Lib/importlib/_bootstrap.py +1559 -0
  474. package/python/Lib/importlib/_bootstrap_external.py +1826 -0
  475. package/python/Lib/importlib/abc.py +243 -0
  476. package/python/Lib/importlib/machinery.py +21 -0
  477. package/python/Lib/importlib/metadata/__init__.py +1093 -0
  478. package/python/Lib/importlib/metadata/__pycache__/__init__.cpython-313.pyc +0 -0
  479. package/python/Lib/importlib/metadata/__pycache__/_adapters.cpython-313.pyc +0 -0
  480. package/python/Lib/importlib/metadata/__pycache__/_collections.cpython-313.pyc +0 -0
  481. package/python/Lib/importlib/metadata/__pycache__/_functools.cpython-313.pyc +0 -0
  482. package/python/Lib/importlib/metadata/__pycache__/_itertools.cpython-313.pyc +0 -0
  483. package/python/Lib/importlib/metadata/__pycache__/_meta.cpython-313.pyc +0 -0
  484. package/python/Lib/importlib/metadata/__pycache__/_text.cpython-313.pyc +0 -0
  485. package/python/Lib/importlib/metadata/_adapters.py +89 -0
  486. package/python/Lib/importlib/metadata/_collections.py +30 -0
  487. package/python/Lib/importlib/metadata/_functools.py +104 -0
  488. package/python/Lib/importlib/metadata/_itertools.py +73 -0
  489. package/python/Lib/importlib/metadata/_meta.py +67 -0
  490. package/python/Lib/importlib/metadata/_text.py +99 -0
  491. package/python/Lib/importlib/metadata/diagnose.py +21 -0
  492. package/python/Lib/importlib/readers.py +12 -0
  493. package/python/Lib/importlib/resources/__init__.py +43 -0
  494. package/python/Lib/importlib/resources/__pycache__/__init__.cpython-313.pyc +0 -0
  495. package/python/Lib/importlib/resources/__pycache__/_adapters.cpython-313.pyc +0 -0
  496. package/python/Lib/importlib/resources/__pycache__/_common.cpython-313.pyc +0 -0
  497. package/python/Lib/importlib/resources/__pycache__/_functional.cpython-313.pyc +0 -0
  498. package/python/Lib/importlib/resources/__pycache__/_itertools.cpython-313.pyc +0 -0
  499. package/python/Lib/importlib/resources/__pycache__/abc.cpython-313.pyc +0 -0
  500. package/python/Lib/importlib/resources/__pycache__/readers.cpython-313.pyc +0 -0
  501. package/python/Lib/importlib/resources/_adapters.py +168 -0
  502. package/python/Lib/importlib/resources/_common.py +211 -0
  503. package/python/Lib/importlib/resources/_functional.py +81 -0
  504. package/python/Lib/importlib/resources/_itertools.py +38 -0
  505. package/python/Lib/importlib/resources/abc.py +173 -0
  506. package/python/Lib/importlib/resources/readers.py +203 -0
  507. package/python/Lib/importlib/resources/simple.py +106 -0
  508. package/python/Lib/importlib/simple.py +14 -0
  509. package/python/Lib/importlib/util.py +274 -0
  510. package/python/Lib/inspect.py +3479 -0
  511. package/python/Lib/io.py +99 -0
  512. package/python/Lib/ipaddress.py +2440 -0
  513. package/python/Lib/json/__init__.py +365 -0
  514. package/python/Lib/json/__pycache__/__init__.cpython-313.pyc +0 -0
  515. package/python/Lib/json/__pycache__/decoder.cpython-313.pyc +0 -0
  516. package/python/Lib/json/__pycache__/encoder.cpython-313.pyc +0 -0
  517. package/python/Lib/json/__pycache__/scanner.cpython-313.pyc +0 -0
  518. package/python/Lib/json/decoder.py +364 -0
  519. package/python/Lib/json/encoder.py +446 -0
  520. package/python/Lib/json/scanner.py +73 -0
  521. package/python/Lib/json/tool.py +90 -0
  522. package/python/Lib/keyword.py +64 -0
  523. package/python/Lib/linecache.py +236 -0
  524. package/python/Lib/locale.py +1987 -0
  525. package/python/Lib/logging/__init__.py +2330 -0
  526. package/python/Lib/logging/__pycache__/__init__.cpython-313.pyc +0 -0
  527. package/python/Lib/logging/__pycache__/config.cpython-313.pyc +0 -0
  528. package/python/Lib/logging/__pycache__/handlers.cpython-313.pyc +0 -0
  529. package/python/Lib/logging/config.py +1080 -0
  530. package/python/Lib/logging/handlers.py +1629 -0
  531. package/python/Lib/lzma.py +364 -0
  532. package/python/Lib/mailbox.py +2219 -0
  533. package/python/Lib/mimetypes.py +679 -0
  534. package/python/Lib/modulefinder.py +671 -0
  535. package/python/Lib/multiprocessing/__init__.py +37 -0
  536. package/python/Lib/multiprocessing/connection.py +1216 -0
  537. package/python/Lib/multiprocessing/context.py +383 -0
  538. package/python/Lib/multiprocessing/dummy/__init__.py +126 -0
  539. package/python/Lib/multiprocessing/dummy/connection.py +75 -0
  540. package/python/Lib/multiprocessing/forkserver.py +373 -0
  541. package/python/Lib/multiprocessing/heap.py +337 -0
  542. package/python/Lib/multiprocessing/managers.py +1397 -0
  543. package/python/Lib/multiprocessing/pool.py +957 -0
  544. package/python/Lib/multiprocessing/popen_fork.py +97 -0
  545. package/python/Lib/multiprocessing/popen_forkserver.py +74 -0
  546. package/python/Lib/multiprocessing/popen_spawn_posix.py +76 -0
  547. package/python/Lib/multiprocessing/popen_spawn_win32.py +147 -0
  548. package/python/Lib/multiprocessing/process.py +436 -0
  549. package/python/Lib/multiprocessing/queues.py +399 -0
  550. package/python/Lib/multiprocessing/reduction.py +281 -0
  551. package/python/Lib/multiprocessing/resource_sharer.py +154 -0
  552. package/python/Lib/multiprocessing/resource_tracker.py +499 -0
  553. package/python/Lib/multiprocessing/shared_memory.py +544 -0
  554. package/python/Lib/multiprocessing/sharedctypes.py +240 -0
  555. package/python/Lib/multiprocessing/spawn.py +307 -0
  556. package/python/Lib/multiprocessing/synchronize.py +404 -0
  557. package/python/Lib/multiprocessing/util.py +562 -0
  558. package/python/Lib/netrc.py +199 -0
  559. package/python/Lib/ntpath.py +872 -0
  560. package/python/Lib/nturl2path.py +69 -0
  561. package/python/Lib/numbers.py +427 -0
  562. package/python/Lib/opcode.py +115 -0
  563. package/python/Lib/operator.py +467 -0
  564. package/python/Lib/optparse.py +1681 -0
  565. package/python/Lib/os.py +1184 -0
  566. package/python/Lib/pathlib/__init__.py +12 -0
  567. package/python/Lib/pathlib/__pycache__/__init__.cpython-313.pyc +0 -0
  568. package/python/Lib/pathlib/__pycache__/_abc.cpython-313.pyc +0 -0
  569. package/python/Lib/pathlib/__pycache__/_local.cpython-313.pyc +0 -0
  570. package/python/Lib/pathlib/_abc.py +930 -0
  571. package/python/Lib/pathlib/_local.py +861 -0
  572. package/python/Lib/pdb.py +2550 -0
  573. package/python/Lib/pickle.py +1860 -0
  574. package/python/Lib/pickletools.py +2904 -0
  575. package/python/Lib/pkgutil.py +529 -0
  576. package/python/Lib/platform.py +1454 -0
  577. package/python/Lib/plistlib.py +948 -0
  578. package/python/Lib/poplib.py +477 -0
  579. package/python/Lib/posixpath.py +578 -0
  580. package/python/Lib/pprint.py +658 -0
  581. package/python/Lib/profile.py +616 -0
  582. package/python/Lib/pstats.py +778 -0
  583. package/python/Lib/pty.py +211 -0
  584. package/python/Lib/py_compile.py +212 -0
  585. package/python/Lib/pyclbr.py +314 -0
  586. package/python/Lib/pydoc.py +2861 -0
  587. package/python/Lib/queue.py +383 -0
  588. package/python/Lib/quopri.py +237 -0
  589. package/python/Lib/random.py +1078 -0
  590. package/python/Lib/re/__init__.py +428 -0
  591. package/python/Lib/re/__pycache__/__init__.cpython-313.pyc +0 -0
  592. package/python/Lib/re/__pycache__/_casefix.cpython-313.pyc +0 -0
  593. package/python/Lib/re/__pycache__/_compiler.cpython-313.pyc +0 -0
  594. package/python/Lib/re/__pycache__/_constants.cpython-313.pyc +0 -0
  595. package/python/Lib/re/__pycache__/_parser.cpython-313.pyc +0 -0
  596. package/python/Lib/re/_casefix.py +106 -0
  597. package/python/Lib/re/_compiler.py +768 -0
  598. package/python/Lib/re/_constants.py +222 -0
  599. package/python/Lib/re/_parser.py +1081 -0
  600. package/python/Lib/reprlib.py +230 -0
  601. package/python/Lib/rlcompleter.py +222 -0
  602. package/python/Lib/runpy.py +326 -0
  603. package/python/Lib/sched.py +167 -0
  604. package/python/Lib/secrets.py +71 -0
  605. package/python/Lib/selectors.py +603 -0
  606. package/python/Lib/shelve.py +250 -0
  607. package/python/Lib/shlex.py +345 -0
  608. package/python/Lib/shutil.py +1569 -0
  609. package/python/Lib/signal.py +94 -0
  610. package/python/Lib/site.py +773 -0
  611. package/python/Lib/smtplib.py +1123 -0
  612. package/python/Lib/socket.py +988 -0
  613. package/python/Lib/socketserver.py +863 -0
  614. package/python/Lib/sqlite3/__init__.py +70 -0
  615. package/python/Lib/sqlite3/__main__.py +139 -0
  616. package/python/Lib/sqlite3/dbapi2.py +108 -0
  617. package/python/Lib/sqlite3/dump.py +118 -0
  618. package/python/Lib/sre_compile.py +7 -0
  619. package/python/Lib/sre_constants.py +7 -0
  620. package/python/Lib/sre_parse.py +7 -0
  621. package/python/Lib/ssl.py +1529 -0
  622. package/python/Lib/stat.py +212 -0
  623. package/python/Lib/statistics.py +1817 -0
  624. package/python/Lib/string.py +314 -0
  625. package/python/Lib/stringprep.py +272 -0
  626. package/python/Lib/struct.py +15 -0
  627. package/python/Lib/subprocess.py +2258 -0
  628. package/python/Lib/symtable.py +414 -0
  629. package/python/Lib/sysconfig/__init__.py +734 -0
  630. package/python/Lib/sysconfig/__main__.py +248 -0
  631. package/python/Lib/sysconfig/__pycache__/__init__.cpython-313.pyc +0 -0
  632. package/python/Lib/tabnanny.py +340 -0
  633. package/python/Lib/tarfile.py +3136 -0
  634. package/python/Lib/tempfile.py +958 -0
  635. package/python/Lib/textwrap.py +497 -0
  636. package/python/Lib/this.py +28 -0
  637. package/python/Lib/threading.py +1602 -0
  638. package/python/Lib/timeit.py +381 -0
  639. package/python/Lib/token.py +141 -0
  640. package/python/Lib/tokenize.py +592 -0
  641. package/python/Lib/tomllib/__init__.py +10 -0
  642. package/python/Lib/tomllib/__pycache__/__init__.cpython-313.pyc +0 -0
  643. package/python/Lib/tomllib/__pycache__/_parser.cpython-313.pyc +0 -0
  644. package/python/Lib/tomllib/__pycache__/_re.cpython-313.pyc +0 -0
  645. package/python/Lib/tomllib/__pycache__/_types.cpython-313.pyc +0 -0
  646. package/python/Lib/tomllib/_parser.py +703 -0
  647. package/python/Lib/tomllib/_re.py +107 -0
  648. package/python/Lib/tomllib/_types.py +10 -0
  649. package/python/Lib/tomllib/mypy.ini +15 -0
  650. package/python/Lib/trace.py +754 -0
  651. package/python/Lib/traceback.py +1639 -0
  652. package/python/Lib/tracemalloc.py +560 -0
  653. package/python/Lib/tty.py +73 -0
  654. package/python/Lib/types.py +346 -0
  655. package/python/Lib/typing.py +3846 -0
  656. package/python/Lib/unittest/__init__.py +80 -0
  657. package/python/Lib/unittest/__main__.py +18 -0
  658. package/python/Lib/unittest/_log.py +86 -0
  659. package/python/Lib/unittest/async_case.py +146 -0
  660. package/python/Lib/unittest/case.py +1478 -0
  661. package/python/Lib/unittest/loader.py +460 -0
  662. package/python/Lib/unittest/main.py +280 -0
  663. package/python/Lib/unittest/mock.py +3189 -0
  664. package/python/Lib/unittest/result.py +256 -0
  665. package/python/Lib/unittest/runner.py +292 -0
  666. package/python/Lib/unittest/signals.py +71 -0
  667. package/python/Lib/unittest/suite.py +379 -0
  668. package/python/Lib/unittest/util.py +170 -0
  669. package/python/Lib/urllib/__init__.py +0 -0
  670. package/python/Lib/urllib/__pycache__/__init__.cpython-313.pyc +0 -0
  671. package/python/Lib/urllib/__pycache__/error.cpython-313.pyc +0 -0
  672. package/python/Lib/urllib/__pycache__/parse.cpython-313.pyc +0 -0
  673. package/python/Lib/urllib/__pycache__/request.cpython-313.pyc +0 -0
  674. package/python/Lib/urllib/__pycache__/response.cpython-313.pyc +0 -0
  675. package/python/Lib/urllib/error.py +74 -0
  676. package/python/Lib/urllib/parse.py +1264 -0
  677. package/python/Lib/urllib/request.py +2796 -0
  678. package/python/Lib/urllib/response.py +84 -0
  679. package/python/Lib/urllib/robotparser.py +363 -0
  680. package/python/Lib/uuid.py +784 -0
  681. package/python/Lib/warnings.py +735 -0
  682. package/python/Lib/wave.py +665 -0
  683. package/python/Lib/weakref.py +674 -0
  684. package/python/Lib/webbrowser.py +724 -0
  685. package/python/Lib/wsgiref/__init__.py +25 -0
  686. package/python/Lib/wsgiref/handlers.py +575 -0
  687. package/python/Lib/wsgiref/headers.py +192 -0
  688. package/python/Lib/wsgiref/simple_server.py +161 -0
  689. package/python/Lib/wsgiref/types.py +54 -0
  690. package/python/Lib/wsgiref/util.py +159 -0
  691. package/python/Lib/wsgiref/validate.py +438 -0
  692. package/python/Lib/xml/__init__.py +20 -0
  693. package/python/Lib/xml/__pycache__/__init__.cpython-313.pyc +0 -0
  694. package/python/Lib/xml/dom/NodeFilter.py +27 -0
  695. package/python/Lib/xml/dom/__init__.py +140 -0
  696. package/python/Lib/xml/dom/domreg.py +99 -0
  697. package/python/Lib/xml/dom/expatbuilder.py +962 -0
  698. package/python/Lib/xml/dom/minicompat.py +109 -0
  699. package/python/Lib/xml/dom/minidom.py +2024 -0
  700. package/python/Lib/xml/dom/pulldom.py +336 -0
  701. package/python/Lib/xml/dom/xmlbuilder.py +389 -0
  702. package/python/Lib/xml/etree/ElementInclude.py +186 -0
  703. package/python/Lib/xml/etree/ElementPath.py +430 -0
  704. package/python/Lib/xml/etree/ElementTree.py +2116 -0
  705. package/python/Lib/xml/etree/__init__.py +33 -0
  706. package/python/Lib/xml/etree/cElementTree.py +3 -0
  707. package/python/Lib/xml/parsers/__init__.py +8 -0
  708. package/python/Lib/xml/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
  709. package/python/Lib/xml/parsers/__pycache__/expat.cpython-313.pyc +0 -0
  710. package/python/Lib/xml/parsers/expat.py +8 -0
  711. package/python/Lib/xml/sax/__init__.py +94 -0
  712. package/python/Lib/xml/sax/_exceptions.py +127 -0
  713. package/python/Lib/xml/sax/expatreader.py +454 -0
  714. package/python/Lib/xml/sax/handler.py +387 -0
  715. package/python/Lib/xml/sax/saxutils.py +369 -0
  716. package/python/Lib/xml/sax/xmlreader.py +378 -0
  717. package/python/Lib/xmlrpc/__init__.py +1 -0
  718. package/python/Lib/xmlrpc/__pycache__/__init__.cpython-313.pyc +0 -0
  719. package/python/Lib/xmlrpc/__pycache__/client.cpython-313.pyc +0 -0
  720. package/python/Lib/xmlrpc/client.py +1503 -0
  721. package/python/Lib/xmlrpc/server.py +1002 -0
  722. package/python/Lib/zipapp.py +229 -0
  723. package/python/Lib/zipfile/__init__.py +2391 -0
  724. package/python/Lib/zipfile/__main__.py +4 -0
  725. package/python/Lib/zipfile/__pycache__/__init__.cpython-313.pyc +0 -0
  726. package/python/Lib/zipfile/_path/__init__.py +452 -0
  727. package/python/Lib/zipfile/_path/__pycache__/__init__.cpython-313.pyc +0 -0
  728. package/python/Lib/zipfile/_path/__pycache__/glob.cpython-313.pyc +0 -0
  729. package/python/Lib/zipfile/_path/glob.py +113 -0
  730. package/python/Lib/zipimport.py +803 -0
  731. package/python/Lib/zoneinfo/__init__.py +34 -0
  732. package/python/Lib/zoneinfo/_common.py +172 -0
  733. package/python/Lib/zoneinfo/_tzpath.py +189 -0
  734. package/python/Lib/zoneinfo/_zoneinfo.py +779 -0
  735. package/python/licenses/LICENSE.bdb.txt +126 -0
  736. package/python/licenses/LICENSE.bzip2.txt +37 -0
  737. package/python/licenses/LICENSE.cpython.txt +771 -0
  738. package/python/licenses/LICENSE.expat.txt +21 -0
  739. package/python/licenses/LICENSE.libX11.txt +942 -0
  740. package/python/licenses/LICENSE.libXau.txt +21 -0
  741. package/python/licenses/LICENSE.libedit.txt +29 -0
  742. package/python/licenses/LICENSE.libffi.txt +21 -0
  743. package/python/licenses/LICENSE.liblzma.txt +13 -0
  744. package/python/licenses/LICENSE.libuuid.txt +27 -0
  745. package/python/licenses/LICENSE.libxcb.txt +30 -0
  746. package/python/licenses/LICENSE.mpdecimal.txt +24 -0
  747. package/python/licenses/LICENSE.ncurses.txt +29 -0
  748. package/python/licenses/LICENSE.openssl-1.1.txt +124 -0
  749. package/python/licenses/LICENSE.openssl-3.txt +177 -0
  750. package/python/licenses/LICENSE.sqlite.txt +23 -0
  751. package/python/licenses/LICENSE.tcl.txt +40 -0
  752. package/python/licenses/LICENSE.tix.txt +54 -0
  753. package/python/licenses/LICENSE.zlib.txt +21 -0
  754. package/python/python.exe +0 -0
  755. package/python/python3.dll +0 -0
  756. package/python/python313.dll +0 -0
  757. package/python/pythonw.exe +0 -0
  758. package/python/vcruntime140.dll +0 -0
  759. package/python/vcruntime140_1.dll +0 -0
@@ -0,0 +1,958 @@
1
+ """Temporary files.
2
+
3
+ This module provides generic, low- and high-level interfaces for
4
+ creating temporary files and directories. All of the interfaces
5
+ provided by this module can be used without fear of race conditions
6
+ except for 'mktemp'. 'mktemp' is subject to race conditions and
7
+ should not be used; it is provided for backward compatibility only.
8
+
9
+ The default path names are returned as str. If you supply bytes as
10
+ input, all return values will be in bytes. Ex:
11
+
12
+ >>> tempfile.mkstemp()
13
+ (4, '/tmp/tmptpu9nin8')
14
+ >>> tempfile.mkdtemp(suffix=b'')
15
+ b'/tmp/tmppbi8f0hy'
16
+
17
+ This module also provides some data items to the user:
18
+
19
+ TMP_MAX - maximum number of names that will be tried before
20
+ giving up.
21
+ tempdir - If this is set to a string before the first use of
22
+ any routine from this module, it will be considered as
23
+ another candidate location to store temporary files.
24
+ """
25
+
26
+ __all__ = [
27
+ "NamedTemporaryFile", "TemporaryFile", # high level safe interfaces
28
+ "SpooledTemporaryFile", "TemporaryDirectory",
29
+ "mkstemp", "mkdtemp", # low level safe interfaces
30
+ "mktemp", # deprecated unsafe interface
31
+ "TMP_MAX", "gettempprefix", # constants
32
+ "tempdir", "gettempdir",
33
+ "gettempprefixb", "gettempdirb",
34
+ ]
35
+
36
+
37
+ # Imports.
38
+
39
+ import functools as _functools
40
+ import warnings as _warnings
41
+ import io as _io
42
+ import os as _os
43
+ import shutil as _shutil
44
+ import errno as _errno
45
+ from random import Random as _Random
46
+ import sys as _sys
47
+ import types as _types
48
+ import weakref as _weakref
49
+ import _thread
50
+ _allocate_lock = _thread.allocate_lock
51
+
52
+ _text_openflags = _os.O_RDWR | _os.O_CREAT | _os.O_EXCL
53
+ if hasattr(_os, 'O_NOFOLLOW'):
54
+ _text_openflags |= _os.O_NOFOLLOW
55
+
56
+ _bin_openflags = _text_openflags
57
+ if hasattr(_os, 'O_BINARY'):
58
+ _bin_openflags |= _os.O_BINARY
59
+
60
+ # This is more than enough.
61
+ # Each name contains over 40 random bits. Even with a million temporary
62
+ # files, the chance of a conflict is less than 1 in a million, and with
63
+ # 20 attempts, it is less than 1e-120.
64
+ TMP_MAX = 20
65
+
66
+ # This variable _was_ unused for legacy reasons, see issue 10354.
67
+ # But as of 3.5 we actually use it at runtime so changing it would
68
+ # have a possibly desirable side effect... But we do not want to support
69
+ # that as an API. It is undocumented on purpose. Do not depend on this.
70
+ template = "tmp"
71
+
72
+ # Internal routines.
73
+
74
+ _once_lock = _allocate_lock()
75
+
76
+
77
+ def _exists(fn):
78
+ try:
79
+ _os.lstat(fn)
80
+ except OSError:
81
+ return False
82
+ else:
83
+ return True
84
+
85
+
86
+ def _infer_return_type(*args):
87
+ """Look at the type of all args and divine their implied return type."""
88
+ return_type = None
89
+ for arg in args:
90
+ if arg is None:
91
+ continue
92
+
93
+ if isinstance(arg, _os.PathLike):
94
+ arg = _os.fspath(arg)
95
+
96
+ if isinstance(arg, bytes):
97
+ if return_type is str:
98
+ raise TypeError("Can't mix bytes and non-bytes in "
99
+ "path components.")
100
+ return_type = bytes
101
+ else:
102
+ if return_type is bytes:
103
+ raise TypeError("Can't mix bytes and non-bytes in "
104
+ "path components.")
105
+ return_type = str
106
+ if return_type is None:
107
+ if tempdir is None or isinstance(tempdir, str):
108
+ return str # tempfile APIs return a str by default.
109
+ else:
110
+ # we could check for bytes but it'll fail later on anyway
111
+ return bytes
112
+ return return_type
113
+
114
+
115
+ def _sanitize_params(prefix, suffix, dir):
116
+ """Common parameter processing for most APIs in this module."""
117
+ output_type = _infer_return_type(prefix, suffix, dir)
118
+ if suffix is None:
119
+ suffix = output_type()
120
+ if prefix is None:
121
+ if output_type is str:
122
+ prefix = template
123
+ else:
124
+ prefix = _os.fsencode(template)
125
+ if dir is None:
126
+ if output_type is str:
127
+ dir = gettempdir()
128
+ else:
129
+ dir = gettempdirb()
130
+ return prefix, suffix, dir, output_type
131
+
132
+
133
+ class _RandomNameSequence:
134
+ """An instance of _RandomNameSequence generates an endless
135
+ sequence of unpredictable strings which can safely be incorporated
136
+ into file names. Each string is eight characters long. Multiple
137
+ threads can safely use the same instance at the same time.
138
+
139
+ _RandomNameSequence is an iterator."""
140
+
141
+ characters = "abcdefghijklmnopqrstuvwxyz0123456789_"
142
+
143
+ @property
144
+ def rng(self):
145
+ cur_pid = _os.getpid()
146
+ if cur_pid != getattr(self, '_rng_pid', None):
147
+ self._rng = _Random()
148
+ self._rng_pid = cur_pid
149
+ return self._rng
150
+
151
+ def __iter__(self):
152
+ return self
153
+
154
+ def __next__(self):
155
+ return ''.join(self.rng.choices(self.characters, k=8))
156
+
157
+ def _candidate_tempdir_list():
158
+ """Generate a list of candidate temporary directories which
159
+ _get_default_tempdir will try."""
160
+
161
+ dirlist = []
162
+
163
+ # First, try the environment.
164
+ for envname in 'TMPDIR', 'TEMP', 'TMP':
165
+ dirname = _os.getenv(envname)
166
+ if dirname: dirlist.append(dirname)
167
+
168
+ # Failing that, try OS-specific locations.
169
+ if _os.name == 'nt':
170
+ dirlist.extend([ _os.path.expanduser(r'~\AppData\Local\Temp'),
171
+ _os.path.expandvars(r'%SYSTEMROOT%\Temp'),
172
+ r'c:\temp', r'c:\tmp', r'\temp', r'\tmp' ])
173
+ else:
174
+ dirlist.extend([ '/tmp', '/var/tmp', '/usr/tmp' ])
175
+
176
+ # As a last resort, the current directory.
177
+ try:
178
+ dirlist.append(_os.getcwd())
179
+ except (AttributeError, OSError):
180
+ dirlist.append(_os.curdir)
181
+
182
+ return dirlist
183
+
184
+ def _get_default_tempdir(dirlist=None):
185
+ """Calculate the default directory to use for temporary files.
186
+ This routine should be called exactly once.
187
+
188
+ We determine whether or not a candidate temp dir is usable by
189
+ trying to create and write to a file in that directory. If this
190
+ is successful, the test file is deleted. To prevent denial of
191
+ service, the name of the test file must be randomized."""
192
+
193
+ namer = _RandomNameSequence()
194
+ if dirlist is None:
195
+ dirlist = _candidate_tempdir_list()
196
+
197
+ for dir in dirlist:
198
+ if dir != _os.curdir:
199
+ dir = _os.path.abspath(dir)
200
+ for seq in range(TMP_MAX):
201
+ name = next(namer)
202
+ filename = _os.path.join(dir, name)
203
+ try:
204
+ fd = _os.open(filename, _bin_openflags, 0o600)
205
+ try:
206
+ try:
207
+ _os.write(fd, b'blat')
208
+ finally:
209
+ _os.close(fd)
210
+ finally:
211
+ _os.unlink(filename)
212
+ return dir
213
+ except FileExistsError:
214
+ pass
215
+ except PermissionError:
216
+ # See the comment in mkdtemp().
217
+ if _os.name == 'nt' and _os.path.isdir(dir):
218
+ continue
219
+ break # no point trying more names in this directory
220
+ except OSError:
221
+ break # no point trying more names in this directory
222
+ raise FileNotFoundError(_errno.ENOENT,
223
+ "No usable temporary directory found in %s" %
224
+ dirlist)
225
+
226
+ _name_sequence = None
227
+
228
+ def _get_candidate_names():
229
+ """Common setup sequence for all user-callable interfaces."""
230
+
231
+ global _name_sequence
232
+ if _name_sequence is None:
233
+ _once_lock.acquire()
234
+ try:
235
+ if _name_sequence is None:
236
+ _name_sequence = _RandomNameSequence()
237
+ finally:
238
+ _once_lock.release()
239
+ return _name_sequence
240
+
241
+
242
+ def _mkstemp_inner(dir, pre, suf, flags, output_type):
243
+ """Code common to mkstemp, TemporaryFile, and NamedTemporaryFile."""
244
+
245
+ dir = _os.path.abspath(dir)
246
+ names = _get_candidate_names()
247
+ if output_type is bytes:
248
+ names = map(_os.fsencode, names)
249
+
250
+ for seq in range(TMP_MAX):
251
+ name = next(names)
252
+ file = _os.path.join(dir, pre + name + suf)
253
+ _sys.audit("tempfile.mkstemp", file)
254
+ try:
255
+ fd = _os.open(file, flags, 0o600)
256
+ except FileExistsError:
257
+ continue # try again
258
+ except PermissionError:
259
+ # See the comment in mkdtemp().
260
+ if _os.name == 'nt' and _os.path.isdir(dir) and seq < TMP_MAX - 1:
261
+ continue
262
+ else:
263
+ raise
264
+ return fd, file
265
+
266
+ raise FileExistsError(_errno.EEXIST,
267
+ "No usable temporary file name found")
268
+
269
+ def _dont_follow_symlinks(func, path, *args):
270
+ # Pass follow_symlinks=False, unless not supported on this platform.
271
+ if func in _os.supports_follow_symlinks:
272
+ func(path, *args, follow_symlinks=False)
273
+ elif not _os.path.islink(path):
274
+ func(path, *args)
275
+
276
+ def _resetperms(path):
277
+ try:
278
+ chflags = _os.chflags
279
+ except AttributeError:
280
+ pass
281
+ else:
282
+ _dont_follow_symlinks(chflags, path, 0)
283
+ _dont_follow_symlinks(_os.chmod, path, 0o700)
284
+
285
+
286
+ # User visible interfaces.
287
+
288
+ def gettempprefix():
289
+ """The default prefix for temporary directories as string."""
290
+ return _os.fsdecode(template)
291
+
292
+ def gettempprefixb():
293
+ """The default prefix for temporary directories as bytes."""
294
+ return _os.fsencode(template)
295
+
296
+ tempdir = None
297
+
298
+ def _gettempdir():
299
+ """Private accessor for tempfile.tempdir."""
300
+ global tempdir
301
+ if tempdir is None:
302
+ _once_lock.acquire()
303
+ try:
304
+ if tempdir is None:
305
+ tempdir = _get_default_tempdir()
306
+ finally:
307
+ _once_lock.release()
308
+ return tempdir
309
+
310
+ def gettempdir():
311
+ """Returns tempfile.tempdir as str."""
312
+ return _os.fsdecode(_gettempdir())
313
+
314
+ def gettempdirb():
315
+ """Returns tempfile.tempdir as bytes."""
316
+ return _os.fsencode(_gettempdir())
317
+
318
+ def mkstemp(suffix=None, prefix=None, dir=None, text=False):
319
+ """User-callable function to create and return a unique temporary
320
+ file. The return value is a pair (fd, name) where fd is the
321
+ file descriptor returned by os.open, and name is the filename.
322
+
323
+ If 'suffix' is not None, the file name will end with that suffix,
324
+ otherwise there will be no suffix.
325
+
326
+ If 'prefix' is not None, the file name will begin with that prefix,
327
+ otherwise a default prefix is used.
328
+
329
+ If 'dir' is not None, the file will be created in that directory,
330
+ otherwise a default directory is used.
331
+
332
+ If 'text' is specified and true, the file is opened in text
333
+ mode. Else (the default) the file is opened in binary mode.
334
+
335
+ If any of 'suffix', 'prefix' and 'dir' are not None, they must be the
336
+ same type. If they are bytes, the returned name will be bytes; str
337
+ otherwise.
338
+
339
+ The file is readable and writable only by the creating user ID.
340
+ If the operating system uses permission bits to indicate whether a
341
+ file is executable, the file is executable by no one. The file
342
+ descriptor is not inherited by children of this process.
343
+
344
+ Caller is responsible for deleting the file when done with it.
345
+ """
346
+
347
+ prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)
348
+
349
+ if text:
350
+ flags = _text_openflags
351
+ else:
352
+ flags = _bin_openflags
353
+
354
+ return _mkstemp_inner(dir, prefix, suffix, flags, output_type)
355
+
356
+
357
+ def mkdtemp(suffix=None, prefix=None, dir=None):
358
+ """User-callable function to create and return a unique temporary
359
+ directory. The return value is the pathname of the directory.
360
+
361
+ Arguments are as for mkstemp, except that the 'text' argument is
362
+ not accepted.
363
+
364
+ The directory is readable, writable, and searchable only by the
365
+ creating user.
366
+
367
+ Caller is responsible for deleting the directory when done with it.
368
+ """
369
+
370
+ prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)
371
+
372
+ names = _get_candidate_names()
373
+ if output_type is bytes:
374
+ names = map(_os.fsencode, names)
375
+
376
+ for seq in range(TMP_MAX):
377
+ name = next(names)
378
+ file = _os.path.join(dir, prefix + name + suffix)
379
+ _sys.audit("tempfile.mkdtemp", file)
380
+ try:
381
+ _os.mkdir(file, 0o700)
382
+ except FileExistsError:
383
+ continue # try again
384
+ except PermissionError:
385
+ # On Posix, this exception is raised when the user has no
386
+ # write access to the parent directory.
387
+ # On Windows, it is also raised when a directory with
388
+ # the chosen name already exists, or if the parent directory
389
+ # is not a directory.
390
+ # We cannot distinguish between "directory-exists-error" and
391
+ # "access-denied-error".
392
+ if _os.name == 'nt' and _os.path.isdir(dir) and seq < TMP_MAX - 1:
393
+ continue
394
+ else:
395
+ raise
396
+ return _os.path.abspath(file)
397
+
398
+ raise FileExistsError(_errno.EEXIST,
399
+ "No usable temporary directory name found")
400
+
401
+ def mktemp(suffix="", prefix=template, dir=None):
402
+ """User-callable function to return a unique temporary file name. The
403
+ file is not created.
404
+
405
+ Arguments are similar to mkstemp, except that the 'text' argument is
406
+ not accepted, and suffix=None, prefix=None and bytes file names are not
407
+ supported.
408
+
409
+ THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may
410
+ refer to a file that did not exist at some point, but by the time
411
+ you get around to creating it, someone else may have beaten you to
412
+ the punch.
413
+ """
414
+
415
+ ## from warnings import warn as _warn
416
+ ## _warn("mktemp is a potential security risk to your program",
417
+ ## RuntimeWarning, stacklevel=2)
418
+
419
+ if dir is None:
420
+ dir = gettempdir()
421
+
422
+ names = _get_candidate_names()
423
+ for seq in range(TMP_MAX):
424
+ name = next(names)
425
+ file = _os.path.join(dir, prefix + name + suffix)
426
+ if not _exists(file):
427
+ return file
428
+
429
+ raise FileExistsError(_errno.EEXIST,
430
+ "No usable temporary filename found")
431
+
432
+
433
+ class _TemporaryFileCloser:
434
+ """A separate object allowing proper closing of a temporary file's
435
+ underlying file object, without adding a __del__ method to the
436
+ temporary file."""
437
+
438
+ cleanup_called = False
439
+ close_called = False
440
+
441
+ def __init__(self, file, name, delete=True, delete_on_close=True):
442
+ self.file = file
443
+ self.name = name
444
+ self.delete = delete
445
+ self.delete_on_close = delete_on_close
446
+
447
+ def cleanup(self, windows=(_os.name == 'nt'), unlink=_os.unlink):
448
+ if not self.cleanup_called:
449
+ self.cleanup_called = True
450
+ try:
451
+ if not self.close_called:
452
+ self.close_called = True
453
+ self.file.close()
454
+ finally:
455
+ # Windows provides delete-on-close as a primitive, in which
456
+ # case the file was deleted by self.file.close().
457
+ if self.delete and not (windows and self.delete_on_close):
458
+ try:
459
+ unlink(self.name)
460
+ except FileNotFoundError:
461
+ pass
462
+
463
+ def close(self):
464
+ if not self.close_called:
465
+ self.close_called = True
466
+ try:
467
+ self.file.close()
468
+ finally:
469
+ if self.delete and self.delete_on_close:
470
+ self.cleanup()
471
+
472
+ def __del__(self):
473
+ self.cleanup()
474
+
475
+
476
+ class _TemporaryFileWrapper:
477
+ """Temporary file wrapper
478
+
479
+ This class provides a wrapper around files opened for
480
+ temporary use. In particular, it seeks to automatically
481
+ remove the file when it is no longer needed.
482
+ """
483
+
484
+ def __init__(self, file, name, delete=True, delete_on_close=True):
485
+ self.file = file
486
+ self.name = name
487
+ self._closer = _TemporaryFileCloser(file, name, delete,
488
+ delete_on_close)
489
+
490
+ def __getattr__(self, name):
491
+ # Attribute lookups are delegated to the underlying file
492
+ # and cached for non-numeric results
493
+ # (i.e. methods are cached, closed and friends are not)
494
+ file = self.__dict__['file']
495
+ a = getattr(file, name)
496
+ if hasattr(a, '__call__'):
497
+ func = a
498
+ @_functools.wraps(func)
499
+ def func_wrapper(*args, **kwargs):
500
+ return func(*args, **kwargs)
501
+ # Avoid closing the file as long as the wrapper is alive,
502
+ # see issue #18879.
503
+ func_wrapper._closer = self._closer
504
+ a = func_wrapper
505
+ if not isinstance(a, int):
506
+ setattr(self, name, a)
507
+ return a
508
+
509
+ # The underlying __enter__ method returns the wrong object
510
+ # (self.file) so override it to return the wrapper
511
+ def __enter__(self):
512
+ self.file.__enter__()
513
+ return self
514
+
515
+ # Need to trap __exit__ as well to ensure the file gets
516
+ # deleted when used in a with statement
517
+ def __exit__(self, exc, value, tb):
518
+ result = self.file.__exit__(exc, value, tb)
519
+ self._closer.cleanup()
520
+ return result
521
+
522
+ def close(self):
523
+ """
524
+ Close the temporary file, possibly deleting it.
525
+ """
526
+ self._closer.close()
527
+
528
+ # iter() doesn't use __getattr__ to find the __iter__ method
529
+ def __iter__(self):
530
+ # Don't return iter(self.file), but yield from it to avoid closing
531
+ # file as long as it's being used as iterator (see issue #23700). We
532
+ # can't use 'yield from' here because iter(file) returns the file
533
+ # object itself, which has a close method, and thus the file would get
534
+ # closed when the generator is finalized, due to PEP380 semantics.
535
+ for line in self.file:
536
+ yield line
537
+
538
+ def NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,
539
+ newline=None, suffix=None, prefix=None,
540
+ dir=None, delete=True, *, errors=None,
541
+ delete_on_close=True):
542
+ """Create and return a temporary file.
543
+ Arguments:
544
+ 'prefix', 'suffix', 'dir' -- as for mkstemp.
545
+ 'mode' -- the mode argument to io.open (default "w+b").
546
+ 'buffering' -- the buffer size argument to io.open (default -1).
547
+ 'encoding' -- the encoding argument to io.open (default None)
548
+ 'newline' -- the newline argument to io.open (default None)
549
+ 'delete' -- whether the file is automatically deleted (default True).
550
+ 'delete_on_close' -- if 'delete', whether the file is deleted on close
551
+ (default True) or otherwise either on context manager exit
552
+ (if context manager was used) or on object finalization. .
553
+ 'errors' -- the errors argument to io.open (default None)
554
+ The file is created as mkstemp() would do it.
555
+
556
+ Returns an object with a file-like interface; the name of the file
557
+ is accessible as its 'name' attribute. The file will be automatically
558
+ deleted when it is closed unless the 'delete' argument is set to False.
559
+
560
+ On POSIX, NamedTemporaryFiles cannot be automatically deleted if
561
+ the creating process is terminated abruptly with a SIGKILL signal.
562
+ Windows can delete the file even in this case.
563
+ """
564
+
565
+ prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)
566
+
567
+ flags = _bin_openflags
568
+
569
+ # Setting O_TEMPORARY in the flags causes the OS to delete
570
+ # the file when it is closed. This is only supported by Windows.
571
+ if _os.name == 'nt' and delete and delete_on_close:
572
+ flags |= _os.O_TEMPORARY
573
+
574
+ if "b" not in mode:
575
+ encoding = _io.text_encoding(encoding)
576
+
577
+ name = None
578
+ def opener(*args):
579
+ nonlocal name
580
+ fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type)
581
+ return fd
582
+ try:
583
+ file = _io.open(dir, mode, buffering=buffering,
584
+ newline=newline, encoding=encoding, errors=errors,
585
+ opener=opener)
586
+ try:
587
+ raw = getattr(file, 'buffer', file)
588
+ raw = getattr(raw, 'raw', raw)
589
+ raw.name = name
590
+ return _TemporaryFileWrapper(file, name, delete, delete_on_close)
591
+ except:
592
+ file.close()
593
+ raise
594
+ except:
595
+ if name is not None and not (
596
+ _os.name == 'nt' and delete and delete_on_close):
597
+ _os.unlink(name)
598
+ raise
599
+
600
+ if _os.name != 'posix' or _sys.platform == 'cygwin':
601
+ # On non-POSIX and Cygwin systems, assume that we cannot unlink a file
602
+ # while it is open.
603
+ TemporaryFile = NamedTemporaryFile
604
+
605
+ else:
606
+ # Is the O_TMPFILE flag available and does it work?
607
+ # The flag is set to False if os.open(dir, os.O_TMPFILE) raises an
608
+ # IsADirectoryError exception
609
+ _O_TMPFILE_WORKS = hasattr(_os, 'O_TMPFILE')
610
+
611
+ def TemporaryFile(mode='w+b', buffering=-1, encoding=None,
612
+ newline=None, suffix=None, prefix=None,
613
+ dir=None, *, errors=None):
614
+ """Create and return a temporary file.
615
+ Arguments:
616
+ 'prefix', 'suffix', 'dir' -- as for mkstemp.
617
+ 'mode' -- the mode argument to io.open (default "w+b").
618
+ 'buffering' -- the buffer size argument to io.open (default -1).
619
+ 'encoding' -- the encoding argument to io.open (default None)
620
+ 'newline' -- the newline argument to io.open (default None)
621
+ 'errors' -- the errors argument to io.open (default None)
622
+ The file is created as mkstemp() would do it.
623
+
624
+ Returns an object with a file-like interface. The file has no
625
+ name, and will cease to exist when it is closed.
626
+ """
627
+ global _O_TMPFILE_WORKS
628
+
629
+ if "b" not in mode:
630
+ encoding = _io.text_encoding(encoding)
631
+
632
+ prefix, suffix, dir, output_type = _sanitize_params(prefix, suffix, dir)
633
+
634
+ flags = _bin_openflags
635
+ if _O_TMPFILE_WORKS:
636
+ fd = None
637
+ def opener(*args):
638
+ nonlocal fd
639
+ flags2 = (flags | _os.O_TMPFILE) & ~_os.O_CREAT
640
+ fd = _os.open(dir, flags2, 0o600)
641
+ return fd
642
+ try:
643
+ file = _io.open(dir, mode, buffering=buffering,
644
+ newline=newline, encoding=encoding,
645
+ errors=errors, opener=opener)
646
+ raw = getattr(file, 'buffer', file)
647
+ raw = getattr(raw, 'raw', raw)
648
+ raw.name = fd
649
+ return file
650
+ except IsADirectoryError:
651
+ # Linux kernel older than 3.11 ignores the O_TMPFILE flag:
652
+ # O_TMPFILE is read as O_DIRECTORY. Trying to open a directory
653
+ # with O_RDWR|O_DIRECTORY fails with IsADirectoryError, a
654
+ # directory cannot be open to write. Set flag to False to not
655
+ # try again.
656
+ _O_TMPFILE_WORKS = False
657
+ except OSError:
658
+ # The filesystem of the directory does not support O_TMPFILE.
659
+ # For example, OSError(95, 'Operation not supported').
660
+ #
661
+ # On Linux kernel older than 3.11, trying to open a regular
662
+ # file (or a symbolic link to a regular file) with O_TMPFILE
663
+ # fails with NotADirectoryError, because O_TMPFILE is read as
664
+ # O_DIRECTORY.
665
+ pass
666
+ # Fallback to _mkstemp_inner().
667
+
668
+ fd = None
669
+ def opener(*args):
670
+ nonlocal fd
671
+ fd, name = _mkstemp_inner(dir, prefix, suffix, flags, output_type)
672
+ try:
673
+ _os.unlink(name)
674
+ except BaseException as e:
675
+ _os.close(fd)
676
+ raise
677
+ return fd
678
+ file = _io.open(dir, mode, buffering=buffering,
679
+ newline=newline, encoding=encoding, errors=errors,
680
+ opener=opener)
681
+ raw = getattr(file, 'buffer', file)
682
+ raw = getattr(raw, 'raw', raw)
683
+ raw.name = fd
684
+ return file
685
+
686
+ class SpooledTemporaryFile(_io.IOBase):
687
+ """Temporary file wrapper, specialized to switch from BytesIO
688
+ or StringIO to a real file when it exceeds a certain size or
689
+ when a fileno is needed.
690
+ """
691
+ _rolled = False
692
+
693
+ def __init__(self, max_size=0, mode='w+b', buffering=-1,
694
+ encoding=None, newline=None,
695
+ suffix=None, prefix=None, dir=None, *, errors=None):
696
+ if 'b' in mode:
697
+ self._file = _io.BytesIO()
698
+ else:
699
+ encoding = _io.text_encoding(encoding)
700
+ self._file = _io.TextIOWrapper(_io.BytesIO(),
701
+ encoding=encoding, errors=errors,
702
+ newline=newline)
703
+ self._max_size = max_size
704
+ self._rolled = False
705
+ self._TemporaryFileArgs = {'mode': mode, 'buffering': buffering,
706
+ 'suffix': suffix, 'prefix': prefix,
707
+ 'encoding': encoding, 'newline': newline,
708
+ 'dir': dir, 'errors': errors}
709
+
710
+ __class_getitem__ = classmethod(_types.GenericAlias)
711
+
712
+ def _check(self, file):
713
+ if self._rolled: return
714
+ max_size = self._max_size
715
+ if max_size and file.tell() > max_size:
716
+ self.rollover()
717
+
718
+ def rollover(self):
719
+ if self._rolled: return
720
+ file = self._file
721
+ newfile = self._file = TemporaryFile(**self._TemporaryFileArgs)
722
+ del self._TemporaryFileArgs
723
+
724
+ pos = file.tell()
725
+ if hasattr(newfile, 'buffer'):
726
+ newfile.buffer.write(file.detach().getvalue())
727
+ else:
728
+ newfile.write(file.getvalue())
729
+ newfile.seek(pos, 0)
730
+
731
+ self._rolled = True
732
+
733
+ # The method caching trick from NamedTemporaryFile
734
+ # won't work here, because _file may change from a
735
+ # BytesIO/StringIO instance to a real file. So we list
736
+ # all the methods directly.
737
+
738
+ # Context management protocol
739
+ def __enter__(self):
740
+ if self._file.closed:
741
+ raise ValueError("Cannot enter context with closed file")
742
+ return self
743
+
744
+ def __exit__(self, exc, value, tb):
745
+ self._file.close()
746
+
747
+ # file protocol
748
+ def __iter__(self):
749
+ return self._file.__iter__()
750
+
751
+ def __del__(self):
752
+ if not self.closed:
753
+ _warnings.warn(
754
+ "Unclosed file {!r}".format(self),
755
+ ResourceWarning,
756
+ stacklevel=2,
757
+ source=self
758
+ )
759
+ self.close()
760
+
761
+ def close(self):
762
+ self._file.close()
763
+
764
+ @property
765
+ def closed(self):
766
+ return self._file.closed
767
+
768
+ @property
769
+ def encoding(self):
770
+ return self._file.encoding
771
+
772
+ @property
773
+ def errors(self):
774
+ return self._file.errors
775
+
776
+ def fileno(self):
777
+ self.rollover()
778
+ return self._file.fileno()
779
+
780
+ def flush(self):
781
+ self._file.flush()
782
+
783
+ def isatty(self):
784
+ return self._file.isatty()
785
+
786
+ @property
787
+ def mode(self):
788
+ try:
789
+ return self._file.mode
790
+ except AttributeError:
791
+ return self._TemporaryFileArgs['mode']
792
+
793
+ @property
794
+ def name(self):
795
+ try:
796
+ return self._file.name
797
+ except AttributeError:
798
+ return None
799
+
800
+ @property
801
+ def newlines(self):
802
+ return self._file.newlines
803
+
804
+ def readable(self):
805
+ return self._file.readable()
806
+
807
+ def read(self, *args):
808
+ return self._file.read(*args)
809
+
810
+ def read1(self, *args):
811
+ return self._file.read1(*args)
812
+
813
+ def readinto(self, b):
814
+ return self._file.readinto(b)
815
+
816
+ def readinto1(self, b):
817
+ return self._file.readinto1(b)
818
+
819
+ def readline(self, *args):
820
+ return self._file.readline(*args)
821
+
822
+ def readlines(self, *args):
823
+ return self._file.readlines(*args)
824
+
825
+ def seekable(self):
826
+ return self._file.seekable()
827
+
828
+ def seek(self, *args):
829
+ return self._file.seek(*args)
830
+
831
+ def tell(self):
832
+ return self._file.tell()
833
+
834
+ def truncate(self, size=None):
835
+ if size is None:
836
+ return self._file.truncate()
837
+ else:
838
+ if size > self._max_size:
839
+ self.rollover()
840
+ return self._file.truncate(size)
841
+
842
+ def writable(self):
843
+ return self._file.writable()
844
+
845
+ def write(self, s):
846
+ file = self._file
847
+ rv = file.write(s)
848
+ self._check(file)
849
+ return rv
850
+
851
+ def writelines(self, iterable):
852
+ if self._max_size == 0 or self._rolled:
853
+ return self._file.writelines(iterable)
854
+
855
+ it = iter(iterable)
856
+ for line in it:
857
+ self.write(line)
858
+ if self._rolled:
859
+ return self._file.writelines(it)
860
+
861
+ def detach(self):
862
+ return self._file.detach()
863
+
864
+
865
+ class TemporaryDirectory:
866
+ """Create and return a temporary directory. This has the same
867
+ behavior as mkdtemp but can be used as a context manager. For
868
+ example:
869
+
870
+ with TemporaryDirectory() as tmpdir:
871
+ ...
872
+
873
+ Upon exiting the context, the directory and everything contained
874
+ in it are removed (unless delete=False is passed or an exception
875
+ is raised during cleanup and ignore_cleanup_errors is not True).
876
+
877
+ Optional Arguments:
878
+ suffix - A str suffix for the directory name. (see mkdtemp)
879
+ prefix - A str prefix for the directory name. (see mkdtemp)
880
+ dir - A directory to create this temp dir in. (see mkdtemp)
881
+ ignore_cleanup_errors - False; ignore exceptions during cleanup?
882
+ delete - True; whether the directory is automatically deleted.
883
+ """
884
+
885
+ def __init__(self, suffix=None, prefix=None, dir=None,
886
+ ignore_cleanup_errors=False, *, delete=True):
887
+ self.name = mkdtemp(suffix, prefix, dir)
888
+ self._ignore_cleanup_errors = ignore_cleanup_errors
889
+ self._delete = delete
890
+ self._finalizer = _weakref.finalize(
891
+ self, self._cleanup, self.name,
892
+ warn_message="Implicitly cleaning up {!r}".format(self),
893
+ ignore_errors=self._ignore_cleanup_errors, delete=self._delete)
894
+
895
+ @classmethod
896
+ def _rmtree(cls, name, ignore_errors=False, repeated=False):
897
+ def onexc(func, path, exc):
898
+ # On DragonFly BSD, UF_NOUNLINK removal fails with EISDIR, not EPERM.
899
+ if isinstance(exc, (PermissionError, IsADirectoryError)):
900
+ if repeated and path == name:
901
+ if ignore_errors:
902
+ return
903
+ raise
904
+
905
+ try:
906
+ if path != name:
907
+ _resetperms(_os.path.dirname(path))
908
+ _resetperms(path)
909
+
910
+ try:
911
+ _os.unlink(path)
912
+ except IsADirectoryError:
913
+ cls._rmtree(path, ignore_errors=ignore_errors)
914
+ except PermissionError:
915
+ # The PermissionError handler was originally added for
916
+ # FreeBSD in directories, but it seems that it is raised
917
+ # on Windows too.
918
+ # bpo-43153: Calling _rmtree again may
919
+ # raise NotADirectoryError and mask the PermissionError.
920
+ # So we must re-raise the current PermissionError if
921
+ # path is not a directory.
922
+ if not _os.path.isdir(path) or _os.path.isjunction(path):
923
+ if ignore_errors:
924
+ return
925
+ raise
926
+ cls._rmtree(path, ignore_errors=ignore_errors,
927
+ repeated=(path == name))
928
+ except FileNotFoundError:
929
+ pass
930
+ elif isinstance(exc, FileNotFoundError):
931
+ pass
932
+ else:
933
+ if not ignore_errors:
934
+ raise
935
+
936
+ _shutil.rmtree(name, onexc=onexc)
937
+
938
+ @classmethod
939
+ def _cleanup(cls, name, warn_message, ignore_errors=False, delete=True):
940
+ if delete:
941
+ cls._rmtree(name, ignore_errors=ignore_errors)
942
+ _warnings.warn(warn_message, ResourceWarning)
943
+
944
+ def __repr__(self):
945
+ return "<{} {!r}>".format(self.__class__.__name__, self.name)
946
+
947
+ def __enter__(self):
948
+ return self.name
949
+
950
+ def __exit__(self, exc, value, tb):
951
+ if self._delete:
952
+ self.cleanup()
953
+
954
+ def cleanup(self):
955
+ if self._finalizer.detach() or _os.path.exists(self.name):
956
+ self._rmtree(self.name, ignore_errors=self._ignore_cleanup_errors)
957
+
958
+ __class_getitem__ = classmethod(_types.GenericAlias)