plain 0.73.0__tar.gz → 0.74.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.73.0 → plain-0.74.0}/PKG-INFO +1 -1
- {plain-0.73.0 → plain-0.74.0}/plain/CHANGELOG.md +11 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/request.py +15 -13
- {plain-0.73.0 → plain-0.74.0}/plain/internal/handlers/base.py +3 -0
- {plain-0.73.0 → plain-0.74.0}/pyproject.toml +1 -1
- {plain-0.73.0 → plain-0.74.0}/.gitignore +0 -0
- {plain-0.73.0 → plain-0.74.0}/LICENSE +0 -0
- {plain-0.73.0 → plain-0.74.0}/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/AGENTS.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/__main__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/compile.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/finders.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/fingerprints.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/urls.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/assets/views.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/chores/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/chores/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/chores/registry.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/docs.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/llmdocs.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/md.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/agent/prompt.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/build.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/changelog.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/chores.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/core.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/docs.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/formatting.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/install.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/output.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/preflight.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/print.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/registry.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/scaffold.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/settings.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/shell.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/startup.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/upgrade.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/urls.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/cli/utils.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/csrf/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/csrf/middleware.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/csrf/views.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/debug.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/exceptions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/boundfield.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/exceptions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/fields.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/forms/forms.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/cookie.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/multipartparser.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/request.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/http/response.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/base.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/locks.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/move.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/temp.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/files/utils.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/handlers/exception.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/middleware/headers.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/middleware/hosts.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/middleware/https.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/internal/middleware/slash.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/json.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/configure.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/debug.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/formatters.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/loggers.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/logs/utils.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/packages/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/packages/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/packages/config.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/packages/registry.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/paginator.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/checks.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/files.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/registry.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/results.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/security.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/preflight/urls.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/runtime/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/runtime/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/runtime/global_settings.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/runtime/user_settings.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/runtime/utils.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signals/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signals/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/signing.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/AGENTS.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/core.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/jinja/environments.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/jinja/filters.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/templates/jinja/globals.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/test/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/test/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/test/client.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/test/encoding.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/test/exceptions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/converters.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/exceptions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/patterns.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/resolvers.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/routers.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/urls/utils.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/cache.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/crypto.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/datastructures.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/dateparse.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/deconstruct.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/decorators.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/duration.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/encoding.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/functional.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/hashable.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/html.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/http.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/inspect.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/ipv6.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/itercompat.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/module_loading.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/regex_helper.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/safestring.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/text.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/timesince.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/timezone.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/utils/tree.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/validators.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/README.md +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/base.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/errors.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/exceptions.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/forms.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/objects.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/redirect.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/views/templates.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/plain/wsgi.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/.gitignore +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/app/.gitignore +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/app/settings.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/app/test/__init__.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/app/test/default_settings.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/app/urls.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/conftest.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_cli.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_csrf.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_http_hosts.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_logs.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_runtime.py +0 -0
- {plain-0.73.0 → plain-0.74.0}/tests/test_wsgi.py +0 -0
@@ -1,5 +1,16 @@
|
|
1
1
|
# plain changelog
|
2
2
|
|
3
|
+
## [0.74.0](https://github.com/dropseed/plain/releases/plain@0.74.0) (2025-10-08)
|
4
|
+
|
5
|
+
### What's changed
|
6
|
+
|
7
|
+
- The `plain agent request` command now displays request ID in the response output ([4a20cfa3fc](https://github.com/dropseed/plain/commit/4a20cfa3fc))
|
8
|
+
- Request headers are now included in OpenTelemetry tracing baggage for improved observability ([08a3376d06](https://github.com/dropseed/plain/commit/08a3376d06))
|
9
|
+
|
10
|
+
### Upgrade instructions
|
11
|
+
|
12
|
+
- No changes required
|
13
|
+
|
3
14
|
## [0.73.0](https://github.com/dropseed/plain/releases/plain@0.73.0) (2025-10-07)
|
4
15
|
|
5
16
|
### What's changed
|
@@ -72,9 +72,6 @@ def request(
|
|
72
72
|
try:
|
73
73
|
user = User.query.get(id=user_id)
|
74
74
|
client.force_login(user)
|
75
|
-
click.secho(
|
76
|
-
f"Authenticated as user {user_id}", fg="green", dim=True
|
77
|
-
)
|
78
75
|
except User.DoesNotExist:
|
79
76
|
click.secho(f"User {user_id} not found", fg="red", err=True)
|
80
77
|
return
|
@@ -134,23 +131,28 @@ def request(
|
|
134
131
|
return
|
135
132
|
|
136
133
|
# Display response information
|
137
|
-
click.secho(
|
138
|
-
f"HTTP {response.status_code}",
|
139
|
-
fg="green" if response.status_code < 400 else "red",
|
140
|
-
bold=True,
|
141
|
-
)
|
134
|
+
click.secho("Response:", fg="yellow", bold=True)
|
142
135
|
|
143
|
-
#
|
144
|
-
|
145
|
-
click.secho(f"Authenticated user: {response.user}", fg="blue", dim=True)
|
136
|
+
# Status code
|
137
|
+
click.echo(f" Status: {response.status_code}")
|
146
138
|
|
147
|
-
|
139
|
+
# Request ID
|
140
|
+
click.echo(f" Request ID: {response.wsgi_request.unique_id}")
|
141
|
+
|
142
|
+
# User
|
143
|
+
if response.user:
|
144
|
+
click.echo(f" Authenticated user: {response.user}")
|
145
|
+
|
146
|
+
# URL pattern
|
147
|
+
if response.resolver_match:
|
148
148
|
match = response.resolver_match
|
149
149
|
namespaced_url_name = getattr(match, "namespaced_url_name", None)
|
150
150
|
url_name_attr = getattr(match, "url_name", None)
|
151
151
|
url_name = namespaced_url_name or url_name_attr
|
152
152
|
if url_name:
|
153
|
-
click.
|
153
|
+
click.echo(f" URL pattern: {url_name}")
|
154
|
+
|
155
|
+
click.echo()
|
154
156
|
|
155
157
|
# Show headers
|
156
158
|
if response.headers:
|
@@ -94,6 +94,9 @@ class BaseHandler:
|
|
94
94
|
span_attributes[url_attributes.URL_QUERY] = query_string
|
95
95
|
|
96
96
|
span_context = baggage.set_baggage("http.request.cookies", request.cookies)
|
97
|
+
span_context = baggage.set_baggage(
|
98
|
+
"http.request.headers", request.headers, span_context
|
99
|
+
)
|
97
100
|
|
98
101
|
with tracer.start_as_current_span(
|
99
102
|
f"{request.method} {request.path_info}",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|