1.9.3
🐛 Bug fixes
- Stopped dropping trailing slashes in
yarl.URL.joinpath()
-- by @gmacon. (#862, #866) - Started accepting string subclasses in
__truediv__()
operations (URL / segment
) -- by @mjpieters. (#871, #884) - Fixed the human representation of URLs with square brackets in usernames and passwords -- by @mjpieters. (#876, #882)
- Updated type hints to include
URL.missing_port()
,URL.__bytes__()
and theencoding
argument toyarl.URL.joinpath()
-- by @mjpieters. (#891)
📦 Packaging updates and notes for downstreams
-
Integrated Cython 3 to enable building yarl under Python 3.12 -- by @mjpieters. (#829, #881)
-
Added the changelog URL to the dist metadata -- by @scop. (#877)
-
Declared modern
setuptools.build_meta
as the :pep:517
build backend inpyproject.toml
explicitly -- by @webknjaz. (#886) -
Converted most of the packaging setup into a declarative
setup.cfg
config -- by @webknjaz. (#890) -
Replaced the packaging is replaced from an old-fashioned
setup.py
to an in-tree :pep:517
build backend -- by @webknjaz.Whenever the end-users or downstream packagers need to build
yarl
from source (a Git checkout or an sdist), they may pass aconfig_settings
flag--pure-python
. If this flag is not set, a C-extension will be built and included into the distribution.Here is how this can be done with
pip
:$ python -m pip install . --config-settings=--pure-python=
This will also work with
-e | --editable
.The same can be achieved via
pypa/build
:$ python -m build --config-setting=--pure-python=
Adding
-w | --wheel
can forcepypa/build
produce a wheel from source directly, as opposed to building ansdist
and then building from it. (#893) -
Declared Python 3.12 supported officially in the distribution package metadata -- by @edgarrmondragon. (#942)
🛠️ Contributor-facing changes
-
A regression test for no-host URLs was added per #821 and RFC 3986 -- by @kenballus. (#821, #822)
-
Started testing yarl against Python 3.12 in CI -- by @mjpieters. (#881)
-
All Python 3.12 jobs are now marked as required to pass in CI -- by @edgarrmondragon. (#942)
-
MyST is now integrated in Sphinx -- by @webknjaz.
This allows the contributors to author new documents in Markdown when they have difficulties with going straight RST. (#953)
💪 New Contributors
- @gmacon made their first contribution in #866
- @scop made their first contribution in #877
- @edgarrmondragon made their first contribution in #942
- @kenballus made their first contribution in #822
- @davetapley made their first contribution in #949
🪞 Full Diff: v1.9.2...v1.9.3