cli-ih 0.6.3.1__py3-none-any.whl → 0.7.1__py3-none-any.whl

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 (427) hide show
  1. cli_ih/__init__.py +1 -0
  2. cli_ih/asyncClient.py +109 -10
  3. cli_ih/client.py +110 -18
  4. cli_ih/utils.py +51 -0
  5. cli_ih-0.7.1.dist-info/METADATA +100 -0
  6. cli_ih-0.7.1.dist-info/RECORD +9 -0
  7. {cli_ih-0.6.3.1.dist-info → cli_ih-0.7.1.dist-info}/top_level.txt +0 -1
  8. cli_ih-0.6.3.1.dist-info/METADATA +0 -86
  9. cli_ih-0.6.3.1.dist-info/RECORD +0 -425
  10. venv/Lib/site-packages/__editable___cli_ih_0_6_3_1_finder.py +0 -85
  11. venv/Lib/site-packages/pip/__init__.py +0 -13
  12. venv/Lib/site-packages/pip/__main__.py +0 -24
  13. venv/Lib/site-packages/pip/__pip-runner__.py +0 -50
  14. venv/Lib/site-packages/pip/_internal/__init__.py +0 -18
  15. venv/Lib/site-packages/pip/_internal/build_env.py +0 -349
  16. venv/Lib/site-packages/pip/_internal/cache.py +0 -291
  17. venv/Lib/site-packages/pip/_internal/cli/__init__.py +0 -3
  18. venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -184
  19. venv/Lib/site-packages/pip/_internal/cli/base_command.py +0 -244
  20. venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1138
  21. venv/Lib/site-packages/pip/_internal/cli/command_context.py +0 -28
  22. venv/Lib/site-packages/pip/_internal/cli/index_command.py +0 -175
  23. venv/Lib/site-packages/pip/_internal/cli/main.py +0 -80
  24. venv/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
  25. venv/Lib/site-packages/pip/_internal/cli/parser.py +0 -298
  26. venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -151
  27. venv/Lib/site-packages/pip/_internal/cli/req_command.py +0 -351
  28. venv/Lib/site-packages/pip/_internal/cli/spinners.py +0 -235
  29. venv/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
  30. venv/Lib/site-packages/pip/_internal/commands/__init__.py +0 -139
  31. venv/Lib/site-packages/pip/_internal/commands/cache.py +0 -231
  32. venv/Lib/site-packages/pip/_internal/commands/check.py +0 -66
  33. venv/Lib/site-packages/pip/_internal/commands/completion.py +0 -135
  34. venv/Lib/site-packages/pip/_internal/commands/configuration.py +0 -288
  35. venv/Lib/site-packages/pip/_internal/commands/debug.py +0 -203
  36. venv/Lib/site-packages/pip/_internal/commands/download.py +0 -145
  37. venv/Lib/site-packages/pip/_internal/commands/freeze.py +0 -107
  38. venv/Lib/site-packages/pip/_internal/commands/hash.py +0 -58
  39. venv/Lib/site-packages/pip/_internal/commands/help.py +0 -40
  40. venv/Lib/site-packages/pip/_internal/commands/index.py +0 -159
  41. venv/Lib/site-packages/pip/_internal/commands/inspect.py +0 -92
  42. venv/Lib/site-packages/pip/_internal/commands/install.py +0 -798
  43. venv/Lib/site-packages/pip/_internal/commands/list.py +0 -400
  44. venv/Lib/site-packages/pip/_internal/commands/lock.py +0 -170
  45. venv/Lib/site-packages/pip/_internal/commands/search.py +0 -178
  46. venv/Lib/site-packages/pip/_internal/commands/show.py +0 -231
  47. venv/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -113
  48. venv/Lib/site-packages/pip/_internal/commands/wheel.py +0 -181
  49. venv/Lib/site-packages/pip/_internal/configuration.py +0 -397
  50. venv/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
  51. venv/Lib/site-packages/pip/_internal/distributions/base.py +0 -55
  52. venv/Lib/site-packages/pip/_internal/distributions/installed.py +0 -33
  53. venv/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -165
  54. venv/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -44
  55. venv/Lib/site-packages/pip/_internal/exceptions.py +0 -881
  56. venv/Lib/site-packages/pip/_internal/index/__init__.py +0 -1
  57. venv/Lib/site-packages/pip/_internal/index/collector.py +0 -489
  58. venv/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1059
  59. venv/Lib/site-packages/pip/_internal/index/sources.py +0 -287
  60. venv/Lib/site-packages/pip/_internal/locations/__init__.py +0 -441
  61. venv/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -173
  62. venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -215
  63. venv/Lib/site-packages/pip/_internal/locations/base.py +0 -82
  64. venv/Lib/site-packages/pip/_internal/main.py +0 -12
  65. venv/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -164
  66. venv/Lib/site-packages/pip/_internal/metadata/_json.py +0 -87
  67. venv/Lib/site-packages/pip/_internal/metadata/base.py +0 -685
  68. venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
  69. venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -87
  70. venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -223
  71. venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -143
  72. venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -298
  73. venv/Lib/site-packages/pip/_internal/models/__init__.py +0 -1
  74. venv/Lib/site-packages/pip/_internal/models/candidate.py +0 -25
  75. venv/Lib/site-packages/pip/_internal/models/direct_url.py +0 -227
  76. venv/Lib/site-packages/pip/_internal/models/format_control.py +0 -78
  77. venv/Lib/site-packages/pip/_internal/models/index.py +0 -28
  78. venv/Lib/site-packages/pip/_internal/models/installation_report.py +0 -57
  79. venv/Lib/site-packages/pip/_internal/models/link.py +0 -613
  80. venv/Lib/site-packages/pip/_internal/models/pylock.py +0 -188
  81. venv/Lib/site-packages/pip/_internal/models/scheme.py +0 -25
  82. venv/Lib/site-packages/pip/_internal/models/search_scope.py +0 -126
  83. venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -53
  84. venv/Lib/site-packages/pip/_internal/models/target_python.py +0 -122
  85. venv/Lib/site-packages/pip/_internal/models/wheel.py +0 -141
  86. venv/Lib/site-packages/pip/_internal/network/__init__.py +0 -1
  87. venv/Lib/site-packages/pip/_internal/network/auth.py +0 -564
  88. venv/Lib/site-packages/pip/_internal/network/cache.py +0 -133
  89. venv/Lib/site-packages/pip/_internal/network/download.py +0 -342
  90. venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -213
  91. venv/Lib/site-packages/pip/_internal/network/session.py +0 -528
  92. venv/Lib/site-packages/pip/_internal/network/utils.py +0 -98
  93. venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -61
  94. venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  95. venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  96. venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -140
  97. venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -38
  98. venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -41
  99. venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -73
  100. venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -38
  101. venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -47
  102. venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -119
  103. venv/Lib/site-packages/pip/_internal/operations/check.py +0 -175
  104. venv/Lib/site-packages/pip/_internal/operations/freeze.py +0 -259
  105. venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -1
  106. venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -48
  107. venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -746
  108. venv/Lib/site-packages/pip/_internal/operations/prepare.py +0 -742
  109. venv/Lib/site-packages/pip/_internal/pyproject.py +0 -182
  110. venv/Lib/site-packages/pip/_internal/req/__init__.py +0 -105
  111. venv/Lib/site-packages/pip/_internal/req/constructors.py +0 -562
  112. venv/Lib/site-packages/pip/_internal/req/req_dependency_group.py +0 -75
  113. venv/Lib/site-packages/pip/_internal/req/req_file.py +0 -620
  114. venv/Lib/site-packages/pip/_internal/req/req_install.py +0 -937
  115. venv/Lib/site-packages/pip/_internal/req/req_set.py +0 -81
  116. venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -639
  117. venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  118. venv/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
  119. venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  120. venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -598
  121. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  122. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -142
  123. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -582
  124. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -814
  125. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -166
  126. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -276
  127. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -85
  128. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -247
  129. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -336
  130. venv/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -254
  131. venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  132. venv/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
  133. venv/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
  134. venv/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
  135. venv/Lib/site-packages/pip/_internal/utils/compat.py +0 -85
  136. venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -201
  137. venv/Lib/site-packages/pip/_internal/utils/datetime.py +0 -10
  138. venv/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -126
  139. venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  140. venv/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -81
  141. venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -88
  142. venv/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -152
  143. venv/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -24
  144. venv/Lib/site-packages/pip/_internal/utils/glibc.py +0 -102
  145. venv/Lib/site-packages/pip/_internal/utils/hashes.py +0 -150
  146. venv/Lib/site-packages/pip/_internal/utils/logging.py +0 -364
  147. venv/Lib/site-packages/pip/_internal/utils/misc.py +0 -765
  148. venv/Lib/site-packages/pip/_internal/utils/packaging.py +0 -44
  149. venv/Lib/site-packages/pip/_internal/utils/retry.py +0 -45
  150. venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -149
  151. venv/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -248
  152. venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -294
  153. venv/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -337
  154. venv/Lib/site-packages/pip/_internal/utils/urls.py +0 -55
  155. venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -105
  156. venv/Lib/site-packages/pip/_internal/utils/wheel.py +0 -132
  157. venv/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
  158. venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -130
  159. venv/Lib/site-packages/pip/_internal/vcs/git.py +0 -571
  160. venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -186
  161. venv/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -335
  162. venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -693
  163. venv/Lib/site-packages/pip/_internal/wheel_builder.py +0 -334
  164. venv/Lib/site-packages/pip/_vendor/__init__.py +0 -117
  165. venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -29
  166. venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
  167. venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -168
  168. venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -75
  169. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
  170. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -145
  171. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
  172. venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -511
  173. venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -119
  174. venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -157
  175. venv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  176. venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -146
  177. venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
  178. venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  179. venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  180. venv/Lib/site-packages/pip/_vendor/certifi/core.py +0 -83
  181. venv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  182. venv/Lib/site-packages/pip/_vendor/dependency_groups/__init__.py +0 -13
  183. venv/Lib/site-packages/pip/_vendor/dependency_groups/__main__.py +0 -65
  184. venv/Lib/site-packages/pip/_vendor/dependency_groups/_implementation.py +0 -209
  185. venv/Lib/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py +0 -59
  186. venv/Lib/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py +0 -62
  187. venv/Lib/site-packages/pip/_vendor/dependency_groups/_toml_compat.py +0 -9
  188. venv/Lib/site-packages/pip/_vendor/dependency_groups/py.typed +0 -0
  189. venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -33
  190. venv/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1137
  191. venv/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
  192. venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -447
  193. venv/Lib/site-packages/pip/_vendor/distlib/util.py +0 -1984
  194. venv/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
  195. venv/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
  196. venv/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1403
  197. venv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  198. venv/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -45
  199. venv/Lib/site-packages/pip/_vendor/idna/codec.py +0 -122
  200. venv/Lib/site-packages/pip/_vendor/idna/compat.py +0 -15
  201. venv/Lib/site-packages/pip/_vendor/idna/core.py +0 -437
  202. venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -4243
  203. venv/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -57
  204. venv/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -1
  205. venv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  206. venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8681
  207. venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -55
  208. venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  209. venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -170
  210. venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -929
  211. venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -15
  212. venv/Lib/site-packages/pip/_vendor/packaging/_elffile.py +0 -109
  213. venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -262
  214. venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -85
  215. venv/Lib/site-packages/pip/_vendor/packaging/_parser.py +0 -353
  216. venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
  217. venv/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -195
  218. venv/Lib/site-packages/pip/_vendor/packaging/licenses/__init__.py +0 -145
  219. venv/Lib/site-packages/pip/_vendor/packaging/licenses/_spdx.py +0 -759
  220. venv/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -362
  221. venv/Lib/site-packages/pip/_vendor/packaging/metadata.py +0 -862
  222. venv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  223. venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -91
  224. venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -1019
  225. venv/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -656
  226. venv/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -163
  227. venv/Lib/site-packages/pip/_vendor/packaging/version.py +0 -582
  228. venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3676
  229. venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -631
  230. venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -55
  231. venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -249
  232. venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -299
  233. venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -144
  234. venv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  235. venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -272
  236. venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -21
  237. venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -272
  238. venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  239. venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  240. venv/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
  241. venv/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -70
  242. venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  243. venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -129
  244. venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -157
  245. venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  246. venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -963
  247. venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
  248. venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -602
  249. venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1201
  250. venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  251. venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -72
  252. venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  253. venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  254. venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -247
  255. venv/Lib/site-packages/pip/_vendor/pygments/style.py +0 -203
  256. venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -61
  257. venv/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -54
  258. venv/Lib/site-packages/pip/_vendor/pygments/token.py +0 -214
  259. venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  260. venv/Lib/site-packages/pip/_vendor/pygments/util.py +0 -324
  261. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -31
  262. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -410
  263. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -21
  264. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -389
  265. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  266. venv/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -179
  267. venv/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
  268. venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
  269. venv/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -719
  270. venv/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
  271. venv/Lib/site-packages/pip/_vendor/requests/auth.py +0 -314
  272. venv/Lib/site-packages/pip/_vendor/requests/certs.py +0 -17
  273. venv/Lib/site-packages/pip/_vendor/requests/compat.py +0 -90
  274. venv/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
  275. venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -151
  276. venv/Lib/site-packages/pip/_vendor/requests/help.py +0 -127
  277. venv/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
  278. venv/Lib/site-packages/pip/_vendor/requests/models.py +0 -1039
  279. venv/Lib/site-packages/pip/_vendor/requests/packages.py +0 -25
  280. venv/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -831
  281. venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  282. venv/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
  283. venv/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1086
  284. venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -27
  285. venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -196
  286. venv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  287. venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -55
  288. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +0 -27
  289. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +0 -47
  290. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +0 -48
  291. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +0 -57
  292. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +0 -622
  293. venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -209
  294. venv/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -177
  295. venv/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -245
  296. venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -454
  297. venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  298. venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  299. venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -76
  300. venv/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
  301. venv/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -24
  302. venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -268
  303. venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  304. venv/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
  305. venv/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -69
  306. venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  307. venv/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
  308. venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -153
  309. venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  310. venv/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
  311. venv/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
  312. venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -661
  313. venv/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -71
  314. venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  315. venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -93
  316. venv/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
  317. venv/Lib/site-packages/pip/_vendor/rich/align.py +0 -306
  318. venv/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -241
  319. venv/Lib/site-packages/pip/_vendor/rich/bar.py +0 -93
  320. venv/Lib/site-packages/pip/_vendor/rich/box.py +0 -474
  321. venv/Lib/site-packages/pip/_vendor/rich/cells.py +0 -174
  322. venv/Lib/site-packages/pip/_vendor/rich/color.py +0 -621
  323. venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  324. venv/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
  325. venv/Lib/site-packages/pip/_vendor/rich/console.py +0 -2680
  326. venv/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
  327. venv/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
  328. venv/Lib/site-packages/pip/_vendor/rich/control.py +0 -219
  329. venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -193
  330. venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -39
  331. venv/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -91
  332. venv/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
  333. venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
  334. venv/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -88
  335. venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  336. venv/Lib/site-packages/pip/_vendor/rich/json.py +0 -139
  337. venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  338. venv/Lib/site-packages/pip/_vendor/rich/layout.py +0 -442
  339. venv/Lib/site-packages/pip/_vendor/rich/live.py +0 -400
  340. venv/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -106
  341. venv/Lib/site-packages/pip/_vendor/rich/logging.py +0 -297
  342. venv/Lib/site-packages/pip/_vendor/rich/markup.py +0 -251
  343. venv/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
  344. venv/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
  345. venv/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
  346. venv/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
  347. venv/Lib/site-packages/pip/_vendor/rich/panel.py +0 -317
  348. venv/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -1016
  349. venv/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1715
  350. venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -223
  351. venv/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -400
  352. venv/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
  353. venv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  354. venv/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
  355. venv/Lib/site-packages/pip/_vendor/rich/repr.py +0 -149
  356. venv/Lib/site-packages/pip/_vendor/rich/rule.py +0 -130
  357. venv/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
  358. venv/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
  359. venv/Lib/site-packages/pip/_vendor/rich/segment.py +0 -752
  360. venv/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -132
  361. venv/Lib/site-packages/pip/_vendor/rich/status.py +0 -131
  362. venv/Lib/site-packages/pip/_vendor/rich/style.py +0 -796
  363. venv/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
  364. venv/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -985
  365. venv/Lib/site-packages/pip/_vendor/rich/table.py +0 -1006
  366. venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  367. venv/Lib/site-packages/pip/_vendor/rich/text.py +0 -1361
  368. venv/Lib/site-packages/pip/_vendor/rich/theme.py +0 -115
  369. venv/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
  370. venv/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -899
  371. venv/Lib/site-packages/pip/_vendor/rich/tree.py +0 -257
  372. venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -8
  373. venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -770
  374. venv/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -112
  375. venv/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
  376. venv/Lib/site-packages/pip/_vendor/tomli/py.typed +0 -1
  377. venv/Lib/site-packages/pip/_vendor/tomli_w/__init__.py +0 -4
  378. venv/Lib/site-packages/pip/_vendor/tomli_w/_writer.py +0 -229
  379. venv/Lib/site-packages/pip/_vendor/tomli_w/py.typed +0 -1
  380. venv/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -36
  381. venv/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -333
  382. venv/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -571
  383. venv/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -66
  384. venv/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
  385. venv/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -567
  386. venv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  387. venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  388. venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -355
  389. venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  390. venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -572
  391. venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1140
  392. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  393. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  394. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  395. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  396. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  397. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  398. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  399. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
  400. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -920
  401. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  402. venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  403. venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  404. venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  405. venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  406. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  407. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  408. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
  409. venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  410. venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -540
  411. venv/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -191
  412. venv/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -879
  413. venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  414. venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  415. venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  416. venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  417. venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  418. venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  419. venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -622
  420. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -504
  421. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  422. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  423. venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
  424. venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  425. venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  426. venv/Lib/site-packages/pip/py.typed +0 -4
  427. {cli_ih-0.6.3.1.dist-info → cli_ih-0.7.1.dist-info}/WHEEL +0 -0
