plain 0.22.0__tar.gz → 0.22.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. {plain-0.22.0 → plain-0.22.2}/PKG-INFO +1 -1
  2. {plain-0.22.0 → plain-0.22.2}/plain/urls/resolvers.py +6 -4
  3. {plain-0.22.0 → plain-0.22.2}/plain/urls/routers.py +34 -12
  4. {plain-0.22.0 → plain-0.22.2}/pyproject.toml +1 -1
  5. plain-0.22.0/.pytype/.gitignore +0 -2
  6. plain-0.22.0/.pytype/.ninja_log +0 -24
  7. plain-0.22.0/.pytype/build.ninja +0 -327
  8. plain-0.22.0/.pytype/imports/..exceptions.imports +0 -2
  9. plain-0.22.0/.pytype/imports/..packages.__init__.imports +0 -8
  10. plain-0.22.0/.pytype/imports/..packages.__init__.imports-1 +0 -4
  11. plain-0.22.0/.pytype/imports/__main__.imports +0 -0
  12. plain-0.22.0/.pytype/imports/assets.__init__.imports +0 -0
  13. plain-0.22.0/.pytype/imports/assets.compile.imports +0 -13
  14. plain-0.22.0/.pytype/imports/assets.finders.imports +0 -11
  15. plain-0.22.0/.pytype/imports/assets.fingerprints.imports +0 -11
  16. plain-0.22.0/.pytype/imports/assets.urls.imports +0 -67
  17. plain-0.22.0/.pytype/imports/assets.urls.imports-1 +0 -48
  18. plain-0.22.0/.pytype/imports/assets.views.imports +0 -67
  19. plain-0.22.0/.pytype/imports/assets.views.imports-1 +0 -48
  20. plain-0.22.0/.pytype/imports/cli.__init__.imports +0 -74
  21. plain-0.22.0/.pytype/imports/cli.cli.imports +0 -73
  22. plain-0.22.0/.pytype/imports/cli.formatting.imports +0 -2
  23. plain-0.22.0/.pytype/imports/cli.packages.imports +0 -12
  24. plain-0.22.0/.pytype/imports/cli.print.imports +0 -1
  25. plain-0.22.0/.pytype/imports/cli.startup.imports +0 -11
  26. plain-0.22.0/.pytype/imports/debug.imports +0 -28
  27. plain-0.22.0/.pytype/imports/default.pyi +0 -3
  28. plain-0.22.0/.pytype/imports/forms.__init__.imports +0 -13
  29. plain-0.22.0/.pytype/imports/forms.boundfield.imports +0 -0
  30. plain-0.22.0/.pytype/imports/forms.exceptions.imports +0 -1
  31. plain-0.22.0/.pytype/imports/forms.fields.imports +0 -12
  32. plain-0.22.0/.pytype/imports/forms.forms.imports +0 -15
  33. plain-0.22.0/.pytype/imports/http.__init__.imports +0 -21
  34. plain-0.22.0/.pytype/imports/http.__init__.imports-1 +0 -18
  35. plain-0.22.0/.pytype/imports/http.cookie.imports +0 -0
  36. plain-0.22.0/.pytype/imports/http.multipartparser.imports +0 -26
  37. plain-0.22.0/.pytype/imports/http.multipartparser.imports-1 +0 -23
  38. plain-0.22.0/.pytype/imports/http.request.imports +0 -26
  39. plain-0.22.0/.pytype/imports/http.request.imports-1 +0 -23
  40. plain-0.22.0/.pytype/imports/http.response.imports +0 -19
  41. plain-0.22.0/.pytype/imports/internal.__init__.imports +0 -0
  42. plain-0.22.0/.pytype/imports/internal.files.__init__.imports +0 -4
  43. plain-0.22.0/.pytype/imports/internal.files.base.imports +0 -3
  44. plain-0.22.0/.pytype/imports/internal.files.locks.imports +0 -0
  45. plain-0.22.0/.pytype/imports/internal.files.move.imports +0 -1
  46. plain-0.22.0/.pytype/imports/internal.files.temp.imports +0 -2
  47. plain-0.22.0/.pytype/imports/internal.files.uploadedfile.imports +0 -13
  48. plain-0.22.0/.pytype/imports/internal.files.uploadhandler.imports +0 -12
  49. plain-0.22.0/.pytype/imports/internal.files.utils.imports +0 -1
  50. plain-0.22.0/.pytype/imports/internal.handlers.__init__.imports +0 -0
  51. plain-0.22.0/.pytype/imports/internal.handlers.base.imports +0 -70
  52. plain-0.22.0/.pytype/imports/internal.handlers.exception.imports +0 -68
  53. plain-0.22.0/.pytype/imports/internal.handlers.wsgi.imports +0 -71
  54. plain-0.22.0/.pytype/imports/internal.middleware.__init__.imports +0 -0
  55. plain-0.22.0/.pytype/imports/internal.middleware.headers.imports +0 -11
  56. plain-0.22.0/.pytype/imports/internal.middleware.https.imports +0 -26
  57. plain-0.22.0/.pytype/imports/internal.middleware.slash.imports +0 -67
  58. plain-0.22.0/.pytype/imports/json_encoding.imports +0 -3
  59. plain-0.22.0/.pytype/imports/logs.__init__.imports +0 -3
  60. plain-0.22.0/.pytype/imports/logs.configure.imports +0 -0
  61. plain-0.22.0/.pytype/imports/logs.loggers.imports +0 -0
  62. plain-0.22.0/.pytype/imports/logs.utils.imports +0 -0
  63. plain-0.22.0/.pytype/imports/middleware.imports +0 -19
  64. plain-0.22.0/.pytype/imports/packages.__init__.imports +0 -15
  65. plain-0.22.0/.pytype/imports/packages.__init__.imports-1 +0 -9
  66. plain-0.22.0/.pytype/imports/packages.config.imports +0 -2
  67. plain-0.22.0/.pytype/imports/packages.registry.imports +0 -11
  68. plain-0.22.0/.pytype/imports/packages.registry.imports-1 +0 -7
  69. plain-0.22.0/.pytype/imports/paginator.imports +0 -2
  70. plain-0.22.0/.pytype/imports/preflight.__init__.imports +0 -68
  71. plain-0.22.0/.pytype/imports/preflight.__init__.imports-1 +0 -49
  72. plain-0.22.0/.pytype/imports/preflight.files.imports +0 -67
  73. plain-0.22.0/.pytype/imports/preflight.files.imports-1 +0 -48
  74. plain-0.22.0/.pytype/imports/preflight.messages.imports +0 -11
  75. plain-0.22.0/.pytype/imports/preflight.registry.imports +0 -2
  76. plain-0.22.0/.pytype/imports/preflight.security.imports +0 -15
  77. plain-0.22.0/.pytype/imports/preflight.urls.imports +0 -68
  78. plain-0.22.0/.pytype/imports/preflight.urls.imports-1 +0 -49
  79. plain-0.22.0/.pytype/imports/runtime.global_settings.imports +0 -11
  80. plain-0.22.0/.pytype/imports/runtime.user_settings.imports +0 -11
  81. plain-0.22.0/.pytype/imports/runtime.user_settings.imports-1 +0 -7
  82. plain-0.22.0/.pytype/imports/signals.dispatch.__init__.imports +0 -13
  83. plain-0.22.0/.pytype/imports/signals.dispatch.dispatcher.imports +0 -12
  84. plain-0.22.0/.pytype/imports/signing.imports +0 -14
  85. plain-0.22.0/.pytype/imports/templates.__init__.imports +0 -67
  86. plain-0.22.0/.pytype/imports/templates.__init__.imports-1 +0 -48
  87. plain-0.22.0/.pytype/imports/templates.core.imports +0 -67
  88. plain-0.22.0/.pytype/imports/templates.core.imports-1 +0 -48
  89. plain-0.22.0/.pytype/imports/templates.jinja.__init__.imports +0 -67
  90. plain-0.22.0/.pytype/imports/templates.jinja.__init__.imports-1 +0 -48
  91. plain-0.22.0/.pytype/imports/templates.jinja.environments.imports +0 -67
  92. plain-0.22.0/.pytype/imports/templates.jinja.environments.imports-1 +0 -48
  93. plain-0.22.0/.pytype/imports/templates.jinja.extensions.imports +0 -2
  94. plain-0.22.0/.pytype/imports/templates.jinja.filters.imports +0 -3
  95. plain-0.22.0/.pytype/imports/templates.jinja.globals.imports +0 -67
  96. plain-0.22.0/.pytype/imports/templates.jinja.globals.imports-1 +0 -48
  97. plain-0.22.0/.pytype/imports/test.__init__.imports +0 -70
  98. plain-0.22.0/.pytype/imports/test.client.imports +0 -69
  99. plain-0.22.0/.pytype/imports/urls.base.imports +0 -67
  100. plain-0.22.0/.pytype/imports/urls.base.imports-1 +0 -48
  101. plain-0.22.0/.pytype/imports/urls.conf.imports +0 -67
  102. plain-0.22.0/.pytype/imports/urls.conf.imports-1 +0 -48
  103. plain-0.22.0/.pytype/imports/urls.converters.imports +0 -0
  104. plain-0.22.0/.pytype/imports/urls.exceptions.imports +0 -26
  105. plain-0.22.0/.pytype/imports/urls.resolvers.imports +0 -67
  106. plain-0.22.0/.pytype/imports/urls.resolvers.imports-1 +0 -48
  107. plain-0.22.0/.pytype/imports/utils.__init__.imports +0 -0
  108. plain-0.22.0/.pytype/imports/utils._os.imports +0 -1
  109. plain-0.22.0/.pytype/imports/utils.cache.imports +0 -26
  110. plain-0.22.0/.pytype/imports/utils.connection.imports +0 -12
  111. plain-0.22.0/.pytype/imports/utils.crypto.imports +0 -12
  112. plain-0.22.0/.pytype/imports/utils.datastructures.imports +0 -0
  113. plain-0.22.0/.pytype/imports/utils.dateformat.imports +0 -3
  114. plain-0.22.0/.pytype/imports/utils.dateparse.imports +0 -2
  115. plain-0.22.0/.pytype/imports/utils.dates.imports +0 -0
  116. plain-0.22.0/.pytype/imports/utils.deconstruct.imports +0 -0
  117. plain-0.22.0/.pytype/imports/utils.decorators.imports +0 -0
  118. plain-0.22.0/.pytype/imports/utils.deprecation.imports +0 -0
  119. plain-0.22.0/.pytype/imports/utils.duration.imports +0 -0
  120. plain-0.22.0/.pytype/imports/utils.email.imports +0 -0
  121. plain-0.22.0/.pytype/imports/utils.hashable.imports +0 -1
  122. plain-0.22.0/.pytype/imports/utils.inspect.imports +0 -0
  123. plain-0.22.0/.pytype/imports/utils.ipv6.imports +0 -1
  124. plain-0.22.0/.pytype/imports/utils.itercompat.imports +0 -0
  125. plain-0.22.0/.pytype/imports/utils.module_loading.imports +0 -0
  126. plain-0.22.0/.pytype/imports/utils.regex_helper.imports +0 -1
  127. plain-0.22.0/.pytype/imports/utils.safestring.imports +0 -1
  128. plain-0.22.0/.pytype/imports/utils.text.imports +0 -3
  129. plain-0.22.0/.pytype/imports/utils.tree.imports +0 -2
  130. plain-0.22.0/.pytype/imports/validators.imports +0 -6
  131. plain-0.22.0/.pytype/imports/views.__init__.imports +0 -67
  132. plain-0.22.0/.pytype/imports/views.__init__.imports-1 +0 -48
  133. plain-0.22.0/.pytype/imports/views.base.imports +0 -28
  134. plain-0.22.0/.pytype/imports/views.csrf.imports +0 -1
  135. plain-0.22.0/.pytype/imports/views.errors.imports +0 -67
  136. plain-0.22.0/.pytype/imports/views.exceptions.imports +0 -0
  137. plain-0.22.0/.pytype/imports/views.forms.imports +0 -67
  138. plain-0.22.0/.pytype/imports/views.forms.imports-1 +0 -48
  139. plain-0.22.0/.pytype/imports/views.imports +0 -67
  140. plain-0.22.0/.pytype/imports/views.objects.imports +0 -67
  141. plain-0.22.0/.pytype/imports/views.objects.imports-1 +0 -48
  142. plain-0.22.0/.pytype/imports/views.redirect.imports +0 -67
  143. plain-0.22.0/.pytype/imports/views.redirect.imports-1 +0 -48
  144. plain-0.22.0/.pytype/imports/views.templates.imports +0 -67
  145. plain-0.22.0/.pytype/imports/views.templates.imports-1 +0 -48
  146. plain-0.22.0/.pytype/imports/wsgi.imports +0 -12
  147. plain-0.22.0/.pytype/pyi/exceptions.pyi +0 -87
  148. plain-0.22.0/.pytype/pyi/forms/boundfield.pyi +0 -22
  149. plain-0.22.0/.pytype/pyi/forms/exceptions.pyi +0 -8
  150. plain-0.22.0/.pytype/pyi/internal/files/base.pyi +0 -65
  151. plain-0.22.0/.pytype/pyi/internal/files/uploadhandler.pyi +0 -80
  152. plain-0.22.0/.pytype/pyi/internal/files/utils.pyi +0 -33
  153. plain-0.22.0/.pytype/pyi/logs/__init__.pyi +0 -9
  154. plain-0.22.0/.pytype/pyi/logs/configure.pyi +0 -8
  155. plain-0.22.0/.pytype/pyi/logs/loggers.pyi +0 -20
  156. plain-0.22.0/.pytype/pyi/logs/utils.pyi +0 -7
  157. plain-0.22.0/.pytype/pyi/packages/__init__.pyi +0 -8
  158. plain-0.22.0/.pytype/pyi/packages/__init__.pyi-1 +0 -8
  159. plain-0.22.0/.pytype/pyi/packages/config.pyi +0 -35
  160. plain-0.22.0/.pytype/pyi/packages/registry.pyi +0 -49
  161. plain-0.22.0/.pytype/pyi/packages/registry.pyi-1 +0 -49
  162. plain-0.22.0/.pytype/pyi/runtime/user_settings.pyi +0 -64
  163. plain-0.22.0/.pytype/pyi/runtime/user_settings.pyi-1 +0 -64
  164. plain-0.22.0/.pytype/pyi/signals/dispatch/dispatcher.pyi +0 -32
  165. plain-0.22.0/.pytype/pyi/utils/dateparse.pyi +0 -18
  166. plain-0.22.0/.pytype/pyi/utils/hashable.pyi +0 -9
  167. plain-0.22.0/.pytype/pyi/utils/itercompat.pyi +0 -3
  168. plain-0.22.0/.pytype/pyi/utils/module_loading.pyi +0 -14
  169. plain-0.22.0/.pytype/pyi/validators.pyi +0 -56
  170. plain-0.22.0/plain/.pytype/.gitignore +0 -2
  171. plain-0.22.0/plain/.pytype/.ninja_log +0 -17
  172. plain-0.22.0/plain/.pytype/build.ninja +0 -318
  173. plain-0.22.0/plain/.pytype/imports/..packages.__init__.imports +0 -8
  174. plain-0.22.0/plain/.pytype/imports/..packages.__init__.imports-1 +0 -4
  175. plain-0.22.0/plain/.pytype/imports/__main__.imports +0 -0
  176. plain-0.22.0/plain/.pytype/imports/assets.__init__.imports +0 -0
  177. plain-0.22.0/plain/.pytype/imports/assets.compile.imports +0 -10
  178. plain-0.22.0/plain/.pytype/imports/assets.finders.imports +0 -7
  179. plain-0.22.0/plain/.pytype/imports/assets.fingerprints.imports +0 -7
  180. plain-0.22.0/plain/.pytype/imports/assets.urls.imports +0 -51
  181. plain-0.22.0/plain/.pytype/imports/assets.urls.imports-1 +0 -35
  182. plain-0.22.0/plain/.pytype/imports/assets.views.imports +0 -51
  183. plain-0.22.0/plain/.pytype/imports/assets.views.imports-1 +0 -35
  184. plain-0.22.0/plain/.pytype/imports/cli.__init__.imports +0 -16
  185. plain-0.22.0/plain/.pytype/imports/cli.cli.imports +0 -15
  186. plain-0.22.0/plain/.pytype/imports/cli.formatting.imports +0 -2
  187. plain-0.22.0/plain/.pytype/imports/cli.packages.imports +0 -8
  188. plain-0.22.0/plain/.pytype/imports/cli.print.imports +0 -1
  189. plain-0.22.0/plain/.pytype/imports/cli.startup.imports +0 -7
  190. plain-0.22.0/plain/.pytype/imports/debug.imports +0 -2
  191. plain-0.22.0/plain/.pytype/imports/default.pyi +0 -3
  192. plain-0.22.0/plain/.pytype/imports/forms.__init__.imports +0 -23
  193. plain-0.22.0/plain/.pytype/imports/forms.boundfield.imports +0 -0
  194. plain-0.22.0/plain/.pytype/imports/forms.exceptions.imports +0 -1
  195. plain-0.22.0/plain/.pytype/imports/forms.fields.imports +0 -13
  196. plain-0.22.0/plain/.pytype/imports/forms.forms.imports +0 -15
  197. plain-0.22.0/plain/.pytype/imports/http.__init__.imports +0 -20
  198. plain-0.22.0/plain/.pytype/imports/http.__init__.imports-1 +0 -17
  199. plain-0.22.0/plain/.pytype/imports/http.cookie.imports +0 -0
  200. plain-0.22.0/plain/.pytype/imports/http.multipartparser.imports +0 -14
  201. plain-0.22.0/plain/.pytype/imports/http.multipartparser.imports-1 +0 -17
  202. plain-0.22.0/plain/.pytype/imports/http.request.imports +0 -14
  203. plain-0.22.0/plain/.pytype/imports/http.request.imports-1 +0 -25
  204. plain-0.22.0/plain/.pytype/imports/http.response.imports +0 -16
  205. plain-0.22.0/plain/.pytype/imports/internal.__init__.imports +0 -0
  206. plain-0.22.0/plain/.pytype/imports/internal.files.__init__.imports +0 -1
  207. plain-0.22.0/plain/.pytype/imports/internal.files.base.imports +0 -2
  208. plain-0.22.0/plain/.pytype/imports/internal.files.locks.imports +0 -0
  209. plain-0.22.0/plain/.pytype/imports/internal.files.move.imports +0 -1
  210. plain-0.22.0/plain/.pytype/imports/internal.files.temp.imports +0 -1
  211. plain-0.22.0/plain/.pytype/imports/internal.files.uploadedfile.imports +0 -10
  212. plain-0.22.0/plain/.pytype/imports/internal.files.uploadhandler.imports +0 -12
  213. plain-0.22.0/plain/.pytype/imports/internal.files.utils.imports +0 -1
  214. plain-0.22.0/plain/.pytype/imports/internal.handlers.__init__.imports +0 -0
  215. plain-0.22.0/plain/.pytype/imports/internal.handlers.base.imports +0 -53
  216. plain-0.22.0/plain/.pytype/imports/internal.handlers.exception.imports +0 -10
  217. plain-0.22.0/plain/.pytype/imports/internal.handlers.wsgi.imports +0 -29
  218. plain-0.22.0/plain/.pytype/imports/internal.middleware.__init__.imports +0 -0
  219. plain-0.22.0/plain/.pytype/imports/internal.middleware.headers.imports +0 -7
  220. plain-0.22.0/plain/.pytype/imports/internal.middleware.https.imports +0 -8
  221. plain-0.22.0/plain/.pytype/imports/internal.middleware.slash.imports +0 -51
  222. plain-0.22.0/plain/.pytype/imports/json.imports +0 -12
  223. plain-0.22.0/plain/.pytype/imports/json.imports-1 +0 -6
  224. plain-0.22.0/plain/.pytype/imports/json_encoding.imports +0 -3
  225. plain-0.22.0/plain/.pytype/imports/logs.configure.imports +0 -0
  226. plain-0.22.0/plain/.pytype/imports/logs.loggers.imports +0 -0
  227. plain-0.22.0/plain/.pytype/imports/logs.utils.imports +0 -0
  228. plain-0.22.0/plain/.pytype/imports/middleware.imports +0 -13
  229. plain-0.22.0/plain/.pytype/imports/packages.__init__.imports +0 -8
  230. plain-0.22.0/plain/.pytype/imports/packages.__init__.imports-1 +0 -4
  231. plain-0.22.0/plain/.pytype/imports/packages.config.imports +0 -0
  232. plain-0.22.0/plain/.pytype/imports/packages.registry.imports +0 -7
  233. plain-0.22.0/plain/.pytype/imports/packages.registry.imports-1 +0 -3
  234. plain-0.22.0/plain/.pytype/imports/paginator.imports +0 -2
  235. plain-0.22.0/plain/.pytype/imports/preflight.__init__.imports +0 -72
  236. plain-0.22.0/plain/.pytype/imports/preflight.__init__.imports-1 +0 -53
  237. plain-0.22.0/plain/.pytype/imports/preflight.files.imports +0 -8
  238. plain-0.22.0/plain/.pytype/imports/preflight.files.imports-1 +0 -48
  239. plain-0.22.0/plain/.pytype/imports/preflight.messages.imports +0 -7
  240. plain-0.22.0/plain/.pytype/imports/preflight.registry.imports +0 -2
  241. plain-0.22.0/plain/.pytype/imports/preflight.security.imports +0 -11
  242. plain-0.22.0/plain/.pytype/imports/preflight.urls.imports +0 -51
  243. plain-0.22.0/plain/.pytype/imports/preflight.urls.imports-1 +0 -48
  244. plain-0.22.0/plain/.pytype/imports/runtime.global_settings.imports +0 -7
  245. plain-0.22.0/plain/.pytype/imports/runtime.user_settings.imports +0 -7
  246. plain-0.22.0/plain/.pytype/imports/runtime.user_settings.imports-1 +0 -3
  247. plain-0.22.0/plain/.pytype/imports/signals.dispatch.__init__.imports +0 -10
  248. plain-0.22.0/plain/.pytype/imports/signals.dispatch.dispatcher.imports +0 -8
  249. plain-0.22.0/plain/.pytype/imports/templates.__init__.imports +0 -51
  250. plain-0.22.0/plain/.pytype/imports/templates.__init__.imports-1 +0 -35
  251. plain-0.22.0/plain/.pytype/imports/templates.core.imports +0 -51
  252. plain-0.22.0/plain/.pytype/imports/templates.core.imports-1 +0 -35
  253. plain-0.22.0/plain/.pytype/imports/templates.jinja.__init__.imports +0 -51
  254. plain-0.22.0/plain/.pytype/imports/templates.jinja.__init__.imports-1 +0 -35
  255. plain-0.22.0/plain/.pytype/imports/templates.jinja.environments.imports +0 -51
  256. plain-0.22.0/plain/.pytype/imports/templates.jinja.environments.imports-1 +0 -35
  257. plain-0.22.0/plain/.pytype/imports/templates.jinja.extensions.imports +0 -2
  258. plain-0.22.0/plain/.pytype/imports/templates.jinja.filters.imports +0 -7
  259. plain-0.22.0/plain/.pytype/imports/templates.jinja.globals.imports +0 -51
  260. plain-0.22.0/plain/.pytype/imports/templates.jinja.globals.imports-1 +0 -35
  261. plain-0.22.0/plain/.pytype/imports/test.__init__.imports +0 -0
  262. plain-0.22.0/plain/.pytype/imports/test.client.imports +0 -58
  263. plain-0.22.0/plain/.pytype/imports/urls.base.imports +0 -51
  264. plain-0.22.0/plain/.pytype/imports/urls.base.imports-1 +0 -35
  265. plain-0.22.0/plain/.pytype/imports/urls.conf.imports +0 -51
  266. plain-0.22.0/plain/.pytype/imports/urls.conf.imports-1 +0 -35
  267. plain-0.22.0/plain/.pytype/imports/urls.converters.imports +0 -0
  268. plain-0.22.0/plain/.pytype/imports/urls.exceptions.imports +0 -1
  269. plain-0.22.0/plain/.pytype/imports/urls.resolvers.imports +0 -51
  270. plain-0.22.0/plain/.pytype/imports/urls.resolvers.imports-1 +0 -35
  271. plain-0.22.0/plain/.pytype/imports/utils.__init__.imports +0 -0
  272. plain-0.22.0/plain/.pytype/imports/utils._os.imports +0 -1
  273. plain-0.22.0/plain/.pytype/imports/utils.cache.imports +0 -28
  274. plain-0.22.0/plain/.pytype/imports/utils.connection.imports +0 -8
  275. plain-0.22.0/plain/.pytype/imports/utils.datastructures.imports +0 -0
  276. plain-0.22.0/plain/.pytype/imports/utils.dateformat.imports +0 -4
  277. plain-0.22.0/plain/.pytype/imports/utils.dateparse.imports +0 -2
  278. plain-0.22.0/plain/.pytype/imports/utils.dates.imports +0 -0
  279. plain-0.22.0/plain/.pytype/imports/utils.deconstruct.imports +0 -0
  280. plain-0.22.0/plain/.pytype/imports/utils.decorators.imports +0 -0
  281. plain-0.22.0/plain/.pytype/imports/utils.deprecation.imports +0 -0
  282. plain-0.22.0/plain/.pytype/imports/utils.duration.imports +0 -0
  283. plain-0.22.0/plain/.pytype/imports/utils.email.imports +0 -0
  284. plain-0.22.0/plain/.pytype/imports/utils.encoding.imports +0 -1
  285. plain-0.22.0/plain/.pytype/imports/utils.hashable.imports +0 -1
  286. plain-0.22.0/plain/.pytype/imports/utils.html.imports +0 -10
  287. plain-0.22.0/plain/.pytype/imports/utils.inspect.imports +0 -0
  288. plain-0.22.0/plain/.pytype/imports/utils.ipv6.imports +0 -1
  289. plain-0.22.0/plain/.pytype/imports/utils.itercompat.imports +0 -0
  290. plain-0.22.0/plain/.pytype/imports/utils.module_loading.imports +0 -0
  291. plain-0.22.0/plain/.pytype/imports/utils.regex_helper.imports +0 -1
  292. plain-0.22.0/plain/.pytype/imports/utils.safestring.imports +0 -1
  293. plain-0.22.0/plain/.pytype/imports/utils.text.imports +0 -3
  294. plain-0.22.0/plain/.pytype/imports/utils.timesince.imports +0 -6
  295. plain-0.22.0/plain/.pytype/imports/utils.timezone.imports +0 -8
  296. plain-0.22.0/plain/.pytype/imports/utils.tree.imports +0 -2
  297. plain-0.22.0/plain/.pytype/imports/validators.imports +0 -7
  298. plain-0.22.0/plain/.pytype/imports/views.__init__.imports +0 -72
  299. plain-0.22.0/plain/.pytype/imports/views.__init__.imports-1 +0 -53
  300. plain-0.22.0/plain/.pytype/imports/views.base.imports +0 -3
  301. plain-0.22.0/plain/.pytype/imports/views.csrf.imports +0 -1
  302. plain-0.22.0/plain/.pytype/imports/views.errors.imports +0 -51
  303. plain-0.22.0/plain/.pytype/imports/views.exceptions.imports +0 -0
  304. plain-0.22.0/plain/.pytype/imports/views.forms.imports +0 -51
  305. plain-0.22.0/plain/.pytype/imports/views.forms.imports-1 +0 -35
  306. plain-0.22.0/plain/.pytype/imports/views.imports +0 -51
  307. plain-0.22.0/plain/.pytype/imports/views.objects.imports +0 -51
  308. plain-0.22.0/plain/.pytype/imports/views.objects.imports-1 +0 -35
  309. plain-0.22.0/plain/.pytype/imports/views.redirect.imports +0 -51
  310. plain-0.22.0/plain/.pytype/imports/views.redirect.imports-1 +0 -35
  311. plain-0.22.0/plain/.pytype/imports/views.templates.imports +0 -51
  312. plain-0.22.0/plain/.pytype/imports/views.templates.imports-1 +0 -35
  313. plain-0.22.0/plain/.pytype/imports/wsgi.imports +0 -8
  314. plain-0.22.0/plain/.pytype/pyi/json.pyi +0 -15
  315. plain-0.22.0/plain/.pytype/pyi/json.pyi-1 +0 -15
  316. plain-0.22.0/plain/.pytype/pyi/logs/configure.pyi +0 -8
  317. plain-0.22.0/plain/.pytype/pyi/logs/loggers.pyi +0 -20
  318. plain-0.22.0/plain/.pytype/pyi/logs/utils.pyi +0 -7
  319. plain-0.22.0/plain/.pytype/pyi/packages/__init__.pyi +0 -8
  320. plain-0.22.0/plain/.pytype/pyi/packages/__init__.pyi-1 +0 -8
  321. plain-0.22.0/plain/.pytype/pyi/packages/config.pyi +0 -35
  322. plain-0.22.0/plain/.pytype/pyi/packages/registry.pyi +0 -49
  323. plain-0.22.0/plain/.pytype/pyi/packages/registry.pyi-1 +0 -49
  324. plain-0.22.0/plain/.pytype/pyi/runtime/user_settings.pyi +0 -64
  325. plain-0.22.0/plain/.pytype/pyi/runtime/user_settings.pyi-1 +0 -64
  326. plain-0.22.0/plain/.pytype/pyi/utils/duration.pyi +0 -9
  327. plain-0.22.0/plain/.pytype/pyi/utils/hashable.pyi +0 -9
  328. plain-0.22.0/plain/.pytype/pyi/utils/itercompat.pyi +0 -3
  329. plain-0.22.0/plain/.pytype/pyi/utils/module_loading.pyi +0 -14
  330. plain-0.22.0/tests/.plain/tailwind +0 -0
  331. plain-0.22.0/tests/.plain/tailwind.version +0 -1
  332. plain-0.22.0/tests/htmlcov/.gitignore +0 -2
  333. plain-0.22.0/tests/htmlcov/class_index.html +0 -1652
  334. plain-0.22.0/tests/htmlcov/conftest_py.html +0 -104
  335. plain-0.22.0/tests/htmlcov/coverage_html_cb_6fb7b396.js +0 -733
  336. plain-0.22.0/tests/htmlcov/favicon_32_cb_58284776.png +0 -0
  337. plain-0.22.0/tests/htmlcov/function_index.html +0 -7420
  338. plain-0.22.0/tests/htmlcov/index.html +0 -714
  339. plain-0.22.0/tests/htmlcov/keybd_closed_cb_ce680311.png +0 -0
  340. plain-0.22.0/tests/htmlcov/status.json +0 -1
  341. plain-0.22.0/tests/htmlcov/style_cb_8e611ae1.css +0 -337
  342. plain-0.22.0/tests/htmlcov/test_cli_py.html +0 -108
  343. plain-0.22.0/tests/htmlcov/test_runtime_py.html +0 -115
  344. plain-0.22.0/tests/htmlcov/test_wsgi_py.html +0 -120
  345. plain-0.22.0/tests/htmlcov/z_08e2f40455e232b2___init___py.html +0 -106
  346. plain-0.22.0/tests/htmlcov/z_08e2f40455e232b2_dispatcher_py.html +0 -417
  347. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031___init___py.html +0 -137
  348. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_base_py.html +0 -215
  349. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_conf_py.html +0 -192
  350. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_converters_py.html +0 -163
  351. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_exceptions_py.html +0 -106
  352. plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_resolvers_py.html +0 -815
  353. plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_common_py.html +0 -217
  354. plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_headers_py.html +0 -116
  355. plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_https_py.html +0 -133
  356. plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_slash_py.html +0 -161
  357. plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b___init___py.html +0 -148
  358. plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_cookie_py.html +0 -117
  359. plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_multipartparser_py.html +0 -840
  360. plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_request_py.html +0 -851
  361. plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_response_py.html +0 -816
  362. plain-0.22.0/tests/htmlcov/z_26913647d7b30560_base_py.html +0 -196
  363. plain-0.22.0/tests/htmlcov/z_26913647d7b30560_csrf_py.html +0 -133
  364. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796___init___py.html +0 -133
  365. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_files_py.html +0 -116
  366. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_messages_py.html +0 -178
  367. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_registry_py.html +0 -169
  368. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_security_py.html +0 -190
  369. plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_urls_py.html +0 -204
  370. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f___init___py.html +0 -115
  371. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_base_py.html +0 -210
  372. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_errors_py.html +0 -129
  373. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_exceptions_py.html +0 -101
  374. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_forms_py.html +0 -173
  375. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_objects_py.html +0 -326
  376. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_redirect_py.html +0 -169
  377. plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_templates_py.html +0 -163
  378. plain-0.22.0/tests/htmlcov/z_5046785a7422f325___init___py.html +0 -103
  379. plain-0.22.0/tests/htmlcov/z_5046785a7422f325_core_py.html +0 -121
  380. plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d___init___py.html +0 -185
  381. plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_environments_py.html +0 -160
  382. plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_filters_py.html +0 -125
  383. plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_globals_py.html +0 -123
  384. plain-0.22.0/tests/htmlcov/z_55f990176f696344___init___py.html +0 -134
  385. plain-0.22.0/tests/htmlcov/z_55f990176f696344_files_py.html +0 -116
  386. plain-0.22.0/tests/htmlcov/z_55f990176f696344_messages_py.html +0 -185
  387. plain-0.22.0/tests/htmlcov/z_55f990176f696344_registry_py.html +0 -169
  388. plain-0.22.0/tests/htmlcov/z_55f990176f696344_urls_py.html +0 -204
  389. plain-0.22.0/tests/htmlcov/z_5f5a17c013354698_settings_py.html +0 -106
  390. plain-0.22.0/tests/htmlcov/z_5f5a17c013354698_urls_py.html +0 -109
  391. plain-0.22.0/tests/htmlcov/z_60460f73488957b2___init___py.html +0 -101
  392. plain-0.22.0/tests/htmlcov/z_60460f73488957b2_config_py.html +0 -356
  393. plain-0.22.0/tests/htmlcov/z_60460f73488957b2_registry_py.html +0 -529
  394. plain-0.22.0/tests/htmlcov/z_62e2251503eb2944___init___py.html +0 -102
  395. plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_configure_py.html +0 -136
  396. plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_loggers_py.html +0 -171
  397. plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_utils_py.html +0 -143
  398. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_cache_py.html +0 -424
  399. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_crypto_py.html +0 -173
  400. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_datastructures_py.html +0 -442
  401. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_decorators_py.html +0 -187
  402. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_duration_py.html +0 -141
  403. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_encoding_py.html +0 -332
  404. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_functional_py.html +0 -553
  405. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_hashable_py.html +0 -123
  406. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_html_py.html +0 -498
  407. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_http_py.html +0 -471
  408. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_inspect_py.html +0 -170
  409. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_itercompat_py.html +0 -105
  410. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_module_loading_py.html +0 -166
  411. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_regex_helper_py.html +0 -450
  412. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_safestring_py.html +0 -169
  413. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_text_py.html +0 -615
  414. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_timesince_py.html +0 -235
  415. plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_timezone_py.html +0 -320
  416. plain-0.22.0/tests/htmlcov/z_69270a550cfdaaa6___init___py.html +0 -114
  417. plain-0.22.0/tests/htmlcov/z_69270a550cfdaaa6_core_py.html +0 -121
  418. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c___init___py.html +0 -100
  419. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_base_py.html +0 -258
  420. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_temp_py.html +0 -176
  421. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_uploadedfile_py.html +0 -247
  422. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_uploadhandler_py.html +0 -352
  423. plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_utils_py.html +0 -175
  424. plain-0.22.0/tests/htmlcov/z_718298498ed540cc___init___py.html +0 -106
  425. plain-0.22.0/tests/htmlcov/z_718298498ed540cc_dispatcher_py.html +0 -417
  426. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_cache_py.html +0 -425
  427. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_crypto_py.html +0 -174
  428. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_datastructures_py.html +0 -442
  429. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_decorators_py.html +0 -187
  430. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_duration_py.html +0 -141
  431. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_encoding_py.html +0 -332
  432. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_functional_py.html +0 -553
  433. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_hashable_py.html +0 -123
  434. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_html_py.html +0 -498
  435. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_http_py.html +0 -471
  436. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_inspect_py.html +0 -170
  437. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_itercompat_py.html +0 -105
  438. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_module_loading_py.html +0 -166
  439. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_regex_helper_py.html +0 -451
  440. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_safestring_py.html +0 -169
  441. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_text_py.html +0 -615
  442. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_timesince_py.html +0 -235
  443. plain-0.22.0/tests/htmlcov/z_771d2371add57bec_timezone_py.html +0 -320
  444. plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_exceptions_py.html +0 -339
  445. plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_json_py.html +0 -137
  446. plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_paginator_py.html +0 -284
  447. plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_signing_py.html +0 -378
  448. plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_wsgi_py.html +0 -108
  449. plain-0.22.0/tests/htmlcov/z_83778f412f163984___init___py.html +0 -148
  450. plain-0.22.0/tests/htmlcov/z_83778f412f163984_cookie_py.html +0 -117
  451. plain-0.22.0/tests/htmlcov/z_83778f412f163984_multipartparser_py.html +0 -840
  452. plain-0.22.0/tests/htmlcov/z_83778f412f163984_request_py.html +0 -851
  453. plain-0.22.0/tests/htmlcov/z_83778f412f163984_response_py.html +0 -816
  454. plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_headers_py.html +0 -116
  455. plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_https_py.html +0 -133
  456. plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_slash_py.html +0 -158
  457. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1___init___py.html +0 -137
  458. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_base_py.html +0 -215
  459. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_conf_py.html +0 -191
  460. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_converters_py.html +0 -163
  461. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_exceptions_py.html +0 -106
  462. plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_resolvers_py.html +0 -828
  463. plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e___init___py.html +0 -102
  464. plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_configure_py.html +0 -136
  465. plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_loggers_py.html +0 -171
  466. plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_utils_py.html +0 -143
  467. plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d___init___py.html +0 -119
  468. plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_defaults_py.html +0 -216
  469. plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_filters_py.html +0 -125
  470. plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_globals_py.html +0 -123
  471. plain-0.22.0/tests/htmlcov/z_9588665b96d1b37e_middleware_py.html +0 -546
  472. plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_clickjacking_py.html +0 -149
  473. plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_common_py.html +0 -217
  474. plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_https_py.html +0 -121
  475. plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_security_py.html +0 -121
  476. plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf___init___py.html +0 -156
  477. plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf_global_settings_py.html +0 -268
  478. plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf_user_settings_py.html +0 -410
  479. plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_base_py.html +0 -238
  480. plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_exception_py.html +0 -240
  481. plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_wsgi_py.html +0 -313
  482. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae___init___py.html +0 -100
  483. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_base_py.html +0 -258
  484. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_temp_py.html +0 -176
  485. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_uploadedfile_py.html +0 -247
  486. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_uploadhandler_py.html +0 -351
  487. plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_utils_py.html +0 -175
  488. plain-0.22.0/tests/htmlcov/z_bc9c8dbd03e4c0e9_default_settings_py.html +0 -101
  489. plain-0.22.0/tests/htmlcov/z_bf91a6232e27efa1_middleware_py.html +0 -547
  490. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201___init___py.html +0 -115
  491. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_base_py.html +0 -210
  492. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_errors_py.html +0 -129
  493. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_exceptions_py.html +0 -101
  494. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_forms_py.html +0 -173
  495. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_objects_py.html +0 -326
  496. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_redirect_py.html +0 -169
  497. plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_templates_py.html +0 -163
  498. plain-0.22.0/tests/htmlcov/z_da424fe598f65890___init___py.html +0 -156
  499. plain-0.22.0/tests/htmlcov/z_da424fe598f65890_global_settings_py.html +0 -268
  500. plain-0.22.0/tests/htmlcov/z_da424fe598f65890_user_settings_py.html +0 -410
  501. plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784___init___py.html +0 -101
  502. plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784_config_py.html +0 -350
  503. plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784_registry_py.html +0 -529
  504. plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_base_py.html +0 -242
  505. plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_exception_py.html +0 -242
  506. plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_wsgi_py.html +0 -313
  507. plain-0.22.0/tests/htmlcov/z_e4e4a12be324a3bf___init___py.html +0 -102
  508. plain-0.22.0/tests/htmlcov/z_eb533901707f8086_exceptions_py.html +0 -340
  509. plain-0.22.0/tests/htmlcov/z_eb533901707f8086_json_py.html +0 -137
  510. plain-0.22.0/tests/htmlcov/z_eb533901707f8086_paginator_py.html +0 -283
  511. plain-0.22.0/tests/htmlcov/z_eb533901707f8086_signing_py.html +0 -378
  512. plain-0.22.0/tests/htmlcov/z_eb533901707f8086_wsgi_py.html +0 -108
  513. plain-0.22.0/tests/htmlcov/z_ed1317531eecaa43___init___py.html +0 -102
  514. {plain-0.22.0 → plain-0.22.2}/.gitignore +0 -0
  515. {plain-0.22.0 → plain-0.22.2}/LICENSE +0 -0
  516. {plain-0.22.0 → plain-0.22.2}/README.md +0 -0
  517. {plain-0.22.0 → plain-0.22.2}/plain/README.md +0 -0
  518. {plain-0.22.0 → plain-0.22.2}/plain/__main__.py +0 -0
  519. {plain-0.22.0 → plain-0.22.2}/plain/assets/README.md +0 -0
  520. {plain-0.22.0 → plain-0.22.2}/plain/assets/__init__.py +0 -0
  521. {plain-0.22.0 → plain-0.22.2}/plain/assets/compile.py +0 -0
  522. {plain-0.22.0 → plain-0.22.2}/plain/assets/finders.py +0 -0
  523. {plain-0.22.0 → plain-0.22.2}/plain/assets/fingerprints.py +0 -0
  524. {plain-0.22.0 → plain-0.22.2}/plain/assets/urls.py +0 -0
  525. {plain-0.22.0 → plain-0.22.2}/plain/assets/views.py +0 -0
  526. {plain-0.22.0 → plain-0.22.2}/plain/cli/README.md +0 -0
  527. {plain-0.22.0 → plain-0.22.2}/plain/cli/__init__.py +0 -0
  528. {plain-0.22.0 → plain-0.22.2}/plain/cli/cli.py +0 -0
  529. {plain-0.22.0 → plain-0.22.2}/plain/cli/formatting.py +0 -0
  530. {plain-0.22.0 → plain-0.22.2}/plain/cli/packages.py +0 -0
  531. {plain-0.22.0 → plain-0.22.2}/plain/cli/print.py +0 -0
  532. {plain-0.22.0 → plain-0.22.2}/plain/cli/startup.py +0 -0
  533. {plain-0.22.0 → plain-0.22.2}/plain/csrf/README.md +0 -0
  534. {plain-0.22.0 → plain-0.22.2}/plain/csrf/middleware.py +0 -0
  535. {plain-0.22.0 → plain-0.22.2}/plain/csrf/views.py +0 -0
  536. {plain-0.22.0 → plain-0.22.2}/plain/debug.py +0 -0
  537. {plain-0.22.0 → plain-0.22.2}/plain/exceptions.py +0 -0
  538. {plain-0.22.0 → plain-0.22.2}/plain/forms/README.md +0 -0
  539. {plain-0.22.0 → plain-0.22.2}/plain/forms/__init__.py +0 -0
  540. {plain-0.22.0 → plain-0.22.2}/plain/forms/boundfield.py +0 -0
  541. {plain-0.22.0 → plain-0.22.2}/plain/forms/exceptions.py +0 -0
  542. {plain-0.22.0 → plain-0.22.2}/plain/forms/fields.py +0 -0
  543. {plain-0.22.0 → plain-0.22.2}/plain/forms/forms.py +0 -0
  544. {plain-0.22.0 → plain-0.22.2}/plain/http/README.md +0 -0
  545. {plain-0.22.0 → plain-0.22.2}/plain/http/__init__.py +0 -0
  546. {plain-0.22.0 → plain-0.22.2}/plain/http/cookie.py +0 -0
  547. {plain-0.22.0 → plain-0.22.2}/plain/http/multipartparser.py +0 -0
  548. {plain-0.22.0 → plain-0.22.2}/plain/http/request.py +0 -0
  549. {plain-0.22.0 → plain-0.22.2}/plain/http/response.py +0 -0
  550. {plain-0.22.0 → plain-0.22.2}/plain/internal/__init__.py +0 -0
  551. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/README.md +0 -0
  552. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/__init__.py +0 -0
  553. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/base.py +0 -0
  554. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/locks.py +0 -0
  555. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/move.py +0 -0
  556. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/temp.py +0 -0
  557. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/uploadedfile.py +0 -0
  558. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/uploadhandler.py +0 -0
  559. {plain-0.22.0 → plain-0.22.2}/plain/internal/files/utils.py +0 -0
  560. {plain-0.22.0 → plain-0.22.2}/plain/internal/handlers/__init__.py +0 -0
  561. {plain-0.22.0 → plain-0.22.2}/plain/internal/handlers/base.py +0 -0
  562. {plain-0.22.0 → plain-0.22.2}/plain/internal/handlers/exception.py +0 -0
  563. {plain-0.22.0 → plain-0.22.2}/plain/internal/handlers/wsgi.py +0 -0
  564. {plain-0.22.0 → plain-0.22.2}/plain/internal/middleware/__init__.py +0 -0
  565. {plain-0.22.0 → plain-0.22.2}/plain/internal/middleware/headers.py +0 -0
  566. {plain-0.22.0 → plain-0.22.2}/plain/internal/middleware/https.py +0 -0
  567. {plain-0.22.0 → plain-0.22.2}/plain/internal/middleware/slash.py +0 -0
  568. {plain-0.22.0 → plain-0.22.2}/plain/json.py +0 -0
  569. {plain-0.22.0 → plain-0.22.2}/plain/logs/README.md +0 -0
  570. {plain-0.22.0 → plain-0.22.2}/plain/logs/__init__.py +0 -0
  571. {plain-0.22.0 → plain-0.22.2}/plain/logs/configure.py +0 -0
  572. {plain-0.22.0 → plain-0.22.2}/plain/logs/loggers.py +0 -0
  573. {plain-0.22.0 → plain-0.22.2}/plain/logs/utils.py +0 -0
  574. {plain-0.22.0 → plain-0.22.2}/plain/packages/README.md +0 -0
  575. {plain-0.22.0 → plain-0.22.2}/plain/packages/__init__.py +0 -0
  576. {plain-0.22.0 → plain-0.22.2}/plain/packages/config.py +0 -0
  577. {plain-0.22.0 → plain-0.22.2}/plain/packages/registry.py +0 -0
  578. {plain-0.22.0 → plain-0.22.2}/plain/paginator.py +0 -0
  579. {plain-0.22.0 → plain-0.22.2}/plain/preflight/README.md +0 -0
  580. {plain-0.22.0 → plain-0.22.2}/plain/preflight/__init__.py +0 -0
  581. {plain-0.22.0 → plain-0.22.2}/plain/preflight/files.py +0 -0
  582. {plain-0.22.0 → plain-0.22.2}/plain/preflight/messages.py +0 -0
  583. {plain-0.22.0 → plain-0.22.2}/plain/preflight/registry.py +0 -0
  584. {plain-0.22.0 → plain-0.22.2}/plain/preflight/security.py +0 -0
  585. {plain-0.22.0 → plain-0.22.2}/plain/preflight/urls.py +0 -0
  586. {plain-0.22.0 → plain-0.22.2}/plain/runtime/README.md +0 -0
  587. {plain-0.22.0 → plain-0.22.2}/plain/runtime/__init__.py +0 -0
  588. {plain-0.22.0 → plain-0.22.2}/plain/runtime/global_settings.py +0 -0
  589. {plain-0.22.0 → plain-0.22.2}/plain/runtime/user_settings.py +0 -0
  590. {plain-0.22.0 → plain-0.22.2}/plain/signals/README.md +0 -0
  591. {plain-0.22.0 → plain-0.22.2}/plain/signals/__init__.py +0 -0
  592. {plain-0.22.0 → plain-0.22.2}/plain/signals/dispatch/__init__.py +0 -0
  593. {plain-0.22.0 → plain-0.22.2}/plain/signals/dispatch/dispatcher.py +0 -0
  594. {plain-0.22.0 → plain-0.22.2}/plain/signals/dispatch/license.txt +0 -0
  595. {plain-0.22.0 → plain-0.22.2}/plain/signing.py +0 -0
  596. {plain-0.22.0 → plain-0.22.2}/plain/templates/README.md +0 -0
  597. {plain-0.22.0 → plain-0.22.2}/plain/templates/__init__.py +0 -0
  598. {plain-0.22.0 → plain-0.22.2}/plain/templates/core.py +0 -0
  599. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/README.md +0 -0
  600. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/__init__.py +0 -0
  601. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/environments.py +0 -0
  602. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/extensions.py +0 -0
  603. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/filters.py +0 -0
  604. {plain-0.22.0 → plain-0.22.2}/plain/templates/jinja/globals.py +0 -0
  605. {plain-0.22.0 → plain-0.22.2}/plain/test/README.md +0 -0
  606. {plain-0.22.0 → plain-0.22.2}/plain/test/__init__.py +0 -0
  607. {plain-0.22.0 → plain-0.22.2}/plain/test/client.py +0 -0
  608. {plain-0.22.0 → plain-0.22.2}/plain/urls/README.md +0 -0
  609. {plain-0.22.0 → plain-0.22.2}/plain/urls/__init__.py +0 -0
  610. {plain-0.22.0 → plain-0.22.2}/plain/urls/converters.py +0 -0
  611. {plain-0.22.0 → plain-0.22.2}/plain/urls/exceptions.py +0 -0
  612. {plain-0.22.0 → plain-0.22.2}/plain/urls/patterns.py +0 -0
  613. {plain-0.22.0 → plain-0.22.2}/plain/urls/utils.py +0 -0
  614. {plain-0.22.0 → plain-0.22.2}/plain/utils/README.md +0 -0
  615. {plain-0.22.0 → plain-0.22.2}/plain/utils/__init__.py +0 -0
  616. {plain-0.22.0 → plain-0.22.2}/plain/utils/_os.py +0 -0
  617. {plain-0.22.0 → plain-0.22.2}/plain/utils/cache.py +0 -0
  618. {plain-0.22.0 → plain-0.22.2}/plain/utils/connection.py +0 -0
  619. {plain-0.22.0 → plain-0.22.2}/plain/utils/crypto.py +0 -0
  620. {plain-0.22.0 → plain-0.22.2}/plain/utils/datastructures.py +0 -0
  621. {plain-0.22.0 → plain-0.22.2}/plain/utils/dateformat.py +0 -0
  622. {plain-0.22.0 → plain-0.22.2}/plain/utils/dateparse.py +0 -0
  623. {plain-0.22.0 → plain-0.22.2}/plain/utils/dates.py +0 -0
  624. {plain-0.22.0 → plain-0.22.2}/plain/utils/deconstruct.py +0 -0
  625. {plain-0.22.0 → plain-0.22.2}/plain/utils/decorators.py +0 -0
  626. {plain-0.22.0 → plain-0.22.2}/plain/utils/duration.py +0 -0
  627. {plain-0.22.0 → plain-0.22.2}/plain/utils/email.py +0 -0
  628. {plain-0.22.0 → plain-0.22.2}/plain/utils/encoding.py +0 -0
  629. {plain-0.22.0 → plain-0.22.2}/plain/utils/functional.py +0 -0
  630. {plain-0.22.0 → plain-0.22.2}/plain/utils/hashable.py +0 -0
  631. {plain-0.22.0 → plain-0.22.2}/plain/utils/html.py +0 -0
  632. {plain-0.22.0 → plain-0.22.2}/plain/utils/http.py +0 -0
  633. {plain-0.22.0 → plain-0.22.2}/plain/utils/inspect.py +0 -0
  634. {plain-0.22.0 → plain-0.22.2}/plain/utils/ipv6.py +0 -0
  635. {plain-0.22.0 → plain-0.22.2}/plain/utils/itercompat.py +0 -0
  636. {plain-0.22.0 → plain-0.22.2}/plain/utils/module_loading.py +0 -0
  637. {plain-0.22.0 → plain-0.22.2}/plain/utils/regex_helper.py +0 -0
  638. {plain-0.22.0 → plain-0.22.2}/plain/utils/safestring.py +0 -0
  639. {plain-0.22.0 → plain-0.22.2}/plain/utils/text.py +0 -0
  640. {plain-0.22.0 → plain-0.22.2}/plain/utils/timesince.py +0 -0
  641. {plain-0.22.0 → plain-0.22.2}/plain/utils/timezone.py +0 -0
  642. {plain-0.22.0 → plain-0.22.2}/plain/utils/tree.py +0 -0
  643. {plain-0.22.0 → plain-0.22.2}/plain/validators.py +0 -0
  644. {plain-0.22.0 → plain-0.22.2}/plain/views/README.md +0 -0
  645. {plain-0.22.0 → plain-0.22.2}/plain/views/__init__.py +0 -0
  646. {plain-0.22.0 → plain-0.22.2}/plain/views/base.py +0 -0
  647. {plain-0.22.0 → plain-0.22.2}/plain/views/csrf.py +0 -0
  648. {plain-0.22.0 → plain-0.22.2}/plain/views/errors.py +0 -0
  649. {plain-0.22.0 → plain-0.22.2}/plain/views/exceptions.py +0 -0
  650. {plain-0.22.0 → plain-0.22.2}/plain/views/forms.py +0 -0
  651. {plain-0.22.0 → plain-0.22.2}/plain/views/objects.py +0 -0
  652. {plain-0.22.0 → plain-0.22.2}/plain/views/redirect.py +0 -0
  653. {plain-0.22.0 → plain-0.22.2}/plain/views/templates.py +0 -0
  654. {plain-0.22.0 → plain-0.22.2}/plain/wsgi.py +0 -0
  655. {plain-0.22.0 → plain-0.22.2}/tests/.bolt/assets_collected/assets.json +0 -0
  656. {plain-0.22.0 → plain-0.22.2}/tests/.gitignore +0 -0
  657. {plain-0.22.0 → plain-0.22.2}/tests/app/.gitignore +0 -0
  658. {plain-0.22.0 → plain-0.22.2}/tests/app/settings.py +0 -0
  659. {plain-0.22.0 → plain-0.22.2}/tests/app/test/__init__.py +0 -0
  660. {plain-0.22.0 → plain-0.22.2}/tests/app/test/default_settings.py +0 -0
  661. {plain-0.22.0 → plain-0.22.2}/tests/app/urls.py +0 -0
  662. {plain-0.22.0 → plain-0.22.2}/tests/conftest.py +0 -0
  663. {plain-0.22.0 → plain-0.22.2}/tests/test_cli.py +0 -0
  664. {plain-0.22.0 → plain-0.22.2}/tests/test_runtime.py +0 -0
  665. {plain-0.22.0 → plain-0.22.2}/tests/test_wsgi.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain
