Repository navigation
v0.3.1
A same-day follow-up to 0.3.0, fixing three defects that release introduced or
exposed. No documented contract changes: the resolve() fix restores one.
Added
resolve(..., strict=True)-- raise the last backend's
ResolutionErrorwhen no backend could ask, instead of returning[].
Off by default. It distinguishes a resolver outage from a name that does
not exist; it does not turn an empty answer into an error, so a name
that genuinely does not resolve still returns[]at any strictness.
Fixed
resolve()returns[]on a resolver outage again, restoring the
pre-0.3.0 contract. 0.3.0 made the chain re-raise the last backend's
ResolutionErrorwhen every applicable backend failed to attempt the
query, which turnedif not resolve(host):into an uncaught exception
wherever DNS was unreachable. The documented contract -- "always alist,
empty on a lookup failure, neverNone" -- stands, and callers that need
the distinction opt in withstrict=True.bind_error_hintno longer reports a WindowsWSAEACCESas a privilege
problem. Windows has no privileged ports -- any user may bind port 80 --
andWSAEACCES(WinError 10013) on a bind means the address is held
exclusively by another socket, or refused by a firewall or an excluded port
range. Python maps it toPermissionError/EACCES, so the POSIX branch
matched first and produced "permission denied binding port 64514" for an
unprivileged port, plus the "ports below 1024 need root/Administrator" rider
on a low port. The POSIXEACCESreading is unchanged, where that advice is
correct.- A release publishes its documentation again.
docs.ymlwas triggered by
release: published, which never fires: the release is created with
GITHUB_TOKEN, and GitHub does not start workflow runs from token-created
events. It now keys off the Release workflow completing successfully. The
0.3.0 site was published anyway, by the push-to-main trigger.
Full Changelog: v0.3.0...v0.3.1