@scrypted/server 0.0.134 → 0.0.139

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.

Potentially problematic release.


This version of @scrypted/server might be problematic. Click here for more details.

Files changed (798) hide show
  1. package/.venv/bin/Activate.ps1 +241 -0
  2. package/.venv/bin/activate +66 -0
  3. package/.venv/bin/activate.csh +25 -0
  4. package/.venv/bin/activate.fish +64 -0
  5. package/.venv/bin/pip +8 -0
  6. package/.venv/bin/pip3 +8 -0
  7. package/.venv/bin/pip3.9 +8 -0
  8. package/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py +198 -0
  9. package/.venv/lib/python3.9/site-packages/_distutils_hack/override.py +1 -0
  10. package/.venv/lib/python3.9/site-packages/distutils-precedence.pth +1 -0
  11. package/.venv/lib/python3.9/site-packages/pgi/__init__.py +62 -0
  12. package/.venv/lib/python3.9/site-packages/pgi/_compat.py +74 -0
  13. package/.venv/lib/python3.9/site-packages/pgi/callback.py +15 -0
  14. package/.venv/lib/python3.9/site-packages/pgi/cffilib/__init__.py +12 -0
  15. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_compat.py +25 -0
  16. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_utils.py +119 -0
  17. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/__init__.py +60 -0
  18. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_cdef.py +574 -0
  19. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_ffi.py +25 -0
  20. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/error.py +13 -0
  21. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giarginfo.py +73 -0
  22. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giargument.py +36 -0
  23. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gibaseinfo.py +113 -0
  24. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gicallableinfo.py +75 -0
  25. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giconstantinfo.py +22 -0
  26. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gienuminfo.py +59 -0
  27. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifieldinfo.py +40 -0
  28. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifunctioninfo.py +64 -0
  29. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giinterfaceinfo.py +93 -0
  30. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giobjectinfo.py +143 -0
  31. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gipropertyinfo.py +28 -0
  32. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giregisteredtypeinfo.py +27 -0
  33. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/girepository.py +143 -0
  34. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gisignalinfo.py +55 -0
  35. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gistructinfo.py +55 -0
  36. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypeinfo.py +66 -0
  37. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypelib.py +40 -0
  38. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giunioninfo.py +66 -0
  39. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/__init__.py +8 -0
  40. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/_cdef.py +101 -0
  41. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/glib.py +260 -0
  42. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/__init__.py +15 -0
  43. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_cdef.py +45 -0
  44. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_ffi.py +26 -0
  45. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/gobject.py +27 -0
  46. package/.venv/lib/python3.9/site-packages/pgi/clib/__init__.py +11 -0
  47. package/.venv/lib/python3.9/site-packages/pgi/clib/_compat.py +20 -0
  48. package/.venv/lib/python3.9/site-packages/pgi/clib/_utils.py +213 -0
  49. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/__init__.py +71 -0
  50. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/error.py +13 -0
  51. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giarginfo.py +65 -0
  52. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giargument.py +58 -0
  53. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gibaseinfo.py +152 -0
  54. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gicallableinfo.py +203 -0
  55. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giconstantinfo.py +35 -0
  56. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gienuminfo.py +64 -0
  57. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gifieldinfo.py +46 -0
  58. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giinterfaceinfo.py +83 -0
  59. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giobjectinfo.py +134 -0
  60. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gipropertyinfo.py +36 -0
  61. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giregisteredtypeinfo.py +34 -0
  62. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/girepository.py +200 -0
  63. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gistructinfo.py +55 -0
  64. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypeinfo.py +97 -0
  65. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypelib.py +56 -0
  66. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giunioninfo.py +60 -0
  67. package/.venv/lib/python3.9/site-packages/pgi/clib/glib.py +336 -0
  68. package/.venv/lib/python3.9/site-packages/pgi/clib/gobject.py +405 -0
  69. package/.venv/lib/python3.9/site-packages/pgi/codegen/__init__.py +28 -0
  70. package/.venv/lib/python3.9/site-packages/pgi/codegen/arguments.py +640 -0
  71. package/.venv/lib/python3.9/site-packages/pgi/codegen/backend.py +95 -0
  72. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbargs.py +152 -0
  73. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbreturn.py +77 -0
  74. package/.venv/lib/python3.9/site-packages/pgi/codegen/cffi_backend.py +424 -0
  75. package/.venv/lib/python3.9/site-packages/pgi/codegen/construct.py +222 -0
  76. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/__init__.py +11 -0
  77. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/main.py +184 -0
  78. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_basic.py +705 -0
  79. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_container.py +236 -0
  80. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_interface.py +402 -0
  81. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_other.py +93 -0
  82. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/utils.py +168 -0
  83. package/.venv/lib/python3.9/site-packages/pgi/codegen/fieldgen.py +114 -0
  84. package/.venv/lib/python3.9/site-packages/pgi/codegen/fields.py +244 -0
  85. package/.venv/lib/python3.9/site-packages/pgi/codegen/funcgen.py +376 -0
  86. package/.venv/lib/python3.9/site-packages/pgi/codegen/null_backend.py +110 -0
  87. package/.venv/lib/python3.9/site-packages/pgi/codegen/returnvalues.py +443 -0
  88. package/.venv/lib/python3.9/site-packages/pgi/codegen/siggen.py +157 -0
  89. package/.venv/lib/python3.9/site-packages/pgi/codegen/utils.py +248 -0
  90. package/.venv/lib/python3.9/site-packages/pgi/const.py +9 -0
  91. package/.venv/lib/python3.9/site-packages/pgi/constant.py +32 -0
  92. package/.venv/lib/python3.9/site-packages/pgi/debug.py +31 -0
  93. package/.venv/lib/python3.9/site-packages/pgi/enum.py +244 -0
  94. package/.venv/lib/python3.9/site-packages/pgi/field.py +58 -0
  95. package/.venv/lib/python3.9/site-packages/pgi/finalizer.py +3 -0
  96. package/.venv/lib/python3.9/site-packages/pgi/foreign/__init__.py +71 -0
  97. package/.venv/lib/python3.9/site-packages/pgi/foreign/_base.py +43 -0
  98. package/.venv/lib/python3.9/site-packages/pgi/foreign/cairo.py +41 -0
  99. package/.venv/lib/python3.9/site-packages/pgi/function.py +12 -0
  100. package/.venv/lib/python3.9/site-packages/pgi/gerror.py +58 -0
  101. package/.venv/lib/python3.9/site-packages/pgi/gtype.py +168 -0
  102. package/.venv/lib/python3.9/site-packages/pgi/importer.py +189 -0
  103. package/.venv/lib/python3.9/site-packages/pgi/module.py +141 -0
  104. package/.venv/lib/python3.9/site-packages/pgi/obj.py +519 -0
  105. package/.venv/lib/python3.9/site-packages/pgi/overrides/GLib.py +1013 -0
  106. package/.venv/lib/python3.9/site-packages/pgi/overrides/GObject.py +583 -0
  107. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gdk.py +454 -0
  108. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gio.py +237 -0
  109. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gtk.py +2412 -0
  110. package/.venv/lib/python3.9/site-packages/pgi/overrides/Pango.py +53 -0
  111. package/.venv/lib/python3.9/site-packages/pgi/overrides/Poppler.py +61 -0
  112. package/.venv/lib/python3.9/site-packages/pgi/overrides/__init__.py +327 -0
  113. package/.venv/lib/python3.9/site-packages/pgi/overrides/keysyms.py +54 -0
  114. package/.venv/lib/python3.9/site-packages/pgi/properties.py +313 -0
  115. package/.venv/lib/python3.9/site-packages/pgi/propertyhelper.py +12 -0
  116. package/.venv/lib/python3.9/site-packages/pgi/repository/__init__.py +10 -0
  117. package/.venv/lib/python3.9/site-packages/pgi/signalhelper.py +18 -0
  118. package/.venv/lib/python3.9/site-packages/pgi/signals.py +122 -0
  119. package/.venv/lib/python3.9/site-packages/pgi/static.py +189 -0
  120. package/.venv/lib/python3.9/site-packages/pgi/structure.py +131 -0
  121. package/.venv/lib/python3.9/site-packages/pgi/util.py +342 -0
  122. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/COPYING +502 -0
  123. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/INSTALLER +1 -0
  124. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/METADATA +22 -0
  125. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/RECORD +229 -0
  126. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/REQUESTED +0 -0
  127. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/WHEEL +5 -0
  128. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/top_level.txt +1 -0
  129. package/.venv/lib/python3.9/site-packages/pip/__init__.py +13 -0
  130. package/.venv/lib/python3.9/site-packages/pip/__main__.py +31 -0
  131. package/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py +19 -0
  132. package/.venv/lib/python3.9/site-packages/pip/_internal/build_env.py +293 -0
  133. package/.venv/lib/python3.9/site-packages/pip/_internal/cache.py +264 -0
  134. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +4 -0
  135. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py +163 -0
  136. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py +214 -0
  137. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py +1010 -0
  138. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py +27 -0
  139. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py +70 -0
  140. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py +87 -0
  141. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py +292 -0
  142. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py +250 -0
  143. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py +469 -0
  144. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py +157 -0
  145. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py +6 -0
  146. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py +127 -0
  147. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py +223 -0
  148. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py +53 -0
  149. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py +96 -0
  150. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py +266 -0
  151. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py +202 -0
  152. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py +139 -0
  153. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py +97 -0
  154. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py +59 -0
  155. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py +41 -0
  156. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py +138 -0
  157. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py +770 -0
  158. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py +361 -0
  159. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py +174 -0
  160. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py +235 -0
  161. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py +105 -0
  162. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py +177 -0
  163. package/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py +367 -0
  164. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py +21 -0
  165. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py +36 -0
  166. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py +22 -0
  167. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py +129 -0
  168. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py +31 -0
  169. package/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py +402 -0
  170. package/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py +2 -0
  171. package/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py +536 -0
  172. package/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py +993 -0
  173. package/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py +224 -0
  174. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py +446 -0
  175. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py +169 -0
  176. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py +219 -0
  177. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py +52 -0
  178. package/.venv/lib/python3.9/site-packages/pip/_internal/main.py +12 -0
  179. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py +51 -0
  180. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py +330 -0
  181. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py +146 -0
  182. package/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py +2 -0
  183. package/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py +34 -0
  184. package/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py +220 -0
  185. package/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py +80 -0
  186. package/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py +28 -0
  187. package/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py +288 -0
  188. package/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py +31 -0
  189. package/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py +129 -0
  190. package/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py +51 -0
  191. package/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py +110 -0
  192. package/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py +89 -0
  193. package/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py +2 -0
  194. package/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py +323 -0
  195. package/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py +69 -0
  196. package/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py +184 -0
  197. package/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py +210 -0
  198. package/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py +454 -0
  199. package/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py +96 -0
  200. package/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py +60 -0
  201. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py +0 -0
  202. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  203. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py +30 -0
  204. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py +34 -0
  205. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py +67 -0
  206. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py +37 -0
  207. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py +46 -0
  208. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py +105 -0
  209. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py +149 -0
  210. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py +254 -0
  211. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  212. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py +46 -0
  213. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py +125 -0
  214. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py +738 -0
  215. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py +632 -0
  216. package/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py +183 -0
  217. package/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py +94 -0
  218. package/.venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py +466 -0
  219. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py +536 -0
  220. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py +891 -0
  221. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py +189 -0
  222. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py +124 -0
  223. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py +633 -0
  224. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py +0 -0
  225. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py +20 -0
  226. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  227. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py +467 -0
  228. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  229. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py +141 -0
  230. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py +540 -0
  231. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py +701 -0
  232. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +155 -0
  233. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py +215 -0
  234. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py +68 -0
  235. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py +166 -0
  236. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py +251 -0
  237. package/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py +182 -0
  238. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py +0 -0
  239. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py +38 -0
  240. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py +52 -0
  241. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py +63 -0
  242. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py +165 -0
  243. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py +11 -0
  244. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py +120 -0
  245. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
  246. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py +42 -0
  247. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py +75 -0
  248. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py +36 -0
  249. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py +27 -0
  250. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py +182 -0
  251. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py +27 -0
  252. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py +88 -0
  253. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py +144 -0
  254. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py +35 -0
  255. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py +358 -0
  256. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py +689 -0
  257. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py +39 -0
  258. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py +84 -0
  259. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py +103 -0
  260. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py +33 -0
  261. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py +167 -0
  262. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py +289 -0
  263. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py +246 -0
  264. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py +258 -0
  265. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py +62 -0
  266. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py +104 -0
  267. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py +182 -0
  268. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py +15 -0
  269. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py +93 -0
  270. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py +513 -0
  271. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py +153 -0
  272. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py +318 -0
  273. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py +693 -0
  274. package/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py +375 -0
  275. package/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py +111 -0
  276. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py +11 -0
  277. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py +57 -0
  278. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py +133 -0
  279. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py +39 -0
  280. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +2 -0
  281. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +146 -0
  282. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +33 -0
  283. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py +29 -0
  284. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py +376 -0
  285. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py +80 -0
  286. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py +135 -0
  287. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py +188 -0
  288. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py +29 -0
  289. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py +3 -0
  290. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  291. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem +4257 -0
  292. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py +76 -0
  293. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py +83 -0
  294. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
  295. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py +47 -0
  296. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py +233 -0
  297. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py +107 -0
  298. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py +145 -0
  299. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py +1 -0
  300. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py +84 -0
  301. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py +88 -0
  302. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py +36 -0
  303. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py +49 -0
  304. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py +76 -0
  305. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py +101 -0
  306. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py +246 -0
  307. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py +92 -0
  308. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py +195 -0
  309. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py +47 -0
  310. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py +387 -0
  311. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py +46 -0
  312. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py +283 -0
  313. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py +46 -0
  314. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py +292 -0
  315. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py +325 -0
  316. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py +233 -0
  317. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +4650 -0
  318. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py +4398 -0
  319. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py +4383 -0
  320. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py +4650 -0
  321. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py +5718 -0
  322. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py +4383 -0
  323. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py +4383 -0
  324. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py +145 -0
  325. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py +91 -0
  326. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +54 -0
  327. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py +572 -0
  328. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  329. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py +310 -0
  330. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py +145 -0
  331. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +83 -0
  332. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py +92 -0
  333. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py +286 -0
  334. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py +82 -0
  335. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py +9 -0
  336. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py +6 -0
  337. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py +102 -0
  338. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py +258 -0
  339. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py +80 -0
  340. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py +152 -0
  341. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py +169 -0
  342. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py +23 -0
  343. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py +6 -0
  344. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py +41 -0
  345. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py +764 -0
  346. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +84 -0
  347. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +786 -0
  348. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py +2607 -0
  349. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py +1122 -0
  350. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py +1339 -0
  351. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py +509 -0
  352. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py +1300 -0
  353. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py +393 -0
  354. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py +147 -0
  355. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py +1058 -0
  356. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py +358 -0
  357. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py +429 -0
  358. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  359. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  360. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  361. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py +1969 -0
  362. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py +739 -0
  363. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  364. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  365. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  366. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py +1053 -0
  367. package/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py +1386 -0
  368. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py +35 -0
  369. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py +289 -0
  370. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py +918 -0
  371. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py +1735 -0
  372. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py +5 -0
  373. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py +40 -0
  374. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py +67 -0
  375. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py +159 -0
  376. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py +2946 -0
  377. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  378. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +29 -0
  379. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py +12 -0
  380. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +73 -0
  381. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py +93 -0
  382. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +207 -0
  383. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +916 -0
  384. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py +38 -0
  385. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py +2795 -0
  386. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py +409 -0
  387. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +30 -0
  388. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +54 -0
  389. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +50 -0
  390. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +88 -0
  391. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py +417 -0
  392. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +239 -0
  393. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +343 -0
  394. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +392 -0
  395. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +154 -0
  396. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py +252 -0
  397. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +43 -0
  398. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +131 -0
  399. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +215 -0
  400. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +69 -0
  401. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py +44 -0
  402. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py +117 -0
  403. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py +16 -0
  404. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py +409 -0
  405. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py +2050 -0
  406. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py +58 -0
  407. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py +2 -0
  408. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py +8438 -0
  409. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py +54 -0
  410. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py +1 -0
  411. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  412. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py +193 -0
  413. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py +1087 -0
  414. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py +26 -0
  415. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py +25 -0
  416. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_manylinux.py +301 -0
  417. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_musllinux.py +136 -0
  418. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py +67 -0
  419. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py +304 -0
  420. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py +146 -0
  421. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py +828 -0
  422. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py +484 -0
  423. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py +136 -0
  424. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py +504 -0
  425. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py +6 -0
  426. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py +127 -0
  427. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py +207 -0
  428. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py +115 -0
  429. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py +51 -0
  430. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py +44 -0
  431. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py +171 -0
  432. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py +17 -0
  433. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py +363 -0
  434. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py +92 -0
  435. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py +375 -0
  436. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py +3296 -0
  437. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py +23 -0
  438. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__init__.py +329 -0
  439. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__main__.py +44 -0
  440. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/android.py +117 -0
  441. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/api.py +155 -0
  442. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/macos.py +62 -0
  443. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/unix.py +180 -0
  444. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/version.py +4 -0
  445. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/windows.py +180 -0
  446. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py +189 -0
  447. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py +93 -0
  448. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/colors.py +79 -0
  449. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py +47 -0
  450. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py +45 -0
  451. package/.venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py +7107 -0
  452. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py +154 -0
  453. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py +14 -0
  454. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py +42 -0
  455. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py +533 -0
  456. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py +159 -0
  457. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py +305 -0
  458. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py +18 -0
  459. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py +76 -0
  460. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py +549 -0
  461. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py +127 -0
  462. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py +132 -0
  463. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py +34 -0
  464. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py +966 -0
  465. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py +16 -0
  466. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py +781 -0
  467. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py +123 -0
  468. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py +105 -0
  469. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py +1013 -0
  470. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  471. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  472. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  473. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py +133 -0
  474. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py +37 -0
  475. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py +483 -0
  476. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py +165 -0
  477. package/.venv/lib/python3.9/site-packages/pip/_vendor/six.py +998 -0
  478. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py +517 -0
  479. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py +92 -0
  480. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py +68 -0
  481. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py +46 -0
  482. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py +41 -0
  483. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py +58 -0
  484. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py +43 -0
  485. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py +213 -0
  486. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py +96 -0
  487. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py +59 -0
  488. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py +191 -0
  489. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/__init__.py +6 -0
  490. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py +703 -0
  491. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_re.py +83 -0
  492. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py +85 -0
  493. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py +337 -0
  494. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  495. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py +569 -0
  496. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py +1078 -0
  497. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  498. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  499. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  500. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  501. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
  502. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  503. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
  504. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +511 -0
  505. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +922 -0
  506. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  507. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
  508. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  509. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  510. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py +5 -0
  511. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  512. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  513. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py +1077 -0
  514. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +24 -0
  515. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +160 -0
  516. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py +536 -0
  517. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py +170 -0
  518. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py +821 -0
  519. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  520. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py +150 -0
  521. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
  522. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  523. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py +143 -0
  524. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  525. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py +602 -0
  526. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py +495 -0
  527. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  528. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py +268 -0
  529. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py +432 -0
  530. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py +153 -0
  531. package/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +22 -0
  532. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
  533. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py +231 -0
  534. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
  535. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py +153 -0
  536. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
  537. package/.venv/lib/python3.9/site-packages/pip/py.typed +4 -0
  538. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER +1 -0
  539. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt +20 -0
  540. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA +93 -0
  541. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD +819 -0
  542. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED +0 -0
  543. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL +5 -0
  544. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt +5 -0
  545. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt +1 -0
  546. package/.venv/lib/python3.9/site-packages/pkg_resources/__init__.py +3303 -0
  547. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  548. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py +608 -0
  549. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py +26 -0
  550. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py +25 -0
  551. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_manylinux.py +301 -0
  552. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_musllinux.py +136 -0
  553. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py +67 -0
  554. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py +304 -0
  555. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py +146 -0
  556. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py +828 -0
  557. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py +484 -0
  558. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py +136 -0
  559. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py +504 -0
  560. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py +5742 -0
  561. package/.venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py +73 -0
  562. package/.venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +6 -0
  563. package/.venv/lib/python3.9/site-packages/setuptools/__init__.py +244 -0
  564. package/.venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py +7 -0
  565. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py +24 -0
  566. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_collections.py +56 -0
  567. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py +561 -0
  568. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py +256 -0
  569. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py +393 -0
  570. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py +1123 -0
  571. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py +403 -0
  572. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py +31 -0
  573. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py +143 -0
  574. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py +123 -0
  575. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py +749 -0
  576. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py +579 -0
  577. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py +377 -0
  578. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py +157 -0
  579. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py +209 -0
  580. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py +755 -0
  581. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py +392 -0
  582. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py +152 -0
  583. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py +148 -0
  584. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py +76 -0
  585. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py +344 -0
  586. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py +775 -0
  587. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py +79 -0
  588. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py +84 -0
  589. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py +47 -0
  590. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py +217 -0
  591. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py +60 -0
  592. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py +30 -0
  593. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py +304 -0
  594. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py +494 -0
  595. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py +214 -0
  596. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/config.py +130 -0
  597. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py +249 -0
  598. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py +362 -0
  599. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py +5 -0
  600. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py +92 -0
  601. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py +210 -0
  602. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py +1257 -0
  603. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py +97 -0
  604. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py +240 -0
  605. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py +457 -0
  606. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py +238 -0
  607. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py +355 -0
  608. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/log.py +81 -0
  609. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py +788 -0
  610. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py +643 -0
  611. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py +19 -0
  612. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py +7 -0
  613. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py +106 -0
  614. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py +567 -0
  615. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py +286 -0
  616. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py +325 -0
  617. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/util.py +548 -0
  618. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/version.py +363 -0
  619. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py +169 -0
  620. package/.venv/lib/python3.9/site-packages/setuptools/_imp.py +82 -0
  621. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py +0 -0
  622. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__init__.py +4 -0
  623. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/more.py +3825 -0
  624. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/recipes.py +620 -0
  625. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py +488 -0
  626. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py +26 -0
  627. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py +25 -0
  628. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_manylinux.py +301 -0
  629. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_musllinux.py +136 -0
  630. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py +67 -0
  631. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py +304 -0
  632. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py +146 -0
  633. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py +828 -0
  634. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py +484 -0
  635. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py +136 -0
  636. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py +504 -0
  637. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py +5742 -0
  638. package/.venv/lib/python3.9/site-packages/setuptools/archive_util.py +205 -0
  639. package/.venv/lib/python3.9/site-packages/setuptools/build_meta.py +290 -0
  640. package/.venv/lib/python3.9/site-packages/setuptools/cli-32.exe +0 -0
  641. package/.venv/lib/python3.9/site-packages/setuptools/cli-64.exe +0 -0
  642. package/.venv/lib/python3.9/site-packages/setuptools/cli-arm64.exe +0 -0
  643. package/.venv/lib/python3.9/site-packages/setuptools/cli.exe +0 -0
  644. package/.venv/lib/python3.9/site-packages/setuptools/command/__init__.py +8 -0
  645. package/.venv/lib/python3.9/site-packages/setuptools/command/alias.py +78 -0
  646. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py +456 -0
  647. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py +40 -0
  648. package/.venv/lib/python3.9/site-packages/setuptools/command/build_clib.py +101 -0
  649. package/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py +328 -0
  650. package/.venv/lib/python3.9/site-packages/setuptools/command/build_py.py +242 -0
  651. package/.venv/lib/python3.9/site-packages/setuptools/command/develop.py +193 -0
  652. package/.venv/lib/python3.9/site-packages/setuptools/command/dist_info.py +36 -0
  653. package/.venv/lib/python3.9/site-packages/setuptools/command/easy_install.py +2304 -0
  654. package/.venv/lib/python3.9/site-packages/setuptools/command/egg_info.py +755 -0
  655. package/.venv/lib/python3.9/site-packages/setuptools/command/install.py +132 -0
  656. package/.venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py +62 -0
  657. package/.venv/lib/python3.9/site-packages/setuptools/command/install_lib.py +122 -0
  658. package/.venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py +69 -0
  659. package/.venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml +15 -0
  660. package/.venv/lib/python3.9/site-packages/setuptools/command/py36compat.py +134 -0
  661. package/.venv/lib/python3.9/site-packages/setuptools/command/register.py +18 -0
  662. package/.venv/lib/python3.9/site-packages/setuptools/command/rotate.py +64 -0
  663. package/.venv/lib/python3.9/site-packages/setuptools/command/saveopts.py +22 -0
  664. package/.venv/lib/python3.9/site-packages/setuptools/command/sdist.py +196 -0
  665. package/.venv/lib/python3.9/site-packages/setuptools/command/setopt.py +149 -0
  666. package/.venv/lib/python3.9/site-packages/setuptools/command/test.py +252 -0
  667. package/.venv/lib/python3.9/site-packages/setuptools/command/upload.py +17 -0
  668. package/.venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py +202 -0
  669. package/.venv/lib/python3.9/site-packages/setuptools/config.py +751 -0
  670. package/.venv/lib/python3.9/site-packages/setuptools/dep_util.py +25 -0
  671. package/.venv/lib/python3.9/site-packages/setuptools/depends.py +176 -0
  672. package/.venv/lib/python3.9/site-packages/setuptools/dist.py +1156 -0
  673. package/.venv/lib/python3.9/site-packages/setuptools/errors.py +40 -0
  674. package/.venv/lib/python3.9/site-packages/setuptools/extension.py +55 -0
  675. package/.venv/lib/python3.9/site-packages/setuptools/extern/__init__.py +73 -0
  676. package/.venv/lib/python3.9/site-packages/setuptools/glob.py +167 -0
  677. package/.venv/lib/python3.9/site-packages/setuptools/gui-32.exe +0 -0
  678. package/.venv/lib/python3.9/site-packages/setuptools/gui-64.exe +0 -0
  679. package/.venv/lib/python3.9/site-packages/setuptools/gui-arm64.exe +0 -0
  680. package/.venv/lib/python3.9/site-packages/setuptools/gui.exe +0 -0
  681. package/.venv/lib/python3.9/site-packages/setuptools/installer.py +104 -0
  682. package/.venv/lib/python3.9/site-packages/setuptools/launch.py +36 -0
  683. package/.venv/lib/python3.9/site-packages/setuptools/logging.py +30 -0
  684. package/.venv/lib/python3.9/site-packages/setuptools/monkey.py +177 -0
  685. package/.venv/lib/python3.9/site-packages/setuptools/msvc.py +1805 -0
  686. package/.venv/lib/python3.9/site-packages/setuptools/namespaces.py +107 -0
  687. package/.venv/lib/python3.9/site-packages/setuptools/package_index.py +1127 -0
  688. package/.venv/lib/python3.9/site-packages/setuptools/py34compat.py +13 -0
  689. package/.venv/lib/python3.9/site-packages/setuptools/sandbox.py +530 -0
  690. package/.venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl +6 -0
  691. package/.venv/lib/python3.9/site-packages/setuptools/script.tmpl +3 -0
  692. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/__init__.py +0 -0
  693. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/helpers.py +61 -0
  694. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +218 -0
  695. package/.venv/lib/python3.9/site-packages/setuptools/unicode_utils.py +42 -0
  696. package/.venv/lib/python3.9/site-packages/setuptools/version.py +6 -0
  697. package/.venv/lib/python3.9/site-packages/setuptools/wheel.py +213 -0
  698. package/.venv/lib/python3.9/site-packages/setuptools/windows_support.py +29 -0
  699. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/INSTALLER +1 -0
  700. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/LICENSE +19 -0
  701. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/METADATA +142 -0
  702. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/RECORD +308 -0
  703. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/REQUESTED +0 -0
  704. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/WHEEL +5 -0
  705. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/entry_points.txt +56 -0
  706. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/top_level.txt +3 -0
  707. package/.venv/pyvenv.cfg +3 -0
  708. package/.vscode/settings.json +1 -1
  709. package/dist/event-registry.js +1 -1
  710. package/dist/event-registry.js.map +1 -1
  711. package/dist/http-interfaces.js +8 -4
  712. package/dist/http-interfaces.js.map +1 -1
  713. package/dist/infer-defaults.js +1 -1
  714. package/dist/infer-defaults.js.map +1 -1
  715. package/dist/media-helpers.js +9 -25
  716. package/dist/media-helpers.js.map +1 -1
  717. package/dist/plugin/descriptor.js +1 -1
  718. package/dist/plugin/descriptor.js.map +1 -1
  719. package/dist/plugin/media.js +217 -101
  720. package/dist/plugin/media.js.map +1 -1
  721. package/dist/plugin/plugin-console.js +13 -3
  722. package/dist/plugin/plugin-console.js.map +1 -1
  723. package/dist/plugin/plugin-device.js +2 -2
  724. package/dist/plugin/plugin-device.js.map +1 -1
  725. package/dist/plugin/plugin-host-api.js +2 -2
  726. package/dist/plugin/plugin-host-api.js.map +1 -1
  727. package/dist/plugin/plugin-host.js +36 -118
  728. package/dist/plugin/plugin-host.js.map +1 -1
  729. package/dist/plugin/plugin-remote-worker.js +5 -42
  730. package/dist/plugin/plugin-remote-worker.js.map +1 -1
  731. package/dist/plugin/plugin-remote.js +4 -4
  732. package/dist/plugin/plugin-remote.js.map +1 -1
  733. package/dist/plugin/runtime/child-process-worker.js +42 -0
  734. package/dist/plugin/runtime/child-process-worker.js.map +1 -0
  735. package/dist/plugin/runtime/node-fork-worker.js +51 -0
  736. package/dist/plugin/runtime/node-fork-worker.js.map +1 -0
  737. package/dist/plugin/runtime/node-thread-worker.js +73 -0
  738. package/dist/plugin/runtime/node-thread-worker.js.map +1 -0
  739. package/dist/plugin/runtime/python-worker.js +54 -0
  740. package/dist/plugin/runtime/python-worker.js.map +1 -0
  741. package/dist/plugin/runtime/runtime-worker.js +3 -0
  742. package/dist/plugin/runtime/runtime-worker.js.map +1 -0
  743. package/dist/plugin/system.js +4 -4
  744. package/dist/plugin/system.js.map +1 -1
  745. package/dist/rpc.js +79 -55
  746. package/dist/rpc.js.map +1 -1
  747. package/dist/runtime.js +4 -3
  748. package/dist/runtime.js.map +1 -1
  749. package/dist/scrypted-main.js +14 -7
  750. package/dist/scrypted-main.js.map +1 -1
  751. package/dist/scrypted-plugin-main.js +31 -4
  752. package/dist/scrypted-plugin-main.js.map +1 -1
  753. package/dist/scrypted-server-main.js +1 -1
  754. package/dist/scrypted-server-main.js.map +1 -1
  755. package/dist/services/plugin.js +1 -1
  756. package/dist/services/plugin.js.map +1 -1
  757. package/dist/state.js +1 -1
  758. package/dist/state.js.map +1 -1
  759. package/dist/threading.js +99 -0
  760. package/dist/threading.js.map +1 -0
  761. package/package.json +10 -7
  762. package/python/plugin-remote.py +36 -7
  763. package/python/rpc.py +6 -0
  764. package/src/db-types.ts +1 -1
  765. package/src/event-registry.ts +1 -1
  766. package/src/http-interfaces.ts +11 -6
  767. package/src/infer-defaults.ts +1 -1
  768. package/src/media-helpers.ts +6 -27
  769. package/src/plugin/descriptor.ts +1 -1
  770. package/src/plugin/media.ts +246 -117
  771. package/src/plugin/plugin-api.ts +1 -1
  772. package/src/plugin/plugin-console.ts +16 -7
  773. package/src/plugin/plugin-device.ts +4 -4
  774. package/src/plugin/plugin-host-api.ts +3 -3
  775. package/src/plugin/plugin-host.ts +43 -137
  776. package/src/plugin/plugin-http.ts +1 -1
  777. package/src/plugin/plugin-lazy-remote.ts +1 -1
  778. package/src/plugin/plugin-remote-websocket.ts +1 -1
  779. package/src/plugin/plugin-remote-worker.ts +8 -45
  780. package/src/plugin/plugin-remote.ts +6 -6
  781. package/src/plugin/plugin-repl.ts +1 -1
  782. package/src/plugin/runtime/child-process-worker.ts +49 -0
  783. package/src/plugin/runtime/node-fork-worker.ts +54 -0
  784. package/src/plugin/runtime/node-thread-worker.ts +76 -0
  785. package/src/plugin/runtime/python-worker.ts +67 -0
  786. package/src/plugin/runtime/runtime-worker.ts +28 -0
  787. package/src/plugin/system.ts +5 -5
  788. package/src/rpc.ts +92 -66
  789. package/src/runtime.ts +4 -3
  790. package/src/scrypted-main.ts +15 -7
  791. package/src/scrypted-plugin-main.ts +31 -5
  792. package/src/scrypted-server-main.ts +1 -1
  793. package/src/services/plugin.ts +1 -1
  794. package/src/state.ts +1 -1
  795. package/src/threading.ts +108 -0
  796. package/dist/convert.js +0 -117
  797. package/dist/convert.js.map +0 -1
  798. package/src/convert.ts +0 -122