3
- Version: 0.22.0
3
+ Version: 0.22.2
4
4
  Summary: A web framework for building products with Python.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-File: LICENSE
@@ -97,7 +97,7 @@ def get_resolver(urls_module=None):
97
97
 
98
98
  @functools.cache
99
99
  def _get_cached_resolver(urls_module):
100
- from .routers import routers
100
+ from .routers import routers_registry
101
101
 
102
102
  if isinstance(urls_module, str):
103
103
  # Need to trigger an import in order for the @register_router
@@ -105,7 +105,7 @@ def _get_cached_resolver(urls_module):
105
105
  # usually just for the root URLS_MODULE but could be for anything.
106
106
  urls_module = import_module(urls_module)
107
107
 
108
- router = routers.get_module_router(urls_module)
108
+ router = routers_registry.get_module_router(urls_module)
109
109
  return URLResolver(pattern=RegexPattern(r"^/"), router_class=router)
110
110
 
111
111
 
@@ -139,11 +139,9 @@ class URLResolver:
139
139
  *,
140
140
  pattern,
141
141
  router_class,
142
- namespace=None,
143
142
  ):
144
143
  self.pattern = pattern
145
144
  self.router_class = router_class
146
- self.namespace = namespace
147
145
  self._reverse_dict = {}
148
146
  self._namespace_dict = {}
