Repository navigation
Conversation
Mixed activityActivity patterns show a mix of organic and automated signals. Evidence
Last 5 PRs: This is an automated analysis by AgentScan |
Documentation build overview
4 files changed± genindex/index.html± history/index.html± pkg/cheroot.server/index.html± pkg/cheroot.test.test_wsgi/index.html |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #854 +/- ##
==========================================
+ Coverage 78.20% 78.25% +0.04%
==========================================
Files 41 41
Lines 4791 4800 +9
Branches 548 549 +1
==========================================
+ Hits 3747 3756 +9
Misses 905 905
Partials 139 139 |
Author
|
AgentScan is right: I created a batch of PRs for waitress, but those are real bugs identified Claude, no AI slop. I did not intended to open the 6 altogehter, though. I closed them to reopen them one by one to not overwhelm maintainers. |
deronnax
added a commit
to deronnax/cheroot
that referenced
this pull request
Oct 11, 2026
Document the gateway_map regression fix for Towncrier.
deronnax
force-pushed
the
fix/gateway-map-indirect-subclasses
branch
from
October 11, 2026 20:02
f7ef940 to
56bc200
Compare
deronnax
force-pushed
the
fix/gateway-map-indirect-subclasses
branch
from
November 2, 2026 13:11
56bc200 to
a716b3c
Compare
deronnax
marked this pull request as ready for review
November 2, 2026 13:14
Gateway.gateway_map() built its version-to-class mapping from
cls.__subclasses__(), which only returns direct subclasses. Since
Gateway_u0 subclasses Gateway_10 rather than Gateway, it was silently
excluded from wsgi_gateways and Server.wsgi_version = ('u', 0) raised
KeyError even though Gateway_u0 is documented as supported.
* walk the Gateway subclass tree iteratively inside gateway_map()
* add a regression test for (1, 0) and ('u', 0) gateway discovery
* add Towncrier fragment 854.bugfix.rst
deronnax
force-pushed
the
fix/gateway-map-indirect-subclasses
branch
from
November 2, 2026 21:40
a716b3c to
bf537f4
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
What do these changes do?
While working on a PoC of Radicale with cheroot, this regression showed up.
Gateway.gateway_map()builds its version → class mapping fromcls.__subclasses__(), which only returns direct subclasses:Since
Gateway_u0subclassesGateway_10(notGatewaydirectly), it is silently excluded fromwsgi_gateways. As a result, settingServer.wsgi_version = ('u', 0)raisesKeyError: ('u', 0), even thoughGateway_u0/WSGIGateway_u0is documented as a supported gateway (see the docs).This used to work when
wsgi_gatewayswas a hardcoded dict (see 2014's fa84a5b), before the refactor togateway_map().The fix walks the subclass tree recursively instead of one level deep. A regression test asserts that both
(1, 0)and('u', 0)gateways are discoverable viaGateway.gateway_map().Are there changes in behavior for the user?
Yes. Selecting WSGI version
('u', 0)works again instead of raisingKeyError.Is it a substantial burden for the maintainers to support this?
No. It is a small, localized change to
gateway_map()with a focused regression test.Related issue number
Discovered while exploring Radicale integration; no open cheroot issue yet.
Checklist
and description in grammatically correct, complete sentences
docs/) and inline docstrings reflect the changes(see good commit messages)
(can be done once the PR number is known; alternatively, you can
use a related issue number if one exists)
code of conduct