cli-ih 0.6.3__py3-none-any.whl → 0.6.3.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 (424) hide show
  1. cli_ih/asyncClient.py +13 -7
  2. cli_ih/client.py +13 -6
  3. {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/METADATA +1 -1
  4. cli_ih-0.6.3.1.dist-info/RECORD +425 -0
  5. {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/WHEEL +1 -1
  6. {cli_ih-0.6.3.dist-info → cli_ih-0.6.3.1.dist-info}/top_level.txt +1 -0
  7. venv/Lib/site-packages/__editable___cli_ih_0_6_3_1_finder.py +85 -0
  8. venv/Lib/site-packages/pip/__init__.py +13 -0
  9. venv/Lib/site-packages/pip/__main__.py +24 -0
  10. venv/Lib/site-packages/pip/__pip-runner__.py +50 -0
  11. venv/Lib/site-packages/pip/_internal/__init__.py +18 -0
  12. venv/Lib/site-packages/pip/_internal/build_env.py +349 -0
  13. venv/Lib/site-packages/pip/_internal/cache.py +291 -0
  14. venv/Lib/site-packages/pip/_internal/cli/__init__.py +3 -0
  15. venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +184 -0
  16. venv/Lib/site-packages/pip/_internal/cli/base_command.py +244 -0
  17. venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +1138 -0
  18. venv/Lib/site-packages/pip/_internal/cli/command_context.py +28 -0
  19. venv/Lib/site-packages/pip/_internal/cli/index_command.py +175 -0
  20. venv/Lib/site-packages/pip/_internal/cli/main.py +80 -0
  21. venv/Lib/site-packages/pip/_internal/cli/main_parser.py +134 -0
  22. venv/Lib/site-packages/pip/_internal/cli/parser.py +298 -0
  23. venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +151 -0
  24. venv/Lib/site-packages/pip/_internal/cli/req_command.py +351 -0
  25. venv/Lib/site-packages/pip/_internal/cli/spinners.py +235 -0
  26. venv/Lib/site-packages/pip/_internal/cli/status_codes.py +6 -0
  27. venv/Lib/site-packages/pip/_internal/commands/__init__.py +139 -0
  28. venv/Lib/site-packages/pip/_internal/commands/cache.py +231 -0
  29. venv/Lib/site-packages/pip/_internal/commands/check.py +66 -0
  30. venv/Lib/site-packages/pip/_internal/commands/completion.py +135 -0
  31. venv/Lib/site-packages/pip/_internal/commands/configuration.py +288 -0
  32. venv/Lib/site-packages/pip/_internal/commands/debug.py +203 -0
  33. venv/Lib/site-packages/pip/_internal/commands/download.py +145 -0
  34. venv/Lib/site-packages/pip/_internal/commands/freeze.py +107 -0
  35. venv/Lib/site-packages/pip/_internal/commands/hash.py +58 -0
  36. venv/Lib/site-packages/pip/_internal/commands/help.py +40 -0
  37. venv/Lib/site-packages/pip/_internal/commands/index.py +159 -0
  38. venv/Lib/site-packages/pip/_internal/commands/inspect.py +92 -0
  39. venv/Lib/site-packages/pip/_internal/commands/install.py +798 -0
  40. venv/Lib/site-packages/pip/_internal/commands/list.py +400 -0
  41. venv/Lib/site-packages/pip/_internal/commands/lock.py +170 -0
  42. venv/Lib/site-packages/pip/_internal/commands/search.py +178 -0
  43. venv/Lib/site-packages/pip/_internal/commands/show.py +231 -0
  44. venv/Lib/site-packages/pip/_internal/commands/uninstall.py +113 -0
  45. venv/Lib/site-packages/pip/_internal/commands/wheel.py +181 -0
  46. venv/Lib/site-packages/pip/_internal/configuration.py +397 -0
  47. venv/Lib/site-packages/pip/_internal/distributions/__init__.py +21 -0
  48. venv/Lib/site-packages/pip/_internal/distributions/base.py +55 -0
  49. venv/Lib/site-packages/pip/_internal/distributions/installed.py +33 -0
  50. venv/Lib/site-packages/pip/_internal/distributions/sdist.py +165 -0
  51. venv/Lib/site-packages/pip/_internal/distributions/wheel.py +44 -0
  52. venv/Lib/site-packages/pip/_internal/exceptions.py +881 -0
  53. venv/Lib/site-packages/pip/_internal/index/__init__.py +1 -0
  54. venv/Lib/site-packages/pip/_internal/index/collector.py +489 -0
  55. venv/Lib/site-packages/pip/_internal/index/package_finder.py +1059 -0
  56. venv/Lib/site-packages/pip/_internal/index/sources.py +287 -0
  57. venv/Lib/site-packages/pip/_internal/locations/__init__.py +441 -0
  58. venv/Lib/site-packages/pip/_internal/locations/_distutils.py +173 -0
  59. venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +215 -0
  60. venv/Lib/site-packages/pip/_internal/locations/base.py +82 -0
  61. venv/Lib/site-packages/pip/_internal/main.py +12 -0
  62. venv/Lib/site-packages/pip/_internal/metadata/__init__.py +164 -0
  63. venv/Lib/site-packages/pip/_internal/metadata/_json.py +87 -0
  64. venv/Lib/site-packages/pip/_internal/metadata/base.py +685 -0
  65. venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  66. venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +87 -0
  67. venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +223 -0
  68. venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +143 -0
  69. venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +298 -0
  70. venv/Lib/site-packages/pip/_internal/models/__init__.py +1 -0
  71. venv/Lib/site-packages/pip/_internal/models/candidate.py +25 -0
  72. venv/Lib/site-packages/pip/_internal/models/direct_url.py +227 -0
  73. venv/Lib/site-packages/pip/_internal/models/format_control.py +78 -0
  74. venv/Lib/site-packages/pip/_internal/models/index.py +28 -0
  75. venv/Lib/site-packages/pip/_internal/models/installation_report.py +57 -0
  76. venv/Lib/site-packages/pip/_internal/models/link.py +613 -0
  77. venv/Lib/site-packages/pip/_internal/models/pylock.py +188 -0
  78. venv/Lib/site-packages/pip/_internal/models/scheme.py +25 -0
  79. venv/Lib/site-packages/pip/_internal/models/search_scope.py +126 -0
  80. venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +53 -0
  81. venv/Lib/site-packages/pip/_internal/models/target_python.py +122 -0
  82. venv/Lib/site-packages/pip/_internal/models/wheel.py +141 -0
  83. venv/Lib/site-packages/pip/_internal/network/__init__.py +1 -0
  84. venv/Lib/site-packages/pip/_internal/network/auth.py +564 -0
  85. venv/Lib/site-packages/pip/_internal/network/cache.py +133 -0
  86. venv/Lib/site-packages/pip/_internal/network/download.py +342 -0
  87. venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +213 -0
  88. venv/Lib/site-packages/pip/_internal/network/session.py +528 -0
  89. venv/Lib/site-packages/pip/_internal/network/utils.py +98 -0
  90. venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +61 -0
  91. venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  92. venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  93. venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +140 -0
  94. venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +38 -0
  95. venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +41 -0
  96. venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +73 -0
  97. venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +38 -0
  98. venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +47 -0
  99. venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +119 -0
  100. venv/Lib/site-packages/pip/_internal/operations/check.py +175 -0
  101. venv/Lib/site-packages/pip/_internal/operations/freeze.py +259 -0
  102. venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +1 -0
  103. venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +48 -0
  104. venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +746 -0
  105. venv/Lib/site-packages/pip/_internal/operations/prepare.py +742 -0
  106. venv/Lib/site-packages/pip/_internal/pyproject.py +182 -0
  107. venv/Lib/site-packages/pip/_internal/req/__init__.py +105 -0
  108. venv/Lib/site-packages/pip/_internal/req/constructors.py +562 -0
  109. venv/Lib/site-packages/pip/_internal/req/req_dependency_group.py +75 -0
  110. venv/Lib/site-packages/pip/_internal/req/req_file.py +620 -0
  111. venv/Lib/site-packages/pip/_internal/req/req_install.py +937 -0
  112. venv/Lib/site-packages/pip/_internal/req/req_set.py +81 -0
  113. venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +639 -0
  114. venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  115. venv/Lib/site-packages/pip/_internal/resolution/base.py +20 -0
  116. venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  117. venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +598 -0
  118. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  119. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +142 -0
  120. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +582 -0
  121. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +814 -0
  122. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +166 -0
  123. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +276 -0
  124. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +85 -0
  125. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +247 -0
  126. venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +336 -0
  127. venv/Lib/site-packages/pip/_internal/self_outdated_check.py +254 -0
  128. venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  129. venv/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  130. venv/Lib/site-packages/pip/_internal/utils/_log.py +38 -0
  131. venv/Lib/site-packages/pip/_internal/utils/appdirs.py +52 -0
  132. venv/Lib/site-packages/pip/_internal/utils/compat.py +85 -0
  133. venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +201 -0
  134. venv/Lib/site-packages/pip/_internal/utils/datetime.py +10 -0
  135. venv/Lib/site-packages/pip/_internal/utils/deprecation.py +126 -0
  136. venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
  137. venv/Lib/site-packages/pip/_internal/utils/egg_link.py +81 -0
  138. venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +88 -0
  139. venv/Lib/site-packages/pip/_internal/utils/filesystem.py +152 -0
  140. venv/Lib/site-packages/pip/_internal/utils/filetypes.py +24 -0
  141. venv/Lib/site-packages/pip/_internal/utils/glibc.py +102 -0
  142. venv/Lib/site-packages/pip/_internal/utils/hashes.py +150 -0
  143. venv/Lib/site-packages/pip/_internal/utils/logging.py +364 -0
  144. venv/Lib/site-packages/pip/_internal/utils/misc.py +765 -0
  145. venv/Lib/site-packages/pip/_internal/utils/packaging.py +44 -0
  146. venv/Lib/site-packages/pip/_internal/utils/retry.py +45 -0
  147. venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +149 -0
  148. venv/Lib/site-packages/pip/_internal/utils/subprocess.py +248 -0
  149. venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +294 -0
  150. venv/Lib/site-packages/pip/_internal/utils/unpacking.py +337 -0
  151. venv/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
  152. venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +105 -0
  153. venv/Lib/site-packages/pip/_internal/utils/wheel.py +132 -0
  154. venv/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
  155. venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +130 -0
  156. venv/Lib/site-packages/pip/_internal/vcs/git.py +571 -0
  157. venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +186 -0
  158. venv/Lib/site-packages/pip/_internal/vcs/subversion.py +335 -0
  159. venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +693 -0
  160. venv/Lib/site-packages/pip/_internal/wheel_builder.py +334 -0
  161. venv/Lib/site-packages/pip/_vendor/__init__.py +117 -0
  162. venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +29 -0
  163. venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  164. venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +168 -0
  165. venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
  166. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  167. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +145 -0
  168. venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  169. venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +511 -0
  170. venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
  171. venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
  172. venv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  173. venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  174. venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  175. venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  176. venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  177. venv/Lib/site-packages/pip/_vendor/certifi/core.py +83 -0
  178. venv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  179. venv/Lib/site-packages/pip/_vendor/dependency_groups/__init__.py +13 -0
  180. venv/Lib/site-packages/pip/_vendor/dependency_groups/__main__.py +65 -0
  181. venv/Lib/site-packages/pip/_vendor/dependency_groups/_implementation.py +209 -0
  182. venv/Lib/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py +59 -0
  183. venv/Lib/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py +62 -0
  184. venv/Lib/site-packages/pip/_vendor/dependency_groups/_toml_compat.py +9 -0
  185. venv/Lib/site-packages/pip/_vendor/dependency_groups/py.typed +0 -0
  186. venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  187. venv/Lib/site-packages/pip/_vendor/distlib/compat.py +1137 -0
  188. venv/Lib/site-packages/pip/_vendor/distlib/resources.py +358 -0
  189. venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +447 -0
  190. venv/Lib/site-packages/pip/_vendor/distlib/util.py +1984 -0
  191. venv/Lib/site-packages/pip/_vendor/distro/__init__.py +54 -0
  192. venv/Lib/site-packages/pip/_vendor/distro/__main__.py +4 -0
  193. venv/Lib/site-packages/pip/_vendor/distro/distro.py +1403 -0
  194. venv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  195. venv/Lib/site-packages/pip/_vendor/idna/__init__.py +45 -0
  196. venv/Lib/site-packages/pip/_vendor/idna/codec.py +122 -0
  197. venv/Lib/site-packages/pip/_vendor/idna/compat.py +15 -0
  198. venv/Lib/site-packages/pip/_vendor/idna/core.py +437 -0
  199. venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +4243 -0
  200. venv/Lib/site-packages/pip/_vendor/idna/intranges.py +57 -0
  201. venv/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -0
  202. venv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  203. venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +8681 -0
  204. venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
  205. venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  206. venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +170 -0
  207. venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
  208. venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +15 -0
  209. venv/Lib/site-packages/pip/_vendor/packaging/_elffile.py +109 -0
  210. venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +262 -0
  211. venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
  212. venv/Lib/site-packages/pip/_vendor/packaging/_parser.py +353 -0
  213. venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +61 -0
  214. venv/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +195 -0
  215. venv/Lib/site-packages/pip/_vendor/packaging/licenses/__init__.py +145 -0
  216. venv/Lib/site-packages/pip/_vendor/packaging/licenses/_spdx.py +759 -0
  217. venv/Lib/site-packages/pip/_vendor/packaging/markers.py +362 -0
  218. venv/Lib/site-packages/pip/_vendor/packaging/metadata.py +862 -0
  219. venv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  220. venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +91 -0
  221. venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +1019 -0
  222. venv/Lib/site-packages/pip/_vendor/packaging/tags.py +656 -0
  223. venv/Lib/site-packages/pip/_vendor/packaging/utils.py +163 -0
  224. venv/Lib/site-packages/pip/_vendor/packaging/version.py +582 -0
  225. venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
  226. venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
  227. venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
  228. venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +249 -0
  229. venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +299 -0
  230. venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +144 -0
  231. venv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  232. venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +272 -0
  233. venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +21 -0
  234. venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +272 -0
  235. venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  236. venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  237. venv/Lib/site-packages/pip/_vendor/pygments/console.py +70 -0
  238. venv/Lib/site-packages/pip/_vendor/pygments/filter.py +70 -0
  239. venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  240. venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +129 -0
  241. venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
  242. venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  243. venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +963 -0
  244. venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  245. venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +602 -0
  246. venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +1201 -0
  247. venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  248. venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +72 -0
  249. venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  250. venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  251. venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
  252. venv/Lib/site-packages/pip/_vendor/pygments/style.py +203 -0
  253. venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
  254. venv/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
  255. venv/Lib/site-packages/pip/_vendor/pygments/token.py +214 -0
  256. venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  257. venv/Lib/site-packages/pip/_vendor/pygments/util.py +324 -0
  258. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
  259. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
  260. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
  261. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
  262. venv/Lib/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  263. venv/Lib/site-packages/pip/_vendor/requests/__init__.py +179 -0
  264. venv/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
  265. venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
  266. venv/Lib/site-packages/pip/_vendor/requests/adapters.py +719 -0
  267. venv/Lib/site-packages/pip/_vendor/requests/api.py +157 -0
  268. venv/Lib/site-packages/pip/_vendor/requests/auth.py +314 -0
  269. venv/Lib/site-packages/pip/_vendor/requests/certs.py +17 -0
  270. venv/Lib/site-packages/pip/_vendor/requests/compat.py +90 -0
  271. venv/Lib/site-packages/pip/_vendor/requests/cookies.py +561 -0
  272. venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +151 -0
  273. venv/Lib/site-packages/pip/_vendor/requests/help.py +127 -0
  274. venv/Lib/site-packages/pip/_vendor/requests/hooks.py +33 -0
  275. venv/Lib/site-packages/pip/_vendor/requests/models.py +1039 -0
  276. venv/Lib/site-packages/pip/_vendor/requests/packages.py +25 -0
  277. venv/Lib/site-packages/pip/_vendor/requests/sessions.py +831 -0
  278. venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  279. venv/Lib/site-packages/pip/_vendor/requests/structures.py +99 -0
  280. venv/Lib/site-packages/pip/_vendor/requests/utils.py +1086 -0
  281. venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +27 -0
  282. venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +196 -0
  283. venv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  284. venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +55 -0
  285. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py +27 -0
  286. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py +47 -0
  287. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py +48 -0
  288. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py +57 -0
  289. venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py +622 -0
  290. venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +209 -0
  291. venv/Lib/site-packages/pip/_vendor/rich/__init__.py +177 -0
  292. venv/Lib/site-packages/pip/_vendor/rich/__main__.py +245 -0
  293. venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
  294. venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  295. venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  296. venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  297. venv/Lib/site-packages/pip/_vendor/rich/_extension.py +10 -0
  298. venv/Lib/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  299. venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +268 -0
  300. venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  301. venv/Lib/site-packages/pip/_vendor/rich/_loop.py +43 -0
  302. venv/Lib/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  303. venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  304. venv/Lib/site-packages/pip/_vendor/rich/_pick.py +17 -0
  305. venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +153 -0
  306. venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  307. venv/Lib/site-packages/pip/_vendor/rich/_stack.py +16 -0
  308. venv/Lib/site-packages/pip/_vendor/rich/_timer.py +19 -0
  309. venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
  310. venv/Lib/site-packages/pip/_vendor/rich/_windows.py +71 -0
  311. venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  312. venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +93 -0
  313. venv/Lib/site-packages/pip/_vendor/rich/abc.py +33 -0
  314. venv/Lib/site-packages/pip/_vendor/rich/align.py +306 -0
  315. venv/Lib/site-packages/pip/_vendor/rich/ansi.py +241 -0
  316. venv/Lib/site-packages/pip/_vendor/rich/bar.py +93 -0
  317. venv/Lib/site-packages/pip/_vendor/rich/box.py +474 -0
  318. venv/Lib/site-packages/pip/_vendor/rich/cells.py +174 -0
  319. venv/Lib/site-packages/pip/_vendor/rich/color.py +621 -0
  320. venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  321. venv/Lib/site-packages/pip/_vendor/rich/columns.py +187 -0
  322. venv/Lib/site-packages/pip/_vendor/rich/console.py +2680 -0
  323. venv/Lib/site-packages/pip/_vendor/rich/constrain.py +37 -0
  324. venv/Lib/site-packages/pip/_vendor/rich/containers.py +167 -0
  325. venv/Lib/site-packages/pip/_vendor/rich/control.py +219 -0
  326. venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +193 -0
  327. venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +39 -0
  328. venv/Lib/site-packages/pip/_vendor/rich/emoji.py +91 -0
  329. venv/Lib/site-packages/pip/_vendor/rich/errors.py +34 -0
  330. venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  331. venv/Lib/site-packages/pip/_vendor/rich/filesize.py +88 -0
  332. venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  333. venv/Lib/site-packages/pip/_vendor/rich/json.py +139 -0
  334. venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  335. venv/Lib/site-packages/pip/_vendor/rich/layout.py +442 -0
  336. venv/Lib/site-packages/pip/_vendor/rich/live.py +400 -0
  337. venv/Lib/site-packages/pip/_vendor/rich/live_render.py +106 -0
  338. venv/Lib/site-packages/pip/_vendor/rich/logging.py +297 -0
  339. venv/Lib/site-packages/pip/_vendor/rich/markup.py +251 -0
  340. venv/Lib/site-packages/pip/_vendor/rich/measure.py +151 -0
  341. venv/Lib/site-packages/pip/_vendor/rich/padding.py +141 -0
  342. venv/Lib/site-packages/pip/_vendor/rich/pager.py +34 -0
  343. venv/Lib/site-packages/pip/_vendor/rich/palette.py +100 -0
  344. venv/Lib/site-packages/pip/_vendor/rich/panel.py +317 -0
  345. venv/Lib/site-packages/pip/_vendor/rich/pretty.py +1016 -0
  346. venv/Lib/site-packages/pip/_vendor/rich/progress.py +1715 -0
  347. venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
  348. venv/Lib/site-packages/pip/_vendor/rich/prompt.py +400 -0
  349. venv/Lib/site-packages/pip/_vendor/rich/protocol.py +42 -0
  350. venv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  351. venv/Lib/site-packages/pip/_vendor/rich/region.py +10 -0
  352. venv/Lib/site-packages/pip/_vendor/rich/repr.py +149 -0
  353. venv/Lib/site-packages/pip/_vendor/rich/rule.py +130 -0
  354. venv/Lib/site-packages/pip/_vendor/rich/scope.py +86 -0
  355. venv/Lib/site-packages/pip/_vendor/rich/screen.py +54 -0
  356. venv/Lib/site-packages/pip/_vendor/rich/segment.py +752 -0
  357. venv/Lib/site-packages/pip/_vendor/rich/spinner.py +132 -0
  358. venv/Lib/site-packages/pip/_vendor/rich/status.py +131 -0
  359. venv/Lib/site-packages/pip/_vendor/rich/style.py +796 -0
  360. venv/Lib/site-packages/pip/_vendor/rich/styled.py +42 -0
  361. venv/Lib/site-packages/pip/_vendor/rich/syntax.py +985 -0
  362. venv/Lib/site-packages/pip/_vendor/rich/table.py +1006 -0
  363. venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  364. venv/Lib/site-packages/pip/_vendor/rich/text.py +1361 -0
  365. venv/Lib/site-packages/pip/_vendor/rich/theme.py +115 -0
  366. venv/Lib/site-packages/pip/_vendor/rich/themes.py +5 -0
  367. venv/Lib/site-packages/pip/_vendor/rich/traceback.py +899 -0
  368. venv/Lib/site-packages/pip/_vendor/rich/tree.py +257 -0
  369. venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +8 -0
  370. venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +770 -0
  371. venv/Lib/site-packages/pip/_vendor/tomli/_re.py +112 -0
  372. venv/Lib/site-packages/pip/_vendor/tomli/_types.py +10 -0
  373. venv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  374. venv/Lib/site-packages/pip/_vendor/tomli_w/__init__.py +4 -0
  375. venv/Lib/site-packages/pip/_vendor/tomli_w/_writer.py +229 -0
  376. venv/Lib/site-packages/pip/_vendor/tomli_w/py.typed +1 -0
  377. venv/Lib/site-packages/pip/_vendor/truststore/__init__.py +36 -0
  378. venv/Lib/site-packages/pip/_vendor/truststore/_api.py +333 -0
  379. venv/Lib/site-packages/pip/_vendor/truststore/_macos.py +571 -0
  380. venv/Lib/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
  381. venv/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  382. venv/Lib/site-packages/pip/_vendor/truststore/_windows.py +567 -0
  383. venv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  384. venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
  385. venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +355 -0
  386. venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  387. venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +572 -0
  388. venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1140 -0
  389. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  390. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  391. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  392. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  393. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
  394. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  395. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
  396. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
  397. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
  398. venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  399. venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
  400. venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  401. venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  402. venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  403. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  404. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  405. venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
  406. venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
  407. venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +540 -0
  408. venv/Lib/site-packages/pip/_vendor/urllib3/request.py +191 -0
  409. venv/Lib/site-packages/pip/_vendor/urllib3/response.py +879 -0
  410. venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  411. venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
  412. venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
  413. venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  414. venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
  415. venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  416. venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +622 -0
  417. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +504 -0
  418. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  419. venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  420. venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
  421. venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
  422. venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
  423. venv/Lib/site-packages/pip/py.typed +4 -0
  424. cli_ih-0.6.3.dist-info/RECORD +0 -8
@@ -0,0 +1,36 @@
1
+ """
2
+ This module provides means to detect the App Engine environment.
3
+ """
4
+
5
+ import os
6
+
7
+
8
+ def is_appengine():
9
+ return is_local_appengine() or is_prod_appengine()
10
+
11
+
12
+ def is_appengine_sandbox():
13
+ """Reports if the app is running in the first generation sandbox.
14
+
15
+ The second generation runtimes are technically still in a sandbox, but it
16
+ is much less restrictive, so generally you shouldn't need to check for it.
17
+ see https://cloud.google.com/appengine/docs/standard/runtimes
18
+ """
19
+ return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27"
20
+
21
+
22
+ def is_local_appengine():
23
+ return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
24
+ "SERVER_SOFTWARE", ""
25
+ ).startswith("Development/")
26
+
27
+
28
+ def is_prod_appengine():
29
+ return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
30
+ "SERVER_SOFTWARE", ""
31
+ ).startswith("Google App Engine/")
32
+
33
+
34
+ def is_prod_appengine_mvms():
35
+ """Deprecated."""
36
+ return False
@@ -0,0 +1,519 @@
1
+ """
2
+ This module uses ctypes to bind a whole bunch of functions and constants from
3
+ SecureTransport. The goal here is to provide the low-level API to
4
+ SecureTransport. These are essentially the C-level functions and constants, and
5
+ they're pretty gross to work with.
6
+
7
+ This code is a bastardised version of the code found in Will Bond's oscrypto
8
+ library. An enormous debt is owed to him for blazing this trail for us. For
9
+ that reason, this code should be considered to be covered both by urllib3's
10
+ license and by oscrypto's:
11
+
12
+ Copyright (c) 2015-2016 Will Bond <will@wbond.net>
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a
15
+ copy of this software and associated documentation files (the "Software"),
16
+ to deal in the Software without restriction, including without limitation
17
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
+ and/or sell copies of the Software, and to permit persons to whom the
19
+ Software is furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in
22
+ all copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30
+ DEALINGS IN THE SOFTWARE.
31
+ """
32
+ from __future__ import absolute_import
33
+
34
+ import platform
35
+ from ctypes import (
36
+ CDLL,
37
+ CFUNCTYPE,
38
+ POINTER,
39
+ c_bool,
40
+ c_byte,
41
+ c_char_p,
42
+ c_int32,
43
+ c_long,
44
+ c_size_t,
45
+ c_uint32,
46
+ c_ulong,
47
+ c_void_p,
48
+ )
49
+ from ctypes.util import find_library
50
+
51
+ from ...packages.six import raise_from
52
+
53
+ if platform.system() != "Darwin":
54
+ raise ImportError("Only macOS is supported")
55
+
56
+ version = platform.mac_ver()[0]
57
+ version_info = tuple(map(int, version.split(".")))
58
+ if version_info < (10, 8):
59
+ raise OSError(
60
+ "Only OS X 10.8 and newer are supported, not %s.%s"
61
+ % (version_info[0], version_info[1])
62
+ )
63
+
64
+
65
+ def load_cdll(name, macos10_16_path):
66
+ """Loads a CDLL by name, falling back to known path on 10.16+"""
67
+ try:
68
+ # Big Sur is technically 11 but we use 10.16 due to the Big Sur
69
+ # beta being labeled as 10.16.
70
+ if version_info >= (10, 16):
71
+ path = macos10_16_path
72
+ else:
73
+ path = find_library(name)
74
+ if not path:
75
+ raise OSError # Caught and reraised as 'ImportError'
76
+ return CDLL(path, use_errno=True)
77
+ except OSError:
78
+ raise_from(ImportError("The library %s failed to load" % name), None)
79
+
80
+
81
+ Security = load_cdll(
82
+ "Security", "/System/Library/Frameworks/Security.framework/Security"
83
+ )
84
+ CoreFoundation = load_cdll(
85
+ "CoreFoundation",
86
+ "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation",
87
+ )
88
+
89
+
90
+ Boolean = c_bool
91
+ CFIndex = c_long
92
+ CFStringEncoding = c_uint32
93
+ CFData = c_void_p
94
+ CFString = c_void_p
95
+ CFArray = c_void_p
96
+ CFMutableArray = c_void_p
97
+ CFDictionary = c_void_p
98
+ CFError = c_void_p
99
+ CFType = c_void_p
100
+ CFTypeID = c_ulong
101
+
102
+ CFTypeRef = POINTER(CFType)
103
+ CFAllocatorRef = c_void_p
104
+
105
+ OSStatus = c_int32
106
+
107
+ CFDataRef = POINTER(CFData)
108
+ CFStringRef = POINTER(CFString)
109
+ CFArrayRef = POINTER(CFArray)
110
+ CFMutableArrayRef = POINTER(CFMutableArray)
111
+ CFDictionaryRef = POINTER(CFDictionary)
112
+ CFArrayCallBacks = c_void_p
113
+ CFDictionaryKeyCallBacks = c_void_p
114
+ CFDictionaryValueCallBacks = c_void_p
115
+
116
+ SecCertificateRef = POINTER(c_void_p)
117
+ SecExternalFormat = c_uint32
118
+ SecExternalItemType = c_uint32
119
+ SecIdentityRef = POINTER(c_void_p)
120
+ SecItemImportExportFlags = c_uint32
121
+ SecItemImportExportKeyParameters = c_void_p
122
+ SecKeychainRef = POINTER(c_void_p)
123
+ SSLProtocol = c_uint32
124
+ SSLCipherSuite = c_uint32
125
+ SSLContextRef = POINTER(c_void_p)
126
+ SecTrustRef = POINTER(c_void_p)
127
+ SSLConnectionRef = c_uint32
128
+ SecTrustResultType = c_uint32
129
+ SecTrustOptionFlags = c_uint32
130
+ SSLProtocolSide = c_uint32
131
+ SSLConnectionType = c_uint32
132
+ SSLSessionOption = c_uint32
133
+
134
+
135
+ try:
136
+ Security.SecItemImport.argtypes = [
137
+ CFDataRef,
138
+ CFStringRef,
139
+ POINTER(SecExternalFormat),
140
+ POINTER(SecExternalItemType),
141
+ SecItemImportExportFlags,
142
+ POINTER(SecItemImportExportKeyParameters),
143
+ SecKeychainRef,
144
+ POINTER(CFArrayRef),
145
+ ]
146
+ Security.SecItemImport.restype = OSStatus
147
+
148
+ Security.SecCertificateGetTypeID.argtypes = []
149
+ Security.SecCertificateGetTypeID.restype = CFTypeID
150
+
151
+ Security.SecIdentityGetTypeID.argtypes = []
152
+ Security.SecIdentityGetTypeID.restype = CFTypeID
153
+
154
+ Security.SecKeyGetTypeID.argtypes = []
155
+ Security.SecKeyGetTypeID.restype = CFTypeID
156
+
157
+ Security.SecCertificateCreateWithData.argtypes = [CFAllocatorRef, CFDataRef]
158
+ Security.SecCertificateCreateWithData.restype = SecCertificateRef
159
+
160
+ Security.SecCertificateCopyData.argtypes = [SecCertificateRef]
161
+ Security.SecCertificateCopyData.restype = CFDataRef
162
+
163
+ Security.SecCopyErrorMessageString.argtypes = [OSStatus, c_void_p]
164
+ Security.SecCopyErrorMessageString.restype = CFStringRef
165
+
166
+ Security.SecIdentityCreateWithCertificate.argtypes = [
167
+ CFTypeRef,
168
+ SecCertificateRef,
169
+ POINTER(SecIdentityRef),
170
+ ]
171
+ Security.SecIdentityCreateWithCertificate.restype = OSStatus
172
+
173
+ Security.SecKeychainCreate.argtypes = [
174
+ c_char_p,
175
+ c_uint32,
176
+ c_void_p,
177
+ Boolean,
178
+ c_void_p,
179
+ POINTER(SecKeychainRef),
180
+ ]
181
+ Security.SecKeychainCreate.restype = OSStatus
182
+
183
+ Security.SecKeychainDelete.argtypes = [SecKeychainRef]
184
+ Security.SecKeychainDelete.restype = OSStatus
185
+
186
+ Security.SecPKCS12Import.argtypes = [
187
+ CFDataRef,
188
+ CFDictionaryRef,
189
+ POINTER(CFArrayRef),
190
+ ]
191
+ Security.SecPKCS12Import.restype = OSStatus
192
+
193
+ SSLReadFunc = CFUNCTYPE(OSStatus, SSLConnectionRef, c_void_p, POINTER(c_size_t))
194
+ SSLWriteFunc = CFUNCTYPE(
195
+ OSStatus, SSLConnectionRef, POINTER(c_byte), POINTER(c_size_t)
196
+ )
197
+
198
+ Security.SSLSetIOFuncs.argtypes = [SSLContextRef, SSLReadFunc, SSLWriteFunc]
199
+ Security.SSLSetIOFuncs.restype = OSStatus
200
+
201
+ Security.SSLSetPeerID.argtypes = [SSLContextRef, c_char_p, c_size_t]
202
+ Security.SSLSetPeerID.restype = OSStatus
203
+
204
+ Security.SSLSetCertificate.argtypes = [SSLContextRef, CFArrayRef]
205
+ Security.SSLSetCertificate.restype = OSStatus
206
+
207
+ Security.SSLSetCertificateAuthorities.argtypes = [SSLContextRef, CFTypeRef, Boolean]
208
+ Security.SSLSetCertificateAuthorities.restype = OSStatus
209
+
210
+ Security.SSLSetConnection.argtypes = [SSLContextRef, SSLConnectionRef]
211
+ Security.SSLSetConnection.restype = OSStatus
212
+
213
+ Security.SSLSetPeerDomainName.argtypes = [SSLContextRef, c_char_p, c_size_t]
214
+ Security.SSLSetPeerDomainName.restype = OSStatus
215
+
216
+ Security.SSLHandshake.argtypes = [SSLContextRef]
217
+ Security.SSLHandshake.restype = OSStatus
218
+
219
+ Security.SSLRead.argtypes = [SSLContextRef, c_char_p, c_size_t, POINTER(c_size_t)]
220
+ Security.SSLRead.restype = OSStatus
221
+
222
+ Security.SSLWrite.argtypes = [SSLContextRef, c_char_p, c_size_t, POINTER(c_size_t)]
223
+ Security.SSLWrite.restype = OSStatus
224
+
225
+ Security.SSLClose.argtypes = [SSLContextRef]
226
+ Security.SSLClose.restype = OSStatus
227
+
228
+ Security.SSLGetNumberSupportedCiphers.argtypes = [SSLContextRef, POINTER(c_size_t)]
229
+ Security.SSLGetNumberSupportedCiphers.restype = OSStatus
230
+
231
+ Security.SSLGetSupportedCiphers.argtypes = [
232
+ SSLContextRef,
233
+ POINTER(SSLCipherSuite),
234
+ POINTER(c_size_t),
235
+ ]
236
+ Security.SSLGetSupportedCiphers.restype = OSStatus
237
+
238
+ Security.SSLSetEnabledCiphers.argtypes = [
239
+ SSLContextRef,
240
+ POINTER(SSLCipherSuite),
241
+ c_size_t,
242
+ ]
243
+ Security.SSLSetEnabledCiphers.restype = OSStatus
244
+
245
+ Security.SSLGetNumberEnabledCiphers.argtype = [SSLContextRef, POINTER(c_size_t)]
246
+ Security.SSLGetNumberEnabledCiphers.restype = OSStatus
247
+
248
+ Security.SSLGetEnabledCiphers.argtypes = [
249
+ SSLContextRef,
250
+ POINTER(SSLCipherSuite),
251
+ POINTER(c_size_t),
252
+ ]
253
+ Security.SSLGetEnabledCiphers.restype = OSStatus
254
+
255
+ Security.SSLGetNegotiatedCipher.argtypes = [SSLContextRef, POINTER(SSLCipherSuite)]
256
+ Security.SSLGetNegotiatedCipher.restype = OSStatus
257
+
258
+ Security.SSLGetNegotiatedProtocolVersion.argtypes = [
259
+ SSLContextRef,
260
+ POINTER(SSLProtocol),
261
+ ]
262
+ Security.SSLGetNegotiatedProtocolVersion.restype = OSStatus
263
+
264
+ Security.SSLCopyPeerTrust.argtypes = [SSLContextRef, POINTER(SecTrustRef)]
265
+ Security.SSLCopyPeerTrust.restype = OSStatus
266
+
267
+ Security.SecTrustSetAnchorCertificates.argtypes = [SecTrustRef, CFArrayRef]
268
+ Security.SecTrustSetAnchorCertificates.restype = OSStatus
269
+
270
+ Security.SecTrustSetAnchorCertificatesOnly.argstypes = [SecTrustRef, Boolean]
271
+ Security.SecTrustSetAnchorCertificatesOnly.restype = OSStatus
272
+
273
+ Security.SecTrustEvaluate.argtypes = [SecTrustRef, POINTER(SecTrustResultType)]
274
+ Security.SecTrustEvaluate.restype = OSStatus
275
+
276
+ Security.SecTrustGetCertificateCount.argtypes = [SecTrustRef]
277
+ Security.SecTrustGetCertificateCount.restype = CFIndex
278
+
279
+ Security.SecTrustGetCertificateAtIndex.argtypes = [SecTrustRef, CFIndex]
280
+ Security.SecTrustGetCertificateAtIndex.restype = SecCertificateRef
281
+
282
+ Security.SSLCreateContext.argtypes = [
283
+ CFAllocatorRef,
284
+ SSLProtocolSide,
285
+ SSLConnectionType,
286
+ ]
287
+ Security.SSLCreateContext.restype = SSLContextRef
288
+
289
+ Security.SSLSetSessionOption.argtypes = [SSLContextRef, SSLSessionOption, Boolean]
290
+ Security.SSLSetSessionOption.restype = OSStatus
291
+
292
+ Security.SSLSetProtocolVersionMin.argtypes = [SSLContextRef, SSLProtocol]
293
+ Security.SSLSetProtocolVersionMin.restype = OSStatus
294
+
295
+ Security.SSLSetProtocolVersionMax.argtypes = [SSLContextRef, SSLProtocol]
296
+ Security.SSLSetProtocolVersionMax.restype = OSStatus
297
+
298
+ try:
299
+ Security.SSLSetALPNProtocols.argtypes = [SSLContextRef, CFArrayRef]
300
+ Security.SSLSetALPNProtocols.restype = OSStatus
301
+ except AttributeError:
302
+ # Supported only in 10.12+
303
+ pass
304
+
305
+ Security.SecCopyErrorMessageString.argtypes = [OSStatus, c_void_p]
306
+ Security.SecCopyErrorMessageString.restype = CFStringRef
307
+
308
+ Security.SSLReadFunc = SSLReadFunc
309
+ Security.SSLWriteFunc = SSLWriteFunc
310
+ Security.SSLContextRef = SSLContextRef
311
+ Security.SSLProtocol = SSLProtocol
312
+ Security.SSLCipherSuite = SSLCipherSuite
313
+ Security.SecIdentityRef = SecIdentityRef
314
+ Security.SecKeychainRef = SecKeychainRef
315
+ Security.SecTrustRef = SecTrustRef
316
+ Security.SecTrustResultType = SecTrustResultType
317
+ Security.SecExternalFormat = SecExternalFormat
318
+ Security.OSStatus = OSStatus
319
+
320
+ Security.kSecImportExportPassphrase = CFStringRef.in_dll(
321
+ Security, "kSecImportExportPassphrase"
322
+ )
323
+ Security.kSecImportItemIdentity = CFStringRef.in_dll(
324
+ Security, "kSecImportItemIdentity"
325
+ )
326
+
327
+ # CoreFoundation time!
328
+ CoreFoundation.CFRetain.argtypes = [CFTypeRef]
329
+ CoreFoundation.CFRetain.restype = CFTypeRef
330
+
331
+ CoreFoundation.CFRelease.argtypes = [CFTypeRef]
332
+ CoreFoundation.CFRelease.restype = None
333
+
334
+ CoreFoundation.CFGetTypeID.argtypes = [CFTypeRef]
335
+ CoreFoundation.CFGetTypeID.restype = CFTypeID
336
+
337
+ CoreFoundation.CFStringCreateWithCString.argtypes = [
338
+ CFAllocatorRef,
339
+ c_char_p,
340
+ CFStringEncoding,
341
+ ]
342
+ CoreFoundation.CFStringCreateWithCString.restype = CFStringRef
343
+
344
+ CoreFoundation.CFStringGetCStringPtr.argtypes = [CFStringRef, CFStringEncoding]
345
+ CoreFoundation.CFStringGetCStringPtr.restype = c_char_p
346
+
347
+ CoreFoundation.CFStringGetCString.argtypes = [
348
+ CFStringRef,
349
+ c_char_p,
350
+ CFIndex,
351
+ CFStringEncoding,
352
+ ]
353
+ CoreFoundation.CFStringGetCString.restype = c_bool
354
+
355
+ CoreFoundation.CFDataCreate.argtypes = [CFAllocatorRef, c_char_p, CFIndex]
356
+ CoreFoundation.CFDataCreate.restype = CFDataRef
357
+
358
+ CoreFoundation.CFDataGetLength.argtypes = [CFDataRef]
359
+ CoreFoundation.CFDataGetLength.restype = CFIndex
360
+
361
+ CoreFoundation.CFDataGetBytePtr.argtypes = [CFDataRef]
362
+ CoreFoundation.CFDataGetBytePtr.restype = c_void_p
363
+
364
+ CoreFoundation.CFDictionaryCreate.argtypes = [
365
+ CFAllocatorRef,
366
+ POINTER(CFTypeRef),
367
+ POINTER(CFTypeRef),
368
+ CFIndex,
369
+ CFDictionaryKeyCallBacks,
370
+ CFDictionaryValueCallBacks,
371
+ ]
372
+ CoreFoundation.CFDictionaryCreate.restype = CFDictionaryRef
373
+
374
+ CoreFoundation.CFDictionaryGetValue.argtypes = [CFDictionaryRef, CFTypeRef]
375
+ CoreFoundation.CFDictionaryGetValue.restype = CFTypeRef
376
+
377
+ CoreFoundation.CFArrayCreate.argtypes = [
378
+ CFAllocatorRef,
379
+ POINTER(CFTypeRef),
380
+ CFIndex,
381
+ CFArrayCallBacks,
382
+ ]
383
+ CoreFoundation.CFArrayCreate.restype = CFArrayRef
384
+
385
+ CoreFoundation.CFArrayCreateMutable.argtypes = [
386
+ CFAllocatorRef,
387
+ CFIndex,
388
+ CFArrayCallBacks,
389
+ ]
390
+ CoreFoundation.CFArrayCreateMutable.restype = CFMutableArrayRef
391
+
392
+ CoreFoundation.CFArrayAppendValue.argtypes = [CFMutableArrayRef, c_void_p]
393
+ CoreFoundation.CFArrayAppendValue.restype = None
394
+
395
+ CoreFoundation.CFArrayGetCount.argtypes = [CFArrayRef]
396
+ CoreFoundation.CFArrayGetCount.restype = CFIndex
397
+
398
+ CoreFoundation.CFArrayGetValueAtIndex.argtypes = [CFArrayRef, CFIndex]
399
+ CoreFoundation.CFArrayGetValueAtIndex.restype = c_void_p
400
+
401
+ CoreFoundation.kCFAllocatorDefault = CFAllocatorRef.in_dll(
402
+ CoreFoundation, "kCFAllocatorDefault"
403
+ )
404
+ CoreFoundation.kCFTypeArrayCallBacks = c_void_p.in_dll(
405
+ CoreFoundation, "kCFTypeArrayCallBacks"
406
+ )
407
+ CoreFoundation.kCFTypeDictionaryKeyCallBacks = c_void_p.in_dll(
408
+ CoreFoundation, "kCFTypeDictionaryKeyCallBacks"
409
+ )
410
+ CoreFoundation.kCFTypeDictionaryValueCallBacks = c_void_p.in_dll(
411
+ CoreFoundation, "kCFTypeDictionaryValueCallBacks"
412
+ )
413
+
414
+ CoreFoundation.CFTypeRef = CFTypeRef
415
+ CoreFoundation.CFArrayRef = CFArrayRef
416
+ CoreFoundation.CFStringRef = CFStringRef
417
+ CoreFoundation.CFDictionaryRef = CFDictionaryRef
418
+
419
+ except (AttributeError):
420
+ raise ImportError("Error initializing ctypes")
421
+
422
+
423
+ class CFConst(object):
424
+ """
425
+ A class object that acts as essentially a namespace for CoreFoundation
426
+ constants.
427
+ """
428
+
429
+ kCFStringEncodingUTF8 = CFStringEncoding(0x08000100)
430
+
431
+
432
+ class SecurityConst(object):
433
+ """
434
+ A class object that acts as essentially a namespace for Security constants.
435
+ """
436
+
437
+ kSSLSessionOptionBreakOnServerAuth = 0
438
+
439
+ kSSLProtocol2 = 1
440
+ kSSLProtocol3 = 2
441
+ kTLSProtocol1 = 4
442
+ kTLSProtocol11 = 7
443
+ kTLSProtocol12 = 8
444
+ # SecureTransport does not support TLS 1.3 even if there's a constant for it
445
+ kTLSProtocol13 = 10
446
+ kTLSProtocolMaxSupported = 999
447
+
448
+ kSSLClientSide = 1
449
+ kSSLStreamType = 0
450
+
451
+ kSecFormatPEMSequence = 10
452
+
453
+ kSecTrustResultInvalid = 0
454
+ kSecTrustResultProceed = 1
455
+ # This gap is present on purpose: this was kSecTrustResultConfirm, which
456
+ # is deprecated.
457
+ kSecTrustResultDeny = 3
458
+ kSecTrustResultUnspecified = 4
459
+ kSecTrustResultRecoverableTrustFailure = 5
460
+ kSecTrustResultFatalTrustFailure = 6
461
+ kSecTrustResultOtherError = 7
462
+
463
+ errSSLProtocol = -9800
464
+ errSSLWouldBlock = -9803
465
+ errSSLClosedGraceful = -9805
466
+ errSSLClosedNoNotify = -9816
467
+ errSSLClosedAbort = -9806
468
+
469
+ errSSLXCertChainInvalid = -9807
470
+ errSSLCrypto = -9809
471
+ errSSLInternal = -9810
472
+ errSSLCertExpired = -9814
473
+ errSSLCertNotYetValid = -9815
474
+ errSSLUnknownRootCert = -9812
475
+ errSSLNoRootCert = -9813
476
+ errSSLHostNameMismatch = -9843
477
+ errSSLPeerHandshakeFail = -9824
478
+ errSSLPeerUserCancelled = -9839
479
+ errSSLWeakPeerEphemeralDHKey = -9850
480
+ errSSLServerAuthCompleted = -9841
481
+ errSSLRecordOverflow = -9847
482
+
483
+ errSecVerifyFailed = -67808
484
+ errSecNoTrustSettings = -25263
485
+ errSecItemNotFound = -25300
486
+ errSecInvalidTrustSettings = -25262
487
+
488
+ # Cipher suites. We only pick the ones our default cipher string allows.
489
+ # Source: https://developer.apple.com/documentation/security/1550981-ssl_cipher_suite_values
490
+ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C
491
+ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030
492
+ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B
493
+ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F
494
+ TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9
495
+ TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA8
496
+ TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F
497
+ TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E
498
+ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024
499
+ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028
500
+ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A
501
+ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014
502
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B
503
+ TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039
504
+ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023
505
+ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027
506
+ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009
507
+ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013
508
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067
509
+ TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033
510
+ TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D
511
+ TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C
512
+ TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D
513
+ TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C
514
+ TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035
515
+ TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F
516
+ TLS_AES_128_GCM_SHA256 = 0x1301
517
+ TLS_AES_256_GCM_SHA384 = 0x1302
518
+ TLS_AES_128_CCM_8_SHA256 = 0x1305
519
+ TLS_AES_128_CCM_SHA256 = 0x1304