kennethreitz
0cbcaf9c4f
Code quality improvements and test fixes ( #592 )
...
## Summary
Comprehensive post-v3.0.0 modernization: new features, bug fixes,
dependency cleanup, docs, and test coverage.
**New features:**
- **HTTP method filtering** — `@api.route("/data", methods=["GET"])`
- **Lifespan context manager** — modern async startup/shutdown
- **`api.exception_handler()`** — custom error handling per exception
type
- **`api.graphql()`** — one-liner GraphQL setup
- **`resp.file()`** — serve files from disk with auto content-type
- **before_request short-circuit** — set status code to skip route
handler
- **`req.path_params`** / **`req.client`** / **`req.is_json`** — new
request properties
- **`uuid`** and **`path`** route convertors
- **PEP 561 `py.typed`** marker
**Bug fixes:**
- Fix multipart parser losing headers
- Fix `url_for()` with typed params (`{id:int}`)
- Fix `resp.body` encoding crash on bytes content
- Fix Python 3.9 type syntax (`from __future__ import annotations`)
- Fix broken session test and no-op file upload test
- Fix helloworld example 404 on root path
**Dependencies:**
- Flattened — `pip install responder` gets everything
- Core: just starlette + uvicorn (down from 10 deps)
**Docs & README:**
- All new features documented in tour
- Modernized README features list
- Deployment guide: Docker, cloud, uvicorn
- Removed Pipenv, extras, stale references throughout
**Tests & quality:**
- 117 tests (up from 92), 91% coverage, 0 warnings
- CaseInsensitiveDict, GraphQL edge cases, staticfiles tests
- Ruff clean, all `tmpdir` → `tmp_path`
🤖 Generated with [Claude Code](https://claude.com/claude-code )
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-22 07:44:11 -04:00
Andreas Motl
351ff8d95e
Documentation: Copy editing, this and that
2025-01-19 05:21:46 +01:00
Andreas Motl
3cfc7ec2b6
Chore: Remove support for EOL Python 3.6
2025-01-19 05:02:47 +01:00
Andreas Motl
0de22eeed2
SFA: Use application loader from pueblo.sfa
2025-01-19 05:02:47 +01:00
Andreas Motl
b0cc37861b
SFA: Unlock loading application from remote location, using fsspec
2025-01-19 05:02:47 +01:00
Andreas Motl
6f9c11645a
CLI: Load from file or module. Add software tests and documentation.
...
Also, refactor to `responder.ext.cli`.
2025-01-18 22:22:36 +01:00
Andreas Motl
83d0fcf1ae
Documentation: Update developer sandbox documentation
2024-10-31 09:51:29 +01:00
Taoufik
a698eaaab3
GraphQL: Re-add extension and dependencies (2024)
2024-10-31 06:36:13 +01:00
Andreas Motl
3aa21eed08
OpenAPI: Refactor module to responder.ext.openapi
...
It has been `responder.ext.schema` before.
2024-10-30 23:45:55 +01:00
Andreas Motl
2741c74b90
OpenAPI: Make extension optional
...
Install with: pip install 'responder[openapi]'
2024-10-30 23:45:55 +01:00
Andreas Motl
aba96525ad
Dependencies: Migrate from WhiteNoise to ServeStatic
2024-10-30 23:21:23 +01:00
Andreas Motl
e4cff76fa6
Documentation: Unlock writing in Markdown, using Sphinx/MyST
2024-10-30 21:23:12 +01:00
Andreas Motl
f11ad7136d
Documentation: Add Sphinx extensions "copybutton" and "opengraph"
2024-10-30 21:23:12 +01:00
Andreas Motl
98ca45003b
Documentation: Badges, linking, wording, inline comments. This and that.
...
A few of the adjustments here have been required to mitigate Sphinx
warnings, which would converge to errors on CI, thus failing the build.
A few other changes, both wording and syntax/formatting fixes, are
coming from regular copyediting and documentation maintenance.
2024-10-27 18:13:13 +01:00
Andreas Motl
ab76594297
CI: Run link checker and build documentation as GHA workflow
2024-10-27 18:13:13 +01:00
Andreas Motl
1fd9a682dd
Docs: Fix broken links
2024-10-24 01:17:54 +02:00
Andreas Motl
5d3e650901
Docs: Update dependencies, fixing the build on Python 3.11
2024-10-24 01:13:22 +02:00
taoufik07
a57570210a
Add prettier to pre-commit
2020-12-01 23:36:42 +01:00
Vincent Barbaresi
86361523e2
fix async templates rendering requiring enable_async in jinja2
...
When trying to test the render_async() feature I realized that it wasn't working
The template instance needs to be created with enable_async=True
2019-10-19 14:49:50 +02:00
taoufik
85c1c0036c
[WIP] Update docs
2019-08-21 22:50:58 +02:00
Mike Schneider
3a8113d8b0
Found more --pre flags
2019-07-16 07:43:55 -07:00
ted
70e6bc0466
add some links to the main page
...
Basically linked things I had to google/look up on my own. There are a million things that _could_ be linked, but using myself as a median Python coder, it seems about right. Removed italics because I can't figure out how to use them with a link.
2019-06-25 08:21:07 -07:00
mtcronin99
fb71abe534
Update tour.rst to add quotes around hostnames
...
The API call in the Trusted Hosts section needs quotes around the hostnames in the example.
2019-06-04 11:21:27 -04:00
Taoufik
cf5447d5bd
Typo schema docs
2019-04-28 15:59:15 +02:00
Taoufik
f21b296fba
Add docs for route params convertors
2019-04-27 20:10:31 +02:00
s-pace
4957793c80
feat: add search to every documentation pages
2019-04-22 22:23:07 +02:00
s-pace
ff7f4b502d
feat: add search to the main introduction page
2019-04-22 22:22:46 +02:00
kobayashi
ebed9fe3aa
fix typos
2019-03-17 19:05:14 -04:00
kobayashi
734b5e7303
add sample of uploading a file
2019-03-17 15:21:27 -04:00
Jeremiah
37318f1106
Update tour.rst
2019-03-10 14:53:44 +01:00
taoufik07
885d902b7d
Revert
2019-02-26 23:46:07 +01:00
taoufik07
b876f8484c
Update docs
2019-02-26 17:01:13 +01:00
T.Kameyama
d1f7fe02e4
fix typo
2019-02-24 00:10:47 +09:00
iancleary
3382723457
fixed flow between OpenAPI and Interactive Docs sections
2019-02-22 06:16:45 -07:00
Taoufik
2ad351197e
Merge pull request #304 from taoufik07/content_type
...
Add resp.html property and make resp.text a property
2019-02-22 10:12:46 +00:00
Taoufik
d4191030d9
Merge branch 'master' into multiple_cookies_and_directives
2019-02-22 10:33:53 +01:00
Taoufik
447630a051
Merge branch 'master' into content_type
2019-02-22 10:30:38 +01:00
icleary
0030993631
api OpenAPI params match /docs display order, updated tour docs and docs test
2019-02-21 18:35:19 -07:00
taoufik07
13ba2f72f5
Update docs
2019-02-22 02:00:12 +01:00
taoufik07
9f39917895
Update docs and README
2019-02-22 01:12:25 +01:00
kennethreitz
c045586997
Merge pull request #267 from valtyr/graphql-context
...
Add Request and Response to GraphQL context
2018-12-29 07:05:26 -05:00
kennethreitz
734ba64965
Merge pull request #264 from sangheestyle/master
...
fix typo
2018-12-29 07:04:53 -05:00
Taoufik
60b0c5f256
Update
2018-12-25 01:32:38 +00:00
Taoufik
c8627939de
Update
2018-12-25 01:18:44 +00:00
Taoufik
9144f0158a
Websocket docs
2018-12-25 01:15:54 +00:00
Valtýr Örn Kjartansson
d541aca80f
Mention the GraphQL context object in docs
2018-12-23 13:28:50 +00:00
Kim, Sanghee
e2493b489d
fix typo
2018-12-20 17:54:15 +02:00
kennethreitz
a81a348bce
Merge pull request #245 from cdfuller/add-monospace-default
...
Add monospace fallback for preformatted text in docs
2018-12-12 03:57:55 -05:00
Tom Faulkner
a5532614a2
Grammatical fix
...
Grammar: `into to` to `into`
2018-11-26 19:30:20 -06:00
Cody Fuller
5599ec2809
Add monospace fallback for preformatted text
2018-11-20 09:37:30 -06:00