@pairling/runtime-darwin-arm64 0.1.0 → 0.2.0

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 (1317) hide show
  1. package/bin/pairling-connectd +0 -0
  2. package/manifest.json +9 -3
  3. package/package.json +1 -1
  4. package/python/bin/2to3-3.12 +7 -0
  5. package/python/bin/idle3.12 +7 -0
  6. package/python/bin/pip +8 -0
  7. package/python/bin/pip3 +8 -0
  8. package/python/bin/pip3.12 +8 -0
  9. package/python/bin/pydoc3.12 +7 -0
  10. package/python/bin/python3 +0 -0
  11. package/python/bin/python3.12 +0 -0
  12. package/python/bin/python3.12-config +76 -0
  13. package/python/include/python3.12/Python.h +109 -0
  14. package/python/include/python3.12/abstract.h +899 -0
  15. package/python/include/python3.12/bltinmodule.h +14 -0
  16. package/python/include/python3.12/boolobject.h +42 -0
  17. package/python/include/python3.12/bytearrayobject.h +44 -0
  18. package/python/include/python3.12/bytesobject.h +69 -0
  19. package/python/include/python3.12/ceval.h +168 -0
  20. package/python/include/python3.12/codecs.h +248 -0
  21. package/python/include/python3.12/compile.h +22 -0
  22. package/python/include/python3.12/complexobject.h +30 -0
  23. package/python/include/python3.12/cpython/abstract.h +206 -0
  24. package/python/include/python3.12/cpython/bytearrayobject.h +34 -0
  25. package/python/include/python3.12/cpython/bytesobject.h +133 -0
  26. package/python/include/python3.12/cpython/cellobject.h +44 -0
  27. package/python/include/python3.12/cpython/ceval.h +35 -0
  28. package/python/include/python3.12/cpython/classobject.h +71 -0
  29. package/python/include/python3.12/cpython/code.h +389 -0
  30. package/python/include/python3.12/cpython/compile.h +69 -0
  31. package/python/include/python3.12/cpython/complexobject.h +44 -0
  32. package/python/include/python3.12/cpython/context.h +78 -0
  33. package/python/include/python3.12/cpython/descrobject.h +64 -0
  34. package/python/include/python3.12/cpython/dictobject.h +118 -0
  35. package/python/include/python3.12/cpython/fileobject.h +19 -0
  36. package/python/include/python3.12/cpython/fileutils.h +8 -0
  37. package/python/include/python3.12/cpython/floatobject.h +27 -0
  38. package/python/include/python3.12/cpython/frameobject.h +29 -0
  39. package/python/include/python3.12/cpython/funcobject.h +190 -0
  40. package/python/include/python3.12/cpython/genobject.h +89 -0
  41. package/python/include/python3.12/cpython/import.h +46 -0
  42. package/python/include/python3.12/cpython/initconfig.h +256 -0
  43. package/python/include/python3.12/cpython/interpreteridobject.h +11 -0
  44. package/python/include/python3.12/cpython/listobject.h +47 -0
  45. package/python/include/python3.12/cpython/longintrepr.h +133 -0
  46. package/python/include/python3.12/cpython/longobject.h +100 -0
  47. package/python/include/python3.12/cpython/memoryobject.h +52 -0
  48. package/python/include/python3.12/cpython/methodobject.h +66 -0
  49. package/python/include/python3.12/cpython/modsupport.h +109 -0
  50. package/python/include/python3.12/cpython/object.h +575 -0
  51. package/python/include/python3.12/cpython/objimpl.h +95 -0
  52. package/python/include/python3.12/cpython/odictobject.h +43 -0
  53. package/python/include/python3.12/cpython/picklebufobject.h +31 -0
  54. package/python/include/python3.12/cpython/pthread_stubs.h +88 -0
  55. package/python/include/python3.12/cpython/pyctype.h +39 -0
  56. package/python/include/python3.12/cpython/pydebug.h +38 -0
  57. package/python/include/python3.12/cpython/pyerrors.h +178 -0
  58. package/python/include/python3.12/cpython/pyfpe.h +15 -0
  59. package/python/include/python3.12/cpython/pyframe.h +35 -0
  60. package/python/include/python3.12/cpython/pylifecycle.h +111 -0
  61. package/python/include/python3.12/cpython/pymem.h +98 -0
  62. package/python/include/python3.12/cpython/pystate.h +456 -0
  63. package/python/include/python3.12/cpython/pythonrun.h +121 -0
  64. package/python/include/python3.12/cpython/pythread.h +42 -0
  65. package/python/include/python3.12/cpython/pytime.h +331 -0
  66. package/python/include/python3.12/cpython/setobject.h +72 -0
  67. package/python/include/python3.12/cpython/sysmodule.h +16 -0
  68. package/python/include/python3.12/cpython/traceback.h +16 -0
  69. package/python/include/python3.12/cpython/tupleobject.h +39 -0
  70. package/python/include/python3.12/cpython/unicodeobject.h +976 -0
  71. package/python/include/python3.12/cpython/warnings.h +20 -0
  72. package/python/include/python3.12/cpython/weakrefobject.h +56 -0
  73. package/python/include/python3.12/datetime.h +267 -0
  74. package/python/include/python3.12/descrobject.h +100 -0
  75. package/python/include/python3.12/dictobject.h +97 -0
  76. package/python/include/python3.12/dynamic_annotations.h +499 -0
  77. package/python/include/python3.12/enumobject.h +17 -0
  78. package/python/include/python3.12/errcode.h +38 -0
  79. package/python/include/python3.12/exports.h +36 -0
  80. package/python/include/python3.12/fileobject.h +49 -0
  81. package/python/include/python3.12/fileutils.h +26 -0
  82. package/python/include/python3.12/floatobject.h +54 -0
  83. package/python/include/python3.12/frameobject.h +20 -0
  84. package/python/include/python3.12/genericaliasobject.h +14 -0
  85. package/python/include/python3.12/import.h +98 -0
  86. package/python/include/python3.12/internal/pycore_abstract.h +25 -0
  87. package/python/include/python3.12/internal/pycore_asdl.h +112 -0
  88. package/python/include/python3.12/internal/pycore_ast.h +922 -0
  89. package/python/include/python3.12/internal/pycore_ast_state.h +265 -0
  90. package/python/include/python3.12/internal/pycore_atexit.h +57 -0
  91. package/python/include/python3.12/internal/pycore_atomic.h +557 -0
  92. package/python/include/python3.12/internal/pycore_atomic_funcs.h +94 -0
  93. package/python/include/python3.12/internal/pycore_bitutils.h +186 -0
  94. package/python/include/python3.12/internal/pycore_blocks_output_buffer.h +317 -0
  95. package/python/include/python3.12/internal/pycore_bytes_methods.h +73 -0
  96. package/python/include/python3.12/internal/pycore_bytesobject.h +47 -0
  97. package/python/include/python3.12/internal/pycore_call.h +133 -0
  98. package/python/include/python3.12/internal/pycore_ceval.h +164 -0
  99. package/python/include/python3.12/internal/pycore_ceval_state.h +103 -0
  100. package/python/include/python3.12/internal/pycore_code.h +496 -0
  101. package/python/include/python3.12/internal/pycore_compile.h +118 -0
  102. package/python/include/python3.12/internal/pycore_condvar.h +99 -0
  103. package/python/include/python3.12/internal/pycore_context.h +71 -0
  104. package/python/include/python3.12/internal/pycore_descrobject.h +26 -0
  105. package/python/include/python3.12/internal/pycore_dict.h +199 -0
  106. package/python/include/python3.12/internal/pycore_dict_state.h +50 -0
  107. package/python/include/python3.12/internal/pycore_dtoa.h +69 -0
  108. package/python/include/python3.12/internal/pycore_emscripten_signal.h +25 -0
  109. package/python/include/python3.12/internal/pycore_exceptions.h +37 -0
  110. package/python/include/python3.12/internal/pycore_faulthandler.h +99 -0
  111. package/python/include/python3.12/internal/pycore_fileutils.h +292 -0
  112. package/python/include/python3.12/internal/pycore_fileutils_windows.h +98 -0
  113. package/python/include/python3.12/internal/pycore_floatobject.h +71 -0
  114. package/python/include/python3.12/internal/pycore_flowgraph.h +120 -0
  115. package/python/include/python3.12/internal/pycore_format.h +27 -0
  116. package/python/include/python3.12/internal/pycore_frame.h +283 -0
  117. package/python/include/python3.12/internal/pycore_function.h +26 -0
  118. package/python/include/python3.12/internal/pycore_gc.h +211 -0
  119. package/python/include/python3.12/internal/pycore_genobject.h +49 -0
  120. package/python/include/python3.12/internal/pycore_getopt.h +22 -0
  121. package/python/include/python3.12/internal/pycore_gil.h +50 -0
  122. package/python/include/python3.12/internal/pycore_global_objects.h +105 -0
  123. package/python/include/python3.12/internal/pycore_global_objects_fini_generated.h +1517 -0
  124. package/python/include/python3.12/internal/pycore_global_strings.h +777 -0
  125. package/python/include/python3.12/internal/pycore_hamt.h +134 -0
  126. package/python/include/python3.12/internal/pycore_hashtable.h +149 -0
  127. package/python/include/python3.12/internal/pycore_import.h +183 -0
  128. package/python/include/python3.12/internal/pycore_initconfig.h +179 -0
  129. package/python/include/python3.12/internal/pycore_instruments.h +106 -0
  130. package/python/include/python3.12/internal/pycore_interp.h +275 -0
  131. package/python/include/python3.12/internal/pycore_intrinsics.h +32 -0
  132. package/python/include/python3.12/internal/pycore_list.h +83 -0
  133. package/python/include/python3.12/internal/pycore_long.h +258 -0
  134. package/python/include/python3.12/internal/pycore_memoryobject.h +18 -0
  135. package/python/include/python3.12/internal/pycore_moduleobject.h +45 -0
  136. package/python/include/python3.12/internal/pycore_namespace.h +20 -0
  137. package/python/include/python3.12/internal/pycore_object.h +455 -0
  138. package/python/include/python3.12/internal/pycore_object_state.h +42 -0
  139. package/python/include/python3.12/internal/pycore_obmalloc.h +700 -0
  140. package/python/include/python3.12/internal/pycore_obmalloc_init.h +73 -0
  141. package/python/include/python3.12/internal/pycore_opcode.h +587 -0
  142. package/python/include/python3.12/internal/pycore_opcode_utils.h +92 -0
  143. package/python/include/python3.12/internal/pycore_parser.h +66 -0
  144. package/python/include/python3.12/internal/pycore_pathconfig.h +24 -0
  145. package/python/include/python3.12/internal/pycore_pyarena.h +64 -0
  146. package/python/include/python3.12/internal/pycore_pyerrors.h +129 -0
  147. package/python/include/python3.12/internal/pycore_pyhash.h +40 -0
  148. package/python/include/python3.12/internal/pycore_pylifecycle.h +99 -0
  149. package/python/include/python3.12/internal/pycore_pymath.h +205 -0
  150. package/python/include/python3.12/internal/pycore_pymem.h +98 -0
  151. package/python/include/python3.12/internal/pycore_pymem_init.h +85 -0
  152. package/python/include/python3.12/internal/pycore_pystate.h +180 -0
  153. package/python/include/python3.12/internal/pycore_pythread.h +81 -0
  154. package/python/include/python3.12/internal/pycore_range.h +21 -0
  155. package/python/include/python3.12/internal/pycore_runtime.h +235 -0
  156. package/python/include/python3.12/internal/pycore_runtime_init.h +188 -0
  157. package/python/include/python3.12/internal/pycore_runtime_init_generated.h +1511 -0
  158. package/python/include/python3.12/internal/pycore_signal.h +98 -0
  159. package/python/include/python3.12/internal/pycore_sliceobject.h +22 -0
  160. package/python/include/python3.12/internal/pycore_strhex.h +36 -0
  161. package/python/include/python3.12/internal/pycore_structseq.h +39 -0
  162. package/python/include/python3.12/internal/pycore_symtable.h +160 -0
  163. package/python/include/python3.12/internal/pycore_sysmodule.h +34 -0
  164. package/python/include/python3.12/internal/pycore_time.h +25 -0
  165. package/python/include/python3.12/internal/pycore_token.h +108 -0
  166. package/python/include/python3.12/internal/pycore_traceback.h +101 -0
  167. package/python/include/python3.12/internal/pycore_tracemalloc.h +123 -0
  168. package/python/include/python3.12/internal/pycore_tuple.h +79 -0
  169. package/python/include/python3.12/internal/pycore_typeobject.h +151 -0
  170. package/python/include/python3.12/internal/pycore_typevarobject.h +24 -0
  171. package/python/include/python3.12/internal/pycore_ucnhash.h +34 -0
  172. package/python/include/python3.12/internal/pycore_unicodeobject.h +86 -0
  173. package/python/include/python3.12/internal/pycore_unicodeobject_generated.h +2832 -0
  174. package/python/include/python3.12/internal/pycore_unionobject.h +23 -0
  175. package/python/include/python3.12/internal/pycore_warnings.h +29 -0
  176. package/python/include/python3.12/interpreteridobject.h +17 -0
  177. package/python/include/python3.12/intrcheck.h +30 -0
  178. package/python/include/python3.12/iterobject.h +27 -0
  179. package/python/include/python3.12/listobject.h +52 -0
  180. package/python/include/python3.12/longobject.h +108 -0
  181. package/python/include/python3.12/marshal.h +31 -0
  182. package/python/include/python3.12/memoryobject.h +34 -0
  183. package/python/include/python3.12/methodobject.h +132 -0
  184. package/python/include/python3.12/modsupport.h +168 -0
  185. package/python/include/python3.12/moduleobject.h +119 -0
  186. package/python/include/python3.12/object.h +993 -0
  187. package/python/include/python3.12/objimpl.h +234 -0
  188. package/python/include/python3.12/opcode.h +271 -0
  189. package/python/include/python3.12/osdefs.h +51 -0
  190. package/python/include/python3.12/osmodule.h +17 -0
  191. package/python/include/python3.12/patchlevel.h +35 -0
  192. package/python/include/python3.12/py_curses.h +99 -0
  193. package/python/include/python3.12/pybuffer.h +145 -0
  194. package/python/include/python3.12/pycapsule.h +59 -0
  195. package/python/include/python3.12/pyconfig.h +1943 -0
  196. package/python/include/python3.12/pydtrace.h +59 -0
  197. package/python/include/python3.12/pyerrors.h +337 -0
  198. package/python/include/python3.12/pyexpat.h +62 -0
  199. package/python/include/python3.12/pyframe.h +26 -0
  200. package/python/include/python3.12/pyhash.h +144 -0
  201. package/python/include/python3.12/pylifecycle.h +78 -0
  202. package/python/include/python3.12/pymacconfig.h +99 -0
  203. package/python/include/python3.12/pymacro.h +172 -0
  204. package/python/include/python3.12/pymath.h +62 -0
  205. package/python/include/python3.12/pymem.h +104 -0
  206. package/python/include/python3.12/pyport.h +782 -0
  207. package/python/include/python3.12/pystate.h +132 -0
  208. package/python/include/python3.12/pystats.h +110 -0
  209. package/python/include/python3.12/pystrcmp.h +23 -0
  210. package/python/include/python3.12/pystrtod.h +46 -0
  211. package/python/include/python3.12/pythonrun.h +49 -0
  212. package/python/include/python3.12/pythread.h +135 -0
  213. package/python/include/python3.12/pytypedefs.h +30 -0
  214. package/python/include/python3.12/rangeobject.h +27 -0
  215. package/python/include/python3.12/setobject.h +49 -0
  216. package/python/include/python3.12/sliceobject.h +65 -0
  217. package/python/include/python3.12/structmember.h +56 -0
  218. package/python/include/python3.12/structseq.h +49 -0
  219. package/python/include/python3.12/sysmodule.h +54 -0
  220. package/python/include/python3.12/traceback.h +26 -0
  221. package/python/include/python3.12/tracemalloc.h +77 -0
  222. package/python/include/python3.12/tupleobject.h +46 -0
  223. package/python/include/python3.12/typeslots.h +88 -0
  224. package/python/include/python3.12/unicodeobject.h +1020 -0
  225. package/python/include/python3.12/warnings.h +45 -0
  226. package/python/include/python3.12/weakrefobject.h +42 -0
  227. package/python/lib/libpython3.12.dylib +0 -0
  228. package/python/lib/python3.12/LICENSE.txt +279 -0
  229. package/python/lib/python3.12/__future__.py +147 -0
  230. package/python/lib/python3.12/__hello__.py +16 -0
  231. package/python/lib/python3.12/__phello__/__init__.py +7 -0
  232. package/python/lib/python3.12/__phello__/spam.py +7 -0
  233. package/python/lib/python3.12/__pycache__/_compression.cpython-312.pyc +0 -0
  234. package/python/lib/python3.12/__pycache__/_weakrefset.cpython-312.pyc +0 -0
  235. package/python/lib/python3.12/__pycache__/base64.cpython-312.pyc +0 -0
  236. package/python/lib/python3.12/__pycache__/bisect.cpython-312.pyc +0 -0
  237. package/python/lib/python3.12/__pycache__/bz2.cpython-312.pyc +0 -0
  238. package/python/lib/python3.12/__pycache__/calendar.cpython-312.pyc +0 -0
  239. package/python/lib/python3.12/__pycache__/contextlib.cpython-312.pyc +0 -0
  240. package/python/lib/python3.12/__pycache__/copyreg.cpython-312.pyc +0 -0
  241. package/python/lib/python3.12/__pycache__/datetime.cpython-312.pyc +0 -0
  242. package/python/lib/python3.12/__pycache__/enum.cpython-312.pyc +0 -0
  243. package/python/lib/python3.12/__pycache__/fnmatch.cpython-312.pyc +0 -0
  244. package/python/lib/python3.12/__pycache__/functools.cpython-312.pyc +0 -0
  245. package/python/lib/python3.12/__pycache__/hashlib.cpython-312.pyc +0 -0
  246. package/python/lib/python3.12/__pycache__/hmac.cpython-312.pyc +0 -0
  247. package/python/lib/python3.12/__pycache__/ipaddress.cpython-312.pyc +0 -0
  248. package/python/lib/python3.12/__pycache__/keyword.cpython-312.pyc +0 -0
  249. package/python/lib/python3.12/__pycache__/locale.cpython-312.pyc +0 -0
  250. package/python/lib/python3.12/__pycache__/lzma.cpython-312.pyc +0 -0
  251. package/python/lib/python3.12/__pycache__/operator.cpython-312.pyc +0 -0
  252. package/python/lib/python3.12/__pycache__/plistlib.cpython-312.pyc +0 -0
  253. package/python/lib/python3.12/__pycache__/pty.cpython-312.pyc +0 -0
  254. package/python/lib/python3.12/__pycache__/quopri.cpython-312.pyc +0 -0
  255. package/python/lib/python3.12/__pycache__/random.cpython-312.pyc +0 -0
  256. package/python/lib/python3.12/__pycache__/reprlib.cpython-312.pyc +0 -0
  257. package/python/lib/python3.12/__pycache__/selectors.cpython-312.pyc +0 -0
  258. package/python/lib/python3.12/__pycache__/shutil.cpython-312.pyc +0 -0
  259. package/python/lib/python3.12/__pycache__/signal.cpython-312.pyc +0 -0
  260. package/python/lib/python3.12/__pycache__/socket.cpython-312.pyc +0 -0
  261. package/python/lib/python3.12/__pycache__/ssl.cpython-312.pyc +0 -0
  262. package/python/lib/python3.12/__pycache__/string.cpython-312.pyc +0 -0
  263. package/python/lib/python3.12/__pycache__/struct.cpython-312.pyc +0 -0
  264. package/python/lib/python3.12/__pycache__/subprocess.cpython-312.pyc +0 -0
  265. package/python/lib/python3.12/__pycache__/tempfile.cpython-312.pyc +0 -0
  266. package/python/lib/python3.12/__pycache__/threading.cpython-312.pyc +0 -0
  267. package/python/lib/python3.12/__pycache__/tty.cpython-312.pyc +0 -0
  268. package/python/lib/python3.12/__pycache__/types.cpython-312.pyc +0 -0
  269. package/python/lib/python3.12/__pycache__/warnings.cpython-312.pyc +0 -0
  270. package/python/lib/python3.12/__pycache__/weakref.cpython-312.pyc +0 -0
  271. package/python/lib/python3.12/_aix_support.py +108 -0
  272. package/python/lib/python3.12/_collections_abc.py +1173 -0
  273. package/python/lib/python3.12/_compat_pickle.py +252 -0
  274. package/python/lib/python3.12/_compression.py +162 -0
  275. package/python/lib/python3.12/_markupbase.py +396 -0
  276. package/python/lib/python3.12/_osx_support.py +579 -0
  277. package/python/lib/python3.12/_py_abc.py +147 -0
  278. package/python/lib/python3.12/_pydatetime.py +2643 -0
  279. package/python/lib/python3.12/_pydecimal.py +6339 -0
  280. package/python/lib/python3.12/_pyio.py +2698 -0
  281. package/python/lib/python3.12/_pylong.py +329 -0
  282. package/python/lib/python3.12/_sitebuiltins.py +103 -0
  283. package/python/lib/python3.12/_strptime.py +664 -0
  284. package/python/lib/python3.12/_sysconfigdata__darwin_darwin.py +984 -0
  285. package/python/lib/python3.12/_threading_local.py +242 -0
  286. package/python/lib/python3.12/_weakrefset.py +205 -0
  287. package/python/lib/python3.12/abc.py +188 -0
  288. package/python/lib/python3.12/aifc.py +984 -0
  289. package/python/lib/python3.12/antigravity.py +17 -0
  290. package/python/lib/python3.12/argparse.py +2650 -0
  291. package/python/lib/python3.12/ast.py +1840 -0
  292. package/python/lib/python3.12/asyncio/__init__.py +47 -0
  293. package/python/lib/python3.12/asyncio/__main__.py +128 -0
  294. package/python/lib/python3.12/asyncio/base_events.py +2024 -0
  295. package/python/lib/python3.12/asyncio/base_futures.py +67 -0
  296. package/python/lib/python3.12/asyncio/base_subprocess.py +285 -0
  297. package/python/lib/python3.12/asyncio/base_tasks.py +94 -0
  298. package/python/lib/python3.12/asyncio/constants.py +41 -0
  299. package/python/lib/python3.12/asyncio/coroutines.py +109 -0
  300. package/python/lib/python3.12/asyncio/events.py +868 -0
  301. package/python/lib/python3.12/asyncio/exceptions.py +62 -0
  302. package/python/lib/python3.12/asyncio/format_helpers.py +76 -0
  303. package/python/lib/python3.12/asyncio/futures.py +430 -0
  304. package/python/lib/python3.12/asyncio/locks.py +586 -0
  305. package/python/lib/python3.12/asyncio/log.py +7 -0
  306. package/python/lib/python3.12/asyncio/mixins.py +21 -0
  307. package/python/lib/python3.12/asyncio/proactor_events.py +897 -0
  308. package/python/lib/python3.12/asyncio/protocols.py +216 -0
  309. package/python/lib/python3.12/asyncio/queues.py +244 -0
  310. package/python/lib/python3.12/asyncio/runners.py +216 -0
  311. package/python/lib/python3.12/asyncio/selector_events.py +1324 -0
  312. package/python/lib/python3.12/asyncio/sslproto.py +929 -0
  313. package/python/lib/python3.12/asyncio/staggered.py +174 -0
  314. package/python/lib/python3.12/asyncio/streams.py +770 -0
  315. package/python/lib/python3.12/asyncio/subprocess.py +229 -0
  316. package/python/lib/python3.12/asyncio/taskgroups.py +268 -0
  317. package/python/lib/python3.12/asyncio/tasks.py +1065 -0
  318. package/python/lib/python3.12/asyncio/threads.py +25 -0
  319. package/python/lib/python3.12/asyncio/timeouts.py +168 -0
  320. package/python/lib/python3.12/asyncio/transports.py +335 -0
  321. package/python/lib/python3.12/asyncio/trsock.py +98 -0
  322. package/python/lib/python3.12/asyncio/unix_events.py +1500 -0
  323. package/python/lib/python3.12/asyncio/windows_events.py +901 -0
  324. package/python/lib/python3.12/asyncio/windows_utils.py +173 -0
  325. package/python/lib/python3.12/base64.py +586 -0
  326. package/python/lib/python3.12/bdb.py +920 -0
  327. package/python/lib/python3.12/bisect.py +118 -0
  328. package/python/lib/python3.12/bz2.py +344 -0
  329. package/python/lib/python3.12/cProfile.py +195 -0
  330. package/python/lib/python3.12/calendar.py +808 -0
  331. package/python/lib/python3.12/cgi.py +1014 -0
  332. package/python/lib/python3.12/cgitb.py +332 -0
  333. package/python/lib/python3.12/chunk.py +173 -0
  334. package/python/lib/python3.12/cmd.py +401 -0
  335. package/python/lib/python3.12/code.py +324 -0
  336. package/python/lib/python3.12/codecs.py +1129 -0
  337. package/python/lib/python3.12/codeop.py +161 -0
  338. package/python/lib/python3.12/collections/__init__.py +1592 -0
  339. package/python/lib/python3.12/collections/__pycache__/__init__.cpython-312.pyc +0 -0
  340. package/python/lib/python3.12/collections/__pycache__/abc.cpython-312.pyc +0 -0
  341. package/python/lib/python3.12/collections/abc.py +3 -0
  342. package/python/lib/python3.12/colorsys.py +166 -0
  343. package/python/lib/python3.12/compileall.py +469 -0
  344. package/python/lib/python3.12/concurrent/__init__.py +1 -0
  345. package/python/lib/python3.12/concurrent/futures/__init__.py +54 -0
  346. package/python/lib/python3.12/concurrent/futures/_base.py +654 -0
  347. package/python/lib/python3.12/concurrent/futures/process.py +876 -0
  348. package/python/lib/python3.12/concurrent/futures/thread.py +240 -0
  349. package/python/lib/python3.12/config-3.12-darwin/Makefile +3224 -0
  350. package/python/lib/python3.12/config-3.12-darwin/Setup +303 -0
  351. package/python/lib/python3.12/config-3.12-darwin/Setup.bootstrap +36 -0
  352. package/python/lib/python3.12/config-3.12-darwin/Setup.local +90 -0
  353. package/python/lib/python3.12/config-3.12-darwin/Setup.stdlib +183 -0
  354. package/python/lib/python3.12/config-3.12-darwin/config.c +246 -0
  355. package/python/lib/python3.12/config-3.12-darwin/config.c.in +71 -0
  356. package/python/lib/python3.12/config-3.12-darwin/install-sh +541 -0
  357. package/python/lib/python3.12/config-3.12-darwin/makesetup +353 -0
  358. package/python/lib/python3.12/config-3.12-darwin/python-config.py +76 -0
  359. package/python/lib/python3.12/config-3.12-darwin/python.o +0 -0
  360. package/python/lib/python3.12/configparser.py +1333 -0
  361. package/python/lib/python3.12/contextlib.py +800 -0
  362. package/python/lib/python3.12/contextvars.py +4 -0
  363. package/python/lib/python3.12/copy.py +292 -0
  364. package/python/lib/python3.12/copyreg.py +217 -0
  365. package/python/lib/python3.12/crypt.py +124 -0
  366. package/python/lib/python3.12/csv.py +451 -0
  367. package/python/lib/python3.12/ctypes/__init__.py +582 -0
  368. package/python/lib/python3.12/ctypes/_aix.py +327 -0
  369. package/python/lib/python3.12/ctypes/_endian.py +78 -0
  370. package/python/lib/python3.12/ctypes/macholib/README.ctypes +7 -0
  371. package/python/lib/python3.12/ctypes/macholib/__init__.py +9 -0
  372. package/python/lib/python3.12/ctypes/macholib/dyld.py +165 -0
  373. package/python/lib/python3.12/ctypes/macholib/dylib.py +42 -0
  374. package/python/lib/python3.12/ctypes/macholib/fetch_macholib +2 -0
  375. package/python/lib/python3.12/ctypes/macholib/fetch_macholib.bat +1 -0
  376. package/python/lib/python3.12/ctypes/macholib/framework.py +42 -0
  377. package/python/lib/python3.12/ctypes/util.py +379 -0
  378. package/python/lib/python3.12/ctypes/wintypes.py +202 -0
  379. package/python/lib/python3.12/curses/__init__.py +101 -0
  380. package/python/lib/python3.12/curses/ascii.py +99 -0
  381. package/python/lib/python3.12/curses/has_key.py +192 -0
  382. package/python/lib/python3.12/curses/panel.py +6 -0
  383. package/python/lib/python3.12/curses/textpad.py +204 -0
  384. package/python/lib/python3.12/dataclasses.py +1588 -0
  385. package/python/lib/python3.12/datetime.py +9 -0
  386. package/python/lib/python3.12/dbm/__init__.py +190 -0
  387. package/python/lib/python3.12/dbm/dumb.py +317 -0
  388. package/python/lib/python3.12/dbm/gnu.py +3 -0
  389. package/python/lib/python3.12/dbm/ndbm.py +3 -0
  390. package/python/lib/python3.12/decimal.py +108 -0
  391. package/python/lib/python3.12/difflib.py +2056 -0
  392. package/python/lib/python3.12/dis.py +805 -0
  393. package/python/lib/python3.12/doctest.py +2845 -0
  394. package/python/lib/python3.12/email/__init__.py +61 -0
  395. package/python/lib/python3.12/email/__pycache__/__init__.cpython-312.pyc +0 -0
  396. package/python/lib/python3.12/email/__pycache__/_encoded_words.cpython-312.pyc +0 -0
  397. package/python/lib/python3.12/email/__pycache__/_parseaddr.cpython-312.pyc +0 -0
  398. package/python/lib/python3.12/email/__pycache__/_policybase.cpython-312.pyc +0 -0
  399. package/python/lib/python3.12/email/__pycache__/base64mime.cpython-312.pyc +0 -0
  400. package/python/lib/python3.12/email/__pycache__/charset.cpython-312.pyc +0 -0
  401. package/python/lib/python3.12/email/__pycache__/encoders.cpython-312.pyc +0 -0
  402. package/python/lib/python3.12/email/__pycache__/errors.cpython-312.pyc +0 -0
  403. package/python/lib/python3.12/email/__pycache__/feedparser.cpython-312.pyc +0 -0
  404. package/python/lib/python3.12/email/__pycache__/header.cpython-312.pyc +0 -0
  405. package/python/lib/python3.12/email/__pycache__/iterators.cpython-312.pyc +0 -0
  406. package/python/lib/python3.12/email/__pycache__/message.cpython-312.pyc +0 -0
  407. package/python/lib/python3.12/email/__pycache__/parser.cpython-312.pyc +0 -0
  408. package/python/lib/python3.12/email/__pycache__/quoprimime.cpython-312.pyc +0 -0
  409. package/python/lib/python3.12/email/__pycache__/utils.cpython-312.pyc +0 -0
  410. package/python/lib/python3.12/email/_encoded_words.py +233 -0
  411. package/python/lib/python3.12/email/_header_value_parser.py +3108 -0
  412. package/python/lib/python3.12/email/_parseaddr.py +557 -0
  413. package/python/lib/python3.12/email/_policybase.py +382 -0
  414. package/python/lib/python3.12/email/architecture.rst +216 -0
  415. package/python/lib/python3.12/email/base64mime.py +115 -0
  416. package/python/lib/python3.12/email/charset.py +398 -0
  417. package/python/lib/python3.12/email/contentmanager.py +251 -0
  418. package/python/lib/python3.12/email/encoders.py +65 -0
  419. package/python/lib/python3.12/email/errors.py +117 -0
  420. package/python/lib/python3.12/email/feedparser.py +534 -0
  421. package/python/lib/python3.12/email/generator.py +530 -0
  422. package/python/lib/python3.12/email/header.py +573 -0
  423. package/python/lib/python3.12/email/headerregistry.py +604 -0
  424. package/python/lib/python3.12/email/iterators.py +68 -0
  425. package/python/lib/python3.12/email/message.py +1215 -0
  426. package/python/lib/python3.12/email/mime/__init__.py +0 -0
  427. package/python/lib/python3.12/email/mime/application.py +37 -0
  428. package/python/lib/python3.12/email/mime/audio.py +100 -0
  429. package/python/lib/python3.12/email/mime/base.py +29 -0
  430. package/python/lib/python3.12/email/mime/image.py +152 -0
  431. package/python/lib/python3.12/email/mime/message.py +33 -0
  432. package/python/lib/python3.12/email/mime/multipart.py +47 -0
  433. package/python/lib/python3.12/email/mime/nonmultipart.py +21 -0
  434. package/python/lib/python3.12/email/mime/text.py +40 -0
  435. package/python/lib/python3.12/email/parser.py +127 -0
  436. package/python/lib/python3.12/email/policy.py +232 -0
  437. package/python/lib/python3.12/email/quoprimime.py +300 -0
  438. package/python/lib/python3.12/email/utils.py +486 -0
  439. package/python/lib/python3.12/encodings/__init__.py +174 -0
  440. package/python/lib/python3.12/encodings/__pycache__/__init__.cpython-312.pyc +0 -0
  441. package/python/lib/python3.12/encodings/__pycache__/aliases.cpython-312.pyc +0 -0
  442. package/python/lib/python3.12/encodings/__pycache__/utf_8.cpython-312.pyc +0 -0
  443. package/python/lib/python3.12/encodings/aliases.py +551 -0
  444. package/python/lib/python3.12/encodings/ascii.py +50 -0
  445. package/python/lib/python3.12/encodings/base64_codec.py +55 -0
  446. package/python/lib/python3.12/encodings/big5.py +39 -0
  447. package/python/lib/python3.12/encodings/big5hkscs.py +39 -0
  448. package/python/lib/python3.12/encodings/bz2_codec.py +78 -0
  449. package/python/lib/python3.12/encodings/charmap.py +69 -0
  450. package/python/lib/python3.12/encodings/cp037.py +307 -0
  451. package/python/lib/python3.12/encodings/cp1006.py +307 -0
  452. package/python/lib/python3.12/encodings/cp1026.py +307 -0
  453. package/python/lib/python3.12/encodings/cp1125.py +698 -0
  454. package/python/lib/python3.12/encodings/cp1140.py +307 -0
  455. package/python/lib/python3.12/encodings/cp1250.py +307 -0
  456. package/python/lib/python3.12/encodings/cp1251.py +307 -0
  457. package/python/lib/python3.12/encodings/cp1252.py +307 -0
  458. package/python/lib/python3.12/encodings/cp1253.py +307 -0
  459. package/python/lib/python3.12/encodings/cp1254.py +307 -0
  460. package/python/lib/python3.12/encodings/cp1255.py +307 -0
  461. package/python/lib/python3.12/encodings/cp1256.py +307 -0
  462. package/python/lib/python3.12/encodings/cp1257.py +307 -0
  463. package/python/lib/python3.12/encodings/cp1258.py +307 -0
  464. package/python/lib/python3.12/encodings/cp273.py +307 -0
  465. package/python/lib/python3.12/encodings/cp424.py +307 -0
  466. package/python/lib/python3.12/encodings/cp437.py +698 -0
  467. package/python/lib/python3.12/encodings/cp500.py +307 -0
  468. package/python/lib/python3.12/encodings/cp720.py +309 -0
  469. package/python/lib/python3.12/encodings/cp737.py +698 -0
  470. package/python/lib/python3.12/encodings/cp775.py +697 -0
  471. package/python/lib/python3.12/encodings/cp850.py +698 -0
  472. package/python/lib/python3.12/encodings/cp852.py +698 -0
  473. package/python/lib/python3.12/encodings/cp855.py +698 -0
  474. package/python/lib/python3.12/encodings/cp856.py +307 -0
  475. package/python/lib/python3.12/encodings/cp857.py +694 -0
  476. package/python/lib/python3.12/encodings/cp858.py +698 -0
  477. package/python/lib/python3.12/encodings/cp860.py +698 -0
  478. package/python/lib/python3.12/encodings/cp861.py +698 -0
  479. package/python/lib/python3.12/encodings/cp862.py +698 -0
  480. package/python/lib/python3.12/encodings/cp863.py +698 -0
  481. package/python/lib/python3.12/encodings/cp864.py +690 -0
  482. package/python/lib/python3.12/encodings/cp865.py +698 -0
  483. package/python/lib/python3.12/encodings/cp866.py +698 -0
  484. package/python/lib/python3.12/encodings/cp869.py +689 -0
  485. package/python/lib/python3.12/encodings/cp874.py +307 -0
  486. package/python/lib/python3.12/encodings/cp875.py +307 -0
  487. package/python/lib/python3.12/encodings/cp932.py +39 -0
  488. package/python/lib/python3.12/encodings/cp949.py +39 -0
  489. package/python/lib/python3.12/encodings/cp950.py +39 -0
  490. package/python/lib/python3.12/encodings/euc_jis_2004.py +39 -0
  491. package/python/lib/python3.12/encodings/euc_jisx0213.py +39 -0
  492. package/python/lib/python3.12/encodings/euc_jp.py +39 -0
  493. package/python/lib/python3.12/encodings/euc_kr.py +39 -0
  494. package/python/lib/python3.12/encodings/gb18030.py +39 -0
  495. package/python/lib/python3.12/encodings/gb2312.py +39 -0
  496. package/python/lib/python3.12/encodings/gbk.py +39 -0
  497. package/python/lib/python3.12/encodings/hex_codec.py +55 -0
  498. package/python/lib/python3.12/encodings/hp_roman8.py +314 -0
  499. package/python/lib/python3.12/encodings/hz.py +39 -0
  500. package/python/lib/python3.12/encodings/idna.py +317 -0
  501. package/python/lib/python3.12/encodings/iso2022_jp.py +39 -0
  502. package/python/lib/python3.12/encodings/iso2022_jp_1.py +39 -0
  503. package/python/lib/python3.12/encodings/iso2022_jp_2.py +39 -0
  504. package/python/lib/python3.12/encodings/iso2022_jp_2004.py +39 -0
  505. package/python/lib/python3.12/encodings/iso2022_jp_3.py +39 -0
  506. package/python/lib/python3.12/encodings/iso2022_jp_ext.py +39 -0
  507. package/python/lib/python3.12/encodings/iso2022_kr.py +39 -0
  508. package/python/lib/python3.12/encodings/iso8859_1.py +307 -0
  509. package/python/lib/python3.12/encodings/iso8859_10.py +307 -0
  510. package/python/lib/python3.12/encodings/iso8859_11.py +307 -0
  511. package/python/lib/python3.12/encodings/iso8859_13.py +307 -0
  512. package/python/lib/python3.12/encodings/iso8859_14.py +307 -0
  513. package/python/lib/python3.12/encodings/iso8859_15.py +307 -0
  514. package/python/lib/python3.12/encodings/iso8859_16.py +307 -0
  515. package/python/lib/python3.12/encodings/iso8859_2.py +307 -0
  516. package/python/lib/python3.12/encodings/iso8859_3.py +307 -0
  517. package/python/lib/python3.12/encodings/iso8859_4.py +307 -0
  518. package/python/lib/python3.12/encodings/iso8859_5.py +307 -0
  519. package/python/lib/python3.12/encodings/iso8859_6.py +307 -0
  520. package/python/lib/python3.12/encodings/iso8859_7.py +307 -0
  521. package/python/lib/python3.12/encodings/iso8859_8.py +307 -0
  522. package/python/lib/python3.12/encodings/iso8859_9.py +307 -0
  523. package/python/lib/python3.12/encodings/johab.py +39 -0
  524. package/python/lib/python3.12/encodings/koi8_r.py +307 -0
  525. package/python/lib/python3.12/encodings/koi8_t.py +308 -0
  526. package/python/lib/python3.12/encodings/koi8_u.py +307 -0
  527. package/python/lib/python3.12/encodings/kz1048.py +307 -0
  528. package/python/lib/python3.12/encodings/latin_1.py +50 -0
  529. package/python/lib/python3.12/encodings/mac_arabic.py +698 -0
  530. package/python/lib/python3.12/encodings/mac_croatian.py +307 -0
  531. package/python/lib/python3.12/encodings/mac_cyrillic.py +307 -0
  532. package/python/lib/python3.12/encodings/mac_farsi.py +307 -0
  533. package/python/lib/python3.12/encodings/mac_greek.py +307 -0
  534. package/python/lib/python3.12/encodings/mac_iceland.py +307 -0
  535. package/python/lib/python3.12/encodings/mac_latin2.py +312 -0
  536. package/python/lib/python3.12/encodings/mac_roman.py +307 -0
  537. package/python/lib/python3.12/encodings/mac_romanian.py +307 -0
  538. package/python/lib/python3.12/encodings/mac_turkish.py +307 -0
  539. package/python/lib/python3.12/encodings/mbcs.py +47 -0
  540. package/python/lib/python3.12/encodings/oem.py +41 -0
  541. package/python/lib/python3.12/encodings/palmos.py +308 -0
  542. package/python/lib/python3.12/encodings/ptcp154.py +312 -0
  543. package/python/lib/python3.12/encodings/punycode.py +237 -0
  544. package/python/lib/python3.12/encodings/quopri_codec.py +56 -0
  545. package/python/lib/python3.12/encodings/raw_unicode_escape.py +46 -0
  546. package/python/lib/python3.12/encodings/rot_13.py +113 -0
  547. package/python/lib/python3.12/encodings/shift_jis.py +39 -0
  548. package/python/lib/python3.12/encodings/shift_jis_2004.py +39 -0
  549. package/python/lib/python3.12/encodings/shift_jisx0213.py +39 -0
  550. package/python/lib/python3.12/encodings/tis_620.py +307 -0
  551. package/python/lib/python3.12/encodings/undefined.py +49 -0
  552. package/python/lib/python3.12/encodings/unicode_escape.py +46 -0
  553. package/python/lib/python3.12/encodings/utf_16.py +155 -0
  554. package/python/lib/python3.12/encodings/utf_16_be.py +42 -0
  555. package/python/lib/python3.12/encodings/utf_16_le.py +42 -0
  556. package/python/lib/python3.12/encodings/utf_32.py +150 -0
  557. package/python/lib/python3.12/encodings/utf_32_be.py +37 -0
  558. package/python/lib/python3.12/encodings/utf_32_le.py +37 -0
  559. package/python/lib/python3.12/encodings/utf_7.py +38 -0
  560. package/python/lib/python3.12/encodings/utf_8.py +42 -0
  561. package/python/lib/python3.12/encodings/utf_8_sig.py +130 -0
  562. package/python/lib/python3.12/encodings/uu_codec.py +103 -0
  563. package/python/lib/python3.12/encodings/zlib_codec.py +77 -0
  564. package/python/lib/python3.12/ensurepip/__init__.py +291 -0
  565. package/python/lib/python3.12/ensurepip/__main__.py +5 -0
  566. package/python/lib/python3.12/ensurepip/_bundled/pip-25.0.1-py3-none-any.whl +0 -0
  567. package/python/lib/python3.12/ensurepip/_uninstall.py +31 -0
  568. package/python/lib/python3.12/enum.py +2108 -0
  569. package/python/lib/python3.12/filecmp.py +315 -0
  570. package/python/lib/python3.12/fileinput.py +442 -0
  571. package/python/lib/python3.12/fnmatch.py +185 -0
  572. package/python/lib/python3.12/fractions.py +990 -0
  573. package/python/lib/python3.12/ftplib.py +966 -0
  574. package/python/lib/python3.12/functools.py +1009 -0
  575. package/python/lib/python3.12/genericpath.py +176 -0
  576. package/python/lib/python3.12/getopt.py +215 -0
  577. package/python/lib/python3.12/getpass.py +185 -0
  578. package/python/lib/python3.12/gettext.py +646 -0
  579. package/python/lib/python3.12/glob.py +252 -0
  580. package/python/lib/python3.12/graphlib.py +250 -0
  581. package/python/lib/python3.12/gzip.py +711 -0
  582. package/python/lib/python3.12/hashlib.py +253 -0
  583. package/python/lib/python3.12/heapq.py +603 -0
  584. package/python/lib/python3.12/hmac.py +219 -0
  585. package/python/lib/python3.12/html/__init__.py +132 -0
  586. package/python/lib/python3.12/html/entities.py +2513 -0
  587. package/python/lib/python3.12/html/parser.py +535 -0
  588. package/python/lib/python3.12/http/__init__.py +200 -0
  589. package/python/lib/python3.12/http/__pycache__/__init__.cpython-312.pyc +0 -0
  590. package/python/lib/python3.12/http/__pycache__/client.cpython-312.pyc +0 -0
  591. package/python/lib/python3.12/http/client.py +1570 -0
  592. package/python/lib/python3.12/http/cookiejar.py +2121 -0
  593. package/python/lib/python3.12/http/cookies.py +615 -0
  594. package/python/lib/python3.12/http/server.py +1335 -0
  595. package/python/lib/python3.12/imaplib.py +1641 -0
  596. package/python/lib/python3.12/imghdr.py +180 -0
  597. package/python/lib/python3.12/importlib/__init__.py +138 -0
  598. package/python/lib/python3.12/importlib/_abc.py +39 -0
  599. package/python/lib/python3.12/importlib/_bootstrap.py +1551 -0
  600. package/python/lib/python3.12/importlib/_bootstrap_external.py +1749 -0
  601. package/python/lib/python3.12/importlib/abc.py +239 -0
  602. package/python/lib/python3.12/importlib/machinery.py +20 -0
  603. package/python/lib/python3.12/importlib/metadata/__init__.py +966 -0
  604. package/python/lib/python3.12/importlib/metadata/_adapters.py +89 -0
  605. package/python/lib/python3.12/importlib/metadata/_collections.py +30 -0
  606. package/python/lib/python3.12/importlib/metadata/_functools.py +104 -0
  607. package/python/lib/python3.12/importlib/metadata/_itertools.py +73 -0
  608. package/python/lib/python3.12/importlib/metadata/_meta.py +63 -0
  609. package/python/lib/python3.12/importlib/metadata/_text.py +99 -0
  610. package/python/lib/python3.12/importlib/readers.py +12 -0
  611. package/python/lib/python3.12/importlib/resources/__init__.py +38 -0
  612. package/python/lib/python3.12/importlib/resources/_adapters.py +168 -0
  613. package/python/lib/python3.12/importlib/resources/_common.py +208 -0
  614. package/python/lib/python3.12/importlib/resources/_itertools.py +38 -0
  615. package/python/lib/python3.12/importlib/resources/_legacy.py +98 -0
  616. package/python/lib/python3.12/importlib/resources/abc.py +173 -0
  617. package/python/lib/python3.12/importlib/resources/readers.py +146 -0
  618. package/python/lib/python3.12/importlib/resources/simple.py +106 -0
  619. package/python/lib/python3.12/importlib/simple.py +14 -0
  620. package/python/lib/python3.12/importlib/util.py +270 -0
  621. package/python/lib/python3.12/inspect.py +3433 -0
  622. package/python/lib/python3.12/io.py +99 -0
  623. package/python/lib/python3.12/ipaddress.py +2430 -0
  624. package/python/lib/python3.12/json/__init__.py +359 -0
  625. package/python/lib/python3.12/json/__pycache__/__init__.cpython-312.pyc +0 -0
  626. package/python/lib/python3.12/json/__pycache__/decoder.cpython-312.pyc +0 -0
  627. package/python/lib/python3.12/json/__pycache__/encoder.cpython-312.pyc +0 -0
  628. package/python/lib/python3.12/json/__pycache__/scanner.cpython-312.pyc +0 -0
  629. package/python/lib/python3.12/json/decoder.py +357 -0
  630. package/python/lib/python3.12/json/encoder.py +443 -0
  631. package/python/lib/python3.12/json/scanner.py +73 -0
  632. package/python/lib/python3.12/json/tool.py +85 -0
  633. package/python/lib/python3.12/keyword.py +64 -0
  634. package/python/lib/python3.12/lib-dynload/.empty +0 -0
  635. package/python/lib/python3.12/lib-dynload/_crypt.cpython-312-darwin.so +0 -0
  636. package/python/lib/python3.12/lib-dynload/_dbm.cpython-312-darwin.so +0 -0
  637. package/python/lib/python3.12/linecache.py +185 -0
  638. package/python/lib/python3.12/locale.py +1779 -0
  639. package/python/lib/python3.12/logging/__init__.py +2345 -0
  640. package/python/lib/python3.12/logging/config.py +1078 -0
  641. package/python/lib/python3.12/logging/handlers.py +1624 -0
  642. package/python/lib/python3.12/lzma.py +356 -0
  643. package/python/lib/python3.12/mailbox.py +2153 -0
  644. package/python/lib/python3.12/mailcap.py +302 -0
  645. package/python/lib/python3.12/mimetypes.py +656 -0
  646. package/python/lib/python3.12/modulefinder.py +666 -0
  647. package/python/lib/python3.12/multiprocessing/__init__.py +37 -0
  648. package/python/lib/python3.12/multiprocessing/connection.py +1178 -0
  649. package/python/lib/python3.12/multiprocessing/context.py +377 -0
  650. package/python/lib/python3.12/multiprocessing/dummy/__init__.py +126 -0
  651. package/python/lib/python3.12/multiprocessing/dummy/connection.py +75 -0
  652. package/python/lib/python3.12/multiprocessing/forkserver.py +350 -0
  653. package/python/lib/python3.12/multiprocessing/heap.py +337 -0
  654. package/python/lib/python3.12/multiprocessing/managers.py +1387 -0
  655. package/python/lib/python3.12/multiprocessing/pool.py +957 -0
  656. package/python/lib/python3.12/multiprocessing/popen_fork.py +83 -0
  657. package/python/lib/python3.12/multiprocessing/popen_forkserver.py +74 -0
  658. package/python/lib/python3.12/multiprocessing/popen_spawn_posix.py +72 -0
  659. package/python/lib/python3.12/multiprocessing/popen_spawn_win32.py +145 -0
  660. package/python/lib/python3.12/multiprocessing/process.py +439 -0
  661. package/python/lib/python3.12/multiprocessing/queues.py +401 -0
  662. package/python/lib/python3.12/multiprocessing/reduction.py +281 -0
  663. package/python/lib/python3.12/multiprocessing/resource_sharer.py +154 -0
  664. package/python/lib/python3.12/multiprocessing/resource_tracker.py +294 -0
  665. package/python/lib/python3.12/multiprocessing/shared_memory.py +534 -0
  666. package/python/lib/python3.12/multiprocessing/sharedctypes.py +240 -0
  667. package/python/lib/python3.12/multiprocessing/spawn.py +307 -0
  668. package/python/lib/python3.12/multiprocessing/synchronize.py +404 -0
  669. package/python/lib/python3.12/multiprocessing/util.py +494 -0
  670. package/python/lib/python3.12/netrc.py +192 -0
  671. package/python/lib/python3.12/nntplib.py +1093 -0
  672. package/python/lib/python3.12/ntpath.py +869 -0
  673. package/python/lib/python3.12/nturl2path.py +69 -0
  674. package/python/lib/python3.12/numbers.py +418 -0
  675. package/python/lib/python3.12/opcode.py +493 -0
  676. package/python/lib/python3.12/operator.py +467 -0
  677. package/python/lib/python3.12/optparse.py +1681 -0
  678. package/python/lib/python3.12/os.py +1159 -0
  679. package/python/lib/python3.12/pathlib.py +1435 -0
  680. package/python/lib/python3.12/pdb.py +1987 -0
  681. package/python/lib/python3.12/pickle.py +1866 -0
  682. package/python/lib/python3.12/pickletools.py +2904 -0
  683. package/python/lib/python3.12/pipes.py +250 -0
  684. package/python/lib/python3.12/pkgutil.py +529 -0
  685. package/python/lib/python3.12/platform.py +1359 -0
  686. package/python/lib/python3.12/plistlib.py +920 -0
  687. package/python/lib/python3.12/poplib.py +478 -0
  688. package/python/lib/python3.12/posixpath.py +577 -0
  689. package/python/lib/python3.12/pprint.py +658 -0
  690. package/python/lib/python3.12/profile.py +615 -0
  691. package/python/lib/python3.12/pstats.py +778 -0
  692. package/python/lib/python3.12/pty.py +211 -0
  693. package/python/lib/python3.12/py_compile.py +212 -0
  694. package/python/lib/python3.12/pyclbr.py +314 -0
  695. package/python/lib/python3.12/pydoc.py +2950 -0
  696. package/python/lib/python3.12/pydoc_data/__init__.py +0 -0
  697. package/python/lib/python3.12/pydoc_data/_pydoc.css +112 -0
  698. package/python/lib/python3.12/pydoc_data/topics.py +12500 -0
  699. package/python/lib/python3.12/queue.py +326 -0
  700. package/python/lib/python3.12/quopri.py +237 -0
  701. package/python/lib/python3.12/random.py +996 -0
  702. package/python/lib/python3.12/re/__init__.py +385 -0
  703. package/python/lib/python3.12/re/__pycache__/__init__.cpython-312.pyc +0 -0
  704. package/python/lib/python3.12/re/__pycache__/_casefix.cpython-312.pyc +0 -0
  705. package/python/lib/python3.12/re/__pycache__/_compiler.cpython-312.pyc +0 -0
  706. package/python/lib/python3.12/re/__pycache__/_constants.cpython-312.pyc +0 -0
  707. package/python/lib/python3.12/re/__pycache__/_parser.cpython-312.pyc +0 -0
  708. package/python/lib/python3.12/re/_casefix.py +106 -0
  709. package/python/lib/python3.12/re/_compiler.py +770 -0
  710. package/python/lib/python3.12/re/_constants.py +220 -0
  711. package/python/lib/python3.12/re/_parser.py +1080 -0
  712. package/python/lib/python3.12/reprlib.py +214 -0
  713. package/python/lib/python3.12/rlcompleter.py +219 -0
  714. package/python/lib/python3.12/runpy.py +319 -0
  715. package/python/lib/python3.12/sched.py +167 -0
  716. package/python/lib/python3.12/secrets.py +71 -0
  717. package/python/lib/python3.12/selectors.py +623 -0
  718. package/python/lib/python3.12/shelve.py +243 -0
  719. package/python/lib/python3.12/shlex.py +345 -0
  720. package/python/lib/python3.12/shutil.py +1566 -0
  721. package/python/lib/python3.12/signal.py +94 -0
  722. package/python/lib/python3.12/site-packages/README.txt +2 -0
  723. package/python/lib/python3.12/site-packages/pip/__init__.py +13 -0
  724. package/python/lib/python3.12/site-packages/pip/__main__.py +24 -0
  725. package/python/lib/python3.12/site-packages/pip/__pip-runner__.py +50 -0
  726. package/python/lib/python3.12/site-packages/pip/_internal/__init__.py +18 -0
  727. package/python/lib/python3.12/site-packages/pip/_internal/build_env.py +606 -0
  728. package/python/lib/python3.12/site-packages/pip/_internal/cache.py +291 -0
  729. package/python/lib/python3.12/site-packages/pip/_internal/cli/__init__.py +3 -0
  730. package/python/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py +184 -0
  731. package/python/lib/python3.12/site-packages/pip/_internal/cli/base_command.py +264 -0
  732. package/python/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py +1298 -0
  733. package/python/lib/python3.12/site-packages/pip/_internal/cli/command_context.py +28 -0
  734. package/python/lib/python3.12/site-packages/pip/_internal/cli/index_command.py +212 -0
  735. package/python/lib/python3.12/site-packages/pip/_internal/cli/main.py +85 -0
  736. package/python/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py +136 -0
  737. package/python/lib/python3.12/site-packages/pip/_internal/cli/parser.py +358 -0
  738. package/python/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py +153 -0
  739. package/python/lib/python3.12/site-packages/pip/_internal/cli/req_command.py +472 -0
  740. package/python/lib/python3.12/site-packages/pip/_internal/cli/spinners.py +235 -0
  741. package/python/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py +6 -0
  742. package/python/lib/python3.12/site-packages/pip/_internal/commands/__init__.py +139 -0
  743. package/python/lib/python3.12/site-packages/pip/_internal/commands/cache.py +255 -0
  744. package/python/lib/python3.12/site-packages/pip/_internal/commands/check.py +66 -0
  745. package/python/lib/python3.12/site-packages/pip/_internal/commands/completion.py +136 -0
  746. package/python/lib/python3.12/site-packages/pip/_internal/commands/configuration.py +288 -0
  747. package/python/lib/python3.12/site-packages/pip/_internal/commands/debug.py +196 -0
  748. package/python/lib/python3.12/site-packages/pip/_internal/commands/download.py +146 -0
  749. package/python/lib/python3.12/site-packages/pip/_internal/commands/freeze.py +107 -0
  750. package/python/lib/python3.12/site-packages/pip/_internal/commands/hash.py +58 -0
  751. package/python/lib/python3.12/site-packages/pip/_internal/commands/help.py +40 -0
  752. package/python/lib/python3.12/site-packages/pip/_internal/commands/index.py +166 -0
  753. package/python/lib/python3.12/site-packages/pip/_internal/commands/inspect.py +92 -0
  754. package/python/lib/python3.12/site-packages/pip/_internal/commands/install.py +904 -0
  755. package/python/lib/python3.12/site-packages/pip/_internal/commands/list.py +403 -0
  756. package/python/lib/python3.12/site-packages/pip/_internal/commands/lock.py +175 -0
  757. package/python/lib/python3.12/site-packages/pip/_internal/commands/search.py +178 -0
  758. package/python/lib/python3.12/site-packages/pip/_internal/commands/show.py +231 -0
  759. package/python/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py +113 -0
  760. package/python/lib/python3.12/site-packages/pip/_internal/commands/wheel.py +171 -0
  761. package/python/lib/python3.12/site-packages/pip/_internal/configuration.py +396 -0
  762. package/python/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py +21 -0
  763. package/python/lib/python3.12/site-packages/pip/_internal/distributions/base.py +55 -0
  764. package/python/lib/python3.12/site-packages/pip/_internal/distributions/installed.py +33 -0
  765. package/python/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py +164 -0
  766. package/python/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py +44 -0
  767. package/python/lib/python3.12/site-packages/pip/_internal/exceptions.py +971 -0
  768. package/python/lib/python3.12/site-packages/pip/_internal/index/__init__.py +1 -0
  769. package/python/lib/python3.12/site-packages/pip/_internal/index/collector.py +488 -0
  770. package/python/lib/python3.12/site-packages/pip/_internal/index/package_finder.py +1113 -0
  771. package/python/lib/python3.12/site-packages/pip/_internal/index/sources.py +287 -0
  772. package/python/lib/python3.12/site-packages/pip/_internal/locations/__init__.py +438 -0
  773. package/python/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py +173 -0
  774. package/python/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py +218 -0
  775. package/python/lib/python3.12/site-packages/pip/_internal/locations/base.py +82 -0
  776. package/python/lib/python3.12/site-packages/pip/_internal/main.py +12 -0
  777. package/python/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py +169 -0
  778. package/python/lib/python3.12/site-packages/pip/_internal/metadata/_json.py +87 -0
  779. package/python/lib/python3.12/site-packages/pip/_internal/metadata/base.py +685 -0
  780. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  781. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py +87 -0
  782. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py +235 -0
  783. package/python/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py +143 -0
  784. package/python/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py +298 -0
  785. package/python/lib/python3.12/site-packages/pip/_internal/models/__init__.py +1 -0
  786. package/python/lib/python3.12/site-packages/pip/_internal/models/candidate.py +23 -0
  787. package/python/lib/python3.12/site-packages/pip/_internal/models/direct_url.py +42 -0
  788. package/python/lib/python3.12/site-packages/pip/_internal/models/format_control.py +78 -0
  789. package/python/lib/python3.12/site-packages/pip/_internal/models/index.py +28 -0
  790. package/python/lib/python3.12/site-packages/pip/_internal/models/installation_report.py +57 -0
  791. package/python/lib/python3.12/site-packages/pip/_internal/models/link.py +617 -0
  792. package/python/lib/python3.12/site-packages/pip/_internal/models/release_control.py +91 -0
  793. package/python/lib/python3.12/site-packages/pip/_internal/models/scheme.py +23 -0
  794. package/python/lib/python3.12/site-packages/pip/_internal/models/search_scope.py +124 -0
  795. package/python/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py +36 -0
  796. package/python/lib/python3.12/site-packages/pip/_internal/models/target_python.py +122 -0
  797. package/python/lib/python3.12/site-packages/pip/_internal/models/wheel.py +80 -0
  798. package/python/lib/python3.12/site-packages/pip/_internal/network/__init__.py +1 -0
  799. package/python/lib/python3.12/site-packages/pip/_internal/network/auth.py +570 -0
  800. package/python/lib/python3.12/site-packages/pip/_internal/network/cache.py +128 -0
  801. package/python/lib/python3.12/site-packages/pip/_internal/network/download.py +340 -0
  802. package/python/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py +215 -0
  803. package/python/lib/python3.12/site-packages/pip/_internal/network/session.py +537 -0
  804. package/python/lib/python3.12/site-packages/pip/_internal/network/utils.py +98 -0
  805. package/python/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py +61 -0
  806. package/python/lib/python3.12/site-packages/pip/_internal/operations/__init__.py +0 -0
  807. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  808. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py +140 -0
  809. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py +38 -0
  810. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py +41 -0
  811. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py +38 -0
  812. package/python/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py +47 -0
  813. package/python/lib/python3.12/site-packages/pip/_internal/operations/check.py +175 -0
  814. package/python/lib/python3.12/site-packages/pip/_internal/operations/freeze.py +259 -0
  815. package/python/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py +1 -0
  816. package/python/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py +759 -0
  817. package/python/lib/python3.12/site-packages/pip/_internal/operations/prepare.py +751 -0
  818. package/python/lib/python3.12/site-packages/pip/_internal/pyproject.py +123 -0
  819. package/python/lib/python3.12/site-packages/pip/_internal/req/__init__.py +103 -0
  820. package/python/lib/python3.12/site-packages/pip/_internal/req/constructors.py +677 -0
  821. package/python/lib/python3.12/site-packages/pip/_internal/req/pep723.py +41 -0
  822. package/python/lib/python3.12/site-packages/pip/_internal/req/req_dependency_group.py +86 -0
  823. package/python/lib/python3.12/site-packages/pip/_internal/req/req_file.py +622 -0
  824. package/python/lib/python3.12/site-packages/pip/_internal/req/req_install.py +838 -0
  825. package/python/lib/python3.12/site-packages/pip/_internal/req/req_set.py +81 -0
  826. package/python/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py +639 -0
  827. package/python/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py +0 -0
  828. package/python/lib/python3.12/site-packages/pip/_internal/resolution/base.py +20 -0
  829. package/python/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  830. package/python/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py +598 -0
  831. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  832. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py +164 -0
  833. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py +599 -0
  834. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py +914 -0
  835. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +166 -0
  836. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py +306 -0
  837. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py +98 -0
  838. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py +251 -0
  839. package/python/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py +332 -0
  840. package/python/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py +246 -0
  841. package/python/lib/python3.12/site-packages/pip/_internal/utils/__init__.py +0 -0
  842. package/python/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  843. package/python/lib/python3.12/site-packages/pip/_internal/utils/_log.py +38 -0
  844. package/python/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py +52 -0
  845. package/python/lib/python3.12/site-packages/pip/_internal/utils/compat.py +85 -0
  846. package/python/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py +201 -0
  847. package/python/lib/python3.12/site-packages/pip/_internal/utils/datetime.py +28 -0
  848. package/python/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py +139 -0
  849. package/python/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py +92 -0
  850. package/python/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py +81 -0
  851. package/python/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py +88 -0
  852. package/python/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py +201 -0
  853. package/python/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py +24 -0
  854. package/python/lib/python3.12/site-packages/pip/_internal/utils/glibc.py +102 -0
  855. package/python/lib/python3.12/site-packages/pip/_internal/utils/hashes.py +150 -0
  856. package/python/lib/python3.12/site-packages/pip/_internal/utils/logging.py +396 -0
  857. package/python/lib/python3.12/site-packages/pip/_internal/utils/misc.py +771 -0
  858. package/python/lib/python3.12/site-packages/pip/_internal/utils/packaging.py +44 -0
  859. package/python/lib/python3.12/site-packages/pip/_internal/utils/pylock.py +283 -0
  860. package/python/lib/python3.12/site-packages/pip/_internal/utils/retry.py +45 -0
  861. package/python/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py +248 -0
  862. package/python/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py +294 -0
  863. package/python/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py +381 -0
  864. package/python/lib/python3.12/site-packages/pip/_internal/utils/urls.py +55 -0
  865. package/python/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py +105 -0
  866. package/python/lib/python3.12/site-packages/pip/_internal/utils/wheel.py +132 -0
  867. package/python/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py +15 -0
  868. package/python/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py +130 -0
  869. package/python/lib/python3.12/site-packages/pip/_internal/vcs/git.py +571 -0
  870. package/python/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py +186 -0
  871. package/python/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py +335 -0
  872. package/python/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py +695 -0
  873. package/python/lib/python3.12/site-packages/pip/_internal/wheel_builder.py +261 -0
  874. package/python/lib/python3.12/site-packages/pip/_vendor/README.rst +178 -0
  875. package/python/lib/python3.12/site-packages/pip/_vendor/__init__.py +117 -0
  876. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/LICENSE.txt +13 -0
  877. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py +32 -0
  878. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  879. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py +167 -0
  880. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
  881. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  882. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +145 -0
  883. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  884. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py +511 -0
  885. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py +121 -0
  886. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
  887. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  888. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  889. package/python/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  890. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/LICENSE +20 -0
  891. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  892. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  893. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem +4494 -0
  894. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/core.py +83 -0
  895. package/python/lib/python3.12/site-packages/pip/_vendor/certifi/py.typed +0 -0
  896. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/LICENSE.txt +284 -0
  897. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  898. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py +1137 -0
  899. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py +358 -0
  900. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py +447 -0
  901. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  902. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  903. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  904. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/util.py +1984 -0
  905. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  906. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  907. package/python/lib/python3.12/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  908. package/python/lib/python3.12/site-packages/pip/_vendor/distro/LICENSE +202 -0
  909. package/python/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py +54 -0
  910. package/python/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py +4 -0
  911. package/python/lib/python3.12/site-packages/pip/_vendor/distro/distro.py +1403 -0
  912. package/python/lib/python3.12/site-packages/pip/_vendor/distro/py.typed +0 -0
  913. package/python/lib/python3.12/site-packages/pip/_vendor/idna/LICENSE.md +31 -0
  914. package/python/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py +45 -0
  915. package/python/lib/python3.12/site-packages/pip/_vendor/idna/codec.py +122 -0
  916. package/python/lib/python3.12/site-packages/pip/_vendor/idna/compat.py +15 -0
  917. package/python/lib/python3.12/site-packages/pip/_vendor/idna/core.py +437 -0
  918. package/python/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py +4309 -0
  919. package/python/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py +57 -0
  920. package/python/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py +1 -0
  921. package/python/lib/python3.12/site-packages/pip/_vendor/idna/py.typed +0 -0
  922. package/python/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py +8841 -0
  923. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/COPYING +14 -0
  924. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
  925. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  926. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py +170 -0
  927. package/python/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
  928. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE +3 -0
  929. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE.APACHE +177 -0
  930. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/LICENSE.BSD +23 -0
  931. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py +15 -0
  932. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_elffile.py +108 -0
  933. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py +262 -0
  934. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
  935. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_parser.py +393 -0
  936. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py +33 -0
  937. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py +193 -0
  938. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/dependency_groups.py +302 -0
  939. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/direct_url.py +325 -0
  940. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/errors.py +94 -0
  941. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/__init__.py +186 -0
  942. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py +799 -0
  943. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py +492 -0
  944. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/metadata.py +964 -0
  945. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/py.typed +0 -0
  946. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/pylock.py +905 -0
  947. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py +129 -0
  948. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py +1943 -0
  949. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py +932 -0
  950. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py +296 -0
  951. package/python/lib/python3.12/site-packages/pip/_vendor/packaging/version.py +1231 -0
  952. package/python/lib/python3.12/site-packages/pip/_vendor/pkg_resources/LICENSE +17 -0
  953. package/python/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
  954. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/LICENSE +21 -0
  955. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
  956. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
  957. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py +249 -0
  958. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py +299 -0
  959. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py +146 -0
  960. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  961. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py +272 -0
  962. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py +34 -0
  963. package/python/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py +278 -0
  964. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/LICENSE +25 -0
  965. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  966. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  967. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/console.py +70 -0
  968. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py +70 -0
  969. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  970. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py +129 -0
  971. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
  972. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  973. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py +963 -0
  974. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  975. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py +602 -0
  976. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py +1201 -0
  977. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  978. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py +72 -0
  979. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  980. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  981. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
  982. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/style.py +203 -0
  983. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
  984. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
  985. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/token.py +214 -0
  986. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  987. package/python/lib/python3.12/site-packages/pip/_vendor/pygments/util.py +324 -0
  988. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/LICENSE +21 -0
  989. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
  990. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
  991. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
  992. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
  993. package/python/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  994. package/python/lib/python3.12/site-packages/pip/_vendor/requests/LICENSE +175 -0
  995. package/python/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py +178 -0
  996. package/python/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py +14 -0
  997. package/python/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py +51 -0
  998. package/python/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py +697 -0
  999. package/python/lib/python3.12/site-packages/pip/_vendor/requests/api.py +157 -0
  1000. package/python/lib/python3.12/site-packages/pip/_vendor/requests/auth.py +314 -0
  1001. package/python/lib/python3.12/site-packages/pip/_vendor/requests/certs.py +18 -0
  1002. package/python/lib/python3.12/site-packages/pip/_vendor/requests/compat.py +90 -0
  1003. package/python/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py +561 -0
  1004. package/python/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py +152 -0
  1005. package/python/lib/python3.12/site-packages/pip/_vendor/requests/help.py +124 -0
  1006. package/python/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py +34 -0
  1007. package/python/lib/python3.12/site-packages/pip/_vendor/requests/models.py +1041 -0
  1008. package/python/lib/python3.12/site-packages/pip/_vendor/requests/packages.py +25 -0
  1009. package/python/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py +834 -0
  1010. package/python/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  1011. package/python/lib/python3.12/site-packages/pip/_vendor/requests/structures.py +99 -0
  1012. package/python/lib/python3.12/site-packages/pip/_vendor/requests/utils.py +1083 -0
  1013. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/LICENSE +13 -0
  1014. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py +27 -0
  1015. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py +196 -0
  1016. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  1017. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py +55 -0
  1018. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +27 -0
  1019. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +47 -0
  1020. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +48 -0
  1021. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +57 -0
  1022. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +627 -0
  1023. package/python/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py +209 -0
  1024. package/python/lib/python3.12/site-packages/pip/_vendor/rich/LICENSE +19 -0
  1025. package/python/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py +177 -0
  1026. package/python/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py +245 -0
  1027. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
  1028. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  1029. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  1030. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  1031. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py +10 -0
  1032. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  1033. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py +268 -0
  1034. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  1035. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py +43 -0
  1036. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  1037. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  1038. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py +17 -0
  1039. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py +153 -0
  1040. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  1041. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py +16 -0
  1042. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py +19 -0
  1043. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
  1044. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py +71 -0
  1045. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  1046. package/python/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py +93 -0
  1047. package/python/lib/python3.12/site-packages/pip/_vendor/rich/abc.py +33 -0
  1048. package/python/lib/python3.12/site-packages/pip/_vendor/rich/align.py +306 -0
  1049. package/python/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py +241 -0
  1050. package/python/lib/python3.12/site-packages/pip/_vendor/rich/bar.py +93 -0
  1051. package/python/lib/python3.12/site-packages/pip/_vendor/rich/box.py +474 -0
  1052. package/python/lib/python3.12/site-packages/pip/_vendor/rich/cells.py +174 -0
  1053. package/python/lib/python3.12/site-packages/pip/_vendor/rich/color.py +621 -0
  1054. package/python/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  1055. package/python/lib/python3.12/site-packages/pip/_vendor/rich/columns.py +187 -0
  1056. package/python/lib/python3.12/site-packages/pip/_vendor/rich/console.py +2680 -0
  1057. package/python/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py +37 -0
  1058. package/python/lib/python3.12/site-packages/pip/_vendor/rich/containers.py +167 -0
  1059. package/python/lib/python3.12/site-packages/pip/_vendor/rich/control.py +219 -0
  1060. package/python/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py +193 -0
  1061. package/python/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py +39 -0
  1062. package/python/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py +91 -0
  1063. package/python/lib/python3.12/site-packages/pip/_vendor/rich/errors.py +34 -0
  1064. package/python/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  1065. package/python/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py +88 -0
  1066. package/python/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  1067. package/python/lib/python3.12/site-packages/pip/_vendor/rich/json.py +139 -0
  1068. package/python/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  1069. package/python/lib/python3.12/site-packages/pip/_vendor/rich/layout.py +442 -0
  1070. package/python/lib/python3.12/site-packages/pip/_vendor/rich/live.py +400 -0
  1071. package/python/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py +106 -0
  1072. package/python/lib/python3.12/site-packages/pip/_vendor/rich/logging.py +297 -0
  1073. package/python/lib/python3.12/site-packages/pip/_vendor/rich/markup.py +251 -0
  1074. package/python/lib/python3.12/site-packages/pip/_vendor/rich/measure.py +151 -0
  1075. package/python/lib/python3.12/site-packages/pip/_vendor/rich/padding.py +141 -0
  1076. package/python/lib/python3.12/site-packages/pip/_vendor/rich/pager.py +34 -0
  1077. package/python/lib/python3.12/site-packages/pip/_vendor/rich/palette.py +100 -0
  1078. package/python/lib/python3.12/site-packages/pip/_vendor/rich/panel.py +317 -0
  1079. package/python/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py +1016 -0
  1080. package/python/lib/python3.12/site-packages/pip/_vendor/rich/progress.py +1715 -0
  1081. package/python/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
  1082. package/python/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py +400 -0
  1083. package/python/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py +42 -0
  1084. package/python/lib/python3.12/site-packages/pip/_vendor/rich/py.typed +0 -0
  1085. package/python/lib/python3.12/site-packages/pip/_vendor/rich/region.py +10 -0
  1086. package/python/lib/python3.12/site-packages/pip/_vendor/rich/repr.py +149 -0
  1087. package/python/lib/python3.12/site-packages/pip/_vendor/rich/rule.py +130 -0
  1088. package/python/lib/python3.12/site-packages/pip/_vendor/rich/scope.py +86 -0
  1089. package/python/lib/python3.12/site-packages/pip/_vendor/rich/screen.py +54 -0
  1090. package/python/lib/python3.12/site-packages/pip/_vendor/rich/segment.py +752 -0
  1091. package/python/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py +132 -0
  1092. package/python/lib/python3.12/site-packages/pip/_vendor/rich/status.py +131 -0
  1093. package/python/lib/python3.12/site-packages/pip/_vendor/rich/style.py +792 -0
  1094. package/python/lib/python3.12/site-packages/pip/_vendor/rich/styled.py +42 -0
  1095. package/python/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py +985 -0
  1096. package/python/lib/python3.12/site-packages/pip/_vendor/rich/table.py +1006 -0
  1097. package/python/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  1098. package/python/lib/python3.12/site-packages/pip/_vendor/rich/text.py +1361 -0
  1099. package/python/lib/python3.12/site-packages/pip/_vendor/rich/theme.py +115 -0
  1100. package/python/lib/python3.12/site-packages/pip/_vendor/rich/themes.py +5 -0
  1101. package/python/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py +899 -0
  1102. package/python/lib/python3.12/site-packages/pip/_vendor/rich/tree.py +257 -0
  1103. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/LICENSE +21 -0
  1104. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py +8 -0
  1105. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py +788 -0
  1106. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py +115 -0
  1107. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py +10 -0
  1108. package/python/lib/python3.12/site-packages/pip/_vendor/tomli/py.typed +1 -0
  1109. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/LICENSE +21 -0
  1110. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/__init__.py +4 -0
  1111. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/_writer.py +229 -0
  1112. package/python/lib/python3.12/site-packages/pip/_vendor/tomli_w/py.typed +1 -0
  1113. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/LICENSE +21 -0
  1114. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py +36 -0
  1115. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py +341 -0
  1116. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py +571 -0
  1117. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py +68 -0
  1118. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  1119. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py +567 -0
  1120. package/python/lib/python3.12/site-packages/pip/_vendor/truststore/py.typed +0 -0
  1121. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/LICENSE.txt +21 -0
  1122. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py +211 -0
  1123. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_base_connection.py +165 -0
  1124. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py +487 -0
  1125. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_request_methods.py +278 -0
  1126. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py +34 -0
  1127. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py +1099 -0
  1128. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py +1178 -0
  1129. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  1130. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/__init__.py +17 -0
  1131. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/connection.py +260 -0
  1132. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/emscripten_fetch_worker.js +110 -0
  1133. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/fetch.py +726 -0
  1134. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/request.py +22 -0
  1135. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten/response.py +277 -0
  1136. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +564 -0
  1137. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py +228 -0
  1138. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py +335 -0
  1139. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py +341 -0
  1140. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py +89 -0
  1141. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/__init__.py +53 -0
  1142. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/connection.py +356 -0
  1143. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/http2/probe.py +87 -0
  1144. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py +651 -0
  1145. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/py.typed +2 -0
  1146. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py +1474 -0
  1147. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py +42 -0
  1148. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py +137 -0
  1149. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py +43 -0
  1150. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py +254 -0
  1151. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py +101 -0
  1152. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py +549 -0
  1153. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py +527 -0
  1154. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  1155. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py +271 -0
  1156. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py +275 -0
  1157. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py +469 -0
  1158. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/util.py +42 -0
  1159. package/python/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py +124 -0
  1160. package/python/lib/python3.12/site-packages/pip/_vendor/vendor.txt +18 -0
  1161. package/python/lib/python3.12/site-packages/pip/py.typed +4 -0
  1162. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/INSTALLER +1 -0
  1163. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/METADATA +109 -0
  1164. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/RECORD +866 -0
  1165. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/REQUESTED +0 -0
  1166. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/WHEEL +4 -0
  1167. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/direct_url.json +1 -0
  1168. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/entry_points.txt +4 -0
  1169. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/AUTHORS.txt +868 -0
  1170. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/LICENSE.txt +20 -0
  1171. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt +13 -0
  1172. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/certifi/LICENSE +20 -0
  1173. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt +284 -0
  1174. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distro/LICENSE +202 -0
  1175. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md +31 -0
  1176. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/msgpack/COPYING +14 -0
  1177. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE +3 -0
  1178. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE +177 -0
  1179. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD +23 -0
  1180. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE +17 -0
  1181. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE +21 -0
  1182. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pygments/LICENSE +25 -0
  1183. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE +21 -0
  1184. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/requests/LICENSE +175 -0
  1185. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE +13 -0
  1186. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/rich/LICENSE +19 -0
  1187. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli/LICENSE +21 -0
  1188. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE +21 -0
  1189. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/truststore/LICENSE +21 -0
  1190. package/python/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt +21 -0
  1191. package/python/lib/python3.12/site.py +693 -0
  1192. package/python/lib/python3.12/smtplib.py +1109 -0
  1193. package/python/lib/python3.12/sndhdr.py +271 -0
  1194. package/python/lib/python3.12/socket.py +983 -0
  1195. package/python/lib/python3.12/socketserver.py +863 -0
  1196. package/python/lib/python3.12/sqlite3/__init__.py +70 -0
  1197. package/python/lib/python3.12/sqlite3/__main__.py +127 -0
  1198. package/python/lib/python3.12/sqlite3/__pycache__/__init__.cpython-312.pyc +0 -0
  1199. package/python/lib/python3.12/sqlite3/__pycache__/dbapi2.cpython-312.pyc +0 -0
  1200. package/python/lib/python3.12/sqlite3/dbapi2.py +108 -0
  1201. package/python/lib/python3.12/sqlite3/dump.py +89 -0
  1202. package/python/lib/python3.12/sre_compile.py +7 -0
  1203. package/python/lib/python3.12/sre_constants.py +7 -0
  1204. package/python/lib/python3.12/sre_parse.py +7 -0
  1205. package/python/lib/python3.12/ssl.py +1488 -0
  1206. package/python/lib/python3.12/stat.py +195 -0
  1207. package/python/lib/python3.12/statistics.py +1454 -0
  1208. package/python/lib/python3.12/string.py +309 -0
  1209. package/python/lib/python3.12/stringprep.py +272 -0
  1210. package/python/lib/python3.12/struct.py +15 -0
  1211. package/python/lib/python3.12/subprocess.py +2216 -0
  1212. package/python/lib/python3.12/sunau.py +533 -0
  1213. package/python/lib/python3.12/symtable.py +362 -0
  1214. package/python/lib/python3.12/sysconfig.py +894 -0
  1215. package/python/lib/python3.12/tabnanny.py +340 -0
  1216. package/python/lib/python3.12/tarfile.py +3031 -0
  1217. package/python/lib/python3.12/telnetlib.py +680 -0
  1218. package/python/lib/python3.12/tempfile.py +956 -0
  1219. package/python/lib/python3.12/textwrap.py +491 -0
  1220. package/python/lib/python3.12/this.py +28 -0
  1221. package/python/lib/python3.12/threading.py +1708 -0
  1222. package/python/lib/python3.12/timeit.py +381 -0
  1223. package/python/lib/python3.12/token.py +143 -0
  1224. package/python/lib/python3.12/tokenize.py +594 -0
  1225. package/python/lib/python3.12/tomllib/__init__.py +10 -0
  1226. package/python/lib/python3.12/tomllib/_parser.py +691 -0
  1227. package/python/lib/python3.12/tomllib/_re.py +107 -0
  1228. package/python/lib/python3.12/tomllib/_types.py +10 -0
  1229. package/python/lib/python3.12/trace.py +748 -0
  1230. package/python/lib/python3.12/traceback.py +1187 -0
  1231. package/python/lib/python3.12/tracemalloc.py +560 -0
  1232. package/python/lib/python3.12/tty.py +73 -0
  1233. package/python/lib/python3.12/turtle.py +4207 -0
  1234. package/python/lib/python3.12/types.py +333 -0
  1235. package/python/lib/python3.12/typing.py +3494 -0
  1236. package/python/lib/python3.12/unittest/__init__.py +85 -0
  1237. package/python/lib/python3.12/unittest/__main__.py +18 -0
  1238. package/python/lib/python3.12/unittest/_log.py +86 -0
  1239. package/python/lib/python3.12/unittest/async_case.py +143 -0
  1240. package/python/lib/python3.12/unittest/case.py +1456 -0
  1241. package/python/lib/python3.12/unittest/loader.py +497 -0
  1242. package/python/lib/python3.12/unittest/main.py +291 -0
  1243. package/python/lib/python3.12/unittest/mock.py +3054 -0
  1244. package/python/lib/python3.12/unittest/result.py +256 -0
  1245. package/python/lib/python3.12/unittest/runner.py +292 -0
  1246. package/python/lib/python3.12/unittest/signals.py +71 -0
  1247. package/python/lib/python3.12/unittest/suite.py +379 -0
  1248. package/python/lib/python3.12/unittest/util.py +170 -0
  1249. package/python/lib/python3.12/urllib/__init__.py +0 -0
  1250. package/python/lib/python3.12/urllib/__pycache__/__init__.cpython-312.pyc +0 -0
  1251. package/python/lib/python3.12/urllib/__pycache__/error.cpython-312.pyc +0 -0
  1252. package/python/lib/python3.12/urllib/__pycache__/parse.cpython-312.pyc +0 -0
  1253. package/python/lib/python3.12/urllib/__pycache__/request.cpython-312.pyc +0 -0
  1254. package/python/lib/python3.12/urllib/__pycache__/response.cpython-312.pyc +0 -0
  1255. package/python/lib/python3.12/urllib/error.py +74 -0
  1256. package/python/lib/python3.12/urllib/parse.py +1262 -0
  1257. package/python/lib/python3.12/urllib/request.py +2816 -0
  1258. package/python/lib/python3.12/urllib/response.py +84 -0
  1259. package/python/lib/python3.12/urllib/robotparser.py +275 -0
  1260. package/python/lib/python3.12/uu.py +216 -0
  1261. package/python/lib/python3.12/uuid.py +793 -0
  1262. package/python/lib/python3.12/venv/__init__.py +608 -0
  1263. package/python/lib/python3.12/venv/__main__.py +10 -0
  1264. package/python/lib/python3.12/venv/scripts/common/Activate.ps1 +247 -0
  1265. package/python/lib/python3.12/venv/scripts/common/activate +76 -0
  1266. package/python/lib/python3.12/venv/scripts/posix/activate.csh +27 -0
  1267. package/python/lib/python3.12/venv/scripts/posix/activate.fish +69 -0
  1268. package/python/lib/python3.12/warnings.py +598 -0
  1269. package/python/lib/python3.12/wave.py +653 -0
  1270. package/python/lib/python3.12/weakref.py +674 -0
  1271. package/python/lib/python3.12/webbrowser.py +689 -0
  1272. package/python/lib/python3.12/wsgiref/__init__.py +25 -0
  1273. package/python/lib/python3.12/wsgiref/handlers.py +573 -0
  1274. package/python/lib/python3.12/wsgiref/headers.py +192 -0
  1275. package/python/lib/python3.12/wsgiref/simple_server.py +165 -0
  1276. package/python/lib/python3.12/wsgiref/types.py +54 -0
  1277. package/python/lib/python3.12/wsgiref/util.py +159 -0
  1278. package/python/lib/python3.12/wsgiref/validate.py +438 -0
  1279. package/python/lib/python3.12/xdrlib.py +242 -0
  1280. package/python/lib/python3.12/xml/__init__.py +20 -0
  1281. package/python/lib/python3.12/xml/__pycache__/__init__.cpython-312.pyc +0 -0
  1282. package/python/lib/python3.12/xml/dom/NodeFilter.py +27 -0
  1283. package/python/lib/python3.12/xml/dom/__init__.py +140 -0
  1284. package/python/lib/python3.12/xml/dom/domreg.py +99 -0
  1285. package/python/lib/python3.12/xml/dom/expatbuilder.py +962 -0
  1286. package/python/lib/python3.12/xml/dom/minicompat.py +109 -0
  1287. package/python/lib/python3.12/xml/dom/minidom.py +2008 -0
  1288. package/python/lib/python3.12/xml/dom/pulldom.py +336 -0
  1289. package/python/lib/python3.12/xml/dom/xmlbuilder.py +389 -0
  1290. package/python/lib/python3.12/xml/etree/ElementInclude.py +186 -0
  1291. package/python/lib/python3.12/xml/etree/ElementPath.py +423 -0
  1292. package/python/lib/python3.12/xml/etree/ElementTree.py +2085 -0
  1293. package/python/lib/python3.12/xml/etree/__init__.py +33 -0
  1294. package/python/lib/python3.12/xml/etree/cElementTree.py +3 -0
  1295. package/python/lib/python3.12/xml/parsers/__init__.py +8 -0
  1296. package/python/lib/python3.12/xml/parsers/__pycache__/__init__.cpython-312.pyc +0 -0
  1297. package/python/lib/python3.12/xml/parsers/__pycache__/expat.cpython-312.pyc +0 -0
  1298. package/python/lib/python3.12/xml/parsers/expat.py +8 -0
  1299. package/python/lib/python3.12/xml/sax/__init__.py +94 -0
  1300. package/python/lib/python3.12/xml/sax/_exceptions.py +127 -0
  1301. package/python/lib/python3.12/xml/sax/expatreader.py +454 -0
  1302. package/python/lib/python3.12/xml/sax/handler.py +387 -0
  1303. package/python/lib/python3.12/xml/sax/saxutils.py +369 -0
  1304. package/python/lib/python3.12/xml/sax/xmlreader.py +378 -0
  1305. package/python/lib/python3.12/xmlrpc/__init__.py +1 -0
  1306. package/python/lib/python3.12/xmlrpc/client.py +1529 -0
  1307. package/python/lib/python3.12/xmlrpc/server.py +1002 -0
  1308. package/python/lib/python3.12/zipapp.py +206 -0
  1309. package/python/lib/python3.12/zipfile/__init__.py +2340 -0
  1310. package/python/lib/python3.12/zipfile/__main__.py +4 -0
  1311. package/python/lib/python3.12/zipfile/_path/__init__.py +412 -0
  1312. package/python/lib/python3.12/zipfile/_path/glob.py +53 -0
  1313. package/python/lib/python3.12/zipimport.py +712 -0
  1314. package/python/lib/python3.12/zoneinfo/__init__.py +31 -0
  1315. package/python/lib/python3.12/zoneinfo/_common.py +164 -0
  1316. package/python/lib/python3.12/zoneinfo/_tzpath.py +181 -0
  1317. package/python/lib/python3.12/zoneinfo/_zoneinfo.py +772 -0
