Repository navigation
Small fixes: caldav.testing servers, async factories - #800
Merged
Merged
Conversation
RadicaleServer passed no server section to Radicale, so it always listened on 5232. stop() left the server end of the socketpair open, and XandikosServer.stop() never closed its event loop; both raised warnings under -W error. Fixes #797 Prompt: ... start looking into github issues, prioritize issues that are tagged in my calendar, issues recently posted by third parties, but most importantly: issues relevant for [the calendaring library, https://github.com/pycalendar/calendaring] Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
aio.get_calendars() was a drifted copy of the sync one and resolved a single section only. Client resolution is now one shared helper, run in a thread from async code, as aio.get_davclient() now is too, so the config file and RFC 6764 discovery no longer block the event loop. _auto_url moved to base_client, so an httpx-only install can create a client. Like the sync one, aio.get_calendars() no longer probes with OPTIONS, and a failed principal lookup obeys raise_errors. Fixes #793 Fixes #794 Prompt: Let's bundle small things in a PR, #797, #794, #793 are all small things I think? If you agree, go for it, create a PR with those, and we'll take #598 and #786 in the next session Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
tobixen
force-pushed
the
small-fixes-797-793-794
branch
from
October 19, 2026 21:02
51df4d9 to
6cfc275
Compare
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.
Disclaimer: Both the code and the text below the line are AI-generated, by Claude Opus 5.5 (Claude Code), from the prompts:
This PR bundles three small fixes, all found while building the calendaring library on top of caldav:
caldav.testing.RadicaleServernow listens on its configured port.stop()closes the server end of the shutdown socketpair for Radicale, and the event loop for Xandikos, so noResourceWarningis left behind.aio.get_calendars()ignores config meta-sections (config_section="*", globs,contains) and per-section calendar filters #793:aio.get_calendars()now shares its client resolution with the syncget_calendars(), so meta-sections,*, glob patterns and per-section calendar filters work in async mode too. It also behaves like the sync version on errors: there is no OPTIONS probe, andraise_errorsis respected.aio.get_davclient()andaio.get_calendars()build their clients in a worker thread, so reading the config file and running RFC 6764 discovery no longer block the event loop._auto_urlmoved tobase_client, so an install with only httpx can create a client. RFC 6764 discovery still needs niquests or requests, and without them it is skipped with a warning.Each fix came with tests that were written first and seen failing. Changelog fragments are in
changes/.