plain 0.21.5__py3-none-any.whl → 0.22.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. plain/.pytype/.gitignore +2 -0
  2. plain/.pytype/.ninja_log +17 -0
  3. plain/.pytype/build.ninja +318 -0
  4. plain/.pytype/imports/..packages.__init__.imports +8 -0
  5. plain/.pytype/imports/..packages.__init__.imports-1 +4 -0
  6. plain/.pytype/imports/__main__.imports +0 -0
  7. plain/.pytype/imports/assets.__init__.imports +0 -0
  8. plain/.pytype/imports/assets.compile.imports +10 -0
  9. plain/.pytype/imports/assets.finders.imports +7 -0
  10. plain/.pytype/imports/assets.fingerprints.imports +7 -0
  11. plain/.pytype/imports/assets.urls.imports +51 -0
  12. plain/.pytype/imports/assets.urls.imports-1 +35 -0
  13. plain/.pytype/imports/assets.views.imports +51 -0
  14. plain/.pytype/imports/assets.views.imports-1 +35 -0
  15. plain/.pytype/imports/cli.__init__.imports +16 -0
  16. plain/.pytype/imports/cli.cli.imports +15 -0
  17. plain/.pytype/imports/cli.formatting.imports +2 -0
  18. plain/.pytype/imports/cli.packages.imports +8 -0
  19. plain/.pytype/imports/cli.print.imports +1 -0
  20. plain/.pytype/imports/cli.startup.imports +7 -0
  21. plain/.pytype/imports/debug.imports +2 -0
  22. plain/.pytype/imports/default.pyi +3 -0
  23. plain/.pytype/imports/forms.__init__.imports +23 -0
  24. plain/.pytype/imports/forms.boundfield.imports +0 -0
  25. plain/.pytype/imports/forms.exceptions.imports +1 -0
  26. plain/.pytype/imports/forms.fields.imports +13 -0
  27. plain/.pytype/imports/forms.forms.imports +15 -0
  28. plain/.pytype/imports/http.__init__.imports +20 -0
  29. plain/.pytype/imports/http.__init__.imports-1 +17 -0
  30. plain/.pytype/imports/http.cookie.imports +0 -0
  31. plain/.pytype/imports/http.multipartparser.imports +14 -0
  32. plain/.pytype/imports/http.multipartparser.imports-1 +17 -0
  33. plain/.pytype/imports/http.request.imports +14 -0
  34. plain/.pytype/imports/http.request.imports-1 +25 -0
  35. plain/.pytype/imports/http.response.imports +16 -0
  36. plain/.pytype/imports/internal.__init__.imports +0 -0
  37. plain/.pytype/imports/internal.files.__init__.imports +1 -0
  38. plain/.pytype/imports/internal.files.base.imports +2 -0
  39. plain/.pytype/imports/internal.files.locks.imports +0 -0
  40. plain/.pytype/imports/internal.files.move.imports +1 -0
  41. plain/.pytype/imports/internal.files.temp.imports +1 -0
  42. plain/.pytype/imports/internal.files.uploadedfile.imports +10 -0
  43. plain/.pytype/imports/internal.files.uploadhandler.imports +12 -0
  44. plain/.pytype/imports/internal.files.utils.imports +1 -0
  45. plain/.pytype/imports/internal.handlers.__init__.imports +0 -0
  46. plain/.pytype/imports/internal.handlers.base.imports +53 -0
  47. plain/.pytype/imports/internal.handlers.exception.imports +10 -0
  48. plain/.pytype/imports/internal.handlers.wsgi.imports +29 -0
  49. plain/.pytype/imports/internal.middleware.__init__.imports +0 -0
  50. plain/.pytype/imports/internal.middleware.headers.imports +7 -0
  51. plain/.pytype/imports/internal.middleware.https.imports +8 -0
  52. plain/.pytype/imports/internal.middleware.slash.imports +51 -0
  53. plain/.pytype/imports/json.imports +12 -0
  54. plain/.pytype/imports/json.imports-1 +6 -0
  55. plain/.pytype/imports/json_encoding.imports +3 -0
  56. plain/.pytype/imports/logs.configure.imports +0 -0
  57. plain/.pytype/imports/logs.loggers.imports +0 -0
  58. plain/.pytype/imports/logs.utils.imports +0 -0
  59. plain/.pytype/imports/middleware.imports +13 -0
  60. plain/.pytype/imports/packages.__init__.imports +8 -0
  61. plain/.pytype/imports/packages.__init__.imports-1 +4 -0
  62. plain/.pytype/imports/packages.config.imports +0 -0
  63. plain/.pytype/imports/packages.registry.imports +7 -0
  64. plain/.pytype/imports/packages.registry.imports-1 +3 -0
  65. plain/.pytype/imports/paginator.imports +2 -0
  66. plain/.pytype/imports/preflight.__init__.imports +72 -0
  67. plain/.pytype/imports/preflight.__init__.imports-1 +53 -0
  68. plain/.pytype/imports/preflight.files.imports +8 -0
  69. plain/.pytype/imports/preflight.files.imports-1 +48 -0
  70. plain/.pytype/imports/preflight.messages.imports +7 -0
  71. plain/.pytype/imports/preflight.registry.imports +2 -0
  72. plain/.pytype/imports/preflight.security.imports +11 -0
  73. plain/.pytype/imports/preflight.urls.imports +51 -0
  74. plain/.pytype/imports/preflight.urls.imports-1 +48 -0
  75. plain/.pytype/imports/runtime.global_settings.imports +7 -0
  76. plain/.pytype/imports/runtime.user_settings.imports +7 -0
  77. plain/.pytype/imports/runtime.user_settings.imports-1 +3 -0
  78. plain/.pytype/imports/signals.dispatch.__init__.imports +10 -0
  79. plain/.pytype/imports/signals.dispatch.dispatcher.imports +8 -0
  80. plain/.pytype/imports/templates.__init__.imports +51 -0
  81. plain/.pytype/imports/templates.__init__.imports-1 +35 -0
  82. plain/.pytype/imports/templates.core.imports +51 -0
  83. plain/.pytype/imports/templates.core.imports-1 +35 -0
  84. plain/.pytype/imports/templates.jinja.__init__.imports +51 -0
  85. plain/.pytype/imports/templates.jinja.__init__.imports-1 +35 -0
  86. plain/.pytype/imports/templates.jinja.environments.imports +51 -0
  87. plain/.pytype/imports/templates.jinja.environments.imports-1 +35 -0
  88. plain/.pytype/imports/templates.jinja.extensions.imports +2 -0
  89. plain/.pytype/imports/templates.jinja.filters.imports +7 -0
  90. plain/.pytype/imports/templates.jinja.globals.imports +51 -0
  91. plain/.pytype/imports/templates.jinja.globals.imports-1 +35 -0
  92. plain/.pytype/imports/test.__init__.imports +0 -0
  93. plain/.pytype/imports/test.client.imports +58 -0
  94. plain/.pytype/imports/urls.base.imports +51 -0
  95. plain/.pytype/imports/urls.base.imports-1 +35 -0
  96. plain/.pytype/imports/urls.conf.imports +51 -0
  97. plain/.pytype/imports/urls.conf.imports-1 +35 -0
  98. plain/.pytype/imports/urls.converters.imports +0 -0
  99. plain/.pytype/imports/urls.exceptions.imports +1 -0
  100. plain/.pytype/imports/urls.resolvers.imports +51 -0
  101. plain/.pytype/imports/urls.resolvers.imports-1 +35 -0
  102. plain/.pytype/imports/utils.__init__.imports +0 -0
  103. plain/.pytype/imports/utils._os.imports +1 -0
  104. plain/.pytype/imports/utils.cache.imports +28 -0
  105. plain/.pytype/imports/utils.connection.imports +8 -0
  106. plain/.pytype/imports/utils.datastructures.imports +0 -0
  107. plain/.pytype/imports/utils.dateformat.imports +4 -0
  108. plain/.pytype/imports/utils.dateparse.imports +2 -0
  109. plain/.pytype/imports/utils.dates.imports +0 -0
  110. plain/.pytype/imports/utils.deconstruct.imports +0 -0
  111. plain/.pytype/imports/utils.decorators.imports +0 -0
  112. plain/.pytype/imports/utils.deprecation.imports +0 -0
  113. plain/.pytype/imports/utils.duration.imports +0 -0
  114. plain/.pytype/imports/utils.email.imports +0 -0
  115. plain/.pytype/imports/utils.encoding.imports +1 -0
  116. plain/.pytype/imports/utils.hashable.imports +1 -0
  117. plain/.pytype/imports/utils.html.imports +10 -0
  118. plain/.pytype/imports/utils.inspect.imports +0 -0
  119. plain/.pytype/imports/utils.ipv6.imports +1 -0
  120. plain/.pytype/imports/utils.itercompat.imports +0 -0
  121. plain/.pytype/imports/utils.module_loading.imports +0 -0
  122. plain/.pytype/imports/utils.regex_helper.imports +1 -0
  123. plain/.pytype/imports/utils.safestring.imports +1 -0
  124. plain/.pytype/imports/utils.text.imports +3 -0
  125. plain/.pytype/imports/utils.timesince.imports +6 -0
  126. plain/.pytype/imports/utils.timezone.imports +8 -0
  127. plain/.pytype/imports/utils.tree.imports +2 -0
  128. plain/.pytype/imports/validators.imports +7 -0
  129. plain/.pytype/imports/views.__init__.imports +72 -0
  130. plain/.pytype/imports/views.__init__.imports-1 +53 -0
  131. plain/.pytype/imports/views.base.imports +3 -0
  132. plain/.pytype/imports/views.csrf.imports +1 -0
  133. plain/.pytype/imports/views.errors.imports +51 -0
  134. plain/.pytype/imports/views.exceptions.imports +0 -0
  135. plain/.pytype/imports/views.forms.imports +51 -0
  136. plain/.pytype/imports/views.forms.imports-1 +35 -0
  137. plain/.pytype/imports/views.imports +51 -0
  138. plain/.pytype/imports/views.objects.imports +51 -0
  139. plain/.pytype/imports/views.objects.imports-1 +35 -0
  140. plain/.pytype/imports/views.redirect.imports +51 -0
  141. plain/.pytype/imports/views.redirect.imports-1 +35 -0
  142. plain/.pytype/imports/views.templates.imports +51 -0
  143. plain/.pytype/imports/views.templates.imports-1 +35 -0
  144. plain/.pytype/imports/wsgi.imports +8 -0
  145. plain/.pytype/pyi/json.pyi +15 -0
  146. plain/.pytype/pyi/json.pyi-1 +15 -0
  147. plain/.pytype/pyi/logs/configure.pyi +8 -0
  148. plain/.pytype/pyi/logs/loggers.pyi +20 -0
  149. plain/.pytype/pyi/logs/utils.pyi +7 -0
  150. plain/.pytype/pyi/packages/__init__.pyi +8 -0
  151. plain/.pytype/pyi/packages/__init__.pyi-1 +8 -0
  152. plain/.pytype/pyi/packages/config.pyi +35 -0
  153. plain/.pytype/pyi/packages/registry.pyi +49 -0
  154. plain/.pytype/pyi/packages/registry.pyi-1 +49 -0
  155. plain/.pytype/pyi/runtime/user_settings.pyi +64 -0
  156. plain/.pytype/pyi/runtime/user_settings.pyi-1 +64 -0
  157. plain/.pytype/pyi/utils/duration.pyi +9 -0
  158. plain/.pytype/pyi/utils/hashable.pyi +9 -0
  159. plain/.pytype/pyi/utils/itercompat.pyi +3 -0
  160. plain/.pytype/pyi/utils/module_loading.pyi +14 -0
  161. plain/assets/urls.py +9 -8
  162. plain/assets/views.py +4 -4
  163. plain/cli/cli.py +90 -7
  164. plain/http/request.py +1 -2
  165. plain/internal/handlers/base.py +9 -23
  166. plain/internal/handlers/exception.py +2 -0
  167. plain/internal/middleware/slash.py +15 -7
  168. plain/packages/registry.py +3 -77
  169. plain/preflight/urls.py +2 -2
  170. plain/runtime/global_settings.py +1 -1
  171. plain/templates/jinja/globals.py +2 -8
  172. plain/test/client.py +10 -10
  173. plain/urls/__init__.py +8 -19
  174. plain/urls/patterns.py +271 -0
  175. plain/urls/resolvers.py +48 -360
  176. plain/urls/routers.py +90 -0
  177. plain/urls/{base.py → utils.py} +5 -61
  178. plain/utils/functional.py +1 -2
  179. plain/views/redirect.py +1 -1
  180. plain/views/templates.py +1 -1
  181. {plain-0.21.5.dist-info → plain-0.22.0.dist-info}/METADATA +1 -1
  182. plain-0.22.0.dist-info/RECORD +305 -0
  183. plain/urls/conf.py +0 -95
  184. plain/utils/deprecation.py +0 -6
  185. plain-0.21.5.dist-info/RECORD +0 -145
  186. {plain-0.21.5.dist-info → plain-0.22.0.dist-info}/WHEEL +0 -0
  187. {plain-0.21.5.dist-info → plain-0.22.0.dist-info}/entry_points.txt +0 -0
  188. {plain-0.21.5.dist-info → plain-0.22.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,35 @@
1
+ plain/utils/functional /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
2
+ plain/http/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
3
+ urls/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/exceptions.pyi
4
+ plain/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
5
+ plain/preflight/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
6
+ plain/utils/datastructures /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
7
+ plain/utils/http /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
8
+ utils/regex_helper /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/regex_helper.pyi
9
+ urls/converters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/converters.pyi
10
+ plain/utils/decorators /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
11
+ views/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/exceptions.pyi
12
+ views/base /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/base.pyi
13
+ plain/utils/module_loading /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
14
+ jinja2/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
15
+ jinja2/loaders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
16
+ plain/utils/html /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
17
+ utils/text /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/text.pyi
18
+ plain/utils/timezone /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
19
+ utils/timesince /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/timesince.pyi
20
+ templates/jinja/filters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/filters.pyi
21
+ plain/paginator /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
22
+ plain/packages/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
23
+ plain/logs/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
24
+ packages/config /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/config.pyi
25
+ packages/registry /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/registry.pyi
26
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
27
+ runtime/user_settings /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/runtime/user_settings.pyi
28
+ assets/fingerprints /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/fingerprints.pyi
29
+ plain/utils/cache /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
30
+ plain/utils/crypto /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
31
+ middleware /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/middleware.pyi
32
+ plain/utils/safestring /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
33
+ plain/forms/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
34
+ plain/assets/compile /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
35
+ assets/finders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/finders.pyi
@@ -0,0 +1,51 @@
1
+ plain/utils/functional /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
2
+ plain/http/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
3
+ urls/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/exceptions.pyi
4
+ plain/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
5
+ plain/preflight/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
6
+ plain/utils/datastructures /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
7
+ plain/utils/http /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
8
+ utils/regex_helper /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/regex_helper.pyi
9
+ urls/converters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/converters.pyi
10
+ plain/utils/decorators /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
11
+ views/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/exceptions.pyi
12
+ views/base /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/base.pyi
13
+ plain/utils/module_loading /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
14
+ jinja2/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
15
+ jinja2/loaders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
16
+ plain/utils/html /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
17
+ utils/text /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/text.pyi
18
+ plain/utils/timezone /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
19
+ utils/timesince /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/timesince.pyi
20
+ templates/jinja/filters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/filters.pyi
21
+ plain/paginator /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
22
+ plain/packages/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
23
+ plain/logs/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
24
+ packages/config /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/config.pyi
25
+ packages/registry /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/registry.pyi
26
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
27
+ runtime/user_settings /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/runtime/user_settings.pyi
28
+ assets/fingerprints /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/fingerprints.pyi
29
+ plain/utils/cache /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
30
+ plain/utils/crypto /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
31
+ middleware /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/middleware.pyi
32
+ plain/utils/safestring /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
33
+ plain/forms/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
34
+ plain/assets/compile /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
35
+ assets/finders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/finders.pyi
36
+ assets/urls /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/urls.pyi
37
+ assets/views /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/views.pyi
38
+ templates/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/__init__.pyi
39
+ templates/core /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/core.pyi
40
+ templates/jinja/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/__init__.pyi
41
+ templates/jinja/environments /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/environments.pyi
42
+ templates/jinja/globals /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/globals.pyi
43
+ plain/urls/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
44
+ urls/base /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/base.pyi
45
+ urls/conf /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/conf.pyi
46
+ urls/resolvers /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/resolvers.pyi
47
+ plain/views/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
48
+ views/forms /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/forms.pyi
49
+ views/objects /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/objects.pyi
50
+ views/redirect /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/redirect.pyi
51
+ views/templates /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/templates.pyi-1
@@ -0,0 +1,35 @@
1
+ plain/utils/functional /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
2
+ plain/http/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
3
+ urls/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/exceptions.pyi
4
+ plain/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
5
+ plain/preflight/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
6
+ plain/utils/datastructures /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
7
+ plain/utils/http /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
8
+ utils/regex_helper /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/regex_helper.pyi
9
+ urls/converters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/urls/converters.pyi
10
+ plain/utils/decorators /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
11
+ views/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/exceptions.pyi
12
+ views/base /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/views/base.pyi
13
+ plain/utils/module_loading /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
14
+ jinja2/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
15
+ jinja2/loaders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
16
+ plain/utils/html /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
17
+ utils/text /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/text.pyi
18
+ plain/utils/timezone /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
19
+ utils/timesince /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/utils/timesince.pyi
20
+ templates/jinja/filters /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/templates/jinja/filters.pyi
21
+ plain/paginator /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
22
+ plain/packages/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
23
+ plain/logs/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
24
+ packages/config /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/config.pyi
25
+ packages/registry /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/registry.pyi
26
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
27
+ runtime/user_settings /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/runtime/user_settings.pyi
28
+ assets/fingerprints /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/fingerprints.pyi
29
+ plain/utils/cache /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
30
+ plain/utils/crypto /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
31
+ middleware /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/middleware.pyi
32
+ plain/utils/safestring /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
33
+ plain/forms/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
34
+ plain/assets/compile /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
35
+ assets/finders /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/assets/finders.pyi
@@ -0,0 +1,8 @@
1
+ plain/internal/handlers/wsgi /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
2
+ plain/packages/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
3
+ plain/logs/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
4
+ packages/config /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/config.pyi
5
+ plain/exceptions /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
6
+ packages/registry /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/packages/registry.pyi
7
+ plain/runtime/__init__ /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/imports/default.pyi
8
+ runtime/user_settings /Users/davegaeddert/Developer/dropseed/plain/plain/plain/.pytype/pyi/runtime/user_settings.pyi
@@ -0,0 +1,15 @@
1
+ # (generated with --quick)
2
+
3
+ import datetime
4
+ import decimal
5
+ import json
6
+ import uuid
7
+ from typing import Any
8
+
9
+ Promise: Any
10
+ duration_iso_string: Any
11
+ is_aware: Any
12
+
13
+ class PlainJSONEncoder(Any):
14
+ __doc__: str
15
+ def default(self, o) -> Any: ...
@@ -0,0 +1,15 @@
1
+ # (generated with --quick)
2
+
3
+ import datetime
4
+ import decimal
5
+ import json
6
+ import uuid
7
+ from typing import Any
8
+
9
+ Promise: Any
10
+ duration_iso_string: Any
11
+ is_aware: Any
12
+
13
+ class PlainJSONEncoder(json.encoder.JSONEncoder):
14
+ __doc__: str
15
+ def default(self, o) -> Any: ...
@@ -0,0 +1,8 @@
1
+ # (generated with --quick)
2
+
3
+ import logging
4
+ import os
5
+
6
+ environ: os._Environ[str]
7
+
8
+ def configure_logging(logging_settings) -> None: ...
@@ -0,0 +1,20 @@
1
+ # (generated with --quick)
2
+
3
+ import logging
4
+ from typing import Any
5
+
6
+ app_logger: logging.Logger
7
+
8
+ class KVLogger:
9
+ context: dict[nothing, nothing]
10
+ logger: Any
11
+ def __init__(self, logger) -> None: ...
12
+ def _format_kwargs(self, kwargs) -> str: ...
13
+ def _format_value(self, value) -> str: ...
14
+ def _validate_key(self, key) -> None: ...
15
+ def critical(self, message, **kwargs) -> None: ...
16
+ def debug(self, message, **kwargs) -> None: ...
17
+ def error(self, message, **kwargs) -> None: ...
18
+ def info(self, message, **kwargs) -> None: ...
19
+ def log(self, level, message, **kwargs) -> None: ...
20
+ def warning(self, message, **kwargs) -> None: ...
@@ -0,0 +1,7 @@
1
+ # (generated with --quick)
2
+
3
+ import logging
4
+
5
+ request_logger: logging.Logger
6
+
7
+ def log_response(message, *args, response = ..., request = ..., logger = ..., level = ..., exception = ...) -> None: ...
@@ -0,0 +1,8 @@
1
+ # (generated with --quick)
2
+
3
+ import packages.config
4
+ import packages.registry
5
+
6
+ PackageConfig: type[packages.config.PackageConfig]
7
+ __all__: list[str]
8
+ packages: packages.registry.Packages
@@ -0,0 +1,8 @@
1
+ # (generated with --quick)
2
+
3
+ import packages.config
4
+ from typing import Any
5
+
6
+ PackageConfig: type[packages.config.PackageConfig]
7
+ __all__: list[str]
8
+ packages: Any
@@ -0,0 +1,35 @@
1
+ # (generated with --quick)
2
+
3
+ import builtins
4
+ import inspect
5
+ import os
6
+ import types
7
+ from typing import Any, Generator, Optional
8
+
9
+ CONFIG_MODULE_NAME: str
10
+ ImproperlyConfigured: Any
11
+ MODELS_MODULE_NAME: str
12
+ import_string: Any
13
+ module_has_submodule: Any
14
+
15
+ class PackageConfig:
16
+ __doc__: str
17
+ label: Any
18
+ migrations_module: str
19
+ models: Any
20
+ models_module: Optional[builtins.module]
21
+ module: Any
22
+ name: str
23
+ packages: None
24
+ path: Any
25
+ def __init__(self, package_name, package_module) -> None: ...
26
+ def __repr__(self) -> str: ...
27
+ def _path_from_module(self, module) -> Any: ...
28
+ @classmethod
29
+ def create(cls, entry) -> Any: ...
30
+ def get_model(self, model_name, require_ready = ...) -> Any: ...
31
+ def get_models(self, include_auto_created = ..., include_swapped = ...) -> Generator[Any, Any, None]: ...
32
+ def import_models(self) -> None: ...
33
+ def ready(self) -> None: ...
34
+
35
+ def import_module(name: str, package: Optional[str] = ...) -> types.ModuleType: ...
@@ -0,0 +1,49 @@
1
+ # (generated with --quick)
2
+
3
+ import collections
4
+ import functools
5
+ import packages.config
6
+ import sys
7
+ import threading
8
+ import typing
9
+ import warnings
10
+ from typing import Any
11
+
12
+ Counter: type[typing.Counter]
13
+ ImproperlyConfigured: Any
14
+ PackageConfig: type[packages.config.PackageConfig]
15
+ PackageRegistryNotReady: Any
16
+ defaultdict: type[collections.defaultdict]
17
+ packages: Packages
18
+ partial: type[functools.partial]
19
+
20
+ class Packages:
21
+ __doc__: str
22
+ _lock: threading._RLock
23
+ _pending_operations: collections.defaultdict
24
+ all_models: collections.defaultdict
25
+ get_models: functools._lru_cache_wrapper
26
+ get_swappable_settings_name: functools._lru_cache_wrapper
27
+ loading: bool
28
+ models_ready: bool
29
+ package_configs: dict
30
+ packages_ready: bool
31
+ ready: bool
32
+ stored_package_configs: list[dict]
33
+ def __init__(self, installed_packages = ...) -> None: ...
34
+ def check_models_ready(self) -> None: ...
35
+ def check_packages_ready(self) -> None: ...
36
+ def clear_cache(self) -> None: ...
37
+ def do_pending_operations(self, model) -> None: ...
38
+ def get_containing_package_config(self, object_name) -> Any: ...
39
+ def get_model(self, package_label, model_name = ..., require_ready = ...) -> Any: ...
40
+ def get_package_config(self, package_label) -> Any: ...
41
+ def get_package_configs(self) -> dict_values: ...
42
+ def get_registered_model(self, package_label, model_name) -> Any: ...
43
+ def is_installed(self, package_name) -> bool: ...
44
+ def lazy_model_operation(self, function, *model_keys) -> None: ...
45
+ def populate(self, installed_packages = ...) -> None: ...
46
+ def register_model(self, package_label, model) -> None: ...
47
+ def set_available_packages(self, available) -> None: ...
48
+ def set_installed_packages(self, installed) -> None: ...
49
+ def unset_available_packages(self) -> None: ...
@@ -0,0 +1,49 @@
1
+ # (generated with --quick)
2
+
3
+ import collections
4
+ import functools
5
+ import packages.config
6
+ import sys
7
+ import threading
8
+ import typing
9
+ import warnings
10
+ from typing import Any, Never
11
+
12
+ Counter: type[typing.Counter]
13
+ ImproperlyConfigured: Any
14
+ PackageConfig: type[packages.config.PackageConfig]
15
+ PackageRegistryNotReady: Any
16
+ defaultdict: type[collections.defaultdict]
17
+ packages: Packages
18
+ partial: type[functools.partial]
19
+
20
+ class Packages:
21
+ __doc__: str
22
+ _lock: threading._RLock
23
+ _pending_operations: collections.defaultdict
24
+ all_models: collections.defaultdict
25
+ get_models: functools._lru_cache_wrapper
26
+ get_swappable_settings_name: functools._lru_cache_wrapper
27
+ loading: bool
28
+ models_ready: bool
29
+ package_configs: dict
30
+ packages_ready: bool
31
+ ready: bool
32
+ stored_package_configs: list[dict]
33
+ def __init__(self, installed_packages = ...) -> None: ...
34
+ def check_models_ready(self) -> Never: ...
35
+ def check_packages_ready(self) -> Never: ...
36
+ def clear_cache(self) -> None: ...
37
+ def do_pending_operations(self, model) -> None: ...
38
+ def get_containing_package_config(self, object_name) -> None: ...
39
+ def get_model(self, package_label, model_name = ..., require_ready = ...) -> Any: ...
40
+ def get_package_config(self, package_label) -> Any: ...
41
+ def get_package_configs(self) -> dict_values[nothing]: ...
42
+ def get_registered_model(self, package_label, model_name) -> Any: ...
43
+ def is_installed(self, package_name) -> bool: ...
44
+ def lazy_model_operation(self, function, *model_keys) -> None: ...
45
+ def populate(self, installed_packages = ...) -> None: ...
46
+ def register_model(self, package_label, model) -> None: ...
47
+ def set_available_packages(self, available) -> None: ...
48
+ def set_installed_packages(self, installed) -> None: ...
49
+ def unset_available_packages(self) -> None: ...
@@ -0,0 +1,64 @@
1
+ # (generated with --quick)
2
+
3
+ import importlib
4
+ import json
5
+ import os
6
+ import pathlib
7
+ import time
8
+ import types
9
+ import typing
10
+ from typing import Any, Optional, TypeVar
11
+
12
+ CUSTOM_SETTINGS_PREFIX: str
13
+ ENVIRONMENT_VARIABLE: str
14
+ ENV_SETTINGS_PREFIX: str
15
+ ImproperlyConfigured: Any
16
+ PackageConfig: Any
17
+ Path: type[pathlib.Path]
18
+
19
+ _TSettingsReference = TypeVar('_TSettingsReference', bound=SettingsReference)
20
+
21
+ class SettingDefinition:
22
+ __doc__: str
23
+ annotation: Any
24
+ default_value: Any
25
+ is_set: bool
26
+ module: Any
27
+ name: Any
28
+ required: Any
29
+ source: Any
30
+ value: Any
31
+ def __init__(self, name, default_value = ..., annotation = ..., module = ..., required = ...) -> None: ...
32
+ def __str__(self) -> str: ...
33
+ @staticmethod
34
+ def _is_instance_of_type(value, type_hint) -> bool: ...
35
+ def check_type(self, obj) -> None: ...
36
+ def set_value(self, value, source) -> None: ...
37
+
38
+ class Settings:
39
+ __doc__: str
40
+ _errors: list[str]
41
+ _settings: dict[Any, SettingDefinition]
42
+ _settings_module: Any
43
+ configured: bool
44
+ path: pathlib.Path
45
+ def __getattr__(self, name) -> Any: ...
46
+ def __init__(self, settings_module = ...) -> None: ...
47
+ def __repr__(self) -> str: ...
48
+ def __setattr__(self, name, value) -> None: ...
49
+ def _check_required_settings(self) -> None: ...
50
+ def _load_default_settings(self, settings_module) -> None: ...
51
+ def _load_env_settings(self) -> None: ...
52
+ def _load_explicit_settings(self, settings_module) -> None: ...
53
+ def _load_module_settings(self, module) -> None: ...
54
+ def _raise_errors_if_any(self) -> None: ...
55
+ def _setup(self) -> None: ...
56
+
57
+ class SettingsReference(str):
58
+ __doc__: str
59
+ setting_name: Any
60
+ def __init__(self, value, setting_name) -> None: ...
61
+ def __new__(self: type[_TSettingsReference], value, setting_name) -> _TSettingsReference: ...
62
+
63
+ def _parse_env_value(value, annotation) -> Any: ...
64
+ def find_spec(name: str, package: Optional[str] = ...) -> Optional[importlib.machinery.ModuleSpec]: ...
@@ -0,0 +1,64 @@
1
+ # (generated with --quick)
2
+
3
+ import importlib
4
+ import json
5
+ import os
6
+ import pathlib
7
+ import time
8
+ import types
9
+ import typing
10
+ from typing import Any, Optional, TypeVar
11
+
12
+ CUSTOM_SETTINGS_PREFIX: str
13
+ ENVIRONMENT_VARIABLE: str
14
+ ENV_SETTINGS_PREFIX: str
15
+ ImproperlyConfigured: Any
16
+ PackageConfig: Any
17
+ Path: type[pathlib.Path]
18
+
19
+ _TSettingsReference = TypeVar('_TSettingsReference', bound=SettingsReference)
20
+
21
+ class SettingDefinition:
22
+ __doc__: str
23
+ annotation: Any
24
+ default_value: Any
25
+ is_set: bool
26
+ module: Any
27
+ name: Any
28
+ required: Any
29
+ source: Any
30
+ value: Any
31
+ def __init__(self, name, default_value = ..., annotation = ..., module = ..., required = ...) -> None: ...
32
+ def __str__(self) -> str: ...
33
+ @staticmethod
34
+ def _is_instance_of_type(value, type_hint) -> bool: ...
35
+ def check_type(self, obj) -> None: ...
36
+ def set_value(self, value, source) -> None: ...
37
+
38
+ class Settings:
39
+ __doc__: str
40
+ _errors: list[str]
41
+ _settings: dict[Any, SettingDefinition]
42
+ _settings_module: Any
43
+ configured: bool
44
+ path: pathlib.Path
45
+ def __getattr__(self, name) -> Any: ...
46
+ def __init__(self, settings_module = ...) -> None: ...
47
+ def __repr__(self) -> str: ...
48
+ def __setattr__(self, name, value) -> None: ...
49
+ def _check_required_settings(self) -> None: ...
50
+ def _load_default_settings(self, settings_module) -> None: ...
51
+ def _load_env_settings(self) -> None: ...
52
+ def _load_explicit_settings(self, settings_module) -> None: ...
53
+ def _load_module_settings(self, module) -> None: ...
54
+ def _raise_errors_if_any(self) -> None: ...
55
+ def _setup(self) -> None: ...
56
+
57
+ class SettingsReference(str):
58
+ __doc__: str
59
+ setting_name: Any
60
+ def __init__(self, value, setting_name) -> None: ...
61
+ def __new__(self: type[_TSettingsReference], value, setting_name) -> _TSettingsReference: ...
62
+
63
+ def _parse_env_value(value, annotation) -> Any: ...
64
+ def find_spec(name: str, package: Optional[str] = ...) -> Optional[importlib.machinery.ModuleSpec]: ...
@@ -0,0 +1,9 @@
1
+ # (generated with --quick)
2
+
3
+ import datetime
4
+ from typing import Any
5
+
6
+ def _get_duration_components(duration) -> tuple[Any, Any, Any, Any, Any]: ...
7
+ def duration_iso_string(duration) -> str: ...
8
+ def duration_microseconds(delta) -> Any: ...
9
+ def duration_string(duration) -> str: ...
@@ -0,0 +1,9 @@
1
+ # (generated with --quick)
2
+
3
+ from typing import Any, TypeVar, Union
4
+
5
+ is_iterable: Any
6
+
7
+ _T0 = TypeVar('_T0')
8
+
9
+ def make_hashable(value: _T0) -> Union[tuple, _T0]: ...
@@ -0,0 +1,3 @@
1
+ # (generated with --quick)
2
+
3
+ def is_iterable(x) -> bool: ...
@@ -0,0 +1,14 @@
1
+ # (generated with --quick)
2
+
3
+ import importlib.machinery
4
+ import os
5
+ import sys
6
+ import types
7
+ from typing import Any, Optional
8
+
9
+ def cached_import(module_path, class_name) -> Any: ...
10
+ def import_module(name: str, package: Optional[str] = ...) -> types.ModuleType: ...
11
+ def import_string(dotted_path) -> Any: ...
12
+ def importlib_find(name: str, package: Optional[str] = ...) -> Optional[importlib.machinery.ModuleSpec]: ...
13
+ def module_dir(module) -> Any: ...
14
+ def module_has_submodule(package, module_name) -> bool: ...
plain/assets/urls.py CHANGED
@@ -1,10 +1,16 @@
1
1
  from plain.runtime import settings
2
- from plain.urls import path, reverse
2
+ from plain.urls import RouterBase, path, register_router, reverse
3
3
 
4
4
  from .fingerprints import get_fingerprinted_url_path
5
5
  from .views import AssetView
6
6
 
7
- default_namespace = "assets"
7
+
8
+ @register_router
9
+ class Router(RouterBase):
10
+ namespace = "assets"
11
+ urls = [
12
+ path("<path:path>", AssetView, name="asset"),
13
+ ]
8
14
 
9
15
 
10
16
  def get_asset_url(url_path):
@@ -23,9 +29,4 @@ def get_asset_url(url_path):
23
29
  if settings.ASSETS_BASE_URL:
24
30
  return settings.ASSETS_BASE_URL + resolved_url_path
25
31
 
26
- return reverse(default_namespace + ":asset", kwargs={"path": resolved_url_path})
27
-
28
-
29
- urlpatterns = [
30
- path("<path:path>", AssetView, name="asset"),
31
- ]
32
+ return reverse(Router.namespace + ":asset", path=resolved_url_path)
plain/assets/views.py CHANGED
@@ -206,12 +206,12 @@ class AssetView(View):
206
206
  # or we're already looking at it.
207
207
  return
208
208
 
209
- from .urls import default_namespace
209
+ from .urls import Router
210
+
211
+ namespace = Router.namespace
210
212
 
211
213
  return ResponseRedirect(
212
- redirect_to=reverse(
213
- f"{default_namespace}:asset", args=[fingerprinted_url_path]
214
- ),
214
+ redirect_to=reverse(f"{namespace}:asset", fingerprinted_url_path),
215
215
  headers={
216
216
  "Cache-Control": "max-age=60", # Can cache this for a short time, but the fingerprinted path can change
217
217
  },