Bugfixing is the most important thing in the 1.2.x-series. Again, touching the authentication code (this time the bearer authentication support introduced in 1.0) caused breakages for some people, despite lots of functional tests.
Full Changelog: https://github.com/python-caldav/caldav/compare/v1.1.3...v1.2.1
Pull request by @danigm in python-caldav#228
Python2 has not been tested for quite some time, hence it has probably been broken since one of the 0.x-releases. I decided to officially drop support for python2 in version 1.0 - but since the release was overdue I procrastinated merging this pull request. To avoid breaking changes in v1.x, I threw in an assert instead.
Pull request by @JasonSanDiego in python-caldav#288 (with style fixup in python-caldav#291 ) allows headers
parameter to the DAVClient
constructor.
Rationale given in python-caldav#285 :
I'm using Nextcloud and want to retrieve calendar (read only) subscriptions along with the normal read/write calendars. Nextcloud supports two ways of doing this. The easier of the two is to pass the custom HTTP header: X-NC-CalDAV-Webcal-Caching: On
A bug was introduced in version 1.0, via python-caldav#260 - the code would only work if there was a space in the WWW-Authenticate
header. This works for most servers as they will challenge for credentials using a header like WWW-Authenticate: Basic realm="My CalDAV server"
- however, WWW-Authenticate: Basic
is fully allowed by RFC2617.
Thanks to @jdrozdnovak for debugging and reporting.
python-caldav#289 - python-caldav#290
Thanks to @bvanjeelharia for reporting and investigating (actually the traceback was reported already by @robinmayol in python-caldav#270 but we failed to connect the dots).