plain 0.30.0__tar.gz → 0.32.0__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.30.0 → plain-0.32.0}/PKG-INFO +1 -1
- {plain-0.30.0 → plain-0.32.0}/plain/forms/fields.py +0 -11
- {plain-0.30.0 → plain-0.32.0}/plain/urls/patterns.py +0 -2
- {plain-0.30.0 → plain-0.32.0}/plain/validators.py +0 -15
- {plain-0.30.0 → plain-0.32.0}/pyproject.toml +1 -1
- {plain-0.30.0 → plain-0.32.0}/.gitignore +0 -0
- {plain-0.30.0 → plain-0.32.0}/LICENSE +0 -0
- {plain-0.30.0 → plain-0.32.0}/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/__main__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/compile.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/finders.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/fingerprints.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/urls.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/assets/views.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/core.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/formatting.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/print.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/registry.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/cli/startup.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/csrf/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/csrf/middleware.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/csrf/views.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/debug.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/exceptions.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/forms/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/forms/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/forms/boundfield.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/forms/exceptions.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/forms/forms.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/cookie.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/multipartparser.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/request.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/http/response.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/base.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/locks.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/move.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/temp.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/files/utils.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/handlers/base.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/handlers/exception.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/middleware/headers.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/middleware/https.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/internal/middleware/slash.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/json.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/logs/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/logs/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/logs/configure.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/logs/loggers.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/logs/utils.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/packages/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/packages/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/packages/config.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/packages/registry.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/paginator.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/files.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/messages.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/registry.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/security.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/preflight/urls.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/runtime/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/runtime/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/runtime/global_settings.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/runtime/user_settings.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signals/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signals/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/signing.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/core.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/environments.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/filters.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/templates/jinja/globals.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/test/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/test/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/test/client.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/converters.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/exceptions.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/resolvers.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/routers.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/urls/utils.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/cache.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/connection.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/crypto.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/datastructures.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/dateparse.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/deconstruct.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/decorators.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/duration.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/encoding.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/functional.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/hashable.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/html.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/http.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/inspect.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/ipv6.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/itercompat.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/module_loading.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/regex_helper.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/safestring.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/text.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/timesince.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/timezone.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/utils/tree.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/README.md +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/base.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/csrf.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/errors.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/exceptions.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/forms.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/objects.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/redirect.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/views/templates.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/plain/wsgi.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/.bolt/assets_collected/assets.json +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/.gitignore +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/app/.gitignore +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/app/settings.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/app/test/__init__.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/app/test/default_settings.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/app/urls.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/conftest.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/test_cli.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/test_runtime.py +0 -0
- {plain-0.30.0 → plain-0.32.0}/tests/test_wsgi.py +0 -0
@@ -43,7 +43,6 @@ __all__ = (
|
|
43
43
|
"FloatField",
|
44
44
|
"DecimalField",
|
45
45
|
"JSONField",
|
46
|
-
"SlugField",
|
47
46
|
"TypedChoiceField",
|
48
47
|
"UUIDField",
|
49
48
|
)
|
@@ -900,16 +899,6 @@ class MultipleChoiceField(ChoiceField):
|
|
900
899
|
return data.getlist(html_name)
|
901
900
|
|
902
901
|
|
903
|
-
class SlugField(CharField):
|
904
|
-
default_validators = [validators.validate_slug]
|
905
|
-
|
906
|
-
def __init__(self, *, allow_unicode=False, **kwargs):
|
907
|
-
self.allow_unicode = allow_unicode
|
908
|
-
if self.allow_unicode:
|
909
|
-
self.default_validators = [validators.validate_unicode_slug]
|
910
|
-
super().__init__(**kwargs)
|
911
|
-
|
912
|
-
|
913
902
|
class UUIDField(CharField):
|
914
903
|
default_error_messages = {
|
915
904
|
"invalid": "Enter a valid UUID.",
|
@@ -48,7 +48,6 @@ class CheckURLMixin:
|
|
48
48
|
class RegexPattern(CheckURLMixin):
|
49
49
|
def __init__(self, regex, name=None, is_endpoint=False):
|
50
50
|
self._regex = regex
|
51
|
-
self._regex_dict = {}
|
52
51
|
self._is_endpoint = is_endpoint
|
53
52
|
self.name = name
|
54
53
|
self.converters = {}
|
@@ -157,7 +156,6 @@ def _route_to_regex(route, is_endpoint=False):
|
|
157
156
|
class RoutePattern(CheckURLMixin):
|
158
157
|
def __init__(self, route, name=None, is_endpoint=False):
|
159
158
|
self._route = route
|
160
|
-
self._regex_dict = {}
|
161
159
|
self._is_endpoint = is_endpoint
|
162
160
|
self.name = name
|
163
161
|
self.converters = _route_to_regex(str(route), is_endpoint)[1]
|
@@ -237,21 +237,6 @@ class EmailValidator:
|
|
237
237
|
|
238
238
|
validate_email = EmailValidator()
|
239
239
|
|
240
|
-
slug_re = _lazy_re_compile(r"^[-a-zA-Z0-9_]+\Z")
|
241
|
-
validate_slug = RegexValidator(
|
242
|
-
slug_re,
|
243
|
-
# Translators: "letters" means latin letters: a-z and A-Z.
|
244
|
-
"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.",
|
245
|
-
"invalid",
|
246
|
-
)
|
247
|
-
|
248
|
-
slug_unicode_re = _lazy_re_compile(r"^[-\w]+\Z")
|
249
|
-
validate_unicode_slug = RegexValidator(
|
250
|
-
slug_unicode_re,
|
251
|
-
"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or hyphens."
|
252
|
-
"invalid",
|
253
|
-
)
|
254
|
-
|
255
240
|
|
256
241
|
def validate_ipv4_address(value):
|
257
242
|
try:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|