quarchpy 2.1.13.dev2__py2.py3-none-any.whl → 2.1.14__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. quarchpy/.idea/.name +1 -1
  2. quarchpy/.idea/modules.xml +1 -0
  3. quarchpy/.idea/quarchpy.iml +4 -1
  4. quarchpy/.idea/workspace.xml +208 -11
  5. quarchpy/__pycache__/__init__.cpython-311.pyc +0 -0
  6. quarchpy/__pycache__/_version.cpython-311.pyc +0 -0
  7. quarchpy/__pycache__/connection.cpython-311.pyc +0 -0
  8. quarchpy/__pycache__/run.cpython-311.pyc +0 -0
  9. quarchpy/_version.py +1 -1
  10. quarchpy/config_files/__pycache__/__init__.cpython-311.pyc +0 -0
  11. quarchpy/config_files/__pycache__/quarch_config_parser.cpython-311.pyc +0 -0
  12. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-311.pyc +0 -0
  13. quarchpy/connection_specific/__pycache__/__init__.cpython-311.pyc +0 -0
  14. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-311.pyc +0 -0
  15. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
  16. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
  17. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-311.pyc +0 -0
  18. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-311.pyc +0 -0
  19. quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-311.pyc +0 -0
  20. quarchpy/connection_specific/__pycache__/connection_USB.cpython-311.pyc +0 -0
  21. quarchpy/connection_specific/__pycache__/connection_mDNS.cpython-311.pyc +0 -0
  22. quarchpy/connection_specific/connection_QIS.py +237 -320
  23. quarchpy/connection_specific/connection_ReST.py +26 -16
  24. quarchpy/connection_specific/connection_TCP.py +1 -1
  25. quarchpy/connection_specific/connection_mDNS.py +46 -0
  26. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-311.pyc +0 -0
  27. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-311.pyc +0 -0
  28. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-311.pyc +0 -0
  29. quarchpy/connection_specific/serial/__pycache__/win32.cpython-311.pyc +0 -0
  30. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  31. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-311.pyc +0 -0
  32. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-311.pyc +0 -0
  33. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-311.pyc +0 -0
  34. quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
  35. quarchpy/debug/__pycache__/__init__.cpython-311.pyc +0 -0
  36. quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
  37. quarchpy/debug/__pycache__/simple_terminal.cpython-311.pyc +0 -0
  38. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-311.pyc +0 -0
  39. quarchpy/debug/__pycache__/versionCompare.cpython-311.pyc +0 -0
  40. quarchpy/device/__pycache__/__init__.cpython-311.pyc +0 -0
  41. quarchpy/device/__pycache__/device.cpython-311.pyc +0 -0
  42. quarchpy/device/__pycache__/quarchArray.cpython-311.pyc +0 -0
  43. quarchpy/device/__pycache__/quarchPPM.cpython-311.pyc +0 -0
  44. quarchpy/device/__pycache__/quarchQPS.cpython-311.pyc +0 -0
  45. quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
  46. quarchpy/device/quarchPPM.py +2 -2
  47. quarchpy/device/quarchQPS.py +95 -86
  48. quarchpy/device/scanDevices.py +13 -3
  49. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-311.pyc +0 -0
  50. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-311.pyc +0 -0
  51. quarchpy/disk_test/__pycache__/__init__.cpython-311.pyc +0 -0
  52. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-311.pyc +0 -0
  53. quarchpy/docs/CHANGES.rst +11 -1
  54. quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
  55. quarchpy/docs/_build/doctrees/environment.pickle +0 -0
  56. quarchpy/docs/_build/doctrees/index.doctree +0 -0
  57. quarchpy/docs/_build/doctrees/readme.doctree +0 -0
  58. quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
  59. quarchpy/docs/_build/doctrees/source/licenses.doctree +0 -0
  60. quarchpy/docs/_build/doctrees/source/modules.doctree +0 -0
  61. quarchpy/docs/_build/doctrees/source/quarchpy.calibration.doctree +0 -0
  62. quarchpy/docs/_build/doctrees/source/quarchpy.config_files.doctree +0 -0
  63. quarchpy/docs/_build/doctrees/source/quarchpy.connection_specific.doctree +0 -0
  64. quarchpy/docs/_build/doctrees/source/quarchpy.debug.doctree +0 -0
  65. quarchpy/docs/_build/doctrees/source/quarchpy.device.doctree +0 -0
  66. quarchpy/docs/_build/doctrees/source/quarchpy.disk_test.doctree +0 -0
  67. quarchpy/docs/_build/doctrees/source/quarchpy.doctree +0 -0
  68. quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
  69. quarchpy/docs/_build/doctrees/source/quarchpy.iometer.doctree +0 -0
  70. quarchpy/docs/_build/doctrees/source/quarchpy.qis.doctree +0 -0
  71. quarchpy/docs/_build/doctrees/source/quarchpy.qps.doctree +0 -0
  72. quarchpy/docs/_build/doctrees/source/quarchpy.user_interface.doctree +0 -0
  73. quarchpy/docs/_build/doctrees/source/quarchpy.utilities.doctree +0 -0
  74. quarchpy/docs/_build/doctrees/source/readme.doctree +0 -0
  75. quarchpy/docs/_build/html/.buildinfo +1 -1
  76. quarchpy/docs/_build/html/CHANGES.html +198 -156
  77. quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +30 -0
  78. quarchpy/docs/_build/html/_static/alabaster.css +3 -1
  79. quarchpy/docs/_build/html/_static/basic.css +47 -27
  80. quarchpy/docs/_build/html/_static/doctools.js +107 -274
  81. quarchpy/docs/_build/html/_static/documentation_options.js +5 -4
  82. quarchpy/docs/_build/html/_static/language_data.js +2 -100
  83. quarchpy/docs/_build/html/_static/pygments.css +1 -0
  84. quarchpy/docs/_build/html/_static/searchtools.js +440 -395
  85. quarchpy/docs/_build/html/_static/sphinx_highlight.js +154 -0
  86. quarchpy/docs/_build/html/genindex.html +263 -87
  87. quarchpy/docs/_build/html/index.html +68 -63
  88. quarchpy/docs/_build/html/objects.inv +0 -0
  89. quarchpy/docs/_build/html/py-modindex.html +9 -11
  90. quarchpy/docs/_build/html/readme.html +26 -27
  91. quarchpy/docs/_build/html/search.html +8 -10
  92. quarchpy/docs/_build/html/searchindex.js +1 -1
  93. quarchpy/docs/_build/html/source/changelog.html +249 -201
  94. quarchpy/docs/_build/html/source/licenses.html +23 -24
  95. quarchpy/docs/_build/html/source/modules.html +24 -17
  96. quarchpy/docs/_build/html/source/quarchpy.calibration.html +44 -45
  97. quarchpy/docs/_build/html/source/quarchpy.config_files.html +25 -26
  98. quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +239 -133
  99. quarchpy/docs/_build/html/source/quarchpy.debug.html +57 -54
  100. quarchpy/docs/_build/html/source/quarchpy.device.html +245 -211
  101. quarchpy/docs/_build/html/source/quarchpy.disk_test.html +75 -76
  102. quarchpy/docs/_build/html/source/quarchpy.fio.html +33 -34
  103. quarchpy/docs/_build/html/source/quarchpy.html +518 -61
  104. quarchpy/docs/_build/html/source/quarchpy.iometer.html +130 -44
  105. quarchpy/docs/_build/html/source/quarchpy.qis.html +420 -44
  106. quarchpy/docs/_build/html/source/quarchpy.qps.html +44 -43
  107. quarchpy/docs/_build/html/source/quarchpy.user_interface.html +70 -120
  108. quarchpy/docs/_build/html/source/quarchpy.utilities.html +39 -40
  109. quarchpy/docs/_build/html/source/readme.html +26 -27
  110. quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
  111. quarchpy/fio/__pycache__/__init__.cpython-311.pyc +0 -0
  112. quarchpy/fio/__pycache__/fioDiskFinder.cpython-311.pyc +0 -0
  113. quarchpy/iometer/__pycache__/__init__.cpython-311.pyc +0 -0
  114. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-311.pyc +0 -0
  115. quarchpy/iometer/__pycache__/iometerFuncs.cpython-311.pyc +0 -0
  116. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-311.pyc +0 -0
  117. quarchpy/qis/__pycache__/__init__.cpython-311.pyc +0 -0
  118. quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
  119. quarchpy/qis/qisFuncs.py +25 -42
  120. quarchpy/qps/__pycache__/__init__.cpython-311.pyc +0 -0
  121. quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
  122. quarchpy/qps/qpsFuncs.py +18 -19
  123. quarchpy/run.py +1 -1
  124. quarchpy/user_interface/__pycache__/__init__.cpython-311.pyc +0 -0
  125. quarchpy/user_interface/__pycache__/user_interface.cpython-311.pyc +0 -0
  126. quarchpy/utilities/TestCenter.py +1 -1
  127. quarchpy/utilities/Version.py +50 -0
  128. quarchpy/utilities/__pycache__/TestCenter.cpython-311.pyc +0 -0
  129. quarchpy/utilities/__pycache__/TimeValue.cpython-311.pyc +0 -0
  130. quarchpy/utilities/__pycache__/Version.cpython-311.pyc +0 -0
  131. quarchpy/utilities/__pycache__/__init__.cpython-311.pyc +0 -0
  132. quarchpy/venv/.gitignore +2 -0
  133. quarchpy/venv/Include/Python-ast.h +535 -0
  134. quarchpy/venv/Include/Python.h +181 -0
  135. quarchpy/venv/Include/abstract.h +1396 -0
  136. quarchpy/venv/Include/asdl.h +45 -0
  137. quarchpy/venv/Include/ast.h +13 -0
  138. quarchpy/venv/Include/bitset.h +32 -0
  139. quarchpy/venv/Include/boolobject.h +36 -0
  140. quarchpy/venv/Include/bufferobject.h +33 -0
  141. quarchpy/venv/Include/bytearrayobject.h +57 -0
  142. quarchpy/venv/Include/bytes_methods.h +75 -0
  143. quarchpy/venv/Include/bytesobject.h +27 -0
  144. quarchpy/venv/Include/cStringIO.h +73 -0
  145. quarchpy/venv/Include/cellobject.h +28 -0
  146. quarchpy/venv/Include/ceval.h +154 -0
  147. quarchpy/venv/Include/classobject.h +83 -0
  148. quarchpy/venv/Include/cobject.h +89 -0
  149. quarchpy/venv/Include/code.h +116 -0
  150. quarchpy/venv/Include/codecs.h +212 -0
  151. quarchpy/venv/Include/compile.h +40 -0
  152. quarchpy/venv/Include/complexobject.h +66 -0
  153. quarchpy/venv/Include/datetime.h +239 -0
  154. quarchpy/venv/Include/descrobject.h +94 -0
  155. quarchpy/venv/Include/dictobject.h +160 -0
  156. quarchpy/venv/Include/dtoa.h +15 -0
  157. quarchpy/venv/Include/enumobject.h +17 -0
  158. quarchpy/venv/Include/errcode.h +37 -0
  159. quarchpy/venv/Include/eval.h +25 -0
  160. quarchpy/venv/Include/fileobject.h +97 -0
  161. quarchpy/venv/Include/floatobject.h +140 -0
  162. quarchpy/venv/Include/frameobject.h +89 -0
  163. quarchpy/venv/Include/funcobject.h +76 -0
  164. quarchpy/venv/Include/genobject.h +40 -0
  165. quarchpy/venv/Include/graminit.h +87 -0
  166. quarchpy/venv/Include/grammar.h +94 -0
  167. quarchpy/venv/Include/import.h +71 -0
  168. quarchpy/venv/Include/intobject.h +84 -0
  169. quarchpy/venv/Include/intrcheck.h +15 -0
  170. quarchpy/venv/Include/iterobject.h +23 -0
  171. quarchpy/venv/Include/listobject.h +68 -0
  172. quarchpy/venv/Include/longintrepr.h +103 -0
  173. quarchpy/venv/Include/longobject.h +135 -0
  174. quarchpy/venv/Include/marshal.h +25 -0
  175. quarchpy/venv/Include/memoryobject.h +74 -0
  176. quarchpy/venv/Include/metagrammar.h +18 -0
  177. quarchpy/venv/Include/methodobject.h +93 -0
  178. quarchpy/venv/Include/modsupport.h +134 -0
  179. quarchpy/venv/Include/moduleobject.h +24 -0
  180. quarchpy/venv/Include/node.h +41 -0
  181. quarchpy/venv/Include/object.h +1046 -0
  182. quarchpy/venv/Include/objimpl.h +369 -0
  183. quarchpy/venv/Include/opcode.h +171 -0
  184. quarchpy/venv/Include/osdefs.h +63 -0
  185. quarchpy/venv/Include/parsetok.h +64 -0
  186. quarchpy/venv/Include/patchlevel.h +43 -0
  187. quarchpy/venv/Include/pgen.h +18 -0
  188. quarchpy/venv/Include/pgenheaders.h +43 -0
  189. quarchpy/venv/Include/py_curses.h +177 -0
  190. quarchpy/venv/Include/pyarena.h +62 -0
  191. quarchpy/venv/Include/pycapsule.h +56 -0
  192. quarchpy/venv/Include/pyconfig.h +770 -0
  193. quarchpy/venv/Include/pyctype.h +31 -0
  194. quarchpy/venv/Include/pydebug.h +41 -0
  195. quarchpy/venv/Include/pyerrors.h +329 -0
  196. quarchpy/venv/Include/pyexpat.h +50 -0
  197. quarchpy/venv/Include/pyfpe.h +176 -0
  198. quarchpy/venv/Include/pygetopt.h +18 -0
  199. quarchpy/venv/Include/pymacconfig.h +102 -0
  200. quarchpy/venv/Include/pymactoolbox.h +232 -0
  201. quarchpy/venv/Include/pymath.h +214 -0
  202. quarchpy/venv/Include/pymem.h +122 -0
  203. quarchpy/venv/Include/pyport.h +950 -0
  204. quarchpy/venv/Include/pystate.h +200 -0
  205. quarchpy/venv/Include/pystrcmp.h +23 -0
  206. quarchpy/venv/Include/pystrtod.h +45 -0
  207. quarchpy/venv/Include/pythonrun.h +181 -0
  208. quarchpy/venv/Include/pythread.h +41 -0
  209. quarchpy/venv/Include/rangeobject.h +28 -0
  210. quarchpy/venv/Include/setobject.h +99 -0
  211. quarchpy/venv/Include/sliceobject.h +50 -0
  212. quarchpy/venv/Include/stringobject.h +210 -0
  213. quarchpy/venv/Include/structmember.h +99 -0
  214. quarchpy/venv/Include/structseq.h +41 -0
  215. quarchpy/venv/Include/symtable.h +98 -0
  216. quarchpy/venv/Include/sysmodule.h +31 -0
  217. quarchpy/venv/Include/timefuncs.h +26 -0
  218. quarchpy/venv/Include/token.h +85 -0
  219. quarchpy/venv/Include/traceback.h +31 -0
  220. quarchpy/venv/Include/tupleobject.h +61 -0
  221. quarchpy/venv/Include/ucnhash.h +33 -0
  222. quarchpy/venv/Include/unicodeobject.h +1413 -0
  223. quarchpy/venv/Include/warnings.h +23 -0
  224. quarchpy/venv/Include/weakrefobject.h +82 -0
  225. quarchpy/venv/Lib/os.py +742 -0
  226. quarchpy/venv/Lib/os.pyc +0 -0
  227. quarchpy/venv/Lib/site-packages/_virtualenv.pth +1 -0
  228. quarchpy/venv/Lib/site-packages/_virtualenv.py +130 -0
  229. quarchpy/venv/Lib/site-packages/_virtualenv.pyc +0 -0
  230. quarchpy/venv/Lib/site-packages/easy_install.py +5 -0
  231. quarchpy/venv/Lib/site-packages/pip/__init__.py +18 -0
  232. quarchpy/venv/Lib/site-packages/pip/__main__.py +26 -0
  233. quarchpy/venv/Lib/site-packages/pip/_internal/__init__.py +17 -0
  234. quarchpy/venv/Lib/site-packages/pip/_internal/build_env.py +242 -0
  235. quarchpy/venv/Lib/site-packages/pip/_internal/cache.py +346 -0
  236. quarchpy/venv/Lib/site-packages/pip/_internal/cli/__init__.py +4 -0
  237. quarchpy/venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +164 -0
  238. quarchpy/venv/Lib/site-packages/pip/_internal/cli/base_command.py +260 -0
  239. quarchpy/venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +971 -0
  240. quarchpy/venv/Lib/site-packages/pip/_internal/cli/command_context.py +36 -0
  241. quarchpy/venv/Lib/site-packages/pip/_internal/cli/main.py +75 -0
  242. quarchpy/venv/Lib/site-packages/pip/_internal/cli/main_parser.py +96 -0
  243. quarchpy/venv/Lib/site-packages/pip/_internal/cli/parser.py +285 -0
  244. quarchpy/venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +280 -0
  245. quarchpy/venv/Lib/site-packages/pip/_internal/cli/req_command.py +436 -0
  246. quarchpy/venv/Lib/site-packages/pip/_internal/cli/spinners.py +173 -0
  247. quarchpy/venv/Lib/site-packages/pip/_internal/cli/status_codes.py +8 -0
  248. quarchpy/venv/Lib/site-packages/pip/_internal/commands/__init__.py +123 -0
  249. quarchpy/venv/Lib/site-packages/pip/_internal/commands/cache.py +234 -0
  250. quarchpy/venv/Lib/site-packages/pip/_internal/commands/check.py +51 -0
  251. quarchpy/venv/Lib/site-packages/pip/_internal/commands/completion.py +98 -0
  252. quarchpy/venv/Lib/site-packages/pip/_internal/commands/configuration.py +280 -0
  253. quarchpy/venv/Lib/site-packages/pip/_internal/commands/debug.py +230 -0
  254. quarchpy/venv/Lib/site-packages/pip/_internal/commands/download.py +143 -0
  255. quarchpy/venv/Lib/site-packages/pip/_internal/commands/freeze.py +116 -0
  256. quarchpy/venv/Lib/site-packages/pip/_internal/commands/hash.py +63 -0
  257. quarchpy/venv/Lib/site-packages/pip/_internal/commands/help.py +46 -0
  258. quarchpy/venv/Lib/site-packages/pip/_internal/commands/install.py +737 -0
  259. quarchpy/venv/Lib/site-packages/pip/_internal/commands/list.py +327 -0
  260. quarchpy/venv/Lib/site-packages/pip/_internal/commands/search.py +169 -0
  261. quarchpy/venv/Lib/site-packages/pip/_internal/commands/show.py +186 -0
  262. quarchpy/venv/Lib/site-packages/pip/_internal/commands/uninstall.py +95 -0
  263. quarchpy/venv/Lib/site-packages/pip/_internal/commands/wheel.py +198 -0
  264. quarchpy/venv/Lib/site-packages/pip/_internal/configuration.py +407 -0
  265. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/__init__.py +24 -0
  266. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/base.py +46 -0
  267. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/installed.py +25 -0
  268. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/sdist.py +105 -0
  269. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/wheel.py +37 -0
  270. quarchpy/venv/Lib/site-packages/pip/_internal/exceptions.py +391 -0
  271. quarchpy/venv/Lib/site-packages/pip/_internal/index/__init__.py +2 -0
  272. quarchpy/venv/Lib/site-packages/pip/_internal/index/collector.py +667 -0
  273. quarchpy/venv/Lib/site-packages/pip/_internal/index/package_finder.py +1015 -0
  274. quarchpy/venv/Lib/site-packages/pip/_internal/locations.py +193 -0
  275. quarchpy/venv/Lib/site-packages/pip/_internal/main.py +16 -0
  276. quarchpy/venv/Lib/site-packages/pip/_internal/models/__init__.py +2 -0
  277. quarchpy/venv/Lib/site-packages/pip/_internal/models/candidate.py +39 -0
  278. quarchpy/venv/Lib/site-packages/pip/_internal/models/direct_url.py +243 -0
  279. quarchpy/venv/Lib/site-packages/pip/_internal/models/format_control.py +92 -0
  280. quarchpy/venv/Lib/site-packages/pip/_internal/models/index.py +34 -0
  281. quarchpy/venv/Lib/site-packages/pip/_internal/models/link.py +246 -0
  282. quarchpy/venv/Lib/site-packages/pip/_internal/models/scheme.py +31 -0
  283. quarchpy/venv/Lib/site-packages/pip/_internal/models/search_scope.py +135 -0
  284. quarchpy/venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +50 -0
  285. quarchpy/venv/Lib/site-packages/pip/_internal/models/target_python.py +117 -0
  286. quarchpy/venv/Lib/site-packages/pip/_internal/models/wheel.py +78 -0
  287. quarchpy/venv/Lib/site-packages/pip/_internal/network/__init__.py +2 -0
  288. quarchpy/venv/Lib/site-packages/pip/_internal/network/auth.py +310 -0
  289. quarchpy/venv/Lib/site-packages/pip/_internal/network/cache.py +79 -0
  290. quarchpy/venv/Lib/site-packages/pip/_internal/network/download.py +202 -0
  291. quarchpy/venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +231 -0
  292. quarchpy/venv/Lib/site-packages/pip/_internal/network/session.py +428 -0
  293. quarchpy/venv/Lib/site-packages/pip/_internal/network/utils.py +97 -0
  294. quarchpy/venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +53 -0
  295. quarchpy/venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  296. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  297. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +38 -0
  298. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +77 -0
  299. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +47 -0
  300. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +113 -0
  301. quarchpy/venv/Lib/site-packages/pip/_internal/operations/check.py +155 -0
  302. quarchpy/venv/Lib/site-packages/pip/_internal/operations/freeze.py +277 -0
  303. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  304. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +52 -0
  305. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/legacy.py +130 -0
  306. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +846 -0
  307. quarchpy/venv/Lib/site-packages/pip/_internal/operations/prepare.py +608 -0
  308. quarchpy/venv/Lib/site-packages/pip/_internal/pyproject.py +196 -0
  309. quarchpy/venv/Lib/site-packages/pip/_internal/req/__init__.py +103 -0
  310. quarchpy/venv/Lib/site-packages/pip/_internal/req/constructors.py +476 -0
  311. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_file.py +574 -0
  312. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_install.py +907 -0
  313. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_set.py +204 -0
  314. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_tracker.py +151 -0
  315. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +657 -0
  316. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  317. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/base.py +21 -0
  318. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  319. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +473 -0
  320. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  321. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +156 -0
  322. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +604 -0
  323. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +504 -0
  324. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +101 -0
  325. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +174 -0
  326. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +84 -0
  327. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +201 -0
  328. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +296 -0
  329. quarchpy/venv/Lib/site-packages/pip/_internal/self_outdated_check.py +197 -0
  330. quarchpy/venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  331. quarchpy/venv/Lib/site-packages/pip/_internal/utils/appdirs.py +44 -0
  332. quarchpy/venv/Lib/site-packages/pip/_internal/utils/compat.py +293 -0
  333. quarchpy/venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +178 -0
  334. quarchpy/venv/Lib/site-packages/pip/_internal/utils/datetime.py +14 -0
  335. quarchpy/venv/Lib/site-packages/pip/_internal/utils/deprecation.py +104 -0
  336. quarchpy/venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +126 -0
  337. quarchpy/venv/Lib/site-packages/pip/_internal/utils/distutils_args.py +48 -0
  338. quarchpy/venv/Lib/site-packages/pip/_internal/utils/encoding.py +41 -0
  339. quarchpy/venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +31 -0
  340. quarchpy/venv/Lib/site-packages/pip/_internal/utils/filesystem.py +224 -0
  341. quarchpy/venv/Lib/site-packages/pip/_internal/utils/filetypes.py +26 -0
  342. quarchpy/venv/Lib/site-packages/pip/_internal/utils/glibc.py +98 -0
  343. quarchpy/venv/Lib/site-packages/pip/_internal/utils/hashes.py +169 -0
  344. quarchpy/venv/Lib/site-packages/pip/_internal/utils/inject_securetransport.py +36 -0
  345. quarchpy/venv/Lib/site-packages/pip/_internal/utils/logging.py +399 -0
  346. quarchpy/venv/Lib/site-packages/pip/_internal/utils/misc.py +962 -0
  347. quarchpy/venv/Lib/site-packages/pip/_internal/utils/models.py +44 -0
  348. quarchpy/venv/Lib/site-packages/pip/_internal/utils/packaging.py +95 -0
  349. quarchpy/venv/Lib/site-packages/pip/_internal/utils/parallel.py +107 -0
  350. quarchpy/venv/Lib/site-packages/pip/_internal/utils/pkg_resources.py +44 -0
  351. quarchpy/venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +181 -0
  352. quarchpy/venv/Lib/site-packages/pip/_internal/utils/subprocess.py +299 -0
  353. quarchpy/venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +284 -0
  354. quarchpy/venv/Lib/site-packages/pip/_internal/utils/typing.py +38 -0
  355. quarchpy/venv/Lib/site-packages/pip/_internal/utils/unpacking.py +281 -0
  356. quarchpy/venv/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
  357. quarchpy/venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +119 -0
  358. quarchpy/venv/Lib/site-packages/pip/_internal/utils/wheel.py +225 -0
  359. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
  360. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +123 -0
  361. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/git.py +454 -0
  362. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +172 -0
  363. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/subversion.py +340 -0
  364. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +735 -0
  365. quarchpy/venv/Lib/site-packages/pip/_internal/wheel_builder.py +362 -0
  366. quarchpy/venv/Lib/site-packages/pip/_vendor/__init__.py +114 -0
  367. quarchpy/venv/Lib/site-packages/pip/_vendor/appdirs.py +633 -0
  368. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +11 -0
  369. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +57 -0
  370. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +133 -0
  371. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +39 -0
  372. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +2 -0
  373. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +146 -0
  374. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +33 -0
  375. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/compat.py +29 -0
  376. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +376 -0
  377. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +80 -0
  378. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +135 -0
  379. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +188 -0
  380. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +29 -0
  381. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +3 -0
  382. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  383. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/cacert.pem +4606 -0
  384. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/core.py +60 -0
  385. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/__init__.py +39 -0
  386. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
  387. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/big5prober.py +47 -0
  388. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +233 -0
  389. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +106 -0
  390. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +145 -0
  391. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py +1 -0
  392. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +85 -0
  393. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +88 -0
  394. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/compat.py +34 -0
  395. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +49 -0
  396. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/enums.py +76 -0
  397. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/escprober.py +101 -0
  398. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/escsm.py +246 -0
  399. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +92 -0
  400. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +195 -0
  401. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +47 -0
  402. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +387 -0
  403. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +46 -0
  404. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +283 -0
  405. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +46 -0
  406. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +292 -0
  407. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +325 -0
  408. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +233 -0
  409. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +228 -0
  410. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langcyrillicmodel.py +333 -0
  411. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +225 -0
  412. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +200 -0
  413. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +225 -0
  414. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +199 -0
  415. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +193 -0
  416. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +145 -0
  417. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +91 -0
  418. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +54 -0
  419. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +572 -0
  420. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +132 -0
  421. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +73 -0
  422. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +92 -0
  423. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +286 -0
  424. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +82 -0
  425. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/version.py +9 -0
  426. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/__init__.py +6 -0
  427. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/ansi.py +102 -0
  428. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +258 -0
  429. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/initialise.py +80 -0
  430. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/win32.py +152 -0
  431. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/winterm.py +169 -0
  432. quarchpy/venv/Lib/site-packages/pip/_vendor/contextlib2.py +518 -0
  433. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +23 -0
  434. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/__init__.py +6 -0
  435. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/misc.py +41 -0
  436. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/shutil.py +764 -0
  437. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +84 -0
  438. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +786 -0
  439. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/tarfile.py +2607 -0
  440. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/compat.py +1120 -0
  441. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/database.py +1339 -0
  442. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/index.py +516 -0
  443. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/locators.py +1302 -0
  444. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/manifest.py +393 -0
  445. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/markers.py +131 -0
  446. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/metadata.py +1056 -0
  447. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/resources.py +355 -0
  448. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +419 -0
  449. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  450. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  451. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/util.py +1761 -0
  452. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/version.py +736 -0
  453. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  454. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  455. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/wheel.py +1018 -0
  456. quarchpy/venv/Lib/site-packages/pip/_vendor/distro.py +1230 -0
  457. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/__init__.py +35 -0
  458. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_ihatexml.py +289 -0
  459. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_inputstream.py +918 -0
  460. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_tokenizer.py +1735 -0
  461. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__init__.py +5 -0
  462. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/_base.py +40 -0
  463. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/py.py +67 -0
  464. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_utils.py +159 -0
  465. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/constants.py +2946 -0
  466. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  467. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +29 -0
  468. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/base.py +12 -0
  469. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +73 -0
  470. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/lint.py +93 -0
  471. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +207 -0
  472. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +916 -0
  473. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/whitespace.py +38 -0
  474. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/html5parser.py +2795 -0
  475. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/serializer.py +409 -0
  476. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +30 -0
  477. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +54 -0
  478. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +50 -0
  479. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +88 -0
  480. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/base.py +417 -0
  481. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +239 -0
  482. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +343 -0
  483. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +392 -0
  484. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +154 -0
  485. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/base.py +252 -0
  486. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +43 -0
  487. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +131 -0
  488. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +215 -0
  489. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +69 -0
  490. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/__init__.py +2 -0
  491. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/codec.py +118 -0
  492. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/compat.py +12 -0
  493. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/core.py +400 -0
  494. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +2050 -0
  495. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/intranges.py +53 -0
  496. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/package_data.py +2 -0
  497. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +8357 -0
  498. quarchpy/venv/Lib/site-packages/pip/_vendor/ipaddress.py +2420 -0
  499. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +54 -0
  500. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/_version.py +1 -0
  501. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  502. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +191 -0
  503. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +1063 -0
  504. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/__about__.py +27 -0
  505. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +26 -0
  506. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_compat.py +38 -0
  507. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +86 -0
  508. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_typing.py +48 -0
  509. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/markers.py +328 -0
  510. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +151 -0
  511. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +864 -0
  512. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/tags.py +852 -0
  513. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/utils.py +67 -0
  514. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/version.py +556 -0
  515. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/__init__.py +6 -0
  516. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/_in_process.py +280 -0
  517. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/build.py +124 -0
  518. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/check.py +203 -0
  519. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/colorlog.py +115 -0
  520. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/compat.py +34 -0
  521. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/dirtools.py +44 -0
  522. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/envbuild.py +167 -0
  523. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/meta.py +92 -0
  524. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/wrappers.py +327 -0
  525. quarchpy/venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3296 -0
  526. quarchpy/venv/Lib/site-packages/pip/_vendor/pkg_resources/py31compat.py +23 -0
  527. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/__init__.py +177 -0
  528. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/bar.py +91 -0
  529. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/counter.py +41 -0
  530. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/spinner.py +43 -0
  531. quarchpy/venv/Lib/site-packages/pip/_vendor/pyparsing.py +7107 -0
  532. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/__init__.py +144 -0
  533. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
  534. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +42 -0
  535. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/adapters.py +533 -0
  536. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/api.py +161 -0
  537. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/auth.py +305 -0
  538. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/certs.py +18 -0
  539. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/compat.py +76 -0
  540. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/cookies.py +549 -0
  541. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +123 -0
  542. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/help.py +119 -0
  543. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/hooks.py +34 -0
  544. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/models.py +956 -0
  545. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/packages.py +16 -0
  546. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/sessions.py +781 -0
  547. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +123 -0
  548. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/structures.py +105 -0
  549. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/utils.py +988 -0
  550. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  551. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  552. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  553. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +119 -0
  554. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +37 -0
  555. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +454 -0
  556. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +149 -0
  557. quarchpy/venv/Lib/site-packages/pip/_vendor/retrying.py +267 -0
  558. quarchpy/venv/Lib/site-packages/pip/_vendor/six.py +982 -0
  559. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/__init__.py +25 -0
  560. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/decoder.py +1057 -0
  561. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/encoder.py +304 -0
  562. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/ordered.py +15 -0
  563. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/tz.py +24 -0
  564. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +85 -0
  565. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +337 -0
  566. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  567. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +535 -0
  568. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1067 -0
  569. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  570. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  571. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  572. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  573. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +396 -0
  574. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  575. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +121 -0
  576. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +509 -0
  577. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
  578. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  579. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +313 -0
  580. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  581. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  582. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +5 -0
  583. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  584. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  585. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1021 -0
  586. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +22 -0
  587. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +160 -0
  588. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +536 -0
  589. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/request.py +170 -0
  590. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/response.py +821 -0
  591. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  592. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +150 -0
  593. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +56 -0
  594. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  595. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +143 -0
  596. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  597. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +601 -0
  598. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +474 -0
  599. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  600. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +268 -0
  601. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +430 -0
  602. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +153 -0
  603. quarchpy/venv/Lib/site-packages/pip/_vendor/vendor.txt +24 -0
  604. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
  605. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/labels.py +231 -0
  606. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
  607. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/tests.py +153 -0
  608. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
  609. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/INSTALLER +1 -0
  610. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/LICENSE.txt +20 -0
  611. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/METADATA +94 -0
  612. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/RECORD +812 -0
  613. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/WHEEL +6 -0
  614. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/entry_points.txt +5 -0
  615. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/top_level.txt +1 -0
  616. quarchpy/venv/Lib/site-packages/pip-20.3.4.virtualenv +0 -0
  617. quarchpy/venv/Lib/site-packages/pkg_resources/__init__.py +3296 -0
  618. quarchpy/venv/Lib/site-packages/pkg_resources/__init__.pyc +0 -0
  619. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  620. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/__init__.pyc +0 -0
  621. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/appdirs.py +608 -0
  622. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/appdirs.pyc +0 -0
  623. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__about__.py +21 -0
  624. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__about__.pyc +0 -0
  625. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.py +14 -0
  626. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.pyc +0 -0
  627. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_compat.py +30 -0
  628. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_compat.pyc +0 -0
  629. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.py +68 -0
  630. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.pyc +0 -0
  631. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/markers.py +301 -0
  632. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/markers.pyc +0 -0
  633. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/requirements.py +127 -0
  634. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/requirements.pyc +0 -0
  635. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/specifiers.py +774 -0
  636. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/specifiers.pyc +0 -0
  637. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/utils.py +14 -0
  638. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/version.py +393 -0
  639. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/version.pyc +0 -0
  640. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py +5742 -0
  641. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.pyc +0 -0
  642. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/six.py +868 -0
  643. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/six.pyc +0 -0
  644. quarchpy/venv/Lib/site-packages/pkg_resources/extern/__init__.py +73 -0
  645. quarchpy/venv/Lib/site-packages/pkg_resources/extern/__init__.pyc +0 -0
  646. quarchpy/venv/Lib/site-packages/pkg_resources/py31compat.py +23 -0
  647. quarchpy/venv/Lib/site-packages/pkg_resources/py31compat.pyc +0 -0
  648. quarchpy/venv/Lib/site-packages/setuptools/__init__.py +245 -0
  649. quarchpy/venv/Lib/site-packages/setuptools/_deprecation_warning.py +7 -0
  650. quarchpy/venv/Lib/site-packages/setuptools/_imp.py +73 -0
  651. quarchpy/venv/Lib/site-packages/setuptools/_vendor/__init__.py +0 -0
  652. quarchpy/venv/Lib/site-packages/setuptools/_vendor/ordered_set.py +488 -0
  653. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/__about__.py +27 -0
  654. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +26 -0
  655. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/_compat.py +31 -0
  656. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +68 -0
  657. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +296 -0
  658. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +138 -0
  659. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +749 -0
  660. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +404 -0
  661. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +57 -0
  662. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/version.py +420 -0
  663. quarchpy/venv/Lib/site-packages/setuptools/_vendor/pyparsing.py +5742 -0
  664. quarchpy/venv/Lib/site-packages/setuptools/_vendor/six.py +868 -0
  665. quarchpy/venv/Lib/site-packages/setuptools/archive_util.py +173 -0
  666. quarchpy/venv/Lib/site-packages/setuptools/build_meta.py +264 -0
  667. quarchpy/venv/Lib/site-packages/setuptools/cli-32.exe +0 -0
  668. quarchpy/venv/Lib/site-packages/setuptools/cli-64.exe +0 -0
  669. quarchpy/venv/Lib/site-packages/setuptools/cli.exe +0 -0
  670. quarchpy/venv/Lib/site-packages/setuptools/command/__init__.py +17 -0
  671. quarchpy/venv/Lib/site-packages/setuptools/command/alias.py +80 -0
  672. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_egg.py +502 -0
  673. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_rpm.py +43 -0
  674. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_wininst.py +21 -0
  675. quarchpy/venv/Lib/site-packages/setuptools/command/build_clib.py +98 -0
  676. quarchpy/venv/Lib/site-packages/setuptools/command/build_ext.py +327 -0
  677. quarchpy/venv/Lib/site-packages/setuptools/command/build_py.py +270 -0
  678. quarchpy/venv/Lib/site-packages/setuptools/command/develop.py +221 -0
  679. quarchpy/venv/Lib/site-packages/setuptools/command/dist_info.py +36 -0
  680. quarchpy/venv/Lib/site-packages/setuptools/command/easy_install.py +2347 -0
  681. quarchpy/venv/Lib/site-packages/setuptools/command/egg_info.py +717 -0
  682. quarchpy/venv/Lib/site-packages/setuptools/command/install.py +125 -0
  683. quarchpy/venv/Lib/site-packages/setuptools/command/install_egg_info.py +62 -0
  684. quarchpy/venv/Lib/site-packages/setuptools/command/install_lib.py +121 -0
  685. quarchpy/venv/Lib/site-packages/setuptools/command/install_scripts.py +65 -0
  686. quarchpy/venv/Lib/site-packages/setuptools/command/launcher manifest.xml +15 -0
  687. quarchpy/venv/Lib/site-packages/setuptools/command/py36compat.py +136 -0
  688. quarchpy/venv/Lib/site-packages/setuptools/command/register.py +18 -0
  689. quarchpy/venv/Lib/site-packages/setuptools/command/rotate.py +66 -0
  690. quarchpy/venv/Lib/site-packages/setuptools/command/saveopts.py +22 -0
  691. quarchpy/venv/Lib/site-packages/setuptools/command/sdist.py +252 -0
  692. quarchpy/venv/Lib/site-packages/setuptools/command/setopt.py +149 -0
  693. quarchpy/venv/Lib/site-packages/setuptools/command/test.py +279 -0
  694. quarchpy/venv/Lib/site-packages/setuptools/command/upload.py +17 -0
  695. quarchpy/venv/Lib/site-packages/setuptools/command/upload_docs.py +206 -0
  696. quarchpy/venv/Lib/site-packages/setuptools/config.py +659 -0
  697. quarchpy/venv/Lib/site-packages/setuptools/dep_util.py +23 -0
  698. quarchpy/venv/Lib/site-packages/setuptools/depends.py +176 -0
  699. quarchpy/venv/Lib/site-packages/setuptools/dist.py +1274 -0
  700. quarchpy/venv/Lib/site-packages/setuptools/errors.py +16 -0
  701. quarchpy/venv/Lib/site-packages/setuptools/extension.py +57 -0
  702. quarchpy/venv/Lib/site-packages/setuptools/extern/__init__.py +73 -0
  703. quarchpy/venv/Lib/site-packages/setuptools/glob.py +174 -0
  704. quarchpy/venv/Lib/site-packages/setuptools/gui-32.exe +0 -0
  705. quarchpy/venv/Lib/site-packages/setuptools/gui-64.exe +0 -0
  706. quarchpy/venv/Lib/site-packages/setuptools/gui.exe +0 -0
  707. quarchpy/venv/Lib/site-packages/setuptools/installer.py +150 -0
  708. quarchpy/venv/Lib/site-packages/setuptools/launch.py +35 -0
  709. quarchpy/venv/Lib/site-packages/setuptools/lib2to3_ex.py +62 -0
  710. quarchpy/venv/Lib/site-packages/setuptools/monkey.py +179 -0
  711. quarchpy/venv/Lib/site-packages/setuptools/msvc.py +1679 -0
  712. quarchpy/venv/Lib/site-packages/setuptools/namespaces.py +107 -0
  713. quarchpy/venv/Lib/site-packages/setuptools/package_index.py +1136 -0
  714. quarchpy/venv/Lib/site-packages/setuptools/py27compat.py +60 -0
  715. quarchpy/venv/Lib/site-packages/setuptools/py31compat.py +32 -0
  716. quarchpy/venv/Lib/site-packages/setuptools/py33compat.py +59 -0
  717. quarchpy/venv/Lib/site-packages/setuptools/py34compat.py +13 -0
  718. quarchpy/venv/Lib/site-packages/setuptools/sandbox.py +491 -0
  719. quarchpy/venv/Lib/site-packages/setuptools/script (dev).tmpl +6 -0
  720. quarchpy/venv/Lib/site-packages/setuptools/script.tmpl +3 -0
  721. quarchpy/venv/Lib/site-packages/setuptools/site-patch.py +74 -0
  722. quarchpy/venv/Lib/site-packages/setuptools/ssl_support.py +260 -0
  723. quarchpy/venv/Lib/site-packages/setuptools/unicode_utils.py +44 -0
  724. quarchpy/venv/Lib/site-packages/setuptools/version.py +6 -0
  725. quarchpy/venv/Lib/site-packages/setuptools/wheel.py +220 -0
  726. quarchpy/venv/Lib/site-packages/setuptools/windows_support.py +29 -0
  727. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/INSTALLER +1 -0
  728. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/LICENSE +19 -0
  729. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/METADATA +86 -0
  730. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/RECORD +207 -0
  731. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/WHEEL +6 -0
  732. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/dependency_links.txt +2 -0
  733. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/entry_points.txt +69 -0
  734. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/top_level.txt +3 -0
  735. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/zip-safe +1 -0
  736. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.virtualenv +0 -0
  737. quarchpy/venv/Lib/site-packages/wheel/__init__.py +1 -0
  738. quarchpy/venv/Lib/site-packages/wheel/__main__.py +19 -0
  739. quarchpy/venv/Lib/site-packages/wheel/bdist_wheel.py +492 -0
  740. quarchpy/venv/Lib/site-packages/wheel/cli/__init__.py +88 -0
  741. quarchpy/venv/Lib/site-packages/wheel/cli/convert.py +269 -0
  742. quarchpy/venv/Lib/site-packages/wheel/cli/pack.py +82 -0
  743. quarchpy/venv/Lib/site-packages/wheel/cli/unpack.py +25 -0
  744. quarchpy/venv/Lib/site-packages/wheel/macosx_libfile.py +428 -0
  745. quarchpy/venv/Lib/site-packages/wheel/metadata.py +133 -0
  746. quarchpy/venv/Lib/site-packages/wheel/pkginfo.py +43 -0
  747. quarchpy/venv/Lib/site-packages/wheel/util.py +46 -0
  748. quarchpy/venv/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  749. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  750. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/_typing.py +48 -0
  751. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/tags.py +866 -0
  752. quarchpy/venv/Lib/site-packages/wheel/wheelfile.py +181 -0
  753. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/INSTALLER +1 -0
  754. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/LICENSE.txt +22 -0
  755. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/METADATA +69 -0
  756. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/RECORD +49 -0
  757. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/WHEEL +6 -0
  758. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/entry_points.txt +6 -0
  759. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/top_level.txt +1 -0
  760. quarchpy/venv/Lib/site-packages/wheel-0.37.1.virtualenv +0 -0
  761. quarchpy/venv/Lib/site.py +190 -0
  762. quarchpy/venv/Lib/site.pyc +0 -0
  763. quarchpy/venv/Scripts/activate +83 -0
  764. quarchpy/venv/Scripts/activate.bat +39 -0
  765. quarchpy/venv/Scripts/activate.fish +100 -0
  766. quarchpy/venv/Scripts/activate.nu +41 -0
  767. quarchpy/venv/Scripts/activate.ps1 +60 -0
  768. quarchpy/venv/Scripts/activate_this.py +32 -0
  769. quarchpy/venv/Scripts/deactivate.bat +19 -0
  770. quarchpy/venv/Scripts/deactivate.nu +11 -0
  771. quarchpy/venv/Scripts/easy_install-2.7.exe +0 -0
  772. quarchpy/venv/Scripts/easy_install.exe +0 -0
  773. quarchpy/venv/Scripts/easy_install2.7.exe +0 -0
  774. quarchpy/venv/Scripts/easy_install2.exe +0 -0
  775. quarchpy/venv/Scripts/pip-2.7.exe +0 -0
  776. quarchpy/venv/Scripts/pip.exe +0 -0
  777. quarchpy/venv/Scripts/pip2.7.exe +0 -0
  778. quarchpy/venv/Scripts/pip2.exe +0 -0
  779. quarchpy/venv/Scripts/pydoc.bat +1 -0
  780. quarchpy/venv/Scripts/python.exe +0 -0
  781. quarchpy/venv/Scripts/python27.dll +0 -0
  782. quarchpy/venv/Scripts/pythonw.exe +0 -0
  783. quarchpy/venv/Scripts/wheel-2.7.exe +0 -0
  784. quarchpy/venv/Scripts/wheel.exe +0 -0
  785. quarchpy/venv/Scripts/wheel2.7.exe +0 -0
  786. quarchpy/venv/Scripts/wheel2.exe +0 -0
  787. quarchpy/venv/libs/_bsddb.lib +0 -0
  788. quarchpy/venv/libs/_ctypes.lib +0 -0
  789. quarchpy/venv/libs/_ctypes_test.lib +0 -0
  790. quarchpy/venv/libs/_elementtree.lib +0 -0
  791. quarchpy/venv/libs/_hashlib.lib +0 -0
  792. quarchpy/venv/libs/_msi.lib +0 -0
  793. quarchpy/venv/libs/_multiprocessing.lib +0 -0
  794. quarchpy/venv/libs/_socket.lib +0 -0
  795. quarchpy/venv/libs/_sqlite3.lib +0 -0
  796. quarchpy/venv/libs/_ssl.lib +0 -0
  797. quarchpy/venv/libs/_testcapi.lib +0 -0
  798. quarchpy/venv/libs/_tkinter.lib +0 -0
  799. quarchpy/venv/libs/bz2.lib +0 -0
  800. quarchpy/venv/libs/libpython27.a +0 -0
  801. quarchpy/venv/libs/pyexpat.lib +0 -0
  802. quarchpy/venv/libs/python27.lib +0 -0
  803. quarchpy/venv/libs/select.lib +0 -0
  804. quarchpy/venv/libs/unicodedata.lib +0 -0
  805. quarchpy/venv/libs/winsound.lib +0 -0
  806. quarchpy/venv/pyvenv.cfg +8 -0
  807. {quarchpy-2.1.13.dev2.dist-info → quarchpy-2.1.14.dist-info}/METADATA +12 -2
  808. quarchpy-2.1.14.dist-info/RECORD +1216 -0
  809. quarchpy/.idea/inspectionProfiles/Project_Default.xml +0 -26
  810. quarchpy/connection_specific/connection_QIS.py.bak +0 -1821
  811. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-311.pyc +0 -0
  812. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-311.pyc +0 -0
  813. quarchpy/debug/TextScanIP.py +0 -11
  814. quarchpy/device/device.py.bak +0 -504
  815. quarchpy/device/scanDevices.py.bak +0 -661
  816. quarchpy/user_interface/user_interface.py.bak +0 -749
  817. quarchpy/utilities/TestCenter.py.bak +0 -150
  818. quarchpy-2.1.13.dev2.dist-info/RECORD +0 -542
  819. {quarchpy-2.1.13.dev2.dist-info → quarchpy-2.1.14.dist-info}/WHEEL +0 -0
  820. {quarchpy-2.1.13.dev2.dist-info → quarchpy-2.1.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,310 @@
1
+ """Network Authentication Helpers
2
+
3
+ Contains interface (MultiDomainBasicAuth) and associated glue code for
4
+ providing credentials in the context of network requests.
5
+ """
6
+
7
+ import logging
8
+
9
+ from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth
10
+ from pip._vendor.requests.utils import get_netrc_auth
11
+ from pip._vendor.six.moves.urllib import parse as urllib_parse
12
+
13
+ from pip._internal.utils.misc import (
14
+ ask,
15
+ ask_input,
16
+ ask_password,
17
+ remove_auth_from_url,
18
+ split_auth_netloc_from_url,
19
+ )
20
+ from pip._internal.utils.typing import MYPY_CHECK_RUNNING
21
+
22
+ if MYPY_CHECK_RUNNING:
23
+ from typing import Any, Dict, List, Optional, Tuple
24
+
25
+ from pip._vendor.requests.models import Request, Response
26
+
27
+ from pip._internal.vcs.versioncontrol import AuthInfo
28
+
29
+ Credentials = Tuple[str, str, str]
30
+
31
+ logger = logging.getLogger(__name__)
32
+
33
+ try:
34
+ import keyring # noqa
35
+ except ImportError:
36
+ keyring = None
37
+ except Exception as exc:
38
+ logger.warning(
39
+ "Keyring is skipped due to an exception: %s", str(exc),
40
+ )
41
+ keyring = None
42
+
43
+
44
+ def get_keyring_auth(url, username):
45
+ # type: (str, str) -> Optional[AuthInfo]
46
+ """Return the tuple auth for a given url from keyring."""
47
+ global keyring
48
+ if not url or not keyring:
49
+ return None
50
+
51
+ try:
52
+ try:
53
+ get_credential = keyring.get_credential
54
+ except AttributeError:
55
+ pass
56
+ else:
57
+ logger.debug("Getting credentials from keyring for %s", url)
58
+ cred = get_credential(url, username)
59
+ if cred is not None:
60
+ return cred.username, cred.password
61
+ return None
62
+
63
+ if username:
64
+ logger.debug("Getting password from keyring for %s", url)
65
+ password = keyring.get_password(url, username)
66
+ if password:
67
+ return username, password
68
+
69
+ except Exception as exc:
70
+ logger.warning(
71
+ "Keyring is skipped due to an exception: %s", str(exc),
72
+ )
73
+ keyring = None
74
+ return None
75
+
76
+
77
+ class MultiDomainBasicAuth(AuthBase):
78
+
79
+ def __init__(self, prompting=True, index_urls=None):
80
+ # type: (bool, Optional[List[str]]) -> None
81
+ self.prompting = prompting
82
+ self.index_urls = index_urls
83
+ self.passwords = {} # type: Dict[str, AuthInfo]
84
+ # When the user is prompted to enter credentials and keyring is
85
+ # available, we will offer to save them. If the user accepts,
86
+ # this value is set to the credentials they entered. After the
87
+ # request authenticates, the caller should call
88
+ # ``save_credentials`` to save these.
89
+ self._credentials_to_save = None # type: Optional[Credentials]
90
+
91
+ def _get_index_url(self, url):
92
+ # type: (str) -> Optional[str]
93
+ """Return the original index URL matching the requested URL.
94
+
95
+ Cached or dynamically generated credentials may work against
96
+ the original index URL rather than just the netloc.
97
+
98
+ The provided url should have had its username and password
99
+ removed already. If the original index url had credentials then
100
+ they will be included in the return value.
101
+
102
+ Returns None if no matching index was found, or if --no-index
103
+ was specified by the user.
104
+ """
105
+ if not url or not self.index_urls:
106
+ return None
107
+
108
+ for u in self.index_urls:
109
+ prefix = remove_auth_from_url(u).rstrip("/") + "/"
110
+ if url.startswith(prefix):
111
+ return u
112
+ return None
113
+
114
+ def _get_new_credentials(self, original_url, allow_netrc=True,
115
+ allow_keyring=True):
116
+ # type: (str, bool, bool) -> AuthInfo
117
+ """Find and return credentials for the specified URL."""
118
+ # Split the credentials and netloc from the url.
119
+ url, netloc, url_user_password = split_auth_netloc_from_url(
120
+ original_url,
121
+ )
122
+
123
+ # Start with the credentials embedded in the url
124
+ username, password = url_user_password
125
+ if username is not None and password is not None:
126
+ logger.debug("Found credentials in url for %s", netloc)
127
+ return url_user_password
128
+
129
+ # Find a matching index url for this request
130
+ index_url = self._get_index_url(url)
131
+ if index_url:
132
+ # Split the credentials from the url.
133
+ index_info = split_auth_netloc_from_url(index_url)
134
+ if index_info:
135
+ index_url, _, index_url_user_password = index_info
136
+ logger.debug("Found index url %s", index_url)
137
+
138
+ # If an index URL was found, try its embedded credentials
139
+ if index_url and index_url_user_password[0] is not None:
140
+ username, password = index_url_user_password
141
+ if username is not None and password is not None:
142
+ logger.debug("Found credentials in index url for %s", netloc)
143
+ return index_url_user_password
144
+
145
+ # Get creds from netrc if we still don't have them
146
+ if allow_netrc:
147
+ netrc_auth = get_netrc_auth(original_url)
148
+ if netrc_auth:
149
+ logger.debug("Found credentials in netrc for %s", netloc)
150
+ return netrc_auth
151
+
152
+ # If we don't have a password and keyring is available, use it.
153
+ if allow_keyring:
154
+ # The index url is more specific than the netloc, so try it first
155
+ kr_auth = (
156
+ get_keyring_auth(index_url, username) or
157
+ get_keyring_auth(netloc, username)
158
+ )
159
+ if kr_auth:
160
+ logger.debug("Found credentials in keyring for %s", netloc)
161
+ return kr_auth
162
+
163
+ return username, password
164
+
165
+ def _get_url_and_credentials(self, original_url):
166
+ # type: (str) -> Tuple[str, Optional[str], Optional[str]]
167
+ """Return the credentials to use for the provided URL.
168
+
169
+ If allowed, netrc and keyring may be used to obtain the
170
+ correct credentials.
171
+
172
+ Returns (url_without_credentials, username, password). Note
173
+ that even if the original URL contains credentials, this
174
+ function may return a different username and password.
175
+ """
176
+ url, netloc, _ = split_auth_netloc_from_url(original_url)
177
+
178
+ # Use any stored credentials that we have for this netloc
179
+ username, password = self.passwords.get(netloc, (None, None))
180
+
181
+ if username is None and password is None:
182
+ # No stored credentials. Acquire new credentials without prompting
183
+ # the user. (e.g. from netrc, keyring, or the URL itself)
184
+ username, password = self._get_new_credentials(original_url)
185
+
186
+ if username is not None or password is not None:
187
+ # Convert the username and password if they're None, so that
188
+ # this netloc will show up as "cached" in the conditional above.
189
+ # Further, HTTPBasicAuth doesn't accept None, so it makes sense to
190
+ # cache the value that is going to be used.
191
+ username = username or ""
192
+ password = password or ""
193
+
194
+ # Store any acquired credentials.
195
+ self.passwords[netloc] = (username, password)
196
+
197
+ assert (
198
+ # Credentials were found
199
+ (username is not None and password is not None) or
200
+ # Credentials were not found
201
+ (username is None and password is None)
202
+ ), "Could not load credentials from url: {}".format(original_url)
203
+
204
+ return url, username, password
205
+
206
+ def __call__(self, req):
207
+ # type: (Request) -> Request
208
+ # Get credentials for this request
209
+ url, username, password = self._get_url_and_credentials(req.url)
210
+
211
+ # Set the url of the request to the url without any credentials
212
+ req.url = url
213
+
214
+ if username is not None and password is not None:
215
+ # Send the basic auth with this request
216
+ req = HTTPBasicAuth(username, password)(req)
217
+
218
+ # Attach a hook to handle 401 responses
219
+ req.register_hook("response", self.handle_401)
220
+
221
+ return req
222
+
223
+ # Factored out to allow for easy patching in tests
224
+ def _prompt_for_password(self, netloc):
225
+ # type: (str) -> Tuple[Optional[str], Optional[str], bool]
226
+ username = ask_input("User for {}: ".format(netloc))
227
+ if not username:
228
+ return None, None, False
229
+ auth = get_keyring_auth(netloc, username)
230
+ if auth and auth[0] is not None and auth[1] is not None:
231
+ return auth[0], auth[1], False
232
+ password = ask_password("Password: ")
233
+ return username, password, True
234
+
235
+ # Factored out to allow for easy patching in tests
236
+ def _should_save_password_to_keyring(self):
237
+ # type: () -> bool
238
+ if not keyring:
239
+ return False
240
+ return ask("Save credentials to keyring [y/N]: ", ["y", "n"]) == "y"
241
+
242
+ def handle_401(self, resp, **kwargs):
243
+ # type: (Response, **Any) -> Response
244
+ # We only care about 401 responses, anything else we want to just
245
+ # pass through the actual response
246
+ if resp.status_code != 401:
247
+ return resp
248
+
249
+ # We are not able to prompt the user so simply return the response
250
+ if not self.prompting:
251
+ return resp
252
+
253
+ parsed = urllib_parse.urlparse(resp.url)
254
+
255
+ # Prompt the user for a new username and password
256
+ username, password, save = self._prompt_for_password(parsed.netloc)
257
+
258
+ # Store the new username and password to use for future requests
259
+ self._credentials_to_save = None
260
+ if username is not None and password is not None:
261
+ self.passwords[parsed.netloc] = (username, password)
262
+
263
+ # Prompt to save the password to keyring
264
+ if save and self._should_save_password_to_keyring():
265
+ self._credentials_to_save = (parsed.netloc, username, password)
266
+
267
+ # Consume content and release the original connection to allow our new
268
+ # request to reuse the same one.
269
+ resp.content
270
+ resp.raw.release_conn()
271
+
272
+ # Add our new username and password to the request
273
+ req = HTTPBasicAuth(username or "", password or "")(resp.request)
274
+ req.register_hook("response", self.warn_on_401)
275
+
276
+ # On successful request, save the credentials that were used to
277
+ # keyring. (Note that if the user responded "no" above, this member
278
+ # is not set and nothing will be saved.)
279
+ if self._credentials_to_save:
280
+ req.register_hook("response", self.save_credentials)
281
+
282
+ # Send our new request
283
+ new_resp = resp.connection.send(req, **kwargs)
284
+ new_resp.history.append(resp)
285
+
286
+ return new_resp
287
+
288
+ def warn_on_401(self, resp, **kwargs):
289
+ # type: (Response, **Any) -> None
290
+ """Response callback to warn about incorrect credentials."""
291
+ if resp.status_code == 401:
292
+ logger.warning(
293
+ '401 Error, Credentials not correct for %s', resp.request.url,
294
+ )
295
+
296
+ def save_credentials(self, resp, **kwargs):
297
+ # type: (Response, **Any) -> None
298
+ """Response callback to save credentials on success."""
299
+ assert keyring is not None, "should never reach here without keyring"
300
+ if not keyring:
301
+ return
302
+
303
+ creds = self._credentials_to_save
304
+ self._credentials_to_save = None
305
+ if creds and resp.status_code < 400:
306
+ try:
307
+ logger.info('Saving credentials to keyring')
308
+ keyring.set_password(*creds)
309
+ except Exception:
310
+ logger.exception('Failed to save credentials')
@@ -0,0 +1,79 @@
1
+ """HTTP cache implementation.
2
+ """
3
+
4
+ import os
5
+ from contextlib import contextmanager
6
+
7
+ from pip._vendor.cachecontrol.cache import BaseCache
8
+ from pip._vendor.cachecontrol.caches import FileCache
9
+ from pip._vendor.requests.models import Response
10
+
11
+ from pip._internal.utils.filesystem import adjacent_tmp_file, replace
12
+ from pip._internal.utils.misc import ensure_dir
13
+ from pip._internal.utils.typing import MYPY_CHECK_RUNNING
14
+
15
+ if MYPY_CHECK_RUNNING:
16
+ from typing import Iterator, Optional
17
+
18
+
19
+ def is_from_cache(response):
20
+ # type: (Response) -> bool
21
+ return getattr(response, "from_cache", False)
22
+
23
+
24
+ @contextmanager
25
+ def suppressed_cache_errors():
26
+ # type: () -> Iterator[None]
27
+ """If we can't access the cache then we can just skip caching and process
28
+ requests as if caching wasn't enabled.
29
+ """
30
+ try:
31
+ yield
32
+ except (OSError, IOError):
33
+ pass
34
+
35
+
36
+ class SafeFileCache(BaseCache):
37
+ """
38
+ A file based cache which is safe to use even when the target directory may
39
+ not be accessible or writable.
40
+ """
41
+
42
+ def __init__(self, directory):
43
+ # type: (str) -> None
44
+ assert directory is not None, "Cache directory must not be None."
45
+ super(SafeFileCache, self).__init__()
46
+ self.directory = directory
47
+
48
+ def _get_cache_path(self, name):
49
+ # type: (str) -> str
50
+ # From cachecontrol.caches.file_cache.FileCache._fn, brought into our
51
+ # class for backwards-compatibility and to avoid using a non-public
52
+ # method.
53
+ hashed = FileCache.encode(name)
54
+ parts = list(hashed[:5]) + [hashed]
55
+ return os.path.join(self.directory, *parts)
56
+
57
+ def get(self, key):
58
+ # type: (str) -> Optional[bytes]
59
+ path = self._get_cache_path(key)
60
+ with suppressed_cache_errors():
61
+ with open(path, 'rb') as f:
62
+ return f.read()
63
+
64
+ def set(self, key, value):
65
+ # type: (str, bytes) -> None
66
+ path = self._get_cache_path(key)
67
+ with suppressed_cache_errors():
68
+ ensure_dir(os.path.dirname(path))
69
+
70
+ with adjacent_tmp_file(path) as f:
71
+ f.write(value)
72
+
73
+ replace(f.name, path)
74
+
75
+ def delete(self, key):
76
+ # type: (str) -> None
77
+ path = self._get_cache_path(key)
78
+ with suppressed_cache_errors():
79
+ os.remove(path)
@@ -0,0 +1,202 @@
1
+ """Download files with progress indicators.
2
+ """
3
+ import cgi
4
+ import logging
5
+ import mimetypes
6
+ import os
7
+
8
+ from pip._vendor.requests.models import CONTENT_CHUNK_SIZE
9
+
10
+ from pip._internal.cli.progress_bars import DownloadProgressProvider
11
+ from pip._internal.exceptions import NetworkConnectionError
12
+ from pip._internal.models.index import PyPI
13
+ from pip._internal.network.cache import is_from_cache
14
+ from pip._internal.network.utils import HEADERS, raise_for_status, response_chunks
15
+ from pip._internal.utils.misc import format_size, redact_auth_from_url, splitext
16
+ from pip._internal.utils.typing import MYPY_CHECK_RUNNING
17
+
18
+ if MYPY_CHECK_RUNNING:
19
+ from typing import Iterable, Optional, Tuple
20
+
21
+ from pip._vendor.requests.models import Response
22
+
23
+ from pip._internal.models.link import Link
24
+ from pip._internal.network.session import PipSession
25
+
26
+ logger = logging.getLogger(__name__)
27
+
28
+
29
+ def _get_http_response_size(resp):
30
+ # type: (Response) -> Optional[int]
31
+ try:
32
+ return int(resp.headers['content-length'])
33
+ except (ValueError, KeyError, TypeError):
34
+ return None
35
+
36
+
37
+ def _prepare_download(
38
+ resp, # type: Response
39
+ link, # type: Link
40
+ progress_bar # type: str
41
+ ):
42
+ # type: (...) -> Iterable[bytes]
43
+ total_length = _get_http_response_size(resp)
44
+
45
+ if link.netloc == PyPI.file_storage_domain:
46
+ url = link.show_url
47
+ else:
48
+ url = link.url_without_fragment
49
+
50
+ logged_url = redact_auth_from_url(url)
51
+
52
+ if total_length:
53
+ logged_url = '{} ({})'.format(logged_url, format_size(total_length))
54
+
55
+ if is_from_cache(resp):
56
+ logger.info("Using cached %s", logged_url)
57
+ else:
58
+ logger.info("Downloading %s", logged_url)
59
+
60
+ if logger.getEffectiveLevel() > logging.INFO:
61
+ show_progress = False
62
+ elif is_from_cache(resp):
63
+ show_progress = False
64
+ elif not total_length:
65
+ show_progress = True
66
+ elif total_length > (40 * 1000):
67
+ show_progress = True
68
+ else:
69
+ show_progress = False
70
+
71
+ chunks = response_chunks(resp, CONTENT_CHUNK_SIZE)
72
+
73
+ if not show_progress:
74
+ return chunks
75
+
76
+ return DownloadProgressProvider(
77
+ progress_bar, max=total_length
78
+ )(chunks)
79
+
80
+
81
+ def sanitize_content_filename(filename):
82
+ # type: (str) -> str
83
+ """
84
+ Sanitize the "filename" value from a Content-Disposition header.
85
+ """
86
+ return os.path.basename(filename)
87
+
88
+
89
+ def parse_content_disposition(content_disposition, default_filename):
90
+ # type: (str, str) -> str
91
+ """
92
+ Parse the "filename" value from a Content-Disposition header, and
93
+ return the default filename if the result is empty.
94
+ """
95
+ _type, params = cgi.parse_header(content_disposition)
96
+ filename = params.get('filename')
97
+ if filename:
98
+ # We need to sanitize the filename to prevent directory traversal
99
+ # in case the filename contains ".." path parts.
100
+ filename = sanitize_content_filename(filename)
101
+ return filename or default_filename
102
+
103
+
104
+ def _get_http_response_filename(resp, link):
105
+ # type: (Response, Link) -> str
106
+ """Get an ideal filename from the given HTTP response, falling back to
107
+ the link filename if not provided.
108
+ """
109
+ filename = link.filename # fallback
110
+ # Have a look at the Content-Disposition header for a better guess
111
+ content_disposition = resp.headers.get('content-disposition')
112
+ if content_disposition:
113
+ filename = parse_content_disposition(content_disposition, filename)
114
+ ext = splitext(filename)[1] # type: Optional[str]
115
+ if not ext:
116
+ ext = mimetypes.guess_extension(
117
+ resp.headers.get('content-type', '')
118
+ )
119
+ if ext:
120
+ filename += ext
121
+ if not ext and link.url != resp.url:
122
+ ext = os.path.splitext(resp.url)[1]
123
+ if ext:
124
+ filename += ext
125
+ return filename
126
+
127
+
128
+ def _http_get_download(session, link):
129
+ # type: (PipSession, Link) -> Response
130
+ target_url = link.url.split('#', 1)[0]
131
+ resp = session.get(target_url, headers=HEADERS, stream=True)
132
+ raise_for_status(resp)
133
+ return resp
134
+
135
+
136
+ class Downloader(object):
137
+ def __init__(
138
+ self,
139
+ session, # type: PipSession
140
+ progress_bar, # type: str
141
+ ):
142
+ # type: (...) -> None
143
+ self._session = session
144
+ self._progress_bar = progress_bar
145
+
146
+ def __call__(self, link, location):
147
+ # type: (Link, str) -> Tuple[str, str]
148
+ """Download the file given by link into location."""
149
+ try:
150
+ resp = _http_get_download(self._session, link)
151
+ except NetworkConnectionError as e:
152
+ assert e.response is not None
153
+ logger.critical(
154
+ "HTTP error %s while getting %s", e.response.status_code, link
155
+ )
156
+ raise
157
+
158
+ filename = _get_http_response_filename(resp, link)
159
+ filepath = os.path.join(location, filename)
160
+
161
+ chunks = _prepare_download(resp, link, self._progress_bar)
162
+ with open(filepath, 'wb') as content_file:
163
+ for chunk in chunks:
164
+ content_file.write(chunk)
165
+ content_type = resp.headers.get('Content-Type', '')
166
+ return filepath, content_type
167
+
168
+
169
+ class BatchDownloader(object):
170
+
171
+ def __init__(
172
+ self,
173
+ session, # type: PipSession
174
+ progress_bar, # type: str
175
+ ):
176
+ # type: (...) -> None
177
+ self._session = session
178
+ self._progress_bar = progress_bar
179
+
180
+ def __call__(self, links, location):
181
+ # type: (Iterable[Link], str) -> Iterable[Tuple[str, Tuple[str, str]]]
182
+ """Download the files given by links into location."""
183
+ for link in links:
184
+ try:
185
+ resp = _http_get_download(self._session, link)
186
+ except NetworkConnectionError as e:
187
+ assert e.response is not None
188
+ logger.critical(
189
+ "HTTP error %s while getting %s",
190
+ e.response.status_code, link,
191
+ )
192
+ raise
193
+
194
+ filename = _get_http_response_filename(resp, link)
195
+ filepath = os.path.join(location, filename)
196
+
197
+ chunks = _prepare_download(resp, link, self._progress_bar)
198
+ with open(filepath, 'wb') as content_file:
199
+ for chunk in chunks:
200
+ content_file.write(chunk)
201
+ content_type = resp.headers.get('Content-Type', '')
202
+ yield link.url, (filepath, content_type)