plain 0.71.0__tar.gz → 0.72.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.71.0 → plain-0.72.0}/.gitignore +1 -0
- {plain-0.71.0 → plain-0.72.0}/PKG-INFO +1 -1
- {plain-0.71.0 → plain-0.72.0}/plain/CHANGELOG.md +12 -0
- {plain-0.71.0 → plain-0.72.0}/plain/runtime/README.md +0 -1
- {plain-0.71.0 → plain-0.72.0}/plain/test/client.py +7 -3
- {plain-0.71.0 → plain-0.72.0}/pyproject.toml +1 -1
- {plain-0.71.0 → plain-0.72.0}/LICENSE +0 -0
- {plain-0.71.0 → plain-0.72.0}/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/AGENTS.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/__main__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/compile.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/finders.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/fingerprints.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/urls.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/assets/views.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/chores/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/chores/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/chores/registry.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/docs.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/llmdocs.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/md.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/prompt.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/agent/request.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/build.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/changelog.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/chores.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/core.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/docs.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/formatting.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/install.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/output.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/preflight.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/print.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/registry.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/scaffold.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/settings.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/shell.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/startup.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/upgrade.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/urls.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/cli/utils.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/csrf/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/csrf/middleware.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/csrf/views.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/debug.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/exceptions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/boundfield.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/exceptions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/fields.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/forms/forms.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/cookie.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/multipartparser.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/request.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/http/response.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/base.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/locks.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/move.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/temp.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/files/utils.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/handlers/base.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/handlers/exception.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/middleware/headers.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/middleware/hosts.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/middleware/https.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/internal/middleware/slash.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/json.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/configure.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/debug.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/formatters.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/loggers.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/logs/utils.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/packages/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/packages/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/packages/config.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/packages/registry.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/paginator.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/checks.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/files.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/registry.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/results.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/security.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/preflight/urls.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/runtime/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/runtime/global_settings.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/runtime/user_settings.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/runtime/utils.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signals/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signals/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/signing.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/AGENTS.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/core.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/jinja/environments.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/jinja/filters.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/templates/jinja/globals.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/test/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/test/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/test/encoding.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/test/exceptions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/converters.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/exceptions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/patterns.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/resolvers.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/routers.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/urls/utils.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/cache.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/crypto.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/datastructures.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/dateparse.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/deconstruct.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/decorators.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/duration.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/encoding.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/functional.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/hashable.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/html.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/http.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/inspect.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/ipv6.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/itercompat.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/module_loading.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/regex_helper.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/safestring.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/text.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/timesince.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/timezone.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/utils/tree.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/validators.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/README.md +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/base.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/errors.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/exceptions.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/forms.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/objects.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/redirect.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/views/templates.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/plain/wsgi.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/.gitignore +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/app/.gitignore +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/app/settings.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/app/test/__init__.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/app/test/default_settings.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/app/urls.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/conftest.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_cli.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_csrf.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_http_hosts.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_logs.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_runtime.py +0 -0
- {plain-0.71.0 → plain-0.72.0}/tests/test_wsgi.py +0 -0
@@ -1,5 +1,17 @@
|
|
1
1
|
# plain changelog
|
2
2
|
|
3
|
+
## [0.72.0](https://github.com/dropseed/plain/releases/plain@0.72.0) (2025-10-02)
|
4
|
+
|
5
|
+
### What's changed
|
6
|
+
|
7
|
+
- Request attributes `user` and `session` are no longer set directly on the request object ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
|
8
|
+
- Test client now uses `plain.auth.requests.get_request_user()` to retrieve user for response object when available ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
|
9
|
+
- Removed `plain.auth.middleware.AuthenticationMiddleware` from default middleware configuration ([154ee10](https://github.com/dropseed/plain/commit/154ee10375))
|
10
|
+
|
11
|
+
### Upgrade instructions
|
12
|
+
|
13
|
+
- No changes required
|
14
|
+
|
3
15
|
## [0.71.0](https://github.com/dropseed/plain/releases/plain@0.71.0) (2025-09-30)
|
4
16
|
|
5
17
|
### What's changed
|
@@ -494,9 +494,13 @@ class Client:
|
|
494
494
|
response.request = request
|
495
495
|
response.json = partial(self._parse_json, response)
|
496
496
|
|
497
|
-
# If the request had a user
|
498
|
-
|
499
|
-
|
497
|
+
# If the request had a user, make it available on the response.
|
498
|
+
try:
|
499
|
+
from plain.auth.requests import get_request_user
|
500
|
+
|
501
|
+
response.user = get_request_user(response.wsgi_request)
|
502
|
+
except ImportError:
|
503
|
+
pass
|
500
504
|
|
501
505
|
# Attach the ResolverMatch instance to the response.
|
502
506
|
resolver = get_resolver()
|
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
|
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
|