quarchpy 2.1.13.dev1__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 (837) 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/QPS/commandLineOptions.txt +12 -10
  13. quarchpy/connection_specific/QPS/qis/qis.jar +0 -0
  14. quarchpy/connection_specific/QPS/qis/qis_lib/{CInterface-1.7.03.jar → CInterface-1.7.04.jar} +0 -0
  15. quarchpy/connection_specific/QPS/qis/qis_lib/{QuarchCommon-0.2.5.jar → QuarchCommon-0.2.6.jar} +0 -0
  16. quarchpy/connection_specific/QPS/qis/qis_lib/commons-lang3-3.2.1.jar +0 -0
  17. quarchpy/connection_specific/QPS/qps.jar +0 -0
  18. quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.6.jar +0 -0
  19. quarchpy/connection_specific/QPS/qps_lib/istack-commons-runtime-3.0.11.jar +0 -0
  20. quarchpy/connection_specific/QPS/qps_lib/jakarta.activation-api-2.1.0.jar +0 -0
  21. quarchpy/connection_specific/QPS/qps_lib/jakarta.xml.bind-api-3.0.0.jar +0 -0
  22. quarchpy/connection_specific/QPS/qps_lib/jaxb-core-3.0.0.jar +0 -0
  23. quarchpy/connection_specific/QPS/qps_lib/jaxb-impl-3.0.0.jar +0 -0
  24. quarchpy/connection_specific/QPS/qps_lib/jaxb-runtime-3.0.0.jar +0 -0
  25. quarchpy/connection_specific/QPS/qps_lib/qis-1.39.jar +0 -0
  26. quarchpy/connection_specific/QPS/qps_lib/txw2-3.0.0.jar +0 -0
  27. quarchpy/connection_specific/QPS/scriptCommands.txt +2 -2
  28. quarchpy/connection_specific/__pycache__/StreamChannels.cpython-311.pyc +0 -0
  29. quarchpy/connection_specific/__pycache__/__init__.cpython-311.pyc +0 -0
  30. quarchpy/connection_specific/__pycache__/connection_QIS.cpython-311.pyc +0 -0
  31. quarchpy/connection_specific/__pycache__/connection_QPS.cpython-311.pyc +0 -0
  32. quarchpy/connection_specific/__pycache__/connection_ReST.cpython-311.pyc +0 -0
  33. quarchpy/connection_specific/__pycache__/connection_Serial.cpython-311.pyc +0 -0
  34. quarchpy/connection_specific/__pycache__/connection_TCP.cpython-311.pyc +0 -0
  35. quarchpy/connection_specific/__pycache__/connection_Telnet.cpython-311.pyc +0 -0
  36. quarchpy/connection_specific/__pycache__/connection_USB.cpython-311.pyc +0 -0
  37. quarchpy/connection_specific/__pycache__/connection_mDNS.cpython-311.pyc +0 -0
  38. quarchpy/connection_specific/connection_QIS.py +246 -331
  39. quarchpy/connection_specific/connection_QPS.py +1 -1
  40. quarchpy/connection_specific/connection_ReST.py +26 -16
  41. quarchpy/connection_specific/connection_TCP.py +1 -1
  42. quarchpy/connection_specific/connection_mDNS.py +46 -0
  43. quarchpy/connection_specific/serial/__pycache__/__init__.cpython-311.pyc +0 -0
  44. quarchpy/connection_specific/serial/__pycache__/serialutil.cpython-311.pyc +0 -0
  45. quarchpy/connection_specific/serial/__pycache__/serialwin32.cpython-311.pyc +0 -0
  46. quarchpy/connection_specific/serial/__pycache__/win32.cpython-311.pyc +0 -0
  47. quarchpy/connection_specific/serial/tools/__pycache__/__init__.cpython-311.pyc +0 -0
  48. quarchpy/connection_specific/serial/tools/__pycache__/list_ports.cpython-311.pyc +0 -0
  49. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_common.cpython-311.pyc +0 -0
  50. quarchpy/connection_specific/serial/tools/__pycache__/list_ports_windows.cpython-311.pyc +0 -0
  51. quarchpy/debug/__pycache__/SystemTest.cpython-311.pyc +0 -0
  52. quarchpy/debug/__pycache__/__init__.cpython-311.pyc +0 -0
  53. quarchpy/debug/__pycache__/module_debug.cpython-311.pyc +0 -0
  54. quarchpy/debug/__pycache__/simple_terminal.cpython-311.pyc +0 -0
  55. quarchpy/debug/__pycache__/upgrade_quarchpy.cpython-311.pyc +0 -0
  56. quarchpy/debug/__pycache__/versionCompare.cpython-311.pyc +0 -0
  57. quarchpy/device/__pycache__/__init__.cpython-311.pyc +0 -0
  58. quarchpy/device/__pycache__/device.cpython-311.pyc +0 -0
  59. quarchpy/device/__pycache__/quarchArray.cpython-311.pyc +0 -0
  60. quarchpy/device/__pycache__/quarchPPM.cpython-311.pyc +0 -0
  61. quarchpy/device/__pycache__/quarchQPS.cpython-311.pyc +0 -0
  62. quarchpy/device/__pycache__/scanDevices.cpython-311.pyc +0 -0
  63. quarchpy/device/device.py +2 -0
  64. quarchpy/device/quarchPPM.py +2 -2
  65. quarchpy/device/quarchQPS.py +95 -86
  66. quarchpy/device/scanDevices.py +13 -3
  67. quarchpy/disk_test/__pycache__/AbsDiskFinder.cpython-311.pyc +0 -0
  68. quarchpy/disk_test/__pycache__/DiskTargetSelection.cpython-311.pyc +0 -0
  69. quarchpy/disk_test/__pycache__/__init__.cpython-311.pyc +0 -0
  70. quarchpy/disk_test/__pycache__/iometerDiskFinder.cpython-311.pyc +0 -0
  71. quarchpy/docs/CHANGES.rst +11 -1
  72. quarchpy/docs/_build/doctrees/CHANGES.doctree +0 -0
  73. quarchpy/docs/_build/doctrees/environment.pickle +0 -0
  74. quarchpy/docs/_build/doctrees/index.doctree +0 -0
  75. quarchpy/docs/_build/doctrees/readme.doctree +0 -0
  76. quarchpy/docs/_build/doctrees/source/changelog.doctree +0 -0
  77. quarchpy/docs/_build/doctrees/source/licenses.doctree +0 -0
  78. quarchpy/docs/_build/doctrees/source/modules.doctree +0 -0
  79. quarchpy/docs/_build/doctrees/source/quarchpy.calibration.doctree +0 -0
  80. quarchpy/docs/_build/doctrees/source/quarchpy.config_files.doctree +0 -0
  81. quarchpy/docs/_build/doctrees/source/quarchpy.connection_specific.doctree +0 -0
  82. quarchpy/docs/_build/doctrees/source/quarchpy.debug.doctree +0 -0
  83. quarchpy/docs/_build/doctrees/source/quarchpy.device.doctree +0 -0
  84. quarchpy/docs/_build/doctrees/source/quarchpy.disk_test.doctree +0 -0
  85. quarchpy/docs/_build/doctrees/source/quarchpy.doctree +0 -0
  86. quarchpy/docs/_build/doctrees/source/quarchpy.fio.doctree +0 -0
  87. quarchpy/docs/_build/doctrees/source/quarchpy.iometer.doctree +0 -0
  88. quarchpy/docs/_build/doctrees/source/quarchpy.qis.doctree +0 -0
  89. quarchpy/docs/_build/doctrees/source/quarchpy.qps.doctree +0 -0
  90. quarchpy/docs/_build/doctrees/source/quarchpy.user_interface.doctree +0 -0
  91. quarchpy/docs/_build/doctrees/source/quarchpy.utilities.doctree +0 -0
  92. quarchpy/docs/_build/doctrees/source/readme.doctree +0 -0
  93. quarchpy/docs/_build/html/.buildinfo +1 -1
  94. quarchpy/docs/_build/html/CHANGES.html +198 -156
  95. quarchpy/docs/_build/html/_sources/CHANGES.rst.txt +30 -0
  96. quarchpy/docs/_build/html/_static/alabaster.css +3 -1
  97. quarchpy/docs/_build/html/_static/basic.css +47 -27
  98. quarchpy/docs/_build/html/_static/doctools.js +107 -274
  99. quarchpy/docs/_build/html/_static/documentation_options.js +5 -4
  100. quarchpy/docs/_build/html/_static/language_data.js +2 -100
  101. quarchpy/docs/_build/html/_static/pygments.css +1 -0
  102. quarchpy/docs/_build/html/_static/searchtools.js +440 -395
  103. quarchpy/docs/_build/html/_static/sphinx_highlight.js +154 -0
  104. quarchpy/docs/_build/html/genindex.html +263 -87
  105. quarchpy/docs/_build/html/index.html +68 -63
  106. quarchpy/docs/_build/html/objects.inv +0 -0
  107. quarchpy/docs/_build/html/py-modindex.html +9 -11
  108. quarchpy/docs/_build/html/readme.html +26 -27
  109. quarchpy/docs/_build/html/search.html +8 -10
  110. quarchpy/docs/_build/html/searchindex.js +1 -1
  111. quarchpy/docs/_build/html/source/changelog.html +249 -201
  112. quarchpy/docs/_build/html/source/licenses.html +23 -24
  113. quarchpy/docs/_build/html/source/modules.html +24 -17
  114. quarchpy/docs/_build/html/source/quarchpy.calibration.html +44 -45
  115. quarchpy/docs/_build/html/source/quarchpy.config_files.html +25 -26
  116. quarchpy/docs/_build/html/source/quarchpy.connection_specific.html +239 -133
  117. quarchpy/docs/_build/html/source/quarchpy.debug.html +57 -54
  118. quarchpy/docs/_build/html/source/quarchpy.device.html +245 -211
  119. quarchpy/docs/_build/html/source/quarchpy.disk_test.html +75 -76
  120. quarchpy/docs/_build/html/source/quarchpy.fio.html +33 -34
  121. quarchpy/docs/_build/html/source/quarchpy.html +518 -61
  122. quarchpy/docs/_build/html/source/quarchpy.iometer.html +130 -44
  123. quarchpy/docs/_build/html/source/quarchpy.qis.html +420 -44
  124. quarchpy/docs/_build/html/source/quarchpy.qps.html +44 -43
  125. quarchpy/docs/_build/html/source/quarchpy.user_interface.html +70 -120
  126. quarchpy/docs/_build/html/source/quarchpy.utilities.html +39 -40
  127. quarchpy/docs/_build/html/source/readme.html +26 -27
  128. quarchpy/fio/__pycache__/FIO_interface.cpython-311.pyc +0 -0
  129. quarchpy/fio/__pycache__/__init__.cpython-311.pyc +0 -0
  130. quarchpy/fio/__pycache__/fioDiskFinder.cpython-311.pyc +0 -0
  131. quarchpy/iometer/__pycache__/__init__.cpython-311.pyc +0 -0
  132. quarchpy/iometer/__pycache__/gen_iometer_template.cpython-311.pyc +0 -0
  133. quarchpy/iometer/__pycache__/iometerFuncs.cpython-311.pyc +0 -0
  134. quarchpy/qis/__pycache__/StreamHeaderInfo.cpython-311.pyc +0 -0
  135. quarchpy/qis/__pycache__/__init__.cpython-311.pyc +0 -0
  136. quarchpy/qis/__pycache__/qisFuncs.cpython-311.pyc +0 -0
  137. quarchpy/qis/qisFuncs.py +25 -42
  138. quarchpy/qps/__pycache__/__init__.cpython-311.pyc +0 -0
  139. quarchpy/qps/__pycache__/qpsFuncs.cpython-311.pyc +0 -0
  140. quarchpy/qps/qpsFuncs.py +18 -19
  141. quarchpy/user_interface/__pycache__/__init__.cpython-311.pyc +0 -0
  142. quarchpy/user_interface/__pycache__/user_interface.cpython-311.pyc +0 -0
  143. quarchpy/user_interface/user_interface.py +156 -137
  144. quarchpy/utilities/TestCenter.py +11 -16
  145. quarchpy/utilities/Version.py +50 -0
  146. quarchpy/utilities/__pycache__/TestCenter.cpython-311.pyc +0 -0
  147. quarchpy/utilities/__pycache__/TimeValue.cpython-311.pyc +0 -0
  148. quarchpy/utilities/__pycache__/Version.cpython-311.pyc +0 -0
  149. quarchpy/utilities/__pycache__/__init__.cpython-311.pyc +0 -0
  150. quarchpy/venv/.gitignore +2 -0
  151. quarchpy/venv/Include/Python-ast.h +535 -0
  152. quarchpy/venv/Include/Python.h +181 -0
  153. quarchpy/venv/Include/abstract.h +1396 -0
  154. quarchpy/venv/Include/asdl.h +45 -0
  155. quarchpy/venv/Include/ast.h +13 -0
  156. quarchpy/venv/Include/bitset.h +32 -0
  157. quarchpy/venv/Include/boolobject.h +36 -0
  158. quarchpy/venv/Include/bufferobject.h +33 -0
  159. quarchpy/venv/Include/bytearrayobject.h +57 -0
  160. quarchpy/venv/Include/bytes_methods.h +75 -0
  161. quarchpy/venv/Include/bytesobject.h +27 -0
  162. quarchpy/venv/Include/cStringIO.h +73 -0
  163. quarchpy/venv/Include/cellobject.h +28 -0
  164. quarchpy/venv/Include/ceval.h +154 -0
  165. quarchpy/venv/Include/classobject.h +83 -0
  166. quarchpy/venv/Include/cobject.h +89 -0
  167. quarchpy/venv/Include/code.h +116 -0
  168. quarchpy/venv/Include/codecs.h +212 -0
  169. quarchpy/venv/Include/compile.h +40 -0
  170. quarchpy/venv/Include/complexobject.h +66 -0
  171. quarchpy/venv/Include/datetime.h +239 -0
  172. quarchpy/venv/Include/descrobject.h +94 -0
  173. quarchpy/venv/Include/dictobject.h +160 -0
  174. quarchpy/venv/Include/dtoa.h +15 -0
  175. quarchpy/venv/Include/enumobject.h +17 -0
  176. quarchpy/venv/Include/errcode.h +37 -0
  177. quarchpy/venv/Include/eval.h +25 -0
  178. quarchpy/venv/Include/fileobject.h +97 -0
  179. quarchpy/venv/Include/floatobject.h +140 -0
  180. quarchpy/venv/Include/frameobject.h +89 -0
  181. quarchpy/venv/Include/funcobject.h +76 -0
  182. quarchpy/venv/Include/genobject.h +40 -0
  183. quarchpy/venv/Include/graminit.h +87 -0
  184. quarchpy/venv/Include/grammar.h +94 -0
  185. quarchpy/venv/Include/import.h +71 -0
  186. quarchpy/venv/Include/intobject.h +84 -0
  187. quarchpy/venv/Include/intrcheck.h +15 -0
  188. quarchpy/venv/Include/iterobject.h +23 -0
  189. quarchpy/venv/Include/listobject.h +68 -0
  190. quarchpy/venv/Include/longintrepr.h +103 -0
  191. quarchpy/venv/Include/longobject.h +135 -0
  192. quarchpy/venv/Include/marshal.h +25 -0
  193. quarchpy/venv/Include/memoryobject.h +74 -0
  194. quarchpy/venv/Include/metagrammar.h +18 -0
  195. quarchpy/venv/Include/methodobject.h +93 -0
  196. quarchpy/venv/Include/modsupport.h +134 -0
  197. quarchpy/venv/Include/moduleobject.h +24 -0
  198. quarchpy/venv/Include/node.h +41 -0
  199. quarchpy/venv/Include/object.h +1046 -0
  200. quarchpy/venv/Include/objimpl.h +369 -0
  201. quarchpy/venv/Include/opcode.h +171 -0
  202. quarchpy/venv/Include/osdefs.h +63 -0
  203. quarchpy/venv/Include/parsetok.h +64 -0
  204. quarchpy/venv/Include/patchlevel.h +43 -0
  205. quarchpy/venv/Include/pgen.h +18 -0
  206. quarchpy/venv/Include/pgenheaders.h +43 -0
  207. quarchpy/venv/Include/py_curses.h +177 -0
  208. quarchpy/venv/Include/pyarena.h +62 -0
  209. quarchpy/venv/Include/pycapsule.h +56 -0
  210. quarchpy/venv/Include/pyconfig.h +770 -0
  211. quarchpy/venv/Include/pyctype.h +31 -0
  212. quarchpy/venv/Include/pydebug.h +41 -0
  213. quarchpy/venv/Include/pyerrors.h +329 -0
  214. quarchpy/venv/Include/pyexpat.h +50 -0
  215. quarchpy/venv/Include/pyfpe.h +176 -0
  216. quarchpy/venv/Include/pygetopt.h +18 -0
  217. quarchpy/venv/Include/pymacconfig.h +102 -0
  218. quarchpy/venv/Include/pymactoolbox.h +232 -0
  219. quarchpy/venv/Include/pymath.h +214 -0
  220. quarchpy/venv/Include/pymem.h +122 -0
  221. quarchpy/venv/Include/pyport.h +950 -0
  222. quarchpy/venv/Include/pystate.h +200 -0
  223. quarchpy/venv/Include/pystrcmp.h +23 -0
  224. quarchpy/venv/Include/pystrtod.h +45 -0
  225. quarchpy/venv/Include/pythonrun.h +181 -0
  226. quarchpy/venv/Include/pythread.h +41 -0
  227. quarchpy/venv/Include/rangeobject.h +28 -0
  228. quarchpy/venv/Include/setobject.h +99 -0
  229. quarchpy/venv/Include/sliceobject.h +50 -0
  230. quarchpy/venv/Include/stringobject.h +210 -0
  231. quarchpy/venv/Include/structmember.h +99 -0
  232. quarchpy/venv/Include/structseq.h +41 -0
  233. quarchpy/venv/Include/symtable.h +98 -0
  234. quarchpy/venv/Include/sysmodule.h +31 -0
  235. quarchpy/venv/Include/timefuncs.h +26 -0
  236. quarchpy/venv/Include/token.h +85 -0
  237. quarchpy/venv/Include/traceback.h +31 -0
  238. quarchpy/venv/Include/tupleobject.h +61 -0
  239. quarchpy/venv/Include/ucnhash.h +33 -0
  240. quarchpy/venv/Include/unicodeobject.h +1413 -0
  241. quarchpy/venv/Include/warnings.h +23 -0
  242. quarchpy/venv/Include/weakrefobject.h +82 -0
  243. quarchpy/venv/Lib/os.py +742 -0
  244. quarchpy/venv/Lib/os.pyc +0 -0
  245. quarchpy/venv/Lib/site-packages/_virtualenv.pth +1 -0
  246. quarchpy/venv/Lib/site-packages/_virtualenv.py +130 -0
  247. quarchpy/venv/Lib/site-packages/_virtualenv.pyc +0 -0
  248. quarchpy/venv/Lib/site-packages/easy_install.py +5 -0
  249. quarchpy/venv/Lib/site-packages/pip/__init__.py +18 -0
  250. quarchpy/venv/Lib/site-packages/pip/__main__.py +26 -0
  251. quarchpy/venv/Lib/site-packages/pip/_internal/__init__.py +17 -0
  252. quarchpy/venv/Lib/site-packages/pip/_internal/build_env.py +242 -0
  253. quarchpy/venv/Lib/site-packages/pip/_internal/cache.py +346 -0
  254. quarchpy/venv/Lib/site-packages/pip/_internal/cli/__init__.py +4 -0
  255. quarchpy/venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +164 -0
  256. quarchpy/venv/Lib/site-packages/pip/_internal/cli/base_command.py +260 -0
  257. quarchpy/venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +971 -0
  258. quarchpy/venv/Lib/site-packages/pip/_internal/cli/command_context.py +36 -0
  259. quarchpy/venv/Lib/site-packages/pip/_internal/cli/main.py +75 -0
  260. quarchpy/venv/Lib/site-packages/pip/_internal/cli/main_parser.py +96 -0
  261. quarchpy/venv/Lib/site-packages/pip/_internal/cli/parser.py +285 -0
  262. quarchpy/venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +280 -0
  263. quarchpy/venv/Lib/site-packages/pip/_internal/cli/req_command.py +436 -0
  264. quarchpy/venv/Lib/site-packages/pip/_internal/cli/spinners.py +173 -0
  265. quarchpy/venv/Lib/site-packages/pip/_internal/cli/status_codes.py +8 -0
  266. quarchpy/venv/Lib/site-packages/pip/_internal/commands/__init__.py +123 -0
  267. quarchpy/venv/Lib/site-packages/pip/_internal/commands/cache.py +234 -0
  268. quarchpy/venv/Lib/site-packages/pip/_internal/commands/check.py +51 -0
  269. quarchpy/venv/Lib/site-packages/pip/_internal/commands/completion.py +98 -0
  270. quarchpy/venv/Lib/site-packages/pip/_internal/commands/configuration.py +280 -0
  271. quarchpy/venv/Lib/site-packages/pip/_internal/commands/debug.py +230 -0
  272. quarchpy/venv/Lib/site-packages/pip/_internal/commands/download.py +143 -0
  273. quarchpy/venv/Lib/site-packages/pip/_internal/commands/freeze.py +116 -0
  274. quarchpy/venv/Lib/site-packages/pip/_internal/commands/hash.py +63 -0
  275. quarchpy/venv/Lib/site-packages/pip/_internal/commands/help.py +46 -0
  276. quarchpy/venv/Lib/site-packages/pip/_internal/commands/install.py +737 -0
  277. quarchpy/venv/Lib/site-packages/pip/_internal/commands/list.py +327 -0
  278. quarchpy/venv/Lib/site-packages/pip/_internal/commands/search.py +169 -0
  279. quarchpy/venv/Lib/site-packages/pip/_internal/commands/show.py +186 -0
  280. quarchpy/venv/Lib/site-packages/pip/_internal/commands/uninstall.py +95 -0
  281. quarchpy/venv/Lib/site-packages/pip/_internal/commands/wheel.py +198 -0
  282. quarchpy/venv/Lib/site-packages/pip/_internal/configuration.py +407 -0
  283. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/__init__.py +24 -0
  284. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/base.py +46 -0
  285. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/installed.py +25 -0
  286. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/sdist.py +105 -0
  287. quarchpy/venv/Lib/site-packages/pip/_internal/distributions/wheel.py +37 -0
  288. quarchpy/venv/Lib/site-packages/pip/_internal/exceptions.py +391 -0
  289. quarchpy/venv/Lib/site-packages/pip/_internal/index/__init__.py +2 -0
  290. quarchpy/venv/Lib/site-packages/pip/_internal/index/collector.py +667 -0
  291. quarchpy/venv/Lib/site-packages/pip/_internal/index/package_finder.py +1015 -0
  292. quarchpy/venv/Lib/site-packages/pip/_internal/locations.py +193 -0
  293. quarchpy/venv/Lib/site-packages/pip/_internal/main.py +16 -0
  294. quarchpy/venv/Lib/site-packages/pip/_internal/models/__init__.py +2 -0
  295. quarchpy/venv/Lib/site-packages/pip/_internal/models/candidate.py +39 -0
  296. quarchpy/venv/Lib/site-packages/pip/_internal/models/direct_url.py +243 -0
  297. quarchpy/venv/Lib/site-packages/pip/_internal/models/format_control.py +92 -0
  298. quarchpy/venv/Lib/site-packages/pip/_internal/models/index.py +34 -0
  299. quarchpy/venv/Lib/site-packages/pip/_internal/models/link.py +246 -0
  300. quarchpy/venv/Lib/site-packages/pip/_internal/models/scheme.py +31 -0
  301. quarchpy/venv/Lib/site-packages/pip/_internal/models/search_scope.py +135 -0
  302. quarchpy/venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +50 -0
  303. quarchpy/venv/Lib/site-packages/pip/_internal/models/target_python.py +117 -0
  304. quarchpy/venv/Lib/site-packages/pip/_internal/models/wheel.py +78 -0
  305. quarchpy/venv/Lib/site-packages/pip/_internal/network/__init__.py +2 -0
  306. quarchpy/venv/Lib/site-packages/pip/_internal/network/auth.py +310 -0
  307. quarchpy/venv/Lib/site-packages/pip/_internal/network/cache.py +79 -0
  308. quarchpy/venv/Lib/site-packages/pip/_internal/network/download.py +202 -0
  309. quarchpy/venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +231 -0
  310. quarchpy/venv/Lib/site-packages/pip/_internal/network/session.py +428 -0
  311. quarchpy/venv/Lib/site-packages/pip/_internal/network/utils.py +97 -0
  312. quarchpy/venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +53 -0
  313. quarchpy/venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  314. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  315. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +38 -0
  316. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +77 -0
  317. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +47 -0
  318. quarchpy/venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +113 -0
  319. quarchpy/venv/Lib/site-packages/pip/_internal/operations/check.py +155 -0
  320. quarchpy/venv/Lib/site-packages/pip/_internal/operations/freeze.py +277 -0
  321. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  322. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +52 -0
  323. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/legacy.py +130 -0
  324. quarchpy/venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +846 -0
  325. quarchpy/venv/Lib/site-packages/pip/_internal/operations/prepare.py +608 -0
  326. quarchpy/venv/Lib/site-packages/pip/_internal/pyproject.py +196 -0
  327. quarchpy/venv/Lib/site-packages/pip/_internal/req/__init__.py +103 -0
  328. quarchpy/venv/Lib/site-packages/pip/_internal/req/constructors.py +476 -0
  329. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_file.py +574 -0
  330. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_install.py +907 -0
  331. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_set.py +204 -0
  332. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_tracker.py +151 -0
  333. quarchpy/venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +657 -0
  334. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  335. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/base.py +21 -0
  336. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  337. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +473 -0
  338. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  339. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +156 -0
  340. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +604 -0
  341. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +504 -0
  342. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +101 -0
  343. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +174 -0
  344. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +84 -0
  345. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +201 -0
  346. quarchpy/venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +296 -0
  347. quarchpy/venv/Lib/site-packages/pip/_internal/self_outdated_check.py +197 -0
  348. quarchpy/venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  349. quarchpy/venv/Lib/site-packages/pip/_internal/utils/appdirs.py +44 -0
  350. quarchpy/venv/Lib/site-packages/pip/_internal/utils/compat.py +293 -0
  351. quarchpy/venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +178 -0
  352. quarchpy/venv/Lib/site-packages/pip/_internal/utils/datetime.py +14 -0
  353. quarchpy/venv/Lib/site-packages/pip/_internal/utils/deprecation.py +104 -0
  354. quarchpy/venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +126 -0
  355. quarchpy/venv/Lib/site-packages/pip/_internal/utils/distutils_args.py +48 -0
  356. quarchpy/venv/Lib/site-packages/pip/_internal/utils/encoding.py +41 -0
  357. quarchpy/venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +31 -0
  358. quarchpy/venv/Lib/site-packages/pip/_internal/utils/filesystem.py +224 -0
  359. quarchpy/venv/Lib/site-packages/pip/_internal/utils/filetypes.py +26 -0
  360. quarchpy/venv/Lib/site-packages/pip/_internal/utils/glibc.py +98 -0
  361. quarchpy/venv/Lib/site-packages/pip/_internal/utils/hashes.py +169 -0
  362. quarchpy/venv/Lib/site-packages/pip/_internal/utils/inject_securetransport.py +36 -0
  363. quarchpy/venv/Lib/site-packages/pip/_internal/utils/logging.py +399 -0
  364. quarchpy/venv/Lib/site-packages/pip/_internal/utils/misc.py +962 -0
  365. quarchpy/venv/Lib/site-packages/pip/_internal/utils/models.py +44 -0
  366. quarchpy/venv/Lib/site-packages/pip/_internal/utils/packaging.py +95 -0
  367. quarchpy/venv/Lib/site-packages/pip/_internal/utils/parallel.py +107 -0
  368. quarchpy/venv/Lib/site-packages/pip/_internal/utils/pkg_resources.py +44 -0
  369. quarchpy/venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +181 -0
  370. quarchpy/venv/Lib/site-packages/pip/_internal/utils/subprocess.py +299 -0
  371. quarchpy/venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +284 -0
  372. quarchpy/venv/Lib/site-packages/pip/_internal/utils/typing.py +38 -0
  373. quarchpy/venv/Lib/site-packages/pip/_internal/utils/unpacking.py +281 -0
  374. quarchpy/venv/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
  375. quarchpy/venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +119 -0
  376. quarchpy/venv/Lib/site-packages/pip/_internal/utils/wheel.py +225 -0
  377. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
  378. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +123 -0
  379. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/git.py +454 -0
  380. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +172 -0
  381. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/subversion.py +340 -0
  382. quarchpy/venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +735 -0
  383. quarchpy/venv/Lib/site-packages/pip/_internal/wheel_builder.py +362 -0
  384. quarchpy/venv/Lib/site-packages/pip/_vendor/__init__.py +114 -0
  385. quarchpy/venv/Lib/site-packages/pip/_vendor/appdirs.py +633 -0
  386. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +11 -0
  387. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +57 -0
  388. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +133 -0
  389. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +39 -0
  390. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +2 -0
  391. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +146 -0
  392. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +33 -0
  393. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/compat.py +29 -0
  394. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +376 -0
  395. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +80 -0
  396. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +135 -0
  397. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +188 -0
  398. quarchpy/venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +29 -0
  399. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +3 -0
  400. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  401. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/cacert.pem +4606 -0
  402. quarchpy/venv/Lib/site-packages/pip/_vendor/certifi/core.py +60 -0
  403. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/__init__.py +39 -0
  404. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
  405. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/big5prober.py +47 -0
  406. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +233 -0
  407. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +106 -0
  408. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +145 -0
  409. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py +1 -0
  410. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +85 -0
  411. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +88 -0
  412. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/compat.py +34 -0
  413. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +49 -0
  414. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/enums.py +76 -0
  415. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/escprober.py +101 -0
  416. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/escsm.py +246 -0
  417. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +92 -0
  418. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +195 -0
  419. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +47 -0
  420. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +387 -0
  421. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +46 -0
  422. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +283 -0
  423. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +46 -0
  424. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +292 -0
  425. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +325 -0
  426. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +233 -0
  427. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +228 -0
  428. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langcyrillicmodel.py +333 -0
  429. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +225 -0
  430. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +200 -0
  431. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +225 -0
  432. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +199 -0
  433. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +193 -0
  434. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +145 -0
  435. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +91 -0
  436. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +54 -0
  437. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +572 -0
  438. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +132 -0
  439. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +73 -0
  440. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +92 -0
  441. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +286 -0
  442. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +82 -0
  443. quarchpy/venv/Lib/site-packages/pip/_vendor/chardet/version.py +9 -0
  444. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/__init__.py +6 -0
  445. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/ansi.py +102 -0
  446. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +258 -0
  447. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/initialise.py +80 -0
  448. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/win32.py +152 -0
  449. quarchpy/venv/Lib/site-packages/pip/_vendor/colorama/winterm.py +169 -0
  450. quarchpy/venv/Lib/site-packages/pip/_vendor/contextlib2.py +518 -0
  451. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +23 -0
  452. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/__init__.py +6 -0
  453. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/misc.py +41 -0
  454. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/shutil.py +764 -0
  455. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +84 -0
  456. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +786 -0
  457. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/_backport/tarfile.py +2607 -0
  458. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/compat.py +1120 -0
  459. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/database.py +1339 -0
  460. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/index.py +516 -0
  461. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/locators.py +1302 -0
  462. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/manifest.py +393 -0
  463. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/markers.py +131 -0
  464. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/metadata.py +1056 -0
  465. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/resources.py +355 -0
  466. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +419 -0
  467. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  468. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  469. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/util.py +1761 -0
  470. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/version.py +736 -0
  471. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  472. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  473. quarchpy/venv/Lib/site-packages/pip/_vendor/distlib/wheel.py +1018 -0
  474. quarchpy/venv/Lib/site-packages/pip/_vendor/distro.py +1230 -0
  475. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/__init__.py +35 -0
  476. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_ihatexml.py +289 -0
  477. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_inputstream.py +918 -0
  478. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_tokenizer.py +1735 -0
  479. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/__init__.py +5 -0
  480. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/_base.py +40 -0
  481. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_trie/py.py +67 -0
  482. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/_utils.py +159 -0
  483. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/constants.py +2946 -0
  484. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  485. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +29 -0
  486. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/base.py +12 -0
  487. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +73 -0
  488. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/lint.py +93 -0
  489. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +207 -0
  490. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +916 -0
  491. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/filters/whitespace.py +38 -0
  492. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/html5parser.py +2795 -0
  493. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/serializer.py +409 -0
  494. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +30 -0
  495. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +54 -0
  496. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +50 -0
  497. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +88 -0
  498. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/base.py +417 -0
  499. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +239 -0
  500. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +343 -0
  501. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +392 -0
  502. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +154 -0
  503. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/base.py +252 -0
  504. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +43 -0
  505. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +131 -0
  506. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +215 -0
  507. quarchpy/venv/Lib/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +69 -0
  508. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/__init__.py +2 -0
  509. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/codec.py +118 -0
  510. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/compat.py +12 -0
  511. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/core.py +400 -0
  512. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +2050 -0
  513. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/intranges.py +53 -0
  514. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/package_data.py +2 -0
  515. quarchpy/venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +8357 -0
  516. quarchpy/venv/Lib/site-packages/pip/_vendor/ipaddress.py +2420 -0
  517. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +54 -0
  518. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/_version.py +1 -0
  519. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  520. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +191 -0
  521. quarchpy/venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +1063 -0
  522. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/__about__.py +27 -0
  523. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +26 -0
  524. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_compat.py +38 -0
  525. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +86 -0
  526. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/_typing.py +48 -0
  527. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/markers.py +328 -0
  528. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +151 -0
  529. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +864 -0
  530. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/tags.py +852 -0
  531. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/utils.py +67 -0
  532. quarchpy/venv/Lib/site-packages/pip/_vendor/packaging/version.py +556 -0
  533. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/__init__.py +6 -0
  534. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/_in_process.py +280 -0
  535. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/build.py +124 -0
  536. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/check.py +203 -0
  537. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/colorlog.py +115 -0
  538. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/compat.py +34 -0
  539. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/dirtools.py +44 -0
  540. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/envbuild.py +167 -0
  541. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/meta.py +92 -0
  542. quarchpy/venv/Lib/site-packages/pip/_vendor/pep517/wrappers.py +327 -0
  543. quarchpy/venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3296 -0
  544. quarchpy/venv/Lib/site-packages/pip/_vendor/pkg_resources/py31compat.py +23 -0
  545. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/__init__.py +177 -0
  546. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/bar.py +91 -0
  547. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/counter.py +41 -0
  548. quarchpy/venv/Lib/site-packages/pip/_vendor/progress/spinner.py +43 -0
  549. quarchpy/venv/Lib/site-packages/pip/_vendor/pyparsing.py +7107 -0
  550. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/__init__.py +144 -0
  551. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
  552. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +42 -0
  553. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/adapters.py +533 -0
  554. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/api.py +161 -0
  555. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/auth.py +305 -0
  556. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/certs.py +18 -0
  557. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/compat.py +76 -0
  558. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/cookies.py +549 -0
  559. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +123 -0
  560. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/help.py +119 -0
  561. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/hooks.py +34 -0
  562. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/models.py +956 -0
  563. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/packages.py +16 -0
  564. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/sessions.py +781 -0
  565. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +123 -0
  566. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/structures.py +105 -0
  567. quarchpy/venv/Lib/site-packages/pip/_vendor/requests/utils.py +988 -0
  568. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  569. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  570. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  571. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +119 -0
  572. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +37 -0
  573. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +454 -0
  574. quarchpy/venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +149 -0
  575. quarchpy/venv/Lib/site-packages/pip/_vendor/retrying.py +267 -0
  576. quarchpy/venv/Lib/site-packages/pip/_vendor/six.py +982 -0
  577. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/__init__.py +25 -0
  578. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/decoder.py +1057 -0
  579. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/encoder.py +304 -0
  580. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/ordered.py +15 -0
  581. quarchpy/venv/Lib/site-packages/pip/_vendor/toml/tz.py +24 -0
  582. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +85 -0
  583. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +337 -0
  584. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  585. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +535 -0
  586. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1067 -0
  587. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  588. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  589. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  590. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  591. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +396 -0
  592. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  593. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +121 -0
  594. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +509 -0
  595. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
  596. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  597. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +313 -0
  598. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  599. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  600. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +5 -0
  601. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  602. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  603. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1021 -0
  604. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +22 -0
  605. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +160 -0
  606. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +536 -0
  607. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/request.py +170 -0
  608. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/response.py +821 -0
  609. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  610. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +150 -0
  611. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +56 -0
  612. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  613. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +143 -0
  614. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  615. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +601 -0
  616. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +474 -0
  617. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  618. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +268 -0
  619. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +430 -0
  620. quarchpy/venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +153 -0
  621. quarchpy/venv/Lib/site-packages/pip/_vendor/vendor.txt +24 -0
  622. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
  623. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/labels.py +231 -0
  624. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
  625. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/tests.py +153 -0
  626. quarchpy/venv/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
  627. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/INSTALLER +1 -0
  628. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/LICENSE.txt +20 -0
  629. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/METADATA +94 -0
  630. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/RECORD +812 -0
  631. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/WHEEL +6 -0
  632. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/entry_points.txt +5 -0
  633. quarchpy/venv/Lib/site-packages/pip-20.3.4.dist-info/top_level.txt +1 -0
  634. quarchpy/venv/Lib/site-packages/pip-20.3.4.virtualenv +0 -0
  635. quarchpy/venv/Lib/site-packages/pkg_resources/__init__.py +3296 -0
  636. quarchpy/venv/Lib/site-packages/pkg_resources/__init__.pyc +0 -0
  637. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  638. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/__init__.pyc +0 -0
  639. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/appdirs.py +608 -0
  640. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/appdirs.pyc +0 -0
  641. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__about__.py +21 -0
  642. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__about__.pyc +0 -0
  643. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.py +14 -0
  644. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/__init__.pyc +0 -0
  645. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_compat.py +30 -0
  646. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_compat.pyc +0 -0
  647. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.py +68 -0
  648. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/_structures.pyc +0 -0
  649. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/markers.py +301 -0
  650. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/markers.pyc +0 -0
  651. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/requirements.py +127 -0
  652. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/requirements.pyc +0 -0
  653. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/specifiers.py +774 -0
  654. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/specifiers.pyc +0 -0
  655. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/utils.py +14 -0
  656. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/version.py +393 -0
  657. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/packaging/version.pyc +0 -0
  658. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.py +5742 -0
  659. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/pyparsing.pyc +0 -0
  660. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/six.py +868 -0
  661. quarchpy/venv/Lib/site-packages/pkg_resources/_vendor/six.pyc +0 -0
  662. quarchpy/venv/Lib/site-packages/pkg_resources/extern/__init__.py +73 -0
  663. quarchpy/venv/Lib/site-packages/pkg_resources/extern/__init__.pyc +0 -0
  664. quarchpy/venv/Lib/site-packages/pkg_resources/py31compat.py +23 -0
  665. quarchpy/venv/Lib/site-packages/pkg_resources/py31compat.pyc +0 -0
  666. quarchpy/venv/Lib/site-packages/setuptools/__init__.py +245 -0
  667. quarchpy/venv/Lib/site-packages/setuptools/_deprecation_warning.py +7 -0
  668. quarchpy/venv/Lib/site-packages/setuptools/_imp.py +73 -0
  669. quarchpy/venv/Lib/site-packages/setuptools/_vendor/__init__.py +0 -0
  670. quarchpy/venv/Lib/site-packages/setuptools/_vendor/ordered_set.py +488 -0
  671. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/__about__.py +27 -0
  672. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +26 -0
  673. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/_compat.py +31 -0
  674. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +68 -0
  675. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/markers.py +296 -0
  676. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +138 -0
  677. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +749 -0
  678. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/tags.py +404 -0
  679. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/utils.py +57 -0
  680. quarchpy/venv/Lib/site-packages/setuptools/_vendor/packaging/version.py +420 -0
  681. quarchpy/venv/Lib/site-packages/setuptools/_vendor/pyparsing.py +5742 -0
  682. quarchpy/venv/Lib/site-packages/setuptools/_vendor/six.py +868 -0
  683. quarchpy/venv/Lib/site-packages/setuptools/archive_util.py +173 -0
  684. quarchpy/venv/Lib/site-packages/setuptools/build_meta.py +264 -0
  685. quarchpy/venv/Lib/site-packages/setuptools/cli-32.exe +0 -0
  686. quarchpy/venv/Lib/site-packages/setuptools/cli-64.exe +0 -0
  687. quarchpy/venv/Lib/site-packages/setuptools/cli.exe +0 -0
  688. quarchpy/venv/Lib/site-packages/setuptools/command/__init__.py +17 -0
  689. quarchpy/venv/Lib/site-packages/setuptools/command/alias.py +80 -0
  690. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_egg.py +502 -0
  691. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_rpm.py +43 -0
  692. quarchpy/venv/Lib/site-packages/setuptools/command/bdist_wininst.py +21 -0
  693. quarchpy/venv/Lib/site-packages/setuptools/command/build_clib.py +98 -0
  694. quarchpy/venv/Lib/site-packages/setuptools/command/build_ext.py +327 -0
  695. quarchpy/venv/Lib/site-packages/setuptools/command/build_py.py +270 -0
  696. quarchpy/venv/Lib/site-packages/setuptools/command/develop.py +221 -0
  697. quarchpy/venv/Lib/site-packages/setuptools/command/dist_info.py +36 -0
  698. quarchpy/venv/Lib/site-packages/setuptools/command/easy_install.py +2347 -0
  699. quarchpy/venv/Lib/site-packages/setuptools/command/egg_info.py +717 -0
  700. quarchpy/venv/Lib/site-packages/setuptools/command/install.py +125 -0
  701. quarchpy/venv/Lib/site-packages/setuptools/command/install_egg_info.py +62 -0
  702. quarchpy/venv/Lib/site-packages/setuptools/command/install_lib.py +121 -0
  703. quarchpy/venv/Lib/site-packages/setuptools/command/install_scripts.py +65 -0
  704. quarchpy/venv/Lib/site-packages/setuptools/command/launcher manifest.xml +15 -0
  705. quarchpy/venv/Lib/site-packages/setuptools/command/py36compat.py +136 -0
  706. quarchpy/venv/Lib/site-packages/setuptools/command/register.py +18 -0
  707. quarchpy/venv/Lib/site-packages/setuptools/command/rotate.py +66 -0
  708. quarchpy/venv/Lib/site-packages/setuptools/command/saveopts.py +22 -0
  709. quarchpy/venv/Lib/site-packages/setuptools/command/sdist.py +252 -0
  710. quarchpy/venv/Lib/site-packages/setuptools/command/setopt.py +149 -0
  711. quarchpy/venv/Lib/site-packages/setuptools/command/test.py +279 -0
  712. quarchpy/venv/Lib/site-packages/setuptools/command/upload.py +17 -0
  713. quarchpy/venv/Lib/site-packages/setuptools/command/upload_docs.py +206 -0
  714. quarchpy/venv/Lib/site-packages/setuptools/config.py +659 -0
  715. quarchpy/venv/Lib/site-packages/setuptools/dep_util.py +23 -0
  716. quarchpy/venv/Lib/site-packages/setuptools/depends.py +176 -0
  717. quarchpy/venv/Lib/site-packages/setuptools/dist.py +1274 -0
  718. quarchpy/venv/Lib/site-packages/setuptools/errors.py +16 -0
  719. quarchpy/venv/Lib/site-packages/setuptools/extension.py +57 -0
  720. quarchpy/venv/Lib/site-packages/setuptools/extern/__init__.py +73 -0
  721. quarchpy/venv/Lib/site-packages/setuptools/glob.py +174 -0
  722. quarchpy/venv/Lib/site-packages/setuptools/gui-32.exe +0 -0
  723. quarchpy/venv/Lib/site-packages/setuptools/gui-64.exe +0 -0
  724. quarchpy/venv/Lib/site-packages/setuptools/gui.exe +0 -0
  725. quarchpy/venv/Lib/site-packages/setuptools/installer.py +150 -0
  726. quarchpy/venv/Lib/site-packages/setuptools/launch.py +35 -0
  727. quarchpy/venv/Lib/site-packages/setuptools/lib2to3_ex.py +62 -0
  728. quarchpy/venv/Lib/site-packages/setuptools/monkey.py +179 -0
  729. quarchpy/venv/Lib/site-packages/setuptools/msvc.py +1679 -0
  730. quarchpy/venv/Lib/site-packages/setuptools/namespaces.py +107 -0
  731. quarchpy/venv/Lib/site-packages/setuptools/package_index.py +1136 -0
  732. quarchpy/venv/Lib/site-packages/setuptools/py27compat.py +60 -0
  733. quarchpy/venv/Lib/site-packages/setuptools/py31compat.py +32 -0
  734. quarchpy/venv/Lib/site-packages/setuptools/py33compat.py +59 -0
  735. quarchpy/venv/Lib/site-packages/setuptools/py34compat.py +13 -0
  736. quarchpy/venv/Lib/site-packages/setuptools/sandbox.py +491 -0
  737. quarchpy/venv/Lib/site-packages/setuptools/script (dev).tmpl +6 -0
  738. quarchpy/venv/Lib/site-packages/setuptools/script.tmpl +3 -0
  739. quarchpy/venv/Lib/site-packages/setuptools/site-patch.py +74 -0
  740. quarchpy/venv/Lib/site-packages/setuptools/ssl_support.py +260 -0
  741. quarchpy/venv/Lib/site-packages/setuptools/unicode_utils.py +44 -0
  742. quarchpy/venv/Lib/site-packages/setuptools/version.py +6 -0
  743. quarchpy/venv/Lib/site-packages/setuptools/wheel.py +220 -0
  744. quarchpy/venv/Lib/site-packages/setuptools/windows_support.py +29 -0
  745. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/INSTALLER +1 -0
  746. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/LICENSE +19 -0
  747. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/METADATA +86 -0
  748. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/RECORD +207 -0
  749. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/WHEEL +6 -0
  750. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/dependency_links.txt +2 -0
  751. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/entry_points.txt +69 -0
  752. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/top_level.txt +3 -0
  753. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.dist-info/zip-safe +1 -0
  754. quarchpy/venv/Lib/site-packages/setuptools-44.1.1.virtualenv +0 -0
  755. quarchpy/venv/Lib/site-packages/wheel/__init__.py +1 -0
  756. quarchpy/venv/Lib/site-packages/wheel/__main__.py +19 -0
  757. quarchpy/venv/Lib/site-packages/wheel/bdist_wheel.py +492 -0
  758. quarchpy/venv/Lib/site-packages/wheel/cli/__init__.py +88 -0
  759. quarchpy/venv/Lib/site-packages/wheel/cli/convert.py +269 -0
  760. quarchpy/venv/Lib/site-packages/wheel/cli/pack.py +82 -0
  761. quarchpy/venv/Lib/site-packages/wheel/cli/unpack.py +25 -0
  762. quarchpy/venv/Lib/site-packages/wheel/macosx_libfile.py +428 -0
  763. quarchpy/venv/Lib/site-packages/wheel/metadata.py +133 -0
  764. quarchpy/venv/Lib/site-packages/wheel/pkginfo.py +43 -0
  765. quarchpy/venv/Lib/site-packages/wheel/util.py +46 -0
  766. quarchpy/venv/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  767. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  768. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/_typing.py +48 -0
  769. quarchpy/venv/Lib/site-packages/wheel/vendored/packaging/tags.py +866 -0
  770. quarchpy/venv/Lib/site-packages/wheel/wheelfile.py +181 -0
  771. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/INSTALLER +1 -0
  772. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/LICENSE.txt +22 -0
  773. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/METADATA +69 -0
  774. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/RECORD +49 -0
  775. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/WHEEL +6 -0
  776. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/entry_points.txt +6 -0
  777. quarchpy/venv/Lib/site-packages/wheel-0.37.1.dist-info/top_level.txt +1 -0
  778. quarchpy/venv/Lib/site-packages/wheel-0.37.1.virtualenv +0 -0
  779. quarchpy/venv/Lib/site.py +190 -0
  780. quarchpy/venv/Lib/site.pyc +0 -0
  781. quarchpy/venv/Scripts/activate +83 -0
  782. quarchpy/venv/Scripts/activate.bat +39 -0
  783. quarchpy/venv/Scripts/activate.fish +100 -0
  784. quarchpy/venv/Scripts/activate.nu +41 -0
  785. quarchpy/venv/Scripts/activate.ps1 +60 -0
  786. quarchpy/venv/Scripts/activate_this.py +32 -0
  787. quarchpy/venv/Scripts/deactivate.bat +19 -0
  788. quarchpy/venv/Scripts/deactivate.nu +11 -0
  789. quarchpy/venv/Scripts/easy_install-2.7.exe +0 -0
  790. quarchpy/venv/Scripts/easy_install.exe +0 -0
  791. quarchpy/venv/Scripts/easy_install2.7.exe +0 -0
  792. quarchpy/venv/Scripts/easy_install2.exe +0 -0
  793. quarchpy/venv/Scripts/pip-2.7.exe +0 -0
  794. quarchpy/venv/Scripts/pip.exe +0 -0
  795. quarchpy/venv/Scripts/pip2.7.exe +0 -0
  796. quarchpy/venv/Scripts/pip2.exe +0 -0
  797. quarchpy/venv/Scripts/pydoc.bat +1 -0
  798. quarchpy/venv/Scripts/python.exe +0 -0
  799. quarchpy/venv/Scripts/python27.dll +0 -0
  800. quarchpy/venv/Scripts/pythonw.exe +0 -0
  801. quarchpy/venv/Scripts/wheel-2.7.exe +0 -0
  802. quarchpy/venv/Scripts/wheel.exe +0 -0
  803. quarchpy/venv/Scripts/wheel2.7.exe +0 -0
  804. quarchpy/venv/Scripts/wheel2.exe +0 -0
  805. quarchpy/venv/libs/_bsddb.lib +0 -0
  806. quarchpy/venv/libs/_ctypes.lib +0 -0
  807. quarchpy/venv/libs/_ctypes_test.lib +0 -0
  808. quarchpy/venv/libs/_elementtree.lib +0 -0
  809. quarchpy/venv/libs/_hashlib.lib +0 -0
  810. quarchpy/venv/libs/_msi.lib +0 -0
  811. quarchpy/venv/libs/_multiprocessing.lib +0 -0
  812. quarchpy/venv/libs/_socket.lib +0 -0
  813. quarchpy/venv/libs/_sqlite3.lib +0 -0
  814. quarchpy/venv/libs/_ssl.lib +0 -0
  815. quarchpy/venv/libs/_testcapi.lib +0 -0
  816. quarchpy/venv/libs/_tkinter.lib +0 -0
  817. quarchpy/venv/libs/bz2.lib +0 -0
  818. quarchpy/venv/libs/libpython27.a +0 -0
  819. quarchpy/venv/libs/pyexpat.lib +0 -0
  820. quarchpy/venv/libs/python27.lib +0 -0
  821. quarchpy/venv/libs/select.lib +0 -0
  822. quarchpy/venv/libs/unicodedata.lib +0 -0
  823. quarchpy/venv/libs/winsound.lib +0 -0
  824. quarchpy/venv/pyvenv.cfg +8 -0
  825. {quarchpy-2.1.13.dev1.dist-info → quarchpy-2.1.14.dist-info}/METADATA +12 -2
  826. quarchpy-2.1.14.dist-info/RECORD +1216 -0
  827. quarchpy/.idea/inspectionProfiles/Project_Default.xml +0 -26
  828. quarchpy/connection_specific/QPS/qps_lib/QuarchCommon-0.2.4.jar +0 -0
  829. quarchpy/connection_specific/connection_QIS.py.bak +0 -1821
  830. quarchpy/connection_specific/usb_libs/__pycache__/libusb1.cpython-311.pyc +0 -0
  831. quarchpy/connection_specific/usb_libs/__pycache__/usb1.cpython-311.pyc +0 -0
  832. quarchpy/debug/TextScanIP.py +0 -11
  833. quarchpy/device/device.py.bak +0 -504
  834. quarchpy/device/scanDevices.py.bak +0 -661
  835. quarchpy-2.1.13.dev1.dist-info/RECORD +0 -531
  836. {quarchpy-2.1.13.dev1.dist-info → quarchpy-2.1.14.dist-info}/WHEEL +0 -0
  837. {quarchpy-2.1.13.dev1.dist-info → quarchpy-2.1.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,74 @@
1
+ def __boot():
2
+ import sys
3
+ import os
4
+ PYTHONPATH = os.environ.get('PYTHONPATH')
5
+ if PYTHONPATH is None or (sys.platform == 'win32' and not PYTHONPATH):
6
+ PYTHONPATH = []
7
+ else:
8
+ PYTHONPATH = PYTHONPATH.split(os.pathsep)
9
+
10
+ pic = getattr(sys, 'path_importer_cache', {})
11
+ stdpath = sys.path[len(PYTHONPATH):]
12
+ mydir = os.path.dirname(__file__)
13
+
14
+ for item in stdpath:
15
+ if item == mydir or not item:
16
+ continue # skip if current dir. on Windows, or my own directory
17
+ importer = pic.get(item)
18
+ if importer is not None:
19
+ loader = importer.find_module('site')
20
+ if loader is not None:
21
+ # This should actually reload the current module
22
+ loader.load_module('site')
23
+ break
24
+ else:
25
+ try:
26
+ import imp # Avoid import loop in Python 3
27
+ stream, path, descr = imp.find_module('site', [item])
28
+ except ImportError:
29
+ continue
30
+ if stream is None:
31
+ continue
32
+ try:
33
+ # This should actually reload the current module
34
+ imp.load_module('site', stream, path, descr)
35
+ finally:
36
+ stream.close()
37
+ break
38
+ else:
39
+ raise ImportError("Couldn't find the real 'site' module")
40
+
41
+ known_paths = dict([(makepath(item)[1], 1) for item in sys.path]) # 2.2 comp
42
+
43
+ oldpos = getattr(sys, '__egginsert', 0) # save old insertion position
44
+ sys.__egginsert = 0 # and reset the current one
45
+
46
+ for item in PYTHONPATH:
47
+ addsitedir(item)
48
+
49
+ sys.__egginsert += oldpos # restore effective old position
50
+
51
+ d, nd = makepath(stdpath[0])
52
+ insert_at = None
53
+ new_path = []
54
+
55
+ for item in sys.path:
56
+ p, np = makepath(item)
57
+
58
+ if np == nd and insert_at is None:
59
+ # We've hit the first 'system' path entry, so added entries go here
60
+ insert_at = len(new_path)
61
+
62
+ if np in known_paths or insert_at is None:
63
+ new_path.append(item)
64
+ else:
65
+ # new path after the insert point, back-insert it
66
+ new_path.insert(insert_at, item)
67
+ insert_at += 1
68
+
69
+ sys.path[:] = new_path
70
+
71
+
72
+ if __name__ == 'site':
73
+ __boot()
74
+ del __boot
@@ -0,0 +1,260 @@
1
+ import os
2
+ import socket
3
+ import atexit
4
+ import re
5
+ import functools
6
+
7
+ from setuptools.extern.six.moves import urllib, http_client, map, filter
8
+
9
+ from pkg_resources import ResolutionError, ExtractionError
10
+
11
+ try:
12
+ import ssl
13
+ except ImportError:
14
+ ssl = None
15
+
16
+ __all__ = [
17
+ 'VerifyingHTTPSHandler', 'find_ca_bundle', 'is_available', 'cert_paths',
18
+ 'opener_for'
19
+ ]
20
+
21
+ cert_paths = """
22
+ /etc/pki/tls/certs/ca-bundle.crt
23
+ /etc/ssl/certs/ca-certificates.crt
24
+ /usr/share/ssl/certs/ca-bundle.crt
25
+ /usr/local/share/certs/ca-root.crt
26
+ /etc/ssl/cert.pem
27
+ /System/Library/OpenSSL/certs/cert.pem
28
+ /usr/local/share/certs/ca-root-nss.crt
29
+ /etc/ssl/ca-bundle.pem
30
+ """.strip().split()
31
+
32
+ try:
33
+ HTTPSHandler = urllib.request.HTTPSHandler
34
+ HTTPSConnection = http_client.HTTPSConnection
35
+ except AttributeError:
36
+ HTTPSHandler = HTTPSConnection = object
37
+
38
+ is_available = ssl is not None and object not in (HTTPSHandler, HTTPSConnection)
39
+
40
+
41
+ try:
42
+ from ssl import CertificateError, match_hostname
43
+ except ImportError:
44
+ try:
45
+ from backports.ssl_match_hostname import CertificateError
46
+ from backports.ssl_match_hostname import match_hostname
47
+ except ImportError:
48
+ CertificateError = None
49
+ match_hostname = None
50
+
51
+ if not CertificateError:
52
+
53
+ class CertificateError(ValueError):
54
+ pass
55
+
56
+
57
+ if not match_hostname:
58
+
59
+ def _dnsname_match(dn, hostname, max_wildcards=1):
60
+ """Matching according to RFC 6125, section 6.4.3
61
+
62
+ https://tools.ietf.org/html/rfc6125#section-6.4.3
63
+ """
64
+ pats = []
65
+ if not dn:
66
+ return False
67
+
68
+ # Ported from python3-syntax:
69
+ # leftmost, *remainder = dn.split(r'.')
70
+ parts = dn.split(r'.')
71
+ leftmost = parts[0]
72
+ remainder = parts[1:]
73
+
74
+ wildcards = leftmost.count('*')
75
+ if wildcards > max_wildcards:
76
+ # Issue #17980: avoid denials of service by refusing more
77
+ # than one wildcard per fragment. A survey of established
78
+ # policy among SSL implementations showed it to be a
79
+ # reasonable choice.
80
+ raise CertificateError(
81
+ "too many wildcards in certificate DNS name: " + repr(dn))
82
+
83
+ # speed up common case w/o wildcards
84
+ if not wildcards:
85
+ return dn.lower() == hostname.lower()
86
+
87
+ # RFC 6125, section 6.4.3, subitem 1.
88
+ # The client SHOULD NOT attempt to match a presented identifier in which
89
+ # the wildcard character comprises a label other than the left-most label.
90
+ if leftmost == '*':
91
+ # When '*' is a fragment by itself, it matches a non-empty dotless
92
+ # fragment.
93
+ pats.append('[^.]+')
94
+ elif leftmost.startswith('xn--') or hostname.startswith('xn--'):
95
+ # RFC 6125, section 6.4.3, subitem 3.
96
+ # The client SHOULD NOT attempt to match a presented identifier
97
+ # where the wildcard character is embedded within an A-label or
98
+ # U-label of an internationalized domain name.
99
+ pats.append(re.escape(leftmost))
100
+ else:
101
+ # Otherwise, '*' matches any dotless string, e.g. www*
102
+ pats.append(re.escape(leftmost).replace(r'\*', '[^.]*'))
103
+
104
+ # add the remaining fragments, ignore any wildcards
105
+ for frag in remainder:
106
+ pats.append(re.escape(frag))
107
+
108
+ pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE)
109
+ return pat.match(hostname)
110
+
111
+ def match_hostname(cert, hostname):
112
+ """Verify that *cert* (in decoded format as returned by
113
+ SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125
114
+ rules are followed, but IP addresses are not accepted for *hostname*.
115
+
116
+ CertificateError is raised on failure. On success, the function
117
+ returns nothing.
118
+ """
119
+ if not cert:
120
+ raise ValueError("empty or no certificate")
121
+ dnsnames = []
122
+ san = cert.get('subjectAltName', ())
123
+ for key, value in san:
124
+ if key == 'DNS':
125
+ if _dnsname_match(value, hostname):
126
+ return
127
+ dnsnames.append(value)
128
+ if not dnsnames:
129
+ # The subject is only checked when there is no dNSName entry
130
+ # in subjectAltName
131
+ for sub in cert.get('subject', ()):
132
+ for key, value in sub:
133
+ # XXX according to RFC 2818, the most specific Common Name
134
+ # must be used.
135
+ if key == 'commonName':
136
+ if _dnsname_match(value, hostname):
137
+ return
138
+ dnsnames.append(value)
139
+ if len(dnsnames) > 1:
140
+ raise CertificateError("hostname %r "
141
+ "doesn't match either of %s"
142
+ % (hostname, ', '.join(map(repr, dnsnames))))
143
+ elif len(dnsnames) == 1:
144
+ raise CertificateError("hostname %r "
145
+ "doesn't match %r"
146
+ % (hostname, dnsnames[0]))
147
+ else:
148
+ raise CertificateError("no appropriate commonName or "
149
+ "subjectAltName fields were found")
150
+
151
+
152
+ class VerifyingHTTPSHandler(HTTPSHandler):
153
+ """Simple verifying handler: no auth, subclasses, timeouts, etc."""
154
+
155
+ def __init__(self, ca_bundle):
156
+ self.ca_bundle = ca_bundle
157
+ HTTPSHandler.__init__(self)
158
+
159
+ def https_open(self, req):
160
+ return self.do_open(
161
+ lambda host, **kw: VerifyingHTTPSConn(host, self.ca_bundle, **kw), req
162
+ )
163
+
164
+
165
+ class VerifyingHTTPSConn(HTTPSConnection):
166
+ """Simple verifying connection: no auth, subclasses, timeouts, etc."""
167
+
168
+ def __init__(self, host, ca_bundle, **kw):
169
+ HTTPSConnection.__init__(self, host, **kw)
170
+ self.ca_bundle = ca_bundle
171
+
172
+ def connect(self):
173
+ sock = socket.create_connection(
174
+ (self.host, self.port), getattr(self, 'source_address', None)
175
+ )
176
+
177
+ # Handle the socket if a (proxy) tunnel is present
178
+ if hasattr(self, '_tunnel') and getattr(self, '_tunnel_host', None):
179
+ self.sock = sock
180
+ self._tunnel()
181
+ # http://bugs.python.org/issue7776: Python>=3.4.1 and >=2.7.7
182
+ # change self.host to mean the proxy server host when tunneling is
183
+ # being used. Adapt, since we are interested in the destination
184
+ # host for the match_hostname() comparison.
185
+ actual_host = self._tunnel_host
186
+ else:
187
+ actual_host = self.host
188
+
189
+ if hasattr(ssl, 'create_default_context'):
190
+ ctx = ssl.create_default_context(cafile=self.ca_bundle)
191
+ self.sock = ctx.wrap_socket(sock, server_hostname=actual_host)
192
+ else:
193
+ # This is for python < 2.7.9 and < 3.4?
194
+ self.sock = ssl.wrap_socket(
195
+ sock, cert_reqs=ssl.CERT_REQUIRED, ca_certs=self.ca_bundle
196
+ )
197
+ try:
198
+ match_hostname(self.sock.getpeercert(), actual_host)
199
+ except CertificateError:
200
+ self.sock.shutdown(socket.SHUT_RDWR)
201
+ self.sock.close()
202
+ raise
203
+
204
+
205
+ def opener_for(ca_bundle=None):
206
+ """Get a urlopen() replacement that uses ca_bundle for verification"""
207
+ return urllib.request.build_opener(
208
+ VerifyingHTTPSHandler(ca_bundle or find_ca_bundle())
209
+ ).open
210
+
211
+
212
+ # from jaraco.functools
213
+ def once(func):
214
+ @functools.wraps(func)
215
+ def wrapper(*args, **kwargs):
216
+ if not hasattr(func, 'always_returns'):
217
+ func.always_returns = func(*args, **kwargs)
218
+ return func.always_returns
219
+ return wrapper
220
+
221
+
222
+ @once
223
+ def get_win_certfile():
224
+ try:
225
+ import wincertstore
226
+ except ImportError:
227
+ return None
228
+
229
+ class CertFile(wincertstore.CertFile):
230
+ def __init__(self):
231
+ super(CertFile, self).__init__()
232
+ atexit.register(self.close)
233
+
234
+ def close(self):
235
+ try:
236
+ super(CertFile, self).close()
237
+ except OSError:
238
+ pass
239
+
240
+ _wincerts = CertFile()
241
+ _wincerts.addstore('CA')
242
+ _wincerts.addstore('ROOT')
243
+ return _wincerts.name
244
+
245
+
246
+ def find_ca_bundle():
247
+ """Return an existing CA bundle path, or None"""
248
+ extant_cert_paths = filter(os.path.isfile, cert_paths)
249
+ return (
250
+ get_win_certfile()
251
+ or next(extant_cert_paths, None)
252
+ or _certifi_where()
253
+ )
254
+
255
+
256
+ def _certifi_where():
257
+ try:
258
+ return __import__('certifi').where()
259
+ except (ImportError, ResolutionError, ExtractionError):
260
+ pass
@@ -0,0 +1,44 @@
1
+ import unicodedata
2
+ import sys
3
+
4
+ from setuptools.extern import six
5
+
6
+
7
+ # HFS Plus uses decomposed UTF-8
8
+ def decompose(path):
9
+ if isinstance(path, six.text_type):
10
+ return unicodedata.normalize('NFD', path)
11
+ try:
12
+ path = path.decode('utf-8')
13
+ path = unicodedata.normalize('NFD', path)
14
+ path = path.encode('utf-8')
15
+ except UnicodeError:
16
+ pass # Not UTF-8
17
+ return path
18
+
19
+
20
+ def filesys_decode(path):
21
+ """
22
+ Ensure that the given path is decoded,
23
+ NONE when no expected encoding works
24
+ """
25
+
26
+ if isinstance(path, six.text_type):
27
+ return path
28
+
29
+ fs_enc = sys.getfilesystemencoding() or 'utf-8'
30
+ candidates = fs_enc, 'utf-8'
31
+
32
+ for enc in candidates:
33
+ try:
34
+ return path.decode(enc)
35
+ except UnicodeDecodeError:
36
+ continue
37
+
38
+
39
+ def try_encode(string, enc):
40
+ "turn unicode encoding into a functional routine"
41
+ try:
42
+ return string.encode(enc)
43
+ except UnicodeEncodeError:
44
+ return None
@@ -0,0 +1,6 @@
1
+ import pkg_resources
2
+
3
+ try:
4
+ __version__ = pkg_resources.get_distribution('setuptools').version
5
+ except Exception:
6
+ __version__ = 'unknown'
@@ -0,0 +1,220 @@
1
+ """Wheels support."""
2
+
3
+ from distutils.util import get_platform
4
+ from distutils import log
5
+ import email
6
+ import itertools
7
+ import os
8
+ import posixpath
9
+ import re
10
+ import zipfile
11
+
12
+ import pkg_resources
13
+ import setuptools
14
+ from pkg_resources import parse_version
15
+ from setuptools.extern.packaging.tags import sys_tags
16
+ from setuptools.extern.packaging.utils import canonicalize_name
17
+ from setuptools.extern.six import PY3
18
+ from setuptools.command.egg_info import write_requirements
19
+
20
+
21
+ __metaclass__ = type
22
+
23
+
24
+ WHEEL_NAME = re.compile(
25
+ r"""^(?P<project_name>.+?)-(?P<version>\d.*?)
26
+ ((-(?P<build>\d.*?))?-(?P<py_version>.+?)-(?P<abi>.+?)-(?P<platform>.+?)
27
+ )\.whl$""",
28
+ re.VERBOSE).match
29
+
30
+ NAMESPACE_PACKAGE_INIT = '''\
31
+ try:
32
+ __import__('pkg_resources').declare_namespace(__name__)
33
+ except ImportError:
34
+ __path__ = __import__('pkgutil').extend_path(__path__, __name__)
35
+ '''
36
+
37
+
38
+ def unpack(src_dir, dst_dir):
39
+ '''Move everything under `src_dir` to `dst_dir`, and delete the former.'''
40
+ for dirpath, dirnames, filenames in os.walk(src_dir):
41
+ subdir = os.path.relpath(dirpath, src_dir)
42
+ for f in filenames:
43
+ src = os.path.join(dirpath, f)
44
+ dst = os.path.join(dst_dir, subdir, f)
45
+ os.renames(src, dst)
46
+ for n, d in reversed(list(enumerate(dirnames))):
47
+ src = os.path.join(dirpath, d)
48
+ dst = os.path.join(dst_dir, subdir, d)
49
+ if not os.path.exists(dst):
50
+ # Directory does not exist in destination,
51
+ # rename it and prune it from os.walk list.
52
+ os.renames(src, dst)
53
+ del dirnames[n]
54
+ # Cleanup.
55
+ for dirpath, dirnames, filenames in os.walk(src_dir, topdown=True):
56
+ assert not filenames
57
+ os.rmdir(dirpath)
58
+
59
+
60
+ class Wheel:
61
+
62
+ def __init__(self, filename):
63
+ match = WHEEL_NAME(os.path.basename(filename))
64
+ if match is None:
65
+ raise ValueError('invalid wheel name: %r' % filename)
66
+ self.filename = filename
67
+ for k, v in match.groupdict().items():
68
+ setattr(self, k, v)
69
+
70
+ def tags(self):
71
+ '''List tags (py_version, abi, platform) supported by this wheel.'''
72
+ return itertools.product(
73
+ self.py_version.split('.'),
74
+ self.abi.split('.'),
75
+ self.platform.split('.'),
76
+ )
77
+
78
+ def is_compatible(self):
79
+ '''Is the wheel is compatible with the current platform?'''
80
+ supported_tags = set((t.interpreter, t.abi, t.platform) for t in sys_tags())
81
+ return next((True for t in self.tags() if t in supported_tags), False)
82
+
83
+ def egg_name(self):
84
+ return pkg_resources.Distribution(
85
+ project_name=self.project_name, version=self.version,
86
+ platform=(None if self.platform == 'any' else get_platform()),
87
+ ).egg_name() + '.egg'
88
+
89
+ def get_dist_info(self, zf):
90
+ # find the correct name of the .dist-info dir in the wheel file
91
+ for member in zf.namelist():
92
+ dirname = posixpath.dirname(member)
93
+ if (dirname.endswith('.dist-info') and
94
+ canonicalize_name(dirname).startswith(
95
+ canonicalize_name(self.project_name))):
96
+ return dirname
97
+ raise ValueError("unsupported wheel format. .dist-info not found")
98
+
99
+ def install_as_egg(self, destination_eggdir):
100
+ '''Install wheel as an egg directory.'''
101
+ with zipfile.ZipFile(self.filename) as zf:
102
+ self._install_as_egg(destination_eggdir, zf)
103
+
104
+ def _install_as_egg(self, destination_eggdir, zf):
105
+ dist_basename = '%s-%s' % (self.project_name, self.version)
106
+ dist_info = self.get_dist_info(zf)
107
+ dist_data = '%s.data' % dist_basename
108
+ egg_info = os.path.join(destination_eggdir, 'EGG-INFO')
109
+
110
+ self._convert_metadata(zf, destination_eggdir, dist_info, egg_info)
111
+ self._move_data_entries(destination_eggdir, dist_data)
112
+ self._fix_namespace_packages(egg_info, destination_eggdir)
113
+
114
+ @staticmethod
115
+ def _convert_metadata(zf, destination_eggdir, dist_info, egg_info):
116
+ def get_metadata(name):
117
+ with zf.open(posixpath.join(dist_info, name)) as fp:
118
+ value = fp.read().decode('utf-8') if PY3 else fp.read()
119
+ return email.parser.Parser().parsestr(value)
120
+
121
+ wheel_metadata = get_metadata('WHEEL')
122
+ # Check wheel format version is supported.
123
+ wheel_version = parse_version(wheel_metadata.get('Wheel-Version'))
124
+ wheel_v1 = (
125
+ parse_version('1.0') <= wheel_version < parse_version('2.0dev0')
126
+ )
127
+ if not wheel_v1:
128
+ raise ValueError(
129
+ 'unsupported wheel format version: %s' % wheel_version)
130
+ # Extract to target directory.
131
+ os.mkdir(destination_eggdir)
132
+ zf.extractall(destination_eggdir)
133
+ # Convert metadata.
134
+ dist_info = os.path.join(destination_eggdir, dist_info)
135
+ dist = pkg_resources.Distribution.from_location(
136
+ destination_eggdir, dist_info,
137
+ metadata=pkg_resources.PathMetadata(destination_eggdir, dist_info),
138
+ )
139
+
140
+ # Note: Evaluate and strip markers now,
141
+ # as it's difficult to convert back from the syntax:
142
+ # foobar; "linux" in sys_platform and extra == 'test'
143
+ def raw_req(req):
144
+ req.marker = None
145
+ return str(req)
146
+ install_requires = list(sorted(map(raw_req, dist.requires())))
147
+ extras_require = {
148
+ extra: sorted(
149
+ req
150
+ for req in map(raw_req, dist.requires((extra,)))
151
+ if req not in install_requires
152
+ )
153
+ for extra in dist.extras
154
+ }
155
+ os.rename(dist_info, egg_info)
156
+ os.rename(
157
+ os.path.join(egg_info, 'METADATA'),
158
+ os.path.join(egg_info, 'PKG-INFO'),
159
+ )
160
+ setup_dist = setuptools.Distribution(
161
+ attrs=dict(
162
+ install_requires=install_requires,
163
+ extras_require=extras_require,
164
+ ),
165
+ )
166
+ # Temporarily disable info traces.
167
+ log_threshold = log._global_log.threshold
168
+ log.set_threshold(log.WARN)
169
+ try:
170
+ write_requirements(
171
+ setup_dist.get_command_obj('egg_info'),
172
+ None,
173
+ os.path.join(egg_info, 'requires.txt'),
174
+ )
175
+ finally:
176
+ log.set_threshold(log_threshold)
177
+
178
+ @staticmethod
179
+ def _move_data_entries(destination_eggdir, dist_data):
180
+ """Move data entries to their correct location."""
181
+ dist_data = os.path.join(destination_eggdir, dist_data)
182
+ dist_data_scripts = os.path.join(dist_data, 'scripts')
183
+ if os.path.exists(dist_data_scripts):
184
+ egg_info_scripts = os.path.join(
185
+ destination_eggdir, 'EGG-INFO', 'scripts')
186
+ os.mkdir(egg_info_scripts)
187
+ for entry in os.listdir(dist_data_scripts):
188
+ # Remove bytecode, as it's not properly handled
189
+ # during easy_install scripts install phase.
190
+ if entry.endswith('.pyc'):
191
+ os.unlink(os.path.join(dist_data_scripts, entry))
192
+ else:
193
+ os.rename(
194
+ os.path.join(dist_data_scripts, entry),
195
+ os.path.join(egg_info_scripts, entry),
196
+ )
197
+ os.rmdir(dist_data_scripts)
198
+ for subdir in filter(os.path.exists, (
199
+ os.path.join(dist_data, d)
200
+ for d in ('data', 'headers', 'purelib', 'platlib')
201
+ )):
202
+ unpack(subdir, destination_eggdir)
203
+ if os.path.exists(dist_data):
204
+ os.rmdir(dist_data)
205
+
206
+ @staticmethod
207
+ def _fix_namespace_packages(egg_info, destination_eggdir):
208
+ namespace_packages = os.path.join(
209
+ egg_info, 'namespace_packages.txt')
210
+ if os.path.exists(namespace_packages):
211
+ with open(namespace_packages) as fp:
212
+ namespace_packages = fp.read().split()
213
+ for mod in namespace_packages:
214
+ mod_dir = os.path.join(destination_eggdir, *mod.split('.'))
215
+ mod_init = os.path.join(mod_dir, '__init__.py')
216
+ if not os.path.exists(mod_dir):
217
+ os.mkdir(mod_dir)
218
+ if not os.path.exists(mod_init):
219
+ with open(mod_init, 'w') as fp:
220
+ fp.write(NAMESPACE_PACKAGE_INIT)
@@ -0,0 +1,29 @@
1
+ import platform
2
+ import ctypes
3
+
4
+
5
+ def windows_only(func):
6
+ if platform.system() != 'Windows':
7
+ return lambda *args, **kwargs: None
8
+ return func
9
+
10
+
11
+ @windows_only
12
+ def hide_file(path):
13
+ """
14
+ Set the hidden attribute on a file or directory.
15
+
16
+ From http://stackoverflow.com/questions/19622133/
17
+
18
+ `path` must be text.
19
+ """
20
+ __import__('ctypes.wintypes')
21
+ SetFileAttributes = ctypes.windll.kernel32.SetFileAttributesW
22
+ SetFileAttributes.argtypes = ctypes.wintypes.LPWSTR, ctypes.wintypes.DWORD
23
+ SetFileAttributes.restype = ctypes.wintypes.BOOL
24
+
25
+ FILE_ATTRIBUTE_HIDDEN = 0x02
26
+
27
+ ret = SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN)
28
+ if not ret:
29
+ raise ctypes.WinError()
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2016 Jason R Coombs <jaraco@jaraco.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.