@@ -0,0 +1,1231 @@
1
+ # This file is dual licensed under the terms of the Apache License, Version
2
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3
+ # for complete details.
4
+ """
5
+ .. testsetup::
6
+
7
+ from pip._vendor.packaging.version import parse, normalize_pre, Version, _cmpkey
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import re
13
+ import sys
14
+ import typing
15
+ from typing import (
16
+ Any,
17
+ Callable,
18
+ Literal,
19
+ NamedTuple,
20
+ SupportsInt,
21
+ Tuple,
22
+ TypedDict,
23
+ Union,
24
+ )
25
+
26
+ if typing.TYPE_CHECKING:
27
+ from typing_extensions import Self, Unpack
28
+
29
+ if sys.version_info >= (3, 13): # pragma: no cover
30
+ from warnings import deprecated as _deprecated
31
+ elif typing.TYPE_CHECKING:
32
+ from typing_extensions import deprecated as _deprecated
33
+ else: # pragma: no cover
34
+ import functools
35
+ import warnings
36
+
37
+ def _deprecated(message: str) -> object:
38
+ def decorator(func: Callable[[...], object]) -> object:
39
+ @functools.wraps(func)
40
+ def wrapper(*args: object, **kwargs: object) -> object:
41
+ warnings.warn(
42
+ message,
43
+ category=DeprecationWarning,
44
+ stacklevel=2,
45
+ )
46
+ return func(*args, **kwargs)
47
+
48
+ return wrapper
49
+
50
+ return decorator
51
+
52
+
53
+ _LETTER_NORMALIZATION = {
54
+ "alpha": "a",
55
+ "beta": "b",
56
+ "c": "rc",
57
+ "pre": "rc",
58
+ "preview": "rc",
59
+ "rev": "post",
60
+ "r": "post",
61
+ }
62
+
63
+ __all__ = ["VERSION_PATTERN", "InvalidVersion", "Version", "normalize_pre", "parse"]
64
+
65
+
66
+ def __dir__() -> list[str]:
67
+ return __all__
68
+
69
+
70
+ LocalType = Tuple[Union[int, str], ...]
71
+
72
+ CmpLocalType = Tuple[Tuple[int, str], ...]
73
+ CmpSuffix = Tuple[int, int, int, int, int, int]
74
+ CmpKey = Union[
75
+ Tuple[int, Tuple[int, ...], CmpSuffix],
76
+ Tuple[int, Tuple[int, ...], CmpSuffix, CmpLocalType],
77
+ ]
78
+ VersionComparisonMethod = Callable[[CmpKey, CmpKey], bool]
79
+
80
+
81
+ class _VersionReplace(TypedDict, total=False):
82
+ epoch: int | None
83
+ release: tuple[int, ...] | None
84
+ pre: tuple[str, int] | None
85
+ post: int | None
86
+ dev: int | None
87
+ local: str | None
88
+
89
+
90
+ def normalize_pre(letter: str, /) -> str:
91
+ """Normalize the pre-release segment of a version string.
92
+
93
+ Returns a lowercase version of the string if not a known pre-release
94
+ identifier.
95
+
96
+ >>> normalize_pre('alpha')
97
+ 'a'
98
+ >>> normalize_pre('BETA')
99
+ 'b'
100
+ >>> normalize_pre('rc')
101
+ 'rc'
102
+
103
+ :param letter:
104
+
105
+ .. versionadded:: 26.1
106
+ """
107
+ letter = letter.lower()
108
+ return _LETTER_NORMALIZATION.get(letter, letter)
109
+
110
+
111
+ def parse(version: str) -> Version:
112
+ """Parse the given version string.
113
+
114
+ This is identical to the :class:`Version` constructor.
115
+
116
+ >>> parse('1.0.dev1')
117
+ <Version('1.0.dev1')>
118
+
119
+ :param version: The version string to parse.
120
+ :raises InvalidVersion: When the version string is not a valid version.
121
+ """
122
+ return Version(version)
123
+
124
+
125
+ class InvalidVersion(ValueError):
126
+ """Raised when a version string is not a valid version.
127
+
128
+ >>> Version("invalid")
129
+ Traceback (most recent call last):
130
+ ...
131
+ packaging.version.InvalidVersion: Invalid version: 'invalid'
132
+ """
133
+
134
+
135
+ class _BaseVersion:
136
+ __slots__ = ()
137
+
138
+ # This can also be a normal member (see the packaging_legacy package);
139
+ # we are just requiring it to be readable. Actually defining a property
140
+ # has runtime effect on subclasses, so it's typing only.
141
+ if typing.TYPE_CHECKING:
142
+
143
+ @property
144
+ def _key(self) -> tuple[Any, ...]: ...
145
+
146
+ def __hash__(self) -> int:
147
+ return hash(self._key)
148
+
149
+ # Please keep the duplicated `isinstance` check
150
+ # in the six comparisons hereunder
151
+ # unless you find a way to avoid adding overhead function calls.
152
+ def __lt__(self, other: _BaseVersion) -> bool:
153
+ if not isinstance(other, _BaseVersion):
154
+ return NotImplemented
155
+
156
+ return self._key < other._key
157
+
158
+ def __le__(self, other: _BaseVersion) -> bool:
159
+ if not isinstance(other, _BaseVersion):
160
+ return NotImplemented
161
+
162
+ return self._key <= other._key
163
+
164
+ def __eq__(self, other: object) -> bool:
165
+ if not isinstance(other, _BaseVersion):
166
+ return NotImplemented
167
+
168
+ return self._key == other._key
169
+
170
+ def __ge__(self, other: _BaseVersion) -> bool:
171
+ if not isinstance(other, _BaseVersion):
172
+ return NotImplemented
173
+
174
+ return self._key >= other._key
175
+
176
+ def __gt__(self, other: _BaseVersion) -> bool:
177
+ if not isinstance(other, _BaseVersion):
178
+ return NotImplemented
179
+
180
+ return self._key > other._key
181
+
182
+ def __ne__(self, other: object) -> bool:
183
+ if not isinstance(other, _BaseVersion):
184
+ return NotImplemented
185
+
186
+ return self._key != other._key
187
+
188
+
189
+ # Deliberately not anchored to the start and end of the string, to make it
190
+ # easier for 3rd party code to reuse
191
+
192
+ # Note that ++ doesn't behave identically on CPython and PyPy, so not using it here
193
+ _VERSION_PATTERN = r"""
194
+ v?+ # optional leading v
195
+ (?a:
196
+ (?:(?P<epoch>[0-9]+)!)?+ # epoch
197
+ (?P<release>[0-9]+(?:\.[0-9]+)*+) # release segment
198
+ (?P<pre> # pre-release
199
+ [._-]?+
200
+ (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
201
+ [._-]?+
202
+ (?P<pre_n>[0-9]+)?
203
+ )?+
204
+ (?P<post> # post release
205
+ (?:-(?P<post_n1>[0-9]+))
206
+ |
207
+ (?:
208
+ [._-]?
209
+ (?P<post_l>post|rev|r)
210
+ [._-]?
211
+ (?P<post_n2>[0-9]+)?
212
+ )
213
+ )?+
214
+ (?P<dev> # dev release
215
+ [._-]?+
216
+ (?P<dev_l>dev)
217
+ [._-]?+
218
+ (?P<dev_n>[0-9]+)?
219
+ )?+
220
+ )
221
+ (?a:\+
222
+ (?P<local> # local version
223
+ [a-z0-9]+
224
+ (?:[._-][a-z0-9]+)*+
225
+ )
226
+ )?+
227
+ """
228
+
229
+ _VERSION_PATTERN_OLD = _VERSION_PATTERN.replace("*+", "*").replace("?+", "?")
230
+
231
+ # Possessive qualifiers were added in Python 3.11.
232
+ # CPython 3.11.0-3.11.4 had a bug: https://github.com/python/cpython/pull/107795
233
+ # Older PyPy also had a bug.
234
+ VERSION_PATTERN = (
235
+ _VERSION_PATTERN_OLD
236
+ if (sys.implementation.name == "cpython" and sys.version_info < (3, 11, 5))
237
+ or (sys.implementation.name == "pypy" and sys.version_info < (3, 11, 13))
238
+ or sys.version_info < (3, 11)
239
+ else _VERSION_PATTERN
240
+ )
241
+ """
242
+ A string containing the regular expression used to match a valid version.
243
+
244
+ The pattern is not anchored at either end, and is intended for embedding in larger
245
+ expressions (for example, matching a version number as part of a file name). The
246
+ regular expression should be compiled with the ``re.VERBOSE`` and ``re.IGNORECASE``
247
+ flags set.
248
+
249
+ .. versionchanged:: 26.0
250
+
251
+ The regex now uses possessive qualifiers on Python 3.11 if they are
252
+ supported (CPython 3.11.5+, PyPy 3.11.13+).
253
+
254
+ :meta hide-value:
255
+ """
256
+
257
+
258
+ # Validation pattern for local version in replace()
259
+ _LOCAL_PATTERN = re.compile(r"[a-z0-9]+(?:[._-][a-z0-9]+)*", re.IGNORECASE | re.ASCII)
260
+
261
+ # Fast path: If a version has only digits and dots then we
262
+ # can skip the regex and parse it as a release segment
263
+ _SIMPLE_VERSION_INDICATORS = frozenset(".0123456789")
264
+
265
+
266
+ def _validate_epoch(value: object, /) -> int:
267
+ epoch = value or 0
268
+ if isinstance(epoch, int) and epoch >= 0:
269
+ return epoch
270
+ msg = f"epoch must be non-negative integer, got {epoch}"
271
+ raise InvalidVersion(msg)
272
+
273
+
274
+ def _validate_release(value: object, /) -> tuple[int, ...]:
275
+ release = (0,) if value is None else value
276
+ if (
277
+ isinstance(release, tuple)
278
+ and len(release) > 0
279
+ and all(isinstance(i, int) and i >= 0 for i in release)
280
+ ):
281
+ return release
282
+ msg = f"release must be a non-empty tuple of non-negative integers, got {release}"
283
+ raise InvalidVersion(msg)
284
+
285
+
286
+ def _validate_pre(value: object, /) -> tuple[Literal["a", "b", "rc"], int] | None:
287
+ if value is None:
288
+ return value
289
+ if isinstance(value, tuple) and len(value) == 2:
290
+ letter, number = value
291
+ letter = normalize_pre(letter)
292
+ if letter in {"a", "b", "rc"} and isinstance(number, int) and number >= 0:
293
+ # type checkers can't infer the Literal type here on letter
294
+ return (letter, number) # type: ignore[return-value]
295
+ msg = f"pre must be a tuple of ('a'|'b'|'rc', non-negative int), got {value}"
296
+ raise InvalidVersion(msg)
297
+
298
+
299
+ def _validate_post(value: object, /) -> tuple[Literal["post"], int] | None:
300
+ if value is None:
301
+ return value
302
+ if isinstance(value, int) and value >= 0:
303
+ return ("post", value)
304
+ msg = f"post must be non-negative integer, got {value}"
305
+ raise InvalidVersion(msg)
306
+
307
+
308
+ def _validate_dev(value: object, /) -> tuple[Literal["dev"], int] | None:
309
+ if value is None:
310
+ return value
311
+ if isinstance(value, int) and value >= 0:
312
+ return ("dev", value)
313
+ msg = f"dev must be non-negative integer, got {value}"
314
+ raise InvalidVersion(msg)
315
+
316
+
317
+ def _validate_local(value: object, /) -> LocalType | None:
318
+ if value is None:
319
+ return value
320
+ if isinstance(value, str) and _LOCAL_PATTERN.fullmatch(value):
321
+ return _parse_local_version(value)
322
+ msg = f"local must be a valid version string, got {value!r}"
323
+ raise InvalidVersion(msg)
324
+
325
+
326
+ # Backward compatibility for internals before 26.0. Do not use.
327
+ class _Version(NamedTuple):
328
+ epoch: int
329
+ release: tuple[int, ...]
330
+ dev: tuple[Literal["dev"], int] | None
331
+ pre: tuple[Literal["a", "b", "rc"], int] | None
332
+ post: tuple[Literal["post"], int] | None
333
+ local: LocalType | None
334
+
335
+
336
+ class Version(_BaseVersion):
337
+ """This class abstracts handling of a project's versions.
338
+
339
+ A :class:`Version` instance is comparison aware and can be compared and
340
+ sorted using the standard Python interfaces.
341
+
342
+ >>> v1 = Version("1.0a5")
343
+ >>> v2 = Version("1.0")
344
+ >>> v1
345
+ <Version('1.0a5')>
346
+ >>> v2
347
+ <Version('1.0')>
348
+ >>> v1 < v2
349
+ True
350
+ >>> v1 == v2
351
+ False
352
+ >>> v1 > v2
353
+ False
354
+ >>> v1 >= v2
355
+ False
356
+ >>> v1 <= v2
357
+ True
358
+
359
+ :class:`Version` is immutable; use :meth:`__replace__` to change
360
+ part of a version.
361
+
362
+ Instances are safe to serialize with :mod:`pickle`. They use a stable
363
+ format so the same pickle can be loaded in future packaging releases.
364
+
365
+ .. versionchanged:: 26.2
366
+
367
+ Added a stable pickle format. Pickles created with packaging 26.2+ can
368
+ be unpickled with future releases. Backward compatibility with pickles
369
+ from pip._vendor.packaging < 26.2 is supported but may be removed in a future
370
+ release.
371
+ """
372
+
373
+ __slots__ = (
374
+ "_dev",
375
+ "_epoch",
376
+ "_hash_cache",
377
+ "_key_cache",
378
+ "_local",
379
+ "_post",
380
+ "_pre",
381
+ "_release",
382
+ )
383
+ __match_args__ = ("_str",)
384
+ """
385
+ Pattern matching is supported on Python 3.10+.
386
+
387
+ .. versionadded:: 26.0
388
+
389
+ :meta hide-value:
390
+ """
391
+
392
+ _regex = re.compile(r"\s*" + VERSION_PATTERN + r"\s*", re.VERBOSE | re.IGNORECASE)
393
+
394
+ _epoch: int
395
+ _release: tuple[int, ...]
396
+ _dev: tuple[Literal["dev"], int] | None
397
+ _pre: tuple[Literal["a", "b", "rc"], int] | None
398
+ _post: tuple[Literal["post"], int] | None
399
+ _local: LocalType | None
400
+
401
+ _hash_cache: int | None
402
+ _key_cache: CmpKey | None
403
+
404
+ def __init__(self, version: str) -> None:
405
+ """Initialize a Version object.
406
+
407
+ :param version:
408
+ The string representation of a version which will be parsed and normalized
409
+ before use.
410
+ :raises InvalidVersion:
411
+ If the ``version`` does not conform to PEP 440 in any way then this
412
+ exception will be raised.
413
+ """
414
+ if _SIMPLE_VERSION_INDICATORS.issuperset(version):
415
+ try:
416
+ self._release = tuple(map(int, version.split(".")))
417
+ except ValueError:
418
+ # Empty parts (from "1..2", ".1", etc.) are invalid versions.
419
+ # Any other ValueError (e.g. int str-digits limit) should
420
+ # propagate to the caller.
421
+ if "" in version.split("."):
422
+ raise InvalidVersion(f"Invalid version: {version!r}") from None
423
+ # TODO: remove "no cover" when Python 3.9 is dropped.
424
+ raise # pragma: no cover
425
+
426
+ self._epoch = 0
427
+ self._pre = None
428
+ self._post = None
429
+ self._dev = None
430
+ self._local = None
431
+ self._key_cache = None
432
+ self._hash_cache = None
433
+ return
434
+
435
+ # Validate the version and parse it into pieces
436
+ match = self._regex.fullmatch(version)
437
+ if not match:
438
+ raise InvalidVersion(f"Invalid version: {version!r}")
439
+ self._epoch = int(match.group("epoch")) if match.group("epoch") else 0
440
+ self._release = tuple(map(int, match.group("release").split(".")))
441
+ # We can type ignore the assignments below because the regex guarantees
442
+ # the correct strings
443
+ self._pre = _parse_letter_version(match.group("pre_l"), match.group("pre_n")) # type: ignore[assignment]
444
+ self._post = _parse_letter_version( # type: ignore[assignment]
445
+ match.group("post_l"), match.group("post_n1") or match.group("post_n2")
446
+ )
447
+ self._dev = _parse_letter_version(match.group("dev_l"), match.group("dev_n")) # type: ignore[assignment]
448
+ self._local = _parse_local_version(match.group("local"))
449
+
450
+ # Key which will be used for sorting
451
+ self._key_cache = None
452
+ self._hash_cache = None
453
+
454
+ @classmethod
455
+ def from_parts(
456
+ cls,
457
+ *,
458
+ epoch: int = 0,
459
+ release: tuple[int, ...],
460
+ pre: tuple[str, int] | None = None,
461
+ post: int | None = None,
462
+ dev: int | None = None,
463
+ local: str | None = None,
464
+ ) -> Self:
465
+ """
466
+ Return a new version composed of the various parts.
467
+
468
+ This allows you to build a version without going though a string and
469
+ running a regular expression. It normalizes pre-release strings. The
470
+ ``release=`` keyword argument is required.
471
+
472
+ >>> Version.from_parts(release=(1,2,3))
473
+ <Version('1.2.3')>
474
+ >>> Version.from_parts(release=(0,1,0), pre=("b", 1))
475
+ <Version('0.1.0b1')>
476
+
477
+ :param epoch:
478
+ :param release: This version tuple is required
479
+
480
+ .. versionadded:: 26.1
481
+ """
482
+ _epoch = _validate_epoch(epoch)
483
+ _release = _validate_release(release)
484
+ _pre = _validate_pre(pre) if pre is not None else None
485
+ _post = _validate_post(post) if post is not None else None
486
+ _dev = _validate_dev(dev) if dev is not None else None
487
+ _local = _validate_local(local) if local is not None else None
488
+
489
+ new_version = cls.__new__(cls)
490
+ new_version._key_cache = None
491
+ new_version._hash_cache = None
492
+ new_version._epoch = _epoch
493
+ new_version._release = _release
494
+ new_version._pre = _pre
495
+ new_version._post = _post
496
+ new_version._dev = _dev
497
+ new_version._local = _local
498
+
499
+ return new_version
500
+
501
+ def __replace__(self, **kwargs: Unpack[_VersionReplace]) -> Self:
502
+ """
503
+ __replace__(*, epoch=..., release=..., pre=..., post=..., dev=..., local=...)
504
+
505
+ Return a new version with parts replaced.
506
+
507
+ This returns a new version (unless no parts were changed). The
508
+ pre-release is normalized. Setting a value to ``None`` clears it.
509
+
510
+ >>> v = Version("1.2.3")
511
+ >>> v.__replace__(pre=("a", 1))
512
+ <Version('1.2.3a1')>
513
+
514
+ :param int | None epoch:
515
+ :param tuple[int, ...] | None release:
516
+ :param tuple[str, int] | None pre:
517
+ :param int | None post:
518
+ :param int | None dev:
519
+ :param str | None local:
520
+
521
+ .. versionadded:: 26.0
522
+ .. versionchanged:: 26.1
523
+
524
+ The pre-release portion is now normalized.
525
+ """
526
+ epoch = _validate_epoch(kwargs["epoch"]) if "epoch" in kwargs else self._epoch
527
+ release = (
528
+ _validate_release(kwargs["release"])
529
+ if "release" in kwargs
530
+ else self._release
531
+ )
532
+ pre = _validate_pre(kwargs["pre"]) if "pre" in kwargs else self._pre
533
+ post = _validate_post(kwargs["post"]) if "post" in kwargs else self._post
534
+ dev = _validate_dev(kwargs["dev"]) if "dev" in kwargs else self._dev
535
+ local = _validate_local(kwargs["local"]) if "local" in kwargs else self._local
536
+
537
+ if (
538
+ epoch == self._epoch
539
+ and release == self._release
540
+ and pre == self._pre
541
+ and post == self._post
542
+ and dev == self._dev
543
+ and local == self._local
544
+ ):
545
+ return self
546
+
547
+ new_version = self.__class__.__new__(self.__class__)
548
+ new_version._key_cache = None
549
+ new_version._hash_cache = None
550
+ new_version._epoch = epoch
551
+ new_version._release = release
552
+ new_version._pre = pre
553
+ new_version._post = post
554
+ new_version._dev = dev
555
+ new_version._local = local
556
+
557
+ return new_version
558
+
559
+ @property
560
+ def _key(self) -> CmpKey:
561
+ if self._key_cache is None:
562
+ self._key_cache = _cmpkey(
563
+ self._epoch,
564
+ self._release,
565
+ self._pre,
566
+ self._post,
567
+ self._dev,
568
+ self._local,
569
+ )
570
+ return self._key_cache
571
+
572
+ # __hash__ must be defined when __eq__ is overridden,
573
+ # otherwise Python sets __hash__ to None.
574
+ def __hash__(self) -> int:
575
+ if (cached_hash := self._hash_cache) is not None:
576
+ return cached_hash
577
+
578
+ if (key := self._key_cache) is None:
579
+ self._key_cache = key = _cmpkey(
580
+ self._epoch,
581
+ self._release,
582
+ self._pre,
583
+ self._post,
584
+ self._dev,
585
+ self._local,
586
+ )
587
+ self._hash_cache = cached_hash = hash(key)
588
+ return cached_hash
589
+
590
+ # Override comparison methods to use direct _key_cache access
591
+ # This is faster than property access, especially before Python 3.12
592
+ def __lt__(self, other: _BaseVersion) -> bool:
593
+ if isinstance(other, Version):
594
+ if self._key_cache is None:
595
+ self._key_cache = _cmpkey(
596
+ self._epoch,
597
+ self._release,
598
+ self._pre,
599
+ self._post,
600
+ self._dev,
601
+ self._local,
602
+ )
603
+ if other._key_cache is None:
604
+ other._key_cache = _cmpkey(
605
+ other._epoch,
606
+ other._release,
607
+ other._pre,
608
+ other._post,
609
+ other._dev,
610
+ other._local,
611
+ )
612
+ return self._key_cache < other._key_cache
613
+
614
+ if not isinstance(other, _BaseVersion):
615
+ return NotImplemented
616
+
617
+ return super().__lt__(other)
618
+
619
+ def __le__(self, other: _BaseVersion) -> bool:
620
+ if isinstance(other, Version):
621
+ if self._key_cache is None:
622
+ self._key_cache = _cmpkey(
623
+ self._epoch,
624
+ self._release,
625
+ self._pre,
626
+ self._post,
627
+ self._dev,
628
+ self._local,
629
+ )
630
+ if other._key_cache is None:
631
+ other._key_cache = _cmpkey(
632
+ other._epoch,
633
+ other._release,
634
+ other._pre,
635
+ other._post,
636
+ other._dev,
637
+ other._local,
638
+ )
639
+ return self._key_cache <= other._key_cache
640
+
641
+ if not isinstance(other, _BaseVersion):
642
+ return NotImplemented
643
+
644
+ return super().__le__(other)
645
+
646
+ def __eq__(self, other: object) -> bool:
647
+ if isinstance(other, Version):
648
+ if self._key_cache is None:
649
+ self._key_cache = _cmpkey(
650
+ self._epoch,
651
+ self._release,
652
+ self._pre,
653
+ self._post,
654
+ self._dev,
655
+ self._local,
656
+ )
657
+ if other._key_cache is None:
658
+ other._key_cache = _cmpkey(
659
+ other._epoch,
660
+ other._release,
661
+ other._pre,
662
+ other._post,
663
+ other._dev,
664
+ other._local,
665
+ )
666
+ return self._key_cache == other._key_cache
667
+
668
+ if not isinstance(other, _BaseVersion):
669
+ return NotImplemented
670
+
671
+ return super().__eq__(other)
672
+
673
+ def __ge__(self, other: _BaseVersion) -> bool:
674
+ if isinstance(other, Version):
675
+ if self._key_cache is None:
676
+ self._key_cache = _cmpkey(
677
+ self._epoch,
678
+ self._release,
679
+ self._pre,
680
+ self._post,
681
+ self._dev,
682
+ self._local,
683
+ )
684
+ if other._key_cache is None:
685
+ other._key_cache = _cmpkey(
686
+ other._epoch,
687
+ other._release,
688
+ other._pre,
689
+ other._post,
690
+ other._dev,
691
+ other._local,
692
+ )
693
+ return self._key_cache >= other._key_cache
694
+
695
+ if not isinstance(other, _BaseVersion):
696
+ return NotImplemented
697
+
698
+ return super().__ge__(other)
699
+
700
+ def __gt__(self, other: _BaseVersion) -> bool:
701
+ if isinstance(other, Version):
702
+ if self._key_cache is None:
703
+ self._key_cache = _cmpkey(
704
+ self._epoch,
705
+ self._release,
706
+ self._pre,
707
+ self._post,
708
+ self._dev,
709
+ self._local,
710
+ )
711
+ if other._key_cache is None:
712
+ other._key_cache = _cmpkey(
713
+ other._epoch,
714
+ other._release,
715
+ other._pre,
716
+ other._post,
717
+ other._dev,
718
+ other._local,
719
+ )
720
+ return self._key_cache > other._key_cache
721
+
722
+ if not isinstance(other, _BaseVersion):
723
+ return NotImplemented
724
+
725
+ return super().__gt__(other)
726
+
727
+ def __ne__(self, other: object) -> bool:
728
+ if isinstance(other, Version):
729
+ if self._key_cache is None:
730
+ self._key_cache = _cmpkey(
731
+ self._epoch,
732
+ self._release,
733
+ self._pre,
734
+ self._post,
735
+ self._dev,
736
+ self._local,
737
+ )
738
+ if other._key_cache is None:
739
+ other._key_cache = _cmpkey(
740
+ other._epoch,
741
+ other._release,
742
+ other._pre,
743
+ other._post,
744
+ other._dev,
745
+ other._local,
746
+ )
747
+ return self._key_cache != other._key_cache
748
+
749
+ if not isinstance(other, _BaseVersion):
750
+ return NotImplemented
751
+
752
+ return super().__ne__(other)
753
+
754
+ def __getstate__(
755
+ self,
756
+ ) -> tuple[
757
+ int,
758
+ tuple[int, ...],
759
+ tuple[str, int] | None,
760
+ tuple[str, int] | None,
761
+ tuple[str, int] | None,
762
+ LocalType | None,
763
+ ]:
764
+ # Return state as a 6-item tuple for compactness:
765
+ # (epoch, release, pre, post, dev, local)
766
+ # Cache members are excluded and will be recomputed on demand
767
+ return (
768
+ self._epoch,
769
+ self._release,
770
+ self._pre,
771
+ self._post,
772
+ self._dev,
773
+ self._local,
774
+ )
775
+
776
+ def __setstate__(self, state: object) -> None:
777
+ # Always discard cached values — they may contain stale references
778
+ # (e.g. packaging._structures.InfinityType from pre-26.1 pickles)
779
+ # and will be recomputed on demand from the core fields above.
780
+ self._key_cache = None
781
+ self._hash_cache = None
782
+
783
+ if isinstance(state, tuple):
784
+ if len(state) == 6:
785
+ # New format (26.2+): (epoch, release, pre, post, dev, local)
786
+ (
787
+ self._epoch,
788
+ self._release,
789
+ self._pre,
790
+ self._post,
791
+ self._dev,
792
+ self._local,
793
+ ) = state
794
+ return
795
+ if len(state) == 2:
796
+ # Format (packaging 26.0-26.1): (None, {slot: value}).
797
+ _, slot_dict = state
798
+ if isinstance(slot_dict, dict):
799
+ self._epoch = slot_dict["_epoch"]
800
+ self._release = slot_dict["_release"]
801
+ self._pre = slot_dict.get("_pre")
802
+ self._post = slot_dict.get("_post")
803
+ self._dev = slot_dict.get("_dev")
804
+ self._local = slot_dict.get("_local")
805
+ return
806
+ if isinstance(state, dict):
807
+ # Old format (packaging <= 25.x, no __slots__): state is a plain
808
+ # dict with "_version" (_Version NamedTuple) and "_key" entries.
809
+ version_nt = state.get("_version")
810
+ if version_nt is not None:
811
+ self._epoch = version_nt.epoch
812
+ self._release = version_nt.release
813
+ self._pre = version_nt.pre
814
+ self._post = version_nt.post
815
+ self._dev = version_nt.dev
816
+ self._local = version_nt.local
817
+ return
818
+
819
+ raise TypeError(f"Cannot restore Version from {state!r}")
820
+
821
+ @property
822
+ @_deprecated("Version._version is private and will be removed soon")
823
+ def _version(self) -> _Version:
824
+ return _Version(
825
+ self._epoch, self._release, self._dev, self._pre, self._post, self._local
826
+ )
827
+
828
+ @_version.setter
829
+ @_deprecated("Version._version is private and will be removed soon")
830
+ def _version(self, value: _Version) -> None:
831
+ self._epoch = value.epoch
832
+ self._release = value.release
833
+ self._dev = value.dev
834
+ self._pre = value.pre
835
+ self._post = value.post
836
+ self._local = value.local
837
+ self._key_cache = None
838
+ self._hash_cache = None
839
+
840
+ def __repr__(self) -> str:
841
+ """A representation of the Version that shows all internal state.
842
+
843
+ >>> Version('1.0.0')
844
+ <Version('1.0.0')>
845
+ """
846
+ return f"<{self.__class__.__name__}({str(self)!r})>"
847
+
848
+ def __str__(self) -> str:
849
+ """A string representation of the version that can be round-tripped.
850
+
851
+ >>> str(Version("1.0a5"))
852
+ '1.0a5'
853
+ """
854
+ # This is a hot function, so not calling self.base_version
855
+ version = ".".join(map(str, self.release))
856
+
857
+ # Epoch
858
+ if self.epoch:
859
+ version = f"{self.epoch}!{version}"
860
+
861
+ # Pre-release
862
+ if self.pre is not None:
863
+ version += "".join(map(str, self.pre))
864
+
865
+ # Post-release
866
+ if self.post is not None:
867
+ version += f".post{self.post}"
868
+
869
+ # Development release
870
+ if self.dev is not None:
871
+ version += f".dev{self.dev}"
872
+
873
+ # Local version segment
874
+ if self.local is not None:
875
+ version += f"+{self.local}"
876
+
877
+ return version
878
+
879
+ @property
880
+ def _str(self) -> str:
881
+ """Internal property for match_args"""
882
+ return str(self)
883
+
884
+ @property
885
+ def epoch(self) -> int:
886
+ """The epoch of the version.
887
+
888
+ >>> Version("2.0.0").epoch
889
+ 0
890
+ >>> Version("1!2.0.0").epoch
891
+ 1
892
+ """
893
+ return self._epoch
894
+
895
+ @property
896
+ def release(self) -> tuple[int, ...]:
897
+ """The components of the "release" segment of the version.
898
+
899
+ >>> Version("1.2.3").release
900
+ (1, 2, 3)
901
+ >>> Version("2.0.0").release
902
+ (2, 0, 0)
903
+ >>> Version("1!2.0.0.post0").release
904
+ (2, 0, 0)
905
+
906
+ Includes trailing zeroes but not the epoch or any pre-release / development /
907
+ post-release suffixes.
908
+ """
909
+ return self._release
910
+
911
+ @property
912
+ def pre(self) -> tuple[Literal["a", "b", "rc"], int] | None:
913
+ """The pre-release segment of the version.
914
+
915
+ >>> print(Version("1.2.3").pre)
916
+ None
917
+ >>> Version("1.2.3a1").pre
918
+ ('a', 1)
919
+ >>> Version("1.2.3b1").pre
920
+ ('b', 1)
921
+ >>> Version("1.2.3rc1").pre
922
+ ('rc', 1)
923
+ """
924
+ return self._pre
925
+
926
+ @property
927
+ def post(self) -> int | None:
928
+ """The post-release number of the version.
929
+
930
+ >>> print(Version("1.2.3").post)
931
+ None
932
+ >>> Version("1.2.3.post1").post
933
+ 1
934
+ """
935
+ return self._post[1] if self._post else None
936
+
937
+ @property
938
+ def dev(self) -> int | None:
939
+ """The development number of the version.
940
+
941
+ >>> print(Version("1.2.3").dev)
942
+ None
943
+ >>> Version("1.2.3.dev1").dev
944
+ 1
945
+ """
946
+ return self._dev[1] if self._dev else None
947
+
948
+ @property
949
+ def local(self) -> str | None:
950
+ """The local version segment of the version.
951
+
952
+ >>> print(Version("1.2.3").local)
953
+ None
954
+ >>> Version("1.2.3+abc").local
955
+ 'abc'
956
+ """
957
+ if self._local:
958
+ return ".".join(str(x) for x in self._local)
959
+ else:
960
+ return None
961
+
962
+ @property
963
+ def public(self) -> str:
964
+ """The public portion of the version.
965
+
966
+ This returns a string. If you want a :class:`Version` again and care
967
+ about performance, use ``v.__replace__(local=None)`` instead.
968
+
969
+ >>> Version("1.2.3").public
970
+ '1.2.3'
971
+ >>> Version("1.2.3+abc").public
972
+ '1.2.3'
973
+ >>> Version("1!1.2.3dev1+abc").public
974
+ '1!1.2.3.dev1'
975
+ """
976
+ return str(self).split("+", 1)[0]
977
+
978
+ @property
979
+ def base_version(self) -> str:
980
+ """The "base version" of the version.
981
+
982
+ This returns a string. If you want a :class:`Version` again and care
983
+ about performance, use
984
+ ``v.__replace__(pre=None, post=None, dev=None, local=None)`` instead.
985
+
986
+ >>> Version("1.2.3").base_version
987
+ '1.2.3'
988
+ >>> Version("1.2.3+abc").base_version
989
+ '1.2.3'
990
+ >>> Version("1!1.2.3dev1+abc").base_version
991
+ '1!1.2.3'
992
+
993
+ The "base version" is the public version of the project without any pre or post
994
+ release markers.
995
+ """
996
+ release_segment = ".".join(map(str, self.release))
997
+ return f"{self.epoch}!{release_segment}" if self.epoch else release_segment
998
+
999
+ @property
1000
+ def is_prerelease(self) -> bool:
1001
+ """Whether this version is a pre-release.
1002
+
1003
+ >>> Version("1.2.3").is_prerelease
1004
+ False
1005
+ >>> Version("1.2.3a1").is_prerelease
1006
+ True
1007
+ >>> Version("1.2.3b1").is_prerelease
1008
+ True
1009
+ >>> Version("1.2.3rc1").is_prerelease
1010
+ True
1011
+ >>> Version("1.2.3dev1").is_prerelease
1012
+ True
1013
+ """
1014
+ return self.dev is not None or self.pre is not None
1015
+
1016
+ @property
1017
+ def is_postrelease(self) -> bool:
1018
+ """Whether this version is a post-release.
1019
+
1020
+ >>> Version("1.2.3").is_postrelease
1021
+ False
1022
+ >>> Version("1.2.3.post1").is_postrelease
1023
+ True
1024
+ """
1025
+ return self.post is not None
1026
+
1027
+ @property
1028
+ def is_devrelease(self) -> bool:
1029
+ """Whether this version is a development release.
1030
+
1031
+ >>> Version("1.2.3").is_devrelease
1032
+ False
1033
+ >>> Version("1.2.3.dev1").is_devrelease
1034
+ True
1035
+ """
1036
+ return self.dev is not None
1037
+
1038
+ @property
1039
+ def major(self) -> int:
1040
+ """The first item of :attr:`release` or ``0`` if unavailable.
1041
+
1042
+ >>> Version("1.2.3").major
1043
+ 1
1044
+ """
1045
+ return self.release[0] if len(self.release) >= 1 else 0
1046
+
1047
+ @property
1048
+ def minor(self) -> int:
1049
+ """The second item of :attr:`release` or ``0`` if unavailable.
1050
+
1051
+ >>> Version("1.2.3").minor
1052
+ 2
1053
+ >>> Version("1").minor
1054
+ 0
1055
+ """
1056
+ return self.release[1] if len(self.release) >= 2 else 0
1057
+
1058
+ @property
1059
+ def micro(self) -> int:
1060
+ """The third item of :attr:`release` or ``0`` if unavailable.
1061
+
1062
+ >>> Version("1.2.3").micro
1063
+ 3
1064
+ >>> Version("1").micro
1065
+ 0
1066
+ """
1067
+ return self.release[2] if len(self.release) >= 3 else 0
1068
+
1069
+
1070
+ class _TrimmedRelease(Version):
1071
+ __slots__ = ()
1072
+
1073
+ def __init__(self, version: str | Version) -> None:
1074
+ if isinstance(version, Version):
1075
+ self._epoch = version._epoch
1076
+ self._release = version._release
1077
+ self._dev = version._dev
1078
+ self._pre = version._pre
1079
+ self._post = version._post
1080
+ self._local = version._local
1081
+ self._key_cache = version._key_cache
1082
+ return
1083
+ super().__init__(version) # pragma: no cover
1084
+
1085
+ @property
1086
+ def release(self) -> tuple[int, ...]:
1087
+ """
1088
+ Release segment without any trailing zeros.
1089
+
1090
+ >>> _TrimmedRelease('1.0.0').release
1091
+ (1,)
1092
+ >>> _TrimmedRelease('0.0').release
1093
+ (0,)
1094
+ """
1095
+ # This leaves one 0.
1096
+ rel = super().release
1097
+ len_release = len(rel)
1098
+ i = len_release
1099
+ while i > 1 and rel[i - 1] == 0:
1100
+ i -= 1
1101
+ return rel if i == len_release else rel[:i]
1102
+
1103
+
1104
+ def _parse_letter_version(
1105
+ letter: str | None, number: str | bytes | SupportsInt | None
1106
+ ) -> tuple[str, int] | None:
1107
+ if letter:
1108
+ # We normalize any letters to their lower case form
1109
+ letter = letter.lower()
1110
+
1111
+ # We consider some words to be alternate spellings of other words and
1112
+ # in those cases we want to normalize the spellings to our preferred
1113
+ # spelling.
1114
+ letter = _LETTER_NORMALIZATION.get(letter, letter)
1115
+
1116
+ # We consider there to be an implicit 0 in a pre-release if there is
1117
+ # not a numeral associated with it.
1118
+ return letter, int(number or 0)
1119
+
1120
+ if number:
1121
+ # We assume if we are given a number, but we are not given a letter
1122
+ # then this is using the implicit post release syntax (e.g. 1.0-1)
1123
+ return "post", int(number)
1124
+
1125
+ return None
1126
+
1127
+
1128
+ _local_version_separators = re.compile(r"[\._-]")
1129
+
1130
+
1131
+ def _parse_local_version(local: str | None) -> LocalType | None:
1132
+ """
1133
+ Takes a string like ``"abc.1.twelve"`` and turns it into
1134
+ ``("abc", 1, "twelve")``.
1135
+ """
1136
+ if local is not None:
1137
+ return tuple(
1138
+ part.lower() if not part.isdigit() else int(part)
1139
+ for part in _local_version_separators.split(local)
1140
+ )
1141
+ return None
1142
+
1143
+
1144
+ # Sort ranks for pre-release: dev-only < a < b < rc < stable (no pre-release).
1145
+ _PRE_RANK = {"a": 0, "b": 1, "rc": 2}
1146
+ _PRE_RANK_DEV_ONLY = -1 # sorts before a(0)
1147
+ _PRE_RANK_STABLE = 3 # sorts after rc(2)
1148
+
1149
+ # In local version segments, strings sort before ints per PEP 440.
1150
+ _LOCAL_STR_RANK = -1 # sorts before all non-negative ints
1151
+
1152
+ # Pre-computed suffix for stable releases (no pre, post, or dev segments).
1153
+ # See _cmpkey() for the suffix layout.
1154
+ _STABLE_SUFFIX = (_PRE_RANK_STABLE, 0, 0, 0, 1, 0)
1155
+
1156
+
1157
+ def _cmpkey(
1158
+ epoch: int,
1159
+ release: tuple[int, ...],
1160
+ pre: tuple[str, int] | None,
1161
+ post: tuple[str, int] | None,
1162
+ dev: tuple[str, int] | None,
1163
+ local: LocalType | None,
1164
+ ) -> CmpKey:
1165
+ """Build a comparison key for PEP 440 ordering.
1166
+
1167
+ Returns ``(epoch, release, suffix)`` or
1168
+ ``(epoch, release, suffix, local)`` so that plain tuple
1169
+ comparison gives the correct order.
1170
+
1171
+ Trailing zeros are stripped from the release so that ``1.0.0 == 1``.
1172
+
1173
+ The suffix is a flat 6-int tuple that encodes pre/post/dev:
1174
+ ``(pre_rank, pre_n, post_rank, post_n, dev_rank, dev_n)``
1175
+
1176
+ pre_rank: dev-only=-1, a=0, b=1, rc=2, no-pre=3
1177
+ Dev-only releases (no pre or post) get -1 so they sort before
1178
+ any alpha/beta/rc. Releases without a pre-release tag get 3
1179
+ so they sort after rc.
1180
+ post_rank: no-post=0, post=1
1181
+ Releases without a post segment sort before those with one.
1182
+ dev_rank: dev=0, no-dev=1
1183
+ Releases without a dev segment sort after those with one.
1184
+
1185
+ Local segments use ``(n, "")`` for ints and ``(-1, s)`` for strings,
1186
+ following PEP 440: strings sort before ints, strings compare
1187
+ lexicographically, ints compare numerically, and shorter segments
1188
+ sort before longer when prefixes match. Versions without a local
1189
+ segment sort before those with one (3-tuple < 4-tuple).
1190
+
1191
+ >>> _cmpkey(0, (1, 0, 0), None, None, None, None)
1192
+ (0, (1,), (3, 0, 0, 0, 1, 0))
1193
+ >>> _cmpkey(0, (1,), ("a", 1), None, None, None)
1194
+ (0, (1,), (0, 1, 0, 0, 1, 0))
1195
+ >>> _cmpkey(0, (1,), None, None, None, ("ubuntu", 1))
1196
+ (0, (1,), (3, 0, 0, 0, 1, 0), ((-1, 'ubuntu'), (1, '')))
1197
+ """
1198
+ # Strip trailing zeros: 1.0.0 compares equal to 1.
1199
+ len_release = len(release)
1200
+ i = len_release
1201
+ while i and release[i - 1] == 0:
1202
+ i -= 1
1203
+ trimmed = release if i == len_release else release[:i]
1204
+
1205
+ # Fast path: stable release with no local segment.
1206
+ if pre is None and post is None and dev is None and local is None:
1207
+ return epoch, trimmed, _STABLE_SUFFIX
1208
+
1209
+ if pre is None and post is None and dev is not None:
1210
+ # dev-only (e.g. 1.0.dev1) sorts before all pre-releases.
1211
+ pre_rank, pre_n = _PRE_RANK_DEV_ONLY, 0
1212
+ elif pre is None:
1213
+ pre_rank, pre_n = _PRE_RANK_STABLE, 0
1214
+ else:
1215
+ pre_rank, pre_n = _PRE_RANK[pre[0]], pre[1]
1216
+
1217
+ post_rank = 0 if post is None else 1
1218
+ post_n = 0 if post is None else post[1]
1219
+
1220
+ dev_rank = 1 if dev is None else 0
1221
+ dev_n = 0 if dev is None else dev[1]
1222
+
1223
+ suffix = (pre_rank, pre_n, post_rank, post_n, dev_rank, dev_n)
1224
+
1225
+ if local is None:
1226
+ return epoch, trimmed, suffix
1227
+
1228
+ cmp_local: CmpLocalType = tuple(
1229
+ (seg, "") if isinstance(seg, int) else (_LOCAL_STR_RANK, seg) for seg in local
1230
+ )
1231
+ return epoch, trimmed, suffix, cmp_local