149
147
  self._app_dict = {}
@@ -320,6 +318,10 @@ class URLResolver:
320
318
  # Don't need to instantiate the class because they are just class attributes for now.
321
319
  return self.router_class.urls
322
320
 
321
+ @cached_property
322
+ def namespace(self):
323
+ return self.router_class.namespace
324
+
323
325
  def reverse(self, lookup_view, *args, **kwargs):
324
326
  if args and kwargs:
325
327
  raise ValueError("Don't mix *args and **kwargs in call to reverse()!")
@@ -1,12 +1,18 @@
1
+ import re
1
2
  from abc import ABC
3
+ from types import ModuleType
4
+ from typing import TYPE_CHECKING
2
5
 
3
6
  from plain.exceptions import ImproperlyConfigured
4
7
 
5
- from .patterns import RoutePattern, URLPattern
8
+ from .patterns import RegexPattern, RoutePattern, URLPattern
6
9
  from .resolvers import (
7
10
  URLResolver,
8
11
  )
9
12
 
13
+ if TYPE_CHECKING:
14
+ from plain.views import View
15
+
10
16
 
11
17
  class RouterBase(ABC):
12
18
  namespace: str = ""
@@ -39,8 +45,18 @@ class RoutersRegistry:
39
45
  ) from e
40
46
 
