py2docfx 0.1.11.dev1869610__py3-none-any.whl → 0.1.11.dev1872139__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 (1766) hide show
  1. py2docfx/__main__.py +9 -3
  2. py2docfx/convert_prepare/environment.py +1 -1
  3. py2docfx/convert_prepare/pip_utils.py +1 -1
  4. py2docfx/venv/1/Lib/site-packages/_distutils_hack/__init__.py +240 -0
  5. py2docfx/venv/1/Lib/site-packages/_distutils_hack/override.py +1 -0
  6. py2docfx/venv/1/Lib/site-packages/_yaml/__init__.py +33 -0
  7. py2docfx/venv/1/Lib/site-packages/alabaster/__init__.py +35 -0
  8. py2docfx/venv/1/Lib/site-packages/alabaster/support.py +89 -0
  9. py2docfx/venv/1/Lib/site-packages/babel/__init__.py +37 -0
  10. py2docfx/venv/1/Lib/site-packages/babel/core.py +1300 -0
  11. py2docfx/venv/1/Lib/site-packages/babel/dates.py +1925 -0
  12. py2docfx/venv/1/Lib/site-packages/babel/languages.py +72 -0
  13. py2docfx/venv/1/Lib/site-packages/babel/lists.py +123 -0
  14. py2docfx/venv/1/Lib/site-packages/babel/localedata.py +278 -0
  15. py2docfx/venv/1/Lib/site-packages/babel/localtime/__init__.py +43 -0
  16. py2docfx/venv/1/Lib/site-packages/babel/localtime/_fallback.py +44 -0
  17. py2docfx/venv/1/Lib/site-packages/babel/localtime/_helpers.py +57 -0
  18. py2docfx/venv/1/Lib/site-packages/babel/localtime/_unix.py +98 -0
  19. py2docfx/venv/1/Lib/site-packages/babel/localtime/_win32.py +98 -0
  20. py2docfx/venv/1/Lib/site-packages/babel/messages/__init__.py +21 -0
  21. py2docfx/venv/1/Lib/site-packages/babel/messages/_compat.py +34 -0
  22. py2docfx/venv/1/Lib/site-packages/babel/messages/catalog.py +952 -0
  23. py2docfx/venv/1/Lib/site-packages/babel/messages/checkers.py +168 -0
  24. py2docfx/venv/1/Lib/site-packages/babel/messages/extract.py +843 -0
  25. py2docfx/venv/1/Lib/site-packages/babel/messages/frontend.py +1203 -0
  26. py2docfx/venv/1/Lib/site-packages/babel/messages/jslexer.py +203 -0
  27. py2docfx/venv/1/Lib/site-packages/babel/messages/mofile.py +212 -0
  28. py2docfx/venv/1/Lib/site-packages/babel/messages/plurals.py +257 -0
  29. py2docfx/venv/1/Lib/site-packages/babel/messages/pofile.py +675 -0
  30. py2docfx/venv/1/Lib/site-packages/babel/messages/setuptools_frontend.py +108 -0
  31. py2docfx/venv/1/Lib/site-packages/babel/numbers.py +1573 -0
  32. py2docfx/venv/1/Lib/site-packages/babel/plural.py +640 -0
  33. py2docfx/venv/1/Lib/site-packages/babel/support.py +726 -0
  34. py2docfx/venv/1/Lib/site-packages/babel/units.py +343 -0
  35. py2docfx/venv/1/Lib/site-packages/babel/util.py +269 -0
  36. py2docfx/venv/1/Lib/site-packages/certifi/__init__.py +4 -0
  37. py2docfx/venv/1/Lib/site-packages/certifi/__main__.py +12 -0
  38. py2docfx/venv/1/Lib/site-packages/certifi/core.py +114 -0
  39. py2docfx/venv/1/Lib/site-packages/charset_normalizer/__init__.py +46 -0
  40. py2docfx/venv/1/Lib/site-packages/charset_normalizer/__main__.py +4 -0
  41. py2docfx/venv/1/Lib/site-packages/charset_normalizer/api.py +626 -0
  42. py2docfx/venv/1/Lib/site-packages/charset_normalizer/cd.py +395 -0
  43. py2docfx/venv/1/Lib/site-packages/charset_normalizer/cli/__init__.py +6 -0
  44. py2docfx/venv/1/Lib/site-packages/charset_normalizer/cli/__main__.py +296 -0
  45. py2docfx/venv/1/Lib/site-packages/charset_normalizer/constant.py +1995 -0
  46. py2docfx/venv/1/Lib/site-packages/charset_normalizer/legacy.py +54 -0
  47. py2docfx/venv/1/Lib/site-packages/charset_normalizer/md.py +615 -0
  48. py2docfx/venv/1/Lib/site-packages/charset_normalizer/models.py +340 -0
  49. py2docfx/venv/1/Lib/site-packages/charset_normalizer/utils.py +421 -0
  50. py2docfx/venv/1/Lib/site-packages/charset_normalizer/version.py +6 -0
  51. py2docfx/venv/1/Lib/site-packages/colorama/__init__.py +7 -0
  52. py2docfx/venv/1/Lib/site-packages/colorama/ansi.py +102 -0
  53. py2docfx/venv/1/Lib/site-packages/colorama/ansitowin32.py +277 -0
  54. py2docfx/venv/1/Lib/site-packages/colorama/initialise.py +121 -0
  55. py2docfx/venv/1/Lib/site-packages/colorama/tests/__init__.py +1 -0
  56. py2docfx/venv/1/Lib/site-packages/colorama/tests/ansi_test.py +76 -0
  57. py2docfx/venv/1/Lib/site-packages/colorama/tests/ansitowin32_test.py +294 -0
  58. py2docfx/venv/1/Lib/site-packages/colorama/tests/initialise_test.py +189 -0
  59. py2docfx/venv/1/Lib/site-packages/colorama/tests/isatty_test.py +57 -0
  60. py2docfx/venv/1/Lib/site-packages/colorama/tests/utils.py +49 -0
  61. py2docfx/venv/1/Lib/site-packages/colorama/tests/winterm_test.py +131 -0
  62. py2docfx/venv/1/Lib/site-packages/colorama/win32.py +180 -0
  63. py2docfx/venv/1/Lib/site-packages/colorama/winterm.py +195 -0
  64. py2docfx/venv/1/Lib/site-packages/docutils/__init__.py +284 -0
  65. py2docfx/venv/1/Lib/site-packages/docutils/__main__.py +96 -0
  66. py2docfx/venv/1/Lib/site-packages/docutils/core.py +714 -0
  67. py2docfx/venv/1/Lib/site-packages/docutils/examples.py +99 -0
  68. py2docfx/venv/1/Lib/site-packages/docutils/frontend.py +951 -0
  69. py2docfx/venv/1/Lib/site-packages/docutils/io.py +611 -0
  70. py2docfx/venv/1/Lib/site-packages/docutils/languages/__init__.py +83 -0
  71. py2docfx/venv/1/Lib/site-packages/docutils/languages/af.py +58 -0
  72. py2docfx/venv/1/Lib/site-packages/docutils/languages/ar.py +60 -0
  73. py2docfx/venv/1/Lib/site-packages/docutils/languages/ca.py +60 -0
  74. py2docfx/venv/1/Lib/site-packages/docutils/languages/cs.py +60 -0
  75. py2docfx/venv/1/Lib/site-packages/docutils/languages/da.py +61 -0
  76. py2docfx/venv/1/Lib/site-packages/docutils/languages/de.py +58 -0
  77. py2docfx/venv/1/Lib/site-packages/docutils/languages/en.py +60 -0
  78. py2docfx/venv/1/Lib/site-packages/docutils/languages/eo.py +61 -0
  79. py2docfx/venv/1/Lib/site-packages/docutils/languages/es.py +58 -0
  80. py2docfx/venv/1/Lib/site-packages/docutils/languages/fa.py +60 -0
  81. py2docfx/venv/1/Lib/site-packages/docutils/languages/fi.py +60 -0
  82. py2docfx/venv/1/Lib/site-packages/docutils/languages/fr.py +58 -0
  83. py2docfx/venv/1/Lib/site-packages/docutils/languages/gl.py +62 -0
  84. py2docfx/venv/1/Lib/site-packages/docutils/languages/he.py +61 -0
  85. py2docfx/venv/1/Lib/site-packages/docutils/languages/it.py +58 -0
  86. py2docfx/venv/1/Lib/site-packages/docutils/languages/ja.py +60 -0
  87. py2docfx/venv/1/Lib/site-packages/docutils/languages/ko.py +60 -0
  88. py2docfx/venv/1/Lib/site-packages/docutils/languages/lt.py +60 -0
  89. py2docfx/venv/1/Lib/site-packages/docutils/languages/lv.py +59 -0
  90. py2docfx/venv/1/Lib/site-packages/docutils/languages/nl.py +60 -0
  91. py2docfx/venv/1/Lib/site-packages/docutils/languages/pl.py +60 -0
  92. py2docfx/venv/1/Lib/site-packages/docutils/languages/pt_br.py +60 -0
  93. py2docfx/venv/1/Lib/site-packages/docutils/languages/ru.py +58 -0
  94. py2docfx/venv/1/Lib/site-packages/docutils/languages/sk.py +58 -0
  95. py2docfx/venv/1/Lib/site-packages/docutils/languages/sv.py +59 -0
  96. py2docfx/venv/1/Lib/site-packages/docutils/languages/zh_cn.py +66 -0
  97. py2docfx/venv/1/Lib/site-packages/docutils/languages/zh_tw.py +65 -0
  98. py2docfx/venv/1/Lib/site-packages/docutils/nodes.py +2314 -0
  99. py2docfx/venv/1/Lib/site-packages/docutils/parsers/__init__.py +92 -0
  100. py2docfx/venv/1/Lib/site-packages/docutils/parsers/commonmark_wrapper.py +56 -0
  101. py2docfx/venv/1/Lib/site-packages/docutils/parsers/null.py +20 -0
  102. py2docfx/venv/1/Lib/site-packages/docutils/parsers/recommonmark_wrapper.py +136 -0
  103. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/__init__.py +414 -0
  104. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/__init__.py +460 -0
  105. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/admonitions.py +99 -0
  106. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/body.py +304 -0
  107. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/html.py +21 -0
  108. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/images.py +163 -0
  109. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/misc.py +635 -0
  110. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/parts.py +126 -0
  111. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/references.py +29 -0
  112. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/directives/tables.py +513 -0
  113. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/__init__.py +40 -0
  114. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/af.py +107 -0
  115. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/ar.py +99 -0
  116. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/ca.py +126 -0
  117. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/cs.py +110 -0
  118. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/da.py +113 -0
  119. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/de.py +106 -0
  120. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/en.py +111 -0
  121. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/eo.py +118 -0
  122. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/es.py +122 -0
  123. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/fa.py +102 -0
  124. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/fi.py +98 -0
  125. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/fr.py +104 -0
  126. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/gl.py +111 -0
  127. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/he.py +109 -0
  128. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/it.py +98 -0
  129. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/ja.py +119 -0
  130. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/ko.py +111 -0
  131. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/lt.py +109 -0
  132. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/lv.py +108 -0
  133. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/nl.py +113 -0
  134. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/pl.py +100 -0
  135. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/pt_br.py +109 -0
  136. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/ru.py +90 -0
  137. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/sk.py +96 -0
  138. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/sv.py +96 -0
  139. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/zh_cn.py +104 -0
  140. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/languages/zh_tw.py +109 -0
  141. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/roles.py +439 -0
  142. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/states.py +3135 -0
  143. py2docfx/venv/1/Lib/site-packages/docutils/parsers/rst/tableparser.py +539 -0
  144. py2docfx/venv/1/Lib/site-packages/docutils/readers/__init__.py +113 -0
  145. py2docfx/venv/1/Lib/site-packages/docutils/readers/doctree.py +46 -0
  146. py2docfx/venv/1/Lib/site-packages/docutils/readers/pep.py +48 -0
  147. py2docfx/venv/1/Lib/site-packages/docutils/readers/standalone.py +65 -0
  148. py2docfx/venv/1/Lib/site-packages/docutils/statemachine.py +1525 -0
  149. py2docfx/venv/1/Lib/site-packages/docutils/transforms/__init__.py +174 -0
  150. py2docfx/venv/1/Lib/site-packages/docutils/transforms/components.py +54 -0
  151. py2docfx/venv/1/Lib/site-packages/docutils/transforms/frontmatter.py +545 -0
  152. py2docfx/venv/1/Lib/site-packages/docutils/transforms/misc.py +144 -0
  153. py2docfx/venv/1/Lib/site-packages/docutils/transforms/parts.py +176 -0
  154. py2docfx/venv/1/Lib/site-packages/docutils/transforms/peps.py +308 -0
  155. py2docfx/venv/1/Lib/site-packages/docutils/transforms/references.py +919 -0
  156. py2docfx/venv/1/Lib/site-packages/docutils/transforms/universal.py +338 -0
  157. py2docfx/venv/1/Lib/site-packages/docutils/transforms/writer_aux.py +99 -0
  158. py2docfx/venv/1/Lib/site-packages/docutils/utils/__init__.py +821 -0
  159. py2docfx/venv/1/Lib/site-packages/docutils/utils/code_analyzer.py +138 -0
  160. py2docfx/venv/1/Lib/site-packages/docutils/utils/error_reporting.py +222 -0
  161. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/__init__.py +52 -0
  162. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/latex2mathml.py +1430 -0
  163. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/math2html.py +3171 -0
  164. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/tex2mathml_extern.py +152 -0
  165. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/tex2unichar.py +704 -0
  166. py2docfx/venv/1/Lib/site-packages/docutils/utils/math/unichar2tex.py +808 -0
  167. py2docfx/venv/1/Lib/site-packages/docutils/utils/punctuation_chars.py +122 -0
  168. py2docfx/venv/1/Lib/site-packages/docutils/utils/roman.py +86 -0
  169. py2docfx/venv/1/Lib/site-packages/docutils/utils/smartquotes.py +991 -0
  170. py2docfx/venv/1/Lib/site-packages/docutils/utils/urischemes.py +138 -0
  171. py2docfx/venv/1/Lib/site-packages/docutils/writers/__init__.py +151 -0
  172. py2docfx/venv/1/Lib/site-packages/docutils/writers/_html_base.py +1781 -0
  173. py2docfx/venv/1/Lib/site-packages/docutils/writers/docutils_xml.py +188 -0
  174. py2docfx/venv/1/Lib/site-packages/docutils/writers/html4css1/__init__.py +947 -0
  175. py2docfx/venv/1/Lib/site-packages/docutils/writers/html5_polyglot/__init__.py +454 -0
  176. py2docfx/venv/1/Lib/site-packages/docutils/writers/latex2e/__init__.py +3295 -0
  177. py2docfx/venv/1/Lib/site-packages/docutils/writers/manpage.py +1181 -0
  178. py2docfx/venv/1/Lib/site-packages/docutils/writers/null.py +21 -0
  179. py2docfx/venv/1/Lib/site-packages/docutils/writers/odf_odt/__init__.py +3468 -0
  180. py2docfx/venv/1/Lib/site-packages/docutils/writers/odf_odt/pygmentsformatter.py +109 -0
  181. py2docfx/venv/1/Lib/site-packages/docutils/writers/pep_html/__init__.py +103 -0
  182. py2docfx/venv/1/Lib/site-packages/docutils/writers/pseudoxml.py +40 -0
  183. py2docfx/venv/1/Lib/site-packages/docutils/writers/s5_html/__init__.py +352 -0
  184. py2docfx/venv/1/Lib/site-packages/docutils/writers/xetex/__init__.py +149 -0
  185. py2docfx/venv/1/Lib/site-packages/idna/__init__.py +45 -0
  186. py2docfx/venv/1/Lib/site-packages/idna/codec.py +122 -0
  187. py2docfx/venv/1/Lib/site-packages/idna/compat.py +15 -0
  188. py2docfx/venv/1/Lib/site-packages/idna/core.py +437 -0
  189. py2docfx/venv/1/Lib/site-packages/idna/idnadata.py +4243 -0
  190. py2docfx/venv/1/Lib/site-packages/idna/intranges.py +57 -0
  191. py2docfx/venv/1/Lib/site-packages/idna/package_data.py +1 -0
  192. py2docfx/venv/1/Lib/site-packages/idna/uts46data.py +8681 -0
  193. py2docfx/venv/1/Lib/site-packages/imagesize/__init__.py +5 -0
  194. py2docfx/venv/1/Lib/site-packages/imagesize/imagesize.py +376 -0
  195. py2docfx/venv/1/Lib/site-packages/imagesize.py +383 -0
  196. py2docfx/venv/1/Lib/site-packages/jinja2/__init__.py +45 -0
  197. py2docfx/venv/1/Lib/site-packages/jinja2/_identifier.py +6 -0
  198. py2docfx/venv/1/Lib/site-packages/jinja2/async_utils.py +75 -0
  199. py2docfx/venv/1/Lib/site-packages/jinja2/bccache.py +364 -0
  200. py2docfx/venv/1/Lib/site-packages/jinja2/compiler.py +1957 -0
  201. py2docfx/venv/1/Lib/site-packages/jinja2/constants.py +20 -0
  202. py2docfx/venv/1/Lib/site-packages/jinja2/debug.py +259 -0
  203. py2docfx/venv/1/Lib/site-packages/jinja2/defaults.py +48 -0
  204. py2docfx/venv/1/Lib/site-packages/jinja2/environment.py +1661 -0
  205. py2docfx/venv/1/Lib/site-packages/jinja2/exceptions.py +166 -0
  206. py2docfx/venv/1/Lib/site-packages/jinja2/ext.py +879 -0
  207. py2docfx/venv/1/Lib/site-packages/jinja2/filters.py +1824 -0
  208. py2docfx/venv/1/Lib/site-packages/jinja2/idtracking.py +318 -0
  209. py2docfx/venv/1/Lib/site-packages/jinja2/lexer.py +869 -0
  210. py2docfx/venv/1/Lib/site-packages/jinja2/loaders.py +652 -0
  211. py2docfx/venv/1/Lib/site-packages/jinja2/meta.py +111 -0
  212. py2docfx/venv/1/Lib/site-packages/jinja2/nativetypes.py +124 -0
  213. py2docfx/venv/1/Lib/site-packages/jinja2/nodes.py +1204 -0
  214. py2docfx/venv/1/Lib/site-packages/jinja2/optimizer.py +47 -0
  215. py2docfx/venv/1/Lib/site-packages/jinja2/parser.py +1040 -0
  216. py2docfx/venv/1/Lib/site-packages/jinja2/runtime.py +1104 -0
  217. py2docfx/venv/1/Lib/site-packages/jinja2/sandbox.py +428 -0
  218. py2docfx/venv/1/Lib/site-packages/jinja2/tests.py +255 -0
  219. py2docfx/venv/1/Lib/site-packages/jinja2/utils.py +854 -0
  220. py2docfx/venv/1/Lib/site-packages/jinja2/visitor.py +92 -0
  221. py2docfx/venv/1/Lib/site-packages/markupsafe/__init__.py +332 -0
  222. py2docfx/venv/1/Lib/site-packages/markupsafe/_native.py +63 -0
  223. py2docfx/venv/1/Lib/site-packages/packaging/__init__.py +15 -0
  224. py2docfx/venv/1/Lib/site-packages/packaging/_elffile.py +110 -0
  225. py2docfx/venv/1/Lib/site-packages/packaging/_manylinux.py +262 -0
  226. py2docfx/venv/1/Lib/site-packages/packaging/_musllinux.py +85 -0
  227. py2docfx/venv/1/Lib/site-packages/packaging/_parser.py +354 -0
  228. py2docfx/venv/1/Lib/site-packages/packaging/_structures.py +61 -0
  229. py2docfx/venv/1/Lib/site-packages/packaging/_tokenizer.py +194 -0
  230. py2docfx/venv/1/Lib/site-packages/packaging/markers.py +325 -0
  231. py2docfx/venv/1/Lib/site-packages/packaging/metadata.py +804 -0
  232. py2docfx/venv/1/Lib/site-packages/packaging/requirements.py +91 -0
  233. py2docfx/venv/1/Lib/site-packages/packaging/specifiers.py +1009 -0
  234. py2docfx/venv/1/Lib/site-packages/packaging/tags.py +568 -0
  235. py2docfx/venv/1/Lib/site-packages/packaging/utils.py +174 -0
  236. py2docfx/venv/1/Lib/site-packages/packaging/version.py +563 -0
  237. py2docfx/venv/1/Lib/site-packages/pip/__init__.py +13 -0
  238. py2docfx/venv/1/Lib/site-packages/pip/__main__.py +24 -0
  239. py2docfx/venv/1/Lib/site-packages/pip/__pip-runner__.py +50 -0
  240. py2docfx/venv/1/Lib/site-packages/pip/_internal/__init__.py +18 -0
  241. py2docfx/venv/1/Lib/site-packages/pip/_internal/build_env.py +311 -0
  242. py2docfx/venv/1/Lib/site-packages/pip/_internal/cache.py +290 -0
  243. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/__init__.py +4 -0
  244. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/autocompletion.py +172 -0
  245. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/base_command.py +236 -0
  246. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/cmdoptions.py +1074 -0
  247. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/command_context.py +27 -0
  248. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/main.py +79 -0
  249. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/main_parser.py +134 -0
  250. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/parser.py +294 -0
  251. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/progress_bars.py +68 -0
  252. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/req_command.py +505 -0
  253. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/spinners.py +159 -0
  254. py2docfx/venv/1/Lib/site-packages/pip/_internal/cli/status_codes.py +6 -0
  255. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/__init__.py +132 -0
  256. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/cache.py +225 -0
  257. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/check.py +54 -0
  258. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/completion.py +130 -0
  259. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/configuration.py +280 -0
  260. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/debug.py +201 -0
  261. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/download.py +147 -0
  262. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/freeze.py +108 -0
  263. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/hash.py +59 -0
  264. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/help.py +41 -0
  265. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/index.py +139 -0
  266. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/inspect.py +92 -0
  267. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/install.py +774 -0
  268. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/list.py +368 -0
  269. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/search.py +174 -0
  270. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/show.py +189 -0
  271. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/uninstall.py +113 -0
  272. py2docfx/venv/1/Lib/site-packages/pip/_internal/commands/wheel.py +183 -0
  273. py2docfx/venv/1/Lib/site-packages/pip/_internal/configuration.py +383 -0
  274. py2docfx/venv/1/Lib/site-packages/pip/_internal/distributions/__init__.py +21 -0
  275. py2docfx/venv/1/Lib/site-packages/pip/_internal/distributions/base.py +51 -0
  276. py2docfx/venv/1/Lib/site-packages/pip/_internal/distributions/installed.py +29 -0
  277. py2docfx/venv/1/Lib/site-packages/pip/_internal/distributions/sdist.py +156 -0
  278. py2docfx/venv/1/Lib/site-packages/pip/_internal/distributions/wheel.py +40 -0
  279. py2docfx/venv/1/Lib/site-packages/pip/_internal/exceptions.py +728 -0
  280. py2docfx/venv/1/Lib/site-packages/pip/_internal/index/__init__.py +2 -0
  281. py2docfx/venv/1/Lib/site-packages/pip/_internal/index/collector.py +507 -0
  282. py2docfx/venv/1/Lib/site-packages/pip/_internal/index/package_finder.py +1027 -0
  283. py2docfx/venv/1/Lib/site-packages/pip/_internal/index/sources.py +285 -0
  284. py2docfx/venv/1/Lib/site-packages/pip/_internal/locations/__init__.py +467 -0
  285. py2docfx/venv/1/Lib/site-packages/pip/_internal/locations/_distutils.py +172 -0
  286. py2docfx/venv/1/Lib/site-packages/pip/_internal/locations/_sysconfig.py +213 -0
  287. py2docfx/venv/1/Lib/site-packages/pip/_internal/locations/base.py +81 -0
  288. py2docfx/venv/1/Lib/site-packages/pip/_internal/main.py +12 -0
  289. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/__init__.py +128 -0
  290. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/_json.py +84 -0
  291. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/base.py +702 -0
  292. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  293. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +55 -0
  294. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +227 -0
  295. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +189 -0
  296. py2docfx/venv/1/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +278 -0
  297. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/__init__.py +2 -0
  298. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/candidate.py +30 -0
  299. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/direct_url.py +235 -0
  300. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/format_control.py +78 -0
  301. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/index.py +28 -0
  302. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/installation_report.py +56 -0
  303. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/link.py +579 -0
  304. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/scheme.py +31 -0
  305. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/search_scope.py +132 -0
  306. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/selection_prefs.py +51 -0
  307. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/target_python.py +122 -0
  308. py2docfx/venv/1/Lib/site-packages/pip/_internal/models/wheel.py +92 -0
  309. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/__init__.py +2 -0
  310. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/auth.py +561 -0
  311. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/cache.py +106 -0
  312. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/download.py +186 -0
  313. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/lazy_wheel.py +210 -0
  314. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/session.py +520 -0
  315. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/utils.py +96 -0
  316. py2docfx/venv/1/Lib/site-packages/pip/_internal/network/xmlrpc.py +62 -0
  317. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  318. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  319. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +139 -0
  320. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/metadata.py +39 -0
  321. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +41 -0
  322. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +74 -0
  323. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/wheel.py +37 -0
  324. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +46 -0
  325. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +102 -0
  326. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/check.py +187 -0
  327. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/freeze.py +255 -0
  328. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  329. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +46 -0
  330. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/install/wheel.py +734 -0
  331. py2docfx/venv/1/Lib/site-packages/pip/_internal/operations/prepare.py +730 -0
  332. py2docfx/venv/1/Lib/site-packages/pip/_internal/pyproject.py +179 -0
  333. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/__init__.py +92 -0
  334. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/constructors.py +576 -0
  335. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/req_file.py +554 -0
  336. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/req_install.py +923 -0
  337. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/req_set.py +119 -0
  338. py2docfx/venv/1/Lib/site-packages/pip/_internal/req/req_uninstall.py +649 -0
  339. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  340. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/base.py +20 -0
  341. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  342. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +598 -0
  343. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  344. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +141 -0
  345. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +597 -0
  346. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +812 -0
  347. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +155 -0
  348. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +255 -0
  349. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +80 -0
  350. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +166 -0
  351. py2docfx/venv/1/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +317 -0
  352. py2docfx/venv/1/Lib/site-packages/pip/_internal/self_outdated_check.py +248 -0
  353. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  354. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  355. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/_log.py +38 -0
  356. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/appdirs.py +52 -0
  357. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/compat.py +63 -0
  358. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +165 -0
  359. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/datetime.py +11 -0
  360. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/deprecation.py +120 -0
  361. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
  362. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/egg_link.py +80 -0
  363. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/encoding.py +36 -0
  364. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/entrypoints.py +84 -0
  365. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/filesystem.py +153 -0
  366. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/filetypes.py +27 -0
  367. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/glibc.py +88 -0
  368. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/hashes.py +151 -0
  369. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/logging.py +348 -0
  370. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/misc.py +783 -0
  371. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/models.py +39 -0
  372. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/packaging.py +57 -0
  373. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/setuptools_build.py +146 -0
  374. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/subprocess.py +260 -0
  375. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/temp_dir.py +296 -0
  376. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/unpacking.py +257 -0
  377. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/urls.py +62 -0
  378. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/virtualenv.py +104 -0
  379. py2docfx/venv/1/Lib/site-packages/pip/_internal/utils/wheel.py +134 -0
  380. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
  381. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/bazaar.py +112 -0
  382. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/git.py +526 -0
  383. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/mercurial.py +163 -0
  384. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/subversion.py +324 -0
  385. py2docfx/venv/1/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +705 -0
  386. py2docfx/venv/1/Lib/site-packages/pip/_internal/wheel_builder.py +354 -0
  387. py2docfx/venv/1/Lib/site-packages/pip/_vendor/__init__.py +121 -0
  388. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +28 -0
  389. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  390. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +161 -0
  391. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +74 -0
  392. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  393. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +181 -0
  394. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  395. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +494 -0
  396. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
  397. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +154 -0
  398. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +206 -0
  399. py2docfx/venv/1/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  400. py2docfx/venv/1/Lib/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  401. py2docfx/venv/1/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  402. py2docfx/venv/1/Lib/site-packages/pip/_vendor/certifi/core.py +108 -0
  403. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/__init__.py +115 -0
  404. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
  405. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/big5prober.py +47 -0
  406. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/chardistribution.py +261 -0
  407. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/charsetgroupprober.py +106 -0
  408. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/charsetprober.py +147 -0
  409. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -0
  410. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/cli/chardetect.py +112 -0
  411. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/codingstatemachine.py +90 -0
  412. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/codingstatemachinedict.py +19 -0
  413. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/cp949prober.py +49 -0
  414. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/enums.py +85 -0
  415. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/escprober.py +102 -0
  416. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/escsm.py +261 -0
  417. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/eucjpprober.py +102 -0
  418. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/euckrfreq.py +196 -0
  419. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/euckrprober.py +47 -0
  420. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/euctwfreq.py +388 -0
  421. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/euctwprober.py +47 -0
  422. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/gb2312freq.py +284 -0
  423. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/gb2312prober.py +47 -0
  424. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/hebrewprober.py +316 -0
  425. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/jisfreq.py +325 -0
  426. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/johabfreq.py +2382 -0
  427. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/johabprober.py +47 -0
  428. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/jpcntx.py +238 -0
  429. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +4649 -0
  430. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langgreekmodel.py +4397 -0
  431. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langhebrewmodel.py +4380 -0
  432. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langhungarianmodel.py +4649 -0
  433. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langrussianmodel.py +5725 -0
  434. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langthaimodel.py +4380 -0
  435. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/langturkishmodel.py +4380 -0
  436. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/latin1prober.py +147 -0
  437. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/macromanprober.py +162 -0
  438. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/mbcharsetprober.py +95 -0
  439. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +57 -0
  440. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/mbcssm.py +661 -0
  441. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  442. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/metadata/languages.py +352 -0
  443. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/resultdict.py +16 -0
  444. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/sbcharsetprober.py +162 -0
  445. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +88 -0
  446. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/sjisprober.py +105 -0
  447. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/universaldetector.py +362 -0
  448. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/utf1632prober.py +225 -0
  449. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/utf8prober.py +82 -0
  450. py2docfx/venv/1/Lib/site-packages/pip/_vendor/chardet/version.py +9 -0
  451. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/__init__.py +7 -0
  452. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/ansi.py +102 -0
  453. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/ansitowin32.py +277 -0
  454. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/initialise.py +121 -0
  455. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/__init__.py +1 -0
  456. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/ansi_test.py +76 -0
  457. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py +294 -0
  458. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/initialise_test.py +189 -0
  459. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/isatty_test.py +57 -0
  460. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/utils.py +49 -0
  461. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/tests/winterm_test.py +131 -0
  462. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/win32.py +180 -0
  463. py2docfx/venv/1/Lib/site-packages/pip/_vendor/colorama/winterm.py +195 -0
  464. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  465. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/compat.py +1138 -0
  466. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/database.py +1359 -0
  467. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/index.py +508 -0
  468. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/locators.py +1303 -0
  469. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/manifest.py +384 -0
  470. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/markers.py +167 -0
  471. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/metadata.py +1068 -0
  472. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/resources.py +358 -0
  473. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/scripts.py +452 -0
  474. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/util.py +2025 -0
  475. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/version.py +751 -0
  476. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distlib/wheel.py +1099 -0
  477. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distro/__init__.py +54 -0
  478. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distro/__main__.py +4 -0
  479. py2docfx/venv/1/Lib/site-packages/pip/_vendor/distro/distro.py +1399 -0
  480. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/__init__.py +44 -0
  481. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/codec.py +112 -0
  482. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/compat.py +13 -0
  483. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/core.py +400 -0
  484. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/idnadata.py +2151 -0
  485. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/intranges.py +54 -0
  486. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/package_data.py +2 -0
  487. py2docfx/venv/1/Lib/site-packages/pip/_vendor/idna/uts46data.py +8600 -0
  488. py2docfx/venv/1/Lib/site-packages/pip/_vendor/msgpack/__init__.py +57 -0
  489. py2docfx/venv/1/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  490. py2docfx/venv/1/Lib/site-packages/pip/_vendor/msgpack/ext.py +193 -0
  491. py2docfx/venv/1/Lib/site-packages/pip/_vendor/msgpack/fallback.py +1010 -0
  492. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/__about__.py +26 -0
  493. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/__init__.py +25 -0
  494. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +301 -0
  495. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +136 -0
  496. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/_structures.py +61 -0
  497. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/markers.py +304 -0
  498. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/requirements.py +146 -0
  499. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/specifiers.py +802 -0
  500. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/tags.py +487 -0
  501. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/utils.py +136 -0
  502. py2docfx/venv/1/Lib/site-packages/pip/_vendor/packaging/version.py +504 -0
  503. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3361 -0
  504. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +566 -0
  505. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +53 -0
  506. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/android.py +210 -0
  507. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/api.py +223 -0
  508. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/macos.py +91 -0
  509. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/unix.py +223 -0
  510. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/version.py +4 -0
  511. py2docfx/venv/1/Lib/site-packages/pip/_vendor/platformdirs/windows.py +255 -0
  512. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  513. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  514. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/cmdline.py +668 -0
  515. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/console.py +70 -0
  516. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/filter.py +71 -0
  517. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  518. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatter.py +124 -0
  519. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +158 -0
  520. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  521. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +108 -0
  522. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +170 -0
  523. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +989 -0
  524. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +645 -0
  525. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +154 -0
  526. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +521 -0
  527. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +161 -0
  528. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +83 -0
  529. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +146 -0
  530. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +188 -0
  531. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +127 -0
  532. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +338 -0
  533. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/lexer.py +943 -0
  534. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  535. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +559 -0
  536. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +1198 -0
  537. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  538. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/plugin.py +88 -0
  539. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  540. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  541. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +217 -0
  542. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/style.py +197 -0
  543. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +103 -0
  544. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/token.py +213 -0
  545. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  546. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pygments/util.py +330 -0
  547. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/__init__.py +322 -0
  548. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/actions.py +217 -0
  549. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/common.py +432 -0
  550. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/core.py +6115 -0
  551. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/diagram/__init__.py +656 -0
  552. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/exceptions.py +299 -0
  553. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/helpers.py +1100 -0
  554. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/results.py +796 -0
  555. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/testing.py +331 -0
  556. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/unicode.py +361 -0
  557. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyparsing/util.py +284 -0
  558. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +23 -0
  559. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyproject_hooks/_compat.py +8 -0
  560. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +330 -0
  561. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +18 -0
  562. py2docfx/venv/1/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +353 -0
  563. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/__init__.py +182 -0
  564. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
  565. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
  566. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/adapters.py +538 -0
  567. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/api.py +157 -0
  568. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/auth.py +315 -0
  569. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/certs.py +24 -0
  570. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/compat.py +67 -0
  571. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/cookies.py +561 -0
  572. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/exceptions.py +141 -0
  573. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/help.py +131 -0
  574. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/hooks.py +33 -0
  575. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/models.py +1034 -0
  576. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/packages.py +16 -0
  577. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/sessions.py +833 -0
  578. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  579. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/structures.py +99 -0
  580. py2docfx/venv/1/Lib/site-packages/pip/_vendor/requests/utils.py +1094 -0
  581. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  582. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  583. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  584. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/providers.py +133 -0
  585. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +43 -0
  586. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +547 -0
  587. py2docfx/venv/1/Lib/site-packages/pip/_vendor/resolvelib/structs.py +170 -0
  588. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/__init__.py +177 -0
  589. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/__main__.py +274 -0
  590. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +451 -0
  591. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  592. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  593. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  594. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_extension.py +10 -0
  595. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  596. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_inspect.py +270 -0
  597. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  598. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_loop.py +43 -0
  599. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  600. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  601. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_pick.py +17 -0
  602. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_ratio.py +160 -0
  603. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  604. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_stack.py +16 -0
  605. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_timer.py +19 -0
  606. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_win32_console.py +662 -0
  607. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_windows.py +72 -0
  608. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  609. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/_wrap.py +56 -0
  610. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/abc.py +33 -0
  611. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/align.py +311 -0
  612. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/ansi.py +240 -0
  613. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/bar.py +94 -0
  614. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/box.py +517 -0
  615. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/cells.py +154 -0
  616. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/color.py +622 -0
  617. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  618. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/columns.py +187 -0
  619. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/console.py +2633 -0
  620. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/constrain.py +37 -0
  621. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/containers.py +167 -0
  622. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/control.py +225 -0
  623. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/default_styles.py +190 -0
  624. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/diagnose.py +37 -0
  625. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/emoji.py +96 -0
  626. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/errors.py +34 -0
  627. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  628. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/filesize.py +89 -0
  629. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  630. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/json.py +140 -0
  631. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  632. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/layout.py +443 -0
  633. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/live.py +375 -0
  634. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/live_render.py +113 -0
  635. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/logging.py +289 -0
  636. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/markup.py +246 -0
  637. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/measure.py +151 -0
  638. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/padding.py +141 -0
  639. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/pager.py +34 -0
  640. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/palette.py +100 -0
  641. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/panel.py +308 -0
  642. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/pretty.py +994 -0
  643. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/progress.py +1702 -0
  644. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/progress_bar.py +224 -0
  645. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/prompt.py +376 -0
  646. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/protocol.py +42 -0
  647. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/region.py +10 -0
  648. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/repr.py +149 -0
  649. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/rule.py +130 -0
  650. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/scope.py +86 -0
  651. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/screen.py +54 -0
  652. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/segment.py +739 -0
  653. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/spinner.py +137 -0
  654. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/status.py +132 -0
  655. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/style.py +796 -0
  656. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/styled.py +42 -0
  657. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/syntax.py +948 -0
  658. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/table.py +1002 -0
  659. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  660. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/text.py +1307 -0
  661. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/theme.py +115 -0
  662. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/themes.py +5 -0
  663. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/traceback.py +756 -0
  664. py2docfx/venv/1/Lib/site-packages/pip/_vendor/rich/tree.py +251 -0
  665. py2docfx/venv/1/Lib/site-packages/pip/_vendor/six.py +998 -0
  666. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/__init__.py +608 -0
  667. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/_asyncio.py +94 -0
  668. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/_utils.py +76 -0
  669. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/after.py +51 -0
  670. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/before.py +46 -0
  671. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/before_sleep.py +71 -0
  672. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/nap.py +43 -0
  673. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/retry.py +272 -0
  674. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/stop.py +103 -0
  675. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/tornadoweb.py +59 -0
  676. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tenacity/wait.py +228 -0
  677. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tomli/__init__.py +11 -0
  678. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tomli/_parser.py +691 -0
  679. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tomli/_re.py +107 -0
  680. py2docfx/venv/1/Lib/site-packages/pip/_vendor/tomli/_types.py +10 -0
  681. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/__init__.py +13 -0
  682. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/_api.py +302 -0
  683. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/_macos.py +501 -0
  684. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
  685. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  686. py2docfx/venv/1/Lib/site-packages/pip/_vendor/truststore/_windows.py +554 -0
  687. py2docfx/venv/1/Lib/site-packages/pip/_vendor/typing_extensions.py +3072 -0
  688. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
  689. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/_collections.py +337 -0
  690. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  691. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/connection.py +572 -0
  692. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1132 -0
  693. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  694. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  695. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  696. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  697. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
  698. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  699. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
  700. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
  701. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +921 -0
  702. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  703. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
  704. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  705. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  706. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  707. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  708. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  709. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
  710. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
  711. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +537 -0
  712. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/request.py +191 -0
  713. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/response.py +879 -0
  714. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  715. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
  716. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
  717. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  718. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
  719. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  720. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +620 -0
  721. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +495 -0
  722. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  723. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  724. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
  725. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
  726. py2docfx/venv/1/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
  727. py2docfx/venv/1/Lib/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
  728. py2docfx/venv/1/Lib/site-packages/pip/_vendor/webencodings/labels.py +231 -0
  729. py2docfx/venv/1/Lib/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
  730. py2docfx/venv/1/Lib/site-packages/pip/_vendor/webencodings/tests.py +153 -0
  731. py2docfx/venv/1/Lib/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
  732. py2docfx/venv/1/Lib/site-packages/pkg_resources/__init__.py +3725 -0
  733. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/__init__.py +0 -0
  734. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +7 -0
  735. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_find_distributions.py +56 -0
  736. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_integration_zope_interface.py +54 -0
  737. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_markers.py +8 -0
  738. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_pkg_resources.py +427 -0
  739. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_resources.py +869 -0
  740. py2docfx/venv/1/Lib/site-packages/pkg_resources/tests/test_working_set.py +501 -0
  741. py2docfx/venv/1/Lib/site-packages/pygments/__init__.py +82 -0
  742. py2docfx/venv/1/Lib/site-packages/pygments/__main__.py +17 -0
  743. py2docfx/venv/1/Lib/site-packages/pygments/cmdline.py +668 -0
  744. py2docfx/venv/1/Lib/site-packages/pygments/console.py +70 -0
  745. py2docfx/venv/1/Lib/site-packages/pygments/filter.py +70 -0
  746. py2docfx/venv/1/Lib/site-packages/pygments/filters/__init__.py +940 -0
  747. py2docfx/venv/1/Lib/site-packages/pygments/formatter.py +129 -0
  748. py2docfx/venv/1/Lib/site-packages/pygments/formatters/__init__.py +157 -0
  749. py2docfx/venv/1/Lib/site-packages/pygments/formatters/_mapping.py +23 -0
  750. py2docfx/venv/1/Lib/site-packages/pygments/formatters/bbcode.py +108 -0
  751. py2docfx/venv/1/Lib/site-packages/pygments/formatters/groff.py +170 -0
  752. py2docfx/venv/1/Lib/site-packages/pygments/formatters/html.py +987 -0
  753. py2docfx/venv/1/Lib/site-packages/pygments/formatters/img.py +685 -0
  754. py2docfx/venv/1/Lib/site-packages/pygments/formatters/irc.py +154 -0
  755. py2docfx/venv/1/Lib/site-packages/pygments/formatters/latex.py +518 -0
  756. py2docfx/venv/1/Lib/site-packages/pygments/formatters/other.py +160 -0
  757. py2docfx/venv/1/Lib/site-packages/pygments/formatters/pangomarkup.py +83 -0
  758. py2docfx/venv/1/Lib/site-packages/pygments/formatters/rtf.py +349 -0
  759. py2docfx/venv/1/Lib/site-packages/pygments/formatters/svg.py +185 -0
  760. py2docfx/venv/1/Lib/site-packages/pygments/formatters/terminal.py +127 -0
  761. py2docfx/venv/1/Lib/site-packages/pygments/formatters/terminal256.py +338 -0
  762. py2docfx/venv/1/Lib/site-packages/pygments/lexer.py +961 -0
  763. py2docfx/venv/1/Lib/site-packages/pygments/lexers/__init__.py +362 -0
  764. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_ada_builtins.py +103 -0
  765. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_asy_builtins.py +1644 -0
  766. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_cl_builtins.py +231 -0
  767. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_cocoa_builtins.py +75 -0
  768. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_csound_builtins.py +1780 -0
  769. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_css_builtins.py +558 -0
  770. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_julia_builtins.py +411 -0
  771. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_lasso_builtins.py +5326 -0
  772. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_lilypond_builtins.py +4932 -0
  773. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_lua_builtins.py +285 -0
  774. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_luau_builtins.py +62 -0
  775. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_mapping.py +589 -0
  776. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_mql_builtins.py +1171 -0
  777. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_mysql_builtins.py +1335 -0
  778. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_openedge_builtins.py +2600 -0
  779. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_php_builtins.py +3325 -0
  780. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_postgres_builtins.py +739 -0
  781. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_qlik_builtins.py +666 -0
  782. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_scheme_builtins.py +1609 -0
  783. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_scilab_builtins.py +3093 -0
  784. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_sourcemod_builtins.py +1151 -0
  785. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_stan_builtins.py +648 -0
  786. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_stata_builtins.py +457 -0
  787. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_tsql_builtins.py +1003 -0
  788. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_usd_builtins.py +112 -0
  789. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_vbscript_builtins.py +279 -0
  790. py2docfx/venv/1/Lib/site-packages/pygments/lexers/_vim_builtins.py +1938 -0
  791. py2docfx/venv/1/Lib/site-packages/pygments/lexers/actionscript.py +243 -0
  792. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ada.py +144 -0
  793. py2docfx/venv/1/Lib/site-packages/pygments/lexers/agile.py +25 -0
  794. py2docfx/venv/1/Lib/site-packages/pygments/lexers/algebra.py +298 -0
  795. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ambient.py +75 -0
  796. py2docfx/venv/1/Lib/site-packages/pygments/lexers/amdgpu.py +54 -0
  797. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ampl.py +87 -0
  798. py2docfx/venv/1/Lib/site-packages/pygments/lexers/apdlexer.py +593 -0
  799. py2docfx/venv/1/Lib/site-packages/pygments/lexers/apl.py +103 -0
  800. py2docfx/venv/1/Lib/site-packages/pygments/lexers/archetype.py +315 -0
  801. py2docfx/venv/1/Lib/site-packages/pygments/lexers/arrow.py +116 -0
  802. py2docfx/venv/1/Lib/site-packages/pygments/lexers/arturo.py +249 -0
  803. py2docfx/venv/1/Lib/site-packages/pygments/lexers/asc.py +55 -0
  804. py2docfx/venv/1/Lib/site-packages/pygments/lexers/asm.py +1050 -0
  805. py2docfx/venv/1/Lib/site-packages/pygments/lexers/asn1.py +178 -0
  806. py2docfx/venv/1/Lib/site-packages/pygments/lexers/automation.py +379 -0
  807. py2docfx/venv/1/Lib/site-packages/pygments/lexers/bare.py +101 -0
  808. py2docfx/venv/1/Lib/site-packages/pygments/lexers/basic.py +656 -0
  809. py2docfx/venv/1/Lib/site-packages/pygments/lexers/bdd.py +57 -0
  810. py2docfx/venv/1/Lib/site-packages/pygments/lexers/berry.py +99 -0
  811. py2docfx/venv/1/Lib/site-packages/pygments/lexers/bibtex.py +159 -0
  812. py2docfx/venv/1/Lib/site-packages/pygments/lexers/blueprint.py +173 -0
  813. py2docfx/venv/1/Lib/site-packages/pygments/lexers/boa.py +97 -0
  814. py2docfx/venv/1/Lib/site-packages/pygments/lexers/bqn.py +109 -0
  815. py2docfx/venv/1/Lib/site-packages/pygments/lexers/business.py +625 -0
  816. py2docfx/venv/1/Lib/site-packages/pygments/lexers/c_cpp.py +414 -0
  817. py2docfx/venv/1/Lib/site-packages/pygments/lexers/c_like.py +738 -0
  818. py2docfx/venv/1/Lib/site-packages/pygments/lexers/capnproto.py +74 -0
  819. py2docfx/venv/1/Lib/site-packages/pygments/lexers/carbon.py +95 -0
  820. py2docfx/venv/1/Lib/site-packages/pygments/lexers/cddl.py +172 -0
  821. py2docfx/venv/1/Lib/site-packages/pygments/lexers/chapel.py +139 -0
  822. py2docfx/venv/1/Lib/site-packages/pygments/lexers/clean.py +180 -0
  823. py2docfx/venv/1/Lib/site-packages/pygments/lexers/comal.py +81 -0
  824. py2docfx/venv/1/Lib/site-packages/pygments/lexers/compiled.py +35 -0
  825. py2docfx/venv/1/Lib/site-packages/pygments/lexers/configs.py +1424 -0
  826. py2docfx/venv/1/Lib/site-packages/pygments/lexers/console.py +114 -0
  827. py2docfx/venv/1/Lib/site-packages/pygments/lexers/cplint.py +43 -0
  828. py2docfx/venv/1/Lib/site-packages/pygments/lexers/crystal.py +364 -0
  829. py2docfx/venv/1/Lib/site-packages/pygments/lexers/csound.py +466 -0
  830. py2docfx/venv/1/Lib/site-packages/pygments/lexers/css.py +602 -0
  831. py2docfx/venv/1/Lib/site-packages/pygments/lexers/d.py +259 -0
  832. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dalvik.py +126 -0
  833. py2docfx/venv/1/Lib/site-packages/pygments/lexers/data.py +763 -0
  834. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dax.py +135 -0
  835. py2docfx/venv/1/Lib/site-packages/pygments/lexers/devicetree.py +108 -0
  836. py2docfx/venv/1/Lib/site-packages/pygments/lexers/diff.py +169 -0
  837. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dns.py +109 -0
  838. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dotnet.py +846 -0
  839. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dsls.py +970 -0
  840. py2docfx/venv/1/Lib/site-packages/pygments/lexers/dylan.py +279 -0
  841. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ecl.py +144 -0
  842. py2docfx/venv/1/Lib/site-packages/pygments/lexers/eiffel.py +68 -0
  843. py2docfx/venv/1/Lib/site-packages/pygments/lexers/elm.py +123 -0
  844. py2docfx/venv/1/Lib/site-packages/pygments/lexers/elpi.py +172 -0
  845. py2docfx/venv/1/Lib/site-packages/pygments/lexers/email.py +132 -0
  846. py2docfx/venv/1/Lib/site-packages/pygments/lexers/erlang.py +526 -0
  847. py2docfx/venv/1/Lib/site-packages/pygments/lexers/esoteric.py +300 -0
  848. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ezhil.py +76 -0
  849. py2docfx/venv/1/Lib/site-packages/pygments/lexers/factor.py +363 -0
  850. py2docfx/venv/1/Lib/site-packages/pygments/lexers/fantom.py +251 -0
  851. py2docfx/venv/1/Lib/site-packages/pygments/lexers/felix.py +275 -0
  852. py2docfx/venv/1/Lib/site-packages/pygments/lexers/fift.py +68 -0
  853. py2docfx/venv/1/Lib/site-packages/pygments/lexers/floscript.py +81 -0
  854. py2docfx/venv/1/Lib/site-packages/pygments/lexers/forth.py +178 -0
  855. py2docfx/venv/1/Lib/site-packages/pygments/lexers/fortran.py +212 -0
  856. py2docfx/venv/1/Lib/site-packages/pygments/lexers/foxpro.py +427 -0
  857. py2docfx/venv/1/Lib/site-packages/pygments/lexers/freefem.py +893 -0
  858. py2docfx/venv/1/Lib/site-packages/pygments/lexers/func.py +110 -0
  859. py2docfx/venv/1/Lib/site-packages/pygments/lexers/functional.py +21 -0
  860. py2docfx/venv/1/Lib/site-packages/pygments/lexers/futhark.py +105 -0
  861. py2docfx/venv/1/Lib/site-packages/pygments/lexers/gcodelexer.py +35 -0
  862. py2docfx/venv/1/Lib/site-packages/pygments/lexers/gdscript.py +189 -0
  863. py2docfx/venv/1/Lib/site-packages/pygments/lexers/go.py +97 -0
  864. py2docfx/venv/1/Lib/site-packages/pygments/lexers/grammar_notation.py +262 -0
  865. py2docfx/venv/1/Lib/site-packages/pygments/lexers/graph.py +108 -0
  866. py2docfx/venv/1/Lib/site-packages/pygments/lexers/graphics.py +794 -0
  867. py2docfx/venv/1/Lib/site-packages/pygments/lexers/graphql.py +176 -0
  868. py2docfx/venv/1/Lib/site-packages/pygments/lexers/graphviz.py +58 -0
  869. py2docfx/venv/1/Lib/site-packages/pygments/lexers/gsql.py +103 -0
  870. py2docfx/venv/1/Lib/site-packages/pygments/lexers/haskell.py +866 -0
  871. py2docfx/venv/1/Lib/site-packages/pygments/lexers/haxe.py +935 -0
  872. py2docfx/venv/1/Lib/site-packages/pygments/lexers/hdl.py +466 -0
  873. py2docfx/venv/1/Lib/site-packages/pygments/lexers/hexdump.py +102 -0
  874. py2docfx/venv/1/Lib/site-packages/pygments/lexers/html.py +626 -0
  875. py2docfx/venv/1/Lib/site-packages/pygments/lexers/idl.py +284 -0
  876. py2docfx/venv/1/Lib/site-packages/pygments/lexers/igor.py +435 -0
  877. py2docfx/venv/1/Lib/site-packages/pygments/lexers/inferno.py +95 -0
  878. py2docfx/venv/1/Lib/site-packages/pygments/lexers/installers.py +325 -0
  879. py2docfx/venv/1/Lib/site-packages/pygments/lexers/int_fiction.py +1370 -0
  880. py2docfx/venv/1/Lib/site-packages/pygments/lexers/iolang.py +61 -0
  881. py2docfx/venv/1/Lib/site-packages/pygments/lexers/j.py +151 -0
  882. py2docfx/venv/1/Lib/site-packages/pygments/lexers/javascript.py +1587 -0
  883. py2docfx/venv/1/Lib/site-packages/pygments/lexers/jmespath.py +69 -0
  884. py2docfx/venv/1/Lib/site-packages/pygments/lexers/jslt.py +94 -0
  885. py2docfx/venv/1/Lib/site-packages/pygments/lexers/jsonnet.py +169 -0
  886. py2docfx/venv/1/Lib/site-packages/pygments/lexers/jsx.py +75 -0
  887. py2docfx/venv/1/Lib/site-packages/pygments/lexers/julia.py +293 -0
  888. py2docfx/venv/1/Lib/site-packages/pygments/lexers/jvm.py +1802 -0
  889. py2docfx/venv/1/Lib/site-packages/pygments/lexers/kuin.py +332 -0
  890. py2docfx/venv/1/Lib/site-packages/pygments/lexers/kusto.py +93 -0
  891. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ldap.py +155 -0
  892. py2docfx/venv/1/Lib/site-packages/pygments/lexers/lean.py +241 -0
  893. py2docfx/venv/1/Lib/site-packages/pygments/lexers/lilypond.py +225 -0
  894. py2docfx/venv/1/Lib/site-packages/pygments/lexers/lisp.py +3146 -0
  895. py2docfx/venv/1/Lib/site-packages/pygments/lexers/macaulay2.py +1788 -0
  896. py2docfx/venv/1/Lib/site-packages/pygments/lexers/make.py +212 -0
  897. py2docfx/venv/1/Lib/site-packages/pygments/lexers/markup.py +1654 -0
  898. py2docfx/venv/1/Lib/site-packages/pygments/lexers/math.py +21 -0
  899. py2docfx/venv/1/Lib/site-packages/pygments/lexers/matlab.py +3306 -0
  900. py2docfx/venv/1/Lib/site-packages/pygments/lexers/maxima.py +84 -0
  901. py2docfx/venv/1/Lib/site-packages/pygments/lexers/meson.py +139 -0
  902. py2docfx/venv/1/Lib/site-packages/pygments/lexers/mime.py +210 -0
  903. py2docfx/venv/1/Lib/site-packages/pygments/lexers/minecraft.py +391 -0
  904. py2docfx/venv/1/Lib/site-packages/pygments/lexers/mips.py +130 -0
  905. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ml.py +958 -0
  906. py2docfx/venv/1/Lib/site-packages/pygments/lexers/modeling.py +366 -0
  907. py2docfx/venv/1/Lib/site-packages/pygments/lexers/modula2.py +1579 -0
  908. py2docfx/venv/1/Lib/site-packages/pygments/lexers/mojo.py +704 -0
  909. py2docfx/venv/1/Lib/site-packages/pygments/lexers/monte.py +203 -0
  910. py2docfx/venv/1/Lib/site-packages/pygments/lexers/mosel.py +447 -0
  911. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ncl.py +894 -0
  912. py2docfx/venv/1/Lib/site-packages/pygments/lexers/nimrod.py +199 -0
  913. py2docfx/venv/1/Lib/site-packages/pygments/lexers/nit.py +63 -0
  914. py2docfx/venv/1/Lib/site-packages/pygments/lexers/nix.py +144 -0
  915. py2docfx/venv/1/Lib/site-packages/pygments/lexers/oberon.py +120 -0
  916. py2docfx/venv/1/Lib/site-packages/pygments/lexers/objective.py +513 -0
  917. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ooc.py +84 -0
  918. py2docfx/venv/1/Lib/site-packages/pygments/lexers/openscad.py +96 -0
  919. py2docfx/venv/1/Lib/site-packages/pygments/lexers/other.py +41 -0
  920. py2docfx/venv/1/Lib/site-packages/pygments/lexers/parasail.py +78 -0
  921. py2docfx/venv/1/Lib/site-packages/pygments/lexers/parsers.py +798 -0
  922. py2docfx/venv/1/Lib/site-packages/pygments/lexers/pascal.py +644 -0
  923. py2docfx/venv/1/Lib/site-packages/pygments/lexers/pawn.py +202 -0
  924. py2docfx/venv/1/Lib/site-packages/pygments/lexers/perl.py +733 -0
  925. py2docfx/venv/1/Lib/site-packages/pygments/lexers/phix.py +363 -0
  926. py2docfx/venv/1/Lib/site-packages/pygments/lexers/php.py +334 -0
  927. py2docfx/venv/1/Lib/site-packages/pygments/lexers/pointless.py +70 -0
  928. py2docfx/venv/1/Lib/site-packages/pygments/lexers/pony.py +93 -0
  929. py2docfx/venv/1/Lib/site-packages/pygments/lexers/praat.py +303 -0
  930. py2docfx/venv/1/Lib/site-packages/pygments/lexers/procfile.py +41 -0
  931. py2docfx/venv/1/Lib/site-packages/pygments/lexers/prolog.py +318 -0
  932. py2docfx/venv/1/Lib/site-packages/pygments/lexers/promql.py +176 -0
  933. py2docfx/venv/1/Lib/site-packages/pygments/lexers/prql.py +251 -0
  934. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ptx.py +119 -0
  935. py2docfx/venv/1/Lib/site-packages/pygments/lexers/python.py +1198 -0
  936. py2docfx/venv/1/Lib/site-packages/pygments/lexers/q.py +187 -0
  937. py2docfx/venv/1/Lib/site-packages/pygments/lexers/qlik.py +117 -0
  938. py2docfx/venv/1/Lib/site-packages/pygments/lexers/qvt.py +153 -0
  939. py2docfx/venv/1/Lib/site-packages/pygments/lexers/r.py +192 -0
  940. py2docfx/venv/1/Lib/site-packages/pygments/lexers/rdf.py +468 -0
  941. py2docfx/venv/1/Lib/site-packages/pygments/lexers/rebol.py +419 -0
  942. py2docfx/venv/1/Lib/site-packages/pygments/lexers/resource.py +83 -0
  943. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ride.py +138 -0
  944. py2docfx/venv/1/Lib/site-packages/pygments/lexers/rita.py +42 -0
  945. py2docfx/venv/1/Lib/site-packages/pygments/lexers/rnc.py +66 -0
  946. py2docfx/venv/1/Lib/site-packages/pygments/lexers/roboconf.py +81 -0
  947. py2docfx/venv/1/Lib/site-packages/pygments/lexers/robotframework.py +551 -0
  948. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ruby.py +518 -0
  949. py2docfx/venv/1/Lib/site-packages/pygments/lexers/rust.py +222 -0
  950. py2docfx/venv/1/Lib/site-packages/pygments/lexers/sas.py +227 -0
  951. py2docfx/venv/1/Lib/site-packages/pygments/lexers/savi.py +171 -0
  952. py2docfx/venv/1/Lib/site-packages/pygments/lexers/scdoc.py +85 -0
  953. py2docfx/venv/1/Lib/site-packages/pygments/lexers/scripting.py +1598 -0
  954. py2docfx/venv/1/Lib/site-packages/pygments/lexers/sgf.py +59 -0
  955. py2docfx/venv/1/Lib/site-packages/pygments/lexers/shell.py +898 -0
  956. py2docfx/venv/1/Lib/site-packages/pygments/lexers/sieve.py +78 -0
  957. py2docfx/venv/1/Lib/site-packages/pygments/lexers/slash.py +183 -0
  958. py2docfx/venv/1/Lib/site-packages/pygments/lexers/smalltalk.py +194 -0
  959. py2docfx/venv/1/Lib/site-packages/pygments/lexers/smithy.py +77 -0
  960. py2docfx/venv/1/Lib/site-packages/pygments/lexers/smv.py +78 -0
  961. py2docfx/venv/1/Lib/site-packages/pygments/lexers/snobol.py +82 -0
  962. py2docfx/venv/1/Lib/site-packages/pygments/lexers/solidity.py +87 -0
  963. py2docfx/venv/1/Lib/site-packages/pygments/lexers/soong.py +78 -0
  964. py2docfx/venv/1/Lib/site-packages/pygments/lexers/sophia.py +102 -0
  965. py2docfx/venv/1/Lib/site-packages/pygments/lexers/special.py +121 -0
  966. py2docfx/venv/1/Lib/site-packages/pygments/lexers/spice.py +70 -0
  967. py2docfx/venv/1/Lib/site-packages/pygments/lexers/sql.py +1033 -0
  968. py2docfx/venv/1/Lib/site-packages/pygments/lexers/srcinfo.py +62 -0
  969. py2docfx/venv/1/Lib/site-packages/pygments/lexers/stata.py +170 -0
  970. py2docfx/venv/1/Lib/site-packages/pygments/lexers/supercollider.py +94 -0
  971. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tact.py +303 -0
  972. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tal.py +77 -0
  973. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tcl.py +148 -0
  974. py2docfx/venv/1/Lib/site-packages/pygments/lexers/teal.py +88 -0
  975. py2docfx/venv/1/Lib/site-packages/pygments/lexers/templates.py +2355 -0
  976. py2docfx/venv/1/Lib/site-packages/pygments/lexers/teraterm.py +325 -0
  977. py2docfx/venv/1/Lib/site-packages/pygments/lexers/testing.py +209 -0
  978. py2docfx/venv/1/Lib/site-packages/pygments/lexers/text.py +27 -0
  979. py2docfx/venv/1/Lib/site-packages/pygments/lexers/textedit.py +205 -0
  980. py2docfx/venv/1/Lib/site-packages/pygments/lexers/textfmts.py +436 -0
  981. py2docfx/venv/1/Lib/site-packages/pygments/lexers/theorem.py +410 -0
  982. py2docfx/venv/1/Lib/site-packages/pygments/lexers/thingsdb.py +140 -0
  983. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tlb.py +59 -0
  984. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tls.py +54 -0
  985. py2docfx/venv/1/Lib/site-packages/pygments/lexers/tnt.py +270 -0
  986. py2docfx/venv/1/Lib/site-packages/pygments/lexers/trafficscript.py +51 -0
  987. py2docfx/venv/1/Lib/site-packages/pygments/lexers/typoscript.py +216 -0
  988. py2docfx/venv/1/Lib/site-packages/pygments/lexers/typst.py +104 -0
  989. py2docfx/venv/1/Lib/site-packages/pygments/lexers/ul4.py +309 -0
  990. py2docfx/venv/1/Lib/site-packages/pygments/lexers/unicon.py +413 -0
  991. py2docfx/venv/1/Lib/site-packages/pygments/lexers/urbi.py +145 -0
  992. py2docfx/venv/1/Lib/site-packages/pygments/lexers/usd.py +85 -0
  993. py2docfx/venv/1/Lib/site-packages/pygments/lexers/varnish.py +189 -0
  994. py2docfx/venv/1/Lib/site-packages/pygments/lexers/verification.py +113 -0
  995. py2docfx/venv/1/Lib/site-packages/pygments/lexers/verifpal.py +65 -0
  996. py2docfx/venv/1/Lib/site-packages/pygments/lexers/vip.py +150 -0
  997. py2docfx/venv/1/Lib/site-packages/pygments/lexers/vyper.py +140 -0
  998. py2docfx/venv/1/Lib/site-packages/pygments/lexers/web.py +24 -0
  999. py2docfx/venv/1/Lib/site-packages/pygments/lexers/webassembly.py +119 -0
  1000. py2docfx/venv/1/Lib/site-packages/pygments/lexers/webidl.py +298 -0
  1001. py2docfx/venv/1/Lib/site-packages/pygments/lexers/webmisc.py +1006 -0
  1002. py2docfx/venv/1/Lib/site-packages/pygments/lexers/wgsl.py +406 -0
  1003. py2docfx/venv/1/Lib/site-packages/pygments/lexers/whiley.py +115 -0
  1004. py2docfx/venv/1/Lib/site-packages/pygments/lexers/wowtoc.py +120 -0
  1005. py2docfx/venv/1/Lib/site-packages/pygments/lexers/wren.py +98 -0
  1006. py2docfx/venv/1/Lib/site-packages/pygments/lexers/x10.py +66 -0
  1007. py2docfx/venv/1/Lib/site-packages/pygments/lexers/xorg.py +38 -0
  1008. py2docfx/venv/1/Lib/site-packages/pygments/lexers/yang.py +103 -0
  1009. py2docfx/venv/1/Lib/site-packages/pygments/lexers/yara.py +69 -0
  1010. py2docfx/venv/1/Lib/site-packages/pygments/lexers/zig.py +125 -0
  1011. py2docfx/venv/1/Lib/site-packages/pygments/modeline.py +43 -0
  1012. py2docfx/venv/1/Lib/site-packages/pygments/plugin.py +72 -0
  1013. py2docfx/venv/1/Lib/site-packages/pygments/regexopt.py +91 -0
  1014. py2docfx/venv/1/Lib/site-packages/pygments/scanner.py +104 -0
  1015. py2docfx/venv/1/Lib/site-packages/pygments/sphinxext.py +247 -0
  1016. py2docfx/venv/1/Lib/site-packages/pygments/style.py +203 -0
  1017. py2docfx/venv/1/Lib/site-packages/pygments/styles/__init__.py +61 -0
  1018. py2docfx/venv/1/Lib/site-packages/pygments/styles/_mapping.py +54 -0
  1019. py2docfx/venv/1/Lib/site-packages/pygments/styles/abap.py +32 -0
  1020. py2docfx/venv/1/Lib/site-packages/pygments/styles/algol.py +65 -0
  1021. py2docfx/venv/1/Lib/site-packages/pygments/styles/algol_nu.py +65 -0
  1022. py2docfx/venv/1/Lib/site-packages/pygments/styles/arduino.py +100 -0
  1023. py2docfx/venv/1/Lib/site-packages/pygments/styles/autumn.py +67 -0
  1024. py2docfx/venv/1/Lib/site-packages/pygments/styles/borland.py +53 -0
  1025. py2docfx/venv/1/Lib/site-packages/pygments/styles/bw.py +52 -0
  1026. py2docfx/venv/1/Lib/site-packages/pygments/styles/coffee.py +80 -0
  1027. py2docfx/venv/1/Lib/site-packages/pygments/styles/colorful.py +83 -0
  1028. py2docfx/venv/1/Lib/site-packages/pygments/styles/default.py +76 -0
  1029. py2docfx/venv/1/Lib/site-packages/pygments/styles/dracula.py +90 -0
  1030. py2docfx/venv/1/Lib/site-packages/pygments/styles/emacs.py +75 -0
  1031. py2docfx/venv/1/Lib/site-packages/pygments/styles/friendly.py +76 -0
  1032. py2docfx/venv/1/Lib/site-packages/pygments/styles/friendly_grayscale.py +80 -0
  1033. py2docfx/venv/1/Lib/site-packages/pygments/styles/fruity.py +47 -0
  1034. py2docfx/venv/1/Lib/site-packages/pygments/styles/gh_dark.py +113 -0
  1035. py2docfx/venv/1/Lib/site-packages/pygments/styles/gruvbox.py +118 -0
  1036. py2docfx/venv/1/Lib/site-packages/pygments/styles/igor.py +32 -0
  1037. py2docfx/venv/1/Lib/site-packages/pygments/styles/inkpot.py +72 -0
  1038. py2docfx/venv/1/Lib/site-packages/pygments/styles/lightbulb.py +110 -0
  1039. py2docfx/venv/1/Lib/site-packages/pygments/styles/lilypond.py +62 -0
  1040. py2docfx/venv/1/Lib/site-packages/pygments/styles/lovelace.py +100 -0
  1041. py2docfx/venv/1/Lib/site-packages/pygments/styles/manni.py +79 -0
  1042. py2docfx/venv/1/Lib/site-packages/pygments/styles/material.py +124 -0
  1043. py2docfx/venv/1/Lib/site-packages/pygments/styles/monokai.py +112 -0
  1044. py2docfx/venv/1/Lib/site-packages/pygments/styles/murphy.py +82 -0
  1045. py2docfx/venv/1/Lib/site-packages/pygments/styles/native.py +70 -0
  1046. py2docfx/venv/1/Lib/site-packages/pygments/styles/nord.py +156 -0
  1047. py2docfx/venv/1/Lib/site-packages/pygments/styles/onedark.py +63 -0
  1048. py2docfx/venv/1/Lib/site-packages/pygments/styles/paraiso_dark.py +124 -0
  1049. py2docfx/venv/1/Lib/site-packages/pygments/styles/paraiso_light.py +124 -0
  1050. py2docfx/venv/1/Lib/site-packages/pygments/styles/pastie.py +78 -0
  1051. py2docfx/venv/1/Lib/site-packages/pygments/styles/perldoc.py +73 -0
  1052. py2docfx/venv/1/Lib/site-packages/pygments/styles/rainbow_dash.py +95 -0
  1053. py2docfx/venv/1/Lib/site-packages/pygments/styles/rrt.py +39 -0
  1054. py2docfx/venv/1/Lib/site-packages/pygments/styles/sas.py +46 -0
  1055. py2docfx/venv/1/Lib/site-packages/pygments/styles/solarized.py +144 -0
  1056. py2docfx/venv/1/Lib/site-packages/pygments/styles/staroffice.py +31 -0
  1057. py2docfx/venv/1/Lib/site-packages/pygments/styles/stata_dark.py +42 -0
  1058. py2docfx/venv/1/Lib/site-packages/pygments/styles/stata_light.py +42 -0
  1059. py2docfx/venv/1/Lib/site-packages/pygments/styles/tango.py +143 -0
  1060. py2docfx/venv/1/Lib/site-packages/pygments/styles/trac.py +66 -0
  1061. py2docfx/venv/1/Lib/site-packages/pygments/styles/vim.py +67 -0
  1062. py2docfx/venv/1/Lib/site-packages/pygments/styles/vs.py +41 -0
  1063. py2docfx/venv/1/Lib/site-packages/pygments/styles/xcode.py +53 -0
  1064. py2docfx/venv/1/Lib/site-packages/pygments/styles/zenburn.py +83 -0
  1065. py2docfx/venv/1/Lib/site-packages/pygments/token.py +214 -0
  1066. py2docfx/venv/1/Lib/site-packages/pygments/unistring.py +153 -0
  1067. py2docfx/venv/1/Lib/site-packages/pygments/util.py +324 -0
  1068. py2docfx/venv/1/Lib/site-packages/requests/__init__.py +184 -0
  1069. py2docfx/venv/1/Lib/site-packages/requests/__version__.py +14 -0
  1070. py2docfx/venv/1/Lib/site-packages/requests/_internal_utils.py +50 -0
  1071. py2docfx/venv/1/Lib/site-packages/requests/adapters.py +719 -0
  1072. py2docfx/venv/1/Lib/site-packages/requests/api.py +157 -0
  1073. py2docfx/venv/1/Lib/site-packages/requests/auth.py +314 -0
  1074. py2docfx/venv/1/Lib/site-packages/requests/certs.py +17 -0
  1075. py2docfx/venv/1/Lib/site-packages/requests/compat.py +94 -0
  1076. py2docfx/venv/1/Lib/site-packages/requests/cookies.py +561 -0
  1077. py2docfx/venv/1/Lib/site-packages/requests/exceptions.py +151 -0
  1078. py2docfx/venv/1/Lib/site-packages/requests/help.py +134 -0
  1079. py2docfx/venv/1/Lib/site-packages/requests/hooks.py +33 -0
  1080. py2docfx/venv/1/Lib/site-packages/requests/models.py +1037 -0
  1081. py2docfx/venv/1/Lib/site-packages/requests/packages.py +23 -0
  1082. py2docfx/venv/1/Lib/site-packages/requests/sessions.py +831 -0
  1083. py2docfx/venv/1/Lib/site-packages/requests/status_codes.py +128 -0
  1084. py2docfx/venv/1/Lib/site-packages/requests/structures.py +99 -0
  1085. py2docfx/venv/1/Lib/site-packages/requests/utils.py +1096 -0
  1086. py2docfx/venv/1/Lib/site-packages/setuptools/__init__.py +290 -0
  1087. py2docfx/venv/1/Lib/site-packages/setuptools/_core_metadata.py +286 -0
  1088. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/__init__.py +14 -0
  1089. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/_log.py +3 -0
  1090. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/_macos_compat.py +12 -0
  1091. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/_modified.py +73 -0
  1092. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +604 -0
  1093. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/archive_util.py +264 -0
  1094. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/ccompiler.py +1256 -0
  1095. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/cmd.py +439 -0
  1096. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/__init__.py +23 -0
  1097. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/_framework_compat.py +54 -0
  1098. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/bdist.py +155 -0
  1099. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/bdist_dumb.py +140 -0
  1100. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/bdist_rpm.py +597 -0
  1101. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/build.py +156 -0
  1102. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +208 -0
  1103. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +796 -0
  1104. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/build_py.py +406 -0
  1105. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/build_scripts.py +170 -0
  1106. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/check.py +154 -0
  1107. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/clean.py +76 -0
  1108. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/config.py +369 -0
  1109. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install.py +811 -0
  1110. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install_data.py +94 -0
  1111. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install_egg_info.py +92 -0
  1112. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install_headers.py +44 -0
  1113. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install_lib.py +234 -0
  1114. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/install_scripts.py +61 -0
  1115. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/command/sdist.py +515 -0
  1116. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/compat/__init__.py +15 -0
  1117. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/compat/py38.py +34 -0
  1118. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/compat/py39.py +66 -0
  1119. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/core.py +286 -0
  1120. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/cygwinccompiler.py +339 -0
  1121. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/debug.py +5 -0
  1122. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/dep_util.py +14 -0
  1123. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/dir_util.py +249 -0
  1124. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/dist.py +1288 -0
  1125. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/errors.py +124 -0
  1126. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/extension.py +247 -0
  1127. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/fancy_getopt.py +469 -0
  1128. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/file_util.py +236 -0
  1129. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/filelist.py +369 -0
  1130. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/log.py +56 -0
  1131. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/spawn.py +117 -0
  1132. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/sysconfig.py +583 -0
  1133. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/__init__.py +42 -0
  1134. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/compat/__init__.py +0 -0
  1135. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/compat/py38.py +50 -0
  1136. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/support.py +134 -0
  1137. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_archive_util.py +353 -0
  1138. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_bdist.py +47 -0
  1139. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_bdist_dumb.py +78 -0
  1140. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_bdist_rpm.py +128 -0
  1141. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_build.py +47 -0
  1142. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_build_clib.py +134 -0
  1143. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +563 -0
  1144. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_build_py.py +196 -0
  1145. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_build_scripts.py +96 -0
  1146. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_ccompiler.py +91 -0
  1147. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_check.py +194 -0
  1148. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_clean.py +45 -0
  1149. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_cmd.py +107 -0
  1150. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_config_cmd.py +87 -0
  1151. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_core.py +130 -0
  1152. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_cygwinccompiler.py +81 -0
  1153. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_dir_util.py +112 -0
  1154. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_dist.py +545 -0
  1155. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_extension.py +108 -0
  1156. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_file_util.py +94 -0
  1157. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_filelist.py +336 -0
  1158. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_install.py +245 -0
  1159. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_install_data.py +74 -0
  1160. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_install_headers.py +33 -0
  1161. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_install_lib.py +110 -0
  1162. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_install_scripts.py +52 -0
  1163. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_log.py +12 -0
  1164. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_mingwccompiler.py +56 -0
  1165. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_modified.py +126 -0
  1166. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_msvccompiler.py +137 -0
  1167. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_sdist.py +470 -0
  1168. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_spawn.py +131 -0
  1169. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_sysconfig.py +319 -0
  1170. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_text_file.py +127 -0
  1171. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_unixccompiler.py +351 -0
  1172. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_util.py +243 -0
  1173. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_version.py +80 -0
  1174. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
  1175. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/tests/unix_compat.py +17 -0
  1176. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/text_file.py +286 -0
  1177. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +402 -0
  1178. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/util.py +505 -0
  1179. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/version.py +349 -0
  1180. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/versionpredicate.py +175 -0
  1181. py2docfx/venv/1/Lib/site-packages/setuptools/_distutils/zosccompiler.py +229 -0
  1182. py2docfx/venv/1/Lib/site-packages/setuptools/_entry_points.py +90 -0
  1183. py2docfx/venv/1/Lib/site-packages/setuptools/_imp.py +87 -0
  1184. py2docfx/venv/1/Lib/site-packages/setuptools/_importlib.py +12 -0
  1185. py2docfx/venv/1/Lib/site-packages/setuptools/_itertools.py +23 -0
  1186. py2docfx/venv/1/Lib/site-packages/setuptools/_normalization.py +144 -0
  1187. py2docfx/venv/1/Lib/site-packages/setuptools/_path.py +87 -0
  1188. py2docfx/venv/1/Lib/site-packages/setuptools/_reqs.py +41 -0
  1189. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/__init__.py +27 -0
  1190. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/autoasync.py +142 -0
  1191. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/autocommand.py +70 -0
  1192. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/automain.py +59 -0
  1193. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/autoparse.py +333 -0
  1194. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/autocommand/errors.py +23 -0
  1195. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/backports/__init__.py +1 -0
  1196. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/backports/tarfile/__init__.py +2937 -0
  1197. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/backports/tarfile/__main__.py +5 -0
  1198. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py +0 -0
  1199. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py +24 -0
  1200. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/__init__.py +1083 -0
  1201. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py +83 -0
  1202. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_collections.py +30 -0
  1203. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_compat.py +57 -0
  1204. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_functools.py +104 -0
  1205. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py +73 -0
  1206. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_meta.py +67 -0
  1207. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/_text.py +99 -0
  1208. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py +0 -0
  1209. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py +22 -0
  1210. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py +36 -0
  1211. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py +21 -0
  1212. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/__init__.py +36 -0
  1213. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/_adapters.py +168 -0
  1214. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/_common.py +210 -0
  1215. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/_itertools.py +38 -0
  1216. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/abc.py +171 -0
  1217. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/__init__.py +0 -0
  1218. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py38.py +11 -0
  1219. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/compat/py39.py +10 -0
  1220. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/functional.py +81 -0
  1221. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/__init__.py +0 -0
  1222. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/future/adapters.py +95 -0
  1223. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/readers.py +194 -0
  1224. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/simple.py +106 -0
  1225. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/__init__.py +0 -0
  1226. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/_path.py +56 -0
  1227. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/__init__.py +0 -0
  1228. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py312.py +18 -0
  1229. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/compat/py39.py +10 -0
  1230. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/__init__.py +0 -0
  1231. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py +0 -0
  1232. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/__init__.py +0 -0
  1233. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py +0 -0
  1234. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py +0 -0
  1235. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py +104 -0
  1236. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_contents.py +43 -0
  1237. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_custom.py +47 -0
  1238. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_files.py +117 -0
  1239. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_functional.py +242 -0
  1240. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_open.py +89 -0
  1241. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_path.py +65 -0
  1242. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_read.py +97 -0
  1243. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_reader.py +145 -0
  1244. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/test_resource.py +241 -0
  1245. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/util.py +164 -0
  1246. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/importlib_resources/tests/zip.py +32 -0
  1247. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/inflect/__init__.py +3986 -0
  1248. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/inflect/compat/__init__.py +0 -0
  1249. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/inflect/compat/py38.py +7 -0
  1250. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/collections/__init__.py +1091 -0
  1251. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/context.py +361 -0
  1252. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/functools/__init__.py +633 -0
  1253. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/__init__.py +624 -0
  1254. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/layouts.py +25 -0
  1255. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py +33 -0
  1256. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py +21 -0
  1257. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py +6 -0
  1258. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py +6 -0
  1259. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/more_itertools/__init__.py +6 -0
  1260. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/more_itertools/more.py +4806 -0
  1261. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/more_itertools/recipes.py +1046 -0
  1262. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/__init__.py +15 -0
  1263. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_elffile.py +110 -0
  1264. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_manylinux.py +262 -0
  1265. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_musllinux.py +85 -0
  1266. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_parser.py +354 -0
  1267. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_structures.py +61 -0
  1268. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/_tokenizer.py +194 -0
  1269. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/markers.py +325 -0
  1270. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/metadata.py +804 -0
  1271. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/requirements.py +91 -0
  1272. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/specifiers.py +1009 -0
  1273. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/tags.py +568 -0
  1274. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/utils.py +174 -0
  1275. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/packaging/version.py +563 -0
  1276. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/__init__.py +627 -0
  1277. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/__main__.py +55 -0
  1278. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/android.py +249 -0
  1279. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/api.py +292 -0
  1280. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/macos.py +130 -0
  1281. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/unix.py +275 -0
  1282. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/version.py +16 -0
  1283. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/platformdirs/windows.py +272 -0
  1284. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/tomli/__init__.py +11 -0
  1285. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/tomli/_parser.py +691 -0
  1286. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/tomli/_re.py +107 -0
  1287. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/tomli/_types.py +10 -0
  1288. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/__init__.py +48 -0
  1289. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_checkers.py +993 -0
  1290. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_config.py +108 -0
  1291. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_decorators.py +235 -0
  1292. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_exceptions.py +42 -0
  1293. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_functions.py +308 -0
  1294. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_importhook.py +213 -0
  1295. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_memo.py +48 -0
  1296. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py +127 -0
  1297. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_suppression.py +86 -0
  1298. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_transformer.py +1229 -0
  1299. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_union_transformer.py +55 -0
  1300. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typeguard/_utils.py +173 -0
  1301. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/typing_extensions.py +3641 -0
  1302. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +3 -0
  1303. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/__main__.py +23 -0
  1304. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +26 -0
  1305. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +595 -0
  1306. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +155 -0
  1307. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +273 -0
  1308. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/cli/pack.py +85 -0
  1309. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/cli/tags.py +139 -0
  1310. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/cli/unpack.py +30 -0
  1311. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +469 -0
  1312. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +180 -0
  1313. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/util.py +26 -0
  1314. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/__init__.py +0 -0
  1315. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py +0 -0
  1316. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py +108 -0
  1317. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py +260 -0
  1318. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py +83 -0
  1319. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py +356 -0
  1320. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py +61 -0
  1321. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py +192 -0
  1322. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py +253 -0
  1323. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py +90 -0
  1324. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py +1011 -0
  1325. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py +571 -0
  1326. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py +172 -0
  1327. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py +561 -0
  1328. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +196 -0
  1329. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/zipp/__init__.py +501 -0
  1330. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/zipp/compat/__init__.py +0 -0
  1331. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/zipp/compat/py310.py +11 -0
  1332. py2docfx/venv/1/Lib/site-packages/setuptools/_vendor/zipp/glob.py +106 -0
  1333. py2docfx/venv/1/Lib/site-packages/setuptools/archive_util.py +217 -0
  1334. py2docfx/venv/1/Lib/site-packages/setuptools/build_meta.py +530 -0
  1335. py2docfx/venv/1/Lib/site-packages/setuptools/command/__init__.py +13 -0
  1336. py2docfx/venv/1/Lib/site-packages/setuptools/command/_requirestxt.py +131 -0
  1337. py2docfx/venv/1/Lib/site-packages/setuptools/command/alias.py +78 -0
  1338. py2docfx/venv/1/Lib/site-packages/setuptools/command/bdist_egg.py +465 -0
  1339. py2docfx/venv/1/Lib/site-packages/setuptools/command/bdist_rpm.py +42 -0
  1340. py2docfx/venv/1/Lib/site-packages/setuptools/command/bdist_wheel.py +635 -0
  1341. py2docfx/venv/1/Lib/site-packages/setuptools/command/build.py +135 -0
  1342. py2docfx/venv/1/Lib/site-packages/setuptools/command/build_clib.py +110 -0
  1343. py2docfx/venv/1/Lib/site-packages/setuptools/command/build_ext.py +468 -0
  1344. py2docfx/venv/1/Lib/site-packages/setuptools/command/build_py.py +404 -0
  1345. py2docfx/venv/1/Lib/site-packages/setuptools/command/develop.py +195 -0
  1346. py2docfx/venv/1/Lib/site-packages/setuptools/command/dist_info.py +107 -0
  1347. py2docfx/venv/1/Lib/site-packages/setuptools/command/easy_install.py +2388 -0
  1348. py2docfx/venv/1/Lib/site-packages/setuptools/command/editable_wheel.py +927 -0
  1349. py2docfx/venv/1/Lib/site-packages/setuptools/command/egg_info.py +717 -0
  1350. py2docfx/venv/1/Lib/site-packages/setuptools/command/install.py +165 -0
  1351. py2docfx/venv/1/Lib/site-packages/setuptools/command/install_egg_info.py +58 -0
  1352. py2docfx/venv/1/Lib/site-packages/setuptools/command/install_lib.py +134 -0
  1353. py2docfx/venv/1/Lib/site-packages/setuptools/command/install_scripts.py +73 -0
  1354. py2docfx/venv/1/Lib/site-packages/setuptools/command/rotate.py +65 -0
  1355. py2docfx/venv/1/Lib/site-packages/setuptools/command/saveopts.py +21 -0
  1356. py2docfx/venv/1/Lib/site-packages/setuptools/command/sdist.py +216 -0
  1357. py2docfx/venv/1/Lib/site-packages/setuptools/command/setopt.py +141 -0
  1358. py2docfx/venv/1/Lib/site-packages/setuptools/command/test.py +45 -0
  1359. py2docfx/venv/1/Lib/site-packages/setuptools/compat/__init__.py +0 -0
  1360. py2docfx/venv/1/Lib/site-packages/setuptools/compat/py310.py +9 -0
  1361. py2docfx/venv/1/Lib/site-packages/setuptools/compat/py311.py +27 -0
  1362. py2docfx/venv/1/Lib/site-packages/setuptools/compat/py312.py +13 -0
  1363. py2docfx/venv/1/Lib/site-packages/setuptools/compat/py39.py +9 -0
  1364. py2docfx/venv/1/Lib/site-packages/setuptools/config/__init__.py +43 -0
  1365. py2docfx/venv/1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +457 -0
  1366. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/__init__.py +34 -0
  1367. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/error_reporting.py +336 -0
  1368. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +52 -0
  1369. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +51 -0
  1370. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +1319 -0
  1371. py2docfx/venv/1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +375 -0
  1372. py2docfx/venv/1/Lib/site-packages/setuptools/config/expand.py +443 -0
  1373. py2docfx/venv/1/Lib/site-packages/setuptools/config/pyprojecttoml.py +466 -0
  1374. py2docfx/venv/1/Lib/site-packages/setuptools/config/setupcfg.py +780 -0
  1375. py2docfx/venv/1/Lib/site-packages/setuptools/depends.py +166 -0
  1376. py2docfx/venv/1/Lib/site-packages/setuptools/discovery.py +607 -0
  1377. py2docfx/venv/1/Lib/site-packages/setuptools/dist.py +955 -0
  1378. py2docfx/venv/1/Lib/site-packages/setuptools/errors.py +72 -0
  1379. py2docfx/venv/1/Lib/site-packages/setuptools/extension.py +165 -0
  1380. py2docfx/venv/1/Lib/site-packages/setuptools/glob.py +165 -0
  1381. py2docfx/venv/1/Lib/site-packages/setuptools/installer.py +145 -0
  1382. py2docfx/venv/1/Lib/site-packages/setuptools/launch.py +36 -0
  1383. py2docfx/venv/1/Lib/site-packages/setuptools/logging.py +40 -0
  1384. py2docfx/venv/1/Lib/site-packages/setuptools/modified.py +8 -0
  1385. py2docfx/venv/1/Lib/site-packages/setuptools/monkey.py +126 -0
  1386. py2docfx/venv/1/Lib/site-packages/setuptools/msvc.py +1515 -0
  1387. py2docfx/venv/1/Lib/site-packages/setuptools/namespaces.py +106 -0
  1388. py2docfx/venv/1/Lib/site-packages/setuptools/package_index.py +1148 -0
  1389. py2docfx/venv/1/Lib/site-packages/setuptools/sandbox.py +529 -0
  1390. py2docfx/venv/1/Lib/site-packages/setuptools/tests/__init__.py +13 -0
  1391. py2docfx/venv/1/Lib/site-packages/setuptools/tests/compat/__init__.py +0 -0
  1392. py2docfx/venv/1/Lib/site-packages/setuptools/tests/compat/py39.py +3 -0
  1393. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/__init__.py +0 -0
  1394. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/downloads/__init__.py +57 -0
  1395. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/downloads/preload.py +18 -0
  1396. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +511 -0
  1397. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/test_expand.py +221 -0
  1398. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml.py +396 -0
  1399. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +99 -0
  1400. py2docfx/venv/1/Lib/site-packages/setuptools/tests/config/test_setupcfg.py +969 -0
  1401. py2docfx/venv/1/Lib/site-packages/setuptools/tests/contexts.py +145 -0
  1402. py2docfx/venv/1/Lib/site-packages/setuptools/tests/environment.py +95 -0
  1403. py2docfx/venv/1/Lib/site-packages/setuptools/tests/fixtures.py +157 -0
  1404. py2docfx/venv/1/Lib/site-packages/setuptools/tests/integration/__init__.py +0 -0
  1405. py2docfx/venv/1/Lib/site-packages/setuptools/tests/integration/helpers.py +77 -0
  1406. py2docfx/venv/1/Lib/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +224 -0
  1407. py2docfx/venv/1/Lib/site-packages/setuptools/tests/mod_with_constant.py +1 -0
  1408. py2docfx/venv/1/Lib/site-packages/setuptools/tests/namespaces.py +90 -0
  1409. py2docfx/venv/1/Lib/site-packages/setuptools/tests/script-with-bom.py +1 -0
  1410. py2docfx/venv/1/Lib/site-packages/setuptools/tests/server.py +86 -0
  1411. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_archive_util.py +36 -0
  1412. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_bdist_deprecations.py +28 -0
  1413. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_bdist_egg.py +69 -0
  1414. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +621 -0
  1415. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_build.py +33 -0
  1416. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_build_clib.py +84 -0
  1417. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_build_ext.py +291 -0
  1418. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_build_meta.py +970 -0
  1419. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_build_py.py +480 -0
  1420. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_config_discovery.py +647 -0
  1421. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_core_metadata.py +389 -0
  1422. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_depends.py +15 -0
  1423. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_develop.py +175 -0
  1424. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_dist.py +280 -0
  1425. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_dist_info.py +210 -0
  1426. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_distutils_adoption.py +159 -0
  1427. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_easy_install.py +1468 -0
  1428. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_editable_install.py +1285 -0
  1429. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_egg_info.py +1285 -0
  1430. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_extern.py +15 -0
  1431. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_find_packages.py +218 -0
  1432. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_find_py_modules.py +73 -0
  1433. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_glob.py +45 -0
  1434. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_install_scripts.py +89 -0
  1435. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_logging.py +76 -0
  1436. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_manifest.py +631 -0
  1437. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_namespaces.py +138 -0
  1438. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_packageindex.py +278 -0
  1439. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_sandbox.py +134 -0
  1440. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_sdist.py +975 -0
  1441. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_setopt.py +40 -0
  1442. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_setuptools.py +289 -0
  1443. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_unicode_utils.py +10 -0
  1444. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_virtualenv.py +113 -0
  1445. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_warnings.py +106 -0
  1446. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_wheel.py +707 -0
  1447. py2docfx/venv/1/Lib/site-packages/setuptools/tests/test_windows_wrappers.py +259 -0
  1448. py2docfx/venv/1/Lib/site-packages/setuptools/tests/text.py +4 -0
  1449. py2docfx/venv/1/Lib/site-packages/setuptools/tests/textwrap.py +6 -0
  1450. py2docfx/venv/1/Lib/site-packages/setuptools/unicode_utils.py +102 -0
  1451. py2docfx/venv/1/Lib/site-packages/setuptools/version.py +6 -0
  1452. py2docfx/venv/1/Lib/site-packages/setuptools/warnings.py +107 -0
  1453. py2docfx/venv/1/Lib/site-packages/setuptools/wheel.py +236 -0
  1454. py2docfx/venv/1/Lib/site-packages/setuptools/windows_support.py +30 -0
  1455. py2docfx/venv/1/Lib/site-packages/snowballstemmer/__init__.py +83 -0
  1456. py2docfx/venv/1/Lib/site-packages/snowballstemmer/among.py +13 -0
  1457. py2docfx/venv/1/Lib/site-packages/snowballstemmer/arabic_stemmer.py +1199 -0
  1458. py2docfx/venv/1/Lib/site-packages/snowballstemmer/armenian_stemmer.py +316 -0
  1459. py2docfx/venv/1/Lib/site-packages/snowballstemmer/basestemmer.py +323 -0
  1460. py2docfx/venv/1/Lib/site-packages/snowballstemmer/basque_stemmer.py +683 -0
  1461. py2docfx/venv/1/Lib/site-packages/snowballstemmer/catalan_stemmer.py +784 -0
  1462. py2docfx/venv/1/Lib/site-packages/snowballstemmer/danish_stemmer.py +221 -0
  1463. py2docfx/venv/1/Lib/site-packages/snowballstemmer/dutch_stemmer.py +468 -0
  1464. py2docfx/venv/1/Lib/site-packages/snowballstemmer/english_stemmer.py +731 -0
  1465. py2docfx/venv/1/Lib/site-packages/snowballstemmer/finnish_stemmer.py +548 -0
  1466. py2docfx/venv/1/Lib/site-packages/snowballstemmer/french_stemmer.py +967 -0
  1467. py2docfx/venv/1/Lib/site-packages/snowballstemmer/german_stemmer.py +415 -0
  1468. py2docfx/venv/1/Lib/site-packages/snowballstemmer/greek_stemmer.py +2271 -0
  1469. py2docfx/venv/1/Lib/site-packages/snowballstemmer/hindi_stemmer.py +173 -0
  1470. py2docfx/venv/1/Lib/site-packages/snowballstemmer/hungarian_stemmer.py +520 -0
  1471. py2docfx/venv/1/Lib/site-packages/snowballstemmer/indonesian_stemmer.py +319 -0
  1472. py2docfx/venv/1/Lib/site-packages/snowballstemmer/irish_stemmer.py +276 -0
  1473. py2docfx/venv/1/Lib/site-packages/snowballstemmer/italian_stemmer.py +715 -0
  1474. py2docfx/venv/1/Lib/site-packages/snowballstemmer/lithuanian_stemmer.py +469 -0
  1475. py2docfx/venv/1/Lib/site-packages/snowballstemmer/nepali_stemmer.py +274 -0
  1476. py2docfx/venv/1/Lib/site-packages/snowballstemmer/norwegian_stemmer.py +191 -0
  1477. py2docfx/venv/1/Lib/site-packages/snowballstemmer/porter_stemmer.py +506 -0
  1478. py2docfx/venv/1/Lib/site-packages/snowballstemmer/portuguese_stemmer.py +659 -0
  1479. py2docfx/venv/1/Lib/site-packages/snowballstemmer/romanian_stemmer.py +633 -0
  1480. py2docfx/venv/1/Lib/site-packages/snowballstemmer/russian_stemmer.py +492 -0
  1481. py2docfx/venv/1/Lib/site-packages/snowballstemmer/serbian_stemmer.py +3497 -0
  1482. py2docfx/venv/1/Lib/site-packages/snowballstemmer/spanish_stemmer.py +708 -0
  1483. py2docfx/venv/1/Lib/site-packages/snowballstemmer/swedish_stemmer.py +189 -0
  1484. py2docfx/venv/1/Lib/site-packages/snowballstemmer/tamil_stemmer.py +1788 -0
  1485. py2docfx/venv/1/Lib/site-packages/snowballstemmer/turkish_stemmer.py +1803 -0
  1486. py2docfx/venv/1/Lib/site-packages/snowballstemmer/yiddish_stemmer.py +855 -0
  1487. py2docfx/venv/1/Lib/site-packages/sphinx/__init__.py +54 -0
  1488. py2docfx/venv/1/Lib/site-packages/sphinx/__main__.py +5 -0
  1489. py2docfx/venv/1/Lib/site-packages/sphinx/addnodes.py +564 -0
  1490. py2docfx/venv/1/Lib/site-packages/sphinx/application.py +1344 -0
  1491. py2docfx/venv/1/Lib/site-packages/sphinx/builders/__init__.py +671 -0
  1492. py2docfx/venv/1/Lib/site-packages/sphinx/builders/_epub_base.py +708 -0
  1493. py2docfx/venv/1/Lib/site-packages/sphinx/builders/changes.py +159 -0
  1494. py2docfx/venv/1/Lib/site-packages/sphinx/builders/dirhtml.py +51 -0
  1495. py2docfx/venv/1/Lib/site-packages/sphinx/builders/dummy.py +46 -0
  1496. py2docfx/venv/1/Lib/site-packages/sphinx/builders/epub3.py +293 -0
  1497. py2docfx/venv/1/Lib/site-packages/sphinx/builders/gettext.py +306 -0
  1498. py2docfx/venv/1/Lib/site-packages/sphinx/builders/html/__init__.py +1419 -0
  1499. py2docfx/venv/1/Lib/site-packages/sphinx/builders/html/transforms.py +84 -0
  1500. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/__init__.py +546 -0
  1501. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/constants.py +210 -0
  1502. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/nodes.py +37 -0
  1503. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/theming.py +132 -0
  1504. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/transforms.py +632 -0
  1505. py2docfx/venv/1/Lib/site-packages/sphinx/builders/latex/util.py +48 -0
  1506. py2docfx/venv/1/Lib/site-packages/sphinx/builders/linkcheck.py +598 -0
  1507. py2docfx/venv/1/Lib/site-packages/sphinx/builders/manpage.py +125 -0
  1508. py2docfx/venv/1/Lib/site-packages/sphinx/builders/singlehtml.py +194 -0
  1509. py2docfx/venv/1/Lib/site-packages/sphinx/builders/texinfo.py +224 -0
  1510. py2docfx/venv/1/Lib/site-packages/sphinx/builders/text.py +89 -0
  1511. py2docfx/venv/1/Lib/site-packages/sphinx/builders/xml.py +117 -0
  1512. py2docfx/venv/1/Lib/site-packages/sphinx/cmd/__init__.py +1 -0
  1513. py2docfx/venv/1/Lib/site-packages/sphinx/cmd/build.py +324 -0
  1514. py2docfx/venv/1/Lib/site-packages/sphinx/cmd/make_mode.py +161 -0
  1515. py2docfx/venv/1/Lib/site-packages/sphinx/cmd/quickstart.py +609 -0
  1516. py2docfx/venv/1/Lib/site-packages/sphinx/config.py +520 -0
  1517. py2docfx/venv/1/Lib/site-packages/sphinx/deprecation.py +83 -0
  1518. py2docfx/venv/1/Lib/site-packages/sphinx/directives/__init__.py +340 -0
  1519. py2docfx/venv/1/Lib/site-packages/sphinx/directives/code.py +483 -0
  1520. py2docfx/venv/1/Lib/site-packages/sphinx/directives/other.py +393 -0
  1521. py2docfx/venv/1/Lib/site-packages/sphinx/directives/patches.py +189 -0
  1522. py2docfx/venv/1/Lib/site-packages/sphinx/domains/__init__.py +403 -0
  1523. py2docfx/venv/1/Lib/site-packages/sphinx/domains/c.py +3880 -0
  1524. py2docfx/venv/1/Lib/site-packages/sphinx/domains/changeset.py +160 -0
  1525. py2docfx/venv/1/Lib/site-packages/sphinx/domains/citation.py +153 -0
  1526. py2docfx/venv/1/Lib/site-packages/sphinx/domains/cpp.py +8162 -0
  1527. py2docfx/venv/1/Lib/site-packages/sphinx/domains/index.py +122 -0
  1528. py2docfx/venv/1/Lib/site-packages/sphinx/domains/javascript.py +499 -0
  1529. py2docfx/venv/1/Lib/site-packages/sphinx/domains/math.py +150 -0
  1530. py2docfx/venv/1/Lib/site-packages/sphinx/domains/python.py +1521 -0
  1531. py2docfx/venv/1/Lib/site-packages/sphinx/domains/rst.py +303 -0
  1532. py2docfx/venv/1/Lib/site-packages/sphinx/domains/std.py +1155 -0
  1533. py2docfx/venv/1/Lib/site-packages/sphinx/environment/__init__.py +730 -0
  1534. py2docfx/venv/1/Lib/site-packages/sphinx/environment/adapters/__init__.py +1 -0
  1535. py2docfx/venv/1/Lib/site-packages/sphinx/environment/adapters/asset.py +15 -0
  1536. py2docfx/venv/1/Lib/site-packages/sphinx/environment/adapters/indexentries.py +172 -0
  1537. py2docfx/venv/1/Lib/site-packages/sphinx/environment/adapters/toctree.py +340 -0
  1538. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/__init__.py +73 -0
  1539. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/asset.py +141 -0
  1540. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/dependencies.py +54 -0
  1541. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/metadata.py +68 -0
  1542. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/title.py +59 -0
  1543. py2docfx/venv/1/Lib/site-packages/sphinx/environment/collectors/toctree.py +350 -0
  1544. py2docfx/venv/1/Lib/site-packages/sphinx/errors.py +127 -0
  1545. py2docfx/venv/1/Lib/site-packages/sphinx/events.py +120 -0
  1546. py2docfx/venv/1/Lib/site-packages/sphinx/ext/__init__.py +1 -0
  1547. py2docfx/venv/1/Lib/site-packages/sphinx/ext/apidoc.py +470 -0
  1548. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/__init__.py +2793 -0
  1549. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/directive.py +148 -0
  1550. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/importer.py +307 -0
  1551. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/mock.py +195 -0
  1552. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/preserve_defaults.py +124 -0
  1553. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/type_comment.py +131 -0
  1554. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autodoc/typehints.py +216 -0
  1555. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autosectionlabel.py +66 -0
  1556. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autosummary/__init__.py +837 -0
  1557. py2docfx/venv/1/Lib/site-packages/sphinx/ext/autosummary/generate.py +646 -0
  1558. py2docfx/venv/1/Lib/site-packages/sphinx/ext/coverage.py +315 -0
  1559. py2docfx/venv/1/Lib/site-packages/sphinx/ext/doctest.py +561 -0
  1560. py2docfx/venv/1/Lib/site-packages/sphinx/ext/duration.py +90 -0
  1561. py2docfx/venv/1/Lib/site-packages/sphinx/ext/extlinks.py +120 -0
  1562. py2docfx/venv/1/Lib/site-packages/sphinx/ext/githubpages.py +31 -0
  1563. py2docfx/venv/1/Lib/site-packages/sphinx/ext/graphviz.py +416 -0
  1564. py2docfx/venv/1/Lib/site-packages/sphinx/ext/ifconfig.py +78 -0
  1565. py2docfx/venv/1/Lib/site-packages/sphinx/ext/imgconverter.py +92 -0
  1566. py2docfx/venv/1/Lib/site-packages/sphinx/ext/imgmath.py +390 -0
  1567. py2docfx/venv/1/Lib/site-packages/sphinx/ext/inheritance_diagram.py +474 -0
  1568. py2docfx/venv/1/Lib/site-packages/sphinx/ext/intersphinx.py +684 -0
  1569. py2docfx/venv/1/Lib/site-packages/sphinx/ext/linkcode.py +73 -0
  1570. py2docfx/venv/1/Lib/site-packages/sphinx/ext/mathjax.py +122 -0
  1571. py2docfx/venv/1/Lib/site-packages/sphinx/ext/napoleon/__init__.py +474 -0
  1572. py2docfx/venv/1/Lib/site-packages/sphinx/ext/napoleon/docstring.py +1356 -0
  1573. py2docfx/venv/1/Lib/site-packages/sphinx/ext/napoleon/iterators.py +235 -0
  1574. py2docfx/venv/1/Lib/site-packages/sphinx/ext/todo.py +243 -0
  1575. py2docfx/venv/1/Lib/site-packages/sphinx/ext/viewcode.py +341 -0
  1576. py2docfx/venv/1/Lib/site-packages/sphinx/extension.py +82 -0
  1577. py2docfx/venv/1/Lib/site-packages/sphinx/highlighting.py +184 -0
  1578. py2docfx/venv/1/Lib/site-packages/sphinx/io.py +221 -0
  1579. py2docfx/venv/1/Lib/site-packages/sphinx/jinja2glue.py +217 -0
  1580. py2docfx/venv/1/Lib/site-packages/sphinx/locale/__init__.py +261 -0
  1581. py2docfx/venv/1/Lib/site-packages/sphinx/parsers.py +96 -0
  1582. py2docfx/venv/1/Lib/site-packages/sphinx/project.py +94 -0
  1583. py2docfx/venv/1/Lib/site-packages/sphinx/pycode/__init__.py +171 -0
  1584. py2docfx/venv/1/Lib/site-packages/sphinx/pycode/ast.py +211 -0
  1585. py2docfx/venv/1/Lib/site-packages/sphinx/pycode/parser.py +573 -0
  1586. py2docfx/venv/1/Lib/site-packages/sphinx/pygments_styles.py +87 -0
  1587. py2docfx/venv/1/Lib/site-packages/sphinx/registry.py +513 -0
  1588. py2docfx/venv/1/Lib/site-packages/sphinx/roles.py +428 -0
  1589. py2docfx/venv/1/Lib/site-packages/sphinx/search/__init__.py +593 -0
  1590. py2docfx/venv/1/Lib/site-packages/sphinx/search/da.py +120 -0
  1591. py2docfx/venv/1/Lib/site-packages/sphinx/search/de.py +303 -0
  1592. py2docfx/venv/1/Lib/site-packages/sphinx/search/en.py +220 -0
  1593. py2docfx/venv/1/Lib/site-packages/sphinx/search/es.py +363 -0
  1594. py2docfx/venv/1/Lib/site-packages/sphinx/search/fi.py +113 -0
  1595. py2docfx/venv/1/Lib/site-packages/sphinx/search/fr.py +199 -0
  1596. py2docfx/venv/1/Lib/site-packages/sphinx/search/hu.py +226 -0
  1597. py2docfx/venv/1/Lib/site-packages/sphinx/search/it.py +316 -0
  1598. py2docfx/venv/1/Lib/site-packages/sphinx/search/ja.py +536 -0
  1599. py2docfx/venv/1/Lib/site-packages/sphinx/search/nl.py +127 -0
  1600. py2docfx/venv/1/Lib/site-packages/sphinx/search/no.py +202 -0
  1601. py2docfx/venv/1/Lib/site-packages/sphinx/search/pt.py +261 -0
  1602. py2docfx/venv/1/Lib/site-packages/sphinx/search/ro.py +22 -0
  1603. py2docfx/venv/1/Lib/site-packages/sphinx/search/ru.py +251 -0
  1604. py2docfx/venv/1/Lib/site-packages/sphinx/search/sv.py +140 -0
  1605. py2docfx/venv/1/Lib/site-packages/sphinx/search/tr.py +22 -0
  1606. py2docfx/venv/1/Lib/site-packages/sphinx/search/zh.py +262 -0
  1607. py2docfx/venv/1/Lib/site-packages/sphinx/setup_command.py +192 -0
  1608. py2docfx/venv/1/Lib/site-packages/sphinx/testing/__init__.py +7 -0
  1609. py2docfx/venv/1/Lib/site-packages/sphinx/testing/comparer.py +97 -0
  1610. py2docfx/venv/1/Lib/site-packages/sphinx/testing/fixtures.py +250 -0
  1611. py2docfx/venv/1/Lib/site-packages/sphinx/testing/path.py +210 -0
  1612. py2docfx/venv/1/Lib/site-packages/sphinx/testing/restructuredtext.py +27 -0
  1613. py2docfx/venv/1/Lib/site-packages/sphinx/testing/util.py +206 -0
  1614. py2docfx/venv/1/Lib/site-packages/sphinx/theming.py +230 -0
  1615. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/__init__.py +419 -0
  1616. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/compact_bullet_list.py +88 -0
  1617. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/i18n.py +528 -0
  1618. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/post_transforms/__init__.py +279 -0
  1619. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/post_transforms/code.py +136 -0
  1620. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/post_transforms/images.py +271 -0
  1621. py2docfx/venv/1/Lib/site-packages/sphinx/transforms/references.py +47 -0
  1622. py2docfx/venv/1/Lib/site-packages/sphinx/util/__init__.py +407 -0
  1623. py2docfx/venv/1/Lib/site-packages/sphinx/util/build_phase.py +12 -0
  1624. py2docfx/venv/1/Lib/site-packages/sphinx/util/cfamily.py +462 -0
  1625. py2docfx/venv/1/Lib/site-packages/sphinx/util/console.py +129 -0
  1626. py2docfx/venv/1/Lib/site-packages/sphinx/util/display.py +87 -0
  1627. py2docfx/venv/1/Lib/site-packages/sphinx/util/docfields.py +368 -0
  1628. py2docfx/venv/1/Lib/site-packages/sphinx/util/docstrings.py +88 -0
  1629. py2docfx/venv/1/Lib/site-packages/sphinx/util/docutils.py +621 -0
  1630. py2docfx/venv/1/Lib/site-packages/sphinx/util/exceptions.py +67 -0
  1631. py2docfx/venv/1/Lib/site-packages/sphinx/util/fileutil.py +97 -0
  1632. py2docfx/venv/1/Lib/site-packages/sphinx/util/http_date.py +20 -0
  1633. py2docfx/venv/1/Lib/site-packages/sphinx/util/i18n.py +262 -0
  1634. py2docfx/venv/1/Lib/site-packages/sphinx/util/images.py +113 -0
  1635. py2docfx/venv/1/Lib/site-packages/sphinx/util/inspect.py +811 -0
  1636. py2docfx/venv/1/Lib/site-packages/sphinx/util/inventory.py +170 -0
  1637. py2docfx/venv/1/Lib/site-packages/sphinx/util/jsdump.py +201 -0
  1638. py2docfx/venv/1/Lib/site-packages/sphinx/util/logging.py +603 -0
  1639. py2docfx/venv/1/Lib/site-packages/sphinx/util/matching.py +166 -0
  1640. py2docfx/venv/1/Lib/site-packages/sphinx/util/math.py +58 -0
  1641. py2docfx/venv/1/Lib/site-packages/sphinx/util/nodes.py +629 -0
  1642. py2docfx/venv/1/Lib/site-packages/sphinx/util/osutil.py +221 -0
  1643. py2docfx/venv/1/Lib/site-packages/sphinx/util/parallel.py +151 -0
  1644. py2docfx/venv/1/Lib/site-packages/sphinx/util/png.py +43 -0
  1645. py2docfx/venv/1/Lib/site-packages/sphinx/util/requests.py +92 -0
  1646. py2docfx/venv/1/Lib/site-packages/sphinx/util/rst.py +110 -0
  1647. py2docfx/venv/1/Lib/site-packages/sphinx/util/stemmer/__init__.py +62 -0
  1648. py2docfx/venv/1/Lib/site-packages/sphinx/util/tags.py +81 -0
  1649. py2docfx/venv/1/Lib/site-packages/sphinx/util/template.py +132 -0
  1650. py2docfx/venv/1/Lib/site-packages/sphinx/util/texescape.py +153 -0
  1651. py2docfx/venv/1/Lib/site-packages/sphinx/util/typing.py +352 -0
  1652. py2docfx/venv/1/Lib/site-packages/sphinx/versioning.py +176 -0
  1653. py2docfx/venv/1/Lib/site-packages/sphinx/writers/__init__.py +1 -0
  1654. py2docfx/venv/1/Lib/site-packages/sphinx/writers/_html4.py +858 -0
  1655. py2docfx/venv/1/Lib/site-packages/sphinx/writers/html.py +45 -0
  1656. py2docfx/venv/1/Lib/site-packages/sphinx/writers/html5.py +824 -0
  1657. py2docfx/venv/1/Lib/site-packages/sphinx/writers/latex.py +2116 -0
  1658. py2docfx/venv/1/Lib/site-packages/sphinx/writers/manpage.py +459 -0
  1659. py2docfx/venv/1/Lib/site-packages/sphinx/writers/texinfo.py +1562 -0
  1660. py2docfx/venv/1/Lib/site-packages/sphinx/writers/text.py +1182 -0
  1661. py2docfx/venv/1/Lib/site-packages/sphinx/writers/xml.py +49 -0
  1662. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/applehelp/__init__.py +276 -0
  1663. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/devhelp/__init__.py +143 -0
  1664. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/htmlhelp/__init__.py +340 -0
  1665. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/jsmath/__init__.py +92 -0
  1666. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/jsmath/version.py +11 -0
  1667. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/qthelp/__init__.py +266 -0
  1668. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/serializinghtml/__init__.py +180 -0
  1669. py2docfx/venv/1/Lib/site-packages/sphinxcontrib/serializinghtml/jsonimpl.py +33 -0
  1670. py2docfx/venv/1/Lib/site-packages/urllib3/__init__.py +211 -0
  1671. py2docfx/venv/1/Lib/site-packages/urllib3/_base_connection.py +172 -0
  1672. py2docfx/venv/1/Lib/site-packages/urllib3/_collections.py +483 -0
  1673. py2docfx/venv/1/Lib/site-packages/urllib3/_request_methods.py +278 -0
  1674. py2docfx/venv/1/Lib/site-packages/urllib3/_version.py +16 -0
  1675. py2docfx/venv/1/Lib/site-packages/urllib3/connection.py +1033 -0
  1676. py2docfx/venv/1/Lib/site-packages/urllib3/connectionpool.py +1182 -0
  1677. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/__init__.py +0 -0
  1678. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/emscripten/__init__.py +16 -0
  1679. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/emscripten/connection.py +254 -0
  1680. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/emscripten/fetch.py +418 -0
  1681. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/emscripten/request.py +22 -0
  1682. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/emscripten/response.py +285 -0
  1683. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/pyopenssl.py +552 -0
  1684. py2docfx/venv/1/Lib/site-packages/urllib3/contrib/socks.py +228 -0
  1685. py2docfx/venv/1/Lib/site-packages/urllib3/exceptions.py +321 -0
  1686. py2docfx/venv/1/Lib/site-packages/urllib3/fields.py +341 -0
  1687. py2docfx/venv/1/Lib/site-packages/urllib3/filepost.py +89 -0
  1688. py2docfx/venv/1/Lib/site-packages/urllib3/http2/__init__.py +53 -0
  1689. py2docfx/venv/1/Lib/site-packages/urllib3/http2/connection.py +356 -0
  1690. py2docfx/venv/1/Lib/site-packages/urllib3/http2/probe.py +87 -0
  1691. py2docfx/venv/1/Lib/site-packages/urllib3/poolmanager.py +637 -0
  1692. py2docfx/venv/1/Lib/site-packages/urllib3/response.py +1265 -0
  1693. py2docfx/venv/1/Lib/site-packages/urllib3/util/__init__.py +42 -0
  1694. py2docfx/venv/1/Lib/site-packages/urllib3/util/connection.py +137 -0
  1695. py2docfx/venv/1/Lib/site-packages/urllib3/util/proxy.py +43 -0
  1696. py2docfx/venv/1/Lib/site-packages/urllib3/util/request.py +256 -0
  1697. py2docfx/venv/1/Lib/site-packages/urllib3/util/response.py +101 -0
  1698. py2docfx/venv/1/Lib/site-packages/urllib3/util/retry.py +533 -0
  1699. py2docfx/venv/1/Lib/site-packages/urllib3/util/ssl_.py +513 -0
  1700. py2docfx/venv/1/Lib/site-packages/urllib3/util/ssl_match_hostname.py +159 -0
  1701. py2docfx/venv/1/Lib/site-packages/urllib3/util/ssltransport.py +276 -0
  1702. py2docfx/venv/1/Lib/site-packages/urllib3/util/timeout.py +275 -0
  1703. py2docfx/venv/1/Lib/site-packages/urllib3/util/url.py +471 -0
  1704. py2docfx/venv/1/Lib/site-packages/urllib3/util/util.py +42 -0
  1705. py2docfx/venv/1/Lib/site-packages/urllib3/util/wait.py +124 -0
  1706. py2docfx/venv/1/Lib/site-packages/wheel/__init__.py +3 -0
  1707. py2docfx/venv/1/Lib/site-packages/wheel/__main__.py +23 -0
  1708. py2docfx/venv/1/Lib/site-packages/wheel/_bdist_wheel.py +604 -0
  1709. py2docfx/venv/1/Lib/site-packages/wheel/_setuptools_logging.py +26 -0
  1710. py2docfx/venv/1/Lib/site-packages/wheel/bdist_wheel.py +11 -0
  1711. py2docfx/venv/1/Lib/site-packages/wheel/cli/__init__.py +155 -0
  1712. py2docfx/venv/1/Lib/site-packages/wheel/cli/convert.py +273 -0
  1713. py2docfx/venv/1/Lib/site-packages/wheel/cli/pack.py +85 -0
  1714. py2docfx/venv/1/Lib/site-packages/wheel/cli/tags.py +139 -0
  1715. py2docfx/venv/1/Lib/site-packages/wheel/cli/unpack.py +30 -0
  1716. py2docfx/venv/1/Lib/site-packages/wheel/macosx_libfile.py +482 -0
  1717. py2docfx/venv/1/Lib/site-packages/wheel/metadata.py +183 -0
  1718. py2docfx/venv/1/Lib/site-packages/wheel/util.py +26 -0
  1719. py2docfx/venv/1/Lib/site-packages/wheel/vendored/__init__.py +0 -0
  1720. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/__init__.py +0 -0
  1721. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_elffile.py +108 -0
  1722. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_manylinux.py +260 -0
  1723. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_musllinux.py +83 -0
  1724. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_parser.py +356 -0
  1725. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_structures.py +61 -0
  1726. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/_tokenizer.py +192 -0
  1727. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/markers.py +253 -0
  1728. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/requirements.py +90 -0
  1729. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/specifiers.py +1011 -0
  1730. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/tags.py +571 -0
  1731. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/utils.py +172 -0
  1732. py2docfx/venv/1/Lib/site-packages/wheel/vendored/packaging/version.py +561 -0
  1733. py2docfx/venv/1/Lib/site-packages/wheel/wheelfile.py +227 -0
  1734. py2docfx/venv/1/Lib/site-packages/yaml/__init__.py +390 -0
  1735. py2docfx/venv/1/Lib/site-packages/yaml/composer.py +139 -0
  1736. py2docfx/venv/1/Lib/site-packages/yaml/constructor.py +748 -0
  1737. py2docfx/venv/1/Lib/site-packages/yaml/cyaml.py +101 -0
  1738. py2docfx/venv/1/Lib/site-packages/yaml/dumper.py +62 -0
  1739. py2docfx/venv/1/Lib/site-packages/yaml/emitter.py +1137 -0
  1740. py2docfx/venv/1/Lib/site-packages/yaml/error.py +75 -0
  1741. py2docfx/venv/1/Lib/site-packages/yaml/events.py +86 -0
  1742. py2docfx/venv/1/Lib/site-packages/yaml/loader.py +63 -0
  1743. py2docfx/venv/1/Lib/site-packages/yaml/nodes.py +49 -0
  1744. py2docfx/venv/1/Lib/site-packages/yaml/parser.py +589 -0
  1745. py2docfx/venv/1/Lib/site-packages/yaml/reader.py +185 -0
  1746. py2docfx/venv/1/Lib/site-packages/yaml/representer.py +389 -0
  1747. py2docfx/venv/1/Lib/site-packages/yaml/resolver.py +227 -0
  1748. py2docfx/venv/1/Lib/site-packages/yaml/scanner.py +1435 -0
  1749. py2docfx/venv/1/Lib/site-packages/yaml/serializer.py +111 -0
  1750. py2docfx/venv/1/Lib/site-packages/yaml/tokens.py +104 -0
  1751. py2docfx/venv/1/Scripts/rst2html.py +23 -0
  1752. py2docfx/venv/1/Scripts/rst2html4.py +26 -0
  1753. py2docfx/venv/1/Scripts/rst2html5.py +33 -0
  1754. py2docfx/venv/1/Scripts/rst2latex.py +26 -0
  1755. py2docfx/venv/1/Scripts/rst2man.py +27 -0
  1756. py2docfx/venv/1/Scripts/rst2odt.py +28 -0
  1757. py2docfx/venv/1/Scripts/rst2odt_prepstyles.py +65 -0
  1758. py2docfx/venv/1/Scripts/rst2pseudoxml.py +23 -0
  1759. py2docfx/venv/1/Scripts/rst2s5.py +24 -0
  1760. py2docfx/venv/1/Scripts/rst2xetex.py +27 -0
  1761. py2docfx/venv/1/Scripts/rst2xml.py +23 -0
  1762. py2docfx/venv/1/Scripts/rstpep2html.py +25 -0
  1763. {py2docfx-0.1.11.dev1869610.dist-info → py2docfx-0.1.11.dev1872139.dist-info}/METADATA +1 -1
  1764. {py2docfx-0.1.11.dev1869610.dist-info → py2docfx-0.1.11.dev1872139.dist-info}/RECORD +1766 -7
  1765. {py2docfx-0.1.11.dev1869610.dist-info → py2docfx-0.1.11.dev1872139.dist-info}/WHEEL +0 -0
  1766. {py2docfx-0.1.11.dev1869610.dist-info → py2docfx-0.1.11.dev1872139.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2314 @@
1
+ # $Id: nodes.py 9067 2022-06-10 11:08:46Z milde $
2
+ # Author: David Goodger <goodger@python.org>
3
+ # Maintainer: docutils-develop@lists.sourceforge.net
4
+ # Copyright: This module has been placed in the public domain.
5
+
6
+ """
7
+ Docutils document tree element class library.
8
+
9
+ Classes in CamelCase are abstract base classes or auxiliary classes. The one
10
+ exception is `Text`, for a text (PCDATA) node; uppercase is used to
11
+ differentiate from element classes. Classes in lower_case_with_underscores
12
+ are element classes, matching the XML element generic identifiers in the DTD_.
13
+
14
+ The position of each node (the level at which it can occur) is significant and
15
+ is represented by abstract base classes (`Root`, `Structural`, `Body`,
16
+ `Inline`, etc.). Certain transformations will be easier because we can use
17
+ ``isinstance(node, base_class)`` to determine the position of the node in the
18
+ hierarchy.
19
+
20
+ .. _DTD: https://docutils.sourceforge.io/docs/ref/docutils.dtd
21
+ """
22
+
23
+ __docformat__ = 'reStructuredText'
24
+
25
+ from collections import Counter
26
+ import re
27
+ import sys
28
+ import warnings
29
+ import unicodedata
30
+ # import xml.dom.minidom as dom # -> conditional import in Node.asdom()
31
+ # and document.asdom()
32
+
33
+ # import docutils.transforms # -> conditional import in document.__init__()
34
+
35
+
36
+ # ==============================
37
+ # Functional Node Base Classes
38
+ # ==============================
39
+
40
+ class Node:
41
+ """Abstract base class of nodes in a document tree."""
42
+
43
+ parent = None
44
+ """Back-reference to the Node immediately containing this Node."""
45
+
46
+ source = None
47
+ """Path or description of the input source which generated this Node."""
48
+
49
+ line = None
50
+ """The line number (1-based) of the beginning of this Node in `source`."""
51
+
52
+ _document = None
53
+
54
+ @property
55
+ def document(self):
56
+ """Return the `document` root node of the tree containing this Node.
57
+ """
58
+ try:
59
+ return self._document or self.parent.document
60
+ except AttributeError:
61
+ return None
62
+
63
+ @document.setter
64
+ def document(self, value):
65
+ self._document = value
66
+
67
+ def __bool__(self):
68
+ """
69
+ Node instances are always true, even if they're empty. A node is more
70
+ than a simple container. Its boolean "truth" does not depend on
71
+ having one or more subnodes in the doctree.
72
+
73
+ Use `len()` to check node length.
74
+ """
75
+ return True
76
+
77
+ def asdom(self, dom=None):
78
+ """Return a DOM **fragment** representation of this Node."""
79
+ if dom is None:
80
+ import xml.dom.minidom as dom
81
+ domroot = dom.Document()
82
+ return self._dom_node(domroot)
83
+
84
+ def pformat(self, indent=' ', level=0):
85
+ """
86
+ Return an indented pseudo-XML representation, for test purposes.
87
+
88
+ Override in subclasses.
89
+ """
90
+ raise NotImplementedError
91
+
92
+ def copy(self):
93
+ """Return a copy of self."""
94
+ raise NotImplementedError
95
+
96
+ def deepcopy(self):
97
+ """Return a deep copy of self (also copying children)."""
98
+ raise NotImplementedError
99
+
100
+ def astext(self):
101
+ """Return a string representation of this Node."""
102
+ raise NotImplementedError
103
+
104
+ def setup_child(self, child):
105
+ child.parent = self
106
+ if self.document:
107
+ child.document = self.document
108
+ if child.source is None:
109
+ child.source = self.document.current_source
110
+ if child.line is None:
111
+ child.line = self.document.current_line
112
+
113
+ def walk(self, visitor):
114
+ """
115
+ Traverse a tree of `Node` objects, calling the
116
+ `dispatch_visit()` method of `visitor` when entering each
117
+ node. (The `walkabout()` method is similar, except it also
118
+ calls the `dispatch_departure()` method before exiting each
119
+ node.)
120
+
121
+ This tree traversal supports limited in-place tree
122
+ modifications. Replacing one node with one or more nodes is
123
+ OK, as is removing an element. However, if the node removed
124
+ or replaced occurs after the current node, the old node will
125
+ still be traversed, and any new nodes will not.
126
+
127
+ Within ``visit`` methods (and ``depart`` methods for
128
+ `walkabout()`), `TreePruningException` subclasses may be raised
129
+ (`SkipChildren`, `SkipSiblings`, `SkipNode`, `SkipDeparture`).
130
+
131
+ Parameter `visitor`: A `NodeVisitor` object, containing a
132
+ ``visit`` implementation for each `Node` subclass encountered.
133
+
134
+ Return true if we should stop the traversal.
135
+ """
136
+ stop = False
137
+ visitor.document.reporter.debug(
138
+ 'docutils.nodes.Node.walk calling dispatch_visit for %s'
139
+ % self.__class__.__name__)
140
+ try:
141
+ try:
142
+ visitor.dispatch_visit(self)
143
+ except (SkipChildren, SkipNode):
144
+ return stop
145
+ except SkipDeparture: # not applicable; ignore
146
+ pass
147
+ children = self.children
148
+ try:
149
+ for child in children[:]:
150
+ if child.walk(visitor):
151
+ stop = True
152
+ break
153
+ except SkipSiblings:
154
+ pass
155
+ except StopTraversal:
156
+ stop = True
157
+ return stop
158
+
159
+ def walkabout(self, visitor):
160
+ """
161
+ Perform a tree traversal similarly to `Node.walk()` (which
162
+ see), except also call the `dispatch_departure()` method
163
+ before exiting each node.
164
+
165
+ Parameter `visitor`: A `NodeVisitor` object, containing a
166
+ ``visit`` and ``depart`` implementation for each `Node`
167
+ subclass encountered.
168
+
169
+ Return true if we should stop the traversal.
170
+ """
171
+ call_depart = True
172
+ stop = False
173
+ visitor.document.reporter.debug(
174
+ 'docutils.nodes.Node.walkabout calling dispatch_visit for %s'
175
+ % self.__class__.__name__)
176
+ try:
177
+ try:
178
+ visitor.dispatch_visit(self)
179
+ except SkipNode:
180
+ return stop
181
+ except SkipDeparture:
182
+ call_depart = False
183
+ children = self.children
184
+ try:
185
+ for child in children[:]:
186
+ if child.walkabout(visitor):
187
+ stop = True
188
+ break
189
+ except SkipSiblings:
190
+ pass
191
+ except SkipChildren:
192
+ pass
193
+ except StopTraversal:
194
+ stop = True
195
+ if call_depart:
196
+ visitor.document.reporter.debug(
197
+ 'docutils.nodes.Node.walkabout calling dispatch_departure '
198
+ 'for %s' % self.__class__.__name__)
199
+ visitor.dispatch_departure(self)
200
+ return stop
201
+
202
+ def _fast_findall(self, cls):
203
+ """Return iterator that only supports instance checks."""
204
+ if isinstance(self, cls):
205
+ yield self
206
+ for child in self.children:
207
+ yield from child._fast_findall(cls)
208
+
209
+ def _superfast_findall(self):
210
+ """Return iterator that doesn't check for a condition."""
211
+ # This is different from ``iter(self)`` implemented via
212
+ # __getitem__() and __len__() in the Element subclass,
213
+ # which yields only the direct children.
214
+ yield self
215
+ for child in self.children:
216
+ yield from child._superfast_findall()
217
+
218
+ def traverse(self, condition=None, include_self=True, descend=True,
219
+ siblings=False, ascend=False):
220
+ """Return list of nodes following `self`.
221
+
222
+ For looping, Node.findall() is faster and more memory efficient.
223
+ """
224
+ # traverse() may be eventually removed:
225
+ warnings.warn('nodes.Node.traverse() is obsoleted by Node.findall().',
226
+ PendingDeprecationWarning, stacklevel=2)
227
+ return list(self.findall(condition, include_self, descend,
228
+ siblings, ascend))
229
+
230
+ def findall(self, condition=None, include_self=True, descend=True,
231
+ siblings=False, ascend=False):
232
+ """
233
+ Return an iterator yielding nodes following `self`:
234
+
235
+ * self (if `include_self` is true)
236
+ * all descendants in tree traversal order (if `descend` is true)
237
+ * the following siblings (if `siblings` is true) and their
238
+ descendants (if also `descend` is true)
239
+ * the following siblings of the parent (if `ascend` is true) and
240
+ their descendants (if also `descend` is true), and so on.
241
+
242
+ If `condition` is not None, the iterator yields only nodes
243
+ for which ``condition(node)`` is true. If `condition` is a
244
+ node class ``cls``, it is equivalent to a function consisting
245
+ of ``return isinstance(node, cls)``.
246
+
247
+ If `ascend` is true, assume `siblings` to be true as well.
248
+
249
+ If the tree structure is modified during iteration, the result
250
+ is undefined.
251
+
252
+ For example, given the following tree::
253
+
254
+ <paragraph>
255
+ <emphasis> <--- emphasis.traverse() and
256
+ <strong> <--- strong.traverse() are called.
257
+ Foo
258
+ Bar
259
+ <reference name="Baz" refid="baz">
260
+ Baz
261
+
262
+ Then tuple(emphasis.traverse()) equals ::
263
+
264
+ (<emphasis>, <strong>, <#text: Foo>, <#text: Bar>)
265
+
266
+ and list(strong.traverse(ascend=True) equals ::
267
+
268
+ [<strong>, <#text: Foo>, <#text: Bar>, <reference>, <#text: Baz>]
269
+ """
270
+ if ascend:
271
+ siblings = True
272
+ # Check for special argument combinations that allow using an
273
+ # optimized version of traverse()
274
+ if include_self and descend and not siblings:
275
+ if condition is None:
276
+ yield from self._superfast_findall()
277
+ return
278
+ elif isinstance(condition, type):
279
+ yield from self._fast_findall(condition)
280
+ return
281
+ # Check if `condition` is a class (check for TypeType for Python
282
+ # implementations that use only new-style classes, like PyPy).
283
+ if isinstance(condition, type):
284
+ node_class = condition
285
+
286
+ def condition(node, node_class=node_class):
287
+ return isinstance(node, node_class)
288
+
289
+ if include_self and (condition is None or condition(self)):
290
+ yield self
291
+ if descend and len(self.children):
292
+ for child in self:
293
+ yield from child.findall(condition=condition,
294
+ include_self=True, descend=True,
295
+ siblings=False, ascend=False)
296
+ if siblings or ascend:
297
+ node = self
298
+ while node.parent:
299
+ index = node.parent.index(node)
300
+ # extra check since Text nodes have value-equality
301
+ while node.parent[index] is not node:
302
+ index = node.parent.index(node, index + 1)
303
+ for sibling in node.parent[index+1:]:
304
+ yield from sibling.findall(
305
+ condition=condition,
306
+ include_self=True, descend=descend,
307
+ siblings=False, ascend=False)
308
+ if not ascend:
309
+ break
310
+ else:
311
+ node = node.parent
312
+
313
+ def next_node(self, condition=None, include_self=False, descend=True,
314
+ siblings=False, ascend=False):
315
+ """
316
+ Return the first node in the iterator returned by findall(),
317
+ or None if the iterable is empty.
318
+
319
+ Parameter list is the same as of traverse. Note that `include_self`
320
+ defaults to False, though.
321
+ """
322
+ try:
323
+ return next(self.findall(condition, include_self,
324
+ descend, siblings, ascend))
325
+ except StopIteration:
326
+ return None
327
+
328
+ def previous_sibling(self):
329
+ """Return preceding sibling node or ``None``."""
330
+ try:
331
+ return self.parent[self.parent.index(self)-1]
332
+ except (AttributeError, IndexError):
333
+ return None
334
+
335
+
336
+ class reprunicode(str):
337
+ """
338
+ Deprecated backwards compatibility stub. Use the standard `str` instead.
339
+ """
340
+ def __init__(self, s):
341
+ warnings.warn('nodes.reprunicode() is not required with Python 3'
342
+ ' and will be removed in Docutils 0.21 or later.',
343
+ DeprecationWarning, stacklevel=2)
344
+ super().__init__()
345
+
346
+
347
+ def ensure_str(s):
348
+ """
349
+ Deprecated backwards compatibility stub returning `s`.
350
+ """
351
+ warnings.warn('nodes.ensure_str() is not required with Python 3'
352
+ ' and will be removed in Docutils 0.21 or later.',
353
+ DeprecationWarning, stacklevel=2)
354
+ return s
355
+
356
+
357
+ # definition moved here from `utils` to avoid circular import dependency
358
+ def unescape(text, restore_backslashes=False, respect_whitespace=False):
359
+ """
360
+ Return a string with nulls removed or restored to backslashes.
361
+ Backslash-escaped spaces are also removed.
362
+ """
363
+ # `respect_whitespace` is ignored (since introduction 2016-12-16)
364
+ if restore_backslashes:
365
+ return text.replace('\x00', '\\')
366
+ else:
367
+ for sep in ['\x00 ', '\x00\n', '\x00']:
368
+ text = ''.join(text.split(sep))
369
+ return text
370
+
371
+
372
+ class Text(Node, str):
373
+
374
+ """
375
+ Instances are terminal nodes (leaves) containing text only; no child
376
+ nodes or attributes. Initialize by passing a string to the constructor.
377
+
378
+ Access the raw (null-escaped) text with ``str(<instance>)``
379
+ and unescaped text with ``<instance>.astext()``.
380
+ """
381
+
382
+ tagname = '#text'
383
+
384
+ children = ()
385
+ """Text nodes have no children, and cannot have children."""
386
+
387
+ def __new__(cls, data, rawsource=None):
388
+ """Assert that `data` is not an array of bytes
389
+ and warn if the deprecated `rawsource` argument is used.
390
+ """
391
+ if isinstance(data, bytes):
392
+ raise TypeError('expecting str data, not bytes')
393
+ if rawsource is not None:
394
+ warnings.warn('nodes.Text: initialization argument "rawsource" '
395
+ 'is ignored and will be removed in Docutils 2.0.',
396
+ DeprecationWarning, stacklevel=2)
397
+ return str.__new__(cls, data)
398
+
399
+ def shortrepr(self, maxlen=18):
400
+ data = self
401
+ if len(data) > maxlen:
402
+ data = data[:maxlen-4] + ' ...'
403
+ return '<%s: %r>' % (self.tagname, str(data))
404
+
405
+ def __repr__(self):
406
+ return self.shortrepr(maxlen=68)
407
+
408
+ def _dom_node(self, domroot):
409
+ return domroot.createTextNode(str(self))
410
+
411
+ def astext(self):
412
+ return str(unescape(self))
413
+
414
+ def copy(self):
415
+ return self.__class__(str(self))
416
+
417
+ def deepcopy(self):
418
+ return self.copy()
419
+
420
+ def pformat(self, indent=' ', level=0):
421
+ try:
422
+ if self.document.settings.detailed:
423
+ tag = '%s%s' % (indent*level, '<#text>')
424
+ lines = (indent*(level+1) + repr(line)
425
+ for line in self.splitlines(True))
426
+ return '\n'.join((tag, *lines)) + '\n'
427
+ except AttributeError:
428
+ pass
429
+ indent = indent * level
430
+ lines = [indent+line for line in self.astext().splitlines()]
431
+ if not lines:
432
+ return ''
433
+ return '\n'.join(lines) + '\n'
434
+
435
+ # rstrip and lstrip are used by substitution definitions where
436
+ # they are expected to return a Text instance, this was formerly
437
+ # taken care of by UserString.
438
+
439
+ def rstrip(self, chars=None):
440
+ return self.__class__(str.rstrip(self, chars))
441
+
442
+ def lstrip(self, chars=None):
443
+ return self.__class__(str.lstrip(self, chars))
444
+
445
+
446
+ class Element(Node):
447
+
448
+ """
449
+ `Element` is the superclass to all specific elements.
450
+
451
+ Elements contain attributes and child nodes.
452
+ They can be described as a cross between a list and a dictionary.
453
+
454
+ Elements emulate dictionaries for external [#]_ attributes, indexing by
455
+ attribute name (a string). To set the attribute 'att' to 'value', do::
456
+
457
+ element['att'] = 'value'
458
+
459
+ .. [#] External attributes correspond to the XML element attributes.
460
+ From its `Node` superclass, Element also inherits "internal"
461
+ class attributes that are accessed using the standard syntax, e.g.
462
+ ``element.parent``.
463
+
464
+ There are two special attributes: 'ids' and 'names'. Both are
465
+ lists of unique identifiers: 'ids' conform to the regular expression
466
+ ``[a-z](-?[a-z0-9]+)*`` (see the make_id() function for rationale and
467
+ details). 'names' serve as user-friendly interfaces to IDs; they are
468
+ case- and whitespace-normalized (see the fully_normalize_name() function).
469
+
470
+ Elements emulate lists for child nodes (element nodes and/or text
471
+ nodes), indexing by integer. To get the first child node, use::
472
+
473
+ element[0]
474
+
475
+ to iterate over the child nodes (without descending), use::
476
+
477
+ for child in element:
478
+ ...
479
+
480
+ Elements may be constructed using the ``+=`` operator. To add one new
481
+ child node to element, do::
482
+
483
+ element += node
484
+
485
+ This is equivalent to ``element.append(node)``.
486
+
487
+ To add a list of multiple child nodes at once, use the same ``+=``
488
+ operator::
489
+
490
+ element += [node1, node2]
491
+
492
+ This is equivalent to ``element.extend([node1, node2])``.
493
+ """
494
+
495
+ basic_attributes = ('ids', 'classes', 'names', 'dupnames')
496
+ """Tuple of attributes which are defined for every Element-derived class
497
+ instance and can be safely transferred to a different node."""
498
+
499
+ local_attributes = ('backrefs',)
500
+ """Tuple of class-specific attributes that should not be copied with the
501
+ standard attributes when replacing a node.
502
+
503
+ NOTE: Derived classes should override this value to prevent any of its
504
+ attributes being copied by adding to the value in its parent class."""
505
+
506
+ list_attributes = basic_attributes + local_attributes
507
+ """Tuple of attributes that are automatically initialized to empty lists
508
+ for all nodes."""
509
+
510
+ known_attributes = list_attributes + ('source',)
511
+ """Tuple of attributes that are known to the Element base class."""
512
+
513
+ tagname = None
514
+ """The element generic identifier. If None, it is set as an instance
515
+ attribute to the name of the class."""
516
+
517
+ child_text_separator = '\n\n'
518
+ """Separator for child nodes, used by `astext()` method."""
519
+
520
+ def __init__(self, rawsource='', *children, **attributes):
521
+ self.rawsource = rawsource
522
+ """The raw text from which this element was constructed.
523
+
524
+ NOTE: some elements do not set this value (default '').
525
+ """
526
+
527
+ self.children = []
528
+ """List of child nodes (elements and/or `Text`)."""
529
+
530
+ self.extend(children) # maintain parent info
531
+
532
+ self.attributes = {}
533
+ """Dictionary of attribute {name: value}."""
534
+
535
+ # Initialize list attributes.
536
+ for att in self.list_attributes:
537
+ self.attributes[att] = []
538
+
539
+ for att, value in attributes.items():
540
+ att = att.lower()
541
+ if att in self.list_attributes:
542
+ # mutable list; make a copy for this node
543
+ self.attributes[att] = value[:]
544
+ else:
545
+ self.attributes[att] = value
546
+
547
+ if self.tagname is None:
548
+ self.tagname = self.__class__.__name__
549
+
550
+ def _dom_node(self, domroot):
551
+ element = domroot.createElement(self.tagname)
552
+ for attribute, value in self.attlist():
553
+ if isinstance(value, list):
554
+ value = ' '.join(serial_escape('%s' % (v,)) for v in value)
555
+ element.setAttribute(attribute, '%s' % value)
556
+ for child in self.children:
557
+ element.appendChild(child._dom_node(domroot))
558
+ return element
559
+
560
+ def __repr__(self):
561
+ data = ''
562
+ for c in self.children:
563
+ data += c.shortrepr()
564
+ if len(data) > 60:
565
+ data = data[:56] + ' ...'
566
+ break
567
+ if self['names']:
568
+ return '<%s "%s": %s>' % (self.__class__.__name__,
569
+ '; '.join(self['names']), data)
570
+ else:
571
+ return '<%s: %s>' % (self.__class__.__name__, data)
572
+
573
+ def shortrepr(self):
574
+ if self['names']:
575
+ return '<%s "%s"...>' % (self.__class__.__name__,
576
+ '; '.join(self['names']))
577
+ else:
578
+ return '<%s...>' % self.tagname
579
+
580
+ def __str__(self):
581
+ if self.children:
582
+ return '%s%s%s' % (self.starttag(),
583
+ ''.join(str(c) for c in self.children),
584
+ self.endtag())
585
+ else:
586
+ return self.emptytag()
587
+
588
+ def starttag(self, quoteattr=None):
589
+ # the optional arg is used by the docutils_xml writer
590
+ if quoteattr is None:
591
+ quoteattr = pseudo_quoteattr
592
+ parts = [self.tagname]
593
+ for name, value in self.attlist():
594
+ if value is None: # boolean attribute
595
+ parts.append('%s="True"' % name)
596
+ continue
597
+ if isinstance(value, list):
598
+ values = [serial_escape('%s' % (v,)) for v in value]
599
+ value = ' '.join(values)
600
+ else:
601
+ value = str(value)
602
+ value = quoteattr(value)
603
+ parts.append('%s=%s' % (name, value))
604
+ return '<%s>' % ' '.join(parts)
605
+
606
+ def endtag(self):
607
+ return '</%s>' % self.tagname
608
+
609
+ def emptytag(self):
610
+ attributes = ('%s="%s"' % (n, v) for n, v in self.attlist())
611
+ return '<%s/>' % ' '.join((self.tagname, *attributes))
612
+
613
+ def __len__(self):
614
+ return len(self.children)
615
+
616
+ def __contains__(self, key):
617
+ # Test for both, children and attributes with operator ``in``.
618
+ if isinstance(key, str):
619
+ return key in self.attributes
620
+ return key in self.children
621
+
622
+ def __getitem__(self, key):
623
+ if isinstance(key, str):
624
+ return self.attributes[key]
625
+ elif isinstance(key, int):
626
+ return self.children[key]
627
+ elif isinstance(key, slice):
628
+ assert key.step in (None, 1), 'cannot handle slice with stride'
629
+ return self.children[key.start:key.stop]
630
+ else:
631
+ raise TypeError('element index must be an integer, a slice, or '
632
+ 'an attribute name string')
633
+
634
+ def __setitem__(self, key, item):
635
+ if isinstance(key, str):
636
+ self.attributes[str(key)] = item
637
+ elif isinstance(key, int):
638
+ self.setup_child(item)
639
+ self.children[key] = item
640
+ elif isinstance(key, slice):
641
+ assert key.step in (None, 1), 'cannot handle slice with stride'
642
+ for node in item:
643
+ self.setup_child(node)
644
+ self.children[key.start:key.stop] = item
645
+ else:
646
+ raise TypeError('element index must be an integer, a slice, or '
647
+ 'an attribute name string')
648
+
649
+ def __delitem__(self, key):
650
+ if isinstance(key, str):
651
+ del self.attributes[key]
652
+ elif isinstance(key, int):
653
+ del self.children[key]
654
+ elif isinstance(key, slice):
655
+ assert key.step in (None, 1), 'cannot handle slice with stride'
656
+ del self.children[key.start:key.stop]
657
+ else:
658
+ raise TypeError('element index must be an integer, a simple '
659
+ 'slice, or an attribute name string')
660
+
661
+ def __add__(self, other):
662
+ return self.children + other
663
+
664
+ def __radd__(self, other):
665
+ return other + self.children
666
+
667
+ def __iadd__(self, other):
668
+ """Append a node or a list of nodes to `self.children`."""
669
+ if isinstance(other, Node):
670
+ self.append(other)
671
+ elif other is not None:
672
+ self.extend(other)
673
+ return self
674
+
675
+ def astext(self):
676
+ return self.child_text_separator.join(
677
+ [child.astext() for child in self.children])
678
+
679
+ def non_default_attributes(self):
680
+ atts = {}
681
+ for key, value in self.attributes.items():
682
+ if self.is_not_default(key):
683
+ atts[key] = value
684
+ return atts
685
+
686
+ def attlist(self):
687
+ return sorted(self.non_default_attributes().items())
688
+
689
+ def get(self, key, failobj=None):
690
+ return self.attributes.get(key, failobj)
691
+
692
+ def hasattr(self, attr):
693
+ return attr in self.attributes
694
+
695
+ def delattr(self, attr):
696
+ if attr in self.attributes:
697
+ del self.attributes[attr]
698
+
699
+ def setdefault(self, key, failobj=None):
700
+ return self.attributes.setdefault(key, failobj)
701
+
702
+ has_key = hasattr
703
+
704
+ def get_language_code(self, fallback=''):
705
+ """Return node's language tag.
706
+
707
+ Look iteratively in self and parents for a class argument
708
+ starting with ``language-`` and return the remainder of it
709
+ (which should be a `BCP49` language tag) or the `fallback`.
710
+ """
711
+ for cls in self.get('classes', []):
712
+ if cls.startswith('language-'):
713
+ return cls[9:]
714
+ try:
715
+ return self.parent.get_language(fallback)
716
+ except AttributeError:
717
+ return fallback
718
+
719
+ def append(self, item):
720
+ self.setup_child(item)
721
+ self.children.append(item)
722
+
723
+ def extend(self, item):
724
+ for node in item:
725
+ self.append(node)
726
+
727
+ def insert(self, index, item):
728
+ if isinstance(item, Node):
729
+ self.setup_child(item)
730
+ self.children.insert(index, item)
731
+ elif item is not None:
732
+ self[index:index] = item
733
+
734
+ def pop(self, i=-1):
735
+ return self.children.pop(i)
736
+
737
+ def remove(self, item):
738
+ self.children.remove(item)
739
+
740
+ def index(self, item, start=0, stop=sys.maxsize):
741
+ return self.children.index(item, start, stop)
742
+
743
+ def is_not_default(self, key):
744
+ if self[key] == [] and key in self.list_attributes:
745
+ return 0
746
+ else:
747
+ return 1
748
+
749
+ def update_basic_atts(self, dict_):
750
+ """
751
+ Update basic attributes ('ids', 'names', 'classes',
752
+ 'dupnames', but not 'source') from node or dictionary `dict_`.
753
+ """
754
+ if isinstance(dict_, Node):
755
+ dict_ = dict_.attributes
756
+ for att in self.basic_attributes:
757
+ self.append_attr_list(att, dict_.get(att, []))
758
+
759
+ def append_attr_list(self, attr, values):
760
+ """
761
+ For each element in values, if it does not exist in self[attr], append
762
+ it.
763
+
764
+ NOTE: Requires self[attr] and values to be sequence type and the
765
+ former should specifically be a list.
766
+ """
767
+ # List Concatenation
768
+ for value in values:
769
+ if value not in self[attr]:
770
+ self[attr].append(value)
771
+
772
+ def coerce_append_attr_list(self, attr, value):
773
+ """
774
+ First, convert both self[attr] and value to a non-string sequence
775
+ type; if either is not already a sequence, convert it to a list of one
776
+ element. Then call append_attr_list.
777
+
778
+ NOTE: self[attr] and value both must not be None.
779
+ """
780
+ # List Concatenation
781
+ if not isinstance(self.get(attr), list):
782
+ self[attr] = [self[attr]]
783
+ if not isinstance(value, list):
784
+ value = [value]
785
+ self.append_attr_list(attr, value)
786
+
787
+ def replace_attr(self, attr, value, force=True):
788
+ """
789
+ If self[attr] does not exist or force is True or omitted, set
790
+ self[attr] to value, otherwise do nothing.
791
+ """
792
+ # One or the other
793
+ if force or self.get(attr) is None:
794
+ self[attr] = value
795
+
796
+ def copy_attr_convert(self, attr, value, replace=True):
797
+ """
798
+ If attr is an attribute of self, set self[attr] to
799
+ [self[attr], value], otherwise set self[attr] to value.
800
+
801
+ NOTE: replace is not used by this function and is kept only for
802
+ compatibility with the other copy functions.
803
+ """
804
+ if self.get(attr) is not value:
805
+ self.coerce_append_attr_list(attr, value)
806
+
807
+ def copy_attr_coerce(self, attr, value, replace):
808
+ """
809
+ If attr is an attribute of self and either self[attr] or value is a
810
+ list, convert all non-sequence values to a sequence of 1 element and
811
+ then concatenate the two sequence, setting the result to self[attr].
812
+ If both self[attr] and value are non-sequences and replace is True or
813
+ self[attr] is None, replace self[attr] with value. Otherwise, do
814
+ nothing.
815
+ """
816
+ if self.get(attr) is not value:
817
+ if isinstance(self.get(attr), list) or \
818
+ isinstance(value, list):
819
+ self.coerce_append_attr_list(attr, value)
820
+ else:
821
+ self.replace_attr(attr, value, replace)
822
+
823
+ def copy_attr_concatenate(self, attr, value, replace):
824
+ """
825
+ If attr is an attribute of self and both self[attr] and value are
826
+ lists, concatenate the two sequences, setting the result to
827
+ self[attr]. If either self[attr] or value are non-sequences and
828
+ replace is True or self[attr] is None, replace self[attr] with value.
829
+ Otherwise, do nothing.
830
+ """
831
+ if self.get(attr) is not value:
832
+ if isinstance(self.get(attr), list) and \
833
+ isinstance(value, list):
834
+ self.append_attr_list(attr, value)
835
+ else:
836
+ self.replace_attr(attr, value, replace)
837
+
838
+ def copy_attr_consistent(self, attr, value, replace):
839
+ """
840
+ If replace is True or self[attr] is None, replace self[attr] with
841
+ value. Otherwise, do nothing.
842
+ """
843
+ if self.get(attr) is not value:
844
+ self.replace_attr(attr, value, replace)
845
+
846
+ def update_all_atts(self, dict_, update_fun=copy_attr_consistent,
847
+ replace=True, and_source=False):
848
+ """
849
+ Updates all attributes from node or dictionary `dict_`.
850
+
851
+ Appends the basic attributes ('ids', 'names', 'classes',
852
+ 'dupnames', but not 'source') and then, for all other attributes in
853
+ dict_, updates the same attribute in self. When attributes with the
854
+ same identifier appear in both self and dict_, the two values are
855
+ merged based on the value of update_fun. Generally, when replace is
856
+ True, the values in self are replaced or merged with the values in
857
+ dict_; otherwise, the values in self may be preserved or merged. When
858
+ and_source is True, the 'source' attribute is included in the copy.
859
+
860
+ NOTE: When replace is False, and self contains a 'source' attribute,
861
+ 'source' is not replaced even when dict_ has a 'source'
862
+ attribute, though it may still be merged into a list depending
863
+ on the value of update_fun.
864
+ NOTE: It is easier to call the update-specific methods then to pass
865
+ the update_fun method to this function.
866
+ """
867
+ if isinstance(dict_, Node):
868
+ dict_ = dict_.attributes
869
+
870
+ # Include the source attribute when copying?
871
+ if and_source:
872
+ filter_fun = self.is_not_list_attribute
873
+ else:
874
+ filter_fun = self.is_not_known_attribute
875
+
876
+ # Copy the basic attributes
877
+ self.update_basic_atts(dict_)
878
+
879
+ # Grab other attributes in dict_ not in self except the
880
+ # (All basic attributes should be copied already)
881
+ for att in filter(filter_fun, dict_):
882
+ update_fun(self, att, dict_[att], replace)
883
+
884
+ def update_all_atts_consistantly(self, dict_, replace=True,
885
+ and_source=False):
886
+ """
887
+ Updates all attributes from node or dictionary `dict_`.
888
+
889
+ Appends the basic attributes ('ids', 'names', 'classes',
890
+ 'dupnames', but not 'source') and then, for all other attributes in
891
+ dict_, updates the same attribute in self. When attributes with the
892
+ same identifier appear in both self and dict_ and replace is True, the
893
+ values in self are replaced with the values in dict_; otherwise, the
894
+ values in self are preserved. When and_source is True, the 'source'
895
+ attribute is included in the copy.
896
+
897
+ NOTE: When replace is False, and self contains a 'source' attribute,
898
+ 'source' is not replaced even when dict_ has a 'source'
899
+ attribute, though it may still be merged into a list depending
900
+ on the value of update_fun.
901
+ """
902
+ self.update_all_atts(dict_, Element.copy_attr_consistent, replace,
903
+ and_source)
904
+
905
+ def update_all_atts_concatenating(self, dict_, replace=True,
906
+ and_source=False):
907
+ """
908
+ Updates all attributes from node or dictionary `dict_`.
909
+
910
+ Appends the basic attributes ('ids', 'names', 'classes',
911
+ 'dupnames', but not 'source') and then, for all other attributes in
912
+ dict_, updates the same attribute in self. When attributes with the
913
+ same identifier appear in both self and dict_ whose values aren't each
914
+ lists and replace is True, the values in self are replaced with the
915
+ values in dict_; if the values from self and dict_ for the given
916
+ identifier are both of list type, then the two lists are concatenated
917
+ and the result stored in self; otherwise, the values in self are
918
+ preserved. When and_source is True, the 'source' attribute is
919
+ included in the copy.
920
+
921
+ NOTE: When replace is False, and self contains a 'source' attribute,
922
+ 'source' is not replaced even when dict_ has a 'source'
923
+ attribute, though it may still be merged into a list depending
924
+ on the value of update_fun.
925
+ """
926
+ self.update_all_atts(dict_, Element.copy_attr_concatenate, replace,
927
+ and_source)
928
+
929
+ def update_all_atts_coercion(self, dict_, replace=True,
930
+ and_source=False):
931
+ """
932
+ Updates all attributes from node or dictionary `dict_`.
933
+
934
+ Appends the basic attributes ('ids', 'names', 'classes',
935
+ 'dupnames', but not 'source') and then, for all other attributes in
936
+ dict_, updates the same attribute in self. When attributes with the
937
+ same identifier appear in both self and dict_ whose values are both
938
+ not lists and replace is True, the values in self are replaced with
939
+ the values in dict_; if either of the values from self and dict_ for
940
+ the given identifier are of list type, then first any non-lists are
941
+ converted to 1-element lists and then the two lists are concatenated
942
+ and the result stored in self; otherwise, the values in self are
943
+ preserved. When and_source is True, the 'source' attribute is
944
+ included in the copy.
945
+
946
+ NOTE: When replace is False, and self contains a 'source' attribute,
947
+ 'source' is not replaced even when dict_ has a 'source'
948
+ attribute, though it may still be merged into a list depending
949
+ on the value of update_fun.
950
+ """
951
+ self.update_all_atts(dict_, Element.copy_attr_coerce, replace,
952
+ and_source)
953
+
954
+ def update_all_atts_convert(self, dict_, and_source=False):
955
+ """
956
+ Updates all attributes from node or dictionary `dict_`.
957
+
958
+ Appends the basic attributes ('ids', 'names', 'classes',
959
+ 'dupnames', but not 'source') and then, for all other attributes in
960
+ dict_, updates the same attribute in self. When attributes with the
961
+ same identifier appear in both self and dict_ then first any non-lists
962
+ are converted to 1-element lists and then the two lists are
963
+ concatenated and the result stored in self; otherwise, the values in
964
+ self are preserved. When and_source is True, the 'source' attribute
965
+ is included in the copy.
966
+
967
+ NOTE: When replace is False, and self contains a 'source' attribute,
968
+ 'source' is not replaced even when dict_ has a 'source'
969
+ attribute, though it may still be merged into a list depending
970
+ on the value of update_fun.
971
+ """
972
+ self.update_all_atts(dict_, Element.copy_attr_convert,
973
+ and_source=and_source)
974
+
975
+ def clear(self):
976
+ self.children = []
977
+
978
+ def replace(self, old, new):
979
+ """Replace one child `Node` with another child or children."""
980
+ index = self.index(old)
981
+ if isinstance(new, Node):
982
+ self.setup_child(new)
983
+ self[index] = new
984
+ elif new is not None:
985
+ self[index:index+1] = new
986
+
987
+ def replace_self(self, new):
988
+ """
989
+ Replace `self` node with `new`, where `new` is a node or a
990
+ list of nodes.
991
+ """
992
+ update = new
993
+ if not isinstance(new, Node):
994
+ # `new` is a list; update first child.
995
+ try:
996
+ update = new[0]
997
+ except IndexError:
998
+ update = None
999
+ if isinstance(update, Element):
1000
+ update.update_basic_atts(self)
1001
+ else:
1002
+ # `update` is a Text node or `new` is an empty list.
1003
+ # Assert that we aren't losing any attributes.
1004
+ for att in self.basic_attributes:
1005
+ assert not self[att], \
1006
+ 'Losing "%s" attribute: %s' % (att, self[att])
1007
+ self.parent.replace(self, new)
1008
+
1009
+ def first_child_matching_class(self, childclass, start=0, end=sys.maxsize):
1010
+ """
1011
+ Return the index of the first child whose class exactly matches.
1012
+
1013
+ Parameters:
1014
+
1015
+ - `childclass`: A `Node` subclass to search for, or a tuple of `Node`
1016
+ classes. If a tuple, any of the classes may match.
1017
+ - `start`: Initial index to check.
1018
+ - `end`: Initial index to *not* check.
1019
+ """
1020
+ if not isinstance(childclass, tuple):
1021
+ childclass = (childclass,)
1022
+ for index in range(start, min(len(self), end)):
1023
+ for c in childclass:
1024
+ if isinstance(self[index], c):
1025
+ return index
1026
+ return None
1027
+
1028
+ def first_child_not_matching_class(self, childclass, start=0,
1029
+ end=sys.maxsize):
1030
+ """
1031
+ Return the index of the first child whose class does *not* match.
1032
+
1033
+ Parameters:
1034
+
1035
+ - `childclass`: A `Node` subclass to skip, or a tuple of `Node`
1036
+ classes. If a tuple, none of the classes may match.
1037
+ - `start`: Initial index to check.
1038
+ - `end`: Initial index to *not* check.
1039
+ """
1040
+ if not isinstance(childclass, tuple):
1041
+ childclass = (childclass,)
1042
+ for index in range(start, min(len(self), end)):
1043
+ for c in childclass:
1044
+ if isinstance(self.children[index], c):
1045
+ break
1046
+ else:
1047
+ return index
1048
+ return None
1049
+
1050
+ def pformat(self, indent=' ', level=0):
1051
+ tagline = '%s%s\n' % (indent*level, self.starttag())
1052
+ childreps = (c.pformat(indent, level+1) for c in self.children)
1053
+ return ''.join((tagline, *childreps))
1054
+
1055
+ def copy(self):
1056
+ obj = self.__class__(rawsource=self.rawsource, **self.attributes)
1057
+ obj._document = self._document
1058
+ obj.source = self.source
1059
+ obj.line = self.line
1060
+ return obj
1061
+
1062
+ def deepcopy(self):
1063
+ copy = self.copy()
1064
+ copy.extend([child.deepcopy() for child in self.children])
1065
+ return copy
1066
+
1067
+ def set_class(self, name):
1068
+ """Add a new class to the "classes" attribute."""
1069
+ warnings.warn('docutils.nodes.Element.set_class() is deprecated; '
1070
+ ' and will be removed in Docutils 0.21 or later.',
1071
+ "Append to Element['classes'] list attribute directly",
1072
+ DeprecationWarning, stacklevel=2)
1073
+ assert ' ' not in name
1074
+ self['classes'].append(name.lower())
1075
+
1076
+ def note_referenced_by(self, name=None, id=None):
1077
+ """Note that this Element has been referenced by its name
1078
+ `name` or id `id`."""
1079
+ self.referenced = 1
1080
+ # Element.expect_referenced_by_* dictionaries map names or ids
1081
+ # to nodes whose ``referenced`` attribute is set to true as
1082
+ # soon as this node is referenced by the given name or id.
1083
+ # Needed for target propagation.
1084
+ by_name = getattr(self, 'expect_referenced_by_name', {}).get(name)
1085
+ by_id = getattr(self, 'expect_referenced_by_id', {}).get(id)
1086
+ if by_name:
1087
+ assert name is not None
1088
+ by_name.referenced = 1
1089
+ if by_id:
1090
+ assert id is not None
1091
+ by_id.referenced = 1
1092
+
1093
+ @classmethod
1094
+ def is_not_list_attribute(cls, attr):
1095
+ """
1096
+ Returns True if and only if the given attribute is NOT one of the
1097
+ basic list attributes defined for all Elements.
1098
+ """
1099
+ return attr not in cls.list_attributes
1100
+
1101
+ @classmethod
1102
+ def is_not_known_attribute(cls, attr):
1103
+ """
1104
+ Returns True if and only if the given attribute is NOT recognized by
1105
+ this class.
1106
+ """
1107
+ return attr not in cls.known_attributes
1108
+
1109
+
1110
+ class TextElement(Element):
1111
+
1112
+ """
1113
+ An element which directly contains text.
1114
+
1115
+ Its children are all `Text` or `Inline` subclass nodes. You can
1116
+ check whether an element's context is inline simply by checking whether
1117
+ its immediate parent is a `TextElement` instance (including subclasses).
1118
+ This is handy for nodes like `image` that can appear both inline and as
1119
+ standalone body elements.
1120
+
1121
+ If passing children to `__init__()`, make sure to set `text` to
1122
+ ``''`` or some other suitable value.
1123
+ """
1124
+
1125
+ child_text_separator = ''
1126
+ """Separator for child nodes, used by `astext()` method."""
1127
+
1128
+ def __init__(self, rawsource='', text='', *children, **attributes):
1129
+ if text != '':
1130
+ textnode = Text(text)
1131
+ Element.__init__(self, rawsource, textnode, *children,
1132
+ **attributes)
1133
+ else:
1134
+ Element.__init__(self, rawsource, *children, **attributes)
1135
+
1136
+
1137
+ class FixedTextElement(TextElement):
1138
+
1139
+ """An element which directly contains preformatted text."""
1140
+
1141
+ def __init__(self, rawsource='', text='', *children, **attributes):
1142
+ TextElement.__init__(self, rawsource, text, *children, **attributes)
1143
+ self.attributes['xml:space'] = 'preserve'
1144
+
1145
+
1146
+ # ========
1147
+ # Mixins
1148
+ # ========
1149
+
1150
+ class Resolvable:
1151
+
1152
+ resolved = 0
1153
+
1154
+
1155
+ class BackLinkable:
1156
+
1157
+ def add_backref(self, refid):
1158
+ self['backrefs'].append(refid)
1159
+
1160
+
1161
+ # ====================
1162
+ # Element Categories
1163
+ # ====================
1164
+
1165
+ class Root:
1166
+ pass
1167
+
1168
+
1169
+ class Titular:
1170
+ pass
1171
+
1172
+
1173
+ class PreBibliographic:
1174
+ """Category of Node which may occur before Bibliographic Nodes."""
1175
+
1176
+
1177
+ class Bibliographic:
1178
+ pass
1179
+
1180
+
1181
+ class Decorative(PreBibliographic):
1182
+ pass
1183
+
1184
+
1185
+ class Structural:
1186
+ pass
1187
+
1188
+
1189
+ class Body:
1190
+ pass
1191
+
1192
+
1193
+ class General(Body):
1194
+ pass
1195
+
1196
+
1197
+ class Sequential(Body):
1198
+ """List-like elements."""
1199
+
1200
+
1201
+ class Admonition(Body): pass
1202
+
1203
+
1204
+ class Special(Body):
1205
+ """Special internal body elements."""
1206
+
1207
+
1208
+ class Invisible(PreBibliographic):
1209
+ """Internal elements that don't appear in output."""
1210
+
1211
+
1212
+ class Part:
1213
+ pass
1214
+
1215
+
1216
+ class Inline:
1217
+ pass
1218
+
1219
+
1220
+ class Referential(Resolvable):
1221
+ pass
1222
+
1223
+
1224
+ class Targetable(Resolvable):
1225
+
1226
+ referenced = 0
1227
+
1228
+ indirect_reference_name = None
1229
+ """Holds the whitespace_normalized_name (contains mixed case) of a target.
1230
+ Required for MoinMoin/reST compatibility."""
1231
+
1232
+
1233
+ class Labeled:
1234
+ """Contains a `label` as its first element."""
1235
+
1236
+
1237
+ # ==============
1238
+ # Root Element
1239
+ # ==============
1240
+
1241
+ class document(Root, Structural, Element):
1242
+
1243
+ """
1244
+ The document root element.
1245
+
1246
+ Do not instantiate this class directly; use
1247
+ `docutils.utils.new_document()` instead.
1248
+ """
1249
+
1250
+ def __init__(self, settings, reporter, *args, **kwargs):
1251
+ Element.__init__(self, *args, **kwargs)
1252
+
1253
+ self.current_source = None
1254
+ """Path to or description of the input source being processed."""
1255
+
1256
+ self.current_line = None
1257
+ """Line number (1-based) of `current_source`."""
1258
+
1259
+ self.settings = settings
1260
+ """Runtime settings data record."""
1261
+
1262
+ self.reporter = reporter
1263
+ """System message generator."""
1264
+
1265
+ self.indirect_targets = []
1266
+ """List of indirect target nodes."""
1267
+
1268
+ self.substitution_defs = {}
1269
+ """Mapping of substitution names to substitution_definition nodes."""
1270
+
1271
+ self.substitution_names = {}
1272
+ """Mapping of case-normalized substitution names to case-sensitive
1273
+ names."""
1274
+
1275
+ self.refnames = {}
1276
+ """Mapping of names to lists of referencing nodes."""
1277
+
1278
+ self.refids = {}
1279
+ """Mapping of ids to lists of referencing nodes."""
1280
+
1281
+ self.nameids = {}
1282
+ """Mapping of names to unique id's."""
1283
+
1284
+ self.nametypes = {}
1285
+ """Mapping of names to hyperlink type (boolean: True => explicit,
1286
+ False => implicit."""
1287
+
1288
+ self.ids = {}
1289
+ """Mapping of ids to nodes."""
1290
+
1291
+ self.footnote_refs = {}
1292
+ """Mapping of footnote labels to lists of footnote_reference nodes."""
1293
+
1294
+ self.citation_refs = {}
1295
+ """Mapping of citation labels to lists of citation_reference nodes."""
1296
+
1297
+ self.autofootnotes = []
1298
+ """List of auto-numbered footnote nodes."""
1299
+
1300
+ self.autofootnote_refs = []
1301
+ """List of auto-numbered footnote_reference nodes."""
1302
+
1303
+ self.symbol_footnotes = []
1304
+ """List of symbol footnote nodes."""
1305
+
1306
+ self.symbol_footnote_refs = []
1307
+ """List of symbol footnote_reference nodes."""
1308
+
1309
+ self.footnotes = []
1310
+ """List of manually-numbered footnote nodes."""
1311
+
1312
+ self.citations = []
1313
+ """List of citation nodes."""
1314
+
1315
+ self.autofootnote_start = 1
1316
+ """Initial auto-numbered footnote number."""
1317
+
1318
+ self.symbol_footnote_start = 0
1319
+ """Initial symbol footnote symbol index."""
1320
+
1321
+ self.id_counter = Counter()
1322
+ """Numbers added to otherwise identical IDs."""
1323
+
1324
+ self.parse_messages = []
1325
+ """System messages generated while parsing."""
1326
+
1327
+ self.transform_messages = []
1328
+ """System messages generated while applying transforms."""
1329
+
1330
+ import docutils.transforms
1331
+ self.transformer = docutils.transforms.Transformer(self)
1332
+ """Storage for transforms to be applied to this document."""
1333
+
1334
+ self.include_log = []
1335
+ """The current source's parents (to detect inclusion loops)."""
1336
+
1337
+ self.decoration = None
1338
+ """Document's `decoration` node."""
1339
+
1340
+ self._document = self
1341
+
1342
+ def __getstate__(self):
1343
+ """
1344
+ Return dict with unpicklable references removed.
1345
+ """
1346
+ state = self.__dict__.copy()
1347
+ state['reporter'] = None
1348
+ state['transformer'] = None
1349
+ return state
1350
+
1351
+ def asdom(self, dom=None):
1352
+ """Return a DOM representation of this document."""
1353
+ if dom is None:
1354
+ import xml.dom.minidom as dom
1355
+ domroot = dom.Document()
1356
+ domroot.appendChild(self._dom_node(domroot))
1357
+ return domroot
1358
+
1359
+ def set_id(self, node, msgnode=None, suggested_prefix=''):
1360
+ if node['ids']:
1361
+ # register and check for duplicates
1362
+ for id in node['ids']:
1363
+ self.ids.setdefault(id, node)
1364
+ if self.ids[id] is not node:
1365
+ msg = self.reporter.severe('Duplicate ID: "%s".' % id)
1366
+ if msgnode is not None:
1367
+ msgnode += msg
1368
+ return id
1369
+ # generate and set id
1370
+ id_prefix = self.settings.id_prefix
1371
+ auto_id_prefix = self.settings.auto_id_prefix
1372
+ base_id = ''
1373
+ id = ''
1374
+ for name in node['names']:
1375
+ if id_prefix:
1376
+ # allow names starting with numbers if `id_prefix`
1377
+ base_id = make_id('x'+name)[1:]
1378
+ else:
1379
+ base_id = make_id(name)
1380
+ # TODO: normalize id-prefix? (would make code simpler)
1381
+ id = id_prefix + base_id
1382
+ if base_id and id not in self.ids:
1383
+ break
1384
+ else:
1385
+ if base_id and auto_id_prefix.endswith('%'):
1386
+ # disambiguate name-derived ID
1387
+ # TODO: remove second condition after announcing change
1388
+ prefix = id + '-'
1389
+ else:
1390
+ prefix = id_prefix + auto_id_prefix
1391
+ if prefix.endswith('%'):
1392
+ prefix = '%s%s-' % (prefix[:-1],
1393
+ suggested_prefix
1394
+ or make_id(node.tagname))
1395
+ while True:
1396
+ self.id_counter[prefix] += 1
1397
+ id = '%s%d' % (prefix, self.id_counter[prefix])
1398
+ if id not in self.ids:
1399
+ break
1400
+ node['ids'].append(id)
1401
+ self.ids[id] = node
1402
+ return id
1403
+
1404
+ def set_name_id_map(self, node, id, msgnode=None, explicit=None):
1405
+ """
1406
+ `self.nameids` maps names to IDs, while `self.nametypes` maps names to
1407
+ booleans representing hyperlink type (True==explicit,
1408
+ False==implicit). This method updates the mappings.
1409
+
1410
+ The following state transition table shows how `self.nameids` items
1411
+ ("id") and `self.nametypes` items ("type") change with new input
1412
+ (a call to this method), and what actions are performed
1413
+ ("implicit"-type system messages are INFO/1, and
1414
+ "explicit"-type system messages are ERROR/3):
1415
+
1416
+ ==== ===== ======== ======== ======= ==== ===== =====
1417
+ Old State Input Action New State Notes
1418
+ ----------- -------- ----------------- ----------- -----
1419
+ id type new type sys.msg. dupname id type
1420
+ ==== ===== ======== ======== ======= ==== ===== =====
1421
+ - - explicit - - new True
1422
+ - - implicit - - new False
1423
+ - False explicit - - new True
1424
+ old False explicit implicit old new True
1425
+ - True explicit explicit new - True
1426
+ old True explicit explicit new,old - True [#]_
1427
+ - False implicit implicit new - False
1428
+ old False implicit implicit new,old - False
1429
+ - True implicit implicit new - True
1430
+ old True implicit implicit new old True
1431
+ ==== ===== ======== ======== ======= ==== ===== =====
1432
+
1433
+ .. [#] Do not clear the name-to-id map or invalidate the old target if
1434
+ both old and new targets are external and refer to identical URIs.
1435
+ The new target is invalidated regardless.
1436
+ """
1437
+ for name in tuple(node['names']):
1438
+ if name in self.nameids:
1439
+ self.set_duplicate_name_id(node, id, name, msgnode, explicit)
1440
+ # attention: modifies node['names']
1441
+ else:
1442
+ self.nameids[name] = id
1443
+ self.nametypes[name] = explicit
1444
+
1445
+ def set_duplicate_name_id(self, node, id, name, msgnode, explicit):
1446
+ old_id = self.nameids[name]
1447
+ old_explicit = self.nametypes[name]
1448
+ self.nametypes[name] = old_explicit or explicit
1449
+ if explicit:
1450
+ if old_explicit:
1451
+ level = 2
1452
+ if old_id is not None:
1453
+ old_node = self.ids[old_id]
1454
+ if 'refuri' in node:
1455
+ refuri = node['refuri']
1456
+ if (old_node['names']
1457
+ and 'refuri' in old_node
1458
+ and old_node['refuri'] == refuri):
1459
+ level = 1 # just inform if refuri's identical
1460
+ if level > 1:
1461
+ dupname(old_node, name)
1462
+ self.nameids[name] = None
1463
+ msg = self.reporter.system_message(
1464
+ level, 'Duplicate explicit target name: "%s".' % name,
1465
+ backrefs=[id], base_node=node)
1466
+ if msgnode is not None:
1467
+ msgnode += msg
1468
+ dupname(node, name)
1469
+ else:
1470
+ self.nameids[name] = id
1471
+ if old_id is not None:
1472
+ old_node = self.ids[old_id]
1473
+ dupname(old_node, name)
1474
+ else:
1475
+ if old_id is not None and not old_explicit:
1476
+ self.nameids[name] = None
1477
+ old_node = self.ids[old_id]
1478
+ dupname(old_node, name)
1479
+ dupname(node, name)
1480
+ if not explicit or (not old_explicit and old_id is not None):
1481
+ msg = self.reporter.info(
1482
+ 'Duplicate implicit target name: "%s".' % name,
1483
+ backrefs=[id], base_node=node)
1484
+ if msgnode is not None:
1485
+ msgnode += msg
1486
+
1487
+ def has_name(self, name):
1488
+ return name in self.nameids
1489
+
1490
+ # "note" here is an imperative verb: "take note of".
1491
+ def note_implicit_target(self, target, msgnode=None):
1492
+ id = self.set_id(target, msgnode)
1493
+ self.set_name_id_map(target, id, msgnode, explicit=False)
1494
+
1495
+ def note_explicit_target(self, target, msgnode=None):
1496
+ id = self.set_id(target, msgnode)
1497
+ self.set_name_id_map(target, id, msgnode, explicit=True)
1498
+
1499
+ def note_refname(self, node):
1500
+ self.refnames.setdefault(node['refname'], []).append(node)
1501
+
1502
+ def note_refid(self, node):
1503
+ self.refids.setdefault(node['refid'], []).append(node)
1504
+
1505
+ def note_indirect_target(self, target):
1506
+ self.indirect_targets.append(target)
1507
+ if target['names']:
1508
+ self.note_refname(target)
1509
+
1510
+ def note_anonymous_target(self, target):
1511
+ self.set_id(target)
1512
+
1513
+ def note_autofootnote(self, footnote):
1514
+ self.set_id(footnote)
1515
+ self.autofootnotes.append(footnote)
1516
+
1517
+ def note_autofootnote_ref(self, ref):
1518
+ self.set_id(ref)
1519
+ self.autofootnote_refs.append(ref)
1520
+
1521
+ def note_symbol_footnote(self, footnote):
1522
+ self.set_id(footnote)
1523
+ self.symbol_footnotes.append(footnote)
1524
+
1525
+ def note_symbol_footnote_ref(self, ref):
1526
+ self.set_id(ref)
1527
+ self.symbol_footnote_refs.append(ref)
1528
+
1529
+ def note_footnote(self, footnote):
1530
+ self.set_id(footnote)
1531
+ self.footnotes.append(footnote)
1532
+
1533
+ def note_footnote_ref(self, ref):
1534
+ self.set_id(ref)
1535
+ self.footnote_refs.setdefault(ref['refname'], []).append(ref)
1536
+ self.note_refname(ref)
1537
+
1538
+ def note_citation(self, citation):
1539
+ self.citations.append(citation)
1540
+
1541
+ def note_citation_ref(self, ref):
1542
+ self.set_id(ref)
1543
+ self.citation_refs.setdefault(ref['refname'], []).append(ref)
1544
+ self.note_refname(ref)
1545
+
1546
+ def note_substitution_def(self, subdef, def_name, msgnode=None):
1547
+ name = whitespace_normalize_name(def_name)
1548
+ if name in self.substitution_defs:
1549
+ msg = self.reporter.error(
1550
+ 'Duplicate substitution definition name: "%s".' % name,
1551
+ base_node=subdef)
1552
+ if msgnode is not None:
1553
+ msgnode += msg
1554
+ oldnode = self.substitution_defs[name]
1555
+ dupname(oldnode, name)
1556
+ # keep only the last definition:
1557
+ self.substitution_defs[name] = subdef
1558
+ # case-insensitive mapping:
1559
+ self.substitution_names[fully_normalize_name(name)] = name
1560
+
1561
+ def note_substitution_ref(self, subref, refname):
1562
+ subref['refname'] = whitespace_normalize_name(refname)
1563
+
1564
+ def note_pending(self, pending, priority=None):
1565
+ self.transformer.add_pending(pending, priority)
1566
+
1567
+ def note_parse_message(self, message):
1568
+ self.parse_messages.append(message)
1569
+
1570
+ def note_transform_message(self, message):
1571
+ self.transform_messages.append(message)
1572
+
1573
+ def note_source(self, source, offset):
1574
+ self.current_source = source
1575
+ if offset is None:
1576
+ self.current_line = offset
1577
+ else:
1578
+ self.current_line = offset + 1
1579
+
1580
+ def copy(self):
1581
+ obj = self.__class__(self.settings, self.reporter,
1582
+ **self.attributes)
1583
+ obj.source = self.source
1584
+ obj.line = self.line
1585
+ return obj
1586
+
1587
+ def get_decoration(self):
1588
+ if not self.decoration:
1589
+ self.decoration = decoration()
1590
+ index = self.first_child_not_matching_class((Titular, meta))
1591
+ if index is None:
1592
+ self.append(self.decoration)
1593
+ else:
1594
+ self.insert(index, self.decoration)
1595
+ return self.decoration
1596
+
1597
+
1598
+ # ================
1599
+ # Title Elements
1600
+ # ================
1601
+
1602
+ class title(Titular, PreBibliographic, TextElement): pass
1603
+ class subtitle(Titular, PreBibliographic, TextElement): pass
1604
+ class rubric(Titular, TextElement): pass
1605
+
1606
+
1607
+ # ==================
1608
+ # Meta-Data Element
1609
+ # ==================
1610
+
1611
+ class meta(PreBibliographic, Element):
1612
+ """Container for "invisible" bibliographic data, or meta-data."""
1613
+
1614
+
1615
+ # ========================
1616
+ # Bibliographic Elements
1617
+ # ========================
1618
+
1619
+ class docinfo(Bibliographic, Element): pass
1620
+ class author(Bibliographic, TextElement): pass
1621
+ class authors(Bibliographic, Element): pass
1622
+ class organization(Bibliographic, TextElement): pass
1623
+ class address(Bibliographic, FixedTextElement): pass
1624
+ class contact(Bibliographic, TextElement): pass
1625
+ class version(Bibliographic, TextElement): pass
1626
+ class revision(Bibliographic, TextElement): pass
1627
+ class status(Bibliographic, TextElement): pass
1628
+ class date(Bibliographic, TextElement): pass
1629
+ class copyright(Bibliographic, TextElement): pass
1630
+
1631
+
1632
+ # =====================
1633
+ # Decorative Elements
1634
+ # =====================
1635
+
1636
+ class decoration(Decorative, Element):
1637
+
1638
+ def get_header(self):
1639
+ if not len(self.children) or not isinstance(self.children[0], header):
1640
+ self.insert(0, header())
1641
+ return self.children[0]
1642
+
1643
+ def get_footer(self):
1644
+ if not len(self.children) or not isinstance(self.children[-1], footer):
1645
+ self.append(footer())
1646
+ return self.children[-1]
1647
+
1648
+
1649
+ class header(Decorative, Element): pass
1650
+ class footer(Decorative, Element): pass
1651
+
1652
+
1653
+ # =====================
1654
+ # Structural Elements
1655
+ # =====================
1656
+
1657
+ class section(Structural, Element): pass
1658
+
1659
+
1660
+ class topic(Structural, Element):
1661
+
1662
+ """
1663
+ Topics are terminal, "leaf" mini-sections, like block quotes with titles,
1664
+ or textual figures. A topic is just like a section, except that it has no
1665
+ subsections, and it doesn't have to conform to section placement rules.
1666
+
1667
+ Topics are allowed wherever body elements (list, table, etc.) are allowed,
1668
+ but only at the top level of a section or document. Topics cannot nest
1669
+ inside topics, sidebars, or body elements; you can't have a topic inside a
1670
+ table, list, block quote, etc.
1671
+ """
1672
+
1673
+
1674
+ class sidebar(Structural, Element):
1675
+
1676
+ """
1677
+ Sidebars are like miniature, parallel documents that occur inside other
1678
+ documents, providing related or reference material. A sidebar is
1679
+ typically offset by a border and "floats" to the side of the page; the
1680
+ document's main text may flow around it. Sidebars can also be likened to
1681
+ super-footnotes; their content is outside of the flow of the document's
1682
+ main text.
1683
+
1684
+ Sidebars are allowed wherever body elements (list, table, etc.) are
1685
+ allowed, but only at the top level of a section or document. Sidebars
1686
+ cannot nest inside sidebars, topics, or body elements; you can't have a
1687
+ sidebar inside a table, list, block quote, etc.
1688
+ """
1689
+
1690
+
1691
+ class transition(Structural, Element): pass
1692
+
1693
+
1694
+ # ===============
1695
+ # Body Elements
1696
+ # ===============
1697
+
1698
+ class paragraph(General, TextElement): pass
1699
+ class compound(General, Element): pass
1700
+ class container(General, Element): pass
1701
+ class bullet_list(Sequential, Element): pass
1702
+ class enumerated_list(Sequential, Element): pass
1703
+ class list_item(Part, Element): pass
1704
+ class definition_list(Sequential, Element): pass
1705
+ class definition_list_item(Part, Element): pass
1706
+ class term(Part, TextElement): pass
1707
+ class classifier(Part, TextElement): pass
1708
+ class definition(Part, Element): pass
1709
+ class field_list(Sequential, Element): pass
1710
+ class field(Part, Element): pass
1711
+ class field_name(Part, TextElement): pass
1712
+ class field_body(Part, Element): pass
1713
+
1714
+
1715
+ class option(Part, Element):
1716
+
1717
+ child_text_separator = ''
1718
+
1719
+
1720
+ class option_argument(Part, TextElement):
1721
+
1722
+ def astext(self):
1723
+ return self.get('delimiter', ' ') + TextElement.astext(self)
1724
+
1725
+
1726
+ class option_group(Part, Element):
1727
+
1728
+ child_text_separator = ', '
1729
+
1730
+
1731
+ class option_list(Sequential, Element): pass
1732
+
1733
+
1734
+ class option_list_item(Part, Element):
1735
+
1736
+ child_text_separator = ' '
1737
+
1738
+
1739
+ class option_string(Part, TextElement): pass
1740
+ class description(Part, Element): pass
1741
+ class literal_block(General, FixedTextElement): pass
1742
+ class doctest_block(General, FixedTextElement): pass
1743
+ class math_block(General, FixedTextElement): pass
1744
+ class line_block(General, Element): pass
1745
+
1746
+
1747
+ class line(Part, TextElement):
1748
+
1749
+ indent = None
1750
+
1751
+
1752
+ class block_quote(General, Element): pass
1753
+ class attribution(Part, TextElement): pass
1754
+ class attention(Admonition, Element): pass
1755
+ class caution(Admonition, Element): pass
1756
+ class danger(Admonition, Element): pass
1757
+ class error(Admonition, Element): pass
1758
+ class important(Admonition, Element): pass
1759
+ class note(Admonition, Element): pass
1760
+ class tip(Admonition, Element): pass
1761
+ class hint(Admonition, Element): pass
1762
+ class warning(Admonition, Element): pass
1763
+ class admonition(Admonition, Element): pass
1764
+ class comment(Special, Invisible, FixedTextElement): pass
1765
+ class substitution_definition(Special, Invisible, TextElement): pass
1766
+ class target(Special, Invisible, Inline, TextElement, Targetable): pass
1767
+ class footnote(General, BackLinkable, Element, Labeled, Targetable): pass
1768
+ class citation(General, BackLinkable, Element, Labeled, Targetable): pass
1769
+ class label(Part, TextElement): pass
1770
+ class figure(General, Element): pass
1771
+ class caption(Part, TextElement): pass
1772
+ class legend(Part, Element): pass
1773
+ class table(General, Element): pass
1774
+ class tgroup(Part, Element): pass
1775
+ class colspec(Part, Element): pass
1776
+ class thead(Part, Element): pass
1777
+ class tbody(Part, Element): pass
1778
+ class row(Part, Element): pass
1779
+ class entry(Part, Element): pass
1780
+
1781
+
1782
+ class system_message(Special, BackLinkable, PreBibliographic, Element):
1783
+
1784
+ """
1785
+ System message element.
1786
+
1787
+ Do not instantiate this class directly; use
1788
+ ``document.reporter.info/warning/error/severe()`` instead.
1789
+ """
1790
+
1791
+ def __init__(self, message=None, *children, **attributes):
1792
+ rawsource = attributes.pop('rawsource', '')
1793
+ if message:
1794
+ p = paragraph('', message)
1795
+ children = (p,) + children
1796
+ try:
1797
+ Element.__init__(self, rawsource, *children, **attributes)
1798
+ except: # noqa catchall
1799
+ print('system_message: children=%r' % (children,))
1800
+ raise
1801
+
1802
+ def astext(self):
1803
+ line = self.get('line', '')
1804
+ return '%s:%s: (%s/%s) %s' % (self['source'], line, self['type'],
1805
+ self['level'], Element.astext(self))
1806
+
1807
+
1808
+ class pending(Special, Invisible, Element):
1809
+
1810
+ """
1811
+ The "pending" element is used to encapsulate a pending operation: the
1812
+ operation (transform), the point at which to apply it, and any data it
1813
+ requires. Only the pending operation's location within the document is
1814
+ stored in the public document tree (by the "pending" object itself); the
1815
+ operation and its data are stored in the "pending" object's internal
1816
+ instance attributes.
1817
+
1818
+ For example, say you want a table of contents in your reStructuredText
1819
+ document. The easiest way to specify where to put it is from within the
1820
+ document, with a directive::
1821
+
1822
+ .. contents::
1823
+
1824
+ But the "contents" directive can't do its work until the entire document
1825
+ has been parsed and possibly transformed to some extent. So the directive
1826
+ code leaves a placeholder behind that will trigger the second phase of its
1827
+ processing, something like this::
1828
+
1829
+ <pending ...public attributes...> + internal attributes
1830
+
1831
+ Use `document.note_pending()` so that the
1832
+ `docutils.transforms.Transformer` stage of processing can run all pending
1833
+ transforms.
1834
+ """
1835
+
1836
+ def __init__(self, transform, details=None,
1837
+ rawsource='', *children, **attributes):
1838
+ Element.__init__(self, rawsource, *children, **attributes)
1839
+
1840
+ self.transform = transform
1841
+ """The `docutils.transforms.Transform` class implementing the pending
1842
+ operation."""
1843
+
1844
+ self.details = details or {}
1845
+ """Detail data (dictionary) required by the pending operation."""
1846
+
1847
+ def pformat(self, indent=' ', level=0):
1848
+ internals = ['.. internal attributes:',
1849
+ ' .transform: %s.%s' % (self.transform.__module__,
1850
+ self.transform.__name__),
1851
+ ' .details:']
1852
+ details = sorted(self.details.items())
1853
+ for key, value in details:
1854
+ if isinstance(value, Node):
1855
+ internals.append('%7s%s:' % ('', key))
1856
+ internals.extend(['%9s%s' % ('', line)
1857
+ for line in value.pformat().splitlines()])
1858
+ elif (value
1859
+ and isinstance(value, list)
1860
+ and isinstance(value[0], Node)):
1861
+ internals.append('%7s%s:' % ('', key))
1862
+ for v in value:
1863
+ internals.extend(['%9s%s' % ('', line)
1864
+ for line in v.pformat().splitlines()])
1865
+ else:
1866
+ internals.append('%7s%s: %r' % ('', key, value))
1867
+ return (Element.pformat(self, indent, level)
1868
+ + ''.join((' %s%s\n' % (indent * level, line))
1869
+ for line in internals))
1870
+
1871
+ def copy(self):
1872
+ obj = self.__class__(self.transform, self.details, self.rawsource,
1873
+ **self.attributes)
1874
+ obj._document = self._document
1875
+ obj.source = self.source
1876
+ obj.line = self.line
1877
+ return obj
1878
+
1879
+
1880
+ class raw(Special, Inline, PreBibliographic, FixedTextElement):
1881
+
1882
+ """
1883
+ Raw data that is to be passed untouched to the Writer.
1884
+ """
1885
+
1886
+
1887
+ # =================
1888
+ # Inline Elements
1889
+ # =================
1890
+
1891
+ class emphasis(Inline, TextElement): pass
1892
+ class strong(Inline, TextElement): pass
1893
+ class literal(Inline, TextElement): pass
1894
+ class reference(General, Inline, Referential, TextElement): pass
1895
+ class footnote_reference(Inline, Referential, TextElement): pass
1896
+ class citation_reference(Inline, Referential, TextElement): pass
1897
+ class substitution_reference(Inline, TextElement): pass
1898
+ class title_reference(Inline, TextElement): pass
1899
+ class abbreviation(Inline, TextElement): pass
1900
+ class acronym(Inline, TextElement): pass
1901
+ class superscript(Inline, TextElement): pass
1902
+ class subscript(Inline, TextElement): pass
1903
+ class math(Inline, TextElement): pass
1904
+
1905
+
1906
+ class image(General, Inline, Element):
1907
+
1908
+ def astext(self):
1909
+ return self.get('alt', '')
1910
+
1911
+
1912
+ class inline(Inline, TextElement): pass
1913
+ class problematic(Inline, TextElement): pass
1914
+ class generated(Inline, TextElement): pass
1915
+
1916
+
1917
+ # ========================================
1918
+ # Auxiliary Classes, Functions, and Data
1919
+ # ========================================
1920
+
1921
+ node_class_names = """
1922
+ Text
1923
+ abbreviation acronym address admonition attention attribution author
1924
+ authors
1925
+ block_quote bullet_list
1926
+ caption caution citation citation_reference classifier colspec comment
1927
+ compound contact container copyright
1928
+ danger date decoration definition definition_list definition_list_item
1929
+ description docinfo doctest_block document
1930
+ emphasis entry enumerated_list error
1931
+ field field_body field_list field_name figure footer
1932
+ footnote footnote_reference
1933
+ generated
1934
+ header hint
1935
+ image important inline
1936
+ label legend line line_block list_item literal literal_block
1937
+ math math_block meta
1938
+ note
1939
+ option option_argument option_group option_list option_list_item
1940
+ option_string organization
1941
+ paragraph pending problematic
1942
+ raw reference revision row rubric
1943
+ section sidebar status strong subscript substitution_definition
1944
+ substitution_reference subtitle superscript system_message
1945
+ table target tbody term tgroup thead tip title title_reference topic
1946
+ transition
1947
+ version
1948
+ warning""".split()
1949
+ """A list of names of all concrete Node subclasses."""
1950
+
1951
+
1952
+ class NodeVisitor:
1953
+
1954
+ """
1955
+ "Visitor" pattern [GoF95]_ abstract superclass implementation for
1956
+ document tree traversals.
1957
+
1958
+ Each node class has corresponding methods, doing nothing by
1959
+ default; override individual methods for specific and useful
1960
+ behaviour. The `dispatch_visit()` method is called by
1961
+ `Node.walk()` upon entering a node. `Node.walkabout()` also calls
1962
+ the `dispatch_departure()` method before exiting a node.
1963
+
1964
+ The dispatch methods call "``visit_`` + node class name" or
1965
+ "``depart_`` + node class name", resp.
1966
+
1967
+ This is a base class for visitors whose ``visit_...`` & ``depart_...``
1968
+ methods must be implemented for *all* compulsory node types encountered
1969
+ (such as for `docutils.writers.Writer` subclasses).
1970
+ Unimplemented methods will raise exceptions (except for optional nodes).
1971
+
1972
+ For sparse traversals, where only certain node types are of interest, use
1973
+ subclass `SparseNodeVisitor` instead. When (mostly or entirely) uniform
1974
+ processing is desired, subclass `GenericNodeVisitor`.
1975
+
1976
+ .. [GoF95] Gamma, Helm, Johnson, Vlissides. *Design Patterns: Elements of
1977
+ Reusable Object-Oriented Software*. Addison-Wesley, Reading, MA, USA,
1978
+ 1995.
1979
+ """
1980
+
1981
+ optional = ('meta',)
1982
+ """
1983
+ Tuple containing node class names (as strings).
1984
+
1985
+ No exception will be raised if writers do not implement visit
1986
+ or departure functions for these node classes.
1987
+
1988
+ Used to ensure transitional compatibility with existing 3rd-party writers.
1989
+ """
1990
+
1991
+ def __init__(self, document):
1992
+ self.document = document
1993
+
1994
+ def dispatch_visit(self, node):
1995
+ """
1996
+ Call self."``visit_`` + node class name" with `node` as
1997
+ parameter. If the ``visit_...`` method does not exist, call
1998
+ self.unknown_visit.
1999
+ """
2000
+ node_name = node.__class__.__name__
2001
+ method = getattr(self, 'visit_' + node_name, self.unknown_visit)
2002
+ self.document.reporter.debug(
2003
+ 'docutils.nodes.NodeVisitor.dispatch_visit calling %s for %s'
2004
+ % (method.__name__, node_name))
2005
+ return method(node)
2006
+
2007
+ def dispatch_departure(self, node):
2008
+ """
2009
+ Call self."``depart_`` + node class name" with `node` as
2010
+ parameter. If the ``depart_...`` method does not exist, call
2011
+ self.unknown_departure.
2012
+ """
2013
+ node_name = node.__class__.__name__
2014
+ method = getattr(self, 'depart_' + node_name, self.unknown_departure)
2015
+ self.document.reporter.debug(
2016
+ 'docutils.nodes.NodeVisitor.dispatch_departure calling %s for %s'
2017
+ % (method.__name__, node_name))
2018
+ return method(node)
2019
+
2020
+ def unknown_visit(self, node):
2021
+ """
2022
+ Called when entering unknown `Node` types.
2023
+
2024
+ Raise an exception unless overridden.
2025
+ """
2026
+ if (self.document.settings.strict_visitor
2027
+ or node.__class__.__name__ not in self.optional):
2028
+ raise NotImplementedError(
2029
+ '%s visiting unknown node type: %s'
2030
+ % (self.__class__, node.__class__.__name__))
2031
+
2032
+ def unknown_departure(self, node):
2033
+ """
2034
+ Called before exiting unknown `Node` types.
2035
+
2036
+ Raise exception unless overridden.
2037
+ """
2038
+ if (self.document.settings.strict_visitor
2039
+ or node.__class__.__name__ not in self.optional):
2040
+ raise NotImplementedError(
2041
+ '%s departing unknown node type: %s'
2042
+ % (self.__class__, node.__class__.__name__))
2043
+
2044
+
2045
+ class SparseNodeVisitor(NodeVisitor):
2046
+
2047
+ """
2048
+ Base class for sparse traversals, where only certain node types are of
2049
+ interest. When ``visit_...`` & ``depart_...`` methods should be
2050
+ implemented for *all* node types (such as for `docutils.writers.Writer`
2051
+ subclasses), subclass `NodeVisitor` instead.
2052
+ """
2053
+
2054
+
2055
+ class GenericNodeVisitor(NodeVisitor):
2056
+
2057
+ """
2058
+ Generic "Visitor" abstract superclass, for simple traversals.
2059
+
2060
+ Unless overridden, each ``visit_...`` method calls `default_visit()`, and
2061
+ each ``depart_...`` method (when using `Node.walkabout()`) calls
2062
+ `default_departure()`. `default_visit()` (and `default_departure()`) must
2063
+ be overridden in subclasses.
2064
+
2065
+ Define fully generic visitors by overriding `default_visit()` (and
2066
+ `default_departure()`) only. Define semi-generic visitors by overriding
2067
+ individual ``visit_...()`` (and ``depart_...()``) methods also.
2068
+
2069
+ `NodeVisitor.unknown_visit()` (`NodeVisitor.unknown_departure()`) should
2070
+ be overridden for default behavior.
2071
+ """
2072
+
2073
+ def default_visit(self, node):
2074
+ """Override for generic, uniform traversals."""
2075
+ raise NotImplementedError
2076
+
2077
+ def default_departure(self, node):
2078
+ """Override for generic, uniform traversals."""
2079
+ raise NotImplementedError
2080
+
2081
+
2082
+ def _call_default_visit(self, node):
2083
+ self.default_visit(node)
2084
+
2085
+
2086
+ def _call_default_departure(self, node):
2087
+ self.default_departure(node)
2088
+
2089
+
2090
+ def _nop(self, node):
2091
+ pass
2092
+
2093
+
2094
+ def _add_node_class_names(names):
2095
+ """Save typing with dynamic assignments:"""
2096
+ for _name in names:
2097
+ setattr(GenericNodeVisitor, "visit_" + _name, _call_default_visit)
2098
+ setattr(GenericNodeVisitor, "depart_" + _name, _call_default_departure)
2099
+ setattr(SparseNodeVisitor, 'visit_' + _name, _nop)
2100
+ setattr(SparseNodeVisitor, 'depart_' + _name, _nop)
2101
+
2102
+
2103
+ _add_node_class_names(node_class_names)
2104
+
2105
+
2106
+ class TreeCopyVisitor(GenericNodeVisitor):
2107
+
2108
+ """
2109
+ Make a complete copy of a tree or branch, including element attributes.
2110
+ """
2111
+
2112
+ def __init__(self, document):
2113
+ GenericNodeVisitor.__init__(self, document)
2114
+ self.parent_stack = []
2115
+ self.parent = []
2116
+
2117
+ def get_tree_copy(self):
2118
+ return self.parent[0]
2119
+
2120
+ def default_visit(self, node):
2121
+ """Copy the current node, and make it the new acting parent."""
2122
+ newnode = node.copy()
2123
+ self.parent.append(newnode)
2124
+ self.parent_stack.append(self.parent)
2125
+ self.parent = newnode
2126
+
2127
+ def default_departure(self, node):
2128
+ """Restore the previous acting parent."""
2129
+ self.parent = self.parent_stack.pop()
2130
+
2131
+
2132
+ class TreePruningException(Exception):
2133
+
2134
+ """
2135
+ Base class for `NodeVisitor`-related tree pruning exceptions.
2136
+
2137
+ Raise subclasses from within ``visit_...`` or ``depart_...`` methods
2138
+ called from `Node.walk()` and `Node.walkabout()` tree traversals to prune
2139
+ the tree traversed.
2140
+ """
2141
+
2142
+
2143
+ class SkipChildren(TreePruningException):
2144
+
2145
+ """
2146
+ Do not visit any children of the current node. The current node's
2147
+ siblings and ``depart_...`` method are not affected.
2148
+ """
2149
+
2150
+
2151
+ class SkipSiblings(TreePruningException):
2152
+
2153
+ """
2154
+ Do not visit any more siblings (to the right) of the current node. The
2155
+ current node's children and its ``depart_...`` method are not affected.
2156
+ """
2157
+
2158
+
2159
+ class SkipNode(TreePruningException):
2160
+
2161
+ """
2162
+ Do not visit the current node's children, and do not call the current
2163
+ node's ``depart_...`` method.
2164
+ """
2165
+
2166
+
2167
+ class SkipDeparture(TreePruningException):
2168
+
2169
+ """
2170
+ Do not call the current node's ``depart_...`` method. The current node's
2171
+ children and siblings are not affected.
2172
+ """
2173
+
2174
+
2175
+ class NodeFound(TreePruningException):
2176
+
2177
+ """
2178
+ Raise to indicate that the target of a search has been found. This
2179
+ exception must be caught by the client; it is not caught by the traversal
2180
+ code.
2181
+ """
2182
+
2183
+
2184
+ class StopTraversal(TreePruningException):
2185
+
2186
+ """
2187
+ Stop the traversal altogether. The current node's ``depart_...`` method
2188
+ is not affected. The parent nodes ``depart_...`` methods are also called
2189
+ as usual. No other nodes are visited. This is an alternative to
2190
+ NodeFound that does not cause exception handling to trickle up to the
2191
+ caller.
2192
+ """
2193
+
2194
+
2195
+ def make_id(string):
2196
+ """
2197
+ Convert `string` into an identifier and return it.
2198
+
2199
+ Docutils identifiers will conform to the regular expression
2200
+ ``[a-z](-?[a-z0-9]+)*``. For CSS compatibility, identifiers (the "class"
2201
+ and "id" attributes) should have no underscores, colons, or periods.
2202
+ Hyphens may be used.
2203
+
2204
+ - The `HTML 4.01 spec`_ defines identifiers based on SGML tokens:
2205
+
2206
+ ID and NAME tokens must begin with a letter ([A-Za-z]) and may be
2207
+ followed by any number of letters, digits ([0-9]), hyphens ("-"),
2208
+ underscores ("_"), colons (":"), and periods (".").
2209
+
2210
+ - However the `CSS1 spec`_ defines identifiers based on the "name" token,
2211
+ a tighter interpretation ("flex" tokenizer notation; "latin1" and
2212
+ "escape" 8-bit characters have been replaced with entities)::
2213
+
2214
+ unicode \\[0-9a-f]{1,4}
2215
+ latin1 [&iexcl;-&yuml;]
2216
+ escape {unicode}|\\[ -~&iexcl;-&yuml;]
2217
+ nmchar [-a-z0-9]|{latin1}|{escape}
2218
+ name {nmchar}+
2219
+
2220
+ The CSS1 "nmchar" rule does not include underscores ("_"), colons (":"),
2221
+ or periods ("."), therefore "class" and "id" attributes should not contain
2222
+ these characters. They should be replaced with hyphens ("-"). Combined
2223
+ with HTML's requirements (the first character must be a letter; no
2224
+ "unicode", "latin1", or "escape" characters), this results in the
2225
+ ``[a-z](-?[a-z0-9]+)*`` pattern.
2226
+
2227
+ .. _HTML 4.01 spec: https://www.w3.org/TR/html401
2228
+ .. _CSS1 spec: https://www.w3.org/TR/REC-CSS1
2229
+ """
2230
+ id = string.lower()
2231
+ id = id.translate(_non_id_translate_digraphs)
2232
+ id = id.translate(_non_id_translate)
2233
+ # get rid of non-ascii characters.
2234
+ # 'ascii' lowercase to prevent problems with turkish locale.
2235
+ id = unicodedata.normalize(
2236
+ 'NFKD', id).encode('ascii', 'ignore').decode('ascii')
2237
+ # shrink runs of whitespace and replace by hyphen
2238
+ id = _non_id_chars.sub('-', ' '.join(id.split()))
2239
+ id = _non_id_at_ends.sub('', id)
2240
+ return str(id)
2241
+
2242
+
2243
+ _non_id_chars = re.compile('[^a-z0-9]+')
2244
+ _non_id_at_ends = re.compile('^[-0-9]+|-+$')
2245
+ _non_id_translate = {
2246
+ 0x00f8: 'o', # o with stroke
2247
+ 0x0111: 'd', # d with stroke
2248
+ 0x0127: 'h', # h with stroke
2249
+ 0x0131: 'i', # dotless i
2250
+ 0x0142: 'l', # l with stroke
2251
+ 0x0167: 't', # t with stroke
2252
+ 0x0180: 'b', # b with stroke
2253
+ 0x0183: 'b', # b with topbar
2254
+ 0x0188: 'c', # c with hook
2255
+ 0x018c: 'd', # d with topbar
2256
+ 0x0192: 'f', # f with hook
2257
+ 0x0199: 'k', # k with hook
2258
+ 0x019a: 'l', # l with bar
2259
+ 0x019e: 'n', # n with long right leg
2260
+ 0x01a5: 'p', # p with hook
2261
+ 0x01ab: 't', # t with palatal hook
2262
+ 0x01ad: 't', # t with hook
2263
+ 0x01b4: 'y', # y with hook
2264
+ 0x01b6: 'z', # z with stroke
2265
+ 0x01e5: 'g', # g with stroke
2266
+ 0x0225: 'z', # z with hook
2267
+ 0x0234: 'l', # l with curl
2268
+ 0x0235: 'n', # n with curl
2269
+ 0x0236: 't', # t with curl
2270
+ 0x0237: 'j', # dotless j
2271
+ 0x023c: 'c', # c with stroke
2272
+ 0x023f: 's', # s with swash tail
2273
+ 0x0240: 'z', # z with swash tail
2274
+ 0x0247: 'e', # e with stroke
2275
+ 0x0249: 'j', # j with stroke
2276
+ 0x024b: 'q', # q with hook tail
2277
+ 0x024d: 'r', # r with stroke
2278
+ 0x024f: 'y', # y with stroke
2279
+ }
2280
+ _non_id_translate_digraphs = {
2281
+ 0x00df: 'sz', # ligature sz
2282
+ 0x00e6: 'ae', # ae
2283
+ 0x0153: 'oe', # ligature oe
2284
+ 0x0238: 'db', # db digraph
2285
+ 0x0239: 'qp', # qp digraph
2286
+ }
2287
+
2288
+
2289
+ def dupname(node, name):
2290
+ node['dupnames'].append(name)
2291
+ node['names'].remove(name)
2292
+ # Assume that this method is referenced, even though it isn't; we
2293
+ # don't want to throw unnecessary system_messages.
2294
+ node.referenced = 1
2295
+
2296
+
2297
+ def fully_normalize_name(name):
2298
+ """Return a case- and whitespace-normalized name."""
2299
+ return ' '.join(name.lower().split())
2300
+
2301
+
2302
+ def whitespace_normalize_name(name):
2303
+ """Return a whitespace-normalized name."""
2304
+ return ' '.join(name.split())
2305
+
2306
+
2307
+ def serial_escape(value):
2308
+ """Escape string values that are elements of a list, for serialization."""
2309
+ return value.replace('\\', r'\\').replace(' ', r'\ ')
2310
+
2311
+
2312
+ def pseudo_quoteattr(value):
2313
+ """Quote attributes for pseudo-xml"""
2314
+ return '"%s"' % value