plain 0.22.0__tar.gz → 0.22.1__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.
- {plain-0.22.0 → plain-0.22.1}/PKG-INFO +1 -1
- {plain-0.22.0 → plain-0.22.1}/plain/urls/resolvers.py +6 -4
- {plain-0.22.0 → plain-0.22.1}/plain/urls/routers.py +34 -12
- {plain-0.22.0 → plain-0.22.1}/pyproject.toml +1 -1
- plain-0.22.0/.pytype/.gitignore +0 -2
- plain-0.22.0/.pytype/.ninja_log +0 -24
- plain-0.22.0/.pytype/build.ninja +0 -327
- plain-0.22.0/.pytype/imports/..exceptions.imports +0 -2
- plain-0.22.0/.pytype/imports/..packages.__init__.imports +0 -8
- plain-0.22.0/.pytype/imports/..packages.__init__.imports-1 +0 -4
- plain-0.22.0/.pytype/imports/__main__.imports +0 -0
- plain-0.22.0/.pytype/imports/assets.__init__.imports +0 -0
- plain-0.22.0/.pytype/imports/assets.compile.imports +0 -13
- plain-0.22.0/.pytype/imports/assets.finders.imports +0 -11
- plain-0.22.0/.pytype/imports/assets.fingerprints.imports +0 -11
- plain-0.22.0/.pytype/imports/assets.urls.imports +0 -67
- plain-0.22.0/.pytype/imports/assets.urls.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/assets.views.imports +0 -67
- plain-0.22.0/.pytype/imports/assets.views.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/cli.__init__.imports +0 -74
- plain-0.22.0/.pytype/imports/cli.cli.imports +0 -73
- plain-0.22.0/.pytype/imports/cli.formatting.imports +0 -2
- plain-0.22.0/.pytype/imports/cli.packages.imports +0 -12
- plain-0.22.0/.pytype/imports/cli.print.imports +0 -1
- plain-0.22.0/.pytype/imports/cli.startup.imports +0 -11
- plain-0.22.0/.pytype/imports/debug.imports +0 -28
- plain-0.22.0/.pytype/imports/default.pyi +0 -3
- plain-0.22.0/.pytype/imports/forms.__init__.imports +0 -13
- plain-0.22.0/.pytype/imports/forms.boundfield.imports +0 -0
- plain-0.22.0/.pytype/imports/forms.exceptions.imports +0 -1
- plain-0.22.0/.pytype/imports/forms.fields.imports +0 -12
- plain-0.22.0/.pytype/imports/forms.forms.imports +0 -15
- plain-0.22.0/.pytype/imports/http.__init__.imports +0 -21
- plain-0.22.0/.pytype/imports/http.__init__.imports-1 +0 -18
- plain-0.22.0/.pytype/imports/http.cookie.imports +0 -0
- plain-0.22.0/.pytype/imports/http.multipartparser.imports +0 -26
- plain-0.22.0/.pytype/imports/http.multipartparser.imports-1 +0 -23
- plain-0.22.0/.pytype/imports/http.request.imports +0 -26
- plain-0.22.0/.pytype/imports/http.request.imports-1 +0 -23
- plain-0.22.0/.pytype/imports/http.response.imports +0 -19
- plain-0.22.0/.pytype/imports/internal.__init__.imports +0 -0
- plain-0.22.0/.pytype/imports/internal.files.__init__.imports +0 -4
- plain-0.22.0/.pytype/imports/internal.files.base.imports +0 -3
- plain-0.22.0/.pytype/imports/internal.files.locks.imports +0 -0
- plain-0.22.0/.pytype/imports/internal.files.move.imports +0 -1
- plain-0.22.0/.pytype/imports/internal.files.temp.imports +0 -2
- plain-0.22.0/.pytype/imports/internal.files.uploadedfile.imports +0 -13
- plain-0.22.0/.pytype/imports/internal.files.uploadhandler.imports +0 -12
- plain-0.22.0/.pytype/imports/internal.files.utils.imports +0 -1
- plain-0.22.0/.pytype/imports/internal.handlers.__init__.imports +0 -0
- plain-0.22.0/.pytype/imports/internal.handlers.base.imports +0 -70
- plain-0.22.0/.pytype/imports/internal.handlers.exception.imports +0 -68
- plain-0.22.0/.pytype/imports/internal.handlers.wsgi.imports +0 -71
- plain-0.22.0/.pytype/imports/internal.middleware.__init__.imports +0 -0
- plain-0.22.0/.pytype/imports/internal.middleware.headers.imports +0 -11
- plain-0.22.0/.pytype/imports/internal.middleware.https.imports +0 -26
- plain-0.22.0/.pytype/imports/internal.middleware.slash.imports +0 -67
- plain-0.22.0/.pytype/imports/json_encoding.imports +0 -3
- plain-0.22.0/.pytype/imports/logs.__init__.imports +0 -3
- plain-0.22.0/.pytype/imports/logs.configure.imports +0 -0
- plain-0.22.0/.pytype/imports/logs.loggers.imports +0 -0
- plain-0.22.0/.pytype/imports/logs.utils.imports +0 -0
- plain-0.22.0/.pytype/imports/middleware.imports +0 -19
- plain-0.22.0/.pytype/imports/packages.__init__.imports +0 -15
- plain-0.22.0/.pytype/imports/packages.__init__.imports-1 +0 -9
- plain-0.22.0/.pytype/imports/packages.config.imports +0 -2
- plain-0.22.0/.pytype/imports/packages.registry.imports +0 -11
- plain-0.22.0/.pytype/imports/packages.registry.imports-1 +0 -7
- plain-0.22.0/.pytype/imports/paginator.imports +0 -2
- plain-0.22.0/.pytype/imports/preflight.__init__.imports +0 -68
- plain-0.22.0/.pytype/imports/preflight.__init__.imports-1 +0 -49
- plain-0.22.0/.pytype/imports/preflight.files.imports +0 -67
- plain-0.22.0/.pytype/imports/preflight.files.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/preflight.messages.imports +0 -11
- plain-0.22.0/.pytype/imports/preflight.registry.imports +0 -2
- plain-0.22.0/.pytype/imports/preflight.security.imports +0 -15
- plain-0.22.0/.pytype/imports/preflight.urls.imports +0 -68
- plain-0.22.0/.pytype/imports/preflight.urls.imports-1 +0 -49
- plain-0.22.0/.pytype/imports/runtime.global_settings.imports +0 -11
- plain-0.22.0/.pytype/imports/runtime.user_settings.imports +0 -11
- plain-0.22.0/.pytype/imports/runtime.user_settings.imports-1 +0 -7
- plain-0.22.0/.pytype/imports/signals.dispatch.__init__.imports +0 -13
- plain-0.22.0/.pytype/imports/signals.dispatch.dispatcher.imports +0 -12
- plain-0.22.0/.pytype/imports/signing.imports +0 -14
- plain-0.22.0/.pytype/imports/templates.__init__.imports +0 -67
- plain-0.22.0/.pytype/imports/templates.__init__.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/templates.core.imports +0 -67
- plain-0.22.0/.pytype/imports/templates.core.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/templates.jinja.__init__.imports +0 -67
- plain-0.22.0/.pytype/imports/templates.jinja.__init__.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/templates.jinja.environments.imports +0 -67
- plain-0.22.0/.pytype/imports/templates.jinja.environments.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/templates.jinja.extensions.imports +0 -2
- plain-0.22.0/.pytype/imports/templates.jinja.filters.imports +0 -3
- plain-0.22.0/.pytype/imports/templates.jinja.globals.imports +0 -67
- plain-0.22.0/.pytype/imports/templates.jinja.globals.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/test.__init__.imports +0 -70
- plain-0.22.0/.pytype/imports/test.client.imports +0 -69
- plain-0.22.0/.pytype/imports/urls.base.imports +0 -67
- plain-0.22.0/.pytype/imports/urls.base.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/urls.conf.imports +0 -67
- plain-0.22.0/.pytype/imports/urls.conf.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/urls.converters.imports +0 -0
- plain-0.22.0/.pytype/imports/urls.exceptions.imports +0 -26
- plain-0.22.0/.pytype/imports/urls.resolvers.imports +0 -67
- plain-0.22.0/.pytype/imports/urls.resolvers.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/utils.__init__.imports +0 -0
- plain-0.22.0/.pytype/imports/utils._os.imports +0 -1
- plain-0.22.0/.pytype/imports/utils.cache.imports +0 -26
- plain-0.22.0/.pytype/imports/utils.connection.imports +0 -12
- plain-0.22.0/.pytype/imports/utils.crypto.imports +0 -12
- plain-0.22.0/.pytype/imports/utils.datastructures.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.dateformat.imports +0 -3
- plain-0.22.0/.pytype/imports/utils.dateparse.imports +0 -2
- plain-0.22.0/.pytype/imports/utils.dates.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.deconstruct.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.decorators.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.deprecation.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.duration.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.email.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.hashable.imports +0 -1
- plain-0.22.0/.pytype/imports/utils.inspect.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.ipv6.imports +0 -1
- plain-0.22.0/.pytype/imports/utils.itercompat.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.module_loading.imports +0 -0
- plain-0.22.0/.pytype/imports/utils.regex_helper.imports +0 -1
- plain-0.22.0/.pytype/imports/utils.safestring.imports +0 -1
- plain-0.22.0/.pytype/imports/utils.text.imports +0 -3
- plain-0.22.0/.pytype/imports/utils.tree.imports +0 -2
- plain-0.22.0/.pytype/imports/validators.imports +0 -6
- plain-0.22.0/.pytype/imports/views.__init__.imports +0 -67
- plain-0.22.0/.pytype/imports/views.__init__.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/views.base.imports +0 -28
- plain-0.22.0/.pytype/imports/views.csrf.imports +0 -1
- plain-0.22.0/.pytype/imports/views.errors.imports +0 -67
- plain-0.22.0/.pytype/imports/views.exceptions.imports +0 -0
- plain-0.22.0/.pytype/imports/views.forms.imports +0 -67
- plain-0.22.0/.pytype/imports/views.forms.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/views.imports +0 -67
- plain-0.22.0/.pytype/imports/views.objects.imports +0 -67
- plain-0.22.0/.pytype/imports/views.objects.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/views.redirect.imports +0 -67
- plain-0.22.0/.pytype/imports/views.redirect.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/views.templates.imports +0 -67
- plain-0.22.0/.pytype/imports/views.templates.imports-1 +0 -48
- plain-0.22.0/.pytype/imports/wsgi.imports +0 -12
- plain-0.22.0/.pytype/pyi/exceptions.pyi +0 -87
- plain-0.22.0/.pytype/pyi/forms/boundfield.pyi +0 -22
- plain-0.22.0/.pytype/pyi/forms/exceptions.pyi +0 -8
- plain-0.22.0/.pytype/pyi/internal/files/base.pyi +0 -65
- plain-0.22.0/.pytype/pyi/internal/files/uploadhandler.pyi +0 -80
- plain-0.22.0/.pytype/pyi/internal/files/utils.pyi +0 -33
- plain-0.22.0/.pytype/pyi/logs/__init__.pyi +0 -9
- plain-0.22.0/.pytype/pyi/logs/configure.pyi +0 -8
- plain-0.22.0/.pytype/pyi/logs/loggers.pyi +0 -20
- plain-0.22.0/.pytype/pyi/logs/utils.pyi +0 -7
- plain-0.22.0/.pytype/pyi/packages/__init__.pyi +0 -8
- plain-0.22.0/.pytype/pyi/packages/__init__.pyi-1 +0 -8
- plain-0.22.0/.pytype/pyi/packages/config.pyi +0 -35
- plain-0.22.0/.pytype/pyi/packages/registry.pyi +0 -49
- plain-0.22.0/.pytype/pyi/packages/registry.pyi-1 +0 -49
- plain-0.22.0/.pytype/pyi/runtime/user_settings.pyi +0 -64
- plain-0.22.0/.pytype/pyi/runtime/user_settings.pyi-1 +0 -64
- plain-0.22.0/.pytype/pyi/signals/dispatch/dispatcher.pyi +0 -32
- plain-0.22.0/.pytype/pyi/utils/dateparse.pyi +0 -18
- plain-0.22.0/.pytype/pyi/utils/hashable.pyi +0 -9
- plain-0.22.0/.pytype/pyi/utils/itercompat.pyi +0 -3
- plain-0.22.0/.pytype/pyi/utils/module_loading.pyi +0 -14
- plain-0.22.0/.pytype/pyi/validators.pyi +0 -56
- plain-0.22.0/plain/.pytype/.gitignore +0 -2
- plain-0.22.0/plain/.pytype/.ninja_log +0 -17
- plain-0.22.0/plain/.pytype/build.ninja +0 -318
- plain-0.22.0/plain/.pytype/imports/..packages.__init__.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/..packages.__init__.imports-1 +0 -4
- plain-0.22.0/plain/.pytype/imports/__main__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/assets.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/assets.compile.imports +0 -10
- plain-0.22.0/plain/.pytype/imports/assets.finders.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/assets.fingerprints.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/assets.urls.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/assets.urls.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/assets.views.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/assets.views.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/cli.__init__.imports +0 -16
- plain-0.22.0/plain/.pytype/imports/cli.cli.imports +0 -15
- plain-0.22.0/plain/.pytype/imports/cli.formatting.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/cli.packages.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/cli.print.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/cli.startup.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/debug.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/default.pyi +0 -3
- plain-0.22.0/plain/.pytype/imports/forms.__init__.imports +0 -23
- plain-0.22.0/plain/.pytype/imports/forms.boundfield.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/forms.exceptions.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/forms.fields.imports +0 -13
- plain-0.22.0/plain/.pytype/imports/forms.forms.imports +0 -15
- plain-0.22.0/plain/.pytype/imports/http.__init__.imports +0 -20
- plain-0.22.0/plain/.pytype/imports/http.__init__.imports-1 +0 -17
- plain-0.22.0/plain/.pytype/imports/http.cookie.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/http.multipartparser.imports +0 -14
- plain-0.22.0/plain/.pytype/imports/http.multipartparser.imports-1 +0 -17
- plain-0.22.0/plain/.pytype/imports/http.request.imports +0 -14
- plain-0.22.0/plain/.pytype/imports/http.request.imports-1 +0 -25
- plain-0.22.0/plain/.pytype/imports/http.response.imports +0 -16
- plain-0.22.0/plain/.pytype/imports/internal.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/internal.files.__init__.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/internal.files.base.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/internal.files.locks.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/internal.files.move.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/internal.files.temp.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/internal.files.uploadedfile.imports +0 -10
- plain-0.22.0/plain/.pytype/imports/internal.files.uploadhandler.imports +0 -12
- plain-0.22.0/plain/.pytype/imports/internal.files.utils.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/internal.handlers.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/internal.handlers.base.imports +0 -53
- plain-0.22.0/plain/.pytype/imports/internal.handlers.exception.imports +0 -10
- plain-0.22.0/plain/.pytype/imports/internal.handlers.wsgi.imports +0 -29
- plain-0.22.0/plain/.pytype/imports/internal.middleware.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/internal.middleware.headers.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/internal.middleware.https.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/internal.middleware.slash.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/json.imports +0 -12
- plain-0.22.0/plain/.pytype/imports/json.imports-1 +0 -6
- plain-0.22.0/plain/.pytype/imports/json_encoding.imports +0 -3
- plain-0.22.0/plain/.pytype/imports/logs.configure.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/logs.loggers.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/logs.utils.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/middleware.imports +0 -13
- plain-0.22.0/plain/.pytype/imports/packages.__init__.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/packages.__init__.imports-1 +0 -4
- plain-0.22.0/plain/.pytype/imports/packages.config.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/packages.registry.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/packages.registry.imports-1 +0 -3
- plain-0.22.0/plain/.pytype/imports/paginator.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/preflight.__init__.imports +0 -72
- plain-0.22.0/plain/.pytype/imports/preflight.__init__.imports-1 +0 -53
- plain-0.22.0/plain/.pytype/imports/preflight.files.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/preflight.files.imports-1 +0 -48
- plain-0.22.0/plain/.pytype/imports/preflight.messages.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/preflight.registry.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/preflight.security.imports +0 -11
- plain-0.22.0/plain/.pytype/imports/preflight.urls.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/preflight.urls.imports-1 +0 -48
- plain-0.22.0/plain/.pytype/imports/runtime.global_settings.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/runtime.user_settings.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/runtime.user_settings.imports-1 +0 -3
- plain-0.22.0/plain/.pytype/imports/signals.dispatch.__init__.imports +0 -10
- plain-0.22.0/plain/.pytype/imports/signals.dispatch.dispatcher.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/templates.__init__.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/templates.__init__.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/templates.core.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/templates.core.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/templates.jinja.__init__.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/templates.jinja.__init__.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/templates.jinja.environments.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/templates.jinja.environments.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/templates.jinja.extensions.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/templates.jinja.filters.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/templates.jinja.globals.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/templates.jinja.globals.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/test.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/test.client.imports +0 -58
- plain-0.22.0/plain/.pytype/imports/urls.base.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/urls.base.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/urls.conf.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/urls.conf.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/urls.converters.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/urls.exceptions.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/urls.resolvers.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/urls.resolvers.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/utils.__init__.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils._os.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.cache.imports +0 -28
- plain-0.22.0/plain/.pytype/imports/utils.connection.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/utils.datastructures.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.dateformat.imports +0 -4
- plain-0.22.0/plain/.pytype/imports/utils.dateparse.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/utils.dates.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.deconstruct.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.decorators.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.deprecation.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.duration.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.email.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.encoding.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.hashable.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.html.imports +0 -10
- plain-0.22.0/plain/.pytype/imports/utils.inspect.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.ipv6.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.itercompat.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.module_loading.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/utils.regex_helper.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.safestring.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/utils.text.imports +0 -3
- plain-0.22.0/plain/.pytype/imports/utils.timesince.imports +0 -6
- plain-0.22.0/plain/.pytype/imports/utils.timezone.imports +0 -8
- plain-0.22.0/plain/.pytype/imports/utils.tree.imports +0 -2
- plain-0.22.0/plain/.pytype/imports/validators.imports +0 -7
- plain-0.22.0/plain/.pytype/imports/views.__init__.imports +0 -72
- plain-0.22.0/plain/.pytype/imports/views.__init__.imports-1 +0 -53
- plain-0.22.0/plain/.pytype/imports/views.base.imports +0 -3
- plain-0.22.0/plain/.pytype/imports/views.csrf.imports +0 -1
- plain-0.22.0/plain/.pytype/imports/views.errors.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.exceptions.imports +0 -0
- plain-0.22.0/plain/.pytype/imports/views.forms.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.forms.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/views.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.objects.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.objects.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/views.redirect.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.redirect.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/views.templates.imports +0 -51
- plain-0.22.0/plain/.pytype/imports/views.templates.imports-1 +0 -35
- plain-0.22.0/plain/.pytype/imports/wsgi.imports +0 -8
- plain-0.22.0/plain/.pytype/pyi/json.pyi +0 -15
- plain-0.22.0/plain/.pytype/pyi/json.pyi-1 +0 -15
- plain-0.22.0/plain/.pytype/pyi/logs/configure.pyi +0 -8
- plain-0.22.0/plain/.pytype/pyi/logs/loggers.pyi +0 -20
- plain-0.22.0/plain/.pytype/pyi/logs/utils.pyi +0 -7
- plain-0.22.0/plain/.pytype/pyi/packages/__init__.pyi +0 -8
- plain-0.22.0/plain/.pytype/pyi/packages/__init__.pyi-1 +0 -8
- plain-0.22.0/plain/.pytype/pyi/packages/config.pyi +0 -35
- plain-0.22.0/plain/.pytype/pyi/packages/registry.pyi +0 -49
- plain-0.22.0/plain/.pytype/pyi/packages/registry.pyi-1 +0 -49
- plain-0.22.0/plain/.pytype/pyi/runtime/user_settings.pyi +0 -64
- plain-0.22.0/plain/.pytype/pyi/runtime/user_settings.pyi-1 +0 -64
- plain-0.22.0/plain/.pytype/pyi/utils/duration.pyi +0 -9
- plain-0.22.0/plain/.pytype/pyi/utils/hashable.pyi +0 -9
- plain-0.22.0/plain/.pytype/pyi/utils/itercompat.pyi +0 -3
- plain-0.22.0/plain/.pytype/pyi/utils/module_loading.pyi +0 -14
- plain-0.22.0/tests/.plain/tailwind +0 -0
- plain-0.22.0/tests/.plain/tailwind.version +0 -1
- plain-0.22.0/tests/htmlcov/.gitignore +0 -2
- plain-0.22.0/tests/htmlcov/class_index.html +0 -1652
- plain-0.22.0/tests/htmlcov/conftest_py.html +0 -104
- plain-0.22.0/tests/htmlcov/coverage_html_cb_6fb7b396.js +0 -733
- plain-0.22.0/tests/htmlcov/favicon_32_cb_58284776.png +0 -0
- plain-0.22.0/tests/htmlcov/function_index.html +0 -7420
- plain-0.22.0/tests/htmlcov/index.html +0 -714
- plain-0.22.0/tests/htmlcov/keybd_closed_cb_ce680311.png +0 -0
- plain-0.22.0/tests/htmlcov/status.json +0 -1
- plain-0.22.0/tests/htmlcov/style_cb_8e611ae1.css +0 -337
- plain-0.22.0/tests/htmlcov/test_cli_py.html +0 -108
- plain-0.22.0/tests/htmlcov/test_runtime_py.html +0 -115
- plain-0.22.0/tests/htmlcov/test_wsgi_py.html +0 -120
- plain-0.22.0/tests/htmlcov/z_08e2f40455e232b2___init___py.html +0 -106
- plain-0.22.0/tests/htmlcov/z_08e2f40455e232b2_dispatcher_py.html +0 -417
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031___init___py.html +0 -137
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_base_py.html +0 -215
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_conf_py.html +0 -192
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_converters_py.html +0 -163
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_exceptions_py.html +0 -106
- plain-0.22.0/tests/htmlcov/z_0a223da2f26b6031_resolvers_py.html +0 -815
- plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_common_py.html +0 -217
- plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_headers_py.html +0 -116
- plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_https_py.html +0 -133
- plain-0.22.0/tests/htmlcov/z_137f9b6c25d37f39_slash_py.html +0 -161
- plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b___init___py.html +0 -148
- plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_cookie_py.html +0 -117
- plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_multipartparser_py.html +0 -840
- plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_request_py.html +0 -851
- plain-0.22.0/tests/htmlcov/z_1ec4e4db74a14c8b_response_py.html +0 -816
- plain-0.22.0/tests/htmlcov/z_26913647d7b30560_base_py.html +0 -196
- plain-0.22.0/tests/htmlcov/z_26913647d7b30560_csrf_py.html +0 -133
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796___init___py.html +0 -133
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_files_py.html +0 -116
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_messages_py.html +0 -178
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_registry_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_security_py.html +0 -190
- plain-0.22.0/tests/htmlcov/z_278d029ea1ca8796_urls_py.html +0 -204
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f___init___py.html +0 -115
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_base_py.html +0 -210
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_errors_py.html +0 -129
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_exceptions_py.html +0 -101
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_forms_py.html +0 -173
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_objects_py.html +0 -326
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_redirect_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_39a44c3f88ce0f2f_templates_py.html +0 -163
- plain-0.22.0/tests/htmlcov/z_5046785a7422f325___init___py.html +0 -103
- plain-0.22.0/tests/htmlcov/z_5046785a7422f325_core_py.html +0 -121
- plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d___init___py.html +0 -185
- plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_environments_py.html +0 -160
- plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_filters_py.html +0 -125
- plain-0.22.0/tests/htmlcov/z_520c8bc9a9c49c3d_globals_py.html +0 -123
- plain-0.22.0/tests/htmlcov/z_55f990176f696344___init___py.html +0 -134
- plain-0.22.0/tests/htmlcov/z_55f990176f696344_files_py.html +0 -116
- plain-0.22.0/tests/htmlcov/z_55f990176f696344_messages_py.html +0 -185
- plain-0.22.0/tests/htmlcov/z_55f990176f696344_registry_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_55f990176f696344_urls_py.html +0 -204
- plain-0.22.0/tests/htmlcov/z_5f5a17c013354698_settings_py.html +0 -106
- plain-0.22.0/tests/htmlcov/z_5f5a17c013354698_urls_py.html +0 -109
- plain-0.22.0/tests/htmlcov/z_60460f73488957b2___init___py.html +0 -101
- plain-0.22.0/tests/htmlcov/z_60460f73488957b2_config_py.html +0 -356
- plain-0.22.0/tests/htmlcov/z_60460f73488957b2_registry_py.html +0 -529
- plain-0.22.0/tests/htmlcov/z_62e2251503eb2944___init___py.html +0 -102
- plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_configure_py.html +0 -136
- plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_loggers_py.html +0 -171
- plain-0.22.0/tests/htmlcov/z_62e2251503eb2944_utils_py.html +0 -143
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_cache_py.html +0 -424
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_crypto_py.html +0 -173
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_datastructures_py.html +0 -442
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_decorators_py.html +0 -187
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_duration_py.html +0 -141
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_encoding_py.html +0 -332
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_functional_py.html +0 -553
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_hashable_py.html +0 -123
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_html_py.html +0 -498
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_http_py.html +0 -471
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_inspect_py.html +0 -170
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_itercompat_py.html +0 -105
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_module_loading_py.html +0 -166
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_regex_helper_py.html +0 -450
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_safestring_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_text_py.html +0 -615
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_timesince_py.html +0 -235
- plain-0.22.0/tests/htmlcov/z_65dba8a96e259cb4_timezone_py.html +0 -320
- plain-0.22.0/tests/htmlcov/z_69270a550cfdaaa6___init___py.html +0 -114
- plain-0.22.0/tests/htmlcov/z_69270a550cfdaaa6_core_py.html +0 -121
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c___init___py.html +0 -100
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_base_py.html +0 -258
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_temp_py.html +0 -176
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_uploadedfile_py.html +0 -247
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_uploadhandler_py.html +0 -352
- plain-0.22.0/tests/htmlcov/z_6aa076bcb314730c_utils_py.html +0 -175
- plain-0.22.0/tests/htmlcov/z_718298498ed540cc___init___py.html +0 -106
- plain-0.22.0/tests/htmlcov/z_718298498ed540cc_dispatcher_py.html +0 -417
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_cache_py.html +0 -425
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_crypto_py.html +0 -174
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_datastructures_py.html +0 -442
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_decorators_py.html +0 -187
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_duration_py.html +0 -141
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_encoding_py.html +0 -332
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_functional_py.html +0 -553
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_hashable_py.html +0 -123
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_html_py.html +0 -498
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_http_py.html +0 -471
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_inspect_py.html +0 -170
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_itercompat_py.html +0 -105
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_module_loading_py.html +0 -166
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_regex_helper_py.html +0 -451
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_safestring_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_text_py.html +0 -615
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_timesince_py.html +0 -235
- plain-0.22.0/tests/htmlcov/z_771d2371add57bec_timezone_py.html +0 -320
- plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_exceptions_py.html +0 -339
- plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_json_py.html +0 -137
- plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_paginator_py.html +0 -284
- plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_signing_py.html +0 -378
- plain-0.22.0/tests/htmlcov/z_7d573cbb52d87842_wsgi_py.html +0 -108
- plain-0.22.0/tests/htmlcov/z_83778f412f163984___init___py.html +0 -148
- plain-0.22.0/tests/htmlcov/z_83778f412f163984_cookie_py.html +0 -117
- plain-0.22.0/tests/htmlcov/z_83778f412f163984_multipartparser_py.html +0 -840
- plain-0.22.0/tests/htmlcov/z_83778f412f163984_request_py.html +0 -851
- plain-0.22.0/tests/htmlcov/z_83778f412f163984_response_py.html +0 -816
- plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_headers_py.html +0 -116
- plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_https_py.html +0 -133
- plain-0.22.0/tests/htmlcov/z_8599fc10ebddcb43_slash_py.html +0 -158
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1___init___py.html +0 -137
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_base_py.html +0 -215
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_conf_py.html +0 -191
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_converters_py.html +0 -163
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_exceptions_py.html +0 -106
- plain-0.22.0/tests/htmlcov/z_8a711fa739111ae1_resolvers_py.html +0 -828
- plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e___init___py.html +0 -102
- plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_configure_py.html +0 -136
- plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_loggers_py.html +0 -171
- plain-0.22.0/tests/htmlcov/z_8fa4e7144c4f756e_utils_py.html +0 -143
- plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d___init___py.html +0 -119
- plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_defaults_py.html +0 -216
- plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_filters_py.html +0 -125
- plain-0.22.0/tests/htmlcov/z_930cbba6fe0b877d_globals_py.html +0 -123
- plain-0.22.0/tests/htmlcov/z_9588665b96d1b37e_middleware_py.html +0 -546
- plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_clickjacking_py.html +0 -149
- plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_common_py.html +0 -217
- plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_https_py.html +0 -121
- plain-0.22.0/tests/htmlcov/z_a452b6a7f5c586c2_security_py.html +0 -121
- plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf___init___py.html +0 -156
- plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf_global_settings_py.html +0 -268
- plain-0.22.0/tests/htmlcov/z_aa45edb86348cbbf_user_settings_py.html +0 -410
- plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_base_py.html +0 -238
- plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_exception_py.html +0 -240
- plain-0.22.0/tests/htmlcov/z_ae2912241ab23e9a_wsgi_py.html +0 -313
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae___init___py.html +0 -100
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_base_py.html +0 -258
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_temp_py.html +0 -176
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_uploadedfile_py.html +0 -247
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_uploadhandler_py.html +0 -351
- plain-0.22.0/tests/htmlcov/z_b0204d4659145eae_utils_py.html +0 -175
- plain-0.22.0/tests/htmlcov/z_bc9c8dbd03e4c0e9_default_settings_py.html +0 -101
- plain-0.22.0/tests/htmlcov/z_bf91a6232e27efa1_middleware_py.html +0 -547
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201___init___py.html +0 -115
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_base_py.html +0 -210
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_errors_py.html +0 -129
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_exceptions_py.html +0 -101
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_forms_py.html +0 -173
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_objects_py.html +0 -326
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_redirect_py.html +0 -169
- plain-0.22.0/tests/htmlcov/z_cbff1ceb23518201_templates_py.html +0 -163
- plain-0.22.0/tests/htmlcov/z_da424fe598f65890___init___py.html +0 -156
- plain-0.22.0/tests/htmlcov/z_da424fe598f65890_global_settings_py.html +0 -268
- plain-0.22.0/tests/htmlcov/z_da424fe598f65890_user_settings_py.html +0 -410
- plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784___init___py.html +0 -101
- plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784_config_py.html +0 -350
- plain-0.22.0/tests/htmlcov/z_db0c8e815f2f2784_registry_py.html +0 -529
- plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_base_py.html +0 -242
- plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_exception_py.html +0 -242
- plain-0.22.0/tests/htmlcov/z_dee3795285b7272f_wsgi_py.html +0 -313
- plain-0.22.0/tests/htmlcov/z_e4e4a12be324a3bf___init___py.html +0 -102
- plain-0.22.0/tests/htmlcov/z_eb533901707f8086_exceptions_py.html +0 -340
- plain-0.22.0/tests/htmlcov/z_eb533901707f8086_json_py.html +0 -137
- plain-0.22.0/tests/htmlcov/z_eb533901707f8086_paginator_py.html +0 -283
- plain-0.22.0/tests/htmlcov/z_eb533901707f8086_signing_py.html +0 -378
- plain-0.22.0/tests/htmlcov/z_eb533901707f8086_wsgi_py.html +0 -108
- plain-0.22.0/tests/htmlcov/z_ed1317531eecaa43___init___py.html +0 -102
- {plain-0.22.0 → plain-0.22.1}/.gitignore +0 -0
- {plain-0.22.0 → plain-0.22.1}/LICENSE +0 -0
- {plain-0.22.0 → plain-0.22.1}/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/__main__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/compile.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/finders.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/fingerprints.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/urls.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/assets/views.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/cli.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/formatting.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/packages.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/print.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/cli/startup.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/csrf/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/csrf/middleware.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/csrf/views.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/debug.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/exceptions.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/boundfield.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/exceptions.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/fields.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/forms/forms.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/cookie.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/multipartparser.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/request.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/http/response.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/base.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/locks.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/move.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/temp.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/files/utils.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/handlers/base.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/handlers/exception.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/middleware/headers.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/middleware/https.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/internal/middleware/slash.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/json.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/logs/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/logs/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/logs/configure.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/logs/loggers.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/logs/utils.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/packages/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/packages/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/packages/config.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/packages/registry.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/paginator.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/files.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/messages.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/registry.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/security.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/preflight/urls.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/runtime/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/runtime/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/runtime/global_settings.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/runtime/user_settings.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signals/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signals/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/signing.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/core.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/environments.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/filters.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/templates/jinja/globals.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/test/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/test/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/test/client.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/converters.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/exceptions.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/patterns.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/urls/utils.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/_os.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/cache.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/connection.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/crypto.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/datastructures.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/dateformat.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/dateparse.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/dates.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/deconstruct.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/decorators.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/duration.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/email.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/encoding.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/functional.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/hashable.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/html.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/http.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/inspect.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/ipv6.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/itercompat.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/module_loading.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/regex_helper.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/safestring.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/text.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/timesince.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/timezone.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/utils/tree.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/validators.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/README.md +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/base.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/csrf.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/errors.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/exceptions.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/forms.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/objects.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/redirect.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/views/templates.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/plain/wsgi.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/.bolt/assets_collected/assets.json +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/.gitignore +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/app/.gitignore +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/app/settings.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/app/test/__init__.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/app/test/default_settings.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/app/urls.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/conftest.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/test_cli.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/test_runtime.py +0 -0
- {plain-0.22.0 → plain-0.22.1}/tests/test_wsgi.py +0 -0
@@ -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
|
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 =
|
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(
|
43
|
-
|
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
|
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
|
-
|
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=
|
61
|
-
namespace=namespace,
|
75
|
+
router_class=router_class,
|
62
76
|
)
|
63
77
|
|
64
78
|
|
65
|
-
def path(route, view, *, name=
|
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
|
-
|
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
|
-
|
90
|
-
register_router =
|
111
|
+
routers_registry = RoutersRegistry()
|
112
|
+
register_router = routers_registry.register_router
|
plain-0.22.0/.pytype/.gitignore
DELETED
plain-0.22.0/.pytype/.ninja_log
DELETED
@@ -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
|