@@ -0,0 +1,1805 @@
1
+ """
2
+ Improved support for Microsoft Visual C++ compilers.
3
+
4
+ Known supported compilers:
5
+ --------------------------
6
+ Microsoft Visual C++ 9.0:
7
+ Microsoft Visual C++ Compiler for Python 2.7 (x86, amd64)
8
+ Microsoft Windows SDK 6.1 (x86, x64, ia64)
9
+ Microsoft Windows SDK 7.0 (x86, x64, ia64)
10
+
11
+ Microsoft Visual C++ 10.0:
12
+ Microsoft Windows SDK 7.1 (x86, x64, ia64)
13
+
14
+ Microsoft Visual C++ 14.X:
15
+ Microsoft Visual C++ Build Tools 2015 (x86, x64, arm)
16
+ Microsoft Visual Studio Build Tools 2017 (x86, x64, arm, arm64)
17
+ Microsoft Visual Studio Build Tools 2019 (x86, x64, arm, arm64)
18
+
19
+ This may also support compilers shipped with compatible Visual Studio versions.
20
+ """
21
+
22
+ import json
23
+ from io import open
24
+ from os import listdir, pathsep
25
+ from os.path import join, isfile, isdir, dirname
26
+ import sys
27
+ import contextlib
28
+ import platform
29
+ import itertools
30
+ import subprocess
31
+ import distutils.errors
32
+ from setuptools.extern.packaging.version import LegacyVersion
33
+ from setuptools.extern.more_itertools import unique_everseen
34
+
35
+ from .monkey import get_unpatched
36
+
37
+ if platform.system() == 'Windows':
38
+ import winreg
39
+ from os import environ
40
+ else:
41
+ # Mock winreg and environ so the module can be imported on this platform.
42
+
43
+ class winreg:
44
+ HKEY_USERS = None
45
+ HKEY_CURRENT_USER = None
46
+ HKEY_LOCAL_MACHINE = None
47
+ HKEY_CLASSES_ROOT = None
48
+
49
+ environ = dict()
50
+
51
+ _msvc9_suppress_errors = (
52
+ # msvc9compiler isn't available on some platforms
53
+ ImportError,
54
+
55
+ # msvc9compiler raises DistutilsPlatformError in some
56
+ # environments. See #1118.
57
+ distutils.errors.DistutilsPlatformError,
58
+ )
59
+
60
+ try:
61
+ from distutils.msvc9compiler import Reg
62
+ except _msvc9_suppress_errors:
63
+ pass
64
+
65
+
66
+ def msvc9_find_vcvarsall(version):
67
+ """
68
+ Patched "distutils.msvc9compiler.find_vcvarsall" to use the standalone
69
+ compiler build for Python
70
+ (VCForPython / Microsoft Visual C++ Compiler for Python 2.7).
71
+
72
+ Fall back to original behavior when the standalone compiler is not
73
+ available.
74
+
75
+ Redirect the path of "vcvarsall.bat".
76
+
77
+ Parameters
78
+ ----------
79
+ version: float
80
+ Required Microsoft Visual C++ version.
81
+
82
+ Return
83
+ ------
84
+ str
85
+ vcvarsall.bat path
86
+ """
87
+ vc_base = r'Software\%sMicrosoft\DevDiv\VCForPython\%0.1f'
88
+ key = vc_base % ('', version)
89
+ try:
90
+ # Per-user installs register the compiler path here
91
+ productdir = Reg.get_value(key, "installdir")
92
+ except KeyError:
93
+ try:
94
+ # All-user installs on a 64-bit system register here
95
+ key = vc_base % ('Wow6432Node\\', version)
96
+ productdir = Reg.get_value(key, "installdir")
97
+ except KeyError:
98
+ productdir = None
99
+
100
+ if productdir:
101
+ vcvarsall = join(productdir, "vcvarsall.bat")
102
+ if isfile(vcvarsall):
103
+ return vcvarsall
104
+
105
+ return get_unpatched(msvc9_find_vcvarsall)(version)
106
+
107
+
108
+ def msvc9_query_vcvarsall(ver, arch='x86', *args, **kwargs):
109
+ """
110
+ Patched "distutils.msvc9compiler.query_vcvarsall" for support extra
111
+ Microsoft Visual C++ 9.0 and 10.0 compilers.
112
+
113
+ Set environment without use of "vcvarsall.bat".
114
+
115
+ Parameters
116
+ ----------
117
+ ver: float
118
+ Required Microsoft Visual C++ version.
119
+ arch: str
120
+ Target architecture.
121
+
122
+ Return
123
+ ------
124
+ dict
125
+ environment
126
+ """
127
+ # Try to get environment from vcvarsall.bat (Classical way)
128
+ try:
129
+ orig = get_unpatched(msvc9_query_vcvarsall)
130
+ return orig(ver, arch, *args, **kwargs)
131
+ except distutils.errors.DistutilsPlatformError:
132
+ # Pass error if Vcvarsall.bat is missing
133
+ pass
134
+ except ValueError:
135
+ # Pass error if environment not set after executing vcvarsall.bat
136
+ pass
137
+
138
+ # If error, try to set environment directly
139
+ try:
140
+ return EnvironmentInfo(arch, ver).return_env()
141
+ except distutils.errors.DistutilsPlatformError as exc:
142
+ _augment_exception(exc, ver, arch)
143
+ raise
144
+
145
+
146
+ def _msvc14_find_vc2015():
147
+ """Python 3.8 "distutils/_msvccompiler.py" backport"""
148
+ try:
149
+ key = winreg.OpenKey(
150
+ winreg.HKEY_LOCAL_MACHINE,
151
+ r"Software\Microsoft\VisualStudio\SxS\VC7",
152
+ 0,
153
+ winreg.KEY_READ | winreg.KEY_WOW64_32KEY
154
+ )
155
+ except OSError:
156
+ return None, None
157
+
158
+ best_version = 0
159
+ best_dir = None
160
+ with key:
161
+ for i in itertools.count():
162
+ try:
163
+ v, vc_dir, vt = winreg.EnumValue(key, i)
164
+ except OSError:
165
+ break
166
+ if v and vt == winreg.REG_SZ and isdir(vc_dir):
167
+ try:
168
+ version = int(float(v))
169
+ except (ValueError, TypeError):
170
+ continue
171
+ if version >= 14 and version > best_version:
172
+ best_version, best_dir = version, vc_dir
173
+ return best_version, best_dir
174
+
175
+
176
+ def _msvc14_find_vc2017():
177
+ """Python 3.8 "distutils/_msvccompiler.py" backport
178
+
179
+ Returns "15, path" based on the result of invoking vswhere.exe
180
+ If no install is found, returns "None, None"
181
+
182
+ The version is returned to avoid unnecessarily changing the function
183
+ result. It may be ignored when the path is not None.
184
+
185
+ If vswhere.exe is not available, by definition, VS 2017 is not
186
+ installed.
187
+ """
188
+ root = environ.get("ProgramFiles(x86)") or environ.get("ProgramFiles")
189
+ if not root:
190
+ return None, None
191
+
192
+ try:
193
+ path = subprocess.check_output([
194
+ join(root, "Microsoft Visual Studio", "Installer", "vswhere.exe"),
195
+ "-latest",
196
+ "-prerelease",
197
+ "-requiresAny",
198
+ "-requires", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
199
+ "-requires", "Microsoft.VisualStudio.Workload.WDExpress",
200
+ "-property", "installationPath",
201
+ "-products", "*",
202
+ ]).decode(encoding="mbcs", errors="strict").strip()
203
+ except (subprocess.CalledProcessError, OSError, UnicodeDecodeError):
204
+ return None, None
205
+
206
+ path = join(path, "VC", "Auxiliary", "Build")
207
+ if isdir(path):
208
+ return 15, path
209
+
210
+ return None, None
211
+
212
+
213
+ PLAT_SPEC_TO_RUNTIME = {
214
+ 'x86': 'x86',
215
+ 'x86_amd64': 'x64',
216
+ 'x86_arm': 'arm',
217
+ 'x86_arm64': 'arm64'
218
+ }
219
+
220
+
221
+ def _msvc14_find_vcvarsall(plat_spec):
222
+ """Python 3.8 "distutils/_msvccompiler.py" backport"""
223
+ _, best_dir = _msvc14_find_vc2017()
224
+ vcruntime = None
225
+
226
+ if plat_spec in PLAT_SPEC_TO_RUNTIME:
227
+ vcruntime_plat = PLAT_SPEC_TO_RUNTIME[plat_spec]
228
+ else:
229
+ vcruntime_plat = 'x64' if 'amd64' in plat_spec else 'x86'
230
+
231
+ if best_dir:
232
+ vcredist = join(best_dir, "..", "..", "redist", "MSVC", "**",
233
+ vcruntime_plat, "Microsoft.VC14*.CRT",
234
+ "vcruntime140.dll")
235
+ try:
236
+ import glob
237
+ vcruntime = glob.glob(vcredist, recursive=True)[-1]
238
+ except (ImportError, OSError, LookupError):
239
+ vcruntime = None
240
+
241
+ if not best_dir:
242
+ best_version, best_dir = _msvc14_find_vc2015()
243
+ if best_version:
244
+ vcruntime = join(best_dir, 'redist', vcruntime_plat,
245
+ "Microsoft.VC140.CRT", "vcruntime140.dll")
246
+
247
+ if not best_dir:
248
+ return None, None
249
+
250
+ vcvarsall = join(best_dir, "vcvarsall.bat")
251
+ if not isfile(vcvarsall):
252
+ return None, None
253
+
254
+ if not vcruntime or not isfile(vcruntime):
255
+ vcruntime = None
256
+
257
+ return vcvarsall, vcruntime
258
+
259
+
260
+ def _msvc14_get_vc_env(plat_spec):
261
+ """Python 3.8 "distutils/_msvccompiler.py" backport"""
262
+ if "DISTUTILS_USE_SDK" in environ:
263
+ return {
264
+ key.lower(): value
265
+ for key, value in environ.items()
266
+ }
267
+
268
+ vcvarsall, vcruntime = _msvc14_find_vcvarsall(plat_spec)
269
+ if not vcvarsall:
270
+ raise distutils.errors.DistutilsPlatformError(
271
+ "Unable to find vcvarsall.bat"
272
+ )
273
+
274
+ try:
275
+ out = subprocess.check_output(
276
+ 'cmd /u /c "{}" {} && set'.format(vcvarsall, plat_spec),
277
+ stderr=subprocess.STDOUT,
278
+ ).decode('utf-16le', errors='replace')
279
+ except subprocess.CalledProcessError as exc:
280
+ raise distutils.errors.DistutilsPlatformError(
281
+ "Error executing {}".format(exc.cmd)
282
+ ) from exc
283
+
284
+ env = {
285
+ key.lower(): value
286
+ for key, _, value in
287
+ (line.partition('=') for line in out.splitlines())
288
+ if key and value
289
+ }
290
+
291
+ if vcruntime:
292
+ env['py_vcruntime_redist'] = vcruntime
293
+ return env
294
+
295
+
296
+ def msvc14_get_vc_env(plat_spec):
297
+ """
298
+ Patched "distutils._msvccompiler._get_vc_env" for support extra
299
+ Microsoft Visual C++ 14.X compilers.
300
+
301
+ Set environment without use of "vcvarsall.bat".
302
+
303
+ Parameters
304
+ ----------
305
+ plat_spec: str
306
+ Target architecture.
307
+
308
+ Return
309
+ ------
310
+ dict
311
+ environment
312
+ """
313
+
314
+ # Always use backport from CPython 3.8
315
+ try:
316
+ return _msvc14_get_vc_env(plat_spec)
317
+ except distutils.errors.DistutilsPlatformError as exc:
318
+ _augment_exception(exc, 14.0)
319
+ raise
320
+
321
+
322
+ def msvc14_gen_lib_options(*args, **kwargs):
323
+ """
324
+ Patched "distutils._msvccompiler.gen_lib_options" for fix
325
+ compatibility between "numpy.distutils" and "distutils._msvccompiler"
326
+ (for Numpy < 1.11.2)
327
+ """
328
+ if "numpy.distutils" in sys.modules:
329
+ import numpy as np
330
+ if LegacyVersion(np.__version__) < LegacyVersion('1.11.2'):
331
+ return np.distutils.ccompiler.gen_lib_options(*args, **kwargs)
332
+ return get_unpatched(msvc14_gen_lib_options)(*args, **kwargs)
333
+
334
+
335
+ def _augment_exception(exc, version, arch=''):
336
+ """
337
+ Add details to the exception message to help guide the user
338
+ as to what action will resolve it.
339
+ """
340
+ # Error if MSVC++ directory not found or environment not set
341
+ message = exc.args[0]
342
+
343
+ if "vcvarsall" in message.lower() or "visual c" in message.lower():
344
+ # Special error message if MSVC++ not installed
345
+ tmpl = 'Microsoft Visual C++ {version:0.1f} or greater is required.'
346
+ message = tmpl.format(**locals())
347
+ msdownload = 'www.microsoft.com/download/details.aspx?id=%d'
348
+ if version == 9.0:
349
+ if arch.lower().find('ia64') > -1:
350
+ # For VC++ 9.0, if IA64 support is needed, redirect user
351
+ # to Windows SDK 7.0.
352
+ # Note: No download link available from Microsoft.
353
+ message += ' Get it with "Microsoft Windows SDK 7.0"'
354
+ else:
355
+ # For VC++ 9.0 redirect user to Vc++ for Python 2.7 :
356
+ # This redirection link is maintained by Microsoft.
357
+ # Contact vspython@microsoft.com if it needs updating.
358
+ message += ' Get it from http://aka.ms/vcpython27'
359
+ elif version == 10.0:
360
+ # For VC++ 10.0 Redirect user to Windows SDK 7.1
361
+ message += ' Get it with "Microsoft Windows SDK 7.1": '
362
+ message += msdownload % 8279
363
+ elif version >= 14.0:
364
+ # For VC++ 14.X Redirect user to latest Visual C++ Build Tools
365
+ message += (' Get it with "Microsoft C++ Build Tools": '
366
+ r'https://visualstudio.microsoft.com'
367
+ r'/visual-cpp-build-tools/')
368
+
369
+ exc.args = (message, )
370
+
371
+
372
+ class PlatformInfo:
373
+ """
374
+ Current and Target Architectures information.
375
+
376
+ Parameters
377
+ ----------
378
+ arch: str
379
+ Target architecture.
380
+ """
381
+ current_cpu = environ.get('processor_architecture', '').lower()
382
+
383
+ def __init__(self, arch):
384
+ self.arch = arch.lower().replace('x64', 'amd64')
385
+
386
+ @property
387
+ def target_cpu(self):
388
+ """
389
+ Return Target CPU architecture.
390
+
391
+ Return
392
+ ------
393
+ str
394
+ Target CPU
395
+ """
396
+ return self.arch[self.arch.find('_') + 1:]
397
+
398
+ def target_is_x86(self):
399
+ """
400
+ Return True if target CPU is x86 32 bits..
401
+
402
+ Return
403
+ ------
404
+ bool
405
+ CPU is x86 32 bits
406
+ """
407
+ return self.target_cpu == 'x86'
408
+
409
+ def current_is_x86(self):
410
+ """
411
+ Return True if current CPU is x86 32 bits..
412
+
413
+ Return
414
+ ------
415
+ bool
416
+ CPU is x86 32 bits
417
+ """
418
+ return self.current_cpu == 'x86'
419
+
420
+ def current_dir(self, hidex86=False, x64=False):
421
+ """
422
+ Current platform specific subfolder.
423
+
424
+ Parameters
425
+ ----------
426
+ hidex86: bool
427
+ return '' and not '\x86' if architecture is x86.
428
+ x64: bool
429
+ return '\x64' and not '\amd64' if architecture is amd64.
430
+
431
+ Return
432
+ ------
433
+ str
434
+ subfolder: '\target', or '' (see hidex86 parameter)
435
+ """
436
+ return (
437
+ '' if (self.current_cpu == 'x86' and hidex86) else
438
+ r'\x64' if (self.current_cpu == 'amd64' and x64) else
439
+ r'\%s' % self.current_cpu
440
+ )
441
+
442
+ def target_dir(self, hidex86=False, x64=False):
443
+ r"""
444
+ Target platform specific subfolder.
445
+
446
+ Parameters
447
+ ----------
448
+ hidex86: bool
449
+ return '' and not '\x86' if architecture is x86.
450
+ x64: bool
451
+ return '\x64' and not '\amd64' if architecture is amd64.
452
+
453
+ Return
454
+ ------
455
+ str
456
+ subfolder: '\current', or '' (see hidex86 parameter)
457
+ """
458
+ return (
459
+ '' if (self.target_cpu == 'x86' and hidex86) else
460
+ r'\x64' if (self.target_cpu == 'amd64' and x64) else
461
+ r'\%s' % self.target_cpu
462
+ )
463
+
464
+ def cross_dir(self, forcex86=False):
465
+ r"""
466
+ Cross platform specific subfolder.
467
+
468
+ Parameters
469
+ ----------
470
+ forcex86: bool
471
+ Use 'x86' as current architecture even if current architecture is
472
+ not x86.
473
+
474
+ Return
475
+ ------
476
+ str
477
+ subfolder: '' if target architecture is current architecture,
478
+ '\current_target' if not.
479
+ """
480
+ current = 'x86' if forcex86 else self.current_cpu
481
+ return (
482
+ '' if self.target_cpu == current else
483
+ self.target_dir().replace('\\', '\\%s_' % current)
484
+ )
485
+
486
+
487
+ class RegistryInfo:
488
+ """
489
+ Microsoft Visual Studio related registry information.
490
+
491
+ Parameters
492
+ ----------
493
+ platform_info: PlatformInfo
494
+ "PlatformInfo" instance.
495
+ """
496
+ HKEYS = (winreg.HKEY_USERS,
497
+ winreg.HKEY_CURRENT_USER,
498
+ winreg.HKEY_LOCAL_MACHINE,
499
+ winreg.HKEY_CLASSES_ROOT)
500
+
501
+ def __init__(self, platform_info):
502
+ self.pi = platform_info
503
+
504
+ @property
505
+ def visualstudio(self):
506
+ """
507
+ Microsoft Visual Studio root registry key.
508
+
509
+ Return
510
+ ------
511
+ str
512
+ Registry key
513
+ """
514
+ return 'VisualStudio'
515
+
516
+ @property
517
+ def sxs(self):
518
+ """
519
+ Microsoft Visual Studio SxS registry key.
520
+
521
+ Return
522
+ ------
523
+ str
524
+ Registry key
525
+ """
526
+ return join(self.visualstudio, 'SxS')
527
+
528
+ @property
529
+ def vc(self):
530
+ """
531
+ Microsoft Visual C++ VC7 registry key.
532
+
533
+ Return
534
+ ------
535
+ str
536
+ Registry key
537
+ """
538
+ return join(self.sxs, 'VC7')
539
+
540
+ @property
541
+ def vs(self):
542
+ """
543
+ Microsoft Visual Studio VS7 registry key.
544
+
545
+ Return
546
+ ------
547
+ str
548
+ Registry key
549
+ """
550
+ return join(self.sxs, 'VS7')
551
+
552
+ @property
553
+ def vc_for_python(self):
554
+ """
555
+ Microsoft Visual C++ for Python registry key.
556
+
557
+ Return
558
+ ------
559
+ str
560
+ Registry key
561
+ """
562
+ return r'DevDiv\VCForPython'
563
+
564
+ @property
565
+ def microsoft_sdk(self):
566
+ """
567
+ Microsoft SDK registry key.
568
+
569
+ Return
570
+ ------
571
+ str
572
+ Registry key
573
+ """
574
+ return 'Microsoft SDKs'
575
+
576
+ @property
577
+ def windows_sdk(self):
578
+ """
579
+ Microsoft Windows/Platform SDK registry key.
580
+
581
+ Return
582
+ ------
583
+ str
584
+ Registry key
585
+ """
586
+ return join(self.microsoft_sdk, 'Windows')
587
+
588
+ @property
589
+ def netfx_sdk(self):
590
+ """
591
+ Microsoft .NET Framework SDK registry key.
592
+
593
+ Return
594
+ ------
595
+ str
596
+ Registry key
597
+ """
598
+ return join(self.microsoft_sdk, 'NETFXSDK')
599
+
600
+ @property
601
+ def windows_kits_roots(self):
602
+ """
603
+ Microsoft Windows Kits Roots registry key.
604
+
605
+ Return
606
+ ------
607
+ str
608
+ Registry key
609
+ """
610
+ return r'Windows Kits\Installed Roots'
611
+
612
+ def microsoft(self, key, x86=False):
613
+ """
614
+ Return key in Microsoft software registry.
615
+
616
+ Parameters
617
+ ----------
618
+ key: str
619
+ Registry key path where look.
620
+ x86: str
621
+ Force x86 software registry.
622
+
623
+ Return
624
+ ------
625
+ str
626
+ Registry key
627
+ """
628
+ node64 = '' if self.pi.current_is_x86() or x86 else 'Wow6432Node'
629
+ return join('Software', node64, 'Microsoft', key)
630
+
631
+ def lookup(self, key, name):
632
+ """
633
+ Look for values in registry in Microsoft software registry.
634
+
635
+ Parameters
636
+ ----------
637
+ key: str
638
+ Registry key path where look.
639
+ name: str
640
+ Value name to find.
641
+
642
+ Return
643
+ ------
644
+ str
645
+ value
646
+ """
647
+ key_read = winreg.KEY_READ
648
+ openkey = winreg.OpenKey
649
+ closekey = winreg.CloseKey
650
+ ms = self.microsoft
651
+ for hkey in self.HKEYS:
652
+ bkey = None
653
+ try:
654
+ bkey = openkey(hkey, ms(key), 0, key_read)
655
+ except (OSError, IOError):
656
+ if not self.pi.current_is_x86():
657
+ try:
658
+ bkey = openkey(hkey, ms(key, True), 0, key_read)
659
+ except (OSError, IOError):
660
+ continue
661
+ else:
662
+ continue
663
+ try:
664
+ return winreg.QueryValueEx(bkey, name)[0]
665
+ except (OSError, IOError):
666
+ pass
667
+ finally:
668
+ if bkey:
669
+ closekey(bkey)
670
+
671
+
672
+ class SystemInfo:
673
+ """
674
+ Microsoft Windows and Visual Studio related system information.
675
+
676
+ Parameters
677
+ ----------
678
+ registry_info: RegistryInfo
679
+ "RegistryInfo" instance.
680
+ vc_ver: float
681
+ Required Microsoft Visual C++ version.
682
+ """
683
+
684
+ # Variables and properties in this class use originals CamelCase variables
685
+ # names from Microsoft source files for more easy comparison.
686
+ WinDir = environ.get('WinDir', '')
687
+ ProgramFiles = environ.get('ProgramFiles', '')
688
+ ProgramFilesx86 = environ.get('ProgramFiles(x86)', ProgramFiles)
689
+
690
+ def __init__(self, registry_info, vc_ver=None):
691
+ self.ri = registry_info
692
+ self.pi = self.ri.pi
693
+
694
+ self.known_vs_paths = self.find_programdata_vs_vers()
695
+
696
+ # Except for VS15+, VC version is aligned with VS version
697
+ self.vs_ver = self.vc_ver = (
698
+ vc_ver or self._find_latest_available_vs_ver())
699
+
700
+ def _find_latest_available_vs_ver(self):
701
+ """
702
+ Find the latest VC version
703
+
704
+ Return
705
+ ------
706
+ float
707
+ version
708
+ """
709
+ reg_vc_vers = self.find_reg_vs_vers()
710
+
711
+ if not (reg_vc_vers or self.known_vs_paths):
712
+ raise distutils.errors.DistutilsPlatformError(
713
+ 'No Microsoft Visual C++ version found')
714
+
715
+ vc_vers = set(reg_vc_vers)
716
+ vc_vers.update(self.known_vs_paths)
717
+ return sorted(vc_vers)[-1]
718
+
719
+ def find_reg_vs_vers(self):
720
+ """
721
+ Find Microsoft Visual Studio versions available in registry.
722
+
723
+ Return
724
+ ------
725
+ list of float
726
+ Versions
727
+ """
728
+ ms = self.ri.microsoft
729
+ vckeys = (self.ri.vc, self.ri.vc_for_python, self.ri.vs)
730
+ vs_vers = []
731
+ for hkey, key in itertools.product(self.ri.HKEYS, vckeys):
732
+ try:
733
+ bkey = winreg.OpenKey(hkey, ms(key), 0, winreg.KEY_READ)
734
+ except (OSError, IOError):
735
+ continue
736
+ with bkey:
737
+ subkeys, values, _ = winreg.QueryInfoKey(bkey)
738
+ for i in range(values):
739
+ with contextlib.suppress(ValueError):
740
+ ver = float(winreg.EnumValue(bkey, i)[0])
741
+ if ver not in vs_vers:
742
+ vs_vers.append(ver)
743
+ for i in range(subkeys):
744
+ with contextlib.suppress(ValueError):
745
+ ver = float(winreg.EnumKey(bkey, i))
746
+ if ver not in vs_vers:
747
+ vs_vers.append(ver)
748
+ return sorted(vs_vers)
749
+
750
+ def find_programdata_vs_vers(self):
751
+ r"""
752
+ Find Visual studio 2017+ versions from information in
753
+ "C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances".
754
+
755
+ Return
756
+ ------
757
+ dict
758
+ float version as key, path as value.
759
+ """
760
+ vs_versions = {}
761
+ instances_dir = \
762
+ r'C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances'
763
+
764
+ try:
765
+ hashed_names = listdir(instances_dir)
766
+
767
+ except (OSError, IOError):
768
+ # Directory not exists with all Visual Studio versions
769
+ return vs_versions
770
+
771
+ for name in hashed_names:
772
+ try:
773
+ # Get VS installation path from "state.json" file
774
+ state_path = join(instances_dir, name, 'state.json')
775
+ with open(state_path, 'rt', encoding='utf-8') as state_file:
776
+ state = json.load(state_file)
777
+ vs_path = state['installationPath']
778
+
779
+ # Raises OSError if this VS installation does not contain VC
780
+ listdir(join(vs_path, r'VC\Tools\MSVC'))
781
+
782
+ # Store version and path
783
+ vs_versions[self._as_float_version(
784
+ state['installationVersion'])] = vs_path
785
+
786
+ except (OSError, IOError, KeyError):
787
+ # Skip if "state.json" file is missing or bad format
788
+ continue
789
+
790
+ return vs_versions
791
+
792
+ @staticmethod
793
+ def _as_float_version(version):
794
+ """
795
+ Return a string version as a simplified float version (major.minor)
796
+
797
+ Parameters
798
+ ----------
799
+ version: str
800
+ Version.
801
+
802
+ Return
803
+ ------
804
+ float
805
+ version
806
+ """
807
+ return float('.'.join(version.split('.')[:2]))
808
+
809
+ @property
810
+ def VSInstallDir(self):
811
+ """
812
+ Microsoft Visual Studio directory.
813
+
814
+ Return
815
+ ------
816
+ str
817
+ path
818
+ """
819
+ # Default path
820
+ default = join(self.ProgramFilesx86,
821
+ 'Microsoft Visual Studio %0.1f' % self.vs_ver)
822
+
823
+ # Try to get path from registry, if fail use default path
824
+ return self.ri.lookup(self.ri.vs, '%0.1f' % self.vs_ver) or default
825
+
826
+ @property
827
+ def VCInstallDir(self):
828
+ """
829
+ Microsoft Visual C++ directory.
830
+
831
+ Return
832
+ ------
833
+ str
834
+ path
835
+ """
836
+ path = self._guess_vc() or self._guess_vc_legacy()
837
+
838
+ if not isdir(path):
839
+ msg = 'Microsoft Visual C++ directory not found'
840
+ raise distutils.errors.DistutilsPlatformError(msg)
841
+
842
+ return path
843
+
844
+ def _guess_vc(self):
845
+ """
846
+ Locate Visual C++ for VS2017+.
847
+
848
+ Return
849
+ ------
850
+ str
851
+ path
852
+ """
853
+ if self.vs_ver <= 14.0:
854
+ return ''
855
+
856
+ try:
857
+ # First search in known VS paths
858
+ vs_dir = self.known_vs_paths[self.vs_ver]
859
+ except KeyError:
860
+ # Else, search with path from registry
861
+ vs_dir = self.VSInstallDir
862
+
863
+ guess_vc = join(vs_dir, r'VC\Tools\MSVC')
864
+
865
+ # Subdir with VC exact version as name
866
+ try:
867
+ # Update the VC version with real one instead of VS version
868
+ vc_ver = listdir(guess_vc)[-1]
869
+ self.vc_ver = self._as_float_version(vc_ver)
870
+ return join(guess_vc, vc_ver)
871
+ except (OSError, IOError, IndexError):
872
+ return ''
873
+
874
+ def _guess_vc_legacy(self):
875
+ """
876
+ Locate Visual C++ for versions prior to 2017.
877
+
878
+ Return
879
+ ------
880
+ str
881
+ path
882
+ """
883
+ default = join(self.ProgramFilesx86,
884
+ r'Microsoft Visual Studio %0.1f\VC' % self.vs_ver)
885
+
886
+ # Try to get "VC++ for Python" path from registry as default path
887
+ reg_path = join(self.ri.vc_for_python, '%0.1f' % self.vs_ver)
888
+ python_vc = self.ri.lookup(reg_path, 'installdir')
889
+ default_vc = join(python_vc, 'VC') if python_vc else default
890
+
891
+ # Try to get path from registry, if fail use default path
892
+ return self.ri.lookup(self.ri.vc, '%0.1f' % self.vs_ver) or default_vc
893
+
894
+ @property
895
+ def WindowsSdkVersion(self):
896
+ """
897
+ Microsoft Windows SDK versions for specified MSVC++ version.
898
+
899
+ Return
900
+ ------
901
+ tuple of str
902
+ versions
903
+ """
904
+ if self.vs_ver <= 9.0:
905
+ return '7.0', '6.1', '6.0a'
906
+ elif self.vs_ver == 10.0:
907
+ return '7.1', '7.0a'
908
+ elif self.vs_ver == 11.0:
909
+ return '8.0', '8.0a'
910
+ elif self.vs_ver == 12.0:
911
+ return '8.1', '8.1a'
912
+ elif self.vs_ver >= 14.0:
913
+ return '10.0', '8.1'
914
+
915
+ @property
916
+ def WindowsSdkLastVersion(self):
917
+ """
918
+ Microsoft Windows SDK last version.
919
+
920
+ Return
921
+ ------
922
+ str
923
+ version
924
+ """
925
+ return self._use_last_dir_name(join(self.WindowsSdkDir, 'lib'))
926
+
927
+ @property # noqa: C901
928
+ def WindowsSdkDir(self): # noqa: C901 # is too complex (12) # FIXME
929
+ """
930
+ Microsoft Windows SDK directory.
931
+
932
+ Return
933
+ ------
934
+ str
935
+ path
936
+ """
937
+ sdkdir = ''
938
+ for ver in self.WindowsSdkVersion:
939
+ # Try to get it from registry
940
+ loc = join(self.ri.windows_sdk, 'v%s' % ver)
941
+ sdkdir = self.ri.lookup(loc, 'installationfolder')
942
+ if sdkdir:
943
+ break
944
+ if not sdkdir or not isdir(sdkdir):
945
+ # Try to get "VC++ for Python" version from registry
946
+ path = join(self.ri.vc_for_python, '%0.1f' % self.vc_ver)
947
+ install_base = self.ri.lookup(path, 'installdir')
948
+ if install_base:
949
+ sdkdir = join(install_base, 'WinSDK')
950
+ if not sdkdir or not isdir(sdkdir):
951
+ # If fail, use default new path
952
+ for ver in self.WindowsSdkVersion:
953
+ intver = ver[:ver.rfind('.')]
954
+ path = r'Microsoft SDKs\Windows Kits\%s' % intver
955
+ d = join(self.ProgramFiles, path)
956
+ if isdir(d):
957
+ sdkdir = d
958
+ if not sdkdir or not isdir(sdkdir):
959
+ # If fail, use default old path
960
+ for ver in self.WindowsSdkVersion:
961
+ path = r'Microsoft SDKs\Windows\v%s' % ver
962
+ d = join(self.ProgramFiles, path)
963
+ if isdir(d):
964
+ sdkdir = d
965
+ if not sdkdir:
966
+ # If fail, use Platform SDK
967
+ sdkdir = join(self.VCInstallDir, 'PlatformSDK')
968
+ return sdkdir
969
+
970
+ @property
971
+ def WindowsSDKExecutablePath(self):
972
+ """
973
+ Microsoft Windows SDK executable directory.
974
+
975
+ Return
976
+ ------
977
+ str
978
+ path
979
+ """
980
+ # Find WinSDK NetFx Tools registry dir name
981
+ if self.vs_ver <= 11.0:
982
+ netfxver = 35
983
+ arch = ''
984
+ else:
985
+ netfxver = 40
986
+ hidex86 = True if self.vs_ver <= 12.0 else False
987
+ arch = self.pi.current_dir(x64=True, hidex86=hidex86)
988
+ fx = 'WinSDK-NetFx%dTools%s' % (netfxver, arch.replace('\\', '-'))
989
+
990
+ # list all possibles registry paths
991
+ regpaths = []
992
+ if self.vs_ver >= 14.0:
993
+ for ver in self.NetFxSdkVersion:
994
+ regpaths += [join(self.ri.netfx_sdk, ver, fx)]
995
+
996
+ for ver in self.WindowsSdkVersion:
997
+ regpaths += [join(self.ri.windows_sdk, 'v%sA' % ver, fx)]
998
+
999
+ # Return installation folder from the more recent path
1000
+ for path in regpaths:
1001
+ execpath = self.ri.lookup(path, 'installationfolder')
1002
+ if execpath:
1003
+ return execpath
1004
+
1005
+ @property
1006
+ def FSharpInstallDir(self):
1007
+ """
1008
+ Microsoft Visual F# directory.
1009
+
1010
+ Return
1011
+ ------
1012
+ str
1013
+ path
1014
+ """
1015
+ path = join(self.ri.visualstudio, r'%0.1f\Setup\F#' % self.vs_ver)
1016
+ return self.ri.lookup(path, 'productdir') or ''
1017
+
1018
+ @property
1019
+ def UniversalCRTSdkDir(self):
1020
+ """
1021
+ Microsoft Universal CRT SDK directory.
1022
+
1023
+ Return
1024
+ ------
1025
+ str
1026
+ path
1027
+ """
1028
+ # Set Kit Roots versions for specified MSVC++ version
1029
+ vers = ('10', '81') if self.vs_ver >= 14.0 else ()
1030
+
1031
+ # Find path of the more recent Kit
1032
+ for ver in vers:
1033
+ sdkdir = self.ri.lookup(self.ri.windows_kits_roots,
1034
+ 'kitsroot%s' % ver)
1035
+ if sdkdir:
1036
+ return sdkdir or ''
1037
+
1038
+ @property
1039
+ def UniversalCRTSdkLastVersion(self):
1040
+ """
1041
+ Microsoft Universal C Runtime SDK last version.
1042
+
1043
+ Return
1044
+ ------
1045
+ str
1046
+ version
1047
+ """
1048
+ return self._use_last_dir_name(join(self.UniversalCRTSdkDir, 'lib'))
1049
+
1050
+ @property
1051
+ def NetFxSdkVersion(self):
1052
+ """
1053
+ Microsoft .NET Framework SDK versions.
1054
+
1055
+ Return
1056
+ ------
1057
+ tuple of str
1058
+ versions
1059
+ """
1060
+ # Set FxSdk versions for specified VS version
1061
+ return (('4.7.2', '4.7.1', '4.7',
1062
+ '4.6.2', '4.6.1', '4.6',
1063
+ '4.5.2', '4.5.1', '4.5')
1064
+ if self.vs_ver >= 14.0 else ())
1065
+
1066
+ @property
1067
+ def NetFxSdkDir(self):
1068
+ """
1069
+ Microsoft .NET Framework SDK directory.
1070
+
1071
+ Return
1072
+ ------
1073
+ str
1074
+ path
1075
+ """
1076
+ sdkdir = ''
1077
+ for ver in self.NetFxSdkVersion:
1078
+ loc = join(self.ri.netfx_sdk, ver)
1079
+ sdkdir = self.ri.lookup(loc, 'kitsinstallationfolder')
1080
+ if sdkdir:
1081
+ break
1082
+ return sdkdir
1083
+
1084
+ @property
1085
+ def FrameworkDir32(self):
1086
+ """
1087
+ Microsoft .NET Framework 32bit directory.
1088
+
1089
+ Return
1090
+ ------
1091
+ str
1092
+ path
1093
+ """
1094
+ # Default path
1095
+ guess_fw = join(self.WinDir, r'Microsoft.NET\Framework')
1096
+
1097
+ # Try to get path from registry, if fail use default path
1098
+ return self.ri.lookup(self.ri.vc, 'frameworkdir32') or guess_fw
1099
+
1100
+ @property
1101
+ def FrameworkDir64(self):
1102
+ """
1103
+ Microsoft .NET Framework 64bit directory.
1104
+
1105
+ Return
1106
+ ------
1107
+ str
1108
+ path
1109
+ """
1110
+ # Default path
1111
+ guess_fw = join(self.WinDir, r'Microsoft.NET\Framework64')
1112
+
1113
+ # Try to get path from registry, if fail use default path
1114
+ return self.ri.lookup(self.ri.vc, 'frameworkdir64') or guess_fw
1115
+
1116
+ @property
1117
+ def FrameworkVersion32(self):
1118
+ """
1119
+ Microsoft .NET Framework 32bit versions.
1120
+
1121
+ Return
1122
+ ------
1123
+ tuple of str
1124
+ versions
1125
+ """
1126
+ return self._find_dot_net_versions(32)
1127
+
1128
+ @property
1129
+ def FrameworkVersion64(self):
1130
+ """
1131
+ Microsoft .NET Framework 64bit versions.
1132
+
1133
+ Return
1134
+ ------
1135
+ tuple of str
1136
+ versions
1137
+ """
1138
+ return self._find_dot_net_versions(64)
1139
+
1140
+ def _find_dot_net_versions(self, bits):
1141
+ """
1142
+ Find Microsoft .NET Framework versions.
1143
+
1144
+ Parameters
1145
+ ----------
1146
+ bits: int
1147
+ Platform number of bits: 32 or 64.
1148
+
1149
+ Return
1150
+ ------
1151
+ tuple of str
1152
+ versions
1153
+ """
1154
+ # Find actual .NET version in registry
1155
+ reg_ver = self.ri.lookup(self.ri.vc, 'frameworkver%d' % bits)
1156
+ dot_net_dir = getattr(self, 'FrameworkDir%d' % bits)
1157
+ ver = reg_ver or self._use_last_dir_name(dot_net_dir, 'v') or ''
1158
+
1159
+ # Set .NET versions for specified MSVC++ version
1160
+ if self.vs_ver >= 12.0:
1161
+ return ver, 'v4.0'
1162
+ elif self.vs_ver >= 10.0:
1163
+ return 'v4.0.30319' if ver.lower()[:2] != 'v4' else ver, 'v3.5'
1164
+ elif self.vs_ver == 9.0:
1165
+ return 'v3.5', 'v2.0.50727'
1166
+ elif self.vs_ver == 8.0:
1167
+ return 'v3.0', 'v2.0.50727'
1168
+
1169
+ @staticmethod
1170
+ def _use_last_dir_name(path, prefix=''):
1171
+ """
1172
+ Return name of the last dir in path or '' if no dir found.
1173
+
1174
+ Parameters
1175
+ ----------
1176
+ path: str
1177
+ Use dirs in this path
1178
+ prefix: str
1179
+ Use only dirs starting by this prefix
1180
+
1181
+ Return
1182
+ ------
1183
+ str
1184
+ name
1185
+ """
1186
+ matching_dirs = (
1187
+ dir_name
1188
+ for dir_name in reversed(listdir(path))
1189
+ if isdir(join(path, dir_name)) and
1190
+ dir_name.startswith(prefix)
1191
+ )
1192
+ return next(matching_dirs, None) or ''
1193
+
1194
+
1195
+ class EnvironmentInfo:
1196
+ """
1197
+ Return environment variables for specified Microsoft Visual C++ version
1198
+ and platform : Lib, Include, Path and libpath.
1199
+
1200
+ This function is compatible with Microsoft Visual C++ 9.0 to 14.X.
1201
+
1202
+ Script created by analysing Microsoft environment configuration files like
1203
+ "vcvars[...].bat", "SetEnv.Cmd", "vcbuildtools.bat", ...
1204
+
1205
+ Parameters
1206
+ ----------
1207
+ arch: str
1208
+ Target architecture.
1209
+ vc_ver: float
1210
+ Required Microsoft Visual C++ version. If not set, autodetect the last
1211
+ version.
1212
+ vc_min_ver: float
1213
+ Minimum Microsoft Visual C++ version.
1214
+ """
1215
+
1216
+ # Variables and properties in this class use originals CamelCase variables
1217
+ # names from Microsoft source files for more easy comparison.
1218
+
1219
+ def __init__(self, arch, vc_ver=None, vc_min_ver=0):
1220
+ self.pi = PlatformInfo(arch)
1221
+ self.ri = RegistryInfo(self.pi)
1222
+ self.si = SystemInfo(self.ri, vc_ver)
1223
+
1224
+ if self.vc_ver < vc_min_ver:
1225
+ err = 'No suitable Microsoft Visual C++ version found'
1226
+ raise distutils.errors.DistutilsPlatformError(err)
1227
+
1228
+ @property
1229
+ def vs_ver(self):
1230
+ """
1231
+ Microsoft Visual Studio.
1232
+
1233
+ Return
1234
+ ------
1235
+ float
1236
+ version
1237
+ """
1238
+ return self.si.vs_ver
1239
+
1240
+ @property
1241
+ def vc_ver(self):
1242
+ """
1243
+ Microsoft Visual C++ version.
1244
+
1245
+ Return
1246
+ ------
1247
+ float
1248
+ version
1249
+ """
1250
+ return self.si.vc_ver
1251
+
1252
+ @property
1253
+ def VSTools(self):
1254
+ """
1255
+ Microsoft Visual Studio Tools.
1256
+
1257
+ Return
1258
+ ------
1259
+ list of str
1260
+ paths
1261
+ """
1262
+ paths = [r'Common7\IDE', r'Common7\Tools']
1263
+
1264
+ if self.vs_ver >= 14.0:
1265
+ arch_subdir = self.pi.current_dir(hidex86=True, x64=True)
1266
+ paths += [r'Common7\IDE\CommonExtensions\Microsoft\TestWindow']
1267
+ paths += [r'Team Tools\Performance Tools']
1268
+ paths += [r'Team Tools\Performance Tools%s' % arch_subdir]
1269
+
1270
+ return [join(self.si.VSInstallDir, path) for path in paths]
1271
+
1272
+ @property
1273
+ def VCIncludes(self):
1274
+ """
1275
+ Microsoft Visual C++ & Microsoft Foundation Class Includes.
1276
+
1277
+ Return
1278
+ ------
1279
+ list of str
1280
+ paths
1281
+ """
1282
+ return [join(self.si.VCInstallDir, 'Include'),
1283
+ join(self.si.VCInstallDir, r'ATLMFC\Include')]
1284
+
1285
+ @property
1286
+ def VCLibraries(self):
1287
+ """
1288
+ Microsoft Visual C++ & Microsoft Foundation Class Libraries.
1289
+
1290
+ Return
1291
+ ------
1292
+ list of str
1293
+ paths
1294
+ """
1295
+ if self.vs_ver >= 15.0:
1296
+ arch_subdir = self.pi.target_dir(x64=True)
1297
+ else:
1298
+ arch_subdir = self.pi.target_dir(hidex86=True)
1299
+ paths = ['Lib%s' % arch_subdir, r'ATLMFC\Lib%s' % arch_subdir]
1300
+
1301
+ if self.vs_ver >= 14.0:
1302
+ paths += [r'Lib\store%s' % arch_subdir]
1303
+
1304
+ return [join(self.si.VCInstallDir, path) for path in paths]
1305
+
1306
+ @property
1307
+ def VCStoreRefs(self):
1308
+ """
1309
+ Microsoft Visual C++ store references Libraries.
1310
+
1311
+ Return
1312
+ ------
1313
+ list of str
1314
+ paths
1315
+ """
1316
+ if self.vs_ver < 14.0:
1317
+ return []
1318
+ return [join(self.si.VCInstallDir, r'Lib\store\references')]
1319
+
1320
+ @property
1321
+ def VCTools(self):
1322
+ """
1323
+ Microsoft Visual C++ Tools.
1324
+
1325
+ Return
1326
+ ------
1327
+ list of str
1328
+ paths
1329
+ """
1330
+ si = self.si
1331
+ tools = [join(si.VCInstallDir, 'VCPackages')]
1332
+
1333
+ forcex86 = True if self.vs_ver <= 10.0 else False
1334
+ arch_subdir = self.pi.cross_dir(forcex86)
1335
+ if arch_subdir:
1336
+ tools += [join(si.VCInstallDir, 'Bin%s' % arch_subdir)]
1337
+
1338
+ if self.vs_ver == 14.0:
1339
+ path = 'Bin%s' % self.pi.current_dir(hidex86=True)
1340
+ tools += [join(si.VCInstallDir, path)]
1341
+
1342
+ elif self.vs_ver >= 15.0:
1343
+ host_dir = (r'bin\HostX86%s' if self.pi.current_is_x86() else
1344
+ r'bin\HostX64%s')
1345
+ tools += [join(
1346
+ si.VCInstallDir, host_dir % self.pi.target_dir(x64=True))]
1347
+
1348
+ if self.pi.current_cpu != self.pi.target_cpu:
1349
+ tools += [join(
1350
+ si.VCInstallDir, host_dir % self.pi.current_dir(x64=True))]
1351
+
1352
+ else:
1353
+ tools += [join(si.VCInstallDir, 'Bin')]
1354
+
1355
+ return tools
1356
+
1357
+ @property
1358
+ def OSLibraries(self):
1359
+ """
1360
+ Microsoft Windows SDK Libraries.
1361
+
1362
+ Return
1363
+ ------
1364
+ list of str
1365
+ paths
1366
+ """
1367
+ if self.vs_ver <= 10.0:
1368
+ arch_subdir = self.pi.target_dir(hidex86=True, x64=True)
1369
+ return [join(self.si.WindowsSdkDir, 'Lib%s' % arch_subdir)]
1370
+
1371
+ else:
1372
+ arch_subdir = self.pi.target_dir(x64=True)
1373
+ lib = join(self.si.WindowsSdkDir, 'lib')
1374
+ libver = self._sdk_subdir
1375
+ return [join(lib, '%sum%s' % (libver, arch_subdir))]
1376
+
1377
+ @property
1378
+ def OSIncludes(self):
1379
+ """
1380
+ Microsoft Windows SDK Include.
1381
+
1382
+ Return
1383
+ ------
1384
+ list of str
1385
+ paths
1386
+ """
1387
+ include = join(self.si.WindowsSdkDir, 'include')
1388
+
1389
+ if self.vs_ver <= 10.0:
1390
+ return [include, join(include, 'gl')]
1391
+
1392
+ else:
1393
+ if self.vs_ver >= 14.0:
1394
+ sdkver = self._sdk_subdir
1395
+ else:
1396
+ sdkver = ''
1397
+ return [join(include, '%sshared' % sdkver),
1398
+ join(include, '%sum' % sdkver),
1399
+ join(include, '%swinrt' % sdkver)]
1400
+
1401
+ @property
1402
+ def OSLibpath(self):
1403
+ """
1404
+ Microsoft Windows SDK Libraries Paths.
1405
+
1406
+ Return
1407
+ ------
1408
+ list of str
1409
+ paths
1410
+ """
1411
+ ref = join(self.si.WindowsSdkDir, 'References')
1412
+ libpath = []
1413
+
1414
+ if self.vs_ver <= 9.0:
1415
+ libpath += self.OSLibraries
1416
+
1417
+ if self.vs_ver >= 11.0:
1418
+ libpath += [join(ref, r'CommonConfiguration\Neutral')]
1419
+
1420
+ if self.vs_ver >= 14.0:
1421
+ libpath += [
1422
+ ref,
1423
+ join(self.si.WindowsSdkDir, 'UnionMetadata'),
1424
+ join(
1425
+ ref, 'Windows.Foundation.UniversalApiContract', '1.0.0.0'),
1426
+ join(ref, 'Windows.Foundation.FoundationContract', '1.0.0.0'),
1427
+ join(
1428
+ ref, 'Windows.Networking.Connectivity.WwanContract',
1429
+ '1.0.0.0'),
1430
+ join(
1431
+ self.si.WindowsSdkDir, 'ExtensionSDKs', 'Microsoft.VCLibs',
1432
+ '%0.1f' % self.vs_ver, 'References', 'CommonConfiguration',
1433
+ 'neutral'),
1434
+ ]
1435
+ return libpath
1436
+
1437
+ @property
1438
+ def SdkTools(self):
1439
+ """
1440
+ Microsoft Windows SDK Tools.
1441
+
1442
+ Return
1443
+ ------
1444
+ list of str
1445
+ paths
1446
+ """
1447
+ return list(self._sdk_tools())
1448
+
1449
+ def _sdk_tools(self):
1450
+ """
1451
+ Microsoft Windows SDK Tools paths generator.
1452
+
1453
+ Return
1454
+ ------
1455
+ generator of str
1456
+ paths
1457
+ """
1458
+ if self.vs_ver < 15.0:
1459
+ bin_dir = 'Bin' if self.vs_ver <= 11.0 else r'Bin\x86'
1460
+ yield join(self.si.WindowsSdkDir, bin_dir)
1461
+
1462
+ if not self.pi.current_is_x86():
1463
+ arch_subdir = self.pi.current_dir(x64=True)
1464
+ path = 'Bin%s' % arch_subdir
1465
+ yield join(self.si.WindowsSdkDir, path)
1466
+
1467
+ if self.vs_ver in (10.0, 11.0):
1468
+ if self.pi.target_is_x86():
1469
+ arch_subdir = ''
1470
+ else:
1471
+ arch_subdir = self.pi.current_dir(hidex86=True, x64=True)
1472
+ path = r'Bin\NETFX 4.0 Tools%s' % arch_subdir
1473
+ yield join(self.si.WindowsSdkDir, path)
1474
+
1475
+ elif self.vs_ver >= 15.0:
1476
+ path = join(self.si.WindowsSdkDir, 'Bin')
1477
+ arch_subdir = self.pi.current_dir(x64=True)
1478
+ sdkver = self.si.WindowsSdkLastVersion
1479
+ yield join(path, '%s%s' % (sdkver, arch_subdir))
1480
+
1481
+ if self.si.WindowsSDKExecutablePath:
1482
+ yield self.si.WindowsSDKExecutablePath
1483
+
1484
+ @property
1485
+ def _sdk_subdir(self):
1486
+ """
1487
+ Microsoft Windows SDK version subdir.
1488
+
1489
+ Return
1490
+ ------
1491
+ str
1492
+ subdir
1493
+ """
1494
+ ucrtver = self.si.WindowsSdkLastVersion
1495
+ return ('%s\\' % ucrtver) if ucrtver else ''
1496
+
1497
+ @property
1498
+ def SdkSetup(self):
1499
+ """
1500
+ Microsoft Windows SDK Setup.
1501
+
1502
+ Return
1503
+ ------
1504
+ list of str
1505
+ paths
1506
+ """
1507
+ if self.vs_ver > 9.0:
1508
+ return []
1509
+
1510
+ return [join(self.si.WindowsSdkDir, 'Setup')]
1511
+
1512
+ @property
1513
+ def FxTools(self):
1514
+ """
1515
+ Microsoft .NET Framework Tools.
1516
+
1517
+ Return
1518
+ ------
1519
+ list of str
1520
+ paths
1521
+ """
1522
+ pi = self.pi
1523
+ si = self.si
1524
+
1525
+ if self.vs_ver <= 10.0:
1526
+ include32 = True
1527
+ include64 = not pi.target_is_x86() and not pi.current_is_x86()
1528
+ else:
1529
+ include32 = pi.target_is_x86() or pi.current_is_x86()
1530
+ include64 = pi.current_cpu == 'amd64' or pi.target_cpu == 'amd64'
1531
+
1532
+ tools = []
1533
+ if include32:
1534
+ tools += [join(si.FrameworkDir32, ver)
1535
+ for ver in si.FrameworkVersion32]
1536
+ if include64:
1537
+ tools += [join(si.FrameworkDir64, ver)
1538
+ for ver in si.FrameworkVersion64]
1539
+ return tools
1540
+
1541
+ @property
1542
+ def NetFxSDKLibraries(self):
1543
+ """
1544
+ Microsoft .Net Framework SDK Libraries.
1545
+
1546
+ Return
1547
+ ------
1548
+ list of str
1549
+ paths
1550
+ """
1551
+ if self.vs_ver < 14.0 or not self.si.NetFxSdkDir:
1552
+ return []
1553
+
1554
+ arch_subdir = self.pi.target_dir(x64=True)
1555
+ return [join(self.si.NetFxSdkDir, r'lib\um%s' % arch_subdir)]
1556
+
1557
+ @property
1558
+ def NetFxSDKIncludes(self):
1559
+ """
1560
+ Microsoft .Net Framework SDK Includes.
1561
+
1562
+ Return
1563
+ ------
1564
+ list of str
1565
+ paths
1566
+ """
1567
+ if self.vs_ver < 14.0 or not self.si.NetFxSdkDir:
1568
+ return []
1569
+
1570
+ return [join(self.si.NetFxSdkDir, r'include\um')]
1571
+
1572
+ @property
1573
+ def VsTDb(self):
1574
+ """
1575
+ Microsoft Visual Studio Team System Database.
1576
+
1577
+ Return
1578
+ ------
1579
+ list of str
1580
+ paths
1581
+ """
1582
+ return [join(self.si.VSInstallDir, r'VSTSDB\Deploy')]
1583
+
1584
+ @property
1585
+ def MSBuild(self):
1586
+ """
1587
+ Microsoft Build Engine.
1588
+
1589
+ Return
1590
+ ------
1591
+ list of str
1592
+ paths
1593
+ """
1594
+ if self.vs_ver < 12.0:
1595
+ return []
1596
+ elif self.vs_ver < 15.0:
1597
+ base_path = self.si.ProgramFilesx86
1598
+ arch_subdir = self.pi.current_dir(hidex86=True)
1599
+ else:
1600
+ base_path = self.si.VSInstallDir
1601
+ arch_subdir = ''
1602
+
1603
+ path = r'MSBuild\%0.1f\bin%s' % (self.vs_ver, arch_subdir)
1604
+ build = [join(base_path, path)]
1605
+
1606
+ if self.vs_ver >= 15.0:
1607
+ # Add Roslyn C# & Visual Basic Compiler
1608
+ build += [join(base_path, path, 'Roslyn')]
1609
+
1610
+ return build
1611
+
1612
+ @property
1613
+ def HTMLHelpWorkshop(self):
1614
+ """
1615
+ Microsoft HTML Help Workshop.
1616
+
1617
+ Return
1618
+ ------
1619
+ list of str
1620
+ paths
1621
+ """
1622
+ if self.vs_ver < 11.0:
1623
+ return []
1624
+
1625
+ return [join(self.si.ProgramFilesx86, 'HTML Help Workshop')]
1626
+
1627
+ @property
1628
+ def UCRTLibraries(self):
1629
+ """
1630
+ Microsoft Universal C Runtime SDK Libraries.
1631
+
1632
+ Return
1633
+ ------
1634
+ list of str
1635
+ paths
1636
+ """
1637
+ if self.vs_ver < 14.0:
1638
+ return []
1639
+
1640
+ arch_subdir = self.pi.target_dir(x64=True)
1641
+ lib = join(self.si.UniversalCRTSdkDir, 'lib')
1642
+ ucrtver = self._ucrt_subdir
1643
+ return [join(lib, '%sucrt%s' % (ucrtver, arch_subdir))]
1644
+
1645
+ @property
1646
+ def UCRTIncludes(self):
1647
+ """
1648
+ Microsoft Universal C Runtime SDK Include.
1649
+
1650
+ Return
1651
+ ------
1652
+ list of str
1653
+ paths
1654
+ """
1655
+ if self.vs_ver < 14.0:
1656
+ return []
1657
+
1658
+ include = join(self.si.UniversalCRTSdkDir, 'include')
1659
+ return [join(include, '%sucrt' % self._ucrt_subdir)]
1660
+
1661
+ @property
1662
+ def _ucrt_subdir(self):
1663
+ """
1664
+ Microsoft Universal C Runtime SDK version subdir.
1665
+
1666
+ Return
1667
+ ------
1668
+ str
1669
+ subdir
1670
+ """
1671
+ ucrtver = self.si.UniversalCRTSdkLastVersion
1672
+ return ('%s\\' % ucrtver) if ucrtver else ''
1673
+
1674
+ @property
1675
+ def FSharp(self):
1676
+ """
1677
+ Microsoft Visual F#.
1678
+
1679
+ Return
1680
+ ------
1681
+ list of str
1682
+ paths
1683
+ """
1684
+ if 11.0 > self.vs_ver > 12.0:
1685
+ return []
1686
+
1687
+ return [self.si.FSharpInstallDir]
1688
+
1689
+ @property
1690
+ def VCRuntimeRedist(self):
1691
+ """
1692
+ Microsoft Visual C++ runtime redistributable dll.
1693
+
1694
+ Return
1695
+ ------
1696
+ str
1697
+ path
1698
+ """
1699
+ vcruntime = 'vcruntime%d0.dll' % self.vc_ver
1700
+ arch_subdir = self.pi.target_dir(x64=True).strip('\\')
1701
+
1702
+ # Installation prefixes candidates
1703
+ prefixes = []
1704
+ tools_path = self.si.VCInstallDir
1705
+ redist_path = dirname(tools_path.replace(r'\Tools', r'\Redist'))
1706
+ if isdir(redist_path):
1707
+ # Redist version may not be exactly the same as tools
1708
+ redist_path = join(redist_path, listdir(redist_path)[-1])
1709
+ prefixes += [redist_path, join(redist_path, 'onecore')]
1710
+
1711
+ prefixes += [join(tools_path, 'redist')] # VS14 legacy path
1712
+
1713
+ # CRT directory
1714
+ crt_dirs = ('Microsoft.VC%d.CRT' % (self.vc_ver * 10),
1715
+ # Sometime store in directory with VS version instead of VC
1716
+ 'Microsoft.VC%d.CRT' % (int(self.vs_ver) * 10))
1717
+
1718
+ # vcruntime path
1719
+ for prefix, crt_dir in itertools.product(prefixes, crt_dirs):
1720
+ path = join(prefix, arch_subdir, crt_dir, vcruntime)
1721
+ if isfile(path):
1722
+ return path
1723
+
1724
+ def return_env(self, exists=True):
1725
+ """
1726
+ Return environment dict.
1727
+
1728
+ Parameters
1729
+ ----------
1730
+ exists: bool
1731
+ It True, only return existing paths.
1732
+
1733
+ Return
1734
+ ------
1735
+ dict
1736
+ environment
1737
+ """
1738
+ env = dict(
1739
+ include=self._build_paths('include',
1740
+ [self.VCIncludes,
1741
+ self.OSIncludes,
1742
+ self.UCRTIncludes,
1743
+ self.NetFxSDKIncludes],
1744
+ exists),
1745
+ lib=self._build_paths('lib',
1746
+ [self.VCLibraries,
1747
+ self.OSLibraries,
1748
+ self.FxTools,
1749
+ self.UCRTLibraries,
1750
+ self.NetFxSDKLibraries],
1751
+ exists),
1752
+ libpath=self._build_paths('libpath',
1753
+ [self.VCLibraries,
1754
+ self.FxTools,
1755
+ self.VCStoreRefs,
1756
+ self.OSLibpath],
1757
+ exists),
1758
+ path=self._build_paths('path',
1759
+ [self.VCTools,
1760
+ self.VSTools,
1761
+ self.VsTDb,
1762
+ self.SdkTools,
1763
+ self.SdkSetup,
1764
+ self.FxTools,
1765
+ self.MSBuild,
1766
+ self.HTMLHelpWorkshop,
1767
+ self.FSharp],
1768
+ exists),
1769
+ )
1770
+ if self.vs_ver >= 14 and isfile(self.VCRuntimeRedist):
1771
+ env['py_vcruntime_redist'] = self.VCRuntimeRedist
1772
+ return env
1773
+
1774
+ def _build_paths(self, name, spec_path_lists, exists):
1775
+ """
1776
+ Given an environment variable name and specified paths,
1777
+ return a pathsep-separated string of paths containing
1778
+ unique, extant, directories from those paths and from
1779
+ the environment variable. Raise an error if no paths
1780
+ are resolved.
1781
+
1782
+ Parameters
1783
+ ----------
1784
+ name: str
1785
+ Environment variable name
1786
+ spec_path_lists: list of str
1787
+ Paths
1788
+ exists: bool
1789
+ It True, only return existing paths.
1790
+
1791
+ Return
1792
+ ------
1793
+ str
1794
+ Pathsep-separated paths
1795
+ """
1796
+ # flatten spec_path_lists
1797
+ spec_paths = itertools.chain.from_iterable(spec_path_lists)
1798
+ env_paths = environ.get(name, '').split(pathsep)
1799
+ paths = itertools.chain(spec_paths, env_paths)
1800
+ extant_paths = list(filter(isdir, paths)) if exists else paths
1801
+ if not extant_paths:
1802
+ msg = "%s environment variable is empty" % name.upper()
1803
+ raise distutils.errors.DistutilsPlatformError(msg)
1804
+ unique_paths = unique_everseen(extant_paths)
1805
+ return pathsep.join(unique_paths)