@pairling/runtime-darwin-x64 0.1.0 → 0.2.1

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 (1239) hide show
  1. package/README.md +1 -1
  2. package/bin/pairling-connectd +0 -0
  3. package/manifest.json +9 -3
  4. package/package.json +3 -3
  5. package/python/bin/2to3-3.12 +7 -0
  6. package/python/bin/idle3.12 +7 -0
  7. package/python/bin/pip +8 -0
  8. package/python/bin/pip3 +8 -0
  9. package/python/bin/pip3.12 +8 -0
  10. package/python/bin/pydoc3.12 +7 -0
  11. package/python/bin/python3 +0 -0
  12. package/python/bin/python3.12 +0 -0
  13. package/python/bin/python3.12-config +76 -0
  14. package/python/include/python3.12/Python.h +109 -0
  15. package/python/include/python3.12/abstract.h +899 -0
  16. package/python/include/python3.12/bltinmodule.h +14 -0
  17. package/python/include/python3.12/boolobject.h +42 -0
  18. package/python/include/python3.12/bytearrayobject.h +44 -0
  19. package/python/include/python3.12/bytesobject.h +69 -0
  20. package/python/include/python3.12/ceval.h +168 -0
  21. package/python/include/python3.12/codecs.h +248 -0
  22. package/python/include/python3.12/compile.h +22 -0
  23. package/python/include/python3.12/complexobject.h +30 -0
  24. package/python/include/python3.12/cpython/abstract.h +206 -0
  25. package/python/include/python3.12/cpython/bytearrayobject.h +34 -0
  26. package/python/include/python3.12/cpython/bytesobject.h +133 -0
  27. package/python/include/python3.12/cpython/cellobject.h +44 -0
  28. package/python/include/python3.12/cpython/ceval.h +35 -0
  29. package/python/include/python3.12/cpython/classobject.h +71 -0
  30. package/python/include/python3.12/cpython/code.h +389 -0
  31. package/python/include/python3.12/cpython/compile.h +69 -0
  32. package/python/include/python3.12/cpython/complexobject.h +44 -0
  33. package/python/include/python3.12/cpython/context.h +78 -0
  34. package/python/include/python3.12/cpython/descrobject.h +64 -0
  35. package/python/include/python3.12/cpython/dictobject.h +118 -0
  36. package/python/include/python3.12/cpython/fileobject.h +19 -0
  37. package/python/include/python3.12/cpython/fileutils.h +8 -0
  38. package/python/include/python3.12/cpython/floatobject.h +27 -0
  39. package/python/include/python3.12/cpython/frameobject.h +29 -0
  40. package/python/include/python3.12/cpython/funcobject.h +190 -0
  41. package/python/include/python3.12/cpython/genobject.h +89 -0
  42. package/python/include/python3.12/cpython/import.h +46 -0
  43. package/python/include/python3.12/cpython/initconfig.h +256 -0
  44. package/python/include/python3.12/cpython/interpreteridobject.h +11 -0
  45. package/python/include/python3.12/cpython/listobject.h +47 -0
  46. package/python/include/python3.12/cpython/longintrepr.h +133 -0
  47. package/python/include/python3.12/cpython/longobject.h +100 -0
  48. package/python/include/python3.12/cpython/memoryobject.h +52 -0
  49. package/python/include/python3.12/cpython/methodobject.h +66 -0
  50. package/python/include/python3.12/cpython/modsupport.h +109 -0
  51. package/python/include/python3.12/cpython/object.h +575 -0
  52. package/python/include/python3.12/cpython/objimpl.h +95 -0
  53. package/python/include/python3.12/cpython/odictobject.h +43 -0
  54. package/python/include/python3.12/cpython/picklebufobject.h +31 -0
  55. package/python/include/python3.12/cpython/pthread_stubs.h +88 -0
  56. package/python/include/python3.12/cpython/pyctype.h +39 -0
  57. package/python/include/python3.12/cpython/pydebug.h +38 -0
  58. package/python/include/python3.12/cpython/pyerrors.h +178 -0
  59. package/python/include/python3.12/cpython/pyfpe.h +15 -0
  60. package/python/include/python3.12/cpython/pyframe.h +35 -0
  61. package/python/include/python3.12/cpython/pylifecycle.h +111 -0
  62. package/python/include/python3.12/cpython/pymem.h +98 -0
  63. package/python/include/python3.12/cpython/pystate.h +456 -0
  64. package/python/include/python3.12/cpython/pythonrun.h +121 -0
  65. package/python/include/python3.12/cpython/pythread.h +42 -0
  66. package/python/include/python3.12/cpython/pytime.h +331 -0
  67. package/python/include/python3.12/cpython/setobject.h +72 -0
  68. package/python/include/python3.12/cpython/sysmodule.h +16 -0
  69. package/python/include/python3.12/cpython/traceback.h +16 -0
  70. package/python/include/python3.12/cpython/tupleobject.h +39 -0
  71. package/python/include/python3.12/cpython/unicodeobject.h +976 -0
  72. package/python/include/python3.12/cpython/warnings.h +20 -0
  73. package/python/include/python3.12/cpython/weakrefobject.h +56 -0
  74. package/python/include/python3.12/datetime.h +267 -0
  75. package/python/include/python3.12/descrobject.h +100 -0
  76. package/python/include/python3.12/dictobject.h +97 -0
  77. package/python/include/python3.12/dynamic_annotations.h +499 -0
  78. package/python/include/python3.12/enumobject.h +17 -0
  79. package/python/include/python3.12/errcode.h +38 -0
  80. package/python/include/python3.12/exports.h +36 -0
  81. package/python/include/python3.12/fileobject.h +49 -0
  82. package/python/include/python3.12/fileutils.h +26 -0
  83. package/python/include/python3.12/floatobject.h +54 -0
  84. package/python/include/python3.12/frameobject.h +20 -0
  85. package/python/include/python3.12/genericaliasobject.h +14 -0
  86. package/python/include/python3.12/import.h +98 -0
  87. package/python/include/python3.12/internal/pycore_abstract.h +25 -0
  88. package/python/include/python3.12/internal/pycore_asdl.h +112 -0
  89. package/python/include/python3.12/internal/pycore_ast.h +922 -0
  90. package/python/include/python3.12/internal/pycore_ast_state.h +265 -0
  91. package/python/include/python3.12/internal/pycore_atexit.h +57 -0
  92. package/python/include/python3.12/internal/pycore_atomic.h +557 -0
  93. package/python/include/python3.12/internal/pycore_atomic_funcs.h +94 -0
  94. package/python/include/python3.12/internal/pycore_bitutils.h +186 -0
  95. package/python/include/python3.12/internal/pycore_blocks_output_buffer.h +317 -0
  96. package/python/include/python3.12/internal/pycore_bytes_methods.h +73 -0
  97. package/python/include/python3.12/internal/pycore_bytesobject.h +47 -0
  98. package/python/include/python3.12/internal/pycore_call.h +133 -0
  99. package/python/include/python3.12/internal/pycore_ceval.h +164 -0
  100. package/python/include/python3.12/internal/pycore_ceval_state.h +103 -0
  101. package/python/include/python3.12/internal/pycore_code.h +496 -0
  102. package/python/include/python3.12/internal/pycore_compile.h +118 -0
  103. package/python/include/python3.12/internal/pycore_condvar.h +99 -0
  104. package/python/include/python3.12/internal/pycore_context.h +71 -0
  105. package/python/include/python3.12/internal/pycore_descrobject.h +26 -0
  106. package/python/include/python3.12/internal/pycore_dict.h +199 -0
  107. package/python/include/python3.12/internal/pycore_dict_state.h +50 -0
  108. package/python/include/python3.12/internal/pycore_dtoa.h +69 -0
  109. package/python/include/python3.12/internal/pycore_emscripten_signal.h +25 -0
  110. package/python/include/python3.12/internal/pycore_exceptions.h +37 -0
  111. package/python/include/python3.12/internal/pycore_faulthandler.h +99 -0
  112. package/python/include/python3.12/internal/pycore_fileutils.h +292 -0
  113. package/python/include/python3.12/internal/pycore_fileutils_windows.h +98 -0
  114. package/python/include/python3.12/internal/pycore_floatobject.h +71 -0
  115. package/python/include/python3.12/internal/pycore_flowgraph.h +120 -0
  116. package/python/include/python3.12/internal/pycore_format.h +27 -0
  117. package/python/include/python3.12/internal/pycore_frame.h +283 -0
  118. package/python/include/python3.12/internal/pycore_function.h +26 -0
  119. package/python/include/python3.12/internal/pycore_gc.h +211 -0
  120. package/python/include/python3.12/internal/pycore_genobject.h +49 -0
  121. package/python/include/python3.12/internal/pycore_getopt.h +22 -0
  122. package/python/include/python3.12/internal/pycore_gil.h +50 -0
  123. package/python/include/python3.12/internal/pycore_global_objects.h +105 -0
  124. package/python/include/python3.12/internal/pycore_global_objects_fini_generated.h +1517 -0
  125. package/python/include/python3.12/internal/pycore_global_strings.h +777 -0
  126. package/python/include/python3.12/internal/pycore_hamt.h +134 -0
  127. package/python/include/python3.12/internal/pycore_hashtable.h +149 -0
  128. package/python/include/python3.12/internal/pycore_import.h +183 -0
  129. package/python/include/python3.12/internal/pycore_initconfig.h +179 -0
  130. package/python/include/python3.12/internal/pycore_instruments.h +106 -0
  131. package/python/include/python3.12/internal/pycore_interp.h +275 -0
  132. package/python/include/python3.12/internal/pycore_intrinsics.h +32 -0
  133. package/python/include/python3.12/internal/pycore_list.h +83 -0
  134. package/python/include/python3.12/internal/pycore_long.h +258 -0
  135. package/python/include/python3.12/internal/pycore_memoryobject.h +18 -0
  136. package/python/include/python3.12/internal/pycore_moduleobject.h +45 -0
  137. package/python/include/python3.12/internal/pycore_namespace.h +20 -0
  138. package/python/include/python3.12/internal/pycore_object.h +455 -0
  139. package/python/include/python3.12/internal/pycore_object_state.h +42 -0
  140. package/python/include/python3.12/internal/pycore_obmalloc.h +700 -0
  141. package/python/include/python3.12/internal/pycore_obmalloc_init.h +73 -0
  142. package/python/include/python3.12/internal/pycore_opcode.h +587 -0
  143. package/python/include/python3.12/internal/pycore_opcode_utils.h +92 -0
  144. package/python/include/python3.12/internal/pycore_parser.h +66 -0
  145. package/python/include/python3.12/internal/pycore_pathconfig.h +24 -0
  146. package/python/include/python3.12/internal/pycore_pyarena.h +64 -0
  147. package/python/include/python3.12/internal/pycore_pyerrors.h +129 -0
  148. package/python/include/python3.12/internal/pycore_pyhash.h +40 -0
  149. package/python/include/python3.12/internal/pycore_pylifecycle.h +99 -0
  150. package/python/include/python3.12/internal/pycore_pymath.h +205 -0
  151. package/python/include/python3.12/internal/pycore_pymem.h +98 -0
  152. package/python/include/python3.12/internal/pycore_pymem_init.h +85 -0
  153. package/python/include/python3.12/internal/pycore_pystate.h +180 -0
  154. package/python/include/python3.12/internal/pycore_pythread.h +81 -0
  155. package/python/include/python3.12/internal/pycore_range.h +21 -0
  156. package/python/include/python3.12/internal/pycore_runtime.h +235 -0
  157. package/python/include/python3.12/internal/pycore_runtime_init.h +188 -0
  158. package/python/include/python3.12/internal/pycore_runtime_init_generated.h +1511 -0
  159. package/python/include/python3.12/internal/pycore_signal.h +98 -0
  160. package/python/include/python3.12/internal/pycore_sliceobject.h +22 -0
  161. package/python/include/python3.12/internal/pycore_strhex.h +36 -0
  162. package/python/include/python3.12/internal/pycore_structseq.h +39 -0
  163. package/python/include/python3.12/internal/pycore_symtable.h +160 -0
  164. package/python/include/python3.12/internal/pycore_sysmodule.h +34 -0
  165. package/python/include/python3.12/internal/pycore_time.h +25 -0
  166. package/python/include/python3.12/internal/pycore_token.h +108 -0
  167. package/python/include/python3.12/internal/pycore_traceback.h +101 -0
  168. package/python/include/python3.12/internal/pycore_tracemalloc.h +123 -0
  169. package/python/include/python3.12/internal/pycore_tuple.h +79 -0
  170. package/python/include/python3.12/internal/pycore_typeobject.h +151 -0
  171. package/python/include/python3.12/internal/pycore_typevarobject.h +24 -0
  172. package/python/include/python3.12/internal/pycore_ucnhash.h +34 -0
  173. package/python/include/python3.12/internal/pycore_unicodeobject.h +86 -0
  174. package/python/include/python3.12/internal/pycore_unicodeobject_generated.h +2832 -0
  175. package/python/include/python3.12/internal/pycore_unionobject.h +23 -0
  176. package/python/include/python3.12/internal/pycore_warnings.h +29 -0
  177. package/python/include/python3.12/interpreteridobject.h +17 -0
  178. package/python/include/python3.12/intrcheck.h +30 -0
  179. package/python/include/python3.12/iterobject.h +27 -0
  180. package/python/include/python3.12/listobject.h +52 -0
  181. package/python/include/python3.12/longobject.h +108 -0
  182. package/python/include/python3.12/marshal.h +31 -0
  183. package/python/include/python3.12/memoryobject.h +34 -0
  184. package/python/include/python3.12/methodobject.h +132 -0
  185. package/python/include/python3.12/modsupport.h +168 -0
  186. package/python/include/python3.12/moduleobject.h +119 -0
  187. package/python/include/python3.12/object.h +993 -0
  188. package/python/include/python3.12/objimpl.h +234 -0
  189. package/python/include/python3.12/opcode.h +271 -0
  190. package/python/include/python3.12/osdefs.h +51 -0
  191. package/python/include/python3.12/osmodule.h +17 -0
  192. package/python/include/python3.12/patchlevel.h +35 -0
  193. package/python/include/python3.12/py_curses.h +99 -0
  194. package/python/include/python3.12/pybuffer.h +145 -0
  195. package/python/include/python3.12/pycapsule.h +59 -0
  196. package/python/include/python3.12/pyconfig.h +1943 -0
  197. package/python/include/python3.12/pydtrace.h +59 -0
  198. package/python/include/python3.12/pyerrors.h +337 -0
  199. package/python/include/python3.12/pyexpat.h +62 -0
  200. package/python/include/python3.12/pyframe.h +26 -0
  201. package/python/include/python3.12/pyhash.h +144 -0
  202. package/python/include/python3.12/pylifecycle.h +78 -0
  203. package/python/include/python3.12/pymacconfig.h +99 -0
  204. package/python/include/python3.12/pymacro.h +172 -0
  205. package/python/include/python3.12/pymath.h +62 -0
  206. package/python/include/python3.12/pymem.h +104 -0
  207. package/python/include/python3.12/pyport.h +782 -0
  208. package/python/include/python3.12/pystate.h +132 -0
  209. package/python/include/python3.12/pystats.h +110 -0
  210. package/python/include/python3.12/pystrcmp.h +23 -0
  211. package/python/include/python3.12/pystrtod.h +46 -0
  212. package/python/include/python3.12/pythonrun.h +49 -0
  213. package/python/include/python3.12/pythread.h +135 -0
  214. package/python/include/python3.12/pytypedefs.h +30 -0
  215. package/python/include/python3.12/rangeobject.h +27 -0
  216. package/python/include/python3.12/setobject.h +49 -0
  217. package/python/include/python3.12/sliceobject.h +65 -0
  218. package/python/include/python3.12/structmember.h +56 -0
  219. package/python/include/python3.12/structseq.h +49 -0
  220. package/python/include/python3.12/sysmodule.h +54 -0
  221. package/python/include/python3.12/traceback.h +26 -0
  222. package/python/include/python3.12/tracemalloc.h +77 -0
  223. package/python/include/python3.12/tupleobject.h +46 -0
  224. package/python/include/python3.12/typeslots.h +88 -0
  225. package/python/include/python3.12/unicodeobject.h +1020 -0
  226. package/python/include/python3.12/warnings.h +45 -0
  227. package/python/include/python3.12/weakrefobject.h +42 -0
  228. package/python/lib/libpython3.12.dylib +0 -0
  229. package/python/lib/python3.12/LICENSE.txt +279 -0
  230. package/python/lib/python3.12/__future__.py +147 -0
  231. package/python/lib/python3.12/__hello__.py +16 -0
  232. package/python/lib/python3.12/__phello__/__init__.py +7 -0
  233. package/python/lib/python3.12/__phello__/spam.py +7 -0
  234. package/python/lib/python3.12/_aix_support.py +108 -0
  235. package/python/lib/python3.12/_collections_abc.py +1173 -0
  236. package/python/lib/python3.12/_compat_pickle.py +252 -0
  237. package/python/lib/python3.12/_compression.py +162 -0
  238. package/python/lib/python3.12/_markupbase.py +396 -0
  239. package/python/lib/python3.12/_osx_support.py +579 -0
  240. package/python/lib/python3.12/_py_abc.py +147 -0
  241. package/python/lib/python3.12/_pydatetime.py +2643 -0
  242. package/python/lib/python3.12/_pydecimal.py +6339 -0
  243. package/python/lib/python3.12/_pyio.py +2698 -0
  244. package/python/lib/python3.12/_pylong.py +329 -0
  245. package/python/lib/python3.12/_sitebuiltins.py +103 -0
  246. package/python/lib/python3.12/_strptime.py +664 -0
  247. package/python/lib/python3.12/_sysconfigdata__darwin_darwin.py +984 -0
  248. package/python/lib/python3.12/_threading_local.py +242 -0
  249. package/python/lib/python3.12/_weakrefset.py +205 -0
  250. package/python/lib/python3.12/abc.py +188 -0
  251. package/python/lib/python3.12/aifc.py +984 -0
  252. package/python/lib/python3.12/antigravity.py +17 -0
  253. package/python/lib/python3.12/argparse.py +2650 -0
  254. package/python/lib/python3.12/ast.py +1840 -0
  255. package/python/lib/python3.12/asyncio/__init__.py +47 -0
  256. package/python/lib/python3.12/asyncio/__main__.py +128 -0
  257. package/python/lib/python3.12/asyncio/base_events.py +2024 -0
  258. package/python/lib/python3.12/asyncio/base_futures.py +67 -0
  259. package/python/lib/python3.12/asyncio/base_subprocess.py +285 -0
  260. package/python/lib/python3.12/asyncio/base_tasks.py +94 -0
  261. package/python/lib/python3.12/asyncio/constants.py +41 -0
  262. package/python/lib/python3.12/asyncio/coroutines.py +109 -0
  263. package/python/lib/python3.12/asyncio/events.py +868 -0
  264. package/python/lib/python3.12/asyncio/exceptions.py +62 -0
  265. package/python/lib/python3.12/asyncio/format_helpers.py +76 -0
  266. package/python/lib/python3.12/asyncio/futures.py +430 -0
  267. package/python/lib/python3.12/asyncio/locks.py +586 -0
  268. package/python/lib/python3.12/asyncio/log.py +7 -0
  269. package/python/lib/python3.12/asyncio/mixins.py +21 -0
  270. package/python/lib/python3.12/asyncio/proactor_events.py +897 -0
  271. package/python/lib/python3.12/asyncio/protocols.py +216 -0
  272. package/python/lib/python3.12/asyncio/queues.py +244 -0
  273. package/python/lib/python3.12/asyncio/runners.py +216 -0
  274. package/python/lib/python3.12/asyncio/selector_events.py +1324 -0
  275. package/python/lib/python3.12/asyncio/sslproto.py +929 -0
  276. package/python/lib/python3.12/asyncio/staggered.py +174 -0
  277. package/python/lib/python3.12/asyncio/streams.py +770 -0
  278. package/python/lib/python3.12/asyncio/subprocess.py +229 -0
  279. package/python/lib/python3.12/asyncio/taskgroups.py +268 -0
  280. package/python/lib/python3.12/asyncio/tasks.py +1065 -0
  281. package/python/lib/python3.12/asyncio/threads.py +25 -0
  282. package/python/lib/python3.12/asyncio/timeouts.py +168 -0
  283. package/python/lib/python3.12/asyncio/transports.py +335 -0
  284. package/python/lib/python3.12/asyncio/trsock.py +98 -0
  285. package/python/lib/python3.12/asyncio/unix_events.py +1500 -0
  286. package/python/lib/python3.12/asyncio/windows_events.py +901 -0
  287. package/python/lib/python3.12/asyncio/windows_utils.py +173 -0
  288. package/python/lib/python3.12/base64.py +586 -0
  289. package/python/lib/python3.12/bdb.py +920 -0
  290. package/python/lib/python3.12/bisect.py +118 -0
  291. package/python/lib/python3.12/bz2.py +344 -0
  292. package/python/lib/python3.12/cProfile.py +195 -0
  293. package/python/lib/python3.12/calendar.py +808 -0
  294. package/python/lib/python3.12/cgi.py +1014 -0
  295. package/python/lib/python3.12/cgitb.py +332 -0
  296. package/python/lib/python3.12/chunk.py +173 -0
  297. package/python/lib/python3.12/cmd.py +401 -0
  298. package/python/lib/python3.12/code.py +324 -0
  299. package/python/lib/python3.12/codecs.py +1129 -0
  300. package/python/lib/python3.12/codeop.py +161 -0
  301. package/python/lib/python3.12/collections/__init__.py +1592 -0
  302. package/python/lib/python3.12/collections/abc.py +3 -0
  303. package/python/lib/python3.12/colorsys.py +166 -0
  304. package/python/lib/python3.12/compileall.py +469 -0
  305. package/python/lib/python3.12/concurrent/__init__.py +1 -0
  306. package/python/lib/python3.12/concurrent/futures/__init__.py +54 -0
  307. package/python/lib/python3.12/concurrent/futures/_base.py +654 -0
  308. package/python/lib/python3.12/concurrent/futures/process.py +876 -0
  309. package/python/lib/python3.12/concurrent/futures/thread.py +240 -0
  310. package/python/lib/python3.12/config-3.12-darwin/Makefile +3224 -0
  311. package/python/lib/python3.12/config-3.12-darwin/Setup +303 -0
  312. package/python/lib/python3.12/config-3.12-darwin/Setup.bootstrap +36 -0
  313. package/python/lib/python3.12/config-3.12-darwin/Setup.local +90 -0
  314. package/python/lib/python3.12/config-3.12-darwin/Setup.stdlib +183 -0
  315. package/python/lib/python3.12/config-3.12-darwin/config.c +246 -0
  316. package/python/lib/python3.12/config-3.12-darwin/config.c.in +71 -0
  317. package/python/lib/python3.12/config-3.12-darwin/install-sh +541 -0
  318. package/python/lib/python3.12/config-3.12-darwin/makesetup +353 -0
  319. package/python/lib/python3.12/config-3.12-darwin/python-config.py +76 -0
  320. package/python/lib/python3.12/config-3.12-darwin/python.o +0 -0
  321. package/python/lib/python3.12/configparser.py +1333 -0
  322. package/python/lib/python3.12/contextlib.py +800 -0
  323. package/python/lib/python3.12/contextvars.py +4 -0
  324. package/python/lib/python3.12/copy.py +292 -0
  325. package/python/lib/python3.12/copyreg.py +217 -0
  326. package/python/lib/python3.12/crypt.py +124 -0
  327. package/python/lib/python3.12/csv.py +451 -0
  328. package/python/lib/python3.12/ctypes/__init__.py +582 -0
  329. package/python/lib/python3.12/ctypes/_aix.py +327 -0
  330. package/python/lib/python3.12/ctypes/_endian.py +78 -0
  331. package/python/lib/python3.12/ctypes/macholib/README.ctypes +7 -0
  332. package/python/lib/python3.12/ctypes/macholib/__init__.py +9 -0
  333. package/python/lib/python3.12/ctypes/macholib/dyld.py +165 -0
  334. package/python/lib/python3.12/ctypes/macholib/dylib.py +42 -0
  335. package/python/lib/python3.12/ctypes/macholib/fetch_macholib +2 -0
  336. package/python/lib/python3.12/ctypes/macholib/fetch_macholib.bat +1 -0
  337. package/python/lib/python3.12/ctypes/macholib/framework.py +42 -0
  338. package/python/lib/python3.12/ctypes/util.py +379 -0
  339. package/python/lib/python3.12/ctypes/wintypes.py +202 -0
  340. package/python/lib/python3.12/curses/__init__.py +101 -0
  341. package/python/lib/python3.12/curses/ascii.py +99 -0
  342. package/python/lib/python3.12/curses/has_key.py +192 -0
  343. package/python/lib/python3.12/curses/panel.py +6 -0
  344. package/python/lib/python3.12/curses/textpad.py +204 -0
  345. package/python/lib/python3.12/dataclasses.py +1588 -0
  346. package/python/lib/python3.12/datetime.py +9 -0
  347. package/python/lib/python3.12/dbm/__init__.py +190 -0
  348. package/python/lib/python3.12/dbm/dumb.py +317 -0
  349. package/python/lib/python3.12/dbm/gnu.py +3 -0
  350. package/python/lib/python3.12/dbm/ndbm.py +3 -0
  351. package/python/lib/python3.12/decimal.py +108 -0
  352. package/python/lib/python3.12/difflib.py +2056 -0
  353. package/python/lib/python3.12/dis.py +805 -0
  354. package/python/lib/python3.12/doctest.py +2845 -0
  355. package/python/lib/python3.12/email/__init__.py +61 -0
  356. package/python/lib/python3.12/email/_encoded_words.py +233 -0
  357. package/python/lib/python3.12/email/_header_value_parser.py +3108 -0
  358. package/python/lib/python3.12/email/_parseaddr.py +557 -0
  359. package/python/lib/python3.12/email/_policybase.py +382 -0
  360. package/python/lib/python3.12/email/architecture.rst +216 -0
  361. package/python/lib/python3.12/email/base64mime.py +115 -0
  362. package/python/lib/python3.12/email/charset.py +398 -0
  363. package/python/lib/python3.12/email/contentmanager.py +251 -0
  364. package/python/lib/python3.12/email/encoders.py +65 -0
  365. package/python/lib/python3.12/email/errors.py +117 -0
  366. package/python/lib/python3.12/email/feedparser.py +534 -0
  367. package/python/lib/python3.12/email/generator.py +530 -0
  368. package/python/lib/python3.12/email/header.py +573 -0
  369. package/python/lib/python3.12/email/headerregistry.py +604 -0
  370. package/python/lib/python3.12/email/iterators.py +68 -0
  371. package/python/lib/python3.12/email/message.py +1215 -0
  372. package/python/lib/python3.12/email/mime/__init__.py +0 -0
  373. package/python/lib/python3.12/email/mime/application.py +37 -0
  374. package/python/lib/python3.12/email/mime/audio.py +100 -0
  375. package/python/lib/python3.12/email/mime/base.py +29 -0
  376. package/python/lib/python3.12/email/mime/image.py +152 -0
  377. package/python/lib/python3.12/email/mime/message.py +33 -0
  378. package/python/lib/python3.12/email/mime/multipart.py +47 -0
  379. package/python/lib/python3.12/email/mime/nonmultipart.py +21 -0
  380. package/python/lib/python3.12/email/mime/text.py +40 -0
  381. package/python/lib/python3.12/email/parser.py +127 -0
  382. package/python/lib/python3.12/email/policy.py +232 -0
  383. package/python/lib/python3.12/email/quoprimime.py +300 -0
  384. package/python/lib/python3.12/email/utils.py +486 -0
  385. package/python/lib/python3.12/encodings/__init__.py +174 -0
  386. package/python/lib/python3.12/encodings/aliases.py +551 -0
  387. package/python/lib/python3.12/encodings/ascii.py +50 -0
  388. package/python/lib/python3.12/encodings/base64_codec.py +55 -0
  389. package/python/lib/python3.12/encodings/big5.py +39 -0
  390. package/python/lib/python3.12/encodings/big5hkscs.py +39 -0
  391. package/python/lib/python3.12/encodings/bz2_codec.py +78 -0
  392. package/python/lib/python3.12/encodings/charmap.py +69 -0
  393. package/python/lib/python3.12/encodings/cp037.py +307 -0
  394. package/python/lib/python3.12/encodings/cp1006.py +307 -0
  395. package/python/lib/python3.12/encodings/cp1026.py +307 -0
  396. package/python/lib/python3.12/encodings/cp1125.py +698 -0
  397. package/python/lib/python3.12/encodings/cp1140.py +307 -0
  398. package/python/lib/python3.12/encodings/cp1250.py +307 -0
  399. package/python/lib/python3.12/encodings/cp1251.py +307 -0
  400. package/python/lib/python3.12/encodings/cp1252.py +307 -0
  401. package/python/lib/python3.12/encodings/cp1253.py +307 -0
  402. package/python/lib/python3.12/encodings/cp1254.py +307 -0
  403. package/python/lib/python3.12/encodings/cp1255.py +307 -0
  404. package/python/lib/python3.12/encodings/cp1256.py +307 -0
  405. package/python/lib/python3.12/encodings/cp1257.py +307 -0
  406. package/python/lib/python3.12/encodings/cp1258.py +307 -0
  407. package/python/lib/python3.12/encodings/cp273.py +307 -0
  408. package/python/lib/python3.12/encodings/cp424.py +307 -0
  409. package/python/lib/python3.12/encodings/cp437.py +698 -0
  410. package/python/lib/python3.12/encodings/cp500.py +307 -0
  411. package/python/lib/python3.12/encodings/cp720.py +309 -0
  412. package/python/lib/python3.12/encodings/cp737.py +698 -0
  413. package/python/lib/python3.12/encodings/cp775.py +697 -0
  414. package/python/lib/python3.12/encodings/cp850.py +698 -0
  415. package/python/lib/python3.12/encodings/cp852.py +698 -0
  416. package/python/lib/python3.12/encodings/cp855.py +698 -0
  417. package/python/lib/python3.12/encodings/cp856.py +307 -0
  418. package/python/lib/python3.12/encodings/cp857.py +694 -0
  419. package/python/lib/python3.12/encodings/cp858.py +698 -0
  420. package/python/lib/python3.12/encodings/cp860.py +698 -0
  421. package/python/lib/python3.12/encodings/cp861.py +698 -0
  422. package/python/lib/python3.12/encodings/cp862.py +698 -0
  423. package/python/lib/python3.12/encodings/cp863.py +698 -0
  424. package/python/lib/python3.12/encodings/cp864.py +690 -0
  425. package/python/lib/python3.12/encodings/cp865.py +698 -0
  426. package/python/lib/python3.12/encodings/cp866.py +698 -0
  427. package/python/lib/python3.12/encodings/cp869.py +689 -0
  428. package/python/lib/python3.12/encodings/cp874.py +307 -0
  429. package/python/lib/python3.12/encodings/cp875.py +307 -0
  430. package/python/lib/python3.12/encodings/cp932.py +39 -0
  431. package/python/lib/python3.12/encodings/cp949.py +39 -0
  432. package/python/lib/python3.12/encodings/cp950.py +39 -0
  433. package/python/lib/python3.12/encodings/euc_jis_2004.py +39 -0
  434. package/python/lib/python3.12/encodings/euc_jisx0213.py +39 -0
  435. package/python/lib/python3.12/encodings/euc_jp.py +39 -0
  436. package/python/lib/python3.12/encodings/euc_kr.py +39 -0
  437. package/python/lib/python3.12/encodings/gb18030.py +39 -0
  438. package/python/lib/python3.12/encodings/gb2312.py +39 -0
  439. package/python/lib/python3.12/encodings/gbk.py +39 -0
  440. package/python/lib/python3.12/encodings/hex_codec.py +55 -0
  441. package/python/lib/python3.12/encodings/hp_roman8.py +314 -0
  442. package/python/lib/python3.12/encodings/hz.py +39 -0
  443. package/python/lib/python3.12/encodings/idna.py +317 -0
  444. package/python/lib/python3.12/encodings/iso2022_jp.py +39 -0
  445. package/python/lib/python3.12/encodings/iso2022_jp_1.py +39 -0
  446. package/python/lib/python3.12/encodings/iso2022_jp_2.py +39 -0
  447. package/python/lib/python3.12/encodings/iso2022_jp_2004.py +39 -0
  448. package/python/lib/python3.12/encodings/iso2022_jp_3.py +39 -0
  449. package/python/lib/python3.12/encodings/iso2022_jp_ext.py +39 -0
  450. package/python/lib/python3.12/encodings/iso2022_kr.py +39 -0
  451. package/python/lib/python3.12/encodings/iso8859_1.py +307 -0
  452. package/python/lib/python3.12/encodings/iso8859_10.py +307 -0
  453. package/python/lib/python3.12/encodings/iso8859_11.py +307 -0
  454. package/python/lib/python3.12/encodings/iso8859_13.py +307 -0
  455. package/python/lib/python3.12/encodings/iso8859_14.py +307 -0
  456. package/python/lib/python3.12/encodings/iso8859_15.py +307 -0
  457. package/python/lib/python3.12/encodings/iso8859_16.py +307 -0
  458. package/python/lib/python3.12/encodings/iso8859_2.py +307 -0
  459. package/python/lib/python3.12/encodings/iso8859_3.py +307 -0
  460. package/python/lib/python3.12/encodings/iso8859_4.py +307 -0
  461. package/python/lib/python3.12/encodings/iso8859_5.py +307 -0
  462. package/python/lib/python3.12/encodings/iso8859_6.py +307 -0
  463. package/python/lib/python3.12/encodings/iso8859_7.py +307 -0
  464. package/python/lib/python3.12/encodings/iso8859_8.py +307 -0
  465. package/python/lib/python3.12/encodings/iso8859_9.py +307 -0
  466. package/python/lib/python3.12/encodings/johab.py +39 -0
  467. package/python/lib/python3.12/encodings/koi8_r.py +307 -0
  468. package/python/lib/python3.12/encodings/koi8_t.py +308 -0
  469. package/python/lib/python3.12/encodings/koi8_u.py +307 -0
  470. package/python/lib/python3.12/encodings/kz1048.py +307 -0
  471. package/python/lib/python3.12/encodings/latin_1.py +50 -0
  472. package/python/lib/python3.12/encodings/mac_arabic.py +698 -0
  473. package/python/lib/python3.12/encodings/mac_croatian.py +307 -0
  474. package/python/lib/python3.12/encodings/mac_cyrillic.py +307 -0
  475. package/python/lib/python3.12/encodings/mac_farsi.py +307 -0
  476. package/python/lib/python3.12/encodings/mac_greek.py +307 -0
  477. package/python/lib/python3.12/encodings/mac_iceland.py +307 -0
  478. package/python/lib/python3.12/encodings/mac_latin2.py +312 -0
  479. package/python/lib/python3.12/encodings/mac_roman.py +307 -0
  480. package/python/lib/python3.12/encodings/mac_romanian.py +307 -0
  481. package/python/lib/python3.12/encodings/mac_turkish.py +307 -0
  482. package/python/lib/python3.12/encodings/mbcs.py +47 -0
  483. package/python/lib/python3.12/encodings/oem.py +41 -0
  484. package/python/lib/python3.12/encodings/palmos.py +308 -0
  485. package/python/lib/python3.12/encodings/ptcp154.py +312 -0
  486. package/python/lib/python3.12/encodings/punycode.py +237 -0
  487. package/python/lib/python3.12/encodings/quopri_codec.py +56 -0
  488. package/python/lib/python3.12/encodings/raw_unicode_escape.py +46 -0
  489. package/python/lib/python3.12/encodings/rot_13.py +113 -0
  490. package/python/lib/python3.12/encodings/shift_jis.py +39 -0
  491. package/python/lib/python3.12/encodings/shift_jis_2004.py +39 -0
  492. package/python/lib/python3.12/encodings/shift_jisx0213.py +39 -0
  493. package/python/lib/python3.12/encodings/tis_620.py +307 -0
  494. package/python/lib/python3.12/encodings/undefined.py +49 -0
  495. package/python/lib/python3.12/encodings/unicode_escape.py +46 -0
  496. package/python/lib/python3.12/encodings/utf_16.py +155 -0
  497. package/python/lib/python3.12/encodings/utf_16_be.py +42 -0
  498. package/python/lib/python3.12/encodings/utf_16_le.py +42 -0
  499. package/python/lib/python3.12/encodings/utf_32.py +150 -0
  500. package/python/lib/python3.12/encodings/utf_32_be.py +37 -0
  501. package/python/lib/python3.12/encodings/utf_32_le.py +37 -0
  502. package/python/lib/python3.12/encodings/utf_7.py +38 -0
  503. package/python/lib/python3.12/encodings/utf_8.py +42 -0
  504. package/python/lib/python3.12/encodings/utf_8_sig.py +130 -0
  505. package/python/lib/python3.12/encodings/uu_codec.py +103 -0
  506. package/python/lib/python3.12/encodings/zlib_codec.py +77 -0
  507. package/python/lib/python3.12/ensurepip/__init__.py +291 -0
  508. package/python/lib/python3.12/ensurepip/__main__.py +5 -0
  509. package/python/lib/python3.12/ensurepip/_bundled/pip-25.0.1-py3-none-any.whl +0 -0
  510. package/python/lib/python3.12/ensurepip/_uninstall.py +31 -0
  511. package/python/lib/python3.12/enum.py +2108 -0
  512. package/python/lib/python3.12/filecmp.py +315 -0
  513. package/python/lib/python3.12/fileinput.py +442 -0
  514. package/python/lib/python3.12/fnmatch.py +185 -0
  515. package/python/lib/python3.12/fractions.py +990 -0
  516. package/python/lib/python3.12/ftplib.py +966 -0
  517. package/python/lib/python3.12/functools.py +1009 -0
  518. package/python/lib/python3.12/genericpath.py +176 -0
  519. package/python/lib/python3.12/getopt.py +215 -0
  520. package/python/lib/python3.12/getpass.py +185 -0
  521. package/python/lib/python3.12/gettext.py +646 -0
  522. package/python/lib/python3.12/glob.py +252 -0
  523. package/python/lib/python3.12/graphlib.py +250 -0
  524. package/python/lib/python3.12/gzip.py +711 -0
  525. package/python/lib/python3.12/hashlib.py +253 -0
  526. package/python/lib/python3.12/heapq.py +603 -0
  527. package/python/lib/python3.12/hmac.py +219 -0
  528. package/python/lib/python3.12/html/__init__.py +132 -0
  529. package/python/lib/python3.12/html/entities.py +2513 -0
  530. package/python/lib/python3.12/html/parser.py +535 -0
  531. package/python/lib/python3.12/http/__init__.py +200 -0
  532. package/python/lib/python3.12/http/client.py +1570 -0
  533. package/python/lib/python3.12/http/cookiejar.py +2121 -0
  534. package/python/lib/python3.12/http/cookies.py +615 -0
  535. package/python/lib/python3.12/http/server.py +1335 -0
  536. package/python/lib/python3.12/imaplib.py +1641 -0
  537. package/python/lib/python3.12/imghdr.py +180 -0
  538. package/python/lib/python3.12/importlib/__init__.py +138 -0
  539. package/python/lib/python3.12/importlib/_abc.py +39 -0
  540. package/python/lib/python3.12/importlib/_bootstrap.py +1551 -0
  541. package/python/lib/python3.12/importlib/_bootstrap_external.py +1749 -0
  542. package/python/lib/python3.12/importlib/abc.py +239 -0
  543. package/python/lib/python3.12/importlib/machinery.py +20 -0
  544. package/python/lib/python3.12/importlib/metadata/__init__.py +966 -0
  545. package/python/lib/python3.12/importlib/metadata/_adapters.py +89 -0
  546. package/python/lib/python3.12/importlib/metadata/_collections.py +30 -0
  547. package/python/lib/python3.12/importlib/metadata/_functools.py +104 -0
  548. package/python/lib/python3.12/importlib/metadata/_itertools.py +73 -0
  549. package/python/lib/python3.12/importlib/metadata/_meta.py +63 -0
  550. package/python/lib/python3.12/importlib/metadata/_text.py +99 -0
  551. package/python/lib/python3.12/importlib/readers.py +12 -0
  552. package/python/lib/python3.12/importlib/resources/__init__.py +38 -0
  553. package/python/lib/python3.12/importlib/resources/_adapters.py +168 -0
  554. package/python/lib/python3.12/importlib/resources/_common.py +208 -0
  555. package/python/lib/python3.12/importlib/resources/_itertools.py +38 -0
  556. package/python/lib/python3.12/importlib/resources/_legacy.py +98 -0
  557. package/python/lib/python3.12/importlib/resources/abc.py +173 -0
  558. package/python/lib/python3.12/importlib/resources/readers.py +146 -0
  559. package/python/lib/python3.12/importlib/resources/simple.py +106 -0
  560. package/python/lib/python3.12/importlib/simple.py +14 -0
  561. package/python/lib/python3.12/importlib/util.py +270 -0
  562. package/python/lib/python3.12/inspect.py +3433 -0
  563. package/python/lib/python3.12/io.py +99 -0
  564. package/python/lib/python3.12/ipaddress.py +2430 -0
  565. package/python/lib/python3.12/json/__init__.py +359 -0
  566. package/python/lib/python3.12/json/decoder.py +357 -0
  567. package/python/lib/python3.12/json/encoder.py +443 -0
  568. package/python/lib/python3.12/json/scanner.py +73 -0
  569. package/python/lib/python3.12/json/tool.py +85 -0
  570. package/python/lib/python3.12/keyword.py +64 -0
  571. package/python/lib/python3.12/lib-dynload/.empty +0 -0
  572. package/python/lib/python3.12/lib-dynload/_crypt.cpython-312-darwin.so +0 -0
  573. package/python/lib/python3.12/lib-dynload/_dbm.cpython-312-darwin.so +0 -0
  574. package/python/lib/python3.12/linecache.py +185 -0
  575. package/python/lib/python3.12/locale.py +1779 -0
  576. package/python/lib/python3.12/logging/__init__.py +2345 -0
  577. package/python/lib/python3.12/logging/config.py +1078 -0
  578. package/python/lib/python3.12/logging/handlers.py +1624 -0
  579. package/python/lib/python3.12/lzma.py +356 -0
  580. package/python/lib/python3.12/mailbox.py +2153 -0
  581. package/python/lib/python3.12/mailcap.py +302 -0
  582. package/python/lib/python3.12/mimetypes.py +656 -0
  583. package/python/lib/python3.12/modulefinder.py +666 -0
  584. package/python/lib/python3.12/multiprocessing/__init__.py +37 -0
  585. package/python/lib/python3.12/multiprocessing/connection.py +1178 -0
  586. package/python/lib/python3.12/multiprocessing/context.py +377 -0
  587. package/python/lib/python3.12/multiprocessing/dummy/__init__.py +126 -0
  588. package/python/lib/python3.12/multiprocessing/dummy/connection.py +75 -0
  589. package/python/lib/python3.12/multiprocessing/forkserver.py +350 -0
  590. package/python/lib/python3.12/multiprocessing/heap.py +337 -0
  591. package/python/lib/python3.12/multiprocessing/managers.py +1387 -0
  592. package/python/lib/python3.12/multiprocessing/pool.py +957 -0
  593. package/python/lib/python3.12/multiprocessing/popen_fork.py +83 -0
  594. package/python/lib/python3.12/multiprocessing/popen_forkserver.py +74 -0
  595. package/python/lib/python3.12/multiprocessing/popen_spawn_posix.py +72 -0
  596. package/python/lib/python3.12/multiprocessing/popen_spawn_win32.py +145 -0
  597. package/python/lib/python3.12/multiprocessing/process.py +439 -0
  598. package/python/lib/python3.12/multiprocessing/queues.py +401 -0
  599. package/python/lib/python3.12/multiprocessing/reduction.py +281 -0
  600. package/python/lib/python3.12/multiprocessing/resource_sharer.py +154 -0
  601. package/python/lib/python3.12/multiprocessing/resource_tracker.py +294 -0
  602. package/python/lib/python3.12/multiprocessing/shared_memory.py +534 -0
  603. package/python/lib/python3.12/multiprocessing/sharedctypes.py +240 -0
  604. package/python/lib/python3.12/multiprocessing/spawn.py +307 -0
  605. package/python/lib/python3.12/multiprocessing/synchronize.py +404 -0
  606. package/python/lib/python3.12/multiprocessing/util.py +494 -0
  607. package/python/lib/python3.12/netrc.py +192 -0
  608. package/python/lib/python3.12/nntplib.py +1093 -0
  609. package/python/lib/python3.12/ntpath.py +869 -0
  610. package/python/lib/python3.12/nturl2path.py +69 -0
  611. package/python/lib/python3.12/numbers.py +418 -0
  612. package/python/lib/python3.12/opcode.py +493 -0
  613. package/python/lib/python3.12/operator.py +467 -0
  614. package/python/lib/python3.12/optparse.py +1681 -0
  615. package/python/lib/python3.12/os.py +1159 -0
  616. package/python/lib/python3.12/pathlib.py +1435 -0
  617. package/python/lib/python3.12/pdb.py +1987 -0
  618. package/python/lib/python3.12/pickle.py +1866 -0
  619. package/python/lib/python3.12/pickletools.py +2904 -0
  620. package/python/lib/python3.12/pipes.py +250 -0
  621. package/python/lib/python3.12/pkgutil.py +529 -0
  622. package/python/lib/python3.12/platform.py +1359 -0
  623. package/python/lib/python3.12/plistlib.py +920 -0
  624. package/python/lib/python3.12/poplib.py +478 -0
  625. package/python/lib/python3.12/posixpath.py +577 -0
  626. package/python/lib/python3.12/pprint.py +658 -0
  627. package/python/lib/python3.12/profile.py +615 -0
  628. package/python/lib/python3.12/pstats.py +778 -0
  629. package/python/lib/python3.12/pty.py +211 -0
  630. package/python/lib/python3.12/py_compile.py +212 -0
  631. package/python/lib/python3.12/pyclbr.py +314 -0
  632. package/python/lib/python3.12/pydoc.py +2950 -0
  633. package/python/lib/python3.12/pydoc_data/__init__.py +0 -0
  634. package/python/lib/python3.12/pydoc_data/_pydoc.css +112 -0
  635. package/python/lib/python3.12/pydoc_data/topics.py +12500 -0
  636. package/python/lib/python3.12/queue.py +326 -0
  637. package/python/lib/python3.12/quopri.py +237 -0
  638. package/python/lib/python3.12/random.py +996 -0
  639. package/python/lib/python3.12/re/__init__.py +385 -0
  640. package/python/lib/python3.12/re/_casefix.py +106 -0
  641. package/python/lib/python3.12/re/_compiler.py +770 -0
  642. package/python/lib/python3.12/re/_constants.py +220 -0
  643. package/python/lib/python3.12/re/_parser.py +1080 -0
  644. package/python/lib/python3.12/reprlib.py +214 -0
  645. package/python/lib/python3.12/rlcompleter.py +219 -0
  646. package/python/lib/python3.12/runpy.py +319 -0
  647. package/python/lib/python3.12/sched.py +167 -0
  648. package/python/lib/python3.12/secrets.py +71 -0
  649. package/python/lib/python3.12/selectors.py +623 -0
  650. package/python/lib/python3.12/shelve.py +243 -0
  651. package/python/lib/python3.12/shlex.py +345 -0
  652. package/python/lib/python3.12/shutil.py +1566 -0
  653. package/python/lib/python3.12/signal.py +94 -0
  654. package/python/lib/python3.12/site-packages/README.txt +2 -0
  655. package/python/lib/python3.12/site-packages/pip/__init__.py +13 -0
  656. package/python/lib/python3.12/site-packages/pip/__main__.py +24 -0
  657. package/python/lib/python3.12/site-packages/pip/__pip-runner__.py +50 -0
  658. package/python/lib/python3.12/site-packages/pip/_internal/__init__.py +18 -0
  659. package/python/lib/python3.12/site-packages/pip/_internal/build_env.py +606 -0
  660. package/python/lib/python3.12/site-packages/pip/_internal/cache.py +291 -0
  661. package/python/lib/python3.12/site-packages/pip/_internal/cli/__init__.py +3 -0
  662. package/python/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py +184 -0
  663. package/python/lib/python3.12/site-packages/pip/_internal/cli/base_command.py +264 -0
  664. package/python/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py +1298 -0
  665. package/python/lib/python3.12/site-packages/pip/_internal/cli/command_context.py +28 -0
  666. package/python/lib/python3.12/site-packages/pip/_internal/cli/index_command.py +212 -0
  667. package/python/lib/python3.12/site-packages/pip/_internal/cli/main.py +85 -0
  668. package/python/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py +136 -0
  669. package/python/lib/python3.12/site-packages/pip/_internal/cli/parser.py +358 -0
  670. package/python/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py +153 -0
  671. package/python/lib/python3.12/site-packages/pip/_internal/cli/req_command.py +472 -0
  672. package/python/lib/python3.12/site-packages/pip/_internal/cli/spinners.py +235 -0
  673. package/python/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py +6 -0
  674. package/python/lib/python3.12/site-packages/pip/_internal/commands/__init__.py +139 -0
  675. package/python/lib/python3.12/site-packages/pip/_internal/commands/cache.py +255 -0
  676. package/python/lib/python3.12/site-packages/pip/_internal/commands/check.py +66 -0
  677. package/python/lib/python3.12/site-packages/pip/_internal/commands/completion.py +136 -0
  678. package/python/lib/python3.12/site-packages/pip/_internal/commands/configuration.py +288 -0
  679. package/python/lib/python3.12/site-packages/pip/_internal/commands/debug.py +196 -0
  680. package/python/lib/python3.12/site-packages/pip/_internal/commands/download.py +146 -0
  681. package/python/lib/python3.12/site-packages/pip/_internal/commands/freeze.py +107 -0
  682. package/python/lib/python3.12/site-packages/pip/_internal/commands/hash.py +58 -0
  683. package/python/lib/python3.12/site-packages/pip/_internal/commands/help.py +40 -0
  684. package/python/lib/python3.12/site-packages/pip/_internal/commands/index.py +166 -0
  685. package/python/lib/python3.12/site-packages/pip/_internal/commands/inspect.py +92 -0
  686. package/python/lib/python3.12/site-packages/pip/_internal/commands/install.py +904 -0
  687. package/python/lib/python3.12/site-packages/pip/_internal/commands/list.py +403 -0
  688. package/python/lib/python3.12/site-packages/pip/_internal/commands/lock.py +175 -0
  689. package/python/lib/python3.12/site-packages/pip/_internal/commands/search.py +178 -0
  690. package/python/lib/python3.12/site-packages/pip/_internal/commands/show.py +231 -0
  691. package/python/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py +113 -0
  692. package/python/lib/python3.12/site-packages/pip/_internal/commands/wheel.py +171 -0
  693. package/python/lib/python3.12/site-packages/pip/_internal/configuration.py +396 -0
  694. package/python/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py +21 -0
  695. package/python/lib/python3.12/site-packages/pip/_internal/distributions/base.py +55 -0
  696. package/python/lib/python3.12/site-packages/pip/_internal/distributions/installed.py +33 -0
  697. package/python/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py +164 -0
  698. package/python/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py +44 -0
  699. package/python/lib/python3.12/site-packages/pip/_internal/exceptions.py +971 -0
  700. package/python/lib/python3.12/site-packages/pip/_internal/index/__init__.py +1 -0
  701. package/python/lib/python3.12/site-packages/pip/_internal/index/collector.py +488 -0
  702. package/python/lib/python3.12/site-packages/pip/_internal/index/package_finder.py +1113 -0
  703. package/python/lib/python3.12/site-packages/pip/_internal/index/sources.py +287 -0
  704. package/python/lib/python3.12/site-packages/pip/_internal/locations/__init__.py +438 -0
  705. package/python/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py +173 -0
  706. package/python/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py +218 -0
  707. package/python/lib/python3.12/site-packages/pip/_internal/locations/base.py +82 -0
  708. package/python/lib/python3.12/site-packages/pip/_internal/main.py +12 -0
  709. package/python/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py +169 -0
  710. package/python/lib/python3.12/site-packages/pip/_internal/metadata/_json.py +87 -0
  711. package/python/lib/python3.12/site-packages/pip/_internal/metadata/base.py +685 -0
  712. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  713. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py +87 -0
  714. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py +235 -0
  715. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py +143 -0
  716. package/python/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py +298 -0
  717. package/python/lib/python3.12/site-packages/pip/_internal/models/__init__.py +1 -0
  718. package/python/lib/python3.12/site-packages/pip/_internal/models/candidate.py +23 -0
  719. package/python/lib/python3.12/site-packages/pip/_internal/models/direct_url.py +42 -0
  720. package/python/lib/python3.12/site-packages/pip/_internal/models/format_control.py +78 -0
  721. package/python/lib/python3.12/site-packages/pip/_internal/models/index.py +28 -0
  722. package/python/lib/python3.12/site-packages/pip/_internal/models/installation_report.py +57 -0
  723. package/python/lib/python3.12/site-packages/pip/_internal/models/link.py +617 -0
  724. package/python/lib/python3.12/site-packages/pip/_internal/models/release_control.py +91 -0
  725. package/python/lib/python3.12/site-packages/pip/_internal/models/scheme.py +23 -0
  726. package/python/lib/python3.12/site-packages/pip/_internal/models/search_scope.py +124 -0
  727. package/python/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py +36 -0
  728. package/python/lib/python3.12/site-packages/pip/_internal/models/target_python.py +122 -0
  729. package/python/lib/python3.12/site-packages/pip/_internal/models/wheel.py +80 -0
  730. package/python/lib/python3.12/site-packages/pip/_internal/network/__init__.py +1 -0
  731. package/python/lib/python3.12/site-packages/pip/_internal/network/auth.py +570 -0
  732. package/python/lib/python3.12/site-packages/pip/_internal/network/cache.py +128 -0
  733. package/python/lib/python3.12/site-packages/pip/_internal/network/download.py +340 -0
  734. package/python/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py +215 -0
  735. package/python/lib/python3.12/site-packages/pip/_internal/network/session.py +537 -0
  736. package/python/lib/python3.12/site-packages/pip/_internal/network/utils.py +98 -0
  737. package/python/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py +61 -0
  738. package/python/lib/python3.12/site-packages/pip/_internal/operations/__init__.py +0 -0
  739. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  740. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py +140 -0
  741. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py +38 -0
  742. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py +41 -0
  743. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py +38 -0
  744. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py +47 -0
  745. package/python/lib/python3.12/site-packages/pip/_internal/operations/check.py +175 -0
  746. package/python/lib/python3.12/site-packages/pip/_internal/operations/freeze.py +259 -0
  747. package/python/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py +1 -0
  748. package/python/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py +759 -0
  749. package/python/lib/python3.12/site-packages/pip/_internal/operations/prepare.py +751 -0
  750. package/python/lib/python3.12/site-packages/pip/_internal/pyproject.py +123 -0
  751. package/python/lib/python3.12/site-packages/pip/_internal/req/__init__.py +103 -0
  752. package/python/lib/python3.12/site-packages/pip/_internal/req/constructors.py +677 -0
  753. package/python/lib/python3.12/site-packages/pip/_internal/req/pep723.py +41 -0
  754. package/python/lib/python3.12/site-packages/pip/_internal/req/req_dependency_group.py +86 -0
  755. package/python/lib/python3.12/site-packages/pip/_internal/req/req_file.py +622 -0
  756. package/python/lib/python3.12/site-packages/pip/_internal/req/req_install.py +838 -0
  757. package/python/lib/python3.12/site-packages/pip/_internal/req/req_set.py +81 -0
  758. package/python/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py +639 -0
  759. package/python/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py +0 -0
  760. package/python/lib/python3.12/site-packages/pip/_internal/resolution/base.py +20 -0
  761. package/python/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  762. package/python/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py +598 -0
  763. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  764. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py +164 -0
  765. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py +599 -0
  766. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py +914 -0
  767. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +166 -0
  768. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py +306 -0
  769. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py +98 -0
  770. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py +251 -0
  771. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py +332 -0
  772. package/python/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py +246 -0
  773. package/python/lib/python3.12/site-packages/pip/_internal/utils/__init__.py +0 -0
  774. package/python/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  775. package/python/lib/python3.12/site-packages/pip/_internal/utils/_log.py +38 -0
  776. package/python/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py +52 -0
  777. package/python/lib/python3.12/site-packages/pip/_internal/utils/compat.py +85 -0
  778. package/python/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py +201 -0
  779. package/python/lib/python3.12/site-packages/pip/_internal/utils/datetime.py +28 -0
  780. package/python/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py +139 -0
  781. package/python/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py +92 -0
  782. package/python/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py +81 -0
  783. package/python/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py +88 -0
  784. package/python/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py +201 -0
  785. package/python/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py +24 -0
  786. package/python/lib/python3.12/site-packages/pip/_internal/utils/glibc.py +102 -0
  787. package/python/lib/python3.12/site-packages/pip/_internal/utils/hashes.py +150 -0
  788. package/python/lib/python3.12/site-packages/pip/_internal/utils/logging.py +396 -0
  789. package/python/lib/python3.12/site-packages/pip/_internal/utils/misc.py +771 -0
  790. package/python/lib/python3.12/site-packages/pip/_internal/utils/packaging.py +44 -0
  791. package/python/lib/python3.12/site-packages/pip/_internal/utils/pylock.py +283 -0
  792. package/python/lib/python3.12/site-packages/pip/_internal/utils/retry.py +45 -0
  793. package/python/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py +248 -0
  794. package/python/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py +294 -0
  795. package/python/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py +381 -0
  796. package/python/lib/python3.12/site-packages/pip/_internal/utils/urls.py +55 -0
  797. package/python/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py +105 -0
  798. package/python/lib/python3.12/site-packages/pip/_internal/utils/wheel.py +132 -0
  799. package/python/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py +15 -0
  800. package/python/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py +130 -0
  801. package/python/lib/python3.12/site-packages/pip/_internal/vcs/git.py +571 -0
  802. package/python/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py +186 -0
  803. package/python/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py +335 -0
  804. package/python/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py +695 -0
  805. package/python/lib/python3.12/site-packages/pip/_internal/wheel_builder.py +261 -0
  806. package/python/lib/python3.12/site-packages/pip/_vendor/README.rst +178 -0
  807. package/python/lib/python3.12/site-packages/pip/_vendor/__init__.py +117 -0
  808. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/LICENSE.txt +13 -0
  809. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py +32 -0
  810. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  811. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py +167 -0
  812. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
  813. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  814. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +145 -0
  815. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  816. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py +511 -0
  817. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py +121 -0
  818. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
  819. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  820. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  821. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  822. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/LICENSE +20 -0
  823. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  824. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  825. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem +4494 -0
  826. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/core.py +83 -0
  827. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/py.typed +0 -0
  828. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/LICENSE.txt +284 -0
  829. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  830. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py +1137 -0
  831. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py +358 -0
  832. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py +447 -0
  833. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  834. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  835. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  836. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/util.py +1984 -0
  837. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  838. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  839. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  840. package/python/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE +202 -0
  841. package/python/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py +54 -0
  842. package/python/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py +4 -0
  843. package/python/lib/python3.12/site-packages/pip/_vendor/distro/distro.py +1403 -0
  844. package/python/lib/python3.12/site-packages/pip/_vendor/distro/py.typed +0 -0
  845. package/python/lib/python3.12/site-packages/pip/_vendor/idna/LICENSE.md +31 -0
  846. package/python/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py +45 -0
  847. package/python/lib/python3.12/site-packages/pip/_vendor/idna/codec.py +122 -0
  848. package/python/lib/python3.12/site-packages/pip/_vendor/idna/compat.py +15 -0
  849. package/python/lib/python3.12/site-packages/pip/_vendor/idna/core.py +437 -0
  850. package/python/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py +4309 -0
  851. package/python/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py +57 -0
  852. package/python/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py +1 -0
  853. package/python/lib/python3.12/site-packages/pip/_vendor/idna/py.typed +0 -0
  854. package/python/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py +8841 -0
  855. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING +14 -0
  856. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
  857. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  858. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py +170 -0
  859. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
  860. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE +3 -0
  861. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE.APACHE +177 -0
  862. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE.BSD +23 -0
  863. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py +15 -0
  864. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_elffile.py +108 -0
  865. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py +262 -0
  866. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
  867. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_parser.py +393 -0
  868. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py +33 -0
  869. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py +193 -0
  870. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/dependency_groups.py +302 -0
  871. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/direct_url.py +325 -0
  872. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/errors.py +94 -0
  873. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/__init__.py +186 -0
  874. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py +799 -0
  875. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py +492 -0
  876. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/metadata.py +964 -0
  877. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/py.typed +0 -0
  878. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/pylock.py +905 -0
  879. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py +129 -0
  880. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py +1943 -0
  881. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py +932 -0
  882. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py +296 -0
  883. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/version.py +1231 -0
  884. package/python/lib/python3.12/site-packages/pip/_vendor/pkg_resources/LICENSE +17 -0
  885. package/python/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
  886. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/LICENSE +21 -0
  887. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
  888. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
  889. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py +249 -0
  890. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py +299 -0
  891. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py +146 -0
  892. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  893. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py +272 -0
  894. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py +34 -0
  895. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py +278 -0
  896. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/LICENSE +25 -0
  897. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  898. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  899. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/console.py +70 -0
  900. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py +70 -0
  901. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  902. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py +129 -0
  903. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
  904. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  905. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py +963 -0
  906. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  907. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py +602 -0
  908. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py +1201 -0
  909. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  910. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py +72 -0
  911. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  912. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  913. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
  914. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/style.py +203 -0
  915. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
  916. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
  917. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/token.py +214 -0
  918. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  919. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/util.py +324 -0
  920. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/LICENSE +21 -0
  921. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
  922. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
  923. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
  924. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
  925. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  926. package/python/lib/python3.12/site-packages/pip/_vendor/requests/LICENSE +175 -0
  927. package/python/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py +178 -0
  928. package/python/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py +14 -0
  929. package/python/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py +51 -0
  930. package/python/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py +697 -0
  931. package/python/lib/python3.12/site-packages/pip/_vendor/requests/api.py +157 -0
  932. package/python/lib/python3.12/site-packages/pip/_vendor/requests/auth.py +314 -0
  933. package/python/lib/python3.12/site-packages/pip/_vendor/requests/certs.py +18 -0
  934. package/python/lib/python3.12/site-packages/pip/_vendor/requests/compat.py +90 -0
  935. package/python/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py +561 -0
  936. package/python/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py +152 -0
  937. package/python/lib/python3.12/site-packages/pip/_vendor/requests/help.py +124 -0
  938. package/python/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py +34 -0
  939. package/python/lib/python3.12/site-packages/pip/_vendor/requests/models.py +1041 -0
  940. package/python/lib/python3.12/site-packages/pip/_vendor/requests/packages.py +25 -0
  941. package/python/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py +834 -0
  942. package/python/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  943. package/python/lib/python3.12/site-packages/pip/_vendor/requests/structures.py +99 -0
  944. package/python/lib/python3.12/site-packages/pip/_vendor/requests/utils.py +1083 -0
  945. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/LICENSE +13 -0
  946. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py +27 -0
  947. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py +196 -0
  948. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  949. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py +55 -0
  950. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +27 -0
  951. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +47 -0
  952. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +48 -0
  953. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +57 -0
  954. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +627 -0
  955. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py +209 -0
  956. package/python/lib/python3.12/site-packages/pip/_vendor/rich/LICENSE +19 -0
  957. package/python/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py +177 -0
  958. package/python/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py +245 -0
  959. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
  960. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  961. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  962. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  963. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py +10 -0
  964. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  965. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py +268 -0
  966. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  967. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py +43 -0
  968. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  969. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  970. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py +17 -0
  971. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py +153 -0
  972. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  973. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py +16 -0
  974. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py +19 -0
  975. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
  976. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py +71 -0
  977. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  978. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py +93 -0
  979. package/python/lib/python3.12/site-packages/pip/_vendor/rich/abc.py +33 -0
  980. package/python/lib/python3.12/site-packages/pip/_vendor/rich/align.py +306 -0
  981. package/python/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py +241 -0
  982. package/python/lib/python3.12/site-packages/pip/_vendor/rich/bar.py +93 -0
  983. package/python/lib/python3.12/site-packages/pip/_vendor/rich/box.py +474 -0
  984. package/python/lib/python3.12/site-packages/pip/_vendor/rich/cells.py +174 -0
  985. package/python/lib/python3.12/site-packages/pip/_vendor/rich/color.py +621 -0
  986. package/python/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  987. package/python/lib/python3.12/site-packages/pip/_vendor/rich/columns.py +187 -0
  988. package/python/lib/python3.12/site-packages/pip/_vendor/rich/console.py +2680 -0
  989. package/python/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py +37 -0
  990. package/python/lib/python3.12/site-packages/pip/_vendor/rich/containers.py +167 -0
  991. package/python/lib/python3.12/site-packages/pip/_vendor/rich/control.py +219 -0
  992. package/python/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py +193 -0
  993. package/python/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py +39 -0
  994. package/python/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py +91 -0
  995. package/python/lib/python3.12/site-packages/pip/_vendor/rich/errors.py +34 -0
  996. package/python/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  997. package/python/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py +88 -0
  998. package/python/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  999. package/python/lib/python3.12/site-packages/pip/_vendor/rich/json.py +139 -0
  1000. package/python/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  1001. package/python/lib/python3.12/site-packages/pip/_vendor/rich/layout.py +442 -0
  1002. package/python/lib/python3.12/site-packages/pip/_vendor/rich/live.py +400 -0
  1003. package/python/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py +106 -0
  1004. package/python/lib/python3.12/site-packages/pip/_vendor/rich/logging.py +297 -0
  1005. package/python/lib/python3.12/site-packages/pip/_vendor/rich/markup.py +251 -0
  1006. package/python/lib/python3.12/site-packages/pip/_vendor/rich/measure.py +151 -0
  1007. package/python/lib/python3.12/site-packages/pip/_vendor/rich/padding.py +141 -0
  1008. package/python/lib/python3.12/site-packages/pip/_vendor/rich/pager.py +34 -0
  1009. package/python/lib/python3.12/site-packages/pip/_vendor/rich/palette.py +100 -0
  1010. package/python/lib/python3.12/site-packages/pip/_vendor/rich/panel.py +317 -0
  1011. package/python/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py +1016 -0
  1012. package/python/lib/python3.12/site-packages/pip/_vendor/rich/progress.py +1715 -0
  1013. package/python/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
  1014. package/python/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py +400 -0
  1015. package/python/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py +42 -0
  1016. package/python/lib/python3.12/site-packages/pip/_vendor/rich/py.typed +0 -0
  1017. package/python/lib/python3.12/site-packages/pip/_vendor/rich/region.py +10 -0
  1018. package/python/lib/python3.12/site-packages/pip/_vendor/rich/repr.py +149 -0
  1019. package/python/lib/python3.12/site-packages/pip/_vendor/rich/rule.py +130 -0
  1020. package/python/lib/python3.12/site-packages/pip/_vendor/rich/scope.py +86 -0
  1021. package/python/lib/python3.12/site-packages/pip/_vendor/rich/screen.py +54 -0
  1022. package/python/lib/python3.12/site-packages/pip/_vendor/rich/segment.py +752 -0
  1023. package/python/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py +132 -0
  1024. package/python/lib/python3.12/site-packages/pip/_vendor/rich/status.py +131 -0
  1025. package/python/lib/python3.12/site-packages/pip/_vendor/rich/style.py +792 -0
  1026. package/python/lib/python3.12/site-packages/pip/_vendor/rich/styled.py +42 -0
  1027. package/python/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py +985 -0
  1028. package/python/lib/python3.12/site-packages/pip/_vendor/rich/table.py +1006 -0
  1029. package/python/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  1030. package/python/lib/python3.12/site-packages/pip/_vendor/rich/text.py +1361 -0
  1031. package/python/lib/python3.12/site-packages/pip/_vendor/rich/theme.py +115 -0
  1032. package/python/lib/python3.12/site-packages/pip/_vendor/rich/themes.py +5 -0
  1033. package/python/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py +899 -0
  1034. package/python/lib/python3.12/site-packages/pip/_vendor/rich/tree.py +257 -0
  1035. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/LICENSE +21 -0
  1036. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py +8 -0
  1037. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py +788 -0
  1038. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py +115 -0
  1039. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py +10 -0
  1040. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/py.typed +1 -0
  1041. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/LICENSE +21 -0
  1042. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/__init__.py +4 -0
  1043. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py +229 -0
  1044. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/py.typed +1 -0
  1045. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/LICENSE +21 -0
  1046. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py +36 -0
  1047. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py +341 -0
  1048. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py +571 -0
  1049. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py +68 -0
  1050. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  1051. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py +567 -0
  1052. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/py.typed +0 -0
  1053. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/LICENSE.txt +21 -0
  1054. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py +211 -0
  1055. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_base_connection.py +165 -0
  1056. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py +487 -0
  1057. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_request_methods.py +278 -0
  1058. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py +34 -0
  1059. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py +1099 -0
  1060. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py +1178 -0
  1061. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  1062. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/__init__.py +17 -0
  1063. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/connection.py +260 -0
  1064. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/emscripten_fetch_worker.js +110 -0
  1065. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/fetch.py +726 -0
  1066. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/request.py +22 -0
  1067. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/response.py +277 -0
  1068. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +564 -0
  1069. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py +228 -0
  1070. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py +335 -0
  1071. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py +341 -0
  1072. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py +89 -0
  1073. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/__init__.py +53 -0
  1074. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/connection.py +356 -0
  1075. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/probe.py +87 -0
  1076. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py +651 -0
  1077. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/py.typed +2 -0
  1078. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py +1474 -0
  1079. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py +42 -0
  1080. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py +137 -0
  1081. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py +43 -0
  1082. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py +254 -0
  1083. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py +101 -0
  1084. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py +549 -0
  1085. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py +527 -0
  1086. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  1087. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py +271 -0
  1088. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py +275 -0
  1089. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py +469 -0
  1090. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/util.py +42 -0
  1091. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py +124 -0
  1092. package/python/lib/python3.12/site-packages/pip/_vendor/vendor.txt +18 -0
  1093. package/python/lib/python3.12/site-packages/pip/py.typed +4 -0
  1094. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/INSTALLER +1 -0
  1095. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/METADATA +109 -0
  1096. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/RECORD +866 -0
  1097. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/REQUESTED +0 -0
  1098. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/WHEEL +4 -0
  1099. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/direct_url.json +1 -0
  1100. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/entry_points.txt +4 -0
  1101. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/AUTHORS.txt +868 -0
  1102. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/LICENSE.txt +20 -0
  1103. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt +13 -0
  1104. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/certifi/LICENSE +20 -0
  1105. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt +284 -0
  1106. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distro/LICENSE +202 -0
  1107. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md +31 -0
  1108. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/msgpack/COPYING +14 -0
  1109. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE +3 -0
  1110. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE +177 -0
  1111. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD +23 -0
  1112. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE +17 -0
  1113. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE +21 -0
  1114. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pygments/LICENSE +25 -0
  1115. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE +21 -0
  1116. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/requests/LICENSE +175 -0
  1117. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE +13 -0
  1118. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/rich/LICENSE +19 -0
  1119. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli/LICENSE +21 -0
  1120. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE +21 -0
  1121. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/truststore/LICENSE +21 -0
  1122. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt +21 -0
  1123. package/python/lib/python3.12/site.py +693 -0
  1124. package/python/lib/python3.12/smtplib.py +1109 -0
  1125. package/python/lib/python3.12/sndhdr.py +271 -0
  1126. package/python/lib/python3.12/socket.py +983 -0
  1127. package/python/lib/python3.12/socketserver.py +863 -0
  1128. package/python/lib/python3.12/sqlite3/__init__.py +70 -0
  1129. package/python/lib/python3.12/sqlite3/__main__.py +127 -0
  1130. package/python/lib/python3.12/sqlite3/dbapi2.py +108 -0
  1131. package/python/lib/python3.12/sqlite3/dump.py +89 -0
  1132. package/python/lib/python3.12/sre_compile.py +7 -0
  1133. package/python/lib/python3.12/sre_constants.py +7 -0
  1134. package/python/lib/python3.12/sre_parse.py +7 -0
  1135. package/python/lib/python3.12/ssl.py +1488 -0
  1136. package/python/lib/python3.12/stat.py +195 -0
  1137. package/python/lib/python3.12/statistics.py +1454 -0
  1138. package/python/lib/python3.12/string.py +309 -0
  1139. package/python/lib/python3.12/stringprep.py +272 -0
  1140. package/python/lib/python3.12/struct.py +15 -0
  1141. package/python/lib/python3.12/subprocess.py +2216 -0
  1142. package/python/lib/python3.12/sunau.py +533 -0
  1143. package/python/lib/python3.12/symtable.py +362 -0
  1144. package/python/lib/python3.12/sysconfig.py +894 -0
  1145. package/python/lib/python3.12/tabnanny.py +340 -0
  1146. package/python/lib/python3.12/tarfile.py +3031 -0
  1147. package/python/lib/python3.12/telnetlib.py +680 -0
  1148. package/python/lib/python3.12/tempfile.py +956 -0
  1149. package/python/lib/python3.12/textwrap.py +491 -0
  1150. package/python/lib/python3.12/this.py +28 -0
  1151. package/python/lib/python3.12/threading.py +1708 -0
  1152. package/python/lib/python3.12/timeit.py +381 -0
  1153. package/python/lib/python3.12/token.py +143 -0
  1154. package/python/lib/python3.12/tokenize.py +594 -0
  1155. package/python/lib/python3.12/tomllib/__init__.py +10 -0
  1156. package/python/lib/python3.12/tomllib/_parser.py +691 -0
  1157. package/python/lib/python3.12/tomllib/_re.py +107 -0
  1158. package/python/lib/python3.12/tomllib/_types.py +10 -0
  1159. package/python/lib/python3.12/trace.py +748 -0
  1160. package/python/lib/python3.12/traceback.py +1187 -0
  1161. package/python/lib/python3.12/tracemalloc.py +560 -0
  1162. package/python/lib/python3.12/tty.py +73 -0
  1163. package/python/lib/python3.12/turtle.py +4207 -0
  1164. package/python/lib/python3.12/types.py +333 -0
  1165. package/python/lib/python3.12/typing.py +3494 -0
  1166. package/python/lib/python3.12/unittest/__init__.py +85 -0
  1167. package/python/lib/python3.12/unittest/__main__.py +18 -0
  1168. package/python/lib/python3.12/unittest/_log.py +86 -0
  1169. package/python/lib/python3.12/unittest/async_case.py +143 -0
  1170. package/python/lib/python3.12/unittest/case.py +1456 -0
  1171. package/python/lib/python3.12/unittest/loader.py +497 -0
  1172. package/python/lib/python3.12/unittest/main.py +291 -0
  1173. package/python/lib/python3.12/unittest/mock.py +3054 -0
  1174. package/python/lib/python3.12/unittest/result.py +256 -0
  1175. package/python/lib/python3.12/unittest/runner.py +292 -0
  1176. package/python/lib/python3.12/unittest/signals.py +71 -0
  1177. package/python/lib/python3.12/unittest/suite.py +379 -0
  1178. package/python/lib/python3.12/unittest/util.py +170 -0
  1179. package/python/lib/python3.12/urllib/__init__.py +0 -0
  1180. package/python/lib/python3.12/urllib/error.py +74 -0
  1181. package/python/lib/python3.12/urllib/parse.py +1262 -0
  1182. package/python/lib/python3.12/urllib/request.py +2816 -0
  1183. package/python/lib/python3.12/urllib/response.py +84 -0
  1184. package/python/lib/python3.12/urllib/robotparser.py +275 -0
  1185. package/python/lib/python3.12/uu.py +216 -0
  1186. package/python/lib/python3.12/uuid.py +793 -0
  1187. package/python/lib/python3.12/venv/__init__.py +608 -0
  1188. package/python/lib/python3.12/venv/__main__.py +10 -0
  1189. package/python/lib/python3.12/venv/scripts/common/Activate.ps1 +247 -0
  1190. package/python/lib/python3.12/venv/scripts/common/activate +76 -0
  1191. package/python/lib/python3.12/venv/scripts/posix/activate.csh +27 -0
  1192. package/python/lib/python3.12/venv/scripts/posix/activate.fish +69 -0
  1193. package/python/lib/python3.12/warnings.py +598 -0
  1194. package/python/lib/python3.12/wave.py +653 -0
  1195. package/python/lib/python3.12/weakref.py +674 -0
  1196. package/python/lib/python3.12/webbrowser.py +689 -0
  1197. package/python/lib/python3.12/wsgiref/__init__.py +25 -0
  1198. package/python/lib/python3.12/wsgiref/handlers.py +573 -0
  1199. package/python/lib/python3.12/wsgiref/headers.py +192 -0
  1200. package/python/lib/python3.12/wsgiref/simple_server.py +165 -0
  1201. package/python/lib/python3.12/wsgiref/types.py +54 -0
  1202. package/python/lib/python3.12/wsgiref/util.py +159 -0
  1203. package/python/lib/python3.12/wsgiref/validate.py +438 -0
  1204. package/python/lib/python3.12/xdrlib.py +242 -0
  1205. package/python/lib/python3.12/xml/__init__.py +20 -0
  1206. package/python/lib/python3.12/xml/dom/NodeFilter.py +27 -0
  1207. package/python/lib/python3.12/xml/dom/__init__.py +140 -0
  1208. package/python/lib/python3.12/xml/dom/domreg.py +99 -0
  1209. package/python/lib/python3.12/xml/dom/expatbuilder.py +962 -0
  1210. package/python/lib/python3.12/xml/dom/minicompat.py +109 -0
  1211. package/python/lib/python3.12/xml/dom/minidom.py +2008 -0
  1212. package/python/lib/python3.12/xml/dom/pulldom.py +336 -0
  1213. package/python/lib/python3.12/xml/dom/xmlbuilder.py +389 -0
  1214. package/python/lib/python3.12/xml/etree/ElementInclude.py +186 -0
  1215. package/python/lib/python3.12/xml/etree/ElementPath.py +423 -0
  1216. package/python/lib/python3.12/xml/etree/ElementTree.py +2085 -0
  1217. package/python/lib/python3.12/xml/etree/__init__.py +33 -0
  1218. package/python/lib/python3.12/xml/etree/cElementTree.py +3 -0
  1219. package/python/lib/python3.12/xml/parsers/__init__.py +8 -0
  1220. package/python/lib/python3.12/xml/parsers/expat.py +8 -0
  1221. package/python/lib/python3.12/xml/sax/__init__.py +94 -0
  1222. package/python/lib/python3.12/xml/sax/_exceptions.py +127 -0
  1223. package/python/lib/python3.12/xml/sax/expatreader.py +454 -0
  1224. package/python/lib/python3.12/xml/sax/handler.py +387 -0
  1225. package/python/lib/python3.12/xml/sax/saxutils.py +369 -0
  1226. package/python/lib/python3.12/xml/sax/xmlreader.py +378 -0
  1227. package/python/lib/python3.12/xmlrpc/__init__.py +1 -0
  1228. package/python/lib/python3.12/xmlrpc/client.py +1529 -0
  1229. package/python/lib/python3.12/xmlrpc/server.py +1002 -0
  1230. package/python/lib/python3.12/zipapp.py +206 -0
  1231. package/python/lib/python3.12/zipfile/__init__.py +2340 -0
  1232. package/python/lib/python3.12/zipfile/__main__.py +4 -0
  1233. package/python/lib/python3.12/zipfile/_path/__init__.py +412 -0
  1234. package/python/lib/python3.12/zipfile/_path/glob.py +53 -0
  1235. package/python/lib/python3.12/zipimport.py +712 -0
  1236. package/python/lib/python3.12/zoneinfo/__init__.py +31 -0
  1237. package/python/lib/python3.12/zoneinfo/_common.py +164 -0
  1238. package/python/lib/python3.12/zoneinfo/_tzpath.py +181 -0
  1239. package/python/lib/python3.12/zoneinfo/_zoneinfo.py +772 -0
