@scrypted/server 0.0.141 → 0.0.145

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 (722) hide show
  1. package/dist/plugin/media.js +14 -3
  2. package/dist/plugin/media.js.map +1 -1
  3. package/dist/plugin/plugin-remote.js +2 -0
  4. package/dist/plugin/plugin-remote.js.map +1 -1
  5. package/dist/rpc.js +9 -5
  6. package/dist/rpc.js.map +1 -1
  7. package/dist/runtime.js +6 -0
  8. package/dist/runtime.js.map +1 -1
  9. package/package.json +2 -2
  10. package/src/plugin/media.ts +15 -3
  11. package/src/plugin/plugin-remote.ts +2 -0
  12. package/src/rpc.ts +11 -3
  13. package/src/runtime.ts +7 -0
  14. package/.venv/bin/Activate.ps1 +0 -241
  15. package/.venv/bin/activate +0 -66
  16. package/.venv/bin/activate.csh +0 -25
  17. package/.venv/bin/activate.fish +0 -64
  18. package/.venv/bin/pip +0 -8
  19. package/.venv/bin/pip3 +0 -8
  20. package/.venv/bin/pip3.9 +0 -8
  21. package/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py +0 -198
  22. package/.venv/lib/python3.9/site-packages/_distutils_hack/override.py +0 -1
  23. package/.venv/lib/python3.9/site-packages/distutils-precedence.pth +0 -1
  24. package/.venv/lib/python3.9/site-packages/pgi/__init__.py +0 -62
  25. package/.venv/lib/python3.9/site-packages/pgi/_compat.py +0 -74
  26. package/.venv/lib/python3.9/site-packages/pgi/callback.py +0 -15
  27. package/.venv/lib/python3.9/site-packages/pgi/cffilib/__init__.py +0 -12
  28. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_compat.py +0 -25
  29. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_utils.py +0 -119
  30. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/__init__.py +0 -60
  31. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_cdef.py +0 -574
  32. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_ffi.py +0 -25
  33. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/error.py +0 -13
  34. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giarginfo.py +0 -73
  35. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giargument.py +0 -36
  36. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gibaseinfo.py +0 -113
  37. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gicallableinfo.py +0 -75
  38. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giconstantinfo.py +0 -22
  39. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gienuminfo.py +0 -59
  40. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifieldinfo.py +0 -40
  41. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifunctioninfo.py +0 -64
  42. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giinterfaceinfo.py +0 -93
  43. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giobjectinfo.py +0 -143
  44. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gipropertyinfo.py +0 -28
  45. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giregisteredtypeinfo.py +0 -27
  46. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/girepository.py +0 -143
  47. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gisignalinfo.py +0 -55
  48. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gistructinfo.py +0 -55
  49. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypeinfo.py +0 -66
  50. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypelib.py +0 -40
  51. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giunioninfo.py +0 -66
  52. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/__init__.py +0 -8
  53. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/_cdef.py +0 -101
  54. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/glib.py +0 -260
  55. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/__init__.py +0 -15
  56. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_cdef.py +0 -45
  57. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_ffi.py +0 -26
  58. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/gobject.py +0 -27
  59. package/.venv/lib/python3.9/site-packages/pgi/clib/__init__.py +0 -11
  60. package/.venv/lib/python3.9/site-packages/pgi/clib/_compat.py +0 -20
  61. package/.venv/lib/python3.9/site-packages/pgi/clib/_utils.py +0 -213
  62. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/__init__.py +0 -71
  63. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/error.py +0 -13
  64. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giarginfo.py +0 -65
  65. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giargument.py +0 -58
  66. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gibaseinfo.py +0 -152
  67. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gicallableinfo.py +0 -203
  68. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giconstantinfo.py +0 -35
  69. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gienuminfo.py +0 -64
  70. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gifieldinfo.py +0 -46
  71. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giinterfaceinfo.py +0 -83
  72. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giobjectinfo.py +0 -134
  73. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gipropertyinfo.py +0 -36
  74. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giregisteredtypeinfo.py +0 -34
  75. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/girepository.py +0 -200
  76. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gistructinfo.py +0 -55
  77. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypeinfo.py +0 -97
  78. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypelib.py +0 -56
  79. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giunioninfo.py +0 -60
  80. package/.venv/lib/python3.9/site-packages/pgi/clib/glib.py +0 -336
  81. package/.venv/lib/python3.9/site-packages/pgi/clib/gobject.py +0 -405
  82. package/.venv/lib/python3.9/site-packages/pgi/codegen/__init__.py +0 -28
  83. package/.venv/lib/python3.9/site-packages/pgi/codegen/arguments.py +0 -640
  84. package/.venv/lib/python3.9/site-packages/pgi/codegen/backend.py +0 -95
  85. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbargs.py +0 -152
  86. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbreturn.py +0 -77
  87. package/.venv/lib/python3.9/site-packages/pgi/codegen/cffi_backend.py +0 -424
  88. package/.venv/lib/python3.9/site-packages/pgi/codegen/construct.py +0 -222
  89. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/__init__.py +0 -11
  90. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/main.py +0 -184
  91. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_basic.py +0 -705
  92. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_container.py +0 -236
  93. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_interface.py +0 -402
  94. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_other.py +0 -93
  95. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/utils.py +0 -168
  96. package/.venv/lib/python3.9/site-packages/pgi/codegen/fieldgen.py +0 -114
  97. package/.venv/lib/python3.9/site-packages/pgi/codegen/fields.py +0 -244
  98. package/.venv/lib/python3.9/site-packages/pgi/codegen/funcgen.py +0 -376
  99. package/.venv/lib/python3.9/site-packages/pgi/codegen/null_backend.py +0 -110
  100. package/.venv/lib/python3.9/site-packages/pgi/codegen/returnvalues.py +0 -443
  101. package/.venv/lib/python3.9/site-packages/pgi/codegen/siggen.py +0 -157
  102. package/.venv/lib/python3.9/site-packages/pgi/codegen/utils.py +0 -248
  103. package/.venv/lib/python3.9/site-packages/pgi/const.py +0 -9
  104. package/.venv/lib/python3.9/site-packages/pgi/constant.py +0 -32
  105. package/.venv/lib/python3.9/site-packages/pgi/debug.py +0 -31
  106. package/.venv/lib/python3.9/site-packages/pgi/enum.py +0 -244
  107. package/.venv/lib/python3.9/site-packages/pgi/field.py +0 -58
  108. package/.venv/lib/python3.9/site-packages/pgi/finalizer.py +0 -3
  109. package/.venv/lib/python3.9/site-packages/pgi/foreign/__init__.py +0 -71
  110. package/.venv/lib/python3.9/site-packages/pgi/foreign/_base.py +0 -43
  111. package/.venv/lib/python3.9/site-packages/pgi/foreign/cairo.py +0 -41
  112. package/.venv/lib/python3.9/site-packages/pgi/function.py +0 -12
  113. package/.venv/lib/python3.9/site-packages/pgi/gerror.py +0 -58
  114. package/.venv/lib/python3.9/site-packages/pgi/gtype.py +0 -168
  115. package/.venv/lib/python3.9/site-packages/pgi/importer.py +0 -189
  116. package/.venv/lib/python3.9/site-packages/pgi/module.py +0 -141
  117. package/.venv/lib/python3.9/site-packages/pgi/obj.py +0 -519
  118. package/.venv/lib/python3.9/site-packages/pgi/overrides/GLib.py +0 -1013
  119. package/.venv/lib/python3.9/site-packages/pgi/overrides/GObject.py +0 -583
  120. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gdk.py +0 -454
  121. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gio.py +0 -237
  122. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gtk.py +0 -2412
  123. package/.venv/lib/python3.9/site-packages/pgi/overrides/Pango.py +0 -53
  124. package/.venv/lib/python3.9/site-packages/pgi/overrides/Poppler.py +0 -61
  125. package/.venv/lib/python3.9/site-packages/pgi/overrides/__init__.py +0 -327
  126. package/.venv/lib/python3.9/site-packages/pgi/overrides/keysyms.py +0 -54
  127. package/.venv/lib/python3.9/site-packages/pgi/properties.py +0 -313
  128. package/.venv/lib/python3.9/site-packages/pgi/propertyhelper.py +0 -12
  129. package/.venv/lib/python3.9/site-packages/pgi/repository/__init__.py +0 -10
  130. package/.venv/lib/python3.9/site-packages/pgi/signalhelper.py +0 -18
  131. package/.venv/lib/python3.9/site-packages/pgi/signals.py +0 -122
  132. package/.venv/lib/python3.9/site-packages/pgi/static.py +0 -189
  133. package/.venv/lib/python3.9/site-packages/pgi/structure.py +0 -131
  134. package/.venv/lib/python3.9/site-packages/pgi/util.py +0 -342
  135. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/COPYING +0 -502
  136. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/INSTALLER +0 -1
  137. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/METADATA +0 -22
  138. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/RECORD +0 -229
  139. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/REQUESTED +0 -0
  140. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/WHEEL +0 -5
  141. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/top_level.txt +0 -1
  142. package/.venv/lib/python3.9/site-packages/pip/__init__.py +0 -13
  143. package/.venv/lib/python3.9/site-packages/pip/__main__.py +0 -31
  144. package/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py +0 -19
  145. package/.venv/lib/python3.9/site-packages/pip/_internal/build_env.py +0 -293
  146. package/.venv/lib/python3.9/site-packages/pip/_internal/cache.py +0 -264
  147. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +0 -4
  148. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py +0 -163
  149. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py +0 -214
  150. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py +0 -1010
  151. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py +0 -27
  152. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py +0 -70
  153. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py +0 -87
  154. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py +0 -292
  155. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py +0 -250
  156. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py +0 -469
  157. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py +0 -157
  158. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py +0 -6
  159. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py +0 -127
  160. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py +0 -223
  161. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py +0 -53
  162. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py +0 -96
  163. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py +0 -266
  164. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py +0 -202
  165. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py +0 -139
  166. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py +0 -97
  167. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py +0 -59
  168. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py +0 -41
  169. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py +0 -138
  170. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py +0 -770
  171. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py +0 -361
  172. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py +0 -174
  173. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py +0 -235
  174. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py +0 -105
  175. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py +0 -177
  176. package/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py +0 -367
  177. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py +0 -21
  178. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py +0 -36
  179. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py +0 -22
  180. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py +0 -129
  181. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py +0 -31
  182. package/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py +0 -402
  183. package/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py +0 -2
  184. package/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py +0 -536
  185. package/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py +0 -993
  186. package/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py +0 -224
  187. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py +0 -446
  188. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py +0 -169
  189. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py +0 -219
  190. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py +0 -52
  191. package/.venv/lib/python3.9/site-packages/pip/_internal/main.py +0 -12
  192. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py +0 -51
  193. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py +0 -330
  194. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py +0 -146
  195. package/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py +0 -2
  196. package/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py +0 -34
  197. package/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py +0 -220
  198. package/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py +0 -80
  199. package/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py +0 -28
  200. package/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py +0 -288
  201. package/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py +0 -31
  202. package/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py +0 -129
  203. package/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py +0 -51
  204. package/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py +0 -110
  205. package/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py +0 -89
  206. package/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py +0 -2
  207. package/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py +0 -323
  208. package/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py +0 -69
  209. package/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py +0 -184
  210. package/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  211. package/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py +0 -454
  212. package/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py +0 -96
  213. package/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py +0 -60
  214. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py +0 -0
  215. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  216. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py +0 -30
  217. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -34
  218. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -67
  219. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  220. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  221. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -105
  222. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py +0 -149
  223. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py +0 -254
  224. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  225. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -46
  226. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py +0 -125
  227. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py +0 -738
  228. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py +0 -632
  229. package/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py +0 -183
  230. package/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py +0 -94
  231. package/.venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py +0 -466
  232. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py +0 -536
  233. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py +0 -891
  234. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py +0 -189
  235. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py +0 -124
  236. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py +0 -633
  237. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py +0 -0
  238. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py +0 -20
  239. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  240. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -467
  241. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  242. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -141
  243. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -540
  244. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -701
  245. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -155
  246. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -215
  247. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -68
  248. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -166
  249. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -251
  250. package/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py +0 -182
  251. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py +0 -0
  252. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py +0 -38
  253. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py +0 -52
  254. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py +0 -63
  255. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py +0 -165
  256. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py +0 -11
  257. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py +0 -120
  258. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  259. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py +0 -42
  260. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py +0 -75
  261. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py +0 -36
  262. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py +0 -27
  263. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py +0 -182
  264. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py +0 -27
  265. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py +0 -88
  266. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py +0 -144
  267. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py +0 -35
  268. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py +0 -358
  269. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py +0 -689
  270. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py +0 -39
  271. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py +0 -84
  272. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py +0 -103
  273. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py +0 -33
  274. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py +0 -167
  275. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py +0 -289
  276. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py +0 -246
  277. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py +0 -258
  278. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py +0 -62
  279. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  280. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py +0 -182
  281. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py +0 -15
  282. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py +0 -93
  283. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py +0 -513
  284. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py +0 -153
  285. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py +0 -318
  286. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py +0 -693
  287. package/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py +0 -375
  288. package/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py +0 -111
  289. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -11
  290. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -57
  291. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -133
  292. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py +0 -39
  293. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -2
  294. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -146
  295. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -33
  296. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py +0 -29
  297. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py +0 -376
  298. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -80
  299. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -135
  300. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -188
  301. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -29
  302. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py +0 -3
  303. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  304. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem +0 -4257
  305. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py +0 -76
  306. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py +0 -83
  307. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py +0 -386
  308. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py +0 -47
  309. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py +0 -233
  310. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -107
  311. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py +0 -145
  312. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -1
  313. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -84
  314. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -88
  315. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py +0 -36
  316. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py +0 -49
  317. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py +0 -76
  318. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py +0 -101
  319. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py +0 -246
  320. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -92
  321. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -195
  322. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py +0 -47
  323. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -387
  324. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py +0 -46
  325. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -283
  326. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -46
  327. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -292
  328. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py +0 -325
  329. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py +0 -233
  330. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -4650
  331. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -4398
  332. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -4383
  333. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -4650
  334. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -5718
  335. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -4383
  336. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -4383
  337. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py +0 -145
  338. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -91
  339. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -54
  340. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py +0 -572
  341. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  342. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -310
  343. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -145
  344. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -83
  345. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py +0 -92
  346. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py +0 -286
  347. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py +0 -82
  348. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py +0 -9
  349. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py +0 -6
  350. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py +0 -102
  351. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -258
  352. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py +0 -80
  353. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py +0 -152
  354. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py +0 -169
  355. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py +0 -23
  356. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py +0 -6
  357. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py +0 -41
  358. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py +0 -764
  359. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +0 -84
  360. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +0 -786
  361. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py +0 -2607
  362. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py +0 -1122
  363. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py +0 -1339
  364. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py +0 -509
  365. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py +0 -1300
  366. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py +0 -393
  367. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py +0 -147
  368. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py +0 -1058
  369. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py +0 -358
  370. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py +0 -429
  371. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  372. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  373. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  374. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py +0 -1969
  375. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py +0 -739
  376. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  377. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  378. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  379. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py +0 -1053
  380. package/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py +0 -1386
  381. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py +0 -35
  382. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py +0 -289
  383. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py +0 -918
  384. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py +0 -1735
  385. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py +0 -5
  386. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py +0 -40
  387. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py +0 -67
  388. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py +0 -159
  389. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py +0 -2946
  390. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  391. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +0 -29
  392. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py +0 -12
  393. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +0 -73
  394. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py +0 -93
  395. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +0 -207
  396. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +0 -916
  397. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py +0 -38
  398. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py +0 -2795
  399. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py +0 -409
  400. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +0 -30
  401. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +0 -54
  402. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +0 -50
  403. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +0 -88
  404. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py +0 -417
  405. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +0 -239
  406. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +0 -343
  407. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +0 -392
  408. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +0 -154
  409. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py +0 -252
  410. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +0 -43
  411. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +0 -131
  412. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +0 -215
  413. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +0 -69
  414. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py +0 -44
  415. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py +0 -117
  416. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py +0 -16
  417. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py +0 -409
  418. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py +0 -2050
  419. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py +0 -58
  420. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py +0 -2
  421. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py +0 -8438
  422. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py +0 -54
  423. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py +0 -1
  424. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  425. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py +0 -193
  426. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py +0 -1087
  427. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py +0 -26
  428. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py +0 -25
  429. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_manylinux.py +0 -301
  430. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_musllinux.py +0 -136
  431. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py +0 -67
  432. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py +0 -304
  433. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py +0 -146
  434. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py +0 -828
  435. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py +0 -484
  436. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py +0 -136
  437. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py +0 -504
  438. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py +0 -6
  439. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py +0 -127
  440. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py +0 -207
  441. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py +0 -115
  442. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py +0 -51
  443. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py +0 -44
  444. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py +0 -171
  445. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py +0 -17
  446. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py +0 -363
  447. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py +0 -92
  448. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py +0 -375
  449. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3296
  450. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py +0 -23
  451. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__init__.py +0 -329
  452. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__main__.py +0 -44
  453. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/android.py +0 -117
  454. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/api.py +0 -155
  455. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/macos.py +0 -62
  456. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/unix.py +0 -180
  457. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/version.py +0 -4
  458. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/windows.py +0 -180
  459. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py +0 -189
  460. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py +0 -93
  461. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/colors.py +0 -79
  462. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py +0 -47
  463. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py +0 -45
  464. package/.venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py +0 -7107
  465. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py +0 -154
  466. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py +0 -14
  467. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py +0 -42
  468. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py +0 -533
  469. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py +0 -159
  470. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py +0 -305
  471. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py +0 -18
  472. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py +0 -76
  473. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py +0 -549
  474. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py +0 -127
  475. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py +0 -132
  476. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py +0 -34
  477. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py +0 -966
  478. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py +0 -16
  479. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py +0 -781
  480. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py +0 -123
  481. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py +0 -105
  482. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py +0 -1013
  483. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  484. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  485. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  486. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  487. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py +0 -37
  488. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -483
  489. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py +0 -165
  490. package/.venv/lib/python3.9/site-packages/pip/_vendor/six.py +0 -998
  491. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py +0 -517
  492. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -92
  493. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py +0 -68
  494. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py +0 -46
  495. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py +0 -41
  496. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -58
  497. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py +0 -43
  498. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py +0 -213
  499. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py +0 -96
  500. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -59
  501. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py +0 -191
  502. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/__init__.py +0 -6
  503. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py +0 -703
  504. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_re.py +0 -83
  505. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py +0 -85
  506. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py +0 -337
  507. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  508. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py +0 -569
  509. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1078
  510. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  511. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  512. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  513. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  514. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  515. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  516. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  517. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -511
  518. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -922
  519. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  520. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  521. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  522. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  523. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -5
  524. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  525. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  526. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1077
  527. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +0 -24
  528. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +0 -160
  529. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -536
  530. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py +0 -170
  531. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py +0 -821
  532. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  533. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py +0 -150
  534. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  535. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  536. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py +0 -143
  537. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  538. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py +0 -602
  539. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -495
  540. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  541. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -268
  542. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py +0 -432
  543. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py +0 -153
  544. package/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -22
  545. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py +0 -342
  546. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py +0 -231
  547. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py +0 -59
  548. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py +0 -153
  549. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -325
  550. package/.venv/lib/python3.9/site-packages/pip/py.typed +0 -4
  551. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER +0 -1
  552. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt +0 -20
  553. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA +0 -93
  554. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD +0 -819
  555. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED +0 -0
  556. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL +0 -5
  557. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt +0 -5
  558. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt +0 -1
  559. package/.venv/lib/python3.9/site-packages/pkg_resources/__init__.py +0 -3303
  560. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  561. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py +0 -608
  562. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py +0 -26
  563. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py +0 -25
  564. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_manylinux.py +0 -301
  565. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_musllinux.py +0 -136
  566. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py +0 -67
  567. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py +0 -304
  568. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py +0 -146
  569. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py +0 -828
  570. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py +0 -484
  571. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py +0 -136
  572. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py +0 -504
  573. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py +0 -5742
  574. package/.venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py +0 -73
  575. package/.venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -6
  576. package/.venv/lib/python3.9/site-packages/setuptools/__init__.py +0 -244
  577. package/.venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py +0 -7
  578. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py +0 -24
  579. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_collections.py +0 -56
  580. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py +0 -561
  581. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py +0 -256
  582. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py +0 -393
  583. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py +0 -1123
  584. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py +0 -403
  585. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py +0 -31
  586. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py +0 -143
  587. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -123
  588. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py +0 -749
  589. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -579
  590. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py +0 -377
  591. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py +0 -157
  592. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py +0 -209
  593. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py +0 -755
  594. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py +0 -392
  595. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py +0 -152
  596. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py +0 -148
  597. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py +0 -76
  598. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py +0 -344
  599. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py +0 -775
  600. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py +0 -79
  601. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -84
  602. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py +0 -47
  603. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py +0 -217
  604. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py +0 -60
  605. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py +0 -30
  606. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py +0 -304
  607. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py +0 -494
  608. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py +0 -214
  609. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/config.py +0 -130
  610. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py +0 -249
  611. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -362
  612. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py +0 -5
  613. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py +0 -92
  614. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py +0 -210
  615. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py +0 -1257
  616. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py +0 -97
  617. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py +0 -240
  618. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py +0 -457
  619. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py +0 -238
  620. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py +0 -355
  621. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/log.py +0 -81
  622. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py +0 -788
  623. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py +0 -643
  624. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py +0 -19
  625. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py +0 -7
  626. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py +0 -106
  627. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py +0 -567
  628. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py +0 -286
  629. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py +0 -325
  630. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/util.py +0 -548
  631. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/version.py +0 -363
  632. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py +0 -169
  633. package/.venv/lib/python3.9/site-packages/setuptools/_imp.py +0 -82
  634. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py +0 -0
  635. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -4
  636. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/more.py +0 -3825
  637. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -620
  638. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py +0 -488
  639. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py +0 -26
  640. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py +0 -25
  641. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -301
  642. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -136
  643. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py +0 -67
  644. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py +0 -304
  645. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py +0 -146
  646. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -828
  647. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py +0 -484
  648. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py +0 -136
  649. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py +0 -504
  650. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py +0 -5742
  651. package/.venv/lib/python3.9/site-packages/setuptools/archive_util.py +0 -205
  652. package/.venv/lib/python3.9/site-packages/setuptools/build_meta.py +0 -290
  653. package/.venv/lib/python3.9/site-packages/setuptools/cli-32.exe +0 -0
  654. package/.venv/lib/python3.9/site-packages/setuptools/cli-64.exe +0 -0
  655. package/.venv/lib/python3.9/site-packages/setuptools/cli-arm64.exe +0 -0
  656. package/.venv/lib/python3.9/site-packages/setuptools/cli.exe +0 -0
  657. package/.venv/lib/python3.9/site-packages/setuptools/command/__init__.py +0 -8
  658. package/.venv/lib/python3.9/site-packages/setuptools/command/alias.py +0 -78
  659. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py +0 -456
  660. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py +0 -40
  661. package/.venv/lib/python3.9/site-packages/setuptools/command/build_clib.py +0 -101
  662. package/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py +0 -328
  663. package/.venv/lib/python3.9/site-packages/setuptools/command/build_py.py +0 -242
  664. package/.venv/lib/python3.9/site-packages/setuptools/command/develop.py +0 -193
  665. package/.venv/lib/python3.9/site-packages/setuptools/command/dist_info.py +0 -36
  666. package/.venv/lib/python3.9/site-packages/setuptools/command/easy_install.py +0 -2304
  667. package/.venv/lib/python3.9/site-packages/setuptools/command/egg_info.py +0 -755
  668. package/.venv/lib/python3.9/site-packages/setuptools/command/install.py +0 -132
  669. package/.venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py +0 -62
  670. package/.venv/lib/python3.9/site-packages/setuptools/command/install_lib.py +0 -122
  671. package/.venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py +0 -69
  672. package/.venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml +0 -15
  673. package/.venv/lib/python3.9/site-packages/setuptools/command/py36compat.py +0 -134
  674. package/.venv/lib/python3.9/site-packages/setuptools/command/register.py +0 -18
  675. package/.venv/lib/python3.9/site-packages/setuptools/command/rotate.py +0 -64
  676. package/.venv/lib/python3.9/site-packages/setuptools/command/saveopts.py +0 -22
  677. package/.venv/lib/python3.9/site-packages/setuptools/command/sdist.py +0 -196
  678. package/.venv/lib/python3.9/site-packages/setuptools/command/setopt.py +0 -149
  679. package/.venv/lib/python3.9/site-packages/setuptools/command/test.py +0 -252
  680. package/.venv/lib/python3.9/site-packages/setuptools/command/upload.py +0 -17
  681. package/.venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py +0 -202
  682. package/.venv/lib/python3.9/site-packages/setuptools/config.py +0 -751
  683. package/.venv/lib/python3.9/site-packages/setuptools/dep_util.py +0 -25
  684. package/.venv/lib/python3.9/site-packages/setuptools/depends.py +0 -176
  685. package/.venv/lib/python3.9/site-packages/setuptools/dist.py +0 -1156
  686. package/.venv/lib/python3.9/site-packages/setuptools/errors.py +0 -40
  687. package/.venv/lib/python3.9/site-packages/setuptools/extension.py +0 -55
  688. package/.venv/lib/python3.9/site-packages/setuptools/extern/__init__.py +0 -73
  689. package/.venv/lib/python3.9/site-packages/setuptools/glob.py +0 -167
  690. package/.venv/lib/python3.9/site-packages/setuptools/gui-32.exe +0 -0
  691. package/.venv/lib/python3.9/site-packages/setuptools/gui-64.exe +0 -0
  692. package/.venv/lib/python3.9/site-packages/setuptools/gui-arm64.exe +0 -0
  693. package/.venv/lib/python3.9/site-packages/setuptools/gui.exe +0 -0
  694. package/.venv/lib/python3.9/site-packages/setuptools/installer.py +0 -104
  695. package/.venv/lib/python3.9/site-packages/setuptools/launch.py +0 -36
  696. package/.venv/lib/python3.9/site-packages/setuptools/logging.py +0 -30
  697. package/.venv/lib/python3.9/site-packages/setuptools/monkey.py +0 -177
  698. package/.venv/lib/python3.9/site-packages/setuptools/msvc.py +0 -1805
  699. package/.venv/lib/python3.9/site-packages/setuptools/namespaces.py +0 -107
  700. package/.venv/lib/python3.9/site-packages/setuptools/package_index.py +0 -1127
  701. package/.venv/lib/python3.9/site-packages/setuptools/py34compat.py +0 -13
  702. package/.venv/lib/python3.9/site-packages/setuptools/sandbox.py +0 -530
  703. package/.venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl +0 -6
  704. package/.venv/lib/python3.9/site-packages/setuptools/script.tmpl +0 -3
  705. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/__init__.py +0 -0
  706. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/helpers.py +0 -61
  707. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -218
  708. package/.venv/lib/python3.9/site-packages/setuptools/unicode_utils.py +0 -42
  709. package/.venv/lib/python3.9/site-packages/setuptools/version.py +0 -6
  710. package/.venv/lib/python3.9/site-packages/setuptools/wheel.py +0 -213
  711. package/.venv/lib/python3.9/site-packages/setuptools/windows_support.py +0 -29
  712. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/INSTALLER +0 -1
  713. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/LICENSE +0 -19
  714. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/METADATA +0 -142
  715. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/RECORD +0 -308
  716. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/REQUESTED +0 -0
  717. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/WHEEL +0 -5
  718. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/entry_points.txt +0 -56
  719. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/top_level.txt +0 -3
  720. package/.venv/pyvenv.cfg +0 -3
  721. package/.vscode/launch.json +0 -62
  722. package/.vscode/settings.json +0 -8