41
47
 
42
- def include(route, module_or_urls, *, Pattern=RoutePattern):
43
- pattern = Pattern(route, is_endpoint=False)
48
+ def include(
49
+ route: str | re.Pattern, module_or_urls: list | tuple | str | ModuleType
50
+ ) -> URLResolver:
51
+ """
52
+ Include URLs from another module or a nested list of URL patterns.
53
+ """
54
+ if isinstance(route, str):
55
+ pattern = RoutePattern(route, is_endpoint=False)
56
+ elif isinstance(route, re.Pattern):
57
+ pattern = RegexPattern(route.pattern, is_endpoint=False)
58
+ else:
59
+ raise TypeError("include() route must be a string or regex")
44
60
 
45
61
  if isinstance(module_or_urls, list | tuple):
46
62
  # We were given an explicit list of sub-patterns,
@@ -48,24 +64,30 @@ def include(route, module_or_urls, *, Pattern=RoutePattern):
48
64
  class _IncludeRouter(RouterBase):
49
65
  urls = module_or_urls
50
66
 
51
- return URLResolver(pattern=pattern, router_class=_IncludeRouter, namespace=None)
67
+ return URLResolver(pattern=pattern, router_class=_IncludeRouter)
52
68
  else:
53
69
  # We were given a module, so we need to look up the router for that module