@@ -1,582 +0,0 @@
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, Version
8
- """
9
-
10
- from __future__ import annotations
11
-
12
- import itertools
13
- import re
14
- from typing import Any, Callable, NamedTuple, SupportsInt, Tuple, Union
15
-
16
- from ._structures import Infinity, InfinityType, NegativeInfinity, NegativeInfinityType
17
-
18
- __all__ = ["VERSION_PATTERN", "InvalidVersion", "Version", "parse"]
19
-
20
- LocalType = Tuple[Union[int, str], ...]
21
-
22
- CmpPrePostDevType = Union[InfinityType, NegativeInfinityType, Tuple[str, int]]
23
- CmpLocalType = Union[
24
- NegativeInfinityType,
25
- Tuple[Union[Tuple[int, str], Tuple[NegativeInfinityType, Union[int, str]]], ...],
26
- ]
27
- CmpKey = Tuple[
28
- int,
29
- Tuple[int, ...],
30
- CmpPrePostDevType,
31
- CmpPrePostDevType,
32
- CmpPrePostDevType,
33
- CmpLocalType,
34
- ]
35
- VersionComparisonMethod = Callable[[CmpKey, CmpKey], bool]
36
-
37
-
38
- class _Version(NamedTuple):
39
- epoch: int
40
- release: tuple[int, ...]
41
- dev: tuple[str, int] | None
42
- pre: tuple[str, int] | None
43
- post: tuple[str, int] | None
44
- local: LocalType | None
45
-
46
-
47
- def parse(version: str) -> Version:
48
- """Parse the given version string.
49
-
50
- >>> parse('1.0.dev1')
51
- <Version('1.0.dev1')>
52
-
53
- :param version: The version string to parse.
54
- :raises InvalidVersion: When the version string is not a valid version.
55
- """
56
- return Version(version)
57
-
58
-
59
- class InvalidVersion(ValueError):
60
- """Raised when a version string is not a valid version.
61
-
62
- >>> Version("invalid")
63
- Traceback (most recent call last):
64
- ...
65
- packaging.version.InvalidVersion: Invalid version: 'invalid'
66
- """
67
-
68
-
69
- class _BaseVersion:
70
- _key: tuple[Any, ...]
71
-
72
- def __hash__(self) -> int:
73
- return hash(self._key)
74
-
75
- # Please keep the duplicated `isinstance` check
76
- # in the six comparisons hereunder
77
- # unless you find a way to avoid adding overhead function calls.
78
- def __lt__(self, other: _BaseVersion) -> bool:
79
- if not isinstance(other, _BaseVersion):
80
- return NotImplemented
81
-
82
- return self._key < other._key
83
-
84
- def __le__(self, other: _BaseVersion) -> bool:
85
- if not isinstance(other, _BaseVersion):
86
- return NotImplemented
87
-
88
- return self._key <= other._key
89
-
90
- def __eq__(self, other: object) -> bool:
91
- if not isinstance(other, _BaseVersion):
92
- return NotImplemented
93
-
94
- return self._key == other._key
95
-
96
- def __ge__(self, other: _BaseVersion) -> bool:
97
- if not isinstance(other, _BaseVersion):
98
- return NotImplemented
99
-
100
- return self._key >= other._key
101
-
102
- def __gt__(self, other: _BaseVersion) -> bool:
103
- if not isinstance(other, _BaseVersion):
104
- return NotImplemented
105
-
106
- return self._key > other._key
107
-
108
- def __ne__(self, other: object) -> bool:
109
- if not isinstance(other, _BaseVersion):
110
- return NotImplemented
111
-
112
- return self._key != other._key
113
-
114
-
115
- # Deliberately not anchored to the start and end of the string, to make it
116
- # easier for 3rd party code to reuse
117
- _VERSION_PATTERN = r"""
118
- v?
119
- (?:
120
- (?:(?P<epoch>[0-9]+)!)? # epoch
121
- (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
122
- (?P<pre> # pre-release
123
- [-_\.]?
124
- (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
125
- [-_\.]?
126
- (?P<pre_n>[0-9]+)?
127
- )?
128
- (?P<post> # post release
129
- (?:-(?P<post_n1>[0-9]+))
130
- |
131
- (?:
132
- [-_\.]?
133
- (?P<post_l>post|rev|r)
134
- [-_\.]?
135
- (?P<post_n2>[0-9]+)?
136
- )
137
- )?
138
- (?P<dev> # dev release
139
- [-_\.]?
140
- (?P<dev_l>dev)
141
- [-_\.]?
142
- (?P<dev_n>[0-9]+)?
143
- )?
144
- )
145
- (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
146
- """
147
-
148
- VERSION_PATTERN = _VERSION_PATTERN
149
- """
150
- A string containing the regular expression used to match a valid version.
151
-
152
- The pattern is not anchored at either end, and is intended for embedding in larger
153
- expressions (for example, matching a version number as part of a file name). The
154
- regular expression should be compiled with the ``re.VERBOSE`` and ``re.IGNORECASE``
155
- flags set.
156
-
157
- :meta hide-value:
158
- """
159
-
160
-
161
- class Version(_BaseVersion):
162
- """This class abstracts handling of a project's versions.
163
-
164
- A :class:`Version` instance is comparison aware and can be compared and
165
- sorted using the standard Python interfaces.
166
-
167
- >>> v1 = Version("1.0a5")
168
- >>> v2 = Version("1.0")
169
- >>> v1
170
- <Version('1.0a5')>
171
- >>> v2
172
- <Version('1.0')>
173
- >>> v1 < v2
174
- True
175
- >>> v1 == v2
176
- False
177
- >>> v1 > v2
178
- False
179
- >>> v1 >= v2
180
- False
181
- >>> v1 <= v2
182
- True
183
- """
184
-
185
- _regex = re.compile(r"^\s*" + VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE)
186
- _key: CmpKey
187
-
188
- def __init__(self, version: str) -> None:
189
- """Initialize a Version object.
190
-
191
- :param version:
192
- The string representation of a version which will be parsed and normalized
193
- before use.
194
- :raises InvalidVersion:
195
- If the ``version`` does not conform to PEP 440 in any way then this
196
- exception will be raised.
197
- """
198
-
199
- # Validate the version and parse it into pieces
200
- match = self._regex.search(version)
201
- if not match:
202
- raise InvalidVersion(f"Invalid version: {version!r}")
203
-
204
- # Store the parsed out pieces of the version
205
- self._version = _Version(
206
- epoch=int(match.group("epoch")) if match.group("epoch") else 0,
207
- release=tuple(int(i) for i in match.group("release").split(".")),
208
- pre=_parse_letter_version(match.group("pre_l"), match.group("pre_n")),
209
- post=_parse_letter_version(
210
- match.group("post_l"), match.group("post_n1") or match.group("post_n2")
211
- ),
212
- dev=_parse_letter_version(match.group("dev_l"), match.group("dev_n")),
213
- local=_parse_local_version(match.group("local")),
214
- )
215
-
216
- # Generate a key which will be used for sorting
217
- self._key = _cmpkey(
218
- self._version.epoch,
219
- self._version.release,
220
- self._version.pre,
221
- self._version.post,
222
- self._version.dev,
223
- self._version.local,
224
- )
225
-
226
- def __repr__(self) -> str:
227
- """A representation of the Version that shows all internal state.
228
-
229
- >>> Version('1.0.0')
230
- <Version('1.0.0')>
231
- """
232
- return f"<Version('{self}')>"
233
-
234
- def __str__(self) -> str:
235
- """A string representation of the version that can be round-tripped.
236
-
237
- >>> str(Version("1.0a5"))
238
- '1.0a5'
239
- """
240
- parts = []
241
-
242
- # Epoch
243
- if self.epoch != 0:
244
- parts.append(f"{self.epoch}!")
245
-
246
- # Release segment
247
- parts.append(".".join(str(x) for x in self.release))
248
-
249
- # Pre-release
250
- if self.pre is not None:
251
- parts.append("".join(str(x) for x in self.pre))
252
-
253
- # Post-release
254
- if self.post is not None:
255
- parts.append(f".post{self.post}")
256
-
257
- # Development release
258
- if self.dev is not None:
259
- parts.append(f".dev{self.dev}")
260
-
261
- # Local version segment
262
- if self.local is not None:
263
- parts.append(f"+{self.local}")
264
-
265
- return "".join(parts)
266
-
267
- @property
268
- def epoch(self) -> int:
269
- """The epoch of the version.
270
-
271
- >>> Version("2.0.0").epoch
272
- 0
273
- >>> Version("1!2.0.0").epoch
274
- 1
275
- """
276
- return self._version.epoch
277
-
278
- @property
279
- def release(self) -> tuple[int, ...]:
280
- """The components of the "release" segment of the version.
281
-
282
- >>> Version("1.2.3").release
283
- (1, 2, 3)
284
- >>> Version("2.0.0").release
285
- (2, 0, 0)
286
- >>> Version("1!2.0.0.post0").release
287
- (2, 0, 0)
288
-
289
- Includes trailing zeroes but not the epoch or any pre-release / development /
290
- post-release suffixes.
291
- """
292
- return self._version.release
293
-
294
- @property
295
- def pre(self) -> tuple[str, int] | None:
296
- """The pre-release segment of the version.
297
-
298
- >>> print(Version("1.2.3").pre)
299
- None
300
- >>> Version("1.2.3a1").pre
301
- ('a', 1)
302
- >>> Version("1.2.3b1").pre
303
- ('b', 1)
304
- >>> Version("1.2.3rc1").pre
305
- ('rc', 1)
306
- """
307
- return self._version.pre
308
-
309
- @property
310
- def post(self) -> int | None:
311
- """The post-release number of the version.
312
-
313
- >>> print(Version("1.2.3").post)
314
- None
315
- >>> Version("1.2.3.post1").post
316
- 1
317
- """
318
- return self._version.post[1] if self._version.post else None
319
-
320
- @property
321
- def dev(self) -> int | None:
322
- """The development number of the version.
323
-
324
- >>> print(Version("1.2.3").dev)
325
- None
326
- >>> Version("1.2.3.dev1").dev
327
- 1
328
- """
329
- return self._version.dev[1] if self._version.dev else None
330
-
331
- @property
332
- def local(self) -> str | None:
333
- """The local version segment of the version.
334
-
335
- >>> print(Version("1.2.3").local)
336
- None
337
- >>> Version("1.2.3+abc").local
338
- 'abc'
339
- """
340
- if self._version.local:
341
- return ".".join(str(x) for x in self._version.local)
342
- else:
343
- return None
344
-
345
- @property
346
- def public(self) -> str:
347
- """The public portion of the version.
348
-
349
- >>> Version("1.2.3").public
350
- '1.2.3'
351
- >>> Version("1.2.3+abc").public
352
- '1.2.3'
353
- >>> Version("1!1.2.3dev1+abc").public
354
- '1!1.2.3.dev1'
355
- """
356
- return str(self).split("+", 1)[0]
357
-
358
- @property
359
- def base_version(self) -> str:
360
- """The "base version" of the version.
361
-
362
- >>> Version("1.2.3").base_version
363
- '1.2.3'
364
- >>> Version("1.2.3+abc").base_version
365
- '1.2.3'
366
- >>> Version("1!1.2.3dev1+abc").base_version
367
- '1!1.2.3'
368
-
369
- The "base version" is the public version of the project without any pre or post
370
- release markers.
371
- """
372
- parts = []
373
-
374
- # Epoch
375
- if self.epoch != 0:
376
- parts.append(f"{self.epoch}!")
377
-
378
- # Release segment
379
- parts.append(".".join(str(x) for x in self.release))
380
-
381
- return "".join(parts)
382
-
383
- @property
384
- def is_prerelease(self) -> bool:
385
- """Whether this version is a pre-release.
386
-
387
- >>> Version("1.2.3").is_prerelease
388
- False
389
- >>> Version("1.2.3a1").is_prerelease
390
- True
391
- >>> Version("1.2.3b1").is_prerelease
392
- True
393
- >>> Version("1.2.3rc1").is_prerelease
394
- True
395
- >>> Version("1.2.3dev1").is_prerelease
396
- True
397
- """
398
- return self.dev is not None or self.pre is not None
399
-
400
- @property
401
- def is_postrelease(self) -> bool:
402
- """Whether this version is a post-release.
403
-
404
- >>> Version("1.2.3").is_postrelease
405
- False
406
- >>> Version("1.2.3.post1").is_postrelease
407
- True
408
- """
409
- return self.post is not None
410
-
411
- @property
412
- def is_devrelease(self) -> bool:
413
- """Whether this version is a development release.
414
-
415
- >>> Version("1.2.3").is_devrelease
416
- False
417
- >>> Version("1.2.3.dev1").is_devrelease
418
- True
419
- """
420
- return self.dev is not None
421
-
422
- @property
423
- def major(self) -> int:
424
- """The first item of :attr:`release` or ``0`` if unavailable.
425
-
426
- >>> Version("1.2.3").major
427
- 1
428
- """
429
- return self.release[0] if len(self.release) >= 1 else 0
430
-
431
- @property
432
- def minor(self) -> int:
433
- """The second item of :attr:`release` or ``0`` if unavailable.
434
-
435
- >>> Version("1.2.3").minor
436
- 2
437
- >>> Version("1").minor
438
- 0
439
- """
440
- return self.release[1] if len(self.release) >= 2 else 0
441
-
442
- @property
443
- def micro(self) -> int:
444
- """The third item of :attr:`release` or ``0`` if unavailable.
445
-
446
- >>> Version("1.2.3").micro
447
- 3
448
- >>> Version("1").micro
449
- 0
450
- """
451
- return self.release[2] if len(self.release) >= 3 else 0
452
-
453
-
454
- class _TrimmedRelease(Version):
455
- @property
456
- def release(self) -> tuple[int, ...]:
457
- """
458
- Release segment without any trailing zeros.
459
-
460
- >>> _TrimmedRelease('1.0.0').release
461
- (1,)
462
- >>> _TrimmedRelease('0.0').release
463
- (0,)
464
- """
465
- rel = super().release
466
- nonzeros = (index for index, val in enumerate(rel) if val)
467
- last_nonzero = max(nonzeros, default=0)
468
- return rel[: last_nonzero + 1]
469
-
470
-
471
- def _parse_letter_version(
472
- letter: str | None, number: str | bytes | SupportsInt | None
473
- ) -> tuple[str, int] | None:
474
- if letter:
475
- # We consider there to be an implicit 0 in a pre-release if there is
476
- # not a numeral associated with it.
477
- if number is None:
478
- number = 0
479
-
480
- # We normalize any letters to their lower case form
481
- letter = letter.lower()
482
-
483
- # We consider some words to be alternate spellings of other words and
484
- # in those cases we want to normalize the spellings to our preferred
485
- # spelling.
486
- if letter == "alpha":
487
- letter = "a"
488
- elif letter == "beta":
489
- letter = "b"
490
- elif letter in ["c", "pre", "preview"]:
491
- letter = "rc"
492
- elif letter in ["rev", "r"]:
493
- letter = "post"
494
-
495
- return letter, int(number)
496
-
497
- assert not letter
498
- if number:
499
- # We assume if we are given a number, but we are not given a letter
500
- # then this is using the implicit post release syntax (e.g. 1.0-1)
501
- letter = "post"
502
-
503
- return letter, int(number)
504
-
505
- return None
506
-
507
-
508
- _local_version_separators = re.compile(r"[\._-]")
509
-
510
-
511
- def _parse_local_version(local: str | None) -> LocalType | None:
512
- """
513
- Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
514
- """
515
- if local is not None:
516
- return tuple(
517
- part.lower() if not part.isdigit() else int(part)
518
- for part in _local_version_separators.split(local)
519
- )
520
- return None
521
-
522
-
523
- def _cmpkey(
524
- epoch: int,
525
- release: tuple[int, ...],
526
- pre: tuple[str, int] | None,
527
- post: tuple[str, int] | None,
528
- dev: tuple[str, int] | None,
529
- local: LocalType | None,
530
- ) -> CmpKey:
531
- # When we compare a release version, we want to compare it with all of the
532
- # trailing zeros removed. So we'll use a reverse the list, drop all the now
533
- # leading zeros until we come to something non zero, then take the rest
534
- # re-reverse it back into the correct order and make it a tuple and use
535
- # that for our sorting key.
536
- _release = tuple(
537
- reversed(list(itertools.dropwhile(lambda x: x == 0, reversed(release))))
538
- )
539
-
540
- # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0.
541
- # We'll do this by abusing the pre segment, but we _only_ want to do this
542
- # if there is not a pre or a post segment. If we have one of those then
543
- # the normal sorting rules will handle this case correctly.
544
- if pre is None and post is None and dev is not None:
545
- _pre: CmpPrePostDevType = NegativeInfinity
546
- # Versions without a pre-release (except as noted above) should sort after
547
- # those with one.
548
- elif pre is None:
549
- _pre = Infinity
550
- else:
551
- _pre = pre
552
-
553
- # Versions without a post segment should sort before those with one.
554
- if post is None:
555
- _post: CmpPrePostDevType = NegativeInfinity
556
-
557
- else:
558
- _post = post
559
-
560
- # Versions without a development segment should sort after those with one.
561
- if dev is None:
562
- _dev: CmpPrePostDevType = Infinity
563
-
564
- else:
565
- _dev = dev
566
-
567
- if local is None:
568
- # Versions without a local segment should sort before those with one.
569
- _local: CmpLocalType = NegativeInfinity
570
- else:
571
- # Versions with a local segment need that segment parsed to implement
572
- # the sorting rules in PEP440.
573
- # - Alpha numeric segments sort before numeric segments
574
- # - Alpha numeric segments sort lexicographically
575
- # - Numeric segments sort numerically
576
- # - Shorter versions sort before longer versions when the prefixes
577
- # match exactly
578
- _local = tuple(
579
- (i, "") if isinstance(i, int) else (NegativeInfinity, i) for i in local
580
- )
581
-
582
- return epoch, _release, _pre, _post, _dev, _local