@scrypted/server 0.0.141 → 0.0.142

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @scrypted/server might be problematic. Click here for more details.

Files changed (710) hide show
  1. package/package.json +1 -1
  2. package/.venv/bin/Activate.ps1 +0 -241
  3. package/.venv/bin/activate +0 -66
  4. package/.venv/bin/activate.csh +0 -25
  5. package/.venv/bin/activate.fish +0 -64
  6. package/.venv/bin/pip +0 -8
  7. package/.venv/bin/pip3 +0 -8
  8. package/.venv/bin/pip3.9 +0 -8
  9. package/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py +0 -198
  10. package/.venv/lib/python3.9/site-packages/_distutils_hack/override.py +0 -1
  11. package/.venv/lib/python3.9/site-packages/distutils-precedence.pth +0 -1
  12. package/.venv/lib/python3.9/site-packages/pgi/__init__.py +0 -62
  13. package/.venv/lib/python3.9/site-packages/pgi/_compat.py +0 -74
  14. package/.venv/lib/python3.9/site-packages/pgi/callback.py +0 -15
  15. package/.venv/lib/python3.9/site-packages/pgi/cffilib/__init__.py +0 -12
  16. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_compat.py +0 -25
  17. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_utils.py +0 -119
  18. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/__init__.py +0 -60
  19. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_cdef.py +0 -574
  20. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_ffi.py +0 -25
  21. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/error.py +0 -13
  22. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giarginfo.py +0 -73
  23. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giargument.py +0 -36
  24. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gibaseinfo.py +0 -113
  25. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gicallableinfo.py +0 -75
  26. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giconstantinfo.py +0 -22
  27. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gienuminfo.py +0 -59
  28. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifieldinfo.py +0 -40
  29. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifunctioninfo.py +0 -64
  30. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giinterfaceinfo.py +0 -93
  31. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giobjectinfo.py +0 -143
  32. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gipropertyinfo.py +0 -28
  33. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giregisteredtypeinfo.py +0 -27
  34. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/girepository.py +0 -143
  35. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gisignalinfo.py +0 -55
  36. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gistructinfo.py +0 -55
  37. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypeinfo.py +0 -66
  38. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypelib.py +0 -40
  39. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giunioninfo.py +0 -66
  40. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/__init__.py +0 -8
  41. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/_cdef.py +0 -101
  42. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/glib.py +0 -260
  43. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/__init__.py +0 -15
  44. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_cdef.py +0 -45
  45. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_ffi.py +0 -26
  46. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/gobject.py +0 -27
  47. package/.venv/lib/python3.9/site-packages/pgi/clib/__init__.py +0 -11
  48. package/.venv/lib/python3.9/site-packages/pgi/clib/_compat.py +0 -20
  49. package/.venv/lib/python3.9/site-packages/pgi/clib/_utils.py +0 -213
  50. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/__init__.py +0 -71
  51. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/error.py +0 -13
  52. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giarginfo.py +0 -65
  53. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giargument.py +0 -58
  54. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gibaseinfo.py +0 -152
  55. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gicallableinfo.py +0 -203
  56. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giconstantinfo.py +0 -35
  57. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gienuminfo.py +0 -64
  58. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gifieldinfo.py +0 -46
  59. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giinterfaceinfo.py +0 -83
  60. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giobjectinfo.py +0 -134
  61. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gipropertyinfo.py +0 -36
  62. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giregisteredtypeinfo.py +0 -34
  63. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/girepository.py +0 -200
  64. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gistructinfo.py +0 -55
  65. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypeinfo.py +0 -97
  66. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypelib.py +0 -56
  67. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giunioninfo.py +0 -60
  68. package/.venv/lib/python3.9/site-packages/pgi/clib/glib.py +0 -336
  69. package/.venv/lib/python3.9/site-packages/pgi/clib/gobject.py +0 -405
  70. package/.venv/lib/python3.9/site-packages/pgi/codegen/__init__.py +0 -28
  71. package/.venv/lib/python3.9/site-packages/pgi/codegen/arguments.py +0 -640
  72. package/.venv/lib/python3.9/site-packages/pgi/codegen/backend.py +0 -95
  73. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbargs.py +0 -152
  74. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbreturn.py +0 -77
  75. package/.venv/lib/python3.9/site-packages/pgi/codegen/cffi_backend.py +0 -424
  76. package/.venv/lib/python3.9/site-packages/pgi/codegen/construct.py +0 -222
  77. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/__init__.py +0 -11
  78. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/main.py +0 -184
  79. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_basic.py +0 -705
  80. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_container.py +0 -236
  81. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_interface.py +0 -402
  82. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_other.py +0 -93
  83. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/utils.py +0 -168
  84. package/.venv/lib/python3.9/site-packages/pgi/codegen/fieldgen.py +0 -114
  85. package/.venv/lib/python3.9/site-packages/pgi/codegen/fields.py +0 -244
  86. package/.venv/lib/python3.9/site-packages/pgi/codegen/funcgen.py +0 -376
  87. package/.venv/lib/python3.9/site-packages/pgi/codegen/null_backend.py +0 -110
  88. package/.venv/lib/python3.9/site-packages/pgi/codegen/returnvalues.py +0 -443
  89. package/.venv/lib/python3.9/site-packages/pgi/codegen/siggen.py +0 -157
  90. package/.venv/lib/python3.9/site-packages/pgi/codegen/utils.py +0 -248
  91. package/.venv/lib/python3.9/site-packages/pgi/const.py +0 -9
  92. package/.venv/lib/python3.9/site-packages/pgi/constant.py +0 -32
  93. package/.venv/lib/python3.9/site-packages/pgi/debug.py +0 -31
  94. package/.venv/lib/python3.9/site-packages/pgi/enum.py +0 -244
  95. package/.venv/lib/python3.9/site-packages/pgi/field.py +0 -58
  96. package/.venv/lib/python3.9/site-packages/pgi/finalizer.py +0 -3
  97. package/.venv/lib/python3.9/site-packages/pgi/foreign/__init__.py +0 -71
  98. package/.venv/lib/python3.9/site-packages/pgi/foreign/_base.py +0 -43
  99. package/.venv/lib/python3.9/site-packages/pgi/foreign/cairo.py +0 -41
  100. package/.venv/lib/python3.9/site-packages/pgi/function.py +0 -12
  101. package/.venv/lib/python3.9/site-packages/pgi/gerror.py +0 -58
  102. package/.venv/lib/python3.9/site-packages/pgi/gtype.py +0 -168
  103. package/.venv/lib/python3.9/site-packages/pgi/importer.py +0 -189
  104. package/.venv/lib/python3.9/site-packages/pgi/module.py +0 -141
  105. package/.venv/lib/python3.9/site-packages/pgi/obj.py +0 -519
  106. package/.venv/lib/python3.9/site-packages/pgi/overrides/GLib.py +0 -1013
  107. package/.venv/lib/python3.9/site-packages/pgi/overrides/GObject.py +0 -583
  108. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gdk.py +0 -454
  109. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gio.py +0 -237
  110. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gtk.py +0 -2412
  111. package/.venv/lib/python3.9/site-packages/pgi/overrides/Pango.py +0 -53
  112. package/.venv/lib/python3.9/site-packages/pgi/overrides/Poppler.py +0 -61
  113. package/.venv/lib/python3.9/site-packages/pgi/overrides/__init__.py +0 -327
  114. package/.venv/lib/python3.9/site-packages/pgi/overrides/keysyms.py +0 -54
  115. package/.venv/lib/python3.9/site-packages/pgi/properties.py +0 -313
  116. package/.venv/lib/python3.9/site-packages/pgi/propertyhelper.py +0 -12
  117. package/.venv/lib/python3.9/site-packages/pgi/repository/__init__.py +0 -10
  118. package/.venv/lib/python3.9/site-packages/pgi/signalhelper.py +0 -18
  119. package/.venv/lib/python3.9/site-packages/pgi/signals.py +0 -122
  120. package/.venv/lib/python3.9/site-packages/pgi/static.py +0 -189
  121. package/.venv/lib/python3.9/site-packages/pgi/structure.py +0 -131
  122. package/.venv/lib/python3.9/site-packages/pgi/util.py +0 -342
  123. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/COPYING +0 -502
  124. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/INSTALLER +0 -1
  125. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/METADATA +0 -22
  126. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/RECORD +0 -229
  127. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/REQUESTED +0 -0
  128. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/WHEEL +0 -5
  129. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/top_level.txt +0 -1
  130. package/.venv/lib/python3.9/site-packages/pip/__init__.py +0 -13
  131. package/.venv/lib/python3.9/site-packages/pip/__main__.py +0 -31
  132. package/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py +0 -19
  133. package/.venv/lib/python3.9/site-packages/pip/_internal/build_env.py +0 -293
  134. package/.venv/lib/python3.9/site-packages/pip/_internal/cache.py +0 -264
  135. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +0 -4
  136. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py +0 -163
  137. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py +0 -214
  138. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py +0 -1010
  139. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py +0 -27
  140. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py +0 -70
  141. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py +0 -87
  142. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py +0 -292
  143. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py +0 -250
  144. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py +0 -469
  145. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py +0 -157
  146. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py +0 -6
  147. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py +0 -127
  148. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py +0 -223
  149. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py +0 -53
  150. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py +0 -96
  151. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py +0 -266
  152. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py +0 -202
  153. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py +0 -139
  154. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py +0 -97
  155. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py +0 -59
  156. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py +0 -41
  157. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py +0 -138
  158. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py +0 -770
  159. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py +0 -361
  160. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py +0 -174
  161. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py +0 -235
  162. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py +0 -105
  163. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py +0 -177
  164. package/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py +0 -367
  165. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py +0 -21
  166. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py +0 -36
  167. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py +0 -22
  168. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py +0 -129
  169. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py +0 -31
  170. package/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py +0 -402
  171. package/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py +0 -2
  172. package/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py +0 -536
  173. package/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py +0 -993
  174. package/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py +0 -224
  175. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py +0 -446
  176. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py +0 -169
  177. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py +0 -219
  178. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py +0 -52
  179. package/.venv/lib/python3.9/site-packages/pip/_internal/main.py +0 -12
  180. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py +0 -51
  181. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py +0 -330
  182. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py +0 -146
  183. package/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py +0 -2
  184. package/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py +0 -34
  185. package/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py +0 -220
  186. package/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py +0 -80
  187. package/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py +0 -28
  188. package/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py +0 -288
  189. package/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py +0 -31
  190. package/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py +0 -129
  191. package/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py +0 -51
  192. package/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py +0 -110
  193. package/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py +0 -89
  194. package/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py +0 -2
  195. package/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py +0 -323
  196. package/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py +0 -69
  197. package/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py +0 -184
  198. package/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  199. package/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py +0 -454
  200. package/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py +0 -96
  201. package/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py +0 -60
  202. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py +0 -0
  203. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  204. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py +0 -30
  205. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -34
  206. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -67
  207. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  208. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  209. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -105
  210. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py +0 -149
  211. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py +0 -254
  212. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  213. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -46
  214. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py +0 -125
  215. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py +0 -738
  216. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py +0 -632
  217. package/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py +0 -183
  218. package/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py +0 -94
  219. package/.venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py +0 -466
  220. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py +0 -536
  221. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py +0 -891
  222. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py +0 -189
  223. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py +0 -124
  224. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py +0 -633
  225. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py +0 -0
  226. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py +0 -20
  227. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  228. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -467
  229. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  230. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -141
  231. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -540
  232. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -701
  233. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -155
  234. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -215
  235. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -68
  236. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -166
  237. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -251
  238. package/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py +0 -182
  239. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py +0 -0
  240. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py +0 -38
  241. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py +0 -52
  242. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py +0 -63
  243. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py +0 -165
  244. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py +0 -11
  245. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py +0 -120
  246. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  247. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py +0 -42
  248. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py +0 -75
  249. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py +0 -36
  250. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py +0 -27
  251. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py +0 -182
  252. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py +0 -27
  253. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py +0 -88
  254. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py +0 -144
  255. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py +0 -35
  256. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py +0 -358
  257. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py +0 -689
  258. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py +0 -39
  259. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py +0 -84
  260. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py +0 -103
  261. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py +0 -33
  262. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py +0 -167
  263. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py +0 -289
  264. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py +0 -246
  265. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py +0 -258
  266. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py +0 -62
  267. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  268. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py +0 -182
  269. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py +0 -15
  270. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py +0 -93
  271. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py +0 -513
  272. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py +0 -153
  273. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py +0 -318
  274. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py +0 -693
  275. package/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py +0 -375
  276. package/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py +0 -111
  277. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -11
  278. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -57
  279. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -133
  280. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py +0 -39
  281. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -2
  282. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -146
  283. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -33
  284. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py +0 -29
  285. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py +0 -376
  286. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -80
  287. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -135
  288. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -188
  289. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -29
  290. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py +0 -3
  291. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  292. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem +0 -4257
  293. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py +0 -76
  294. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py +0 -83
  295. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py +0 -386
  296. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py +0 -47
  297. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py +0 -233
  298. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -107
  299. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py +0 -145
  300. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -1
  301. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -84
  302. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -88
  303. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py +0 -36
  304. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py +0 -49
  305. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py +0 -76
  306. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py +0 -101
  307. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py +0 -246
  308. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -92
  309. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -195
  310. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py +0 -47
  311. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -387
  312. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py +0 -46
  313. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -283
  314. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -46
  315. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -292
  316. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py +0 -325
  317. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py +0 -233
  318. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -4650
  319. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -4398
  320. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -4383
  321. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -4650
  322. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -5718
  323. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -4383
  324. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -4383
  325. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py +0 -145
  326. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -91
  327. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -54
  328. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py +0 -572
  329. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  330. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -310
  331. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -145
  332. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -83
  333. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py +0 -92
  334. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py +0 -286
  335. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py +0 -82
  336. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py +0 -9
  337. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py +0 -6
  338. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py +0 -102
  339. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -258
  340. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py +0 -80
  341. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py +0 -152
  342. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py +0 -169
  343. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py +0 -23
  344. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py +0 -6
  345. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py +0 -41
  346. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py +0 -764
  347. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +0 -84
  348. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +0 -786
  349. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py +0 -2607
  350. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py +0 -1122
  351. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py +0 -1339
  352. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py +0 -509
  353. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py +0 -1300
  354. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py +0 -393
  355. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py +0 -147
  356. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py +0 -1058
  357. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py +0 -358
  358. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py +0 -429
  359. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  360. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  361. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  362. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py +0 -1969
  363. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py +0 -739
  364. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  365. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  366. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  367. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py +0 -1053
  368. package/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py +0 -1386
  369. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py +0 -35
  370. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py +0 -289
  371. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py +0 -918
  372. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py +0 -1735
  373. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py +0 -5
  374. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py +0 -40
  375. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py +0 -67
  376. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py +0 -159
  377. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py +0 -2946
  378. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  379. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +0 -29
  380. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py +0 -12
  381. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +0 -73
  382. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py +0 -93
  383. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +0 -207
  384. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +0 -916
  385. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py +0 -38
  386. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py +0 -2795
  387. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py +0 -409
  388. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +0 -30
  389. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +0 -54
  390. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +0 -50
  391. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +0 -88
  392. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py +0 -417
  393. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +0 -239
  394. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +0 -343
  395. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +0 -392
  396. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +0 -154
  397. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py +0 -252
  398. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +0 -43
  399. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +0 -131
  400. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +0 -215
  401. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +0 -69
  402. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py +0 -44
  403. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py +0 -117
  404. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py +0 -16
  405. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py +0 -409
  406. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py +0 -2050
  407. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py +0 -58
  408. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py +0 -2
  409. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py +0 -8438
  410. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py +0 -54
  411. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py +0 -1
  412. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  413. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py +0 -193
  414. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py +0 -1087
  415. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py +0 -26
  416. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py +0 -25
  417. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_manylinux.py +0 -301
  418. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_musllinux.py +0 -136
  419. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py +0 -67
  420. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py +0 -304
  421. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py +0 -146
  422. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py +0 -828
  423. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py +0 -484
  424. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py +0 -136
  425. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py +0 -504
  426. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py +0 -6
  427. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py +0 -127
  428. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py +0 -207
  429. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py +0 -115
  430. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py +0 -51
  431. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py +0 -44
  432. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py +0 -171
  433. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py +0 -17
  434. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py +0 -363
  435. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py +0 -92
  436. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py +0 -375
  437. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3296
  438. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py +0 -23
  439. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__init__.py +0 -329
  440. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__main__.py +0 -44
  441. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/android.py +0 -117
  442. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/api.py +0 -155
  443. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/macos.py +0 -62
  444. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/unix.py +0 -180
  445. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/version.py +0 -4
  446. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/windows.py +0 -180
  447. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py +0 -189
  448. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py +0 -93
  449. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/colors.py +0 -79
  450. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py +0 -47
  451. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py +0 -45
  452. package/.venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py +0 -7107
  453. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py +0 -154
  454. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py +0 -14
  455. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py +0 -42
  456. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py +0 -533
  457. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py +0 -159
  458. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py +0 -305
  459. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py +0 -18
  460. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py +0 -76
  461. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py +0 -549
  462. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py +0 -127
  463. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py +0 -132
  464. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py +0 -34
  465. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py +0 -966
  466. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py +0 -16
  467. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py +0 -781
  468. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py +0 -123
  469. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py +0 -105
  470. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py +0 -1013
  471. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  472. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  473. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  474. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  475. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py +0 -37
  476. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -483
  477. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py +0 -165
  478. package/.venv/lib/python3.9/site-packages/pip/_vendor/six.py +0 -998
  479. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py +0 -517
  480. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -92
  481. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py +0 -68
  482. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py +0 -46
  483. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py +0 -41
  484. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -58
  485. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py +0 -43
  486. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py +0 -213
  487. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py +0 -96
  488. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -59
  489. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py +0 -191
  490. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/__init__.py +0 -6
  491. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py +0 -703
  492. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_re.py +0 -83
  493. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py +0 -85
  494. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py +0 -337
  495. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  496. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py +0 -569
  497. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1078
  498. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  499. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  500. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  501. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  502. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  503. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  504. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  505. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -511
  506. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -922
  507. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  508. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  509. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  510. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  511. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -5
  512. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  513. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  514. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1077
  515. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +0 -24
  516. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +0 -160
  517. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -536
  518. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py +0 -170
  519. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py +0 -821
  520. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  521. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py +0 -150
  522. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  523. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  524. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py +0 -143
  525. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  526. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py +0 -602
  527. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -495
  528. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  529. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -268
  530. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py +0 -432
  531. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py +0 -153
  532. package/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -22
  533. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py +0 -342
  534. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py +0 -231
  535. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py +0 -59
  536. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py +0 -153
  537. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -325
  538. package/.venv/lib/python3.9/site-packages/pip/py.typed +0 -4
  539. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER +0 -1
  540. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt +0 -20
  541. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA +0 -93
  542. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD +0 -819
  543. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED +0 -0
  544. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL +0 -5
  545. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt +0 -5
  546. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt +0 -1
  547. package/.venv/lib/python3.9/site-packages/pkg_resources/__init__.py +0 -3303
  548. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  549. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py +0 -608
  550. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py +0 -26
  551. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py +0 -25
  552. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_manylinux.py +0 -301
  553. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_musllinux.py +0 -136
  554. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py +0 -67
  555. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py +0 -304
  556. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py +0 -146
  557. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py +0 -828
  558. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py +0 -484
  559. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py +0 -136
  560. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py +0 -504
  561. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py +0 -5742
  562. package/.venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py +0 -73
  563. package/.venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -6
  564. package/.venv/lib/python3.9/site-packages/setuptools/__init__.py +0 -244
  565. package/.venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py +0 -7
  566. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py +0 -24
  567. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_collections.py +0 -56
  568. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py +0 -561
  569. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py +0 -256
  570. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py +0 -393
  571. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py +0 -1123
  572. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py +0 -403
  573. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py +0 -31
  574. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py +0 -143
  575. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -123
  576. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py +0 -749
  577. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -579
  578. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py +0 -377
  579. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py +0 -157
  580. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py +0 -209
  581. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py +0 -755
  582. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py +0 -392
  583. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py +0 -152
  584. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py +0 -148
  585. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py +0 -76
  586. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py +0 -344
  587. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py +0 -775
  588. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py +0 -79
  589. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -84
  590. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py +0 -47
  591. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py +0 -217
  592. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py +0 -60
  593. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py +0 -30
  594. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py +0 -304
  595. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py +0 -494
  596. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py +0 -214
  597. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/config.py +0 -130
  598. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py +0 -249
  599. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -362
  600. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py +0 -5
  601. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py +0 -92
  602. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py +0 -210
  603. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py +0 -1257
  604. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py +0 -97
  605. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py +0 -240
  606. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py +0 -457
  607. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py +0 -238
  608. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py +0 -355
  609. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/log.py +0 -81
  610. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py +0 -788
  611. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py +0 -643
  612. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py +0 -19
  613. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py +0 -7
  614. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py +0 -106
  615. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py +0 -567
  616. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py +0 -286
  617. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py +0 -325
  618. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/util.py +0 -548
  619. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/version.py +0 -363
  620. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py +0 -169
  621. package/.venv/lib/python3.9/site-packages/setuptools/_imp.py +0 -82
  622. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py +0 -0
  623. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -4
  624. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/more.py +0 -3825
  625. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -620
  626. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py +0 -488
  627. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py +0 -26
  628. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py +0 -25
  629. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -301
  630. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -136
  631. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py +0 -67
  632. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py +0 -304
  633. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py +0 -146
  634. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -828
  635. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py +0 -484
  636. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py +0 -136
  637. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py +0 -504
  638. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py +0 -5742
  639. package/.venv/lib/python3.9/site-packages/setuptools/archive_util.py +0 -205
  640. package/.venv/lib/python3.9/site-packages/setuptools/build_meta.py +0 -290
  641. package/.venv/lib/python3.9/site-packages/setuptools/cli-32.exe +0 -0
  642. package/.venv/lib/python3.9/site-packages/setuptools/cli-64.exe +0 -0
  643. package/.venv/lib/python3.9/site-packages/setuptools/cli-arm64.exe +0 -0
  644. package/.venv/lib/python3.9/site-packages/setuptools/cli.exe +0 -0
  645. package/.venv/lib/python3.9/site-packages/setuptools/command/__init__.py +0 -8
  646. package/.venv/lib/python3.9/site-packages/setuptools/command/alias.py +0 -78
  647. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py +0 -456
  648. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py +0 -40
  649. package/.venv/lib/python3.9/site-packages/setuptools/command/build_clib.py +0 -101
  650. package/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py +0 -328
  651. package/.venv/lib/python3.9/site-packages/setuptools/command/build_py.py +0 -242
  652. package/.venv/lib/python3.9/site-packages/setuptools/command/develop.py +0 -193
  653. package/.venv/lib/python3.9/site-packages/setuptools/command/dist_info.py +0 -36
  654. package/.venv/lib/python3.9/site-packages/setuptools/command/easy_install.py +0 -2304
  655. package/.venv/lib/python3.9/site-packages/setuptools/command/egg_info.py +0 -755
  656. package/.venv/lib/python3.9/site-packages/setuptools/command/install.py +0 -132
  657. package/.venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py +0 -62
  658. package/.venv/lib/python3.9/site-packages/setuptools/command/install_lib.py +0 -122
  659. package/.venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py +0 -69
  660. package/.venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml +0 -15
  661. package/.venv/lib/python3.9/site-packages/setuptools/command/py36compat.py +0 -134
  662. package/.venv/lib/python3.9/site-packages/setuptools/command/register.py +0 -18
  663. package/.venv/lib/python3.9/site-packages/setuptools/command/rotate.py +0 -64
  664. package/.venv/lib/python3.9/site-packages/setuptools/command/saveopts.py +0 -22
  665. package/.venv/lib/python3.9/site-packages/setuptools/command/sdist.py +0 -196
  666. package/.venv/lib/python3.9/site-packages/setuptools/command/setopt.py +0 -149
  667. package/.venv/lib/python3.9/site-packages/setuptools/command/test.py +0 -252
  668. package/.venv/lib/python3.9/site-packages/setuptools/command/upload.py +0 -17
  669. package/.venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py +0 -202
  670. package/.venv/lib/python3.9/site-packages/setuptools/config.py +0 -751
  671. package/.venv/lib/python3.9/site-packages/setuptools/dep_util.py +0 -25
  672. package/.venv/lib/python3.9/site-packages/setuptools/depends.py +0 -176
  673. package/.venv/lib/python3.9/site-packages/setuptools/dist.py +0 -1156
  674. package/.venv/lib/python3.9/site-packages/setuptools/errors.py +0 -40
  675. package/.venv/lib/python3.9/site-packages/setuptools/extension.py +0 -55
  676. package/.venv/lib/python3.9/site-packages/setuptools/extern/__init__.py +0 -73
  677. package/.venv/lib/python3.9/site-packages/setuptools/glob.py +0 -167
  678. package/.venv/lib/python3.9/site-packages/setuptools/gui-32.exe +0 -0
  679. package/.venv/lib/python3.9/site-packages/setuptools/gui-64.exe +0 -0
  680. package/.venv/lib/python3.9/site-packages/setuptools/gui-arm64.exe +0 -0
  681. package/.venv/lib/python3.9/site-packages/setuptools/gui.exe +0 -0
  682. package/.venv/lib/python3.9/site-packages/setuptools/installer.py +0 -104
  683. package/.venv/lib/python3.9/site-packages/setuptools/launch.py +0 -36
  684. package/.venv/lib/python3.9/site-packages/setuptools/logging.py +0 -30
  685. package/.venv/lib/python3.9/site-packages/setuptools/monkey.py +0 -177
  686. package/.venv/lib/python3.9/site-packages/setuptools/msvc.py +0 -1805
  687. package/.venv/lib/python3.9/site-packages/setuptools/namespaces.py +0 -107
  688. package/.venv/lib/python3.9/site-packages/setuptools/package_index.py +0 -1127
  689. package/.venv/lib/python3.9/site-packages/setuptools/py34compat.py +0 -13
  690. package/.venv/lib/python3.9/site-packages/setuptools/sandbox.py +0 -530
  691. package/.venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl +0 -6
  692. package/.venv/lib/python3.9/site-packages/setuptools/script.tmpl +0 -3
  693. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/__init__.py +0 -0
  694. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/helpers.py +0 -61
  695. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -218
  696. package/.venv/lib/python3.9/site-packages/setuptools/unicode_utils.py +0 -42
  697. package/.venv/lib/python3.9/site-packages/setuptools/version.py +0 -6
  698. package/.venv/lib/python3.9/site-packages/setuptools/wheel.py +0 -213
  699. package/.venv/lib/python3.9/site-packages/setuptools/windows_support.py +0 -29
  700. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/INSTALLER +0 -1
  701. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/LICENSE +0 -19
  702. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/METADATA +0 -142
  703. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/RECORD +0 -308
  704. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/REQUESTED +0 -0
  705. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/WHEEL +0 -5
  706. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/entry_points.txt +0 -56
  707. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/top_level.txt +0 -3
  708. package/.venv/pyvenv.cfg +0 -3
  709. package/.vscode/launch.json +0 -62
  710. package/.vscode/settings.json +0 -8
@@ -1,1735 +0,0 @@
1
- from __future__ import absolute_import, division, unicode_literals
2
-
3
- from pip._vendor.six import unichr as chr
4
-
5
- from collections import deque, OrderedDict
6
- from sys import version_info
7
-
8
- from .constants import spaceCharacters
9
- from .constants import entities
10
- from .constants import asciiLetters, asciiUpper2Lower
11
- from .constants import digits, hexDigits, EOF
12
- from .constants import tokenTypes, tagTokenTypes
13
- from .constants import replacementCharacters
14
-
15
- from ._inputstream import HTMLInputStream
16
-
17
- from ._trie import Trie
18
-
19
- entitiesTrie = Trie(entities)
20
-
21
- if version_info >= (3, 7):
22
- attributeMap = dict
23
- else:
24
- attributeMap = OrderedDict
25
-
26
-
27
- class HTMLTokenizer(object):
28
- """ This class takes care of tokenizing HTML.
29
-
30
- * self.currentToken
31
- Holds the token that is currently being processed.
32
-
33
- * self.state
34
- Holds a reference to the method to be invoked... XXX
35
-
36
- * self.stream
37
- Points to HTMLInputStream object.
38
- """
39
-
40
- def __init__(self, stream, parser=None, **kwargs):
41
-
42
- self.stream = HTMLInputStream(stream, **kwargs)
43
- self.parser = parser
44
-
45
- # Setup the initial tokenizer state
46
- self.escapeFlag = False
47
- self.lastFourChars = []
48
- self.state = self.dataState
49
- self.escape = False
50
-
51
- # The current token being created
52
- self.currentToken = None
53
- super(HTMLTokenizer, self).__init__()
54
-
55
- def __iter__(self):
56
- """ This is where the magic happens.
57
-
58
- We do our usually processing through the states and when we have a token
59
- to return we yield the token which pauses processing until the next token
60
- is requested.
61
- """
62
- self.tokenQueue = deque([])
63
- # Start processing. When EOF is reached self.state will return False
64
- # instead of True and the loop will terminate.
65
- while self.state():
66
- while self.stream.errors:
67
- yield {"type": tokenTypes["ParseError"], "data": self.stream.errors.pop(0)}
68
- while self.tokenQueue:
69
- yield self.tokenQueue.popleft()
70
-
71
- def consumeNumberEntity(self, isHex):
72
- """This function returns either U+FFFD or the character based on the
73
- decimal or hexadecimal representation. It also discards ";" if present.
74
- If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked.
75
- """
76
-
77
- allowed = digits
78
- radix = 10
79
- if isHex:
80
- allowed = hexDigits
81
- radix = 16
82
-
83
- charStack = []
84
-
85
- # Consume all the characters that are in range while making sure we
86
- # don't hit an EOF.
87
- c = self.stream.char()
88
- while c in allowed and c is not EOF:
89
- charStack.append(c)
90
- c = self.stream.char()
91
-
92
- # Convert the set of characters consumed to an int.
93
- charAsInt = int("".join(charStack), radix)
94
-
95
- # Certain characters get replaced with others
96
- if charAsInt in replacementCharacters:
97
- char = replacementCharacters[charAsInt]
98
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
99
- "illegal-codepoint-for-numeric-entity",
100
- "datavars": {"charAsInt": charAsInt}})
101
- elif ((0xD800 <= charAsInt <= 0xDFFF) or
102
- (charAsInt > 0x10FFFF)):
103
- char = "\uFFFD"
104
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
105
- "illegal-codepoint-for-numeric-entity",
106
- "datavars": {"charAsInt": charAsInt}})
107
- else:
108
- # Should speed up this check somehow (e.g. move the set to a constant)
109
- if ((0x0001 <= charAsInt <= 0x0008) or
110
- (0x000E <= charAsInt <= 0x001F) or
111
- (0x007F <= charAsInt <= 0x009F) or
112
- (0xFDD0 <= charAsInt <= 0xFDEF) or
113
- charAsInt in frozenset([0x000B, 0xFFFE, 0xFFFF, 0x1FFFE,
114
- 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE,
115
- 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE,
116
- 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE,
117
- 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE,
118
- 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE,
119
- 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE,
120
- 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE,
121
- 0xFFFFF, 0x10FFFE, 0x10FFFF])):
122
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
123
- "data":
124
- "illegal-codepoint-for-numeric-entity",
125
- "datavars": {"charAsInt": charAsInt}})
126
- try:
127
- # Try/except needed as UCS-2 Python builds' unichar only works
128
- # within the BMP.
129
- char = chr(charAsInt)
130
- except ValueError:
131
- v = charAsInt - 0x10000
132
- char = chr(0xD800 | (v >> 10)) + chr(0xDC00 | (v & 0x3FF))
133
-
134
- # Discard the ; if present. Otherwise, put it back on the queue and
135
- # invoke parseError on parser.
136
- if c != ";":
137
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
138
- "numeric-entity-without-semicolon"})
139
- self.stream.unget(c)
140
-
141
- return char
142
-
143
- def consumeEntity(self, allowedChar=None, fromAttribute=False):
144
- # Initialise to the default output for when no entity is matched
145
- output = "&"
146
-
147
- charStack = [self.stream.char()]
148
- if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or
149
- (allowedChar is not None and allowedChar == charStack[0])):
150
- self.stream.unget(charStack[0])
151
-
152
- elif charStack[0] == "#":
153
- # Read the next character to see if it's hex or decimal
154
- hex = False
155
- charStack.append(self.stream.char())
156
- if charStack[-1] in ("x", "X"):
157
- hex = True
158
- charStack.append(self.stream.char())
159
-
160
- # charStack[-1] should be the first digit
161
- if (hex and charStack[-1] in hexDigits) \
162
- or (not hex and charStack[-1] in digits):
163
- # At least one digit found, so consume the whole number
164
- self.stream.unget(charStack[-1])
165
- output = self.consumeNumberEntity(hex)
166
- else:
167
- # No digits found
168
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
169
- "data": "expected-numeric-entity"})
170
- self.stream.unget(charStack.pop())
171
- output = "&" + "".join(charStack)
172
-
173
- else:
174
- # At this point in the process might have named entity. Entities
175
- # are stored in the global variable "entities".
176
- #
177
- # Consume characters and compare to these to a substring of the
178
- # entity names in the list until the substring no longer matches.
179
- while (charStack[-1] is not EOF):
180
- if not entitiesTrie.has_keys_with_prefix("".join(charStack)):
181
- break
182
- charStack.append(self.stream.char())
183
-
184
- # At this point we have a string that starts with some characters
185
- # that may match an entity
186
- # Try to find the longest entity the string will match to take care
187
- # of &noti for instance.
188
- try:
189
- entityName = entitiesTrie.longest_prefix("".join(charStack[:-1]))
190
- entityLength = len(entityName)
191
- except KeyError:
192
- entityName = None
193
-
194
- if entityName is not None:
195
- if entityName[-1] != ";":
196
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
197
- "named-entity-without-semicolon"})
198
- if (entityName[-1] != ";" and fromAttribute and
199
- (charStack[entityLength] in asciiLetters or
200
- charStack[entityLength] in digits or
201
- charStack[entityLength] == "=")):
202
- self.stream.unget(charStack.pop())
203
- output = "&" + "".join(charStack)
204
- else:
205
- output = entities[entityName]
206
- self.stream.unget(charStack.pop())
207
- output += "".join(charStack[entityLength:])
208
- else:
209
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
210
- "expected-named-entity"})
211
- self.stream.unget(charStack.pop())
212
- output = "&" + "".join(charStack)
213
-
214
- if fromAttribute:
215
- self.currentToken["data"][-1][1] += output
216
- else:
217
- if output in spaceCharacters:
218
- tokenType = "SpaceCharacters"
219
- else:
220
- tokenType = "Characters"
221
- self.tokenQueue.append({"type": tokenTypes[tokenType], "data": output})
222
-
223
- def processEntityInAttribute(self, allowedChar):
224
- """This method replaces the need for "entityInAttributeValueState".
225
- """
226
- self.consumeEntity(allowedChar=allowedChar, fromAttribute=True)
227
-
228
- def emitCurrentToken(self):
229
- """This method is a generic handler for emitting the tags. It also sets
230
- the state to "data" because that's what's needed after a token has been
231
- emitted.
232
- """
233
- token = self.currentToken
234
- # Add token to the queue to be yielded
235
- if (token["type"] in tagTokenTypes):
236
- token["name"] = token["name"].translate(asciiUpper2Lower)
237
- if token["type"] == tokenTypes["StartTag"]:
238
- raw = token["data"]
239
- data = attributeMap(raw)
240
- if len(raw) > len(data):
241
- # we had some duplicated attribute, fix so first wins
242
- data.update(raw[::-1])
243
- token["data"] = data
244
-
245
- if token["type"] == tokenTypes["EndTag"]:
246
- if token["data"]:
247
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
248
- "data": "attributes-in-end-tag"})
249
- if token["selfClosing"]:
250
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
251
- "data": "self-closing-flag-on-end-tag"})
252
- self.tokenQueue.append(token)
253
- self.state = self.dataState
254
-
255
- # Below are the various tokenizer states worked out.
256
- def dataState(self):
257
- data = self.stream.char()
258
- if data == "&":
259
- self.state = self.entityDataState
260
- elif data == "<":
261
- self.state = self.tagOpenState
262
- elif data == "\u0000":
263
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
264
- "data": "invalid-codepoint"})
265
- self.tokenQueue.append({"type": tokenTypes["Characters"],
266
- "data": "\u0000"})
267
- elif data is EOF:
268
- # Tokenization ends.
269
- return False
270
- elif data in spaceCharacters:
271
- # Directly after emitting a token you switch back to the "data
272
- # state". At that point spaceCharacters are important so they are
273
- # emitted separately.
274
- self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data":
275
- data + self.stream.charsUntil(spaceCharacters, True)})
276
- # No need to update lastFourChars here, since the first space will
277
- # have already been appended to lastFourChars and will have broken
278
- # any <!-- or --> sequences
279
- else:
280
- chars = self.stream.charsUntil(("&", "<", "\u0000"))
281
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
282
- data + chars})
283
- return True
284
-
285
- def entityDataState(self):
286
- self.consumeEntity()
287
- self.state = self.dataState
288
- return True
289
-
290
- def rcdataState(self):
291
- data = self.stream.char()
292
- if data == "&":
293
- self.state = self.characterReferenceInRcdata
294
- elif data == "<":
295
- self.state = self.rcdataLessThanSignState
296
- elif data == EOF:
297
- # Tokenization ends.
298
- return False
299
- elif data == "\u0000":
300
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
301
- "data": "invalid-codepoint"})
302
- self.tokenQueue.append({"type": tokenTypes["Characters"],
303
- "data": "\uFFFD"})
304
- elif data in spaceCharacters:
305
- # Directly after emitting a token you switch back to the "data
306
- # state". At that point spaceCharacters are important so they are
307
- # emitted separately.
308
- self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data":
309
- data + self.stream.charsUntil(spaceCharacters, True)})
310
- # No need to update lastFourChars here, since the first space will
311
- # have already been appended to lastFourChars and will have broken
312
- # any <!-- or --> sequences
313
- else:
314
- chars = self.stream.charsUntil(("&", "<", "\u0000"))
315
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
316
- data + chars})
317
- return True
318
-
319
- def characterReferenceInRcdata(self):
320
- self.consumeEntity()
321
- self.state = self.rcdataState
322
- return True
323
-
324
- def rawtextState(self):
325
- data = self.stream.char()
326
- if data == "<":
327
- self.state = self.rawtextLessThanSignState
328
- elif data == "\u0000":
329
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
330
- "data": "invalid-codepoint"})
331
- self.tokenQueue.append({"type": tokenTypes["Characters"],
332
- "data": "\uFFFD"})
333
- elif data == EOF:
334
- # Tokenization ends.
335
- return False
336
- else:
337
- chars = self.stream.charsUntil(("<", "\u0000"))
338
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
339
- data + chars})
340
- return True
341
-
342
- def scriptDataState(self):
343
- data = self.stream.char()
344
- if data == "<":
345
- self.state = self.scriptDataLessThanSignState
346
- elif data == "\u0000":
347
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
348
- "data": "invalid-codepoint"})
349
- self.tokenQueue.append({"type": tokenTypes["Characters"],
350
- "data": "\uFFFD"})
351
- elif data == EOF:
352
- # Tokenization ends.
353
- return False
354
- else:
355
- chars = self.stream.charsUntil(("<", "\u0000"))
356
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
357
- data + chars})
358
- return True
359
-
360
- def plaintextState(self):
361
- data = self.stream.char()
362
- if data == EOF:
363
- # Tokenization ends.
364
- return False
365
- elif data == "\u0000":
366
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
367
- "data": "invalid-codepoint"})
368
- self.tokenQueue.append({"type": tokenTypes["Characters"],
369
- "data": "\uFFFD"})
370
- else:
371
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
372
- data + self.stream.charsUntil("\u0000")})
373
- return True
374
-
375
- def tagOpenState(self):
376
- data = self.stream.char()
377
- if data == "!":
378
- self.state = self.markupDeclarationOpenState
379
- elif data == "/":
380
- self.state = self.closeTagOpenState
381
- elif data in asciiLetters:
382
- self.currentToken = {"type": tokenTypes["StartTag"],
383
- "name": data, "data": [],
384
- "selfClosing": False,
385
- "selfClosingAcknowledged": False}
386
- self.state = self.tagNameState
387
- elif data == ">":
388
- # XXX In theory it could be something besides a tag name. But
389
- # do we really care?
390
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
391
- "expected-tag-name-but-got-right-bracket"})
392
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<>"})
393
- self.state = self.dataState
394
- elif data == "?":
395
- # XXX In theory it could be something besides a tag name. But
396
- # do we really care?
397
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
398
- "expected-tag-name-but-got-question-mark"})
399
- self.stream.unget(data)
400
- self.state = self.bogusCommentState
401
- else:
402
- # XXX
403
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
404
- "expected-tag-name"})
405
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
406
- self.stream.unget(data)
407
- self.state = self.dataState
408
- return True
409
-
410
- def closeTagOpenState(self):
411
- data = self.stream.char()
412
- if data in asciiLetters:
413
- self.currentToken = {"type": tokenTypes["EndTag"], "name": data,
414
- "data": [], "selfClosing": False}
415
- self.state = self.tagNameState
416
- elif data == ">":
417
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
418
- "expected-closing-tag-but-got-right-bracket"})
419
- self.state = self.dataState
420
- elif data is EOF:
421
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
422
- "expected-closing-tag-but-got-eof"})
423
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"})
424
- self.state = self.dataState
425
- else:
426
- # XXX data can be _'_...
427
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
428
- "expected-closing-tag-but-got-char",
429
- "datavars": {"data": data}})
430
- self.stream.unget(data)
431
- self.state = self.bogusCommentState
432
- return True
433
-
434
- def tagNameState(self):
435
- data = self.stream.char()
436
- if data in spaceCharacters:
437
- self.state = self.beforeAttributeNameState
438
- elif data == ">":
439
- self.emitCurrentToken()
440
- elif data is EOF:
441
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
442
- "eof-in-tag-name"})
443
- self.state = self.dataState
444
- elif data == "/":
445
- self.state = self.selfClosingStartTagState
446
- elif data == "\u0000":
447
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
448
- "data": "invalid-codepoint"})
449
- self.currentToken["name"] += "\uFFFD"
450
- else:
451
- self.currentToken["name"] += data
452
- # (Don't use charsUntil here, because tag names are
453
- # very short and it's faster to not do anything fancy)
454
- return True
455
-
456
- def rcdataLessThanSignState(self):
457
- data = self.stream.char()
458
- if data == "/":
459
- self.temporaryBuffer = ""
460
- self.state = self.rcdataEndTagOpenState
461
- else:
462
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
463
- self.stream.unget(data)
464
- self.state = self.rcdataState
465
- return True
466
-
467
- def rcdataEndTagOpenState(self):
468
- data = self.stream.char()
469
- if data in asciiLetters:
470
- self.temporaryBuffer += data
471
- self.state = self.rcdataEndTagNameState
472
- else:
473
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"})
474
- self.stream.unget(data)
475
- self.state = self.rcdataState
476
- return True
477
-
478
- def rcdataEndTagNameState(self):
479
- appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower()
480
- data = self.stream.char()
481
- if data in spaceCharacters and appropriate:
482
- self.currentToken = {"type": tokenTypes["EndTag"],
483
- "name": self.temporaryBuffer,
484
- "data": [], "selfClosing": False}
485
- self.state = self.beforeAttributeNameState
486
- elif data == "/" and appropriate:
487
- self.currentToken = {"type": tokenTypes["EndTag"],
488
- "name": self.temporaryBuffer,
489
- "data": [], "selfClosing": False}
490
- self.state = self.selfClosingStartTagState
491
- elif data == ">" and appropriate:
492
- self.currentToken = {"type": tokenTypes["EndTag"],
493
- "name": self.temporaryBuffer,
494
- "data": [], "selfClosing": False}
495
- self.emitCurrentToken()
496
- self.state = self.dataState
497
- elif data in asciiLetters:
498
- self.temporaryBuffer += data
499
- else:
500
- self.tokenQueue.append({"type": tokenTypes["Characters"],
501
- "data": "</" + self.temporaryBuffer})
502
- self.stream.unget(data)
503
- self.state = self.rcdataState
504
- return True
505
-
506
- def rawtextLessThanSignState(self):
507
- data = self.stream.char()
508
- if data == "/":
509
- self.temporaryBuffer = ""
510
- self.state = self.rawtextEndTagOpenState
511
- else:
512
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
513
- self.stream.unget(data)
514
- self.state = self.rawtextState
515
- return True
516
-
517
- def rawtextEndTagOpenState(self):
518
- data = self.stream.char()
519
- if data in asciiLetters:
520
- self.temporaryBuffer += data
521
- self.state = self.rawtextEndTagNameState
522
- else:
523
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"})
524
- self.stream.unget(data)
525
- self.state = self.rawtextState
526
- return True
527
-
528
- def rawtextEndTagNameState(self):
529
- appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower()
530
- data = self.stream.char()
531
- if data in spaceCharacters and appropriate:
532
- self.currentToken = {"type": tokenTypes["EndTag"],
533
- "name": self.temporaryBuffer,
534
- "data": [], "selfClosing": False}
535
- self.state = self.beforeAttributeNameState
536
- elif data == "/" and appropriate:
537
- self.currentToken = {"type": tokenTypes["EndTag"],
538
- "name": self.temporaryBuffer,
539
- "data": [], "selfClosing": False}
540
- self.state = self.selfClosingStartTagState
541
- elif data == ">" and appropriate:
542
- self.currentToken = {"type": tokenTypes["EndTag"],
543
- "name": self.temporaryBuffer,
544
- "data": [], "selfClosing": False}
545
- self.emitCurrentToken()
546
- self.state = self.dataState
547
- elif data in asciiLetters:
548
- self.temporaryBuffer += data
549
- else:
550
- self.tokenQueue.append({"type": tokenTypes["Characters"],
551
- "data": "</" + self.temporaryBuffer})
552
- self.stream.unget(data)
553
- self.state = self.rawtextState
554
- return True
555
-
556
- def scriptDataLessThanSignState(self):
557
- data = self.stream.char()
558
- if data == "/":
559
- self.temporaryBuffer = ""
560
- self.state = self.scriptDataEndTagOpenState
561
- elif data == "!":
562
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<!"})
563
- self.state = self.scriptDataEscapeStartState
564
- else:
565
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
566
- self.stream.unget(data)
567
- self.state = self.scriptDataState
568
- return True
569
-
570
- def scriptDataEndTagOpenState(self):
571
- data = self.stream.char()
572
- if data in asciiLetters:
573
- self.temporaryBuffer += data
574
- self.state = self.scriptDataEndTagNameState
575
- else:
576
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"})
577
- self.stream.unget(data)
578
- self.state = self.scriptDataState
579
- return True
580
-
581
- def scriptDataEndTagNameState(self):
582
- appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower()
583
- data = self.stream.char()
584
- if data in spaceCharacters and appropriate:
585
- self.currentToken = {"type": tokenTypes["EndTag"],
586
- "name": self.temporaryBuffer,
587
- "data": [], "selfClosing": False}
588
- self.state = self.beforeAttributeNameState
589
- elif data == "/" and appropriate:
590
- self.currentToken = {"type": tokenTypes["EndTag"],
591
- "name": self.temporaryBuffer,
592
- "data": [], "selfClosing": False}
593
- self.state = self.selfClosingStartTagState
594
- elif data == ">" and appropriate:
595
- self.currentToken = {"type": tokenTypes["EndTag"],
596
- "name": self.temporaryBuffer,
597
- "data": [], "selfClosing": False}
598
- self.emitCurrentToken()
599
- self.state = self.dataState
600
- elif data in asciiLetters:
601
- self.temporaryBuffer += data
602
- else:
603
- self.tokenQueue.append({"type": tokenTypes["Characters"],
604
- "data": "</" + self.temporaryBuffer})
605
- self.stream.unget(data)
606
- self.state = self.scriptDataState
607
- return True
608
-
609
- def scriptDataEscapeStartState(self):
610
- data = self.stream.char()
611
- if data == "-":
612
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
613
- self.state = self.scriptDataEscapeStartDashState
614
- else:
615
- self.stream.unget(data)
616
- self.state = self.scriptDataState
617
- return True
618
-
619
- def scriptDataEscapeStartDashState(self):
620
- data = self.stream.char()
621
- if data == "-":
622
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
623
- self.state = self.scriptDataEscapedDashDashState
624
- else:
625
- self.stream.unget(data)
626
- self.state = self.scriptDataState
627
- return True
628
-
629
- def scriptDataEscapedState(self):
630
- data = self.stream.char()
631
- if data == "-":
632
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
633
- self.state = self.scriptDataEscapedDashState
634
- elif data == "<":
635
- self.state = self.scriptDataEscapedLessThanSignState
636
- elif data == "\u0000":
637
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
638
- "data": "invalid-codepoint"})
639
- self.tokenQueue.append({"type": tokenTypes["Characters"],
640
- "data": "\uFFFD"})
641
- elif data == EOF:
642
- self.state = self.dataState
643
- else:
644
- chars = self.stream.charsUntil(("<", "-", "\u0000"))
645
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data":
646
- data + chars})
647
- return True
648
-
649
- def scriptDataEscapedDashState(self):
650
- data = self.stream.char()
651
- if data == "-":
652
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
653
- self.state = self.scriptDataEscapedDashDashState
654
- elif data == "<":
655
- self.state = self.scriptDataEscapedLessThanSignState
656
- elif data == "\u0000":
657
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
658
- "data": "invalid-codepoint"})
659
- self.tokenQueue.append({"type": tokenTypes["Characters"],
660
- "data": "\uFFFD"})
661
- self.state = self.scriptDataEscapedState
662
- elif data == EOF:
663
- self.state = self.dataState
664
- else:
665
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
666
- self.state = self.scriptDataEscapedState
667
- return True
668
-
669
- def scriptDataEscapedDashDashState(self):
670
- data = self.stream.char()
671
- if data == "-":
672
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
673
- elif data == "<":
674
- self.state = self.scriptDataEscapedLessThanSignState
675
- elif data == ">":
676
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"})
677
- self.state = self.scriptDataState
678
- elif data == "\u0000":
679
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
680
- "data": "invalid-codepoint"})
681
- self.tokenQueue.append({"type": tokenTypes["Characters"],
682
- "data": "\uFFFD"})
683
- self.state = self.scriptDataEscapedState
684
- elif data == EOF:
685
- self.state = self.dataState
686
- else:
687
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
688
- self.state = self.scriptDataEscapedState
689
- return True
690
-
691
- def scriptDataEscapedLessThanSignState(self):
692
- data = self.stream.char()
693
- if data == "/":
694
- self.temporaryBuffer = ""
695
- self.state = self.scriptDataEscapedEndTagOpenState
696
- elif data in asciiLetters:
697
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<" + data})
698
- self.temporaryBuffer = data
699
- self.state = self.scriptDataDoubleEscapeStartState
700
- else:
701
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
702
- self.stream.unget(data)
703
- self.state = self.scriptDataEscapedState
704
- return True
705
-
706
- def scriptDataEscapedEndTagOpenState(self):
707
- data = self.stream.char()
708
- if data in asciiLetters:
709
- self.temporaryBuffer = data
710
- self.state = self.scriptDataEscapedEndTagNameState
711
- else:
712
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"})
713
- self.stream.unget(data)
714
- self.state = self.scriptDataEscapedState
715
- return True
716
-
717
- def scriptDataEscapedEndTagNameState(self):
718
- appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower()
719
- data = self.stream.char()
720
- if data in spaceCharacters and appropriate:
721
- self.currentToken = {"type": tokenTypes["EndTag"],
722
- "name": self.temporaryBuffer,
723
- "data": [], "selfClosing": False}
724
- self.state = self.beforeAttributeNameState
725
- elif data == "/" and appropriate:
726
- self.currentToken = {"type": tokenTypes["EndTag"],
727
- "name": self.temporaryBuffer,
728
- "data": [], "selfClosing": False}
729
- self.state = self.selfClosingStartTagState
730
- elif data == ">" and appropriate:
731
- self.currentToken = {"type": tokenTypes["EndTag"],
732
- "name": self.temporaryBuffer,
733
- "data": [], "selfClosing": False}
734
- self.emitCurrentToken()
735
- self.state = self.dataState
736
- elif data in asciiLetters:
737
- self.temporaryBuffer += data
738
- else:
739
- self.tokenQueue.append({"type": tokenTypes["Characters"],
740
- "data": "</" + self.temporaryBuffer})
741
- self.stream.unget(data)
742
- self.state = self.scriptDataEscapedState
743
- return True
744
-
745
- def scriptDataDoubleEscapeStartState(self):
746
- data = self.stream.char()
747
- if data in (spaceCharacters | frozenset(("/", ">"))):
748
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
749
- if self.temporaryBuffer.lower() == "script":
750
- self.state = self.scriptDataDoubleEscapedState
751
- else:
752
- self.state = self.scriptDataEscapedState
753
- elif data in asciiLetters:
754
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
755
- self.temporaryBuffer += data
756
- else:
757
- self.stream.unget(data)
758
- self.state = self.scriptDataEscapedState
759
- return True
760
-
761
- def scriptDataDoubleEscapedState(self):
762
- data = self.stream.char()
763
- if data == "-":
764
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
765
- self.state = self.scriptDataDoubleEscapedDashState
766
- elif data == "<":
767
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
768
- self.state = self.scriptDataDoubleEscapedLessThanSignState
769
- elif data == "\u0000":
770
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
771
- "data": "invalid-codepoint"})
772
- self.tokenQueue.append({"type": tokenTypes["Characters"],
773
- "data": "\uFFFD"})
774
- elif data == EOF:
775
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
776
- "eof-in-script-in-script"})
777
- self.state = self.dataState
778
- else:
779
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
780
- return True
781
-
782
- def scriptDataDoubleEscapedDashState(self):
783
- data = self.stream.char()
784
- if data == "-":
785
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
786
- self.state = self.scriptDataDoubleEscapedDashDashState
787
- elif data == "<":
788
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
789
- self.state = self.scriptDataDoubleEscapedLessThanSignState
790
- elif data == "\u0000":
791
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
792
- "data": "invalid-codepoint"})
793
- self.tokenQueue.append({"type": tokenTypes["Characters"],
794
- "data": "\uFFFD"})
795
- self.state = self.scriptDataDoubleEscapedState
796
- elif data == EOF:
797
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
798
- "eof-in-script-in-script"})
799
- self.state = self.dataState
800
- else:
801
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
802
- self.state = self.scriptDataDoubleEscapedState
803
- return True
804
-
805
- def scriptDataDoubleEscapedDashDashState(self):
806
- data = self.stream.char()
807
- if data == "-":
808
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"})
809
- elif data == "<":
810
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"})
811
- self.state = self.scriptDataDoubleEscapedLessThanSignState
812
- elif data == ">":
813
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"})
814
- self.state = self.scriptDataState
815
- elif data == "\u0000":
816
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
817
- "data": "invalid-codepoint"})
818
- self.tokenQueue.append({"type": tokenTypes["Characters"],
819
- "data": "\uFFFD"})
820
- self.state = self.scriptDataDoubleEscapedState
821
- elif data == EOF:
822
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
823
- "eof-in-script-in-script"})
824
- self.state = self.dataState
825
- else:
826
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
827
- self.state = self.scriptDataDoubleEscapedState
828
- return True
829
-
830
- def scriptDataDoubleEscapedLessThanSignState(self):
831
- data = self.stream.char()
832
- if data == "/":
833
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "/"})
834
- self.temporaryBuffer = ""
835
- self.state = self.scriptDataDoubleEscapeEndState
836
- else:
837
- self.stream.unget(data)
838
- self.state = self.scriptDataDoubleEscapedState
839
- return True
840
-
841
- def scriptDataDoubleEscapeEndState(self):
842
- data = self.stream.char()
843
- if data in (spaceCharacters | frozenset(("/", ">"))):
844
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
845
- if self.temporaryBuffer.lower() == "script":
846
- self.state = self.scriptDataEscapedState
847
- else:
848
- self.state = self.scriptDataDoubleEscapedState
849
- elif data in asciiLetters:
850
- self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data})
851
- self.temporaryBuffer += data
852
- else:
853
- self.stream.unget(data)
854
- self.state = self.scriptDataDoubleEscapedState
855
- return True
856
-
857
- def beforeAttributeNameState(self):
858
- data = self.stream.char()
859
- if data in spaceCharacters:
860
- self.stream.charsUntil(spaceCharacters, True)
861
- elif data in asciiLetters:
862
- self.currentToken["data"].append([data, ""])
863
- self.state = self.attributeNameState
864
- elif data == ">":
865
- self.emitCurrentToken()
866
- elif data == "/":
867
- self.state = self.selfClosingStartTagState
868
- elif data in ("'", '"', "=", "<"):
869
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
870
- "invalid-character-in-attribute-name"})
871
- self.currentToken["data"].append([data, ""])
872
- self.state = self.attributeNameState
873
- elif data == "\u0000":
874
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
875
- "data": "invalid-codepoint"})
876
- self.currentToken["data"].append(["\uFFFD", ""])
877
- self.state = self.attributeNameState
878
- elif data is EOF:
879
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
880
- "expected-attribute-name-but-got-eof"})
881
- self.state = self.dataState
882
- else:
883
- self.currentToken["data"].append([data, ""])
884
- self.state = self.attributeNameState
885
- return True
886
-
887
- def attributeNameState(self):
888
- data = self.stream.char()
889
- leavingThisState = True
890
- emitToken = False
891
- if data == "=":
892
- self.state = self.beforeAttributeValueState
893
- elif data in asciiLetters:
894
- self.currentToken["data"][-1][0] += data +\
895
- self.stream.charsUntil(asciiLetters, True)
896
- leavingThisState = False
897
- elif data == ">":
898
- # XXX If we emit here the attributes are converted to a dict
899
- # without being checked and when the code below runs we error
900
- # because data is a dict not a list
901
- emitToken = True
902
- elif data in spaceCharacters:
903
- self.state = self.afterAttributeNameState
904
- elif data == "/":
905
- self.state = self.selfClosingStartTagState
906
- elif data == "\u0000":
907
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
908
- "data": "invalid-codepoint"})
909
- self.currentToken["data"][-1][0] += "\uFFFD"
910
- leavingThisState = False
911
- elif data in ("'", '"', "<"):
912
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
913
- "data":
914
- "invalid-character-in-attribute-name"})
915
- self.currentToken["data"][-1][0] += data
916
- leavingThisState = False
917
- elif data is EOF:
918
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
919
- "data": "eof-in-attribute-name"})
920
- self.state = self.dataState
921
- else:
922
- self.currentToken["data"][-1][0] += data
923
- leavingThisState = False
924
-
925
- if leavingThisState:
926
- # Attributes are not dropped at this stage. That happens when the
927
- # start tag token is emitted so values can still be safely appended
928
- # to attributes, but we do want to report the parse error in time.
929
- self.currentToken["data"][-1][0] = (
930
- self.currentToken["data"][-1][0].translate(asciiUpper2Lower))
931
- for name, _ in self.currentToken["data"][:-1]:
932
- if self.currentToken["data"][-1][0] == name:
933
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
934
- "duplicate-attribute"})
935
- break
936
- # XXX Fix for above XXX
937
- if emitToken:
938
- self.emitCurrentToken()
939
- return True
940
-
941
- def afterAttributeNameState(self):
942
- data = self.stream.char()
943
- if data in spaceCharacters:
944
- self.stream.charsUntil(spaceCharacters, True)
945
- elif data == "=":
946
- self.state = self.beforeAttributeValueState
947
- elif data == ">":
948
- self.emitCurrentToken()
949
- elif data in asciiLetters:
950
- self.currentToken["data"].append([data, ""])
951
- self.state = self.attributeNameState
952
- elif data == "/":
953
- self.state = self.selfClosingStartTagState
954
- elif data == "\u0000":
955
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
956
- "data": "invalid-codepoint"})
957
- self.currentToken["data"].append(["\uFFFD", ""])
958
- self.state = self.attributeNameState
959
- elif data in ("'", '"', "<"):
960
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
961
- "invalid-character-after-attribute-name"})
962
- self.currentToken["data"].append([data, ""])
963
- self.state = self.attributeNameState
964
- elif data is EOF:
965
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
966
- "expected-end-of-tag-but-got-eof"})
967
- self.state = self.dataState
968
- else:
969
- self.currentToken["data"].append([data, ""])
970
- self.state = self.attributeNameState
971
- return True
972
-
973
- def beforeAttributeValueState(self):
974
- data = self.stream.char()
975
- if data in spaceCharacters:
976
- self.stream.charsUntil(spaceCharacters, True)
977
- elif data == "\"":
978
- self.state = self.attributeValueDoubleQuotedState
979
- elif data == "&":
980
- self.state = self.attributeValueUnQuotedState
981
- self.stream.unget(data)
982
- elif data == "'":
983
- self.state = self.attributeValueSingleQuotedState
984
- elif data == ">":
985
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
986
- "expected-attribute-value-but-got-right-bracket"})
987
- self.emitCurrentToken()
988
- elif data == "\u0000":
989
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
990
- "data": "invalid-codepoint"})
991
- self.currentToken["data"][-1][1] += "\uFFFD"
992
- self.state = self.attributeValueUnQuotedState
993
- elif data in ("=", "<", "`"):
994
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
995
- "equals-in-unquoted-attribute-value"})
996
- self.currentToken["data"][-1][1] += data
997
- self.state = self.attributeValueUnQuotedState
998
- elif data is EOF:
999
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1000
- "expected-attribute-value-but-got-eof"})
1001
- self.state = self.dataState
1002
- else:
1003
- self.currentToken["data"][-1][1] += data
1004
- self.state = self.attributeValueUnQuotedState
1005
- return True
1006
-
1007
- def attributeValueDoubleQuotedState(self):
1008
- data = self.stream.char()
1009
- if data == "\"":
1010
- self.state = self.afterAttributeValueState
1011
- elif data == "&":
1012
- self.processEntityInAttribute('"')
1013
- elif data == "\u0000":
1014
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1015
- "data": "invalid-codepoint"})
1016
- self.currentToken["data"][-1][1] += "\uFFFD"
1017
- elif data is EOF:
1018
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1019
- "eof-in-attribute-value-double-quote"})
1020
- self.state = self.dataState
1021
- else:
1022
- self.currentToken["data"][-1][1] += data +\
1023
- self.stream.charsUntil(("\"", "&", "\u0000"))
1024
- return True
1025
-
1026
- def attributeValueSingleQuotedState(self):
1027
- data = self.stream.char()
1028
- if data == "'":
1029
- self.state = self.afterAttributeValueState
1030
- elif data == "&":
1031
- self.processEntityInAttribute("'")
1032
- elif data == "\u0000":
1033
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1034
- "data": "invalid-codepoint"})
1035
- self.currentToken["data"][-1][1] += "\uFFFD"
1036
- elif data is EOF:
1037
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1038
- "eof-in-attribute-value-single-quote"})
1039
- self.state = self.dataState
1040
- else:
1041
- self.currentToken["data"][-1][1] += data +\
1042
- self.stream.charsUntil(("'", "&", "\u0000"))
1043
- return True
1044
-
1045
- def attributeValueUnQuotedState(self):
1046
- data = self.stream.char()
1047
- if data in spaceCharacters:
1048
- self.state = self.beforeAttributeNameState
1049
- elif data == "&":
1050
- self.processEntityInAttribute(">")
1051
- elif data == ">":
1052
- self.emitCurrentToken()
1053
- elif data in ('"', "'", "=", "<", "`"):
1054
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1055
- "unexpected-character-in-unquoted-attribute-value"})
1056
- self.currentToken["data"][-1][1] += data
1057
- elif data == "\u0000":
1058
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1059
- "data": "invalid-codepoint"})
1060
- self.currentToken["data"][-1][1] += "\uFFFD"
1061
- elif data is EOF:
1062
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1063
- "eof-in-attribute-value-no-quotes"})
1064
- self.state = self.dataState
1065
- else:
1066
- self.currentToken["data"][-1][1] += data + self.stream.charsUntil(
1067
- frozenset(("&", ">", '"', "'", "=", "<", "`", "\u0000")) | spaceCharacters)
1068
- return True
1069
-
1070
- def afterAttributeValueState(self):
1071
- data = self.stream.char()
1072
- if data in spaceCharacters:
1073
- self.state = self.beforeAttributeNameState
1074
- elif data == ">":
1075
- self.emitCurrentToken()
1076
- elif data == "/":
1077
- self.state = self.selfClosingStartTagState
1078
- elif data is EOF:
1079
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1080
- "unexpected-EOF-after-attribute-value"})
1081
- self.stream.unget(data)
1082
- self.state = self.dataState
1083
- else:
1084
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1085
- "unexpected-character-after-attribute-value"})
1086
- self.stream.unget(data)
1087
- self.state = self.beforeAttributeNameState
1088
- return True
1089
-
1090
- def selfClosingStartTagState(self):
1091
- data = self.stream.char()
1092
- if data == ">":
1093
- self.currentToken["selfClosing"] = True
1094
- self.emitCurrentToken()
1095
- elif data is EOF:
1096
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1097
- "data":
1098
- "unexpected-EOF-after-solidus-in-tag"})
1099
- self.stream.unget(data)
1100
- self.state = self.dataState
1101
- else:
1102
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1103
- "unexpected-character-after-solidus-in-tag"})
1104
- self.stream.unget(data)
1105
- self.state = self.beforeAttributeNameState
1106
- return True
1107
-
1108
- def bogusCommentState(self):
1109
- # Make a new comment token and give it as value all the characters
1110
- # until the first > or EOF (charsUntil checks for EOF automatically)
1111
- # and emit it.
1112
- data = self.stream.charsUntil(">")
1113
- data = data.replace("\u0000", "\uFFFD")
1114
- self.tokenQueue.append(
1115
- {"type": tokenTypes["Comment"], "data": data})
1116
-
1117
- # Eat the character directly after the bogus comment which is either a
1118
- # ">" or an EOF.
1119
- self.stream.char()
1120
- self.state = self.dataState
1121
- return True
1122
-
1123
- def markupDeclarationOpenState(self):
1124
- charStack = [self.stream.char()]
1125
- if charStack[-1] == "-":
1126
- charStack.append(self.stream.char())
1127
- if charStack[-1] == "-":
1128
- self.currentToken = {"type": tokenTypes["Comment"], "data": ""}
1129
- self.state = self.commentStartState
1130
- return True
1131
- elif charStack[-1] in ('d', 'D'):
1132
- matched = True
1133
- for expected in (('o', 'O'), ('c', 'C'), ('t', 'T'),
1134
- ('y', 'Y'), ('p', 'P'), ('e', 'E')):
1135
- charStack.append(self.stream.char())
1136
- if charStack[-1] not in expected:
1137
- matched = False
1138
- break
1139
- if matched:
1140
- self.currentToken = {"type": tokenTypes["Doctype"],
1141
- "name": "",
1142
- "publicId": None, "systemId": None,
1143
- "correct": True}
1144
- self.state = self.doctypeState
1145
- return True
1146
- elif (charStack[-1] == "[" and
1147
- self.parser is not None and
1148
- self.parser.tree.openElements and
1149
- self.parser.tree.openElements[-1].namespace != self.parser.tree.defaultNamespace):
1150
- matched = True
1151
- for expected in ["C", "D", "A", "T", "A", "["]:
1152
- charStack.append(self.stream.char())
1153
- if charStack[-1] != expected:
1154
- matched = False
1155
- break
1156
- if matched:
1157
- self.state = self.cdataSectionState
1158
- return True
1159
-
1160
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1161
- "expected-dashes-or-doctype"})
1162
-
1163
- while charStack:
1164
- self.stream.unget(charStack.pop())
1165
- self.state = self.bogusCommentState
1166
- return True
1167
-
1168
- def commentStartState(self):
1169
- data = self.stream.char()
1170
- if data == "-":
1171
- self.state = self.commentStartDashState
1172
- elif data == "\u0000":
1173
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1174
- "data": "invalid-codepoint"})
1175
- self.currentToken["data"] += "\uFFFD"
1176
- elif data == ">":
1177
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1178
- "incorrect-comment"})
1179
- self.tokenQueue.append(self.currentToken)
1180
- self.state = self.dataState
1181
- elif data is EOF:
1182
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1183
- "eof-in-comment"})
1184
- self.tokenQueue.append(self.currentToken)
1185
- self.state = self.dataState
1186
- else:
1187
- self.currentToken["data"] += data
1188
- self.state = self.commentState
1189
- return True
1190
-
1191
- def commentStartDashState(self):
1192
- data = self.stream.char()
1193
- if data == "-":
1194
- self.state = self.commentEndState
1195
- elif data == "\u0000":
1196
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1197
- "data": "invalid-codepoint"})
1198
- self.currentToken["data"] += "-\uFFFD"
1199
- elif data == ">":
1200
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1201
- "incorrect-comment"})
1202
- self.tokenQueue.append(self.currentToken)
1203
- self.state = self.dataState
1204
- elif data is EOF:
1205
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1206
- "eof-in-comment"})
1207
- self.tokenQueue.append(self.currentToken)
1208
- self.state = self.dataState
1209
- else:
1210
- self.currentToken["data"] += "-" + data
1211
- self.state = self.commentState
1212
- return True
1213
-
1214
- def commentState(self):
1215
- data = self.stream.char()
1216
- if data == "-":
1217
- self.state = self.commentEndDashState
1218
- elif data == "\u0000":
1219
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1220
- "data": "invalid-codepoint"})
1221
- self.currentToken["data"] += "\uFFFD"
1222
- elif data is EOF:
1223
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1224
- "data": "eof-in-comment"})
1225
- self.tokenQueue.append(self.currentToken)
1226
- self.state = self.dataState
1227
- else:
1228
- self.currentToken["data"] += data + \
1229
- self.stream.charsUntil(("-", "\u0000"))
1230
- return True
1231
-
1232
- def commentEndDashState(self):
1233
- data = self.stream.char()
1234
- if data == "-":
1235
- self.state = self.commentEndState
1236
- elif data == "\u0000":
1237
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1238
- "data": "invalid-codepoint"})
1239
- self.currentToken["data"] += "-\uFFFD"
1240
- self.state = self.commentState
1241
- elif data is EOF:
1242
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1243
- "eof-in-comment-end-dash"})
1244
- self.tokenQueue.append(self.currentToken)
1245
- self.state = self.dataState
1246
- else:
1247
- self.currentToken["data"] += "-" + data
1248
- self.state = self.commentState
1249
- return True
1250
-
1251
- def commentEndState(self):
1252
- data = self.stream.char()
1253
- if data == ">":
1254
- self.tokenQueue.append(self.currentToken)
1255
- self.state = self.dataState
1256
- elif data == "\u0000":
1257
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1258
- "data": "invalid-codepoint"})
1259
- self.currentToken["data"] += "--\uFFFD"
1260
- self.state = self.commentState
1261
- elif data == "!":
1262
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1263
- "unexpected-bang-after-double-dash-in-comment"})
1264
- self.state = self.commentEndBangState
1265
- elif data == "-":
1266
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1267
- "unexpected-dash-after-double-dash-in-comment"})
1268
- self.currentToken["data"] += data
1269
- elif data is EOF:
1270
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1271
- "eof-in-comment-double-dash"})
1272
- self.tokenQueue.append(self.currentToken)
1273
- self.state = self.dataState
1274
- else:
1275
- # XXX
1276
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1277
- "unexpected-char-in-comment"})
1278
- self.currentToken["data"] += "--" + data
1279
- self.state = self.commentState
1280
- return True
1281
-
1282
- def commentEndBangState(self):
1283
- data = self.stream.char()
1284
- if data == ">":
1285
- self.tokenQueue.append(self.currentToken)
1286
- self.state = self.dataState
1287
- elif data == "-":
1288
- self.currentToken["data"] += "--!"
1289
- self.state = self.commentEndDashState
1290
- elif data == "\u0000":
1291
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1292
- "data": "invalid-codepoint"})
1293
- self.currentToken["data"] += "--!\uFFFD"
1294
- self.state = self.commentState
1295
- elif data is EOF:
1296
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1297
- "eof-in-comment-end-bang-state"})
1298
- self.tokenQueue.append(self.currentToken)
1299
- self.state = self.dataState
1300
- else:
1301
- self.currentToken["data"] += "--!" + data
1302
- self.state = self.commentState
1303
- return True
1304
-
1305
- def doctypeState(self):
1306
- data = self.stream.char()
1307
- if data in spaceCharacters:
1308
- self.state = self.beforeDoctypeNameState
1309
- elif data is EOF:
1310
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1311
- "expected-doctype-name-but-got-eof"})
1312
- self.currentToken["correct"] = False
1313
- self.tokenQueue.append(self.currentToken)
1314
- self.state = self.dataState
1315
- else:
1316
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1317
- "need-space-after-doctype"})
1318
- self.stream.unget(data)
1319
- self.state = self.beforeDoctypeNameState
1320
- return True
1321
-
1322
- def beforeDoctypeNameState(self):
1323
- data = self.stream.char()
1324
- if data in spaceCharacters:
1325
- pass
1326
- elif data == ">":
1327
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1328
- "expected-doctype-name-but-got-right-bracket"})
1329
- self.currentToken["correct"] = False
1330
- self.tokenQueue.append(self.currentToken)
1331
- self.state = self.dataState
1332
- elif data == "\u0000":
1333
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1334
- "data": "invalid-codepoint"})
1335
- self.currentToken["name"] = "\uFFFD"
1336
- self.state = self.doctypeNameState
1337
- elif data is EOF:
1338
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1339
- "expected-doctype-name-but-got-eof"})
1340
- self.currentToken["correct"] = False
1341
- self.tokenQueue.append(self.currentToken)
1342
- self.state = self.dataState
1343
- else:
1344
- self.currentToken["name"] = data
1345
- self.state = self.doctypeNameState
1346
- return True
1347
-
1348
- def doctypeNameState(self):
1349
- data = self.stream.char()
1350
- if data in spaceCharacters:
1351
- self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower)
1352
- self.state = self.afterDoctypeNameState
1353
- elif data == ">":
1354
- self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower)
1355
- self.tokenQueue.append(self.currentToken)
1356
- self.state = self.dataState
1357
- elif data == "\u0000":
1358
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1359
- "data": "invalid-codepoint"})
1360
- self.currentToken["name"] += "\uFFFD"
1361
- self.state = self.doctypeNameState
1362
- elif data is EOF:
1363
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1364
- "eof-in-doctype-name"})
1365
- self.currentToken["correct"] = False
1366
- self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower)
1367
- self.tokenQueue.append(self.currentToken)
1368
- self.state = self.dataState
1369
- else:
1370
- self.currentToken["name"] += data
1371
- return True
1372
-
1373
- def afterDoctypeNameState(self):
1374
- data = self.stream.char()
1375
- if data in spaceCharacters:
1376
- pass
1377
- elif data == ">":
1378
- self.tokenQueue.append(self.currentToken)
1379
- self.state = self.dataState
1380
- elif data is EOF:
1381
- self.currentToken["correct"] = False
1382
- self.stream.unget(data)
1383
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1384
- "eof-in-doctype"})
1385
- self.tokenQueue.append(self.currentToken)
1386
- self.state = self.dataState
1387
- else:
1388
- if data in ("p", "P"):
1389
- matched = True
1390
- for expected in (("u", "U"), ("b", "B"), ("l", "L"),
1391
- ("i", "I"), ("c", "C")):
1392
- data = self.stream.char()
1393
- if data not in expected:
1394
- matched = False
1395
- break
1396
- if matched:
1397
- self.state = self.afterDoctypePublicKeywordState
1398
- return True
1399
- elif data in ("s", "S"):
1400
- matched = True
1401
- for expected in (("y", "Y"), ("s", "S"), ("t", "T"),
1402
- ("e", "E"), ("m", "M")):
1403
- data = self.stream.char()
1404
- if data not in expected:
1405
- matched = False
1406
- break
1407
- if matched:
1408
- self.state = self.afterDoctypeSystemKeywordState
1409
- return True
1410
-
1411
- # All the characters read before the current 'data' will be
1412
- # [a-zA-Z], so they're garbage in the bogus doctype and can be
1413
- # discarded; only the latest character might be '>' or EOF
1414
- # and needs to be ungetted
1415
- self.stream.unget(data)
1416
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1417
- "expected-space-or-right-bracket-in-doctype", "datavars":
1418
- {"data": data}})
1419
- self.currentToken["correct"] = False
1420
- self.state = self.bogusDoctypeState
1421
-
1422
- return True
1423
-
1424
- def afterDoctypePublicKeywordState(self):
1425
- data = self.stream.char()
1426
- if data in spaceCharacters:
1427
- self.state = self.beforeDoctypePublicIdentifierState
1428
- elif data in ("'", '"'):
1429
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1430
- "unexpected-char-in-doctype"})
1431
- self.stream.unget(data)
1432
- self.state = self.beforeDoctypePublicIdentifierState
1433
- elif data is EOF:
1434
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1435
- "eof-in-doctype"})
1436
- self.currentToken["correct"] = False
1437
- self.tokenQueue.append(self.currentToken)
1438
- self.state = self.dataState
1439
- else:
1440
- self.stream.unget(data)
1441
- self.state = self.beforeDoctypePublicIdentifierState
1442
- return True
1443
-
1444
- def beforeDoctypePublicIdentifierState(self):
1445
- data = self.stream.char()
1446
- if data in spaceCharacters:
1447
- pass
1448
- elif data == "\"":
1449
- self.currentToken["publicId"] = ""
1450
- self.state = self.doctypePublicIdentifierDoubleQuotedState
1451
- elif data == "'":
1452
- self.currentToken["publicId"] = ""
1453
- self.state = self.doctypePublicIdentifierSingleQuotedState
1454
- elif data == ">":
1455
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1456
- "unexpected-end-of-doctype"})
1457
- self.currentToken["correct"] = False
1458
- self.tokenQueue.append(self.currentToken)
1459
- self.state = self.dataState
1460
- elif data is EOF:
1461
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1462
- "eof-in-doctype"})
1463
- self.currentToken["correct"] = False
1464
- self.tokenQueue.append(self.currentToken)
1465
- self.state = self.dataState
1466
- else:
1467
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1468
- "unexpected-char-in-doctype"})
1469
- self.currentToken["correct"] = False
1470
- self.state = self.bogusDoctypeState
1471
- return True
1472
-
1473
- def doctypePublicIdentifierDoubleQuotedState(self):
1474
- data = self.stream.char()
1475
- if data == "\"":
1476
- self.state = self.afterDoctypePublicIdentifierState
1477
- elif data == "\u0000":
1478
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1479
- "data": "invalid-codepoint"})
1480
- self.currentToken["publicId"] += "\uFFFD"
1481
- elif data == ">":
1482
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1483
- "unexpected-end-of-doctype"})
1484
- self.currentToken["correct"] = False
1485
- self.tokenQueue.append(self.currentToken)
1486
- self.state = self.dataState
1487
- elif data is EOF:
1488
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1489
- "eof-in-doctype"})
1490
- self.currentToken["correct"] = False
1491
- self.tokenQueue.append(self.currentToken)
1492
- self.state = self.dataState
1493
- else:
1494
- self.currentToken["publicId"] += data
1495
- return True
1496
-
1497
- def doctypePublicIdentifierSingleQuotedState(self):
1498
- data = self.stream.char()
1499
- if data == "'":
1500
- self.state = self.afterDoctypePublicIdentifierState
1501
- elif data == "\u0000":
1502
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1503
- "data": "invalid-codepoint"})
1504
- self.currentToken["publicId"] += "\uFFFD"
1505
- elif data == ">":
1506
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1507
- "unexpected-end-of-doctype"})
1508
- self.currentToken["correct"] = False
1509
- self.tokenQueue.append(self.currentToken)
1510
- self.state = self.dataState
1511
- elif data is EOF:
1512
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1513
- "eof-in-doctype"})
1514
- self.currentToken["correct"] = False
1515
- self.tokenQueue.append(self.currentToken)
1516
- self.state = self.dataState
1517
- else:
1518
- self.currentToken["publicId"] += data
1519
- return True
1520
-
1521
- def afterDoctypePublicIdentifierState(self):
1522
- data = self.stream.char()
1523
- if data in spaceCharacters:
1524
- self.state = self.betweenDoctypePublicAndSystemIdentifiersState
1525
- elif data == ">":
1526
- self.tokenQueue.append(self.currentToken)
1527
- self.state = self.dataState
1528
- elif data == '"':
1529
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1530
- "unexpected-char-in-doctype"})
1531
- self.currentToken["systemId"] = ""
1532
- self.state = self.doctypeSystemIdentifierDoubleQuotedState
1533
- elif data == "'":
1534
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1535
- "unexpected-char-in-doctype"})
1536
- self.currentToken["systemId"] = ""
1537
- self.state = self.doctypeSystemIdentifierSingleQuotedState
1538
- elif data is EOF:
1539
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1540
- "eof-in-doctype"})
1541
- self.currentToken["correct"] = False
1542
- self.tokenQueue.append(self.currentToken)
1543
- self.state = self.dataState
1544
- else:
1545
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1546
- "unexpected-char-in-doctype"})
1547
- self.currentToken["correct"] = False
1548
- self.state = self.bogusDoctypeState
1549
- return True
1550
-
1551
- def betweenDoctypePublicAndSystemIdentifiersState(self):
1552
- data = self.stream.char()
1553
- if data in spaceCharacters:
1554
- pass
1555
- elif data == ">":
1556
- self.tokenQueue.append(self.currentToken)
1557
- self.state = self.dataState
1558
- elif data == '"':
1559
- self.currentToken["systemId"] = ""
1560
- self.state = self.doctypeSystemIdentifierDoubleQuotedState
1561
- elif data == "'":
1562
- self.currentToken["systemId"] = ""
1563
- self.state = self.doctypeSystemIdentifierSingleQuotedState
1564
- elif data == EOF:
1565
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1566
- "eof-in-doctype"})
1567
- self.currentToken["correct"] = False
1568
- self.tokenQueue.append(self.currentToken)
1569
- self.state = self.dataState
1570
- else:
1571
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1572
- "unexpected-char-in-doctype"})
1573
- self.currentToken["correct"] = False
1574
- self.state = self.bogusDoctypeState
1575
- return True
1576
-
1577
- def afterDoctypeSystemKeywordState(self):
1578
- data = self.stream.char()
1579
- if data in spaceCharacters:
1580
- self.state = self.beforeDoctypeSystemIdentifierState
1581
- elif data in ("'", '"'):
1582
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1583
- "unexpected-char-in-doctype"})
1584
- self.stream.unget(data)
1585
- self.state = self.beforeDoctypeSystemIdentifierState
1586
- elif data is EOF:
1587
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1588
- "eof-in-doctype"})
1589
- self.currentToken["correct"] = False
1590
- self.tokenQueue.append(self.currentToken)
1591
- self.state = self.dataState
1592
- else:
1593
- self.stream.unget(data)
1594
- self.state = self.beforeDoctypeSystemIdentifierState
1595
- return True
1596
-
1597
- def beforeDoctypeSystemIdentifierState(self):
1598
- data = self.stream.char()
1599
- if data in spaceCharacters:
1600
- pass
1601
- elif data == "\"":
1602
- self.currentToken["systemId"] = ""
1603
- self.state = self.doctypeSystemIdentifierDoubleQuotedState
1604
- elif data == "'":
1605
- self.currentToken["systemId"] = ""
1606
- self.state = self.doctypeSystemIdentifierSingleQuotedState
1607
- elif data == ">":
1608
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1609
- "unexpected-char-in-doctype"})
1610
- self.currentToken["correct"] = False
1611
- self.tokenQueue.append(self.currentToken)
1612
- self.state = self.dataState
1613
- elif data is EOF:
1614
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1615
- "eof-in-doctype"})
1616
- self.currentToken["correct"] = False
1617
- self.tokenQueue.append(self.currentToken)
1618
- self.state = self.dataState
1619
- else:
1620
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1621
- "unexpected-char-in-doctype"})
1622
- self.currentToken["correct"] = False
1623
- self.state = self.bogusDoctypeState
1624
- return True
1625
-
1626
- def doctypeSystemIdentifierDoubleQuotedState(self):
1627
- data = self.stream.char()
1628
- if data == "\"":
1629
- self.state = self.afterDoctypeSystemIdentifierState
1630
- elif data == "\u0000":
1631
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1632
- "data": "invalid-codepoint"})
1633
- self.currentToken["systemId"] += "\uFFFD"
1634
- elif data == ">":
1635
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1636
- "unexpected-end-of-doctype"})
1637
- self.currentToken["correct"] = False
1638
- self.tokenQueue.append(self.currentToken)
1639
- self.state = self.dataState
1640
- elif data is EOF:
1641
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1642
- "eof-in-doctype"})
1643
- self.currentToken["correct"] = False
1644
- self.tokenQueue.append(self.currentToken)
1645
- self.state = self.dataState
1646
- else:
1647
- self.currentToken["systemId"] += data
1648
- return True
1649
-
1650
- def doctypeSystemIdentifierSingleQuotedState(self):
1651
- data = self.stream.char()
1652
- if data == "'":
1653
- self.state = self.afterDoctypeSystemIdentifierState
1654
- elif data == "\u0000":
1655
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1656
- "data": "invalid-codepoint"})
1657
- self.currentToken["systemId"] += "\uFFFD"
1658
- elif data == ">":
1659
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1660
- "unexpected-end-of-doctype"})
1661
- self.currentToken["correct"] = False
1662
- self.tokenQueue.append(self.currentToken)
1663
- self.state = self.dataState
1664
- elif data is EOF:
1665
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1666
- "eof-in-doctype"})
1667
- self.currentToken["correct"] = False
1668
- self.tokenQueue.append(self.currentToken)
1669
- self.state = self.dataState
1670
- else:
1671
- self.currentToken["systemId"] += data
1672
- return True
1673
-
1674
- def afterDoctypeSystemIdentifierState(self):
1675
- data = self.stream.char()
1676
- if data in spaceCharacters:
1677
- pass
1678
- elif data == ">":
1679
- self.tokenQueue.append(self.currentToken)
1680
- self.state = self.dataState
1681
- elif data is EOF:
1682
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1683
- "eof-in-doctype"})
1684
- self.currentToken["correct"] = False
1685
- self.tokenQueue.append(self.currentToken)
1686
- self.state = self.dataState
1687
- else:
1688
- self.tokenQueue.append({"type": tokenTypes["ParseError"], "data":
1689
- "unexpected-char-in-doctype"})
1690
- self.state = self.bogusDoctypeState
1691
- return True
1692
-
1693
- def bogusDoctypeState(self):
1694
- data = self.stream.char()
1695
- if data == ">":
1696
- self.tokenQueue.append(self.currentToken)
1697
- self.state = self.dataState
1698
- elif data is EOF:
1699
- # XXX EMIT
1700
- self.stream.unget(data)
1701
- self.tokenQueue.append(self.currentToken)
1702
- self.state = self.dataState
1703
- else:
1704
- pass
1705
- return True
1706
-
1707
- def cdataSectionState(self):
1708
- data = []
1709
- while True:
1710
- data.append(self.stream.charsUntil("]"))
1711
- data.append(self.stream.charsUntil(">"))
1712
- char = self.stream.char()
1713
- if char == EOF:
1714
- break
1715
- else:
1716
- assert char == ">"
1717
- if data[-1][-2:] == "]]":
1718
- data[-1] = data[-1][:-2]
1719
- break
1720
- else:
1721
- data.append(char)
1722
-
1723
- data = "".join(data) # pylint:disable=redefined-variable-type
1724
- # Deal with null here rather than in the parser
1725
- nullCount = data.count("\u0000")
1726
- if nullCount > 0:
1727
- for _ in range(nullCount):
1728
- self.tokenQueue.append({"type": tokenTypes["ParseError"],
1729
- "data": "invalid-codepoint"})
1730
- data = data.replace("\u0000", "\uFFFD")
1731
- if data:
1732
- self.tokenQueue.append({"type": tokenTypes["Characters"],
1733
- "data": data})
1734
- self.state = self.dataState
1735
- return True