54
70
  module = module_or_urls
55
- router = routers.get_module_router(module)
56
- namespace = router.namespace
71
+ router_class = routers_registry.get_module_router(module)
57
72
 
58
73
  return URLResolver(
59
74
  pattern=pattern,
60
- router_class=router,
61
- namespace=namespace,
75
+ router_class=router_class,
62
76
  )
63
77
 
64
78
 
65
- def path(route, view, *, name=None, Pattern=RoutePattern):
79
+ def path(route: str | re.Pattern, view: "View", *, name: str = "") -> URLPattern:
80
+ """
81
+ Standard URL with a view.
82
+ """
66
83
  from plain.views import View
67
84
 
68
- pattern = Pattern(route, name=name, is_endpoint=True)
85
+ if isinstance(route, str):
86
+ pattern = RoutePattern(route, name=name, is_endpoint=True)
87
+ elif isinstance(route, re.Pattern):
88
+ pattern = RegexPattern(route.pattern, name=name, is_endpoint=True)
89
+ else:
90
+ raise TypeError("path() route must be a string or regex")
69
91
 
70
92
  # You can't pass a View() instance to path()
71
93
  if isinstance(view, View):
@@ -86,5 +108,5 @@ def path(route, view, *, name=None, Pattern=RoutePattern):
86
108
  raise TypeError("view must be a View class or View.as_view()")
