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,659 @@
1
+ from __future__ import absolute_import, unicode_literals
2
+ import io
3
+ import os
4
+ import sys
5
+
6
+ import warnings
7
+ import functools
8
+ from collections import defaultdict
9
+ from functools import partial
10
+ from functools import wraps
11
+ from importlib import import_module
12
+
13
+ from distutils.errors import DistutilsOptionError, DistutilsFileError
14
+ from setuptools.extern.packaging.version import LegacyVersion, parse
15
+ from setuptools.extern.packaging.specifiers import SpecifierSet
16
+ from setuptools.extern.six import string_types, PY3
17
+
18
+
19
+ __metaclass__ = type
20
+
21
+
22
+ def read_configuration(
23
+ filepath, find_others=False, ignore_option_errors=False):
24
+ """Read given configuration file and returns options from it as a dict.
25
+
26
+ :param str|unicode filepath: Path to configuration file
27
+ to get options from.
28
+
29
+ :param bool find_others: Whether to search for other configuration files
30
+ which could be on in various places.
31
+
32
+ :param bool ignore_option_errors: Whether to silently ignore
33
+ options, values of which could not be resolved (e.g. due to exceptions
34
+ in directives such as file:, attr:, etc.).
35
+ If False exceptions are propagated as expected.
36
+
37
+ :rtype: dict
38
+ """
39
+ from setuptools.dist import Distribution, _Distribution
40
+
41
+ filepath = os.path.abspath(filepath)
42
+
43
+ if not os.path.isfile(filepath):
44
+ raise DistutilsFileError(
45
+ 'Configuration file %s does not exist.' % filepath)
46
+
47
+ current_directory = os.getcwd()
48
+ os.chdir(os.path.dirname(filepath))
49
+
50
+ try:
51
+ dist = Distribution()
52
+
53
+ filenames = dist.find_config_files() if find_others else []
54
+ if filepath not in filenames:
55
+ filenames.append(filepath)
56
+
57
+ _Distribution.parse_config_files(dist, filenames=filenames)
58
+
59
+ handlers = parse_configuration(
60
+ dist, dist.command_options,
61
+ ignore_option_errors=ignore_option_errors)
62
+
63
+ finally:
64
+ os.chdir(current_directory)
65
+
66
+ return configuration_to_dict(handlers)
67
+
68
+
69
+ def _get_option(target_obj, key):
70
+ """
71
+ Given a target object and option key, get that option from
72
+ the target object, either through a get_{key} method or
73
+ from an attribute directly.
74
+ """
75
+ getter_name = 'get_{key}'.format(**locals())
76
+ by_attribute = functools.partial(getattr, target_obj, key)
77
+ getter = getattr(target_obj, getter_name, by_attribute)
78
+ return getter()
79
+
80
+
81
+ def configuration_to_dict(handlers):
82
+ """Returns configuration data gathered by given handlers as a dict.
83
+
84
+ :param list[ConfigHandler] handlers: Handlers list,
85
+ usually from parse_configuration()
86
+
87
+ :rtype: dict
88
+ """
89
+ config_dict = defaultdict(dict)
90
+
91
+ for handler in handlers:
92
+ for option in handler.set_options:
93
+ value = _get_option(handler.target_obj, option)
94
+ config_dict[handler.section_prefix][option] = value
95
+
96
+ return config_dict
97
+
98
+
99
+ def parse_configuration(
100
+ distribution, command_options, ignore_option_errors=False):
101
+ """Performs additional parsing of configuration options
102
+ for a distribution.
103
+
104
+ Returns a list of used option handlers.
105
+
106
+ :param Distribution distribution:
107
+ :param dict command_options:
108
+ :param bool ignore_option_errors: Whether to silently ignore
109
+ options, values of which could not be resolved (e.g. due to exceptions
110
+ in directives such as file:, attr:, etc.).
111
+ If False exceptions are propagated as expected.
112
+ :rtype: list
113
+ """
114
+ options = ConfigOptionsHandler(
115
+ distribution, command_options, ignore_option_errors)
116
+ options.parse()
117
+
118
+ meta = ConfigMetadataHandler(
119
+ distribution.metadata, command_options, ignore_option_errors,
120
+ distribution.package_dir)
121
+ meta.parse()
122
+
123
+ return meta, options
124
+
125
+
126
+ class ConfigHandler:
127
+ """Handles metadata supplied in configuration files."""
128
+
129
+ section_prefix = None
130
+ """Prefix for config sections handled by this handler.
131
+ Must be provided by class heirs.
132
+
133
+ """
134
+
135
+ aliases = {}
136
+ """Options aliases.
137
+ For compatibility with various packages. E.g.: d2to1 and pbr.
138
+ Note: `-` in keys is replaced with `_` by config parser.
139
+
140
+ """
141
+
142
+ def __init__(self, target_obj, options, ignore_option_errors=False):
143
+ sections = {}
144
+
145
+ section_prefix = self.section_prefix
146
+ for section_name, section_options in options.items():
147
+ if not section_name.startswith(section_prefix):
148
+ continue
149
+
150
+ section_name = section_name.replace(section_prefix, '').strip('.')
151
+ sections[section_name] = section_options
152
+
153
+ self.ignore_option_errors = ignore_option_errors
154
+ self.target_obj = target_obj
155
+ self.sections = sections
156
+ self.set_options = []
157
+
158
+ @property
159
+ def parsers(self):
160
+ """Metadata item name to parser function mapping."""
161
+ raise NotImplementedError(
162
+ '%s must provide .parsers property' % self.__class__.__name__)
163
+
164
+ def __setitem__(self, option_name, value):
165
+ unknown = tuple()
166
+ target_obj = self.target_obj
167
+
168
+ # Translate alias into real name.
169
+ option_name = self.aliases.get(option_name, option_name)
170
+
171
+ current_value = getattr(target_obj, option_name, unknown)
172
+
173
+ if current_value is unknown:
174
+ raise KeyError(option_name)
175
+
176
+ if current_value:
177
+ # Already inhabited. Skipping.
178
+ return
179
+
180
+ skip_option = False
181
+ parser = self.parsers.get(option_name)
182
+ if parser:
183
+ try:
184
+ value = parser(value)
185
+
186
+ except Exception:
187
+ skip_option = True
188
+ if not self.ignore_option_errors:
189
+ raise
190
+
191
+ if skip_option:
192
+ return
193
+
194
+ setter = getattr(target_obj, 'set_%s' % option_name, None)
195
+ if setter is None:
196
+ setattr(target_obj, option_name, value)
197
+ else:
198
+ setter(value)
199
+
200
+ self.set_options.append(option_name)
201
+
202
+ @classmethod
203
+ def _parse_list(cls, value, separator=','):
204
+ """Represents value as a list.
205
+
206
+ Value is split either by separator (defaults to comma) or by lines.
207
+
208
+ :param value:
209
+ :param separator: List items separator character.
210
+ :rtype: list
211
+ """
212
+ if isinstance(value, list): # _get_parser_compound case
213
+ return value
214
+
215
+ if '\n' in value:
216
+ value = value.splitlines()
217
+ else:
218
+ value = value.split(separator)
219
+
220
+ return [chunk.strip() for chunk in value if chunk.strip()]
221
+
222
+ @classmethod
223
+ def _parse_dict(cls, value):
224
+ """Represents value as a dict.
225
+
226
+ :param value:
227
+ :rtype: dict
228
+ """
229
+ separator = '='
230
+ result = {}
231
+ for line in cls._parse_list(value):
232
+ key, sep, val = line.partition(separator)
233
+ if sep != separator:
234
+ raise DistutilsOptionError(
235
+ 'Unable to parse option value to dict: %s' % value)
236
+ result[key.strip()] = val.strip()
237
+
238
+ return result
239
+
240
+ @classmethod
241
+ def _parse_bool(cls, value):
242
+ """Represents value as boolean.
243
+
244
+ :param value:
245
+ :rtype: bool
246
+ """
247
+ value = value.lower()
248
+ return value in ('1', 'true', 'yes')
249
+
250
+ @classmethod
251
+ def _exclude_files_parser(cls, key):
252
+ """Returns a parser function to make sure field inputs
253
+ are not files.
254
+
255
+ Parses a value after getting the key so error messages are
256
+ more informative.
257
+
258
+ :param key:
259
+ :rtype: callable
260
+ """
261
+ def parser(value):
262
+ exclude_directive = 'file:'
263
+ if value.startswith(exclude_directive):
264
+ raise ValueError(
265
+ 'Only strings are accepted for the {0} field, '
266
+ 'files are not accepted'.format(key))
267
+ return value
268
+ return parser
269
+
270
+ @classmethod
271
+ def _parse_file(cls, value):
272
+ """Represents value as a string, allowing including text
273
+ from nearest files using `file:` directive.
274
+
275
+ Directive is sandboxed and won't reach anything outside
276
+ directory with setup.py.
277
+
278
+ Examples:
279
+ file: README.rst, CHANGELOG.md, src/file.txt
280
+
281
+ :param str value:
282
+ :rtype: str
283
+ """
284
+ include_directive = 'file:'
285
+
286
+ if not isinstance(value, string_types):
287
+ return value
288
+
289
+ if not value.startswith(include_directive):
290
+ return value
291
+
292
+ spec = value[len(include_directive):]
293
+ filepaths = (os.path.abspath(path.strip()) for path in spec.split(','))
294
+ return '\n'.join(
295
+ cls._read_file(path)
296
+ for path in filepaths
297
+ if (cls._assert_local(path) or True)
298
+ and os.path.isfile(path)
299
+ )
300
+
301
+ @staticmethod
302
+ def _assert_local(filepath):
303
+ if not filepath.startswith(os.getcwd()):
304
+ raise DistutilsOptionError(
305
+ '`file:` directive can not access %s' % filepath)
306
+
307
+ @staticmethod
308
+ def _read_file(filepath):
309
+ with io.open(filepath, encoding='utf-8') as f:
310
+ return f.read()
311
+
312
+ @classmethod
313
+ def _parse_attr(cls, value, package_dir=None):
314
+ """Represents value as a module attribute.
315
+
316
+ Examples:
317
+ attr: package.attr
318
+ attr: package.module.attr
319
+
320
+ :param str value:
321
+ :rtype: str
322
+ """
323
+ attr_directive = 'attr:'
324
+ if not value.startswith(attr_directive):
325
+ return value
326
+
327
+ attrs_path = value.replace(attr_directive, '').strip().split('.')
328
+ attr_name = attrs_path.pop()
329
+
330
+ module_name = '.'.join(attrs_path)
331
+ module_name = module_name or '__init__'
332
+
333
+ parent_path = os.getcwd()
334
+ if package_dir:
335
+ if attrs_path[0] in package_dir:
336
+ # A custom path was specified for the module we want to import
337
+ custom_path = package_dir[attrs_path[0]]
338
+ parts = custom_path.rsplit('/', 1)
339
+ if len(parts) > 1:
340
+ parent_path = os.path.join(os.getcwd(), parts[0])
341
+ module_name = parts[1]
342
+ else:
343
+ module_name = custom_path
344
+ elif '' in package_dir:
345
+ # A custom parent directory was specified for all root modules
346
+ parent_path = os.path.join(os.getcwd(), package_dir[''])
347
+ sys.path.insert(0, parent_path)
348
+ try:
349
+ module = import_module(module_name)
350
+ value = getattr(module, attr_name)
351
+
352
+ finally:
353
+ sys.path = sys.path[1:]
354
+
355
+ return value
356
+
357
+ @classmethod
358
+ def _get_parser_compound(cls, *parse_methods):
359
+ """Returns parser function to represents value as a list.
360
+
361
+ Parses a value applying given methods one after another.
362
+
363
+ :param parse_methods:
364
+ :rtype: callable
365
+ """
366
+ def parse(value):
367
+ parsed = value
368
+
369
+ for method in parse_methods:
370
+ parsed = method(parsed)
371
+
372
+ return parsed
373
+
374
+ return parse
375
+
376
+ @classmethod
377
+ def _parse_section_to_dict(cls, section_options, values_parser=None):
378
+ """Parses section options into a dictionary.
379
+
380
+ Optionally applies a given parser to values.
381
+
382
+ :param dict section_options:
383
+ :param callable values_parser:
384
+ :rtype: dict
385
+ """
386
+ value = {}
387
+ values_parser = values_parser or (lambda val: val)
388
+ for key, (_, val) in section_options.items():
389
+ value[key] = values_parser(val)
390
+ return value
391
+
392
+ def parse_section(self, section_options):
393
+ """Parses configuration file section.
394
+
395
+ :param dict section_options:
396
+ """
397
+ for (name, (_, value)) in section_options.items():
398
+ try:
399
+ self[name] = value
400
+
401
+ except KeyError:
402
+ pass # Keep silent for a new option may appear anytime.
403
+
404
+ def parse(self):
405
+ """Parses configuration file items from one
406
+ or more related sections.
407
+
408
+ """
409
+ for section_name, section_options in self.sections.items():
410
+
411
+ method_postfix = ''
412
+ if section_name: # [section.option] variant
413
+ method_postfix = '_%s' % section_name
414
+
415
+ section_parser_method = getattr(
416
+ self,
417
+ # Dots in section names are translated into dunderscores.
418
+ ('parse_section%s' % method_postfix).replace('.', '__'),
419
+ None)
420
+
421
+ if section_parser_method is None:
422
+ raise DistutilsOptionError(
423
+ 'Unsupported distribution option section: [%s.%s]' % (
424
+ self.section_prefix, section_name))
425
+
426
+ section_parser_method(section_options)
427
+
428
+ def _deprecated_config_handler(self, func, msg, warning_class):
429
+ """ this function will wrap around parameters that are deprecated
430
+
431
+ :param msg: deprecation message
432
+ :param warning_class: class of warning exception to be raised
433
+ :param func: function to be wrapped around
434
+ """
435
+ @wraps(func)
436
+ def config_handler(*args, **kwargs):
437
+ warnings.warn(msg, warning_class)
438
+ return func(*args, **kwargs)
439
+
440
+ return config_handler
441
+
442
+
443
+ class ConfigMetadataHandler(ConfigHandler):
444
+
445
+ section_prefix = 'metadata'
446
+
447
+ aliases = {
448
+ 'home_page': 'url',
449
+ 'summary': 'description',
450
+ 'classifier': 'classifiers',
451
+ 'platform': 'platforms',
452
+ }
453
+
454
+ strict_mode = False
455
+ """We need to keep it loose, to be partially compatible with
456
+ `pbr` and `d2to1` packages which also uses `metadata` section.
457
+
458
+ """
459
+
460
+ def __init__(self, target_obj, options, ignore_option_errors=False,
461
+ package_dir=None):
462
+ super(ConfigMetadataHandler, self).__init__(target_obj, options,
463
+ ignore_option_errors)
464
+ self.package_dir = package_dir
465
+
466
+ @property
467
+ def parsers(self):
468
+ """Metadata item name to parser function mapping."""
469
+ parse_list = self._parse_list
470
+ parse_file = self._parse_file
471
+ parse_dict = self._parse_dict
472
+ exclude_files_parser = self._exclude_files_parser
473
+
474
+ return {
475
+ 'platforms': parse_list,
476
+ 'keywords': parse_list,
477
+ 'provides': parse_list,
478
+ 'requires': self._deprecated_config_handler(
479
+ parse_list,
480
+ "The requires parameter is deprecated, please use "
481
+ "install_requires for runtime dependencies.",
482
+ DeprecationWarning),
483
+ 'obsoletes': parse_list,
484
+ 'classifiers': self._get_parser_compound(parse_file, parse_list),
485
+ 'license': exclude_files_parser('license'),
486
+ 'license_files': parse_list,
487
+ 'description': parse_file,
488
+ 'long_description': parse_file,
489
+ 'version': self._parse_version,
490
+ 'project_urls': parse_dict,
491
+ }
492
+
493
+ def _parse_version(self, value):
494
+ """Parses `version` option value.
495
+
496
+ :param value:
497
+ :rtype: str
498
+
499
+ """
500
+ version = self._parse_file(value)
501
+
502
+ if version != value:
503
+ version = version.strip()
504
+ # Be strict about versions loaded from file because it's easy to
505
+ # accidentally include newlines and other unintended content
506
+ if isinstance(parse(version), LegacyVersion):
507
+ tmpl = (
508
+ 'Version loaded from {value} does not '
509
+ 'comply with PEP 440: {version}'
510
+ )
511
+ raise DistutilsOptionError(tmpl.format(**locals()))
512
+
513
+ return version
514
+
515
+ version = self._parse_attr(value, self.package_dir)
516
+
517
+ if callable(version):
518
+ version = version()
519
+
520
+ if not isinstance(version, string_types):
521
+ if hasattr(version, '__iter__'):
522
+ version = '.'.join(map(str, version))
523
+ else:
524
+ version = '%s' % version
525
+
526
+ return version
527
+
528
+
529
+ class ConfigOptionsHandler(ConfigHandler):
530
+
531
+ section_prefix = 'options'
532
+
533
+ @property
534
+ def parsers(self):
535
+ """Metadata item name to parser function mapping."""
536
+ parse_list = self._parse_list
537
+ parse_list_semicolon = partial(self._parse_list, separator=';')
538
+ parse_bool = self._parse_bool
539
+ parse_dict = self._parse_dict
540
+
541
+ return {
542
+ 'zip_safe': parse_bool,
543
+ 'use_2to3': parse_bool,
544
+ 'include_package_data': parse_bool,
545
+ 'package_dir': parse_dict,
546
+ 'use_2to3_fixers': parse_list,
547
+ 'use_2to3_exclude_fixers': parse_list,
548
+ 'convert_2to3_doctests': parse_list,
549
+ 'scripts': parse_list,
550
+ 'eager_resources': parse_list,
551
+ 'dependency_links': parse_list,
552
+ 'namespace_packages': parse_list,
553
+ 'install_requires': parse_list_semicolon,
554
+ 'setup_requires': parse_list_semicolon,
555
+ 'tests_require': parse_list_semicolon,
556
+ 'packages': self._parse_packages,
557
+ 'entry_points': self._parse_file,
558
+ 'py_modules': parse_list,
559
+ 'python_requires': SpecifierSet,
560
+ }
561
+
562
+ def _parse_packages(self, value):
563
+ """Parses `packages` option value.
564
+
565
+ :param value:
566
+ :rtype: list
567
+ """
568
+ find_directives = ['find:', 'find_namespace:']
569
+ trimmed_value = value.strip()
570
+
571
+ if trimmed_value not in find_directives:
572
+ return self._parse_list(value)
573
+
574
+ findns = trimmed_value == find_directives[1]
575
+ if findns and not PY3:
576
+ raise DistutilsOptionError(
577
+ 'find_namespace: directive is unsupported on Python < 3.3')
578
+
579
+ # Read function arguments from a dedicated section.
580
+ find_kwargs = self.parse_section_packages__find(
581
+ self.sections.get('packages.find', {}))
582
+
583
+ if findns:
584
+ from setuptools import find_namespace_packages as find_packages
585
+ else:
586
+ from setuptools import find_packages
587
+
588
+ return find_packages(**find_kwargs)
589
+
590
+ def parse_section_packages__find(self, section_options):
591
+ """Parses `packages.find` configuration file section.
592
+
593
+ To be used in conjunction with _parse_packages().
594
+
595
+ :param dict section_options:
596
+ """
597
+ section_data = self._parse_section_to_dict(
598
+ section_options, self._parse_list)
599
+
600
+ valid_keys = ['where', 'include', 'exclude']
601
+
602
+ find_kwargs = dict(
603
+ [(k, v) for k, v in section_data.items() if k in valid_keys and v])
604
+
605
+ where = find_kwargs.get('where')
606
+ if where is not None:
607
+ find_kwargs['where'] = where[0] # cast list to single val
608
+
609
+ return find_kwargs
610
+
611
+ def parse_section_entry_points(self, section_options):
612
+ """Parses `entry_points` configuration file section.
613
+
614
+ :param dict section_options:
615
+ """
616
+ parsed = self._parse_section_to_dict(section_options, self._parse_list)
617
+ self['entry_points'] = parsed
618
+
619
+ def _parse_package_data(self, section_options):
620
+ parsed = self._parse_section_to_dict(section_options, self._parse_list)
621
+
622
+ root = parsed.get('*')
623
+ if root:
624
+ parsed[''] = root
625
+ del parsed['*']
626
+
627
+ return parsed
628
+
629
+ def parse_section_package_data(self, section_options):
630
+ """Parses `package_data` configuration file section.
631
+
632
+ :param dict section_options:
633
+ """
634
+ self['package_data'] = self._parse_package_data(section_options)
635
+
636
+ def parse_section_exclude_package_data(self, section_options):
637
+ """Parses `exclude_package_data` configuration file section.
638
+
639
+ :param dict section_options:
640
+ """
641
+ self['exclude_package_data'] = self._parse_package_data(
642
+ section_options)
643
+
644
+ def parse_section_extras_require(self, section_options):
645
+ """Parses `extras_require` configuration file section.
646
+
647
+ :param dict section_options:
648
+ """
649
+ parse_list = partial(self._parse_list, separator=';')
650
+ self['extras_require'] = self._parse_section_to_dict(
651
+ section_options, parse_list)
652
+
653
+ def parse_section_data_files(self, section_options):
654
+ """Parses `data_files` configuration file section.
655
+
656
+ :param dict section_options:
657
+ """
658
+ parsed = self._parse_section_to_dict(section_options, self._parse_list)
659
+ self['data_files'] = [(k, v) for k, v in parsed.items()]
@@ -0,0 +1,23 @@
1
+ from distutils.dep_util import newer_group
2
+
3
+ # yes, this is was almost entirely copy-pasted from
4
+ # 'newer_pairwise()', this is just another convenience
5
+ # function.
6
+ def newer_pairwise_group(sources_groups, targets):
7
+ """Walk both arguments in parallel, testing if each source group is newer
8
+ than its corresponding target. Returns a pair of lists (sources_groups,
9
+ targets) where sources is newer than target, according to the semantics
10
+ of 'newer_group()'.
11
+ """
12
+ if len(sources_groups) != len(targets):
13
+ raise ValueError("'sources_group' and 'targets' must be the same length")
14
+
15
+ # build a pair of lists (sources_groups, targets) where source is newer
16
+ n_sources = []
17
+ n_targets = []
18
+ for i in range(len(sources_groups)):
19
+ if newer_group(sources_groups[i], targets[i]):
20
+ n_sources.append(sources_groups[i])
21
+ n_targets.append(targets[i])
22
+
23
+ return n_sources, n_targets