@@ -1,1300 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2012-2015 Vinay Sajip.
4
- # Licensed to the Python Software Foundation under a contributor agreement.
5
- # See LICENSE.txt and CONTRIBUTORS.txt.
6
- #
7
-
8
- import gzip
9
- from io import BytesIO
10
- import json
11
- import logging
12
- import os
13
- import posixpath
14
- import re
15
- try:
16
- import threading
17
- except ImportError: # pragma: no cover
18
- import dummy_threading as threading
19
- import zlib
20
-
21
- from . import DistlibException
22
- from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url,
23
- queue, quote, unescape, build_opener,
24
- HTTPRedirectHandler as BaseRedirectHandler, text_type,
25
- Request, HTTPError, URLError)
26
- from .database import Distribution, DistributionPath, make_dist
27
- from .metadata import Metadata, MetadataInvalidError
28
- from .util import (cached_property, ensure_slash, split_filename, get_project_data,
29
- parse_requirement, parse_name_and_version, ServerProxy,
30
- normalize_name)
31
- from .version import get_scheme, UnsupportedVersionError
32
- from .wheel import Wheel, is_compatible
33
-
34
- logger = logging.getLogger(__name__)
35
-
36
- HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)')
37
- CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I)
38
- HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml')
39
- DEFAULT_INDEX = 'https://pypi.org/pypi'
40
-
41
- def get_all_distribution_names(url=None):
42
- """
43
- Return all distribution names known by an index.
44
- :param url: The URL of the index.
45
- :return: A list of all known distribution names.
46
- """
47
- if url is None:
48
- url = DEFAULT_INDEX
49
- client = ServerProxy(url, timeout=3.0)
50
- try:
51
- return client.list_packages()
52
- finally:
53
- client('close')()
54
-
55
- class RedirectHandler(BaseRedirectHandler):
56
- """
57
- A class to work around a bug in some Python 3.2.x releases.
58
- """
59
- # There's a bug in the base version for some 3.2.x
60
- # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header
61
- # returns e.g. /abc, it bails because it says the scheme ''
62
- # is bogus, when actually it should use the request's
63
- # URL for the scheme. See Python issue #13696.
64
- def http_error_302(self, req, fp, code, msg, headers):
65
- # Some servers (incorrectly) return multiple Location headers
66
- # (so probably same goes for URI). Use first header.
67
- newurl = None
68
- for key in ('location', 'uri'):
69
- if key in headers:
70
- newurl = headers[key]
71
- break
72
- if newurl is None: # pragma: no cover
73
- return
74
- urlparts = urlparse(newurl)
75
- if urlparts.scheme == '':
76
- newurl = urljoin(req.get_full_url(), newurl)
77
- if hasattr(headers, 'replace_header'):
78
- headers.replace_header(key, newurl)
79
- else:
80
- headers[key] = newurl
81
- return BaseRedirectHandler.http_error_302(self, req, fp, code, msg,
82
- headers)
83
-
84
- http_error_301 = http_error_303 = http_error_307 = http_error_302
85
-
86
- class Locator(object):
87
- """
88
- A base class for locators - things that locate distributions.
89
- """
90
- source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz')
91
- binary_extensions = ('.egg', '.exe', '.whl')
92
- excluded_extensions = ('.pdf',)
93
-
94
- # A list of tags indicating which wheels you want to match. The default
95
- # value of None matches against the tags compatible with the running
96
- # Python. If you want to match other values, set wheel_tags on a locator
97
- # instance to a list of tuples (pyver, abi, arch) which you want to match.
98
- wheel_tags = None
99
-
100
- downloadable_extensions = source_extensions + ('.whl',)
101
-
102
- def __init__(self, scheme='default'):
103
- """
104
- Initialise an instance.
105
- :param scheme: Because locators look for most recent versions, they
106
- need to know the version scheme to use. This specifies
107
- the current PEP-recommended scheme - use ``'legacy'``
108
- if you need to support existing distributions on PyPI.
109
- """
110
- self._cache = {}
111
- self.scheme = scheme
112
- # Because of bugs in some of the handlers on some of the platforms,
113
- # we use our own opener rather than just using urlopen.
114
- self.opener = build_opener(RedirectHandler())
115
- # If get_project() is called from locate(), the matcher instance
116
- # is set from the requirement passed to locate(). See issue #18 for
117
- # why this can be useful to know.
118
- self.matcher = None
119
- self.errors = queue.Queue()
120
-
121
- def get_errors(self):
122
- """
123
- Return any errors which have occurred.
124
- """
125
- result = []
126
- while not self.errors.empty(): # pragma: no cover
127
- try:
128
- e = self.errors.get(False)
129
- result.append(e)
130
- except self.errors.Empty:
131
- continue
132
- self.errors.task_done()
133
- return result
134
-
135
- def clear_errors(self):
136
- """
137
- Clear any errors which may have been logged.
138
- """
139
- # Just get the errors and throw them away
140
- self.get_errors()
141
-
142
- def clear_cache(self):
143
- self._cache.clear()
144
-
145
- def _get_scheme(self):
146
- return self._scheme
147
-
148
- def _set_scheme(self, value):
149
- self._scheme = value
150
-
151
- scheme = property(_get_scheme, _set_scheme)
152
-
153
- def _get_project(self, name):
154
- """
155
- For a given project, get a dictionary mapping available versions to Distribution
156
- instances.
157
-
158
- This should be implemented in subclasses.
159
-
160
- If called from a locate() request, self.matcher will be set to a
161
- matcher for the requirement to satisfy, otherwise it will be None.
162
- """
163
- raise NotImplementedError('Please implement in the subclass')
164
-
165
- def get_distribution_names(self):
166
- """
167
- Return all the distribution names known to this locator.
168
- """
169
- raise NotImplementedError('Please implement in the subclass')
170
-
171
- def get_project(self, name):
172
- """
173
- For a given project, get a dictionary mapping available versions to Distribution
174
- instances.
175
-
176
- This calls _get_project to do all the work, and just implements a caching layer on top.
177
- """
178
- if self._cache is None: # pragma: no cover
179
- result = self._get_project(name)
180
- elif name in self._cache:
181
- result = self._cache[name]
182
- else:
183
- self.clear_errors()
184
- result = self._get_project(name)
185
- self._cache[name] = result
186
- return result
187
-
188
- def score_url(self, url):
189
- """
190
- Give an url a score which can be used to choose preferred URLs
191
- for a given project release.
192
- """
193
- t = urlparse(url)
194
- basename = posixpath.basename(t.path)
195
- compatible = True
196
- is_wheel = basename.endswith('.whl')
197
- is_downloadable = basename.endswith(self.downloadable_extensions)
198
- if is_wheel:
199
- compatible = is_compatible(Wheel(basename), self.wheel_tags)
200
- return (t.scheme == 'https', 'pypi.org' in t.netloc,
201
- is_downloadable, is_wheel, compatible, basename)
202
-
203
- def prefer_url(self, url1, url2):
204
- """
205
- Choose one of two URLs where both are candidates for distribution
206
- archives for the same version of a distribution (for example,
207
- .tar.gz vs. zip).
208
-
209
- The current implementation favours https:// URLs over http://, archives
210
- from PyPI over those from other locations, wheel compatibility (if a
211
- wheel) and then the archive name.
212
- """
213
- result = url2
214
- if url1:
215
- s1 = self.score_url(url1)
216
- s2 = self.score_url(url2)
217
- if s1 > s2:
218
- result = url1
219
- if result != url2:
220
- logger.debug('Not replacing %r with %r', url1, url2)
221
- else:
222
- logger.debug('Replacing %r with %r', url1, url2)
223
- return result
224
-
225
- def split_filename(self, filename, project_name):
226
- """
227
- Attempt to split a filename in project name, version and Python version.
228
- """
229
- return split_filename(filename, project_name)
230
-
231
- def convert_url_to_download_info(self, url, project_name):
232
- """
233
- See if a URL is a candidate for a download URL for a project (the URL
234
- has typically been scraped from an HTML page).
235
-
236
- If it is, a dictionary is returned with keys "name", "version",
237
- "filename" and "url"; otherwise, None is returned.
238
- """
239
- def same_project(name1, name2):
240
- return normalize_name(name1) == normalize_name(name2)
241
-
242
- result = None
243
- scheme, netloc, path, params, query, frag = urlparse(url)
244
- if frag.lower().startswith('egg='): # pragma: no cover
245
- logger.debug('%s: version hint in fragment: %r',
246
- project_name, frag)
247
- m = HASHER_HASH.match(frag)
248
- if m:
249
- algo, digest = m.groups()
250
- else:
251
- algo, digest = None, None
252
- origpath = path
253
- if path and path[-1] == '/': # pragma: no cover
254
- path = path[:-1]
255
- if path.endswith('.whl'):
256
- try:
257
- wheel = Wheel(path)
258
- if not is_compatible(wheel, self.wheel_tags):
259
- logger.debug('Wheel not compatible: %s', path)
260
- else:
261
- if project_name is None:
262
- include = True
263
- else:
264
- include = same_project(wheel.name, project_name)
265
- if include:
266
- result = {
267
- 'name': wheel.name,
268
- 'version': wheel.version,
269
- 'filename': wheel.filename,
270
- 'url': urlunparse((scheme, netloc, origpath,
271
- params, query, '')),
272
- 'python-version': ', '.join(
273
- ['.'.join(list(v[2:])) for v in wheel.pyver]),
274
- }
275
- except Exception as e: # pragma: no cover
276
- logger.warning('invalid path for wheel: %s', path)
277
- elif not path.endswith(self.downloadable_extensions): # pragma: no cover
278
- logger.debug('Not downloadable: %s', path)
279
- else: # downloadable extension
280
- path = filename = posixpath.basename(path)
281
- for ext in self.downloadable_extensions:
282
- if path.endswith(ext):
283
- path = path[:-len(ext)]
284
- t = self.split_filename(path, project_name)
285
- if not t: # pragma: no cover
286
- logger.debug('No match for project/version: %s', path)
287
- else:
288
- name, version, pyver = t
289
- if not project_name or same_project(project_name, name):
290
- result = {
291
- 'name': name,
292
- 'version': version,
293
- 'filename': filename,
294
- 'url': urlunparse((scheme, netloc, origpath,
295
- params, query, '')),
296
- #'packagetype': 'sdist',
297
- }
298
- if pyver: # pragma: no cover
299
- result['python-version'] = pyver
300
- break
301
- if result and algo:
302
- result['%s_digest' % algo] = digest
303
- return result
304
-
305
- def _get_digest(self, info):
306
- """
307
- Get a digest from a dictionary by looking at a "digests" dictionary
308
- or keys of the form 'algo_digest'.
309
-
310
- Returns a 2-tuple (algo, digest) if found, else None. Currently
311
- looks only for SHA256, then MD5.
312
- """
313
- result = None
314
- if 'digests' in info:
315
- digests = info['digests']
316
- for algo in ('sha256', 'md5'):
317
- if algo in digests:
318
- result = (algo, digests[algo])
319
- break
320
- if not result:
321
- for algo in ('sha256', 'md5'):
322
- key = '%s_digest' % algo
323
- if key in info:
324
- result = (algo, info[key])
325
- break
326
- return result
327
-
328
- def _update_version_data(self, result, info):
329
- """
330
- Update a result dictionary (the final result from _get_project) with a
331
- dictionary for a specific version, which typically holds information
332
- gleaned from a filename or URL for an archive for the distribution.
333
- """
334
- name = info.pop('name')
335
- version = info.pop('version')
336
- if version in result:
337
- dist = result[version]
338
- md = dist.metadata
339
- else:
340
- dist = make_dist(name, version, scheme=self.scheme)
341
- md = dist.metadata
342
- dist.digest = digest = self._get_digest(info)
343
- url = info['url']
344
- result['digests'][url] = digest
345
- if md.source_url != info['url']:
346
- md.source_url = self.prefer_url(md.source_url, url)
347
- result['urls'].setdefault(version, set()).add(url)
348
- dist.locator = self
349
- result[version] = dist
350
-
351
- def locate(self, requirement, prereleases=False):
352
- """
353
- Find the most recent distribution which matches the given
354
- requirement.
355
-
356
- :param requirement: A requirement of the form 'foo (1.0)' or perhaps
357
- 'foo (>= 1.0, < 2.0, != 1.3)'
358
- :param prereleases: If ``True``, allow pre-release versions
359
- to be located. Otherwise, pre-release versions
360
- are not returned.
361
- :return: A :class:`Distribution` instance, or ``None`` if no such
362
- distribution could be located.
363
- """
364
- result = None
365
- r = parse_requirement(requirement)
366
- if r is None: # pragma: no cover
367
- raise DistlibException('Not a valid requirement: %r' % requirement)
368
- scheme = get_scheme(self.scheme)
369
- self.matcher = matcher = scheme.matcher(r.requirement)
370
- logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__)
371
- versions = self.get_project(r.name)
372
- if len(versions) > 2: # urls and digests keys are present
373
- # sometimes, versions are invalid
374
- slist = []
375
- vcls = matcher.version_class
376
- for k in versions:
377
- if k in ('urls', 'digests'):
378
- continue
379
- try:
380
- if not matcher.match(k):
381
- pass # logger.debug('%s did not match %r', matcher, k)
382
- else:
383
- if prereleases or not vcls(k).is_prerelease:
384
- slist.append(k)
385
- # else:
386
- # logger.debug('skipping pre-release '
387
- # 'version %s of %s', k, matcher.name)
388
- except Exception: # pragma: no cover
389
- logger.warning('error matching %s with %r', matcher, k)
390
- pass # slist.append(k)
391
- if len(slist) > 1:
392
- slist = sorted(slist, key=scheme.key)
393
- if slist:
394
- logger.debug('sorted list: %s', slist)
395
- version = slist[-1]
396
- result = versions[version]
397
- if result:
398
- if r.extras:
399
- result.extras = r.extras
400
- result.download_urls = versions.get('urls', {}).get(version, set())
401
- d = {}
402
- sd = versions.get('digests', {})
403
- for url in result.download_urls:
404
- if url in sd: # pragma: no cover
405
- d[url] = sd[url]
406
- result.digests = d
407
- self.matcher = None
408
- return result
409
-
410
-
411
- class PyPIRPCLocator(Locator):
412
- """
413
- This locator uses XML-RPC to locate distributions. It therefore
414
- cannot be used with simple mirrors (that only mirror file content).
415
- """
416
- def __init__(self, url, **kwargs):
417
- """
418
- Initialise an instance.
419
-
420
- :param url: The URL to use for XML-RPC.
421
- :param kwargs: Passed to the superclass constructor.
422
- """
423
- super(PyPIRPCLocator, self).__init__(**kwargs)
424
- self.base_url = url
425
- self.client = ServerProxy(url, timeout=3.0)
426
-
427
- def get_distribution_names(self):
428
- """
429
- Return all the distribution names known to this locator.
430
- """
431
- return set(self.client.list_packages())
432
-
433
- def _get_project(self, name):
434
- result = {'urls': {}, 'digests': {}}
435
- versions = self.client.package_releases(name, True)
436
- for v in versions:
437
- urls = self.client.release_urls(name, v)
438
- data = self.client.release_data(name, v)
439
- metadata = Metadata(scheme=self.scheme)
440
- metadata.name = data['name']
441
- metadata.version = data['version']
442
- metadata.license = data.get('license')
443
- metadata.keywords = data.get('keywords', [])
444
- metadata.summary = data.get('summary')
445
- dist = Distribution(metadata)
446
- if urls:
447
- info = urls[0]
448
- metadata.source_url = info['url']
449
- dist.digest = self._get_digest(info)
450
- dist.locator = self
451
- result[v] = dist
452
- for info in urls:
453
- url = info['url']
454
- digest = self._get_digest(info)
455
- result['urls'].setdefault(v, set()).add(url)
456
- result['digests'][url] = digest
457
- return result
458
-
459
- class PyPIJSONLocator(Locator):
460
- """
461
- This locator uses PyPI's JSON interface. It's very limited in functionality
462
- and probably not worth using.
463
- """
464
- def __init__(self, url, **kwargs):
465
- super(PyPIJSONLocator, self).__init__(**kwargs)
466
- self.base_url = ensure_slash(url)
467
-
468
- def get_distribution_names(self):
469
- """
470
- Return all the distribution names known to this locator.
471
- """
472
- raise NotImplementedError('Not available from this locator')
473
-
474
- def _get_project(self, name):
475
- result = {'urls': {}, 'digests': {}}
476
- url = urljoin(self.base_url, '%s/json' % quote(name))
477
- try:
478
- resp = self.opener.open(url)
479
- data = resp.read().decode() # for now
480
- d = json.loads(data)
481
- md = Metadata(scheme=self.scheme)
482
- data = d['info']
483
- md.name = data['name']
484
- md.version = data['version']
485
- md.license = data.get('license')
486
- md.keywords = data.get('keywords', [])
487
- md.summary = data.get('summary')
488
- dist = Distribution(md)
489
- dist.locator = self
490
- urls = d['urls']
491
- result[md.version] = dist
492
- for info in d['urls']:
493
- url = info['url']
494
- dist.download_urls.add(url)
495
- dist.digests[url] = self._get_digest(info)
496
- result['urls'].setdefault(md.version, set()).add(url)
497
- result['digests'][url] = self._get_digest(info)
498
- # Now get other releases
499
- for version, infos in d['releases'].items():
500
- if version == md.version:
501
- continue # already done
502
- omd = Metadata(scheme=self.scheme)
503
- omd.name = md.name
504
- omd.version = version
505
- odist = Distribution(omd)
506
- odist.locator = self
507
- result[version] = odist
508
- for info in infos:
509
- url = info['url']
510
- odist.download_urls.add(url)
511
- odist.digests[url] = self._get_digest(info)
512
- result['urls'].setdefault(version, set()).add(url)
513
- result['digests'][url] = self._get_digest(info)
514
- # for info in urls:
515
- # md.source_url = info['url']
516
- # dist.digest = self._get_digest(info)
517
- # dist.locator = self
518
- # for info in urls:
519
- # url = info['url']
520
- # result['urls'].setdefault(md.version, set()).add(url)
521
- # result['digests'][url] = self._get_digest(info)
522
- except Exception as e:
523
- self.errors.put(text_type(e))
524
- logger.exception('JSON fetch failed: %s', e)
525
- return result
526
-
527
-
528
- class Page(object):
529
- """
530
- This class represents a scraped HTML page.
531
- """
532
- # The following slightly hairy-looking regex just looks for the contents of
533
- # an anchor link, which has an attribute "href" either immediately preceded
534
- # or immediately followed by a "rel" attribute. The attribute values can be
535
- # declared with double quotes, single quotes or no quotes - which leads to
536
- # the length of the expression.
537
- _href = re.compile("""
538
- (rel\\s*=\\s*(?:"(?P<rel1>[^"]*)"|'(?P<rel2>[^']*)'|(?P<rel3>[^>\\s\n]*))\\s+)?
539
- href\\s*=\\s*(?:"(?P<url1>[^"]*)"|'(?P<url2>[^']*)'|(?P<url3>[^>\\s\n]*))
540
- (\\s+rel\\s*=\\s*(?:"(?P<rel4>[^"]*)"|'(?P<rel5>[^']*)'|(?P<rel6>[^>\\s\n]*)))?
541
- """, re.I | re.S | re.X)
542
- _base = re.compile(r"""<base\s+href\s*=\s*['"]?([^'">]+)""", re.I | re.S)
543
-
544
- def __init__(self, data, url):
545
- """
546
- Initialise an instance with the Unicode page contents and the URL they
547
- came from.
548
- """
549
- self.data = data
550
- self.base_url = self.url = url
551
- m = self._base.search(self.data)
552
- if m:
553
- self.base_url = m.group(1)
554
-
555
- _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I)
556
-
557
- @cached_property
558
- def links(self):
559
- """
560
- Return the URLs of all the links on a page together with information
561
- about their "rel" attribute, for determining which ones to treat as
562
- downloads and which ones to queue for further scraping.
563
- """
564
- def clean(url):
565
- "Tidy up an URL."
566
- scheme, netloc, path, params, query, frag = urlparse(url)
567
- return urlunparse((scheme, netloc, quote(path),
568
- params, query, frag))
569
-
570
- result = set()
571
- for match in self._href.finditer(self.data):
572
- d = match.groupdict('')
573
- rel = (d['rel1'] or d['rel2'] or d['rel3'] or
574
- d['rel4'] or d['rel5'] or d['rel6'])
575
- url = d['url1'] or d['url2'] or d['url3']
576
- url = urljoin(self.base_url, url)
577
- url = unescape(url)
578
- url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url)
579
- result.add((url, rel))
580
- # We sort the result, hoping to bring the most recent versions
581
- # to the front
582
- result = sorted(result, key=lambda t: t[0], reverse=True)
583
- return result
584
-
585
-
586
- class SimpleScrapingLocator(Locator):
587
- """
588
- A locator which scrapes HTML pages to locate downloads for a distribution.
589
- This runs multiple threads to do the I/O; performance is at least as good
590
- as pip's PackageFinder, which works in an analogous fashion.
591
- """
592
-
593
- # These are used to deal with various Content-Encoding schemes.
594
- decoders = {
595
- 'deflate': zlib.decompress,
596
- 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(),
597
- 'none': lambda b: b,
598
- }
599
-
600
- def __init__(self, url, timeout=None, num_workers=10, **kwargs):
601
- """
602
- Initialise an instance.
603
- :param url: The root URL to use for scraping.
604
- :param timeout: The timeout, in seconds, to be applied to requests.
605
- This defaults to ``None`` (no timeout specified).
606
- :param num_workers: The number of worker threads you want to do I/O,
607
- This defaults to 10.
608
- :param kwargs: Passed to the superclass.
609
- """
610
- super(SimpleScrapingLocator, self).__init__(**kwargs)
611
- self.base_url = ensure_slash(url)
612
- self.timeout = timeout
613
- self._page_cache = {}
614
- self._seen = set()
615
- self._to_fetch = queue.Queue()
616
- self._bad_hosts = set()
617
- self.skip_externals = False
618
- self.num_workers = num_workers
619
- self._lock = threading.RLock()
620
- # See issue #45: we need to be resilient when the locator is used
621
- # in a thread, e.g. with concurrent.futures. We can't use self._lock
622
- # as it is for coordinating our internal threads - the ones created
623
- # in _prepare_threads.
624
- self._gplock = threading.RLock()
625
- self.platform_check = False # See issue #112
626
-
627
- def _prepare_threads(self):
628
- """
629
- Threads are created only when get_project is called, and terminate
630
- before it returns. They are there primarily to parallelise I/O (i.e.
631
- fetching web pages).
632
- """
633
- self._threads = []
634
- for i in range(self.num_workers):
635
- t = threading.Thread(target=self._fetch)
636
- t.setDaemon(True)
637
- t.start()
638
- self._threads.append(t)
639
-
640
- def _wait_threads(self):
641
- """
642
- Tell all the threads to terminate (by sending a sentinel value) and
643
- wait for them to do so.
644
- """
645
- # Note that you need two loops, since you can't say which
646
- # thread will get each sentinel
647
- for t in self._threads:
648
- self._to_fetch.put(None) # sentinel
649
- for t in self._threads:
650
- t.join()
651
- self._threads = []
652
-
653
- def _get_project(self, name):
654
- result = {'urls': {}, 'digests': {}}
655
- with self._gplock:
656
- self.result = result
657
- self.project_name = name
658
- url = urljoin(self.base_url, '%s/' % quote(name))
659
- self._seen.clear()
660
- self._page_cache.clear()
661
- self._prepare_threads()
662
- try:
663
- logger.debug('Queueing %s', url)
664
- self._to_fetch.put(url)
665
- self._to_fetch.join()
666
- finally:
667
- self._wait_threads()
668
- del self.result
669
- return result
670
-
671
- platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|'
672
- r'win(32|_amd64)|macosx_?\d+)\b', re.I)
673
-
674
- def _is_platform_dependent(self, url):
675
- """
676
- Does an URL refer to a platform-specific download?
677
- """
678
- return self.platform_dependent.search(url)
679
-
680
- def _process_download(self, url):
681
- """
682
- See if an URL is a suitable download for a project.
683
-
684
- If it is, register information in the result dictionary (for
685
- _get_project) about the specific version it's for.
686
-
687
- Note that the return value isn't actually used other than as a boolean
688
- value.
689
- """
690
- if self.platform_check and self._is_platform_dependent(url):
691
- info = None
692
- else:
693
- info = self.convert_url_to_download_info(url, self.project_name)
694
- logger.debug('process_download: %s -> %s', url, info)
695
- if info:
696
- with self._lock: # needed because self.result is shared
697
- self._update_version_data(self.result, info)
698
- return info
699
-
700
- def _should_queue(self, link, referrer, rel):
701
- """
702
- Determine whether a link URL from a referring page and with a
703
- particular "rel" attribute should be queued for scraping.
704
- """
705
- scheme, netloc, path, _, _, _ = urlparse(link)
706
- if path.endswith(self.source_extensions + self.binary_extensions +
707
- self.excluded_extensions):
708
- result = False
709
- elif self.skip_externals and not link.startswith(self.base_url):
710
- result = False
711
- elif not referrer.startswith(self.base_url):
712
- result = False
713
- elif rel not in ('homepage', 'download'):
714
- result = False
715
- elif scheme not in ('http', 'https', 'ftp'):
716
- result = False
717
- elif self._is_platform_dependent(link):
718
- result = False
719
- else:
720
- host = netloc.split(':', 1)[0]
721
- if host.lower() == 'localhost':
722
- result = False
723
- else:
724
- result = True
725
- logger.debug('should_queue: %s (%s) from %s -> %s', link, rel,
726
- referrer, result)
727
- return result
728
-
729
- def _fetch(self):
730
- """
731
- Get a URL to fetch from the work queue, get the HTML page, examine its
732
- links for download candidates and candidates for further scraping.
733
-
734
- This is a handy method to run in a thread.
735
- """
736
- while True:
737
- url = self._to_fetch.get()
738
- try:
739
- if url:
740
- page = self.get_page(url)
741
- if page is None: # e.g. after an error
742
- continue
743
- for link, rel in page.links:
744
- if link not in self._seen:
745
- try:
746
- self._seen.add(link)
747
- if (not self._process_download(link) and
748
- self._should_queue(link, url, rel)):
749
- logger.debug('Queueing %s from %s', link, url)
750
- self._to_fetch.put(link)
751
- except MetadataInvalidError: # e.g. invalid versions
752
- pass
753
- except Exception as e: # pragma: no cover
754
- self.errors.put(text_type(e))
755
- finally:
756
- # always do this, to avoid hangs :-)
757
- self._to_fetch.task_done()
758
- if not url:
759
- #logger.debug('Sentinel seen, quitting.')
760
- break
761
-
762
- def get_page(self, url):
763
- """
764
- Get the HTML for an URL, possibly from an in-memory cache.
765
-
766
- XXX TODO Note: this cache is never actually cleared. It's assumed that
767
- the data won't get stale over the lifetime of a locator instance (not
768
- necessarily true for the default_locator).
769
- """
770
- # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api
771
- scheme, netloc, path, _, _, _ = urlparse(url)
772
- if scheme == 'file' and os.path.isdir(url2pathname(path)):
773
- url = urljoin(ensure_slash(url), 'index.html')
774
-
775
- if url in self._page_cache:
776
- result = self._page_cache[url]
777
- logger.debug('Returning %s from cache: %s', url, result)
778
- else:
779
- host = netloc.split(':', 1)[0]
780
- result = None
781
- if host in self._bad_hosts:
782
- logger.debug('Skipping %s due to bad host %s', url, host)
783
- else:
784
- req = Request(url, headers={'Accept-encoding': 'identity'})
785
- try:
786
- logger.debug('Fetching %s', url)
787
- resp = self.opener.open(req, timeout=self.timeout)
788
- logger.debug('Fetched %s', url)
789
- headers = resp.info()
790
- content_type = headers.get('Content-Type', '')
791
- if HTML_CONTENT_TYPE.match(content_type):
792
- final_url = resp.geturl()
793
- data = resp.read()
794
- encoding = headers.get('Content-Encoding')
795
- if encoding:
796
- decoder = self.decoders[encoding] # fail if not found
797
- data = decoder(data)
798
- encoding = 'utf-8'
799
- m = CHARSET.search(content_type)
800
- if m:
801
- encoding = m.group(1)
802
- try:
803
- data = data.decode(encoding)
804
- except UnicodeError: # pragma: no cover
805
- data = data.decode('latin-1') # fallback
806
- result = Page(data, final_url)
807
- self._page_cache[final_url] = result
808
- except HTTPError as e:
809
- if e.code != 404:
810
- logger.exception('Fetch failed: %s: %s', url, e)
811
- except URLError as e: # pragma: no cover
812
- logger.exception('Fetch failed: %s: %s', url, e)
813
- with self._lock:
814
- self._bad_hosts.add(host)
815
- except Exception as e: # pragma: no cover
816
- logger.exception('Fetch failed: %s: %s', url, e)
817
- finally:
818
- self._page_cache[url] = result # even if None (failure)
819
- return result
820
-
821
- _distname_re = re.compile('<a href=[^>]*>([^<]+)<')
822
-
823
- def get_distribution_names(self):
824
- """
825
- Return all the distribution names known to this locator.
826
- """
827
- result = set()
828
- page = self.get_page(self.base_url)
829
- if not page:
830
- raise DistlibException('Unable to get %s' % self.base_url)
831
- for match in self._distname_re.finditer(page.data):
832
- result.add(match.group(1))
833
- return result
834
-
835
- class DirectoryLocator(Locator):
836
- """
837
- This class locates distributions in a directory tree.
838
- """
839
-
840
- def __init__(self, path, **kwargs):
841
- """
842
- Initialise an instance.
843
- :param path: The root of the directory tree to search.
844
- :param kwargs: Passed to the superclass constructor,
845
- except for:
846
- * recursive - if True (the default), subdirectories are
847
- recursed into. If False, only the top-level directory
848
- is searched,
849
- """
850
- self.recursive = kwargs.pop('recursive', True)
851
- super(DirectoryLocator, self).__init__(**kwargs)
852
- path = os.path.abspath(path)
853
- if not os.path.isdir(path): # pragma: no cover
854
- raise DistlibException('Not a directory: %r' % path)
855
- self.base_dir = path
856
-
857
- def should_include(self, filename, parent):
858
- """
859
- Should a filename be considered as a candidate for a distribution
860
- archive? As well as the filename, the directory which contains it
861
- is provided, though not used by the current implementation.
862
- """
863
- return filename.endswith(self.downloadable_extensions)
864
-
865
- def _get_project(self, name):
866
- result = {'urls': {}, 'digests': {}}
867
- for root, dirs, files in os.walk(self.base_dir):
868
- for fn in files:
869
- if self.should_include(fn, root):
870
- fn = os.path.join(root, fn)
871
- url = urlunparse(('file', '',
872
- pathname2url(os.path.abspath(fn)),
873
- '', '', ''))
874
- info = self.convert_url_to_download_info(url, name)
875
- if info:
876
- self._update_version_data(result, info)
877
- if not self.recursive:
878
- break
879
- return result
880
-
881
- def get_distribution_names(self):
882
- """
883
- Return all the distribution names known to this locator.
884
- """
885
- result = set()
886
- for root, dirs, files in os.walk(self.base_dir):
887
- for fn in files:
888
- if self.should_include(fn, root):
889
- fn = os.path.join(root, fn)
890
- url = urlunparse(('file', '',
891
- pathname2url(os.path.abspath(fn)),
892
- '', '', ''))
893
- info = self.convert_url_to_download_info(url, None)
894
- if info:
895
- result.add(info['name'])
896
- if not self.recursive:
897
- break
898
- return result
899
-
900
- class JSONLocator(Locator):
901
- """
902
- This locator uses special extended metadata (not available on PyPI) and is
903
- the basis of performant dependency resolution in distlib. Other locators
904
- require archive downloads before dependencies can be determined! As you
905
- might imagine, that can be slow.
906
- """
907
- def get_distribution_names(self):
908
- """
909
- Return all the distribution names known to this locator.
910
- """
911
- raise NotImplementedError('Not available from this locator')
912
-
913
- def _get_project(self, name):
914
- result = {'urls': {}, 'digests': {}}
915
- data = get_project_data(name)
916
- if data:
917
- for info in data.get('files', []):
918
- if info['ptype'] != 'sdist' or info['pyversion'] != 'source':
919
- continue
920
- # We don't store summary in project metadata as it makes
921
- # the data bigger for no benefit during dependency
922
- # resolution
923
- dist = make_dist(data['name'], info['version'],
924
- summary=data.get('summary',
925
- 'Placeholder for summary'),
926
- scheme=self.scheme)
927
- md = dist.metadata
928
- md.source_url = info['url']
929
- # TODO SHA256 digest
930
- if 'digest' in info and info['digest']:
931
- dist.digest = ('md5', info['digest'])
932
- md.dependencies = info.get('requirements', {})
933
- dist.exports = info.get('exports', {})
934
- result[dist.version] = dist
935
- result['urls'].setdefault(dist.version, set()).add(info['url'])
936
- return result
937
-
938
- class DistPathLocator(Locator):
939
- """
940
- This locator finds installed distributions in a path. It can be useful for
941
- adding to an :class:`AggregatingLocator`.
942
- """
943
- def __init__(self, distpath, **kwargs):
944
- """
945
- Initialise an instance.
946
-
947
- :param distpath: A :class:`DistributionPath` instance to search.
948
- """
949
- super(DistPathLocator, self).__init__(**kwargs)
950
- assert isinstance(distpath, DistributionPath)
951
- self.distpath = distpath
952
-
953
- def _get_project(self, name):
954
- dist = self.distpath.get_distribution(name)
955
- if dist is None:
956
- result = {'urls': {}, 'digests': {}}
957
- else:
958
- result = {
959
- dist.version: dist,
960
- 'urls': {dist.version: set([dist.source_url])},
961
- 'digests': {dist.version: set([None])}
962
- }
963
- return result
964
-
965
-
966
- class AggregatingLocator(Locator):
967
- """
968
- This class allows you to chain and/or merge a list of locators.
969
- """
970
- def __init__(self, *locators, **kwargs):
971
- """
972
- Initialise an instance.
973
-
974
- :param locators: The list of locators to search.
975
- :param kwargs: Passed to the superclass constructor,
976
- except for:
977
- * merge - if False (the default), the first successful
978
- search from any of the locators is returned. If True,
979
- the results from all locators are merged (this can be
980
- slow).
981
- """
982
- self.merge = kwargs.pop('merge', False)
983
- self.locators = locators
984
- super(AggregatingLocator, self).__init__(**kwargs)
985
-
986
- def clear_cache(self):
987
- super(AggregatingLocator, self).clear_cache()
988
- for locator in self.locators:
989
- locator.clear_cache()
990
-
991
- def _set_scheme(self, value):
992
- self._scheme = value
993
- for locator in self.locators:
994
- locator.scheme = value
995
-
996
- scheme = property(Locator.scheme.fget, _set_scheme)
997
-
998
- def _get_project(self, name):
999
- result = {}
1000
- for locator in self.locators:
1001
- d = locator.get_project(name)
1002
- if d:
1003
- if self.merge:
1004
- files = result.get('urls', {})
1005
- digests = result.get('digests', {})
1006
- # next line could overwrite result['urls'], result['digests']
1007
- result.update(d)
1008
- df = result.get('urls')
1009
- if files and df:
1010
- for k, v in files.items():
1011
- if k in df:
1012
- df[k] |= v
1013
- else:
1014
- df[k] = v
1015
- dd = result.get('digests')
1016
- if digests and dd:
1017
- dd.update(digests)
1018
- else:
1019
- # See issue #18. If any dists are found and we're looking
1020
- # for specific constraints, we only return something if
1021
- # a match is found. For example, if a DirectoryLocator
1022
- # returns just foo (1.0) while we're looking for
1023
- # foo (>= 2.0), we'll pretend there was nothing there so
1024
- # that subsequent locators can be queried. Otherwise we
1025
- # would just return foo (1.0) which would then lead to a
1026
- # failure to find foo (>= 2.0), because other locators
1027
- # weren't searched. Note that this only matters when
1028
- # merge=False.
1029
- if self.matcher is None:
1030
- found = True
1031
- else:
1032
- found = False
1033
- for k in d:
1034
- if self.matcher.match(k):
1035
- found = True
1036
- break
1037
- if found:
1038
- result = d
1039
- break
1040
- return result
1041
-
1042
- def get_distribution_names(self):
1043
- """
1044
- Return all the distribution names known to this locator.
1045
- """
1046
- result = set()
1047
- for locator in self.locators:
1048
- try:
1049
- result |= locator.get_distribution_names()
1050
- except NotImplementedError:
1051
- pass
1052
- return result
1053
-
1054
-
1055
- # We use a legacy scheme simply because most of the dists on PyPI use legacy
1056
- # versions which don't conform to PEP 426 / PEP 440.
1057
- default_locator = AggregatingLocator(
1058
- JSONLocator(),
1059
- SimpleScrapingLocator('https://pypi.org/simple/',
1060
- timeout=3.0),
1061
- scheme='legacy')
1062
-
1063
- locate = default_locator.locate
1064
-
1065
-
1066
- class DependencyFinder(object):
1067
- """
1068
- Locate dependencies for distributions.
1069
- """
1070
-
1071
- def __init__(self, locator=None):
1072
- """
1073
- Initialise an instance, using the specified locator
1074
- to locate distributions.
1075
- """
1076
- self.locator = locator or default_locator
1077
- self.scheme = get_scheme(self.locator.scheme)
1078
-
1079
- def add_distribution(self, dist):
1080
- """
1081
- Add a distribution to the finder. This will update internal information
1082
- about who provides what.
1083
- :param dist: The distribution to add.
1084
- """
1085
- logger.debug('adding distribution %s', dist)
1086
- name = dist.key
1087
- self.dists_by_name[name] = dist
1088
- self.dists[(name, dist.version)] = dist
1089
- for p in dist.provides:
1090
- name, version = parse_name_and_version(p)
1091
- logger.debug('Add to provided: %s, %s, %s', name, version, dist)
1092
- self.provided.setdefault(name, set()).add((version, dist))
1093
-
1094
- def remove_distribution(self, dist):
1095
- """
1096
- Remove a distribution from the finder. This will update internal
1097
- information about who provides what.
1098
- :param dist: The distribution to remove.
1099
- """
1100
- logger.debug('removing distribution %s', dist)
1101
- name = dist.key
1102
- del self.dists_by_name[name]
1103
- del self.dists[(name, dist.version)]
1104
- for p in dist.provides:
1105
- name, version = parse_name_and_version(p)
1106
- logger.debug('Remove from provided: %s, %s, %s', name, version, dist)
1107
- s = self.provided[name]
1108
- s.remove((version, dist))
1109
- if not s:
1110
- del self.provided[name]
1111
-
1112
- def get_matcher(self, reqt):
1113
- """
1114
- Get a version matcher for a requirement.
1115
- :param reqt: The requirement
1116
- :type reqt: str
1117
- :return: A version matcher (an instance of
1118
- :class:`distlib.version.Matcher`).
1119
- """
1120
- try:
1121
- matcher = self.scheme.matcher(reqt)
1122
- except UnsupportedVersionError: # pragma: no cover
1123
- # XXX compat-mode if cannot read the version
1124
- name = reqt.split()[0]
1125
- matcher = self.scheme.matcher(name)
1126
- return matcher
1127
-
1128
- def find_providers(self, reqt):
1129
- """
1130
- Find the distributions which can fulfill a requirement.
1131
-
1132
- :param reqt: The requirement.
1133
- :type reqt: str
1134
- :return: A set of distribution which can fulfill the requirement.
1135
- """
1136
- matcher = self.get_matcher(reqt)
1137
- name = matcher.key # case-insensitive
1138
- result = set()
1139
- provided = self.provided
1140
- if name in provided:
1141
- for version, provider in provided[name]:
1142
- try:
1143
- match = matcher.match(version)
1144
- except UnsupportedVersionError:
1145
- match = False
1146
-
1147
- if match:
1148
- result.add(provider)
1149
- break
1150
- return result
1151
-
1152
- def try_to_replace(self, provider, other, problems):
1153
- """
1154
- Attempt to replace one provider with another. This is typically used
1155
- when resolving dependencies from multiple sources, e.g. A requires
1156
- (B >= 1.0) while C requires (B >= 1.1).
1157
-
1158
- For successful replacement, ``provider`` must meet all the requirements
1159
- which ``other`` fulfills.
1160
-
1161
- :param provider: The provider we are trying to replace with.
1162
- :param other: The provider we're trying to replace.
1163
- :param problems: If False is returned, this will contain what
1164
- problems prevented replacement. This is currently
1165
- a tuple of the literal string 'cantreplace',
1166
- ``provider``, ``other`` and the set of requirements
1167
- that ``provider`` couldn't fulfill.
1168
- :return: True if we can replace ``other`` with ``provider``, else
1169
- False.
1170
- """
1171
- rlist = self.reqts[other]
1172
- unmatched = set()
1173
- for s in rlist:
1174
- matcher = self.get_matcher(s)
1175
- if not matcher.match(provider.version):
1176
- unmatched.add(s)
1177
- if unmatched:
1178
- # can't replace other with provider
1179
- problems.add(('cantreplace', provider, other,
1180
- frozenset(unmatched)))
1181
- result = False
1182
- else:
1183
- # can replace other with provider
1184
- self.remove_distribution(other)
1185
- del self.reqts[other]
1186
- for s in rlist:
1187
- self.reqts.setdefault(provider, set()).add(s)
1188
- self.add_distribution(provider)
1189
- result = True
1190
- return result
1191
-
1192
- def find(self, requirement, meta_extras=None, prereleases=False):
1193
- """
1194
- Find a distribution and all distributions it depends on.
1195
-
1196
- :param requirement: The requirement specifying the distribution to
1197
- find, or a Distribution instance.
1198
- :param meta_extras: A list of meta extras such as :test:, :build: and
1199
- so on.
1200
- :param prereleases: If ``True``, allow pre-release versions to be
1201
- returned - otherwise, don't return prereleases
1202
- unless they're all that's available.
1203
-
1204
- Return a set of :class:`Distribution` instances and a set of
1205
- problems.
1206
-
1207
- The distributions returned should be such that they have the
1208
- :attr:`required` attribute set to ``True`` if they were
1209
- from the ``requirement`` passed to ``find()``, and they have the
1210
- :attr:`build_time_dependency` attribute set to ``True`` unless they
1211
- are post-installation dependencies of the ``requirement``.
1212
-
1213
- The problems should be a tuple consisting of the string
1214
- ``'unsatisfied'`` and the requirement which couldn't be satisfied
1215
- by any distribution known to the locator.
1216
- """
1217
-
1218
- self.provided = {}
1219
- self.dists = {}
1220
- self.dists_by_name = {}
1221
- self.reqts = {}
1222
-
1223
- meta_extras = set(meta_extras or [])
1224
- if ':*:' in meta_extras:
1225
- meta_extras.remove(':*:')
1226
- # :meta: and :run: are implicitly included
1227
- meta_extras |= set([':test:', ':build:', ':dev:'])
1228
-
1229
- if isinstance(requirement, Distribution):
1230
- dist = odist = requirement
1231
- logger.debug('passed %s as requirement', odist)
1232
- else:
1233
- dist = odist = self.locator.locate(requirement,
1234
- prereleases=prereleases)
1235
- if dist is None:
1236
- raise DistlibException('Unable to locate %r' % requirement)
1237
- logger.debug('located %s', odist)
1238
- dist.requested = True
1239
- problems = set()
1240
- todo = set([dist])
1241
- install_dists = set([odist])
1242
- while todo:
1243
- dist = todo.pop()
1244
- name = dist.key # case-insensitive
1245
- if name not in self.dists_by_name:
1246
- self.add_distribution(dist)
1247
- else:
1248
- #import pdb; pdb.set_trace()
1249
- other = self.dists_by_name[name]
1250
- if other != dist:
1251
- self.try_to_replace(dist, other, problems)
1252
-
1253
- ireqts = dist.run_requires | dist.meta_requires
1254
- sreqts = dist.build_requires
1255
- ereqts = set()
1256
- if meta_extras and dist in install_dists:
1257
- for key in ('test', 'build', 'dev'):
1258
- e = ':%s:' % key
1259
- if e in meta_extras:
1260
- ereqts |= getattr(dist, '%s_requires' % key)
1261
- all_reqts = ireqts | sreqts | ereqts
1262
- for r in all_reqts:
1263
- providers = self.find_providers(r)
1264
- if not providers:
1265
- logger.debug('No providers found for %r', r)
1266
- provider = self.locator.locate(r, prereleases=prereleases)
1267
- # If no provider is found and we didn't consider
1268
- # prereleases, consider them now.
1269
- if provider is None and not prereleases:
1270
- provider = self.locator.locate(r, prereleases=True)
1271
- if provider is None:
1272
- logger.debug('Cannot satisfy %r', r)
1273
- problems.add(('unsatisfied', r))
1274
- else:
1275
- n, v = provider.key, provider.version
1276
- if (n, v) not in self.dists:
1277
- todo.add(provider)
1278
- providers.add(provider)
1279
- if r in ireqts and dist in install_dists:
1280
- install_dists.add(provider)
1281
- logger.debug('Adding %s to install_dists',
1282
- provider.name_and_version)
1283
- for p in providers:
1284
- name = p.key
1285
- if name not in self.dists_by_name:
1286
- self.reqts.setdefault(p, set()).add(r)
1287
- else:
1288
- other = self.dists_by_name[name]
1289
- if other != p:
1290
- # see if other can be replaced by p
1291
- self.try_to_replace(p, other, problems)
1292
-
1293
- dists = set(self.dists.values())
1294
- for dist in dists:
1295
- dist.build_time_dependency = dist not in install_dists
1296
- if dist.build_time_dependency:
1297
- logger.debug('%s is a build-time dependency only.',
1298
- dist.name_and_version)
1299
- logger.debug('find done for %s', odist)
1300
- return dists, problems