87
109
 
88
110
 
89
- routers = RoutersRegistry()
90
- register_router = routers.register_router
111
+ routers_registry = RoutersRegistry()
112
+ register_router = routers_registry.register_router
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain"
3
- version = "0.22.0"
3
+ version = "0.22.2"
4
4
  description = "A web framework for building products with Python."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  readme = "README.md"
@@ -1,2 +0,0 @@
1
- # Automatically created by pytype
2
- *
@@ -1,24 +0,0 @@
1
- # ninja log v5
2
- 2 569 1737047894229075963 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/utils/hashable.pyi 5010e8b9806952aa
3
- 569 1963 1737047895617238051 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/logs/utils.pyi 685d3284fe18db73
4
- 1963 3388 1737047897034941817 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/logs/loggers.pyi 25ae904bf284660d
5
- 3388 4932 1737047898584788735 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/logs/configure.pyi dcfdc29539e4e806
6
- 1 1328 1737047998551685761 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/utils/module_loading.pyi 2ff5dc31190c36e3
7
- 1 1538 1737048902649678938 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/config.pyi c89c50532de00b3
8
- 1538 2777 1737048903892639761 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/__init__.pyi-1 a84e90ed3b62c5a4
9
- 2777 4333 1737048905443676733 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/registry.pyi-1 a56ce0c1ec10d86a
10
- 4333 5845 1737048906955929860 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/runtime/user_settings.pyi-1 835ea6b06714855f
11
- 5845 7119 1737048908234737879 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/__init__.pyi 355a7df1b40889f4
12
- 7119 8748 1737048909856341084 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/registry.pyi 33490e0a6fcc981f
13
- 1 1299 1737049110361795162 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/logs/__init__.pyi 7e2313244a1cd37b
14
- 1299 2807 1737049111865183260 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/registry.pyi-1 a56ce0c1ec10d86a
15
- 2807 4286 1737049113345043128 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/runtime/user_settings.pyi-1 835ea6b06714855f
16
- 4286 5827 1737049114883781300 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/packages/registry.pyi 33490e0a6fcc981f
17
- 5827 7448 1737049116502968603 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/runtime/user_settings.pyi 3db10441099b85e4
18
- 7448 9094 1737049118149977569 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/signals/dispatch/dispatcher.pyi 8e629cc780e2a02f
19
- 9094 10484 1737049119545728620 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/internal/files/base.pyi 928c30c16d652b42
20
- 10484 11023 1737049120092064305 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/forms/exceptions.pyi 813bbd8cccdd967
21
- 11024 12358 1737049121420951559 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/forms/boundfield.pyi 94ef2d1b33c90496
22
- 12358 13657 1737049122717735676 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/utils/dateparse.pyi 338cae12b9d0f878
23
- 13657 15308 1737049124360630875 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/validators.pyi fbd185c62774db54
24
- 1 507 1737049215067500034 /Users/davegaeddert/Developer/dropseed/plain/plain/.pytype/pyi/utils/itercompat.pyi e108a0be2b1293bf