@@ -0,0 +1,1324 @@
1
+ """Event loop using a selector and related classes.
2
+
3
+ A selector is a "notify-when-ready" multiplexer. For a subclass which
4
+ also includes support for signal handling, see the unix_events sub-module.
5
+ """
6
+
7
+ __all__ = 'BaseSelectorEventLoop',
8
+
9
+ import collections
10
+ import errno
11
+ import functools
12
+ import itertools
13
+ import os
14
+ import selectors
15
+ import socket
16
+ import warnings
17
+ import weakref
18
+ try:
19
+ import ssl
20
+ except ImportError: # pragma: no cover
21
+ ssl = None
22
+
23
+ from . import base_events
24
+ from . import constants
25
+ from . import events
26
+ from . import futures
27
+ from . import protocols
28
+ from . import sslproto
29
+ from . import transports
30
+ from . import trsock
31
+ from .log import logger
32
+
33
+ _HAS_SENDMSG = hasattr(socket.socket, 'sendmsg')
34
+
35
+ if _HAS_SENDMSG:
36
+ try:
37
+ SC_IOV_MAX = os.sysconf('SC_IOV_MAX')
38
+ except OSError:
39
+ # Fallback to send
40
+ _HAS_SENDMSG = False
41
+
42
+ def _test_selector_event(selector, fd, event):
43
+ # Test if the selector is monitoring 'event' events
44
+ # for the file descriptor 'fd'.
45
+ try:
46
+ key = selector.get_key(fd)
47
+ except KeyError:
48
+ return False
49
+ else:
50
+ return bool(key.events & event)
51
+
52
+
53
+ class BaseSelectorEventLoop(base_events.BaseEventLoop):
54
+ """Selector event loop.
55
+
56
+ See events.EventLoop for API specification.
57
+ """
58
+
59
+ def __init__(self, selector=None):
60
+ super().__init__()
61
+
62
+ if selector is None:
63
+ selector = selectors.DefaultSelector()
64
+ logger.debug('Using selector: %s', selector.__class__.__name__)
65
+ self._selector = selector
66
+ self._make_self_pipe()
67
+ self._transports = weakref.WeakValueDictionary()
68
+
69
+ def _make_socket_transport(self, sock, protocol, waiter=None, *,
70
+ extra=None, server=None):
71
+ self._ensure_fd_no_transport(sock)
72
+ return _SelectorSocketTransport(self, sock, protocol, waiter,
73
+ extra, server)
74
+
75
+ def _make_ssl_transport(
76
+ self, rawsock, protocol, sslcontext, waiter=None,
77
+ *, server_side=False, server_hostname=None,
78
+ extra=None, server=None,
79
+ ssl_handshake_timeout=constants.SSL_HANDSHAKE_TIMEOUT,
80
+ ssl_shutdown_timeout=constants.SSL_SHUTDOWN_TIMEOUT,
81
+ ):
82
+ self._ensure_fd_no_transport(rawsock)
83
+ ssl_protocol = sslproto.SSLProtocol(
84
+ self, protocol, sslcontext, waiter,
85
+ server_side, server_hostname,
86
+ ssl_handshake_timeout=ssl_handshake_timeout,
87
+ ssl_shutdown_timeout=ssl_shutdown_timeout
88
+ )
89
+ _SelectorSocketTransport(self, rawsock, ssl_protocol,
90
+ extra=extra, server=server)
91
+ return ssl_protocol._app_transport
92
+
93
+ def _make_datagram_transport(self, sock, protocol,
94
+ address=None, waiter=None, extra=None):
95
+ self._ensure_fd_no_transport(sock)
96
+ return _SelectorDatagramTransport(self, sock, protocol,
97
+ address, waiter, extra)
98
+
99
+ def close(self):
100
+ if self.is_running():
101
+ raise RuntimeError("Cannot close a running event loop")
102
+ if self.is_closed():
103
+ return
104
+ self._close_self_pipe()
105
+ super().close()
106
+ if self._selector is not None:
107
+ self._selector.close()
108
+ self._selector = None
109
+
110
+ def _close_self_pipe(self):
111
+ self._remove_reader(self._ssock.fileno())
112
+ self._ssock.close()
113
+ self._ssock = None
114
+ self._csock.close()
115
+ self._csock = None
116
+ self._internal_fds -= 1
117
+
118
+ def _make_self_pipe(self):
119
+ # A self-socket, really. :-)
120
+ self._ssock, self._csock = socket.socketpair()
121
+ self._ssock.setblocking(False)
122
+ self._csock.setblocking(False)
123
+ self._internal_fds += 1
124
+ self._add_reader(self._ssock.fileno(), self._read_from_self)
125
+
126
+ def _process_self_data(self, data):
127
+ pass
128
+
129
+ def _read_from_self(self):
130
+ while True:
131
+ try:
132
+ data = self._ssock.recv(4096)
133
+ if not data:
134
+ break
135
+ self._process_self_data(data)
136
+ except InterruptedError:
137
+ continue
138
+ except BlockingIOError:
139
+ break
140
+
141
+ def _write_to_self(self):
142
+ # This may be called from a different thread, possibly after
143
+ # _close_self_pipe() has been called or even while it is
144
+ # running. Guard for self._csock being None or closed. When
145
+ # a socket is closed, send() raises OSError (with errno set to
146
+ # EBADF, but let's not rely on the exact error code).
147
+ csock = self._csock
148
+ if csock is None:
149
+ return
150
+
151
+ try:
152
+ csock.send(b'\0')
153
+ except OSError:
154
+ if self._debug:
155
+ logger.debug("Fail to write a null byte into the "
156
+ "self-pipe socket",
157
+ exc_info=True)
158
+
159
+ def _start_serving(self, protocol_factory, sock,
160
+ sslcontext=None, server=None, backlog=100,
161
+ ssl_handshake_timeout=constants.SSL_HANDSHAKE_TIMEOUT,
162
+ ssl_shutdown_timeout=constants.SSL_SHUTDOWN_TIMEOUT):
163
+ self._add_reader(sock.fileno(), self._accept_connection,
164
+ protocol_factory, sock, sslcontext, server, backlog,
165
+ ssl_handshake_timeout, ssl_shutdown_timeout)
166
+
167
+ def _accept_connection(
168
+ self, protocol_factory, sock,
169
+ sslcontext=None, server=None, backlog=100,
170
+ ssl_handshake_timeout=constants.SSL_HANDSHAKE_TIMEOUT,
171
+ ssl_shutdown_timeout=constants.SSL_SHUTDOWN_TIMEOUT):
172
+ # This method is only called once for each event loop tick where the
173
+ # listening socket has triggered an EVENT_READ. There may be multiple
174
+ # connections waiting for an .accept() so it is called in a loop.
175
+ # See https://bugs.python.org/issue27906 for more details.
176
+ for _ in range(backlog):
177
+ try:
178
+ conn, addr = sock.accept()
179
+ if self._debug:
180
+ logger.debug("%r got a new connection from %r: %r",
181
+ server, addr, conn)
182
+ conn.setblocking(False)
183
+ except (BlockingIOError, InterruptedError, ConnectionAbortedError):
184
+ # Early exit because the socket accept buffer is empty.
185
+ return None
186
+ except OSError as exc:
187
+ # There's nowhere to send the error, so just log it.
188
+ if exc.errno in (errno.EMFILE, errno.ENFILE,
189
+ errno.ENOBUFS, errno.ENOMEM):
190
+ # Some platforms (e.g. Linux keep reporting the FD as
191
+ # ready, so we remove the read handler temporarily.
192
+ # We'll try again in a while.
193
+ self.call_exception_handler({
194
+ 'message': 'socket.accept() out of system resource',
195
+ 'exception': exc,
196
+ 'socket': trsock.TransportSocket(sock),
197
+ })
198
+ self._remove_reader(sock.fileno())
199
+ self.call_later(constants.ACCEPT_RETRY_DELAY,
200
+ self._start_serving,
201
+ protocol_factory, sock, sslcontext, server,
202
+ backlog, ssl_handshake_timeout,
203
+ ssl_shutdown_timeout)
204
+ else:
205
+ raise # The event loop will catch, log and ignore it.
206
+ else:
207
+ extra = {'peername': addr}
208
+ accept = self._accept_connection2(
209
+ protocol_factory, conn, extra, sslcontext, server,
210
+ ssl_handshake_timeout, ssl_shutdown_timeout)
211
+ self.create_task(accept)
212
+
213
+ async def _accept_connection2(
214
+ self, protocol_factory, conn, extra,
215
+ sslcontext=None, server=None,
216
+ ssl_handshake_timeout=constants.SSL_HANDSHAKE_TIMEOUT,
217
+ ssl_shutdown_timeout=constants.SSL_SHUTDOWN_TIMEOUT):
218
+ protocol = None
219
+ transport = None
220
+ try:
221
+ protocol = protocol_factory()
222
+ waiter = self.create_future()
223
+ if sslcontext:
224
+ transport = self._make_ssl_transport(
225
+ conn, protocol, sslcontext, waiter=waiter,
226
+ server_side=True, extra=extra, server=server,
227
+ ssl_handshake_timeout=ssl_handshake_timeout,
228
+ ssl_shutdown_timeout=ssl_shutdown_timeout)
229
+ else:
230
+ transport = self._make_socket_transport(
231
+ conn, protocol, waiter=waiter, extra=extra,
232
+ server=server)
233
+
234
+ try:
235
+ await waiter
236
+ except BaseException:
237
+ transport.close()
238
+ # gh-109534: When an exception is raised by the SSLProtocol object the
239
+ # exception set in this future can keep the protocol object alive and
240
+ # cause a reference cycle.
241
+ waiter = None
242
+ raise
243
+ # It's now up to the protocol to handle the connection.
244
+
245
+ except (SystemExit, KeyboardInterrupt):
246
+ raise
247
+ except BaseException as exc:
248
+ if self._debug:
249
+ context = {
250
+ 'message':
251
+ 'Error on transport creation for incoming connection',
252
+ 'exception': exc,
253
+ }
254
+ if protocol is not None:
255
+ context['protocol'] = protocol
256
+ if transport is not None:
257
+ context['transport'] = transport
258
+ self.call_exception_handler(context)
259
+
260
+ def _ensure_fd_no_transport(self, fd):
261
+ fileno = fd
262
+ if not isinstance(fileno, int):
263
+ try:
264
+ fileno = int(fileno.fileno())
265
+ except (AttributeError, TypeError, ValueError):
266
+ # This code matches selectors._fileobj_to_fd function.
267
+ raise ValueError(f"Invalid file object: {fd!r}") from None
268
+ try:
269
+ transport = self._transports[fileno]
270
+ except KeyError:
271
+ pass
272
+ else:
273
+ if not transport.is_closing():
274
+ raise RuntimeError(
275
+ f'File descriptor {fd!r} is used by transport '
276
+ f'{transport!r}')
277
+
278
+ def _add_reader(self, fd, callback, *args):
279
+ self._check_closed()
280
+ handle = events.Handle(callback, args, self, None)
281
+ try:
282
+ key = self._selector.get_key(fd)
283
+ except KeyError:
284
+ self._selector.register(fd, selectors.EVENT_READ,
285
+ (handle, None))
286
+ else:
287
+ mask, (reader, writer) = key.events, key.data
288
+ self._selector.modify(fd, mask | selectors.EVENT_READ,
289
+ (handle, writer))
290
+ if reader is not None:
291
+ reader.cancel()
292
+ return handle
293
+
294
+ def _remove_reader(self, fd):
295
+ if self.is_closed():
296
+ return False
297
+ try:
298
+ key = self._selector.get_key(fd)
299
+ except KeyError:
300
+ return False
301
+ else:
302
+ mask, (reader, writer) = key.events, key.data
303
+ mask &= ~selectors.EVENT_READ
304
+ if not mask:
305
+ self._selector.unregister(fd)
306
+ else:
307
+ self._selector.modify(fd, mask, (None, writer))
308
+
309
+ if reader is not None:
310
+ reader.cancel()
311
+ return True
312
+ else:
313
+ return False
314
+
315
+ def _add_writer(self, fd, callback, *args):
316
+ self._check_closed()
317
+ handle = events.Handle(callback, args, self, None)
318
+ try:
319
+ key = self._selector.get_key(fd)
320
+ except KeyError:
321
+ self._selector.register(fd, selectors.EVENT_WRITE,
322
+ (None, handle))
323
+ else:
324
+ mask, (reader, writer) = key.events, key.data
325
+ self._selector.modify(fd, mask | selectors.EVENT_WRITE,
326
+ (reader, handle))
327
+ if writer is not None:
328
+ writer.cancel()
329
+ return handle
330
+
331
+ def _remove_writer(self, fd):
332
+ """Remove a writer callback."""
333
+ if self.is_closed():
334
+ return False
335
+ try:
336
+ key = self._selector.get_key(fd)
337
+ except KeyError:
338
+ return False
339
+ else:
340
+ mask, (reader, writer) = key.events, key.data
341
+ # Remove both writer and connector.
342
+ mask &= ~selectors.EVENT_WRITE
343
+ if not mask:
344
+ self._selector.unregister(fd)
345
+ else:
346
+ self._selector.modify(fd, mask, (reader, None))
347
+
348
+ if writer is not None:
349
+ writer.cancel()
350
+ return True
351
+ else:
352
+ return False
353
+
354
+ def add_reader(self, fd, callback, *args):
355
+ """Add a reader callback."""
356
+ self._ensure_fd_no_transport(fd)
357
+ self._add_reader(fd, callback, *args)
358
+
359
+ def remove_reader(self, fd):
360
+ """Remove a reader callback."""
361
+ self._ensure_fd_no_transport(fd)
362
+ return self._remove_reader(fd)
363
+
364
+ def add_writer(self, fd, callback, *args):
365
+ """Add a writer callback.."""
366
+ self._ensure_fd_no_transport(fd)
367
+ self._add_writer(fd, callback, *args)
368
+
369
+ def remove_writer(self, fd):
370
+ """Remove a writer callback."""
371
+ self._ensure_fd_no_transport(fd)
372
+ return self._remove_writer(fd)
373
+
374
+ async def sock_recv(self, sock, n):
375
+ """Receive data from the socket.
376
+
377
+ The return value is a bytes object representing the data received.
378
+ The maximum amount of data to be received at once is specified by
379
+ nbytes.
380
+ """
381
+ base_events._check_ssl_socket(sock)
382
+ if self._debug and sock.gettimeout() != 0:
383
+ raise ValueError("the socket must be non-blocking")
384
+ try:
385
+ return sock.recv(n)
386
+ except (BlockingIOError, InterruptedError):
387
+ pass
388
+ fut = self.create_future()
389
+ fd = sock.fileno()
390
+ self._ensure_fd_no_transport(fd)
391
+ handle = self._add_reader(fd, self._sock_recv, fut, sock, n)
392
+ fut.add_done_callback(
393
+ functools.partial(self._sock_read_done, fd, handle=handle))
394
+ return await fut
395
+
396
+ def _sock_read_done(self, fd, fut, handle=None):
397
+ if handle is None or not handle.cancelled():
398
+ self.remove_reader(fd)
399
+
400
+ def _sock_recv(self, fut, sock, n):
401
+ # _sock_recv() can add itself as an I/O callback if the operation can't
402
+ # be done immediately. Don't use it directly, call sock_recv().
403
+ if fut.done():
404
+ return
405
+ try:
406
+ data = sock.recv(n)
407
+ except (BlockingIOError, InterruptedError):
408
+ return # try again next time
409
+ except (SystemExit, KeyboardInterrupt):
410
+ raise
411
+ except BaseException as exc:
412
+ fut.set_exception(exc)
413
+ else:
414
+ fut.set_result(data)
415
+
416
+ async def sock_recv_into(self, sock, buf):
417
+ """Receive data from the socket.
418
+
419
+ The received data is written into *buf* (a writable buffer).
420
+ The return value is the number of bytes written.
421
+ """
422
+ base_events._check_ssl_socket(sock)
423
+ if self._debug and sock.gettimeout() != 0:
424
+ raise ValueError("the socket must be non-blocking")
425
+ try:
426
+ return sock.recv_into(buf)
427
+ except (BlockingIOError, InterruptedError):
428
+ pass
429
+ fut = self.create_future()
430
+ fd = sock.fileno()
431
+ self._ensure_fd_no_transport(fd)
432
+ handle = self._add_reader(fd, self._sock_recv_into, fut, sock, buf)
433
+ fut.add_done_callback(
434
+ functools.partial(self._sock_read_done, fd, handle=handle))
435
+ return await fut
436
+
437
+ def _sock_recv_into(self, fut, sock, buf):
438
+ # _sock_recv_into() can add itself as an I/O callback if the operation
439
+ # can't be done immediately. Don't use it directly, call
440
+ # sock_recv_into().
441
+ if fut.done():
442
+ return
443
+ try:
444
+ nbytes = sock.recv_into(buf)
445
+ except (BlockingIOError, InterruptedError):
446
+ return # try again next time
447
+ except (SystemExit, KeyboardInterrupt):
448
+ raise
449
+ except BaseException as exc:
450
+ fut.set_exception(exc)
451
+ else:
452
+ fut.set_result(nbytes)
453
+
454
+ async def sock_recvfrom(self, sock, bufsize):
455
+ """Receive a datagram from a datagram socket.
456
+
457
+ The return value is a tuple of (bytes, address) representing the
458
+ datagram received and the address it came from.
459
+ The maximum amount of data to be received at once is specified by
460
+ nbytes.
461
+ """
462
+ base_events._check_ssl_socket(sock)
463
+ if self._debug and sock.gettimeout() != 0:
464
+ raise ValueError("the socket must be non-blocking")
465
+ try:
466
+ return sock.recvfrom(bufsize)
467
+ except (BlockingIOError, InterruptedError):
468
+ pass
469
+ fut = self.create_future()
470
+ fd = sock.fileno()
471
+ self._ensure_fd_no_transport(fd)
472
+ handle = self._add_reader(fd, self._sock_recvfrom, fut, sock, bufsize)
473
+ fut.add_done_callback(
474
+ functools.partial(self._sock_read_done, fd, handle=handle))
475
+ return await fut
476
+
477
+ def _sock_recvfrom(self, fut, sock, bufsize):
478
+ # _sock_recvfrom() can add itself as an I/O callback if the operation
479
+ # can't be done immediately. Don't use it directly, call
480
+ # sock_recvfrom().
481
+ if fut.done():
482
+ return
483
+ try:
484
+ result = sock.recvfrom(bufsize)
485
+ except (BlockingIOError, InterruptedError):
486
+ return # try again next time
487
+ except (SystemExit, KeyboardInterrupt):
488
+ raise
489
+ except BaseException as exc:
490
+ fut.set_exception(exc)
491
+ else:
492
+ fut.set_result(result)
493
+
494
+ async def sock_recvfrom_into(self, sock, buf, nbytes=0):
495
+ """Receive data from the socket.
496
+
497
+ The received data is written into *buf* (a writable buffer).
498
+ The return value is a tuple of (number of bytes written, address).
499
+ """
500
+ base_events._check_ssl_socket(sock)
501
+ if self._debug and sock.gettimeout() != 0:
502
+ raise ValueError("the socket must be non-blocking")
503
+ if not nbytes:
504
+ nbytes = len(buf)
505
+
506
+ try:
507
+ return sock.recvfrom_into(buf, nbytes)
508
+ except (BlockingIOError, InterruptedError):
509
+ pass
510
+ fut = self.create_future()
511
+ fd = sock.fileno()
512
+ self._ensure_fd_no_transport(fd)
513
+ handle = self._add_reader(fd, self._sock_recvfrom_into, fut, sock, buf,
514
+ nbytes)
515
+ fut.add_done_callback(
516
+ functools.partial(self._sock_read_done, fd, handle=handle))
517
+ return await fut
518
+
519
+ def _sock_recvfrom_into(self, fut, sock, buf, bufsize):
520
+ # _sock_recv_into() can add itself as an I/O callback if the operation
521
+ # can't be done immediately. Don't use it directly, call
522
+ # sock_recv_into().
523
+ if fut.done():
524
+ return
525
+ try:
526
+ result = sock.recvfrom_into(buf, bufsize)
527
+ except (BlockingIOError, InterruptedError):
528
+ return # try again next time
529
+ except (SystemExit, KeyboardInterrupt):
530
+ raise
531
+ except BaseException as exc:
532
+ fut.set_exception(exc)
533
+ else:
534
+ fut.set_result(result)
535
+
536
+ async def sock_sendall(self, sock, data):
537
+ """Send data to the socket.
538
+
539
+ The socket must be connected to a remote socket. This method continues
540
+ to send data from data until either all data has been sent or an
541
+ error occurs. None is returned on success. On error, an exception is
542
+ raised, and there is no way to determine how much data, if any, was
543
+ successfully processed by the receiving end of the connection.
544
+ """
545
+ base_events._check_ssl_socket(sock)
546
+ if self._debug and sock.gettimeout() != 0:
547
+ raise ValueError("the socket must be non-blocking")
548
+ try:
549
+ n = sock.send(data)
550
+ except (BlockingIOError, InterruptedError):
551
+ n = 0
552
+
553
+ if n == len(data):
554
+ # all data sent
555
+ return
556
+
557
+ fut = self.create_future()
558
+ fd = sock.fileno()
559
+ self._ensure_fd_no_transport(fd)
560
+ # use a trick with a list in closure to store a mutable state
561
+ handle = self._add_writer(fd, self._sock_sendall, fut, sock,
562
+ memoryview(data), [n])
563
+ fut.add_done_callback(
564
+ functools.partial(self._sock_write_done, fd, handle=handle))
565
+ return await fut
566
+
567
+ def _sock_sendall(self, fut, sock, view, pos):
568
+ if fut.done():
569
+ # Future cancellation can be scheduled on previous loop iteration
570
+ return
571
+ start = pos[0]
572
+ try:
573
+ n = sock.send(view[start:])
574
+ except (BlockingIOError, InterruptedError):
575
+ return
576
+ except (SystemExit, KeyboardInterrupt):
577
+ raise
578
+ except BaseException as exc:
579
+ fut.set_exception(exc)
580
+ return
581
+
582
+ start += n
583
+
584
+ if start == len(view):
585
+ fut.set_result(None)
586
+ else:
587
+ pos[0] = start
588
+
589
+ async def sock_sendto(self, sock, data, address):
590
+ """Send data to the socket.
591
+
592
+ The socket must be connected to a remote socket. This method continues
593
+ to send data from data until either all data has been sent or an
594
+ error occurs. None is returned on success. On error, an exception is
595
+ raised, and there is no way to determine how much data, if any, was
596
+ successfully processed by the receiving end of the connection.
597
+ """
598
+ base_events._check_ssl_socket(sock)
599
+ if self._debug and sock.gettimeout() != 0:
600
+ raise ValueError("the socket must be non-blocking")
601
+ try:
602
+ return sock.sendto(data, address)
603
+ except (BlockingIOError, InterruptedError):
604
+ pass
605
+
606
+ fut = self.create_future()
607
+ fd = sock.fileno()
608
+ self._ensure_fd_no_transport(fd)
609
+ # use a trick with a list in closure to store a mutable state
610
+ handle = self._add_writer(fd, self._sock_sendto, fut, sock, data,
611
+ address)
612
+ fut.add_done_callback(
613
+ functools.partial(self._sock_write_done, fd, handle=handle))
614
+ return await fut
615
+
616
+ def _sock_sendto(self, fut, sock, data, address):
617
+ if fut.done():
618
+ # Future cancellation can be scheduled on previous loop iteration
619
+ return
620
+ try:
621
+ n = sock.sendto(data, 0, address)
622
+ except (BlockingIOError, InterruptedError):
623
+ return
624
+ except (SystemExit, KeyboardInterrupt):
625
+ raise
626
+ except BaseException as exc:
627
+ fut.set_exception(exc)
628
+ else:
629
+ fut.set_result(n)
630
+
631
+ async def sock_connect(self, sock, address):
632
+ """Connect to a remote socket at address.
633
+
634
+ This method is a coroutine.
635
+ """
636
+ base_events._check_ssl_socket(sock)
637
+ if self._debug and sock.gettimeout() != 0:
638
+ raise ValueError("the socket must be non-blocking")
639
+
640
+ if sock.family == socket.AF_INET or (
641
+ base_events._HAS_IPv6 and sock.family == socket.AF_INET6):
642
+ resolved = await self._ensure_resolved(
643
+ address, family=sock.family, type=sock.type, proto=sock.proto,
644
+ loop=self,
645
+ )
646
+ _, _, _, _, address = resolved[0]
647
+
648
+ fut = self.create_future()
649
+ self._sock_connect(fut, sock, address)
650
+ try:
651
+ return await fut
652
+ finally:
653
+ # Needed to break cycles when an exception occurs.
654
+ fut = None
655
+
656
+ def _sock_connect(self, fut, sock, address):
657
+ fd = sock.fileno()
658
+ try:
659
+ sock.connect(address)
660
+ except (BlockingIOError, InterruptedError):
661
+ # Issue #23618: When the C function connect() fails with EINTR, the
662
+ # connection runs in background. We have to wait until the socket
663
+ # becomes writable to be notified when the connection succeed or
664
+ # fails.
665
+ self._ensure_fd_no_transport(fd)
666
+ handle = self._add_writer(
667
+ fd, self._sock_connect_cb, fut, sock, address)
668
+ fut.add_done_callback(
669
+ functools.partial(self._sock_write_done, fd, handle=handle))
670
+ except (SystemExit, KeyboardInterrupt):
671
+ raise
672
+ except BaseException as exc:
673
+ fut.set_exception(exc)
674
+ else:
675
+ fut.set_result(None)
676
+ finally:
677
+ fut = None
678
+
679
+ def _sock_write_done(self, fd, fut, handle=None):
680
+ if handle is None or not handle.cancelled():
681
+ self.remove_writer(fd)
682
+
683
+ def _sock_connect_cb(self, fut, sock, address):
684
+ if fut.done():
685
+ return
686
+
687
+ try:
688
+ err = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
689
+ if err != 0:
690
+ # Jump to any except clause below.
691
+ raise OSError(err, f'Connect call failed {address}')
692
+ except (BlockingIOError, InterruptedError):
693
+ # socket is still registered, the callback will be retried later
694
+ pass
695
+ except (SystemExit, KeyboardInterrupt):
696
+ raise
697
+ except BaseException as exc:
698
+ fut.set_exception(exc)
699
+ else:
700
+ fut.set_result(None)
701
+ finally:
702
+ fut = None
703
+
704
+ async def sock_accept(self, sock):
705
+ """Accept a connection.
706
+
707
+ The socket must be bound to an address and listening for connections.
708
+ The return value is a pair (conn, address) where conn is a new socket
709
+ object usable to send and receive data on the connection, and address
710
+ is the address bound to the socket on the other end of the connection.
711
+ """
712
+ base_events._check_ssl_socket(sock)
713
+ if self._debug and sock.gettimeout() != 0:
714
+ raise ValueError("the socket must be non-blocking")
715
+ fut = self.create_future()
716
+ self._sock_accept(fut, sock)
717
+ return await fut
718
+
719
+ def _sock_accept(self, fut, sock):
720
+ fd = sock.fileno()
721
+ try:
722
+ conn, address = sock.accept()
723
+ conn.setblocking(False)
724
+ except (BlockingIOError, InterruptedError):
725
+ self._ensure_fd_no_transport(fd)
726
+ handle = self._add_reader(fd, self._sock_accept, fut, sock)
727
+ fut.add_done_callback(
728
+ functools.partial(self._sock_read_done, fd, handle=handle))
729
+ except (SystemExit, KeyboardInterrupt):
730
+ raise
731
+ except BaseException as exc:
732
+ fut.set_exception(exc)
733
+ else:
734
+ fut.set_result((conn, address))
735
+
736
+ async def _sendfile_native(self, transp, file, offset, count):
737
+ del self._transports[transp._sock_fd]
738
+ resume_reading = transp.is_reading()
739
+ transp.pause_reading()
740
+ await transp._make_empty_waiter()
741
+ try:
742
+ return await self.sock_sendfile(transp._sock, file, offset, count,
743
+ fallback=False)
744
+ finally:
745
+ transp._reset_empty_waiter()
746
+ if resume_reading:
747
+ transp.resume_reading()
748
+ self._transports[transp._sock_fd] = transp
749
+
750
+ def _process_events(self, event_list):
751
+ for key, mask in event_list:
752
+ fileobj, (reader, writer) = key.fileobj, key.data
753
+ if mask & selectors.EVENT_READ and reader is not None:
754
+ if reader._cancelled:
755
+ self._remove_reader(fileobj)
756
+ else:
757
+ self._add_callback(reader)
758
+ if mask & selectors.EVENT_WRITE and writer is not None:
759
+ if writer._cancelled:
760
+ self._remove_writer(fileobj)
761
+ else:
762
+ self._add_callback(writer)
763
+
764
+ def _stop_serving(self, sock):
765
+ self._remove_reader(sock.fileno())
766
+ sock.close()
767
+
768
+
769
+ class _SelectorTransport(transports._FlowControlMixin,
770
+ transports.Transport):
771
+
772
+ max_size = 256 * 1024 # Buffer size passed to recv().
773
+
774
+ # Attribute used in the destructor: it must be set even if the constructor
775
+ # is not called (see _SelectorSslTransport which may start by raising an
776
+ # exception)
777
+ _sock = None
778
+
779
+ def __init__(self, loop, sock, protocol, extra=None, server=None):
780
+ super().__init__(extra, loop)
781
+ self._extra['socket'] = trsock.TransportSocket(sock)
782
+ try:
783
+ self._extra['sockname'] = sock.getsockname()
784
+ except OSError:
785
+ self._extra['sockname'] = None
786
+ if 'peername' not in self._extra:
787
+ try:
788
+ self._extra['peername'] = sock.getpeername()
789
+ except socket.error:
790
+ self._extra['peername'] = None
791
+ self._sock = sock
792
+ self._sock_fd = sock.fileno()
793
+
794
+ self._protocol_connected = False
795
+ self.set_protocol(protocol)
796
+
797
+ self._server = server
798
+ self._buffer = collections.deque()
799
+ self._conn_lost = 0 # Set when call to connection_lost scheduled.
800
+ self._closing = False # Set when close() called.
801
+ self._paused = False # Set when pause_reading() called
802
+
803
+ if self._server is not None:
804
+ self._server._attach()
805
+ loop._transports[self._sock_fd] = self
806
+
807
+ def __repr__(self):
808
+ info = [self.__class__.__name__]
809
+ if self._sock is None:
810
+ info.append('closed')
811
+ elif self._closing:
812
+ info.append('closing')
813
+ info.append(f'fd={self._sock_fd}')
814
+ # test if the transport was closed
815
+ if self._loop is not None and not self._loop.is_closed():
816
+ polling = _test_selector_event(self._loop._selector,
817
+ self._sock_fd, selectors.EVENT_READ)
818
+ if polling:
819
+ info.append('read=polling')
820
+ else:
821
+ info.append('read=idle')
822
+
823
+ polling = _test_selector_event(self._loop._selector,
824
+ self._sock_fd,
825
+ selectors.EVENT_WRITE)
826
+ if polling:
827
+ state = 'polling'
828
+ else:
829
+ state = 'idle'
830
+
831
+ bufsize = self.get_write_buffer_size()
832
+ info.append(f'write=<{state}, bufsize={bufsize}>')
833
+ return '<{}>'.format(' '.join(info))
834
+
835
+ def abort(self):
836
+ self._force_close(None)
837
+
838
+ def set_protocol(self, protocol):
839
+ self._protocol = protocol
840
+ self._protocol_connected = True
841
+
842
+ def get_protocol(self):
843
+ return self._protocol
844
+
845
+ def is_closing(self):
846
+ return self._closing
847
+
848
+ def is_reading(self):
849
+ return not self.is_closing() and not self._paused
850
+
851
+ def pause_reading(self):
852
+ if not self.is_reading():
853
+ return
854
+ self._paused = True
855
+ self._loop._remove_reader(self._sock_fd)
856
+ if self._loop.get_debug():
857
+ logger.debug("%r pauses reading", self)
858
+
859
+ def resume_reading(self):
860
+ if self._closing or not self._paused:
861
+ return
862
+ self._paused = False
863
+ self._add_reader(self._sock_fd, self._read_ready)
864
+ if self._loop.get_debug():
865
+ logger.debug("%r resumes reading", self)
866
+
867
+ def close(self):
868
+ if self._closing:
869
+ return
870
+ self._closing = True
871
+ self._loop._remove_reader(self._sock_fd)
872
+ if not self._buffer:
873
+ self._conn_lost += 1
874
+ self._loop._remove_writer(self._sock_fd)
875
+ self._loop.call_soon(self._call_connection_lost, None)
876
+
877
+ def __del__(self, _warn=warnings.warn):
878
+ if self._sock is not None:
879
+ _warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
880
+ self._sock.close()
881
+
882
+ def _fatal_error(self, exc, message='Fatal error on transport'):
883
+ # Should be called from exception handler only.
884
+ if isinstance(exc, OSError):
885
+ if self._loop.get_debug():
886
+ logger.debug("%r: %s", self, message, exc_info=True)
887
+ else:
888
+ self._loop.call_exception_handler({
889
+ 'message': message,
890
+ 'exception': exc,
891
+ 'transport': self,
892
+ 'protocol': self._protocol,
893
+ })
894
+ self._force_close(exc)
895
+
896
+ def _force_close(self, exc):
897
+ if self._conn_lost:
898
+ return
899
+ if self._buffer:
900
+ self._buffer.clear()
901
+ self._loop._remove_writer(self._sock_fd)
902
+ if not self._closing:
903
+ self._closing = True
904
+ self._loop._remove_reader(self._sock_fd)
905
+ self._conn_lost += 1
906
+ self._loop.call_soon(self._call_connection_lost, exc)
907
+
908
+ def _call_connection_lost(self, exc):
909
+ try:
910
+ if self._protocol_connected:
911
+ self._protocol.connection_lost(exc)
912
+ finally:
913
+ self._sock.close()
914
+ self._sock = None
915
+ self._protocol = None
916
+ self._loop = None
917
+ server = self._server
918
+ if server is not None:
919
+ server._detach()
920
+ self._server = None
921
+
922
+ def get_write_buffer_size(self):
923
+ return sum(map(len, self._buffer))
924
+
925
+ def _add_reader(self, fd, callback, *args):
926
+ if not self.is_reading():
927
+ return
928
+ self._loop._add_reader(fd, callback, *args)
929
+
930
+
931
+ class _SelectorSocketTransport(_SelectorTransport):
932
+
933
+ _start_tls_compatible = True
934
+ _sendfile_compatible = constants._SendfileMode.TRY_NATIVE
935
+
936
+ def __init__(self, loop, sock, protocol, waiter=None,
937
+ extra=None, server=None):
938
+
939
+ self._read_ready_cb = None
940
+ super().__init__(loop, sock, protocol, extra, server)
941
+ self._eof = False
942
+ self._empty_waiter = None
943
+ if _HAS_SENDMSG:
944
+ self._write_ready = self._write_sendmsg
945
+ else:
946
+ self._write_ready = self._write_send
947
+ # Disable the Nagle algorithm -- small writes will be
948
+ # sent without waiting for the TCP ACK. This generally
949
+ # decreases the latency (in some cases significantly.)
950
+ base_events._set_nodelay(self._sock)
951
+
952
+ self._loop.call_soon(self._protocol.connection_made, self)
953
+ # only start reading when connection_made() has been called
954
+ self._loop.call_soon(self._add_reader,
955
+ self._sock_fd, self._read_ready)
956
+ if waiter is not None:
957
+ # only wake up the waiter when connection_made() has been called
958
+ self._loop.call_soon(futures._set_result_unless_cancelled,
959
+ waiter, None)
960
+
961
+ def set_protocol(self, protocol):
962
+ if isinstance(protocol, protocols.BufferedProtocol):
963
+ self._read_ready_cb = self._read_ready__get_buffer
964
+ else:
965
+ self._read_ready_cb = self._read_ready__data_received
966
+
967
+ super().set_protocol(protocol)
968
+
969
+ def _read_ready(self):
970
+ self._read_ready_cb()
971
+
972
+ def _read_ready__get_buffer(self):
973
+ if self._conn_lost:
974
+ return
975
+
976
+ try:
977
+ buf = self._protocol.get_buffer(-1)
978
+ if not len(buf):
979
+ raise RuntimeError('get_buffer() returned an empty buffer')
980
+ except (SystemExit, KeyboardInterrupt):
981
+ raise
982
+ except BaseException as exc:
983
+ self._fatal_error(
984
+ exc, 'Fatal error: protocol.get_buffer() call failed.')
985
+ return
986
+
987
+ try:
988
+ nbytes = self._sock.recv_into(buf)
989
+ except (BlockingIOError, InterruptedError):
990
+ return
991
+ except (SystemExit, KeyboardInterrupt):
992
+ raise
993
+ except BaseException as exc:
994
+ self._fatal_error(exc, 'Fatal read error on socket transport')
995
+ return
996
+
997
+ if not nbytes:
998
+ self._read_ready__on_eof()
999
+ return
1000
+
1001
+ try:
1002
+ self._protocol.buffer_updated(nbytes)
1003
+ except (SystemExit, KeyboardInterrupt):
1004
+ raise
1005
+ except BaseException as exc:
1006
+ self._fatal_error(
1007
+ exc, 'Fatal error: protocol.buffer_updated() call failed.')
1008
+
1009
+ def _read_ready__data_received(self):
1010
+ if self._conn_lost:
1011
+ return
1012
+ try:
1013
+ data = self._sock.recv(self.max_size)
1014
+ except (BlockingIOError, InterruptedError):
1015
+ return
1016
+ except (SystemExit, KeyboardInterrupt):
1017
+ raise
1018
+ except BaseException as exc:
1019
+ self._fatal_error(exc, 'Fatal read error on socket transport')
1020
+ return
1021
+
1022
+ if not data:
1023
+ self._read_ready__on_eof()
1024
+ return
1025
+
1026
+ try:
1027
+ self._protocol.data_received(data)
1028
+ except (SystemExit, KeyboardInterrupt):
1029
+ raise
1030
+ except BaseException as exc:
1031
+ self._fatal_error(
1032
+ exc, 'Fatal error: protocol.data_received() call failed.')
1033
+
1034
+ def _read_ready__on_eof(self):
1035
+ if self._loop.get_debug():
1036
+ logger.debug("%r received EOF", self)
1037
+
1038
+ try:
1039
+ keep_open = self._protocol.eof_received()
1040
+ except (SystemExit, KeyboardInterrupt):
1041
+ raise
1042
+ except BaseException as exc:
1043
+ self._fatal_error(
1044
+ exc, 'Fatal error: protocol.eof_received() call failed.')
1045
+ return
1046
+
1047
+ if keep_open:
1048
+ # We're keeping the connection open so the
1049
+ # protocol can write more, but we still can't
1050
+ # receive more, so remove the reader callback.
1051
+ self._loop._remove_reader(self._sock_fd)
1052
+ else:
1053
+ self.close()
1054
+
1055
+ def write(self, data):
1056
+ if not isinstance(data, (bytes, bytearray, memoryview)):
1057
+ raise TypeError(f'data argument must be a bytes-like object, '
1058
+ f'not {type(data).__name__!r}')
1059
+ if self._eof:
1060
+ raise RuntimeError('Cannot call write() after write_eof()')
1061
+ if self._empty_waiter is not None:
1062
+ raise RuntimeError('unable to write; sendfile is in progress')
1063
+ if not data:
1064
+ return
1065
+
1066
+ if self._conn_lost:
1067
+ if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
1068
+ logger.warning('socket.send() raised exception.')
1069
+ self._conn_lost += 1
1070
+ return
1071
+
1072
+ if not self._buffer:
1073
+ # Optimization: try to send now.
1074
+ try:
1075
+ n = self._sock.send(data)
1076
+ except (BlockingIOError, InterruptedError):
1077
+ pass
1078
+ except (SystemExit, KeyboardInterrupt):
1079
+ raise
1080
+ except BaseException as exc:
1081
+ self._fatal_error(exc, 'Fatal write error on socket transport')
1082
+ return
1083
+ else:
1084
+ data = memoryview(data)[n:]
1085
+ if not data:
1086
+ return
1087
+ # Not all was written; register write handler.
1088
+ self._loop._add_writer(self._sock_fd, self._write_ready)
1089
+
1090
+ # Add it to the buffer.
1091
+ self._buffer.append(data)
1092
+ self._maybe_pause_protocol()
1093
+
1094
+ def _get_sendmsg_buffer(self):
1095
+ return itertools.islice(self._buffer, SC_IOV_MAX)
1096
+
1097
+ def _write_sendmsg(self):
1098
+ assert self._buffer, 'Data should not be empty'
1099
+ if self._conn_lost:
1100
+ return
1101
+ try:
1102
+ nbytes = self._sock.sendmsg(self._get_sendmsg_buffer())
1103
+ self._adjust_leftover_buffer(nbytes)
1104
+ except (BlockingIOError, InterruptedError):
1105
+ pass
1106
+ except (SystemExit, KeyboardInterrupt):
1107
+ raise
1108
+ except BaseException as exc:
1109
+ self._loop._remove_writer(self._sock_fd)
1110
+ self._buffer.clear()
1111
+ self._fatal_error(exc, 'Fatal write error on socket transport')
1112
+ if self._empty_waiter is not None:
1113
+ self._empty_waiter.set_exception(exc)
1114
+ else:
1115
+ self._maybe_resume_protocol() # May append to buffer.
1116
+ if not self._buffer:
1117
+ self._loop._remove_writer(self._sock_fd)
1118
+ if self._empty_waiter is not None:
1119
+ self._empty_waiter.set_result(None)
1120
+ if self._closing:
1121
+ self._call_connection_lost(None)
1122
+ elif self._eof:
1123
+ self._sock.shutdown(socket.SHUT_WR)
1124
+
1125
+ def _adjust_leftover_buffer(self, nbytes: int) -> None:
1126
+ buffer = self._buffer
1127
+ while nbytes:
1128
+ b = buffer.popleft()
1129
+ b_len = len(b)
1130
+ if b_len <= nbytes:
1131
+ nbytes -= b_len
1132
+ else:
1133
+ buffer.appendleft(b[nbytes:])
1134
+ break
1135
+
1136
+ def _write_send(self):
1137
+ assert self._buffer, 'Data should not be empty'
1138
+ if self._conn_lost:
1139
+ return
1140
+ try:
1141
+ buffer = self._buffer.popleft()
1142
+ n = self._sock.send(buffer)
1143
+ if n != len(buffer):
1144
+ # Not all data was written
1145
+ self._buffer.appendleft(buffer[n:])
1146
+ except (BlockingIOError, InterruptedError):
1147
+ pass
1148
+ except (SystemExit, KeyboardInterrupt):
1149
+ raise
1150
+ except BaseException as exc:
1151
+ self._loop._remove_writer(self._sock_fd)
1152
+ self._buffer.clear()
1153
+ self._fatal_error(exc, 'Fatal write error on socket transport')
1154
+ if self._empty_waiter is not None:
1155
+ self._empty_waiter.set_exception(exc)
1156
+ else:
1157
+ self._maybe_resume_protocol() # May append to buffer.
1158
+ if not self._buffer:
1159
+ self._loop._remove_writer(self._sock_fd)
1160
+ if self._empty_waiter is not None:
1161
+ self._empty_waiter.set_result(None)
1162
+ if self._closing:
1163
+ self._call_connection_lost(None)
1164
+ elif self._eof:
1165
+ self._sock.shutdown(socket.SHUT_WR)
1166
+
1167
+ def write_eof(self):
1168
+ if self._closing or self._eof:
1169
+ return
1170
+ self._eof = True
1171
+ if not self._buffer:
1172
+ self._sock.shutdown(socket.SHUT_WR)
1173
+
1174
+ def writelines(self, list_of_data):
1175
+ if self._eof:
1176
+ raise RuntimeError('Cannot call writelines() after write_eof()')
1177
+ if self._empty_waiter is not None:
1178
+ raise RuntimeError('unable to writelines; sendfile is in progress')
1179
+ if not list_of_data:
1180
+ return
1181
+ self._buffer.extend([memoryview(data) for data in list_of_data])
1182
+ self._write_ready()
1183
+ # If the entire buffer couldn't be written, register a write handler
1184
+ if self._buffer:
1185
+ self._loop._add_writer(self._sock_fd, self._write_ready)
1186
+ self._maybe_pause_protocol()
1187
+
1188
+ def can_write_eof(self):
1189
+ return True
1190
+
1191
+ def _call_connection_lost(self, exc):
1192
+ try:
1193
+ super()._call_connection_lost(exc)
1194
+ finally:
1195
+ self._write_ready = None
1196
+ if self._empty_waiter is not None:
1197
+ self._empty_waiter.set_exception(
1198
+ ConnectionError("Connection is closed by peer"))
1199
+
1200
+ def _make_empty_waiter(self):
1201
+ if self._empty_waiter is not None:
1202
+ raise RuntimeError("Empty waiter is already set")
1203
+ self._empty_waiter = self._loop.create_future()
1204
+ if not self._buffer:
1205
+ self._empty_waiter.set_result(None)
1206
+ return self._empty_waiter
1207
+
1208
+ def _reset_empty_waiter(self):
1209
+ self._empty_waiter = None
1210
+
1211
+ def close(self):
1212
+ self._read_ready_cb = None
1213
+ super().close()
1214
+
1215
+
1216
+ class _SelectorDatagramTransport(_SelectorTransport, transports.DatagramTransport):
1217
+
1218
+ _buffer_factory = collections.deque
1219
+
1220
+ def __init__(self, loop, sock, protocol, address=None,
1221
+ waiter=None, extra=None):
1222
+ super().__init__(loop, sock, protocol, extra)
1223
+ self._address = address
1224
+ self._buffer_size = 0
1225
+ self._loop.call_soon(self._protocol.connection_made, self)
1226
+ # only start reading when connection_made() has been called
1227
+ self._loop.call_soon(self._add_reader,
1228
+ self._sock_fd, self._read_ready)
1229
+ if waiter is not None:
1230
+ # only wake up the waiter when connection_made() has been called
1231
+ self._loop.call_soon(futures._set_result_unless_cancelled,
1232
+ waiter, None)
1233
+
1234
+ def get_write_buffer_size(self):
1235
+ return self._buffer_size
1236
+
1237
+ def _read_ready(self):
1238
+ if self._conn_lost:
1239
+ return
1240
+ try:
1241
+ data, addr = self._sock.recvfrom(self.max_size)
1242
+ except (BlockingIOError, InterruptedError):
1243
+ pass
1244
+ except OSError as exc:
1245
+ self._protocol.error_received(exc)
1246
+ except (SystemExit, KeyboardInterrupt):
1247
+ raise
1248
+ except BaseException as exc:
1249
+ self._fatal_error(exc, 'Fatal read error on datagram transport')
1250
+ else:
1251
+ self._protocol.datagram_received(data, addr)
1252
+
1253
+ def sendto(self, data, addr=None):
1254
+ if not isinstance(data, (bytes, bytearray, memoryview)):
1255
+ raise TypeError(f'data argument must be a bytes-like object, '
1256
+ f'not {type(data).__name__!r}')
1257
+ if not data:
1258
+ return
1259
+
1260
+ if self._address:
1261
+ if addr not in (None, self._address):
1262
+ raise ValueError(
1263
+ f'Invalid address: must be None or {self._address}')
1264
+ addr = self._address
1265
+
1266
+ if self._conn_lost and self._address:
1267
+ if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
1268
+ logger.warning('socket.send() raised exception.')
1269
+ self._conn_lost += 1
1270
+ return
1271
+
1272
+ if not self._buffer:
1273
+ # Attempt to send it right away first.
1274
+ try:
1275
+ if self._extra['peername']:
1276
+ self._sock.send(data)
1277
+ else:
1278
+ self._sock.sendto(data, addr)
1279
+ return
1280
+ except (BlockingIOError, InterruptedError):
1281
+ self._loop._add_writer(self._sock_fd, self._sendto_ready)
1282
+ except OSError as exc:
1283
+ self._protocol.error_received(exc)
1284
+ return
1285
+ except (SystemExit, KeyboardInterrupt):
1286
+ raise
1287
+ except BaseException as exc:
1288
+ self._fatal_error(
1289
+ exc, 'Fatal write error on datagram transport')
1290
+ return
1291
+
1292
+ # Ensure that what we buffer is immutable.
1293
+ self._buffer.append((bytes(data), addr))
1294
+ self._buffer_size += len(data)
1295
+ self._maybe_pause_protocol()
1296
+
1297
+ def _sendto_ready(self):
1298
+ while self._buffer:
1299
+ data, addr = self._buffer.popleft()
1300
+ self._buffer_size -= len(data)
1301
+ try:
1302
+ if self._extra['peername']:
1303
+ self._sock.send(data)
1304
+ else:
1305
+ self._sock.sendto(data, addr)
1306
+ except (BlockingIOError, InterruptedError):
1307
+ self._buffer.appendleft((data, addr)) # Try again later.
1308
+ self._buffer_size += len(data)
1309
+ break
1310
+ except OSError as exc:
1311
+ self._protocol.error_received(exc)
1312
+ return
1313
+ except (SystemExit, KeyboardInterrupt):
1314
+ raise
1315
+ except BaseException as exc:
1316
+ self._fatal_error(
1317
+ exc, 'Fatal write error on datagram transport')
1318
+ return
1319
+
1320
+ self._maybe_resume_protocol() # May append to buffer.
1321
+ if not self._buffer:
1322
+ self._loop._remove_writer(self._sock_fd)
1323
+ if self._closing:
1324
+ self._call_connection_lost(None)