@scrypted/server 0.0.139 → 0.0.143

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 (719) hide show
  1. package/dist/plugin/media.js +20 -15
  2. package/dist/plugin/media.js.map +1 -1
  3. package/dist/rpc.js +9 -5
  4. package/dist/rpc.js.map +1 -1
  5. package/dist/runtime.js +6 -0
  6. package/dist/runtime.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/plugin/media.ts +20 -16
  9. package/src/rpc.ts +11 -3
  10. package/src/runtime.ts +7 -0
  11. package/.venv/bin/Activate.ps1 +0 -241
  12. package/.venv/bin/activate +0 -66
  13. package/.venv/bin/activate.csh +0 -25
  14. package/.venv/bin/activate.fish +0 -64
  15. package/.venv/bin/pip +0 -8
  16. package/.venv/bin/pip3 +0 -8
  17. package/.venv/bin/pip3.9 +0 -8
  18. package/.venv/lib/python3.9/site-packages/_distutils_hack/__init__.py +0 -198
  19. package/.venv/lib/python3.9/site-packages/_distutils_hack/override.py +0 -1
  20. package/.venv/lib/python3.9/site-packages/distutils-precedence.pth +0 -1
  21. package/.venv/lib/python3.9/site-packages/pgi/__init__.py +0 -62
  22. package/.venv/lib/python3.9/site-packages/pgi/_compat.py +0 -74
  23. package/.venv/lib/python3.9/site-packages/pgi/callback.py +0 -15
  24. package/.venv/lib/python3.9/site-packages/pgi/cffilib/__init__.py +0 -12
  25. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_compat.py +0 -25
  26. package/.venv/lib/python3.9/site-packages/pgi/cffilib/_utils.py +0 -119
  27. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/__init__.py +0 -60
  28. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_cdef.py +0 -574
  29. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/_ffi.py +0 -25
  30. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/error.py +0 -13
  31. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giarginfo.py +0 -73
  32. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giargument.py +0 -36
  33. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gibaseinfo.py +0 -113
  34. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gicallableinfo.py +0 -75
  35. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giconstantinfo.py +0 -22
  36. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gienuminfo.py +0 -59
  37. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifieldinfo.py +0 -40
  38. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gifunctioninfo.py +0 -64
  39. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giinterfaceinfo.py +0 -93
  40. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giobjectinfo.py +0 -143
  41. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gipropertyinfo.py +0 -28
  42. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giregisteredtypeinfo.py +0 -27
  43. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/girepository.py +0 -143
  44. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gisignalinfo.py +0 -55
  45. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gistructinfo.py +0 -55
  46. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypeinfo.py +0 -66
  47. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/gitypelib.py +0 -40
  48. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gir/giunioninfo.py +0 -66
  49. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/__init__.py +0 -8
  50. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/_cdef.py +0 -101
  51. package/.venv/lib/python3.9/site-packages/pgi/cffilib/glib/glib.py +0 -260
  52. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/__init__.py +0 -15
  53. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_cdef.py +0 -45
  54. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/_ffi.py +0 -26
  55. package/.venv/lib/python3.9/site-packages/pgi/cffilib/gobject/gobject.py +0 -27
  56. package/.venv/lib/python3.9/site-packages/pgi/clib/__init__.py +0 -11
  57. package/.venv/lib/python3.9/site-packages/pgi/clib/_compat.py +0 -20
  58. package/.venv/lib/python3.9/site-packages/pgi/clib/_utils.py +0 -213
  59. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/__init__.py +0 -71
  60. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/error.py +0 -13
  61. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giarginfo.py +0 -65
  62. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giargument.py +0 -58
  63. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gibaseinfo.py +0 -152
  64. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gicallableinfo.py +0 -203
  65. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giconstantinfo.py +0 -35
  66. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gienuminfo.py +0 -64
  67. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gifieldinfo.py +0 -46
  68. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giinterfaceinfo.py +0 -83
  69. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giobjectinfo.py +0 -134
  70. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gipropertyinfo.py +0 -36
  71. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giregisteredtypeinfo.py +0 -34
  72. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/girepository.py +0 -200
  73. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gistructinfo.py +0 -55
  74. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypeinfo.py +0 -97
  75. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/gitypelib.py +0 -56
  76. package/.venv/lib/python3.9/site-packages/pgi/clib/gir/giunioninfo.py +0 -60
  77. package/.venv/lib/python3.9/site-packages/pgi/clib/glib.py +0 -336
  78. package/.venv/lib/python3.9/site-packages/pgi/clib/gobject.py +0 -405
  79. package/.venv/lib/python3.9/site-packages/pgi/codegen/__init__.py +0 -28
  80. package/.venv/lib/python3.9/site-packages/pgi/codegen/arguments.py +0 -640
  81. package/.venv/lib/python3.9/site-packages/pgi/codegen/backend.py +0 -95
  82. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbargs.py +0 -152
  83. package/.venv/lib/python3.9/site-packages/pgi/codegen/cbreturn.py +0 -77
  84. package/.venv/lib/python3.9/site-packages/pgi/codegen/cffi_backend.py +0 -424
  85. package/.venv/lib/python3.9/site-packages/pgi/codegen/construct.py +0 -222
  86. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/__init__.py +0 -11
  87. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/main.py +0 -184
  88. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_basic.py +0 -705
  89. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_container.py +0 -236
  90. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_interface.py +0 -402
  91. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/types_other.py +0 -93
  92. package/.venv/lib/python3.9/site-packages/pgi/codegen/ctypes_backend/utils.py +0 -168
  93. package/.venv/lib/python3.9/site-packages/pgi/codegen/fieldgen.py +0 -114
  94. package/.venv/lib/python3.9/site-packages/pgi/codegen/fields.py +0 -244
  95. package/.venv/lib/python3.9/site-packages/pgi/codegen/funcgen.py +0 -376
  96. package/.venv/lib/python3.9/site-packages/pgi/codegen/null_backend.py +0 -110
  97. package/.venv/lib/python3.9/site-packages/pgi/codegen/returnvalues.py +0 -443
  98. package/.venv/lib/python3.9/site-packages/pgi/codegen/siggen.py +0 -157
  99. package/.venv/lib/python3.9/site-packages/pgi/codegen/utils.py +0 -248
  100. package/.venv/lib/python3.9/site-packages/pgi/const.py +0 -9
  101. package/.venv/lib/python3.9/site-packages/pgi/constant.py +0 -32
  102. package/.venv/lib/python3.9/site-packages/pgi/debug.py +0 -31
  103. package/.venv/lib/python3.9/site-packages/pgi/enum.py +0 -244
  104. package/.venv/lib/python3.9/site-packages/pgi/field.py +0 -58
  105. package/.venv/lib/python3.9/site-packages/pgi/finalizer.py +0 -3
  106. package/.venv/lib/python3.9/site-packages/pgi/foreign/__init__.py +0 -71
  107. package/.venv/lib/python3.9/site-packages/pgi/foreign/_base.py +0 -43
  108. package/.venv/lib/python3.9/site-packages/pgi/foreign/cairo.py +0 -41
  109. package/.venv/lib/python3.9/site-packages/pgi/function.py +0 -12
  110. package/.venv/lib/python3.9/site-packages/pgi/gerror.py +0 -58
  111. package/.venv/lib/python3.9/site-packages/pgi/gtype.py +0 -168
  112. package/.venv/lib/python3.9/site-packages/pgi/importer.py +0 -189
  113. package/.venv/lib/python3.9/site-packages/pgi/module.py +0 -141
  114. package/.venv/lib/python3.9/site-packages/pgi/obj.py +0 -519
  115. package/.venv/lib/python3.9/site-packages/pgi/overrides/GLib.py +0 -1013
  116. package/.venv/lib/python3.9/site-packages/pgi/overrides/GObject.py +0 -583
  117. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gdk.py +0 -454
  118. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gio.py +0 -237
  119. package/.venv/lib/python3.9/site-packages/pgi/overrides/Gtk.py +0 -2412
  120. package/.venv/lib/python3.9/site-packages/pgi/overrides/Pango.py +0 -53
  121. package/.venv/lib/python3.9/site-packages/pgi/overrides/Poppler.py +0 -61
  122. package/.venv/lib/python3.9/site-packages/pgi/overrides/__init__.py +0 -327
  123. package/.venv/lib/python3.9/site-packages/pgi/overrides/keysyms.py +0 -54
  124. package/.venv/lib/python3.9/site-packages/pgi/properties.py +0 -313
  125. package/.venv/lib/python3.9/site-packages/pgi/propertyhelper.py +0 -12
  126. package/.venv/lib/python3.9/site-packages/pgi/repository/__init__.py +0 -10
  127. package/.venv/lib/python3.9/site-packages/pgi/signalhelper.py +0 -18
  128. package/.venv/lib/python3.9/site-packages/pgi/signals.py +0 -122
  129. package/.venv/lib/python3.9/site-packages/pgi/static.py +0 -189
  130. package/.venv/lib/python3.9/site-packages/pgi/structure.py +0 -131
  131. package/.venv/lib/python3.9/site-packages/pgi/util.py +0 -342
  132. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/COPYING +0 -502
  133. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/INSTALLER +0 -1
  134. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/METADATA +0 -22
  135. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/RECORD +0 -229
  136. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/REQUESTED +0 -0
  137. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/WHEEL +0 -5
  138. package/.venv/lib/python3.9/site-packages/pgi-0.0.11.2.dist-info/top_level.txt +0 -1
  139. package/.venv/lib/python3.9/site-packages/pip/__init__.py +0 -13
  140. package/.venv/lib/python3.9/site-packages/pip/__main__.py +0 -31
  141. package/.venv/lib/python3.9/site-packages/pip/_internal/__init__.py +0 -19
  142. package/.venv/lib/python3.9/site-packages/pip/_internal/build_env.py +0 -293
  143. package/.venv/lib/python3.9/site-packages/pip/_internal/cache.py +0 -264
  144. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/__init__.py +0 -4
  145. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/autocompletion.py +0 -163
  146. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/base_command.py +0 -214
  147. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/cmdoptions.py +0 -1010
  148. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/command_context.py +0 -27
  149. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main.py +0 -70
  150. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/main_parser.py +0 -87
  151. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/parser.py +0 -292
  152. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/progress_bars.py +0 -250
  153. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/req_command.py +0 -469
  154. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/spinners.py +0 -157
  155. package/.venv/lib/python3.9/site-packages/pip/_internal/cli/status_codes.py +0 -6
  156. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/__init__.py +0 -127
  157. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/cache.py +0 -223
  158. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/check.py +0 -53
  159. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/completion.py +0 -96
  160. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/configuration.py +0 -266
  161. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/debug.py +0 -202
  162. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/download.py +0 -139
  163. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/freeze.py +0 -97
  164. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/hash.py +0 -59
  165. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/help.py +0 -41
  166. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/index.py +0 -138
  167. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/install.py +0 -770
  168. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/list.py +0 -361
  169. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/search.py +0 -174
  170. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/show.py +0 -235
  171. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/uninstall.py +0 -105
  172. package/.venv/lib/python3.9/site-packages/pip/_internal/commands/wheel.py +0 -177
  173. package/.venv/lib/python3.9/site-packages/pip/_internal/configuration.py +0 -367
  174. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/__init__.py +0 -21
  175. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/base.py +0 -36
  176. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/installed.py +0 -22
  177. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/sdist.py +0 -129
  178. package/.venv/lib/python3.9/site-packages/pip/_internal/distributions/wheel.py +0 -31
  179. package/.venv/lib/python3.9/site-packages/pip/_internal/exceptions.py +0 -402
  180. package/.venv/lib/python3.9/site-packages/pip/_internal/index/__init__.py +0 -2
  181. package/.venv/lib/python3.9/site-packages/pip/_internal/index/collector.py +0 -536
  182. package/.venv/lib/python3.9/site-packages/pip/_internal/index/package_finder.py +0 -993
  183. package/.venv/lib/python3.9/site-packages/pip/_internal/index/sources.py +0 -224
  184. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/__init__.py +0 -446
  185. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_distutils.py +0 -169
  186. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/_sysconfig.py +0 -219
  187. package/.venv/lib/python3.9/site-packages/pip/_internal/locations/base.py +0 -52
  188. package/.venv/lib/python3.9/site-packages/pip/_internal/main.py +0 -12
  189. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/__init__.py +0 -51
  190. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/base.py +0 -330
  191. package/.venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.py +0 -146
  192. package/.venv/lib/python3.9/site-packages/pip/_internal/models/__init__.py +0 -2
  193. package/.venv/lib/python3.9/site-packages/pip/_internal/models/candidate.py +0 -34
  194. package/.venv/lib/python3.9/site-packages/pip/_internal/models/direct_url.py +0 -220
  195. package/.venv/lib/python3.9/site-packages/pip/_internal/models/format_control.py +0 -80
  196. package/.venv/lib/python3.9/site-packages/pip/_internal/models/index.py +0 -28
  197. package/.venv/lib/python3.9/site-packages/pip/_internal/models/link.py +0 -288
  198. package/.venv/lib/python3.9/site-packages/pip/_internal/models/scheme.py +0 -31
  199. package/.venv/lib/python3.9/site-packages/pip/_internal/models/search_scope.py +0 -129
  200. package/.venv/lib/python3.9/site-packages/pip/_internal/models/selection_prefs.py +0 -51
  201. package/.venv/lib/python3.9/site-packages/pip/_internal/models/target_python.py +0 -110
  202. package/.venv/lib/python3.9/site-packages/pip/_internal/models/wheel.py +0 -89
  203. package/.venv/lib/python3.9/site-packages/pip/_internal/network/__init__.py +0 -2
  204. package/.venv/lib/python3.9/site-packages/pip/_internal/network/auth.py +0 -323
  205. package/.venv/lib/python3.9/site-packages/pip/_internal/network/cache.py +0 -69
  206. package/.venv/lib/python3.9/site-packages/pip/_internal/network/download.py +0 -184
  207. package/.venv/lib/python3.9/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  208. package/.venv/lib/python3.9/site-packages/pip/_internal/network/session.py +0 -454
  209. package/.venv/lib/python3.9/site-packages/pip/_internal/network/utils.py +0 -96
  210. package/.venv/lib/python3.9/site-packages/pip/_internal/network/xmlrpc.py +0 -60
  211. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/__init__.py +0 -0
  212. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  213. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata.py +0 -30
  214. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -34
  215. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -67
  216. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  217. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  218. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -105
  219. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/check.py +0 -149
  220. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/freeze.py +0 -254
  221. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  222. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -46
  223. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/legacy.py +0 -125
  224. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/install/wheel.py +0 -738
  225. package/.venv/lib/python3.9/site-packages/pip/_internal/operations/prepare.py +0 -632
  226. package/.venv/lib/python3.9/site-packages/pip/_internal/pyproject.py +0 -183
  227. package/.venv/lib/python3.9/site-packages/pip/_internal/req/__init__.py +0 -94
  228. package/.venv/lib/python3.9/site-packages/pip/_internal/req/constructors.py +0 -466
  229. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_file.py +0 -536
  230. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_install.py +0 -891
  231. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_set.py +0 -189
  232. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_tracker.py +0 -124
  233. package/.venv/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py +0 -633
  234. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/__init__.py +0 -0
  235. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/base.py +0 -20
  236. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  237. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -467
  238. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  239. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -141
  240. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -540
  241. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -701
  242. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -155
  243. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -215
  244. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -68
  245. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -166
  246. package/.venv/lib/python3.9/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -251
  247. package/.venv/lib/python3.9/site-packages/pip/_internal/self_outdated_check.py +0 -182
  248. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/__init__.py +0 -0
  249. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/_log.py +0 -38
  250. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/appdirs.py +0 -52
  251. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compat.py +0 -63
  252. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/compatibility_tags.py +0 -165
  253. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/datetime.py +0 -11
  254. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/deprecation.py +0 -120
  255. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  256. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/distutils_args.py +0 -42
  257. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/egg_link.py +0 -75
  258. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/encoding.py +0 -36
  259. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/entrypoints.py +0 -27
  260. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filesystem.py +0 -182
  261. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/filetypes.py +0 -27
  262. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/glibc.py +0 -88
  263. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/hashes.py +0 -144
  264. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/inject_securetransport.py +0 -35
  265. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/logging.py +0 -358
  266. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/misc.py +0 -689
  267. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/models.py +0 -39
  268. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/packaging.py +0 -84
  269. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/parallel.py +0 -103
  270. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/pkg_resources.py +0 -33
  271. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/setuptools_build.py +0 -167
  272. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/subprocess.py +0 -289
  273. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/temp_dir.py +0 -246
  274. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/unpacking.py +0 -258
  275. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/urls.py +0 -62
  276. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  277. package/.venv/lib/python3.9/site-packages/pip/_internal/utils/wheel.py +0 -182
  278. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/__init__.py +0 -15
  279. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/bazaar.py +0 -93
  280. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/git.py +0 -513
  281. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/mercurial.py +0 -153
  282. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/subversion.py +0 -318
  283. package/.venv/lib/python3.9/site-packages/pip/_internal/vcs/versioncontrol.py +0 -693
  284. package/.venv/lib/python3.9/site-packages/pip/_internal/wheel_builder.py +0 -375
  285. package/.venv/lib/python3.9/site-packages/pip/_vendor/__init__.py +0 -111
  286. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -11
  287. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -57
  288. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -133
  289. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/cache.py +0 -39
  290. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -2
  291. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -146
  292. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -33
  293. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/compat.py +0 -29
  294. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/controller.py +0 -376
  295. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -80
  296. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -135
  297. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -188
  298. package/.venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -29
  299. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__init__.py +0 -3
  300. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  301. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/cacert.pem +0 -4257
  302. package/.venv/lib/python3.9/site-packages/pip/_vendor/certifi/core.py +0 -76
  303. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/__init__.py +0 -83
  304. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5freq.py +0 -386
  305. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/big5prober.py +0 -47
  306. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/chardistribution.py +0 -233
  307. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetgroupprober.py +0 -107
  308. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/charsetprober.py +0 -145
  309. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/__init__.py +0 -1
  310. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cli/chardetect.py +0 -84
  311. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/codingstatemachine.py +0 -88
  312. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/compat.py +0 -36
  313. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/cp949prober.py +0 -49
  314. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/enums.py +0 -76
  315. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escprober.py +0 -101
  316. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/escsm.py +0 -246
  317. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/eucjpprober.py +0 -92
  318. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrfreq.py +0 -195
  319. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euckrprober.py +0 -47
  320. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwfreq.py +0 -387
  321. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/euctwprober.py +0 -46
  322. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312freq.py +0 -283
  323. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/gb2312prober.py +0 -46
  324. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/hebrewprober.py +0 -292
  325. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jisfreq.py +0 -325
  326. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/jpcntx.py +0 -233
  327. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langbulgarianmodel.py +0 -4650
  328. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langgreekmodel.py +0 -4398
  329. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhebrewmodel.py +0 -4383
  330. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langhungarianmodel.py +0 -4650
  331. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langrussianmodel.py +0 -5718
  332. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langthaimodel.py +0 -4383
  333. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/langturkishmodel.py +0 -4383
  334. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/latin1prober.py +0 -145
  335. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcharsetprober.py +0 -91
  336. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcsgroupprober.py +0 -54
  337. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/mbcssm.py +0 -572
  338. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/__init__.py +0 -0
  339. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/metadata/languages.py +0 -310
  340. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcharsetprober.py +0 -145
  341. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sbcsgroupprober.py +0 -83
  342. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/sjisprober.py +0 -92
  343. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/universaldetector.py +0 -286
  344. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/utf8prober.py +0 -82
  345. package/.venv/lib/python3.9/site-packages/pip/_vendor/chardet/version.py +0 -9
  346. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/__init__.py +0 -6
  347. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansi.py +0 -102
  348. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/ansitowin32.py +0 -258
  349. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/initialise.py +0 -80
  350. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/win32.py +0 -152
  351. package/.venv/lib/python3.9/site-packages/pip/_vendor/colorama/winterm.py +0 -169
  352. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/__init__.py +0 -23
  353. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/__init__.py +0 -6
  354. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/misc.py +0 -41
  355. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/shutil.py +0 -764
  356. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +0 -84
  357. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +0 -786
  358. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/_backport/tarfile.py +0 -2607
  359. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/compat.py +0 -1122
  360. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/database.py +0 -1339
  361. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/index.py +0 -509
  362. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/locators.py +0 -1300
  363. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/manifest.py +0 -393
  364. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/markers.py +0 -147
  365. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/metadata.py +0 -1058
  366. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/resources.py +0 -358
  367. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/scripts.py +0 -429
  368. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  369. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  370. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  371. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/util.py +0 -1969
  372. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/version.py +0 -739
  373. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  374. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  375. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  376. package/.venv/lib/python3.9/site-packages/pip/_vendor/distlib/wheel.py +0 -1053
  377. package/.venv/lib/python3.9/site-packages/pip/_vendor/distro.py +0 -1386
  378. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/__init__.py +0 -35
  379. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_ihatexml.py +0 -289
  380. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_inputstream.py +0 -918
  381. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_tokenizer.py +0 -1735
  382. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/__init__.py +0 -5
  383. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/_base.py +0 -40
  384. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_trie/py.py +0 -67
  385. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/_utils.py +0 -159
  386. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/constants.py +0 -2946
  387. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/__init__.py +0 -0
  388. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +0 -29
  389. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/base.py +0 -12
  390. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +0 -73
  391. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/lint.py +0 -93
  392. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +0 -207
  393. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +0 -916
  394. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/filters/whitespace.py +0 -38
  395. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/html5parser.py +0 -2795
  396. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/serializer.py +0 -409
  397. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +0 -30
  398. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +0 -54
  399. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +0 -50
  400. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +0 -88
  401. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/base.py +0 -417
  402. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +0 -239
  403. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +0 -343
  404. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +0 -392
  405. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +0 -154
  406. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/base.py +0 -252
  407. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +0 -43
  408. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +0 -131
  409. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/etree_lxml.py +0 -215
  410. package/.venv/lib/python3.9/site-packages/pip/_vendor/html5lib/treewalkers/genshi.py +0 -69
  411. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/__init__.py +0 -44
  412. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/codec.py +0 -117
  413. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/compat.py +0 -16
  414. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/core.py +0 -409
  415. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/idnadata.py +0 -2050
  416. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/intranges.py +0 -58
  417. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/package_data.py +0 -2
  418. package/.venv/lib/python3.9/site-packages/pip/_vendor/idna/uts46data.py +0 -8438
  419. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/__init__.py +0 -54
  420. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/_version.py +0 -1
  421. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  422. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/ext.py +0 -193
  423. package/.venv/lib/python3.9/site-packages/pip/_vendor/msgpack/fallback.py +0 -1087
  424. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__about__.py +0 -26
  425. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/__init__.py +0 -25
  426. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_manylinux.py +0 -301
  427. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_musllinux.py +0 -136
  428. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/_structures.py +0 -67
  429. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/markers.py +0 -304
  430. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/requirements.py +0 -146
  431. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/specifiers.py +0 -828
  432. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/tags.py +0 -484
  433. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/utils.py +0 -136
  434. package/.venv/lib/python3.9/site-packages/pip/_vendor/packaging/version.py +0 -504
  435. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/__init__.py +0 -6
  436. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/build.py +0 -127
  437. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/check.py +0 -207
  438. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/colorlog.py +0 -115
  439. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/compat.py +0 -51
  440. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/dirtools.py +0 -44
  441. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/envbuild.py +0 -171
  442. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/__init__.py +0 -17
  443. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py +0 -363
  444. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/meta.py +0 -92
  445. package/.venv/lib/python3.9/site-packages/pip/_vendor/pep517/wrappers.py +0 -375
  446. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3296
  447. package/.venv/lib/python3.9/site-packages/pip/_vendor/pkg_resources/py31compat.py +0 -23
  448. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__init__.py +0 -329
  449. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/__main__.py +0 -44
  450. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/android.py +0 -117
  451. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/api.py +0 -155
  452. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/macos.py +0 -62
  453. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/unix.py +0 -180
  454. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/version.py +0 -4
  455. package/.venv/lib/python3.9/site-packages/pip/_vendor/platformdirs/windows.py +0 -180
  456. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/__init__.py +0 -189
  457. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/bar.py +0 -93
  458. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/colors.py +0 -79
  459. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/counter.py +0 -47
  460. package/.venv/lib/python3.9/site-packages/pip/_vendor/progress/spinner.py +0 -45
  461. package/.venv/lib/python3.9/site-packages/pip/_vendor/pyparsing.py +0 -7107
  462. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__init__.py +0 -154
  463. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/__version__.py +0 -14
  464. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/_internal_utils.py +0 -42
  465. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/adapters.py +0 -533
  466. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/api.py +0 -159
  467. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/auth.py +0 -305
  468. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/certs.py +0 -18
  469. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/compat.py +0 -76
  470. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/cookies.py +0 -549
  471. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/exceptions.py +0 -127
  472. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/help.py +0 -132
  473. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/hooks.py +0 -34
  474. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/models.py +0 -966
  475. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/packages.py +0 -16
  476. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/sessions.py +0 -781
  477. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/status_codes.py +0 -123
  478. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/structures.py +0 -105
  479. package/.venv/lib/python3.9/site-packages/pip/_vendor/requests/utils.py +0 -1013
  480. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  481. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  482. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  483. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  484. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/reporters.py +0 -37
  485. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -483
  486. package/.venv/lib/python3.9/site-packages/pip/_vendor/resolvelib/structs.py +0 -165
  487. package/.venv/lib/python3.9/site-packages/pip/_vendor/six.py +0 -998
  488. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/__init__.py +0 -517
  489. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_asyncio.py +0 -92
  490. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/_utils.py +0 -68
  491. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/after.py +0 -46
  492. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before.py +0 -41
  493. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/before_sleep.py +0 -58
  494. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/nap.py +0 -43
  495. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/retry.py +0 -213
  496. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/stop.py +0 -96
  497. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/tornadoweb.py +0 -59
  498. package/.venv/lib/python3.9/site-packages/pip/_vendor/tenacity/wait.py +0 -191
  499. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/__init__.py +0 -6
  500. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_parser.py +0 -703
  501. package/.venv/lib/python3.9/site-packages/pip/_vendor/tomli/_re.py +0 -83
  502. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/__init__.py +0 -85
  503. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_collections.py +0 -337
  504. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  505. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connection.py +0 -569
  506. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1078
  507. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  508. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  509. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  510. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  511. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  512. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  513. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  514. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -511
  515. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -922
  516. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  517. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  518. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  519. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  520. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -5
  521. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  522. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  523. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1077
  524. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +0 -24
  525. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +0 -160
  526. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -536
  527. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/request.py +0 -170
  528. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py +0 -821
  529. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  530. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/connection.py +0 -150
  531. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  532. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  533. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/request.py +0 -143
  534. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  535. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/retry.py +0 -602
  536. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -495
  537. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  538. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -268
  539. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/url.py +0 -432
  540. package/.venv/lib/python3.9/site-packages/pip/_vendor/urllib3/util/wait.py +0 -153
  541. package/.venv/lib/python3.9/site-packages/pip/_vendor/vendor.txt +0 -22
  542. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/__init__.py +0 -342
  543. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/labels.py +0 -231
  544. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/mklabels.py +0 -59
  545. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/tests.py +0 -153
  546. package/.venv/lib/python3.9/site-packages/pip/_vendor/webencodings/x_user_defined.py +0 -325
  547. package/.venv/lib/python3.9/site-packages/pip/py.typed +0 -4
  548. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/INSTALLER +0 -1
  549. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/LICENSE.txt +0 -20
  550. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/METADATA +0 -93
  551. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/RECORD +0 -819
  552. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/REQUESTED +0 -0
  553. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/WHEEL +0 -5
  554. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/entry_points.txt +0 -5
  555. package/.venv/lib/python3.9/site-packages/pip-21.3.1.dist-info/top_level.txt +0 -1
  556. package/.venv/lib/python3.9/site-packages/pkg_resources/__init__.py +0 -3303
  557. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/__init__.py +0 -0
  558. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/appdirs.py +0 -608
  559. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__about__.py +0 -26
  560. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/__init__.py +0 -25
  561. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_manylinux.py +0 -301
  562. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_musllinux.py +0 -136
  563. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/_structures.py +0 -67
  564. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/markers.py +0 -304
  565. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py +0 -146
  566. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/specifiers.py +0 -828
  567. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/tags.py +0 -484
  568. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/utils.py +0 -136
  569. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/version.py +0 -504
  570. package/.venv/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py +0 -5742
  571. package/.venv/lib/python3.9/site-packages/pkg_resources/extern/__init__.py +0 -73
  572. package/.venv/lib/python3.9/site-packages/pkg_resources/tests/data/my-test-package-source/setup.py +0 -6
  573. package/.venv/lib/python3.9/site-packages/setuptools/__init__.py +0 -244
  574. package/.venv/lib/python3.9/site-packages/setuptools/_deprecation_warning.py +0 -7
  575. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/__init__.py +0 -24
  576. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_collections.py +0 -56
  577. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/_msvccompiler.py +0 -561
  578. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/archive_util.py +0 -256
  579. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/bcppcompiler.py +0 -393
  580. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/ccompiler.py +0 -1123
  581. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py +0 -403
  582. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/__init__.py +0 -31
  583. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist.py +0 -143
  584. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_dumb.py +0 -123
  585. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_msi.py +0 -749
  586. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_rpm.py +0 -579
  587. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/bdist_wininst.py +0 -377
  588. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py +0 -157
  589. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_clib.py +0 -209
  590. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py +0 -755
  591. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_py.py +0 -392
  592. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build_scripts.py +0 -152
  593. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/check.py +0 -148
  594. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/clean.py +0 -76
  595. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/config.py +0 -344
  596. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install.py +0 -775
  597. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_data.py +0 -79
  598. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_egg_info.py +0 -84
  599. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_headers.py +0 -47
  600. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_lib.py +0 -217
  601. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/install_scripts.py +0 -60
  602. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/py37compat.py +0 -30
  603. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/register.py +0 -304
  604. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/sdist.py +0 -494
  605. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/upload.py +0 -214
  606. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/config.py +0 -130
  607. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py +0 -249
  608. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/cygwinccompiler.py +0 -362
  609. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/debug.py +0 -5
  610. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dep_util.py +0 -92
  611. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dir_util.py +0 -210
  612. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py +0 -1257
  613. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/errors.py +0 -97
  614. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/extension.py +0 -240
  615. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/fancy_getopt.py +0 -457
  616. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/file_util.py +0 -238
  617. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/filelist.py +0 -355
  618. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/log.py +0 -81
  619. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvc9compiler.py +0 -788
  620. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/msvccompiler.py +0 -643
  621. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py35compat.py +0 -19
  622. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/py38compat.py +0 -7
  623. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/spawn.py +0 -106
  624. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/sysconfig.py +0 -567
  625. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/text_file.py +0 -286
  626. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/unixccompiler.py +0 -325
  627. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/util.py +0 -548
  628. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/version.py +0 -363
  629. package/.venv/lib/python3.9/site-packages/setuptools/_distutils/versionpredicate.py +0 -169
  630. package/.venv/lib/python3.9/site-packages/setuptools/_imp.py +0 -82
  631. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/__init__.py +0 -0
  632. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/__init__.py +0 -4
  633. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/more.py +0 -3825
  634. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/more_itertools/recipes.py +0 -620
  635. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/ordered_set.py +0 -488
  636. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__about__.py +0 -26
  637. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/__init__.py +0 -25
  638. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_manylinux.py +0 -301
  639. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_musllinux.py +0 -136
  640. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/_structures.py +0 -67
  641. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/markers.py +0 -304
  642. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/requirements.py +0 -146
  643. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/specifiers.py +0 -828
  644. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/tags.py +0 -484
  645. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/utils.py +0 -136
  646. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.py +0 -504
  647. package/.venv/lib/python3.9/site-packages/setuptools/_vendor/pyparsing.py +0 -5742
  648. package/.venv/lib/python3.9/site-packages/setuptools/archive_util.py +0 -205
  649. package/.venv/lib/python3.9/site-packages/setuptools/build_meta.py +0 -290
  650. package/.venv/lib/python3.9/site-packages/setuptools/cli-32.exe +0 -0
  651. package/.venv/lib/python3.9/site-packages/setuptools/cli-64.exe +0 -0
  652. package/.venv/lib/python3.9/site-packages/setuptools/cli-arm64.exe +0 -0
  653. package/.venv/lib/python3.9/site-packages/setuptools/cli.exe +0 -0
  654. package/.venv/lib/python3.9/site-packages/setuptools/command/__init__.py +0 -8
  655. package/.venv/lib/python3.9/site-packages/setuptools/command/alias.py +0 -78
  656. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_egg.py +0 -456
  657. package/.venv/lib/python3.9/site-packages/setuptools/command/bdist_rpm.py +0 -40
  658. package/.venv/lib/python3.9/site-packages/setuptools/command/build_clib.py +0 -101
  659. package/.venv/lib/python3.9/site-packages/setuptools/command/build_ext.py +0 -328
  660. package/.venv/lib/python3.9/site-packages/setuptools/command/build_py.py +0 -242
  661. package/.venv/lib/python3.9/site-packages/setuptools/command/develop.py +0 -193
  662. package/.venv/lib/python3.9/site-packages/setuptools/command/dist_info.py +0 -36
  663. package/.venv/lib/python3.9/site-packages/setuptools/command/easy_install.py +0 -2304
  664. package/.venv/lib/python3.9/site-packages/setuptools/command/egg_info.py +0 -755
  665. package/.venv/lib/python3.9/site-packages/setuptools/command/install.py +0 -132
  666. package/.venv/lib/python3.9/site-packages/setuptools/command/install_egg_info.py +0 -62
  667. package/.venv/lib/python3.9/site-packages/setuptools/command/install_lib.py +0 -122
  668. package/.venv/lib/python3.9/site-packages/setuptools/command/install_scripts.py +0 -69
  669. package/.venv/lib/python3.9/site-packages/setuptools/command/launcher manifest.xml +0 -15
  670. package/.venv/lib/python3.9/site-packages/setuptools/command/py36compat.py +0 -134
  671. package/.venv/lib/python3.9/site-packages/setuptools/command/register.py +0 -18
  672. package/.venv/lib/python3.9/site-packages/setuptools/command/rotate.py +0 -64
  673. package/.venv/lib/python3.9/site-packages/setuptools/command/saveopts.py +0 -22
  674. package/.venv/lib/python3.9/site-packages/setuptools/command/sdist.py +0 -196
  675. package/.venv/lib/python3.9/site-packages/setuptools/command/setopt.py +0 -149
  676. package/.venv/lib/python3.9/site-packages/setuptools/command/test.py +0 -252
  677. package/.venv/lib/python3.9/site-packages/setuptools/command/upload.py +0 -17
  678. package/.venv/lib/python3.9/site-packages/setuptools/command/upload_docs.py +0 -202
  679. package/.venv/lib/python3.9/site-packages/setuptools/config.py +0 -751
  680. package/.venv/lib/python3.9/site-packages/setuptools/dep_util.py +0 -25
  681. package/.venv/lib/python3.9/site-packages/setuptools/depends.py +0 -176
  682. package/.venv/lib/python3.9/site-packages/setuptools/dist.py +0 -1156
  683. package/.venv/lib/python3.9/site-packages/setuptools/errors.py +0 -40
  684. package/.venv/lib/python3.9/site-packages/setuptools/extension.py +0 -55
  685. package/.venv/lib/python3.9/site-packages/setuptools/extern/__init__.py +0 -73
  686. package/.venv/lib/python3.9/site-packages/setuptools/glob.py +0 -167
  687. package/.venv/lib/python3.9/site-packages/setuptools/gui-32.exe +0 -0
  688. package/.venv/lib/python3.9/site-packages/setuptools/gui-64.exe +0 -0
  689. package/.venv/lib/python3.9/site-packages/setuptools/gui-arm64.exe +0 -0
  690. package/.venv/lib/python3.9/site-packages/setuptools/gui.exe +0 -0
  691. package/.venv/lib/python3.9/site-packages/setuptools/installer.py +0 -104
  692. package/.venv/lib/python3.9/site-packages/setuptools/launch.py +0 -36
  693. package/.venv/lib/python3.9/site-packages/setuptools/logging.py +0 -30
  694. package/.venv/lib/python3.9/site-packages/setuptools/monkey.py +0 -177
  695. package/.venv/lib/python3.9/site-packages/setuptools/msvc.py +0 -1805
  696. package/.venv/lib/python3.9/site-packages/setuptools/namespaces.py +0 -107
  697. package/.venv/lib/python3.9/site-packages/setuptools/package_index.py +0 -1127
  698. package/.venv/lib/python3.9/site-packages/setuptools/py34compat.py +0 -13
  699. package/.venv/lib/python3.9/site-packages/setuptools/sandbox.py +0 -530
  700. package/.venv/lib/python3.9/site-packages/setuptools/script (dev).tmpl +0 -6
  701. package/.venv/lib/python3.9/site-packages/setuptools/script.tmpl +0 -3
  702. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/__init__.py +0 -0
  703. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/helpers.py +0 -61
  704. package/.venv/lib/python3.9/site-packages/setuptools/tests/integration/test_pip_install_sdist.py +0 -218
  705. package/.venv/lib/python3.9/site-packages/setuptools/unicode_utils.py +0 -42
  706. package/.venv/lib/python3.9/site-packages/setuptools/version.py +0 -6
  707. package/.venv/lib/python3.9/site-packages/setuptools/wheel.py +0 -213
  708. package/.venv/lib/python3.9/site-packages/setuptools/windows_support.py +0 -29
  709. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/INSTALLER +0 -1
  710. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/LICENSE +0 -19
  711. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/METADATA +0 -142
  712. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/RECORD +0 -308
  713. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/REQUESTED +0 -0
  714. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/WHEEL +0 -5
  715. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/entry_points.txt +0 -56
  716. package/.venv/lib/python3.9/site-packages/setuptools-60.5.0.dist-info/top_level.txt +0 -3
  717. package/.venv/pyvenv.cfg +0 -3
  718. package/.vscode/launch.json +0 -62
  719. 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