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,157 +0,0 @@
1
- """
2
- requests.api
3
- ~~~~~~~~~~~~
4
-
5
- This module implements the Requests API.
6
-
7
- :copyright: (c) 2012 by Kenneth Reitz.
8
- :license: Apache2, see LICENSE for more details.
9
- """
10
-
11
- from . import sessions
12
-
13
-
14
- def request(method, url, **kwargs):
15
- """Constructs and sends a :class:`Request <Request>`.
16
-
17
- :param method: method for the new :class:`Request` object: ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, or ``DELETE``.
18
- :param url: URL for the new :class:`Request` object.
19
- :param params: (optional) Dictionary, list of tuples or bytes to send
20
- in the query string for the :class:`Request`.
21
- :param data: (optional) Dictionary, list of tuples, bytes, or file-like
22
- object to send in the body of the :class:`Request`.
23
- :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
24
- :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
25
- :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
26
- :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
27
- ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
28
- or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string
29
- defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
30
- to add for the file.
31
- :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
32
- :param timeout: (optional) How many seconds to wait for the server to send data
33
- before giving up, as a float, or a :ref:`(connect timeout, read
34
- timeout) <timeouts>` tuple.
35
- :type timeout: float or tuple
36
- :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``.
37
- :type allow_redirects: bool
38
- :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
39
- :param verify: (optional) Either a boolean, in which case it controls whether we verify
40
- the server's TLS certificate, or a string, in which case it must be a path
41
- to a CA bundle to use. Defaults to ``True``.
42
- :param stream: (optional) if ``False``, the response content will be immediately downloaded.
43
- :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
44
- :return: :class:`Response <Response>` object
45
- :rtype: requests.Response
46
-
47
- Usage::
48
-
49
- >>> import requests
50
- >>> req = requests.request('GET', 'https://httpbin.org/get')
51
- >>> req
52
- <Response [200]>
53
- """
54
-
55
- # By using the 'with' statement we are sure the session is closed, thus we
56
- # avoid leaving sockets open which can trigger a ResourceWarning in some
57
- # cases, and look like a memory leak in others.
58
- with sessions.Session() as session:
59
- return session.request(method=method, url=url, **kwargs)
60
-
61
-
62
- def get(url, params=None, **kwargs):
63
- r"""Sends a GET request.
64
-
65
- :param url: URL for the new :class:`Request` object.
66
- :param params: (optional) Dictionary, list of tuples or bytes to send
67
- in the query string for the :class:`Request`.
68
- :param \*\*kwargs: Optional arguments that ``request`` takes.
69
- :return: :class:`Response <Response>` object
70
- :rtype: requests.Response
71
- """
72
-
73
- return request("get", url, params=params, **kwargs)
74
-
75
-
76
- def options(url, **kwargs):
77
- r"""Sends an OPTIONS request.
78
-
79
- :param url: URL for the new :class:`Request` object.
80
- :param \*\*kwargs: Optional arguments that ``request`` takes.
81
- :return: :class:`Response <Response>` object
82
- :rtype: requests.Response
83
- """
84
-
85
- return request("options", url, **kwargs)
86
-
87
-
88
- def head(url, **kwargs):
89
- r"""Sends a HEAD request.
90
-
91
- :param url: URL for the new :class:`Request` object.
92
- :param \*\*kwargs: Optional arguments that ``request`` takes. If
93
- `allow_redirects` is not provided, it will be set to `False` (as
94
- opposed to the default :meth:`request` behavior).
95
- :return: :class:`Response <Response>` object
96
- :rtype: requests.Response
97
- """
98
-
99
- kwargs.setdefault("allow_redirects", False)
100
- return request("head", url, **kwargs)
101
-
102
-
103
- def post(url, data=None, json=None, **kwargs):
104
- r"""Sends a POST request.
105
-
106
- :param url: URL for the new :class:`Request` object.
107
- :param data: (optional) Dictionary, list of tuples, bytes, or file-like
108
- object to send in the body of the :class:`Request`.
109
- :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
110
- :param \*\*kwargs: Optional arguments that ``request`` takes.
111
- :return: :class:`Response <Response>` object
112
- :rtype: requests.Response
113
- """
114
-
115
- return request("post", url, data=data, json=json, **kwargs)
116
-
117
-
118
- def put(url, data=None, **kwargs):
119
- r"""Sends a PUT request.
120
-
121
- :param url: URL for the new :class:`Request` object.
122
- :param data: (optional) Dictionary, list of tuples, bytes, or file-like
123
- object to send in the body of the :class:`Request`.
124
- :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
125
- :param \*\*kwargs: Optional arguments that ``request`` takes.
126
- :return: :class:`Response <Response>` object
127
- :rtype: requests.Response
128
- """
129
-
130
- return request("put", url, data=data, **kwargs)
131
-
132
-
133
- def patch(url, data=None, **kwargs):
134
- r"""Sends a PATCH request.
135
-
136
- :param url: URL for the new :class:`Request` object.
137
- :param data: (optional) Dictionary, list of tuples, bytes, or file-like
138
- object to send in the body of the :class:`Request`.
139
- :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
140
- :param \*\*kwargs: Optional arguments that ``request`` takes.
141
- :return: :class:`Response <Response>` object
142
- :rtype: requests.Response
143
- """
144
-
145
- return request("patch", url, data=data, **kwargs)
146
-
147
-
148
- def delete(url, **kwargs):
149
- r"""Sends a DELETE request.
150
-
151
- :param url: URL for the new :class:`Request` object.
152
- :param \*\*kwargs: Optional arguments that ``request`` takes.
153
- :return: :class:`Response <Response>` object
154
- :rtype: requests.Response
155
- """
156
-
157
- return request("delete", url, **kwargs)
@@ -1,314 +0,0 @@
1
- """
2
- requests.auth
3
- ~~~~~~~~~~~~~
4
-
5
- This module contains the authentication handlers for Requests.
6
- """
7
-
8
- import hashlib
9
- import os
10
- import re
11
- import threading
12
- import time
13
- import warnings
14
- from base64 import b64encode
15
-
16
- from ._internal_utils import to_native_string
17
- from .compat import basestring, str, urlparse
18
- from .cookies import extract_cookies_to_jar
19
- from .utils import parse_dict_header
20
-
21
- CONTENT_TYPE_FORM_URLENCODED = "application/x-www-form-urlencoded"
22
- CONTENT_TYPE_MULTI_PART = "multipart/form-data"
23
-
24
-
25
- def _basic_auth_str(username, password):
26
- """Returns a Basic Auth string."""
27
-
28
- # "I want us to put a big-ol' comment on top of it that
29
- # says that this behaviour is dumb but we need to preserve
30
- # it because people are relying on it."
31
- # - Lukasa
32
- #
33
- # These are here solely to maintain backwards compatibility
34
- # for things like ints. This will be removed in 3.0.0.
35
- if not isinstance(username, basestring):
36
- warnings.warn(
37
- "Non-string usernames will no longer be supported in Requests "
38
- "3.0.0. Please convert the object you've passed in ({!r}) to "
39
- "a string or bytes object in the near future to avoid "
40
- "problems.".format(username),
41
- category=DeprecationWarning,
42
- )
43
- username = str(username)
44
-
45
- if not isinstance(password, basestring):
46
- warnings.warn(
47
- "Non-string passwords will no longer be supported in Requests "
48
- "3.0.0. Please convert the object you've passed in ({!r}) to "
49
- "a string or bytes object in the near future to avoid "
50
- "problems.".format(type(password)),
51
- category=DeprecationWarning,
52
- )
53
- password = str(password)
54
- # -- End Removal --
55
-
56
- if isinstance(username, str):
57
- username = username.encode("latin1")
58
-
59
- if isinstance(password, str):
60
- password = password.encode("latin1")
61
-
62
- authstr = "Basic " + to_native_string(
63
- b64encode(b":".join((username, password))).strip()
64
- )
65
-
66
- return authstr
67
-
68
-
69
- class AuthBase:
70
- """Base class that all auth implementations derive from"""
71
-
72
- def __call__(self, r):
73
- raise NotImplementedError("Auth hooks must be callable.")
74
-
75
-
76
- class HTTPBasicAuth(AuthBase):
77
- """Attaches HTTP Basic Authentication to the given Request object."""
78
-
79
- def __init__(self, username, password):
80
- self.username = username
81
- self.password = password
82
-
83
- def __eq__(self, other):
84
- return all(
85
- [
86
- self.username == getattr(other, "username", None),
87
- self.password == getattr(other, "password", None),
88
- ]
89
- )
90
-
91
- def __ne__(self, other):
92
- return not self == other
93
-
94
- def __call__(self, r):
95
- r.headers["Authorization"] = _basic_auth_str(self.username, self.password)
96
- return r
97
-
98
-
99
- class HTTPProxyAuth(HTTPBasicAuth):
100
- """Attaches HTTP Proxy Authentication to a given Request object."""
101
-
102
- def __call__(self, r):
103
- r.headers["Proxy-Authorization"] = _basic_auth_str(self.username, self.password)
104
- return r
105
-
106
-
107
- class HTTPDigestAuth(AuthBase):
108
- """Attaches HTTP Digest Authentication to the given Request object."""
109
-
110
- def __init__(self, username, password):
111
- self.username = username
112
- self.password = password
113
- # Keep state in per-thread local storage
114
- self._thread_local = threading.local()
115
-
116
- def init_per_thread_state(self):
117
- # Ensure state is initialized just once per-thread
118
- if not hasattr(self._thread_local, "init"):
119
- self._thread_local.init = True
120
- self._thread_local.last_nonce = ""
121
- self._thread_local.nonce_count = 0
122
- self._thread_local.chal = {}
123
- self._thread_local.pos = None
124
- self._thread_local.num_401_calls = None
125
-
126
- def build_digest_header(self, method, url):
127
- """
128
- :rtype: str
129
- """
130
-
131
- realm = self._thread_local.chal["realm"]
132
- nonce = self._thread_local.chal["nonce"]
133
- qop = self._thread_local.chal.get("qop")
134
- algorithm = self._thread_local.chal.get("algorithm")
135
- opaque = self._thread_local.chal.get("opaque")
136
- hash_utf8 = None
137
-
138
- if algorithm is None:
139
- _algorithm = "MD5"
140
- else:
141
- _algorithm = algorithm.upper()
142
- # lambdas assume digest modules are imported at the top level
143
- if _algorithm == "MD5" or _algorithm == "MD5-SESS":
144
-
145
- def md5_utf8(x):
146
- if isinstance(x, str):
147
- x = x.encode("utf-8")
148
- return hashlib.md5(x).hexdigest()
149
-
150
- hash_utf8 = md5_utf8
151
- elif _algorithm == "SHA":
152
-
153
- def sha_utf8(x):
154
- if isinstance(x, str):
155
- x = x.encode("utf-8")
156
- return hashlib.sha1(x).hexdigest()
157
-
158
- hash_utf8 = sha_utf8
159
- elif _algorithm == "SHA-256":
160
-
161
- def sha256_utf8(x):
162
- if isinstance(x, str):
163
- x = x.encode("utf-8")
164
- return hashlib.sha256(x).hexdigest()
165
-
166
- hash_utf8 = sha256_utf8
167
- elif _algorithm == "SHA-512":
168
-
169
- def sha512_utf8(x):
170
- if isinstance(x, str):
171
- x = x.encode("utf-8")
172
- return hashlib.sha512(x).hexdigest()
173
-
174
- hash_utf8 = sha512_utf8
175
-
176
- KD = lambda s, d: hash_utf8(f"{s}:{d}") # noqa:E731
177
-
178
- if hash_utf8 is None:
179
- return None
180
-
181
- # XXX not implemented yet
182
- entdig = None
183
- p_parsed = urlparse(url)
184
- #: path is request-uri defined in RFC 2616 which should not be empty
185
- path = p_parsed.path or "/"
186
- if p_parsed.query:
187
- path += f"?{p_parsed.query}"
188
-
189
- A1 = f"{self.username}:{realm}:{self.password}"
190
- A2 = f"{method}:{path}"
191
-
192
- HA1 = hash_utf8(A1)
193
- HA2 = hash_utf8(A2)
194
-
195
- if nonce == self._thread_local.last_nonce:
196
- self._thread_local.nonce_count += 1
197
- else:
198
- self._thread_local.nonce_count = 1
199
- ncvalue = f"{self._thread_local.nonce_count:08x}"
200
- s = str(self._thread_local.nonce_count).encode("utf-8")
201
- s += nonce.encode("utf-8")
202
- s += time.ctime().encode("utf-8")
203
- s += os.urandom(8)
204
-
205
- cnonce = hashlib.sha1(s).hexdigest()[:16]
206
- if _algorithm == "MD5-SESS":
207
- HA1 = hash_utf8(f"{HA1}:{nonce}:{cnonce}")
208
-
209
- if not qop:
210
- respdig = KD(HA1, f"{nonce}:{HA2}")
211
- elif qop == "auth" or "auth" in qop.split(","):
212
- noncebit = f"{nonce}:{ncvalue}:{cnonce}:auth:{HA2}"
213
- respdig = KD(HA1, noncebit)
214
- else:
215
- # XXX handle auth-int.
216
- return None
217
-
218
- self._thread_local.last_nonce = nonce
219
-
220
- # XXX should the partial digests be encoded too?
221
- base = (
222
- f'username="{self.username}", realm="{realm}", nonce="{nonce}", '
223
- f'uri="{path}", response="{respdig}"'
224
- )
225
- if opaque:
226
- base += f', opaque="{opaque}"'
227
- if algorithm:
228
- base += f', algorithm="{algorithm}"'
229
- if entdig:
230
- base += f', digest="{entdig}"'
231
- if qop:
232
- base += f', qop="auth", nc={ncvalue}, cnonce="{cnonce}"'
233
-
234
- return f"Digest {base}"
235
-
236
- def handle_redirect(self, r, **kwargs):
237
- """Reset num_401_calls counter on redirects."""
238
- if r.is_redirect:
239
- self._thread_local.num_401_calls = 1
240
-
241
- def handle_401(self, r, **kwargs):
242
- """
243
- Takes the given response and tries digest-auth, if needed.
244
-
245
- :rtype: requests.Response
246
- """
247
-
248
- # If response is not 4xx, do not auth
249
- # See https://github.com/psf/requests/issues/3772
250
- if not 400 <= r.status_code < 500:
251
- self._thread_local.num_401_calls = 1
252
- return r
253
-
254
- if self._thread_local.pos is not None:
255
- # Rewind the file position indicator of the body to where
256
- # it was to resend the request.
257
- r.request.body.seek(self._thread_local.pos)
258
- s_auth = r.headers.get("www-authenticate", "")
259
-
260
- if "digest" in s_auth.lower() and self._thread_local.num_401_calls < 2:
261
- self._thread_local.num_401_calls += 1
262
- pat = re.compile(r"digest ", flags=re.IGNORECASE)
263
- self._thread_local.chal = parse_dict_header(pat.sub("", s_auth, count=1))
264
-
265
- # Consume content and release the original connection
266
- # to allow our new request to reuse the same one.
267
- r.content
268
- r.close()
269
- prep = r.request.copy()
270
- extract_cookies_to_jar(prep._cookies, r.request, r.raw)
271
- prep.prepare_cookies(prep._cookies)
272
-
273
- prep.headers["Authorization"] = self.build_digest_header(
274
- prep.method, prep.url
275
- )
276
- _r = r.connection.send(prep, **kwargs)
277
- _r.history.append(r)
278
- _r.request = prep
279
-
280
- return _r
281
-
282
- self._thread_local.num_401_calls = 1
283
- return r
284
-
285
- def __call__(self, r):
286
- # Initialize per-thread state, if needed
287
- self.init_per_thread_state()
288
- # If we have a saved nonce, skip the 401
289
- if self._thread_local.last_nonce:
290
- r.headers["Authorization"] = self.build_digest_header(r.method, r.url)
291
- try:
292
- self._thread_local.pos = r.body.tell()
293
- except AttributeError:
294
- # In the case of HTTPDigestAuth being reused and the body of
295
- # the previous request was a file-like object, pos has the
296
- # file position of the previous body. Ensure it's set to
297
- # None.
298
- self._thread_local.pos = None
299
- r.register_hook("response", self.handle_401)
300
- r.register_hook("response", self.handle_redirect)
301
- self._thread_local.num_401_calls = 1
302
-
303
- return r
304
-
305
- def __eq__(self, other):
306
- return all(
307
- [
308
- self.username == getattr(other, "username", None),
309
- self.password == getattr(other, "password", None),
310
- ]
311
- )
312
-
313
- def __ne__(self, other):
314
- return not self == other
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env python
2
-
3
- """
4
- requests.certs
5
- ~~~~~~~~~~~~~~
6
-
7
- This module returns the preferred default CA certificate bundle. There is
8
- only one — the one from the certifi package.
9
-
10
- If you are packaging Requests, e.g., for a Linux distribution or a managed
11
- environment, you can change the definition of where() to return a separately
12
- packaged CA bundle.
13
- """
14
- from pip._vendor.certifi import where
15
-
16
- if __name__ == "__main__":
17
- print(where())
@@ -1,90 +0,0 @@
1
- """
2
- requests.compat
3
- ~~~~~~~~~~~~~~~
4
-
5
- This module previously handled import compatibility issues
6
- between Python 2 and Python 3. It remains for backwards
7
- compatibility until the next major version.
8
- """
9
-
10
- import sys
11
-
12
- # -------
13
- # urllib3
14
- # -------
15
- from pip._vendor.urllib3 import __version__ as urllib3_version
16
-
17
- # Detect which major version of urllib3 is being used.
18
- try:
19
- is_urllib3_1 = int(urllib3_version.split(".")[0]) == 1
20
- except (TypeError, AttributeError):
21
- # If we can't discern a version, prefer old functionality.
22
- is_urllib3_1 = True
23
-
24
- # -------------------
25
- # Character Detection
26
- # -------------------
27
-
28
-
29
- def _resolve_char_detection():
30
- """Find supported character detection libraries."""
31
- chardet = None
32
- return chardet
33
-
34
-
35
- chardet = _resolve_char_detection()
36
-
37
- # -------
38
- # Pythons
39
- # -------
40
-
41
- # Syntax sugar.
42
- _ver = sys.version_info
43
-
44
- #: Python 2.x?
45
- is_py2 = _ver[0] == 2
46
-
47
- #: Python 3.x?
48
- is_py3 = _ver[0] == 3
49
-
50
- # Note: We've patched out simplejson support in pip because it prevents
51
- # upgrading simplejson on Windows.
52
- import json
53
- from json import JSONDecodeError
54
-
55
- # Keep OrderedDict for backwards compatibility.
56
- from collections import OrderedDict
57
- from collections.abc import Callable, Mapping, MutableMapping
58
- from http import cookiejar as cookielib
59
- from http.cookies import Morsel
60
- from io import StringIO
61
-
62
- # --------------
63
- # Legacy Imports
64
- # --------------
65
- from urllib.parse import (
66
- quote,
67
- quote_plus,
68
- unquote,
69
- unquote_plus,
70
- urldefrag,
71
- urlencode,
72
- urljoin,
73
- urlparse,
74
- urlsplit,
75
- urlunparse,
76
- )
77
- from urllib.request import (
78
- getproxies,
79
- getproxies_environment,
80
- parse_http_list,
81
- proxy_bypass,
82
- proxy_bypass_environment,
83
- )
84
-
85
- builtin_str = str
86
- str = str
87
- bytes = bytes
88
- basestring = (str, bytes)
89
- numeric_types = (int, float)
90
- integer_types = (int,)