Skip to content

Latest commit

 

History

History
2357 lines (1365 loc) · 57.7 KB

File metadata and controls

2357 lines (1365 loc) · 57.7 KB

Changelog

1.23.0

(2025-12-16)

Features

  • Added support for pydantic, the :class:`~yarl.URL` could be used as a field type in pydantic models seamlessly.

    Related issues and pull requests on GitHub: :issue:`1607`.

Packaging updates and notes for downstreams

  • The CI has been set up to notify Codecov about upload completion -- by :user:`webknjaz`.

    With this, Codecov no longer needs to guess whether it received all the intended coverage reports or not.

    Related issues and pull requests on GitHub: :issue:`1577`.

  • The in-tree build backend allows the end-users appending CFLAGS and LDFLAGS by setting respective environment variables externally.

    It additionally sets up default compiler flags to perform building with maximum optimization in release mode. This makes the resulting artifacts shipped to PyPI smaller.

    When line tracing is requested, the compiler and linker flags are configured to include as much information as possible for debugging and coverage tracking. The development builds are therefore smaller.

    -- by :user:`webknjaz`

    Related issues and pull requests on GitHub: :issue:`1586`.

  • The PEP 517 build backend now supports a new config setting for controlling whether to build the project in-tree or in a temporary directory. It only affects wheels and is set up to build in a temporary directory by default. It does not affect editable wheel builds — they will keep being built in-tree regardless.

    -- by :user:`webknjaz`

    Here's an example of using this setting:

    $ python -m build \
        --config-setting=build-inplace=true

    Related issues and pull requests on GitHub: :issue:`1590`.

  • Starting this version, when building the wheels is happening in an automatically created temporary directory, the build backend makes an effort to normalize the respective file system path to a deterministic source checkout directory.

    -- by :user:`webknjaz`

    It does so by injecting the -ffile-prefix-map compiler option into the CFLAGS environment variable as suggested by known reproducible build practices.

    The effect is that downstreams will get more reproducible build results.

    Related issues and pull requests on GitHub: :issue:`1591`.

  • Dropped Python 3.9 support; Python 3.10 is the minimal supported Python version -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1609`.

Contributor-facing changes

  • The deprecated license classifier was removed from :file:`setup.cfg` -- by :user:`yegorich`.

    Related issues and pull requests on GitHub: :issue:`1550`.

  • The in-tree build backend allows the end-users appending CFLAGS and LDFLAGS by setting respective environment variables externally.

    It additionally sets up default compiler flags to perform building with maximum optimization in release mode. This makes the resulting artifacts shipped to PyPI smaller.

    When line tracing is requested, the compiler and linker flags are configured to include as much information as possible for debugging and coverage tracking. The development builds are therefore smaller.

    -- by :user:`webknjaz`

    Related issues and pull requests on GitHub: :issue:`1586`.

  • The CI has been updated to consistently benchmark optimized release builds -- by :user:`webknjaz`.

    When the release workflow is triggered, the pre-built wheels ready to hit PyPI are being tested. Otherwise, the job builds the project from source, while the rest of the workflow uses debug builds for line tracing and coverage collection.

    Related issues and pull requests on GitHub: :issue:`1587`.


1.22.0

(2025-10-05)

Features


1.21.0

(2025-10-05)

Contributor-facing changes


1.20.1

(2025-06-09)

Bug fixes

  • Started raising a :exc:`ValueError` exception raised for corrupted IPv6 URL values.

    These fixes the issue where exception :exc:`IndexError` was leaking from the internal code because of not being handled and transformed into a user-facing error. The problem was happening under the following conditions: empty IPv6 URL, brackets in reverse order.

    -- by :user:`MaelPic`.

    Related issues and pull requests on GitHub: :issue:`1512`.

Packaging updates and notes for downstreams

  • Updated to use Cython 3.1 universally across the build path -- by :user:`lysnikolaou`.

    Related issues and pull requests on GitHub: :issue:`1514`.

  • Made Cython line tracing opt-in via the with-cython-tracing build config setting -- by :user:`bdraco`.

    Previously, line tracing was enabled by default in :file:`pyproject.toml`, which caused build issues for some users and made wheels nearly twice as slow. Now line tracing is only enabled when explicitly requested via pip install . --config-setting=with-cython-tracing=true or by setting the YARL_CYTHON_TRACING environment variable.

    Related issues and pull requests on GitHub: :issue:`1521`.


1.20.0

(2025-04-16)

Features

Packaging updates and notes for downstreams


1.19.0

(2025-04-05)

Bug fixes

Features

Contributor-facing changes

  • GitHub Actions CI/CD is now configured to manage caching pip-ecosystem dependencies using re-actors/cache-python-deps -- an action by :user:`webknjaz` that takes into account ABI stability and the exact version of Python runtime.

    Related issues and pull requests on GitHub: :issue:`1471`.

  • Increased minimum propcache version to 0.2.1 to fix failing tests -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1479`.

  • Added all hidden folders to pytest's norecursedirs to prevent it from trying to collect tests there -- by :user:`lysnikolaou`.

    Related issues and pull requests on GitHub: :issue:`1480`.

Miscellaneous internal changes


1.18.3

(2024-12-01)

Bug fixes

Miscellaneous internal changes

  • Improved performances of multiple path properties on cache miss -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1443`.


1.18.2

(2024-11-29)

No significant changes.


1.18.1

(2024-11-29)

Miscellaneous internal changes


1.18.0

(2024-11-21)

Features

Contributor-facing changes

Miscellaneous internal changes


1.17.2

(2024-11-17)

Bug fixes

Features

Packaging updates and notes for downstreams

Miscellaneous internal changes


1.17.1

(2024-10-30)

Miscellaneous internal changes


1.17.0

(2024-10-28)

Features


1.16.0

(2024-10-21)

Bug fixes

Removals and backward incompatible breaking changes

  • Migrated to using a single cache for encoding hosts -- by :user:`bdraco`.

    Passing ip_address_size and host_validate_size to :py:meth:`~yarl.cache_configure` is deprecated in favor of the new encode_host_size parameter and will be removed in a future release. For backwards compatibility, the old parameters affect the encode_host cache size.

    Related issues and pull requests on GitHub: :issue:`1348`, :issue:`1357`, :issue:`1363`.

Miscellaneous internal changes


1.15.5

(2024-10-18)

Miscellaneous internal changes


1.15.4

(2024-10-16)

Miscellaneous internal changes


1.15.3

(2024-10-15)

Bug fixes

Removals and backward incompatible breaking changes

  • Removed support for Python 3.8 as it has reached end of life -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1203`.

Miscellaneous internal changes


1.15.2

(2024-10-13)

Miscellaneous internal changes


1.15.1

(2024-10-12)

Miscellaneous internal changes


1.15.0

(2024-10-11)

Bug fixes

Features

Miscellaneous internal changes


1.14.0

(2024-10-08)

Packaging updates and notes for downstreams

Contributor-facing changes

Miscellaneous internal changes


1.13.1

(2024-09-27)

Miscellaneous internal changes


1.13.0

(2024-09-26)

Bug fixes

Features


1.12.1

(2024-09-23)

No significant changes.


1.12.0

(2024-09-23)

Features

Removals and backward incompatible breaking changes

Miscellaneous internal changes


1.11.1

(2024-09-09)

Bug fixes

  • Allowed scheme replacement for relative URLs if the scheme does not require a host -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`280`, :issue:`1138`.

  • Allowed empty host for URL schemes other than the special schemes listed in the WHATWG URL spec -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1136`.

Features

  • Loosened restriction on integers as query string values to allow classes that implement __int__ -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1139`.

Miscellaneous internal changes


1.11.0

(2024-09-08)

Features

Miscellaneous internal changes


1.10.0

(2024-09-06)

Bug fixes

Features

Contributor-facing changes

Miscellaneous internal changes

  • Significantly improved performance of parsing the network location -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1112`.

  • Added internal types to the cache to prevent future refactoring errors -- by :user:`bdraco`.

    Related issues and pull requests on GitHub: :issue:`1117`.


1.9.11

(2024-09-04)

Bug fixes

Miscellaneous internal changes

  • Improved performance of encoding hosts -- by :user:`bdraco`.

    Previously, the library would unconditionally try to parse a host as an IP Address. The library now avoids trying to parse a host as an IP Address if the string is not in one of the formats described in RFC 3986.

    Related issues and pull requests on GitHub: :issue:`1104`.


1.9.10

(2024-09-04)

Bug fixes

Features


1.9.9

(2024-09-04)

Bug fixes


1.9.8

(2024-09-03)

Features

Contributor-facing changes

Miscellaneous internal changes


1.9.7

(2024-09-01)

Removals and backward incompatible breaking changes

  • Removed support RFC 3986 port normalization when the scheme is not one of http, https, wss, or ws -- by :user:`bdraco`.

    Support for port normalization was recently added in :issue:`1033` and contained code that would do blocking I/O if the scheme was not one of the four listed above. The code has been removed because this library is intended to be safe for usage with :mod:`asyncio`.

    Related issues and pull requests on GitHub: :issue:`1076`.

Miscellaneous internal changes

  • Improved performance of property caching -- by :user:`bdraco`.

    The reify implementation from aiohttp was adapted to replace the internal cached_property implementation.

    Related issues and pull requests on GitHub: :issue:`1070`.


1.9.6

(2024-08-30)

Bug fixes

  • Reverted RFC 3986 compatible :meth:`URL.join() <yarl.URL.join>` honoring empty segments which was introduced in :issue:`1039`.

    This change introduced a regression handling query string parameters with joined URLs. The change was reverted to maintain compatibility with the previous behavior.

    Related issues and pull requests on GitHub: :issue:`1067`.


1.9.5

(2024-08-30)

Bug fixes

Removals and backward incompatible breaking changes

Improved documentation

Packaging updates and notes for downstreams

  • A flaw in the logic for copying the project directory into a temporary folder that led to infinite recursion when :envvar:`TMPDIR` was set to a project subdirectory path. This was happening in Fedora and its downstream due to the use of pyproject-rpm-macros. It was only reproducible with pip wheel and was not affecting the pyproject-build users.

    -- by :user:`hroncok` and :user:`webknjaz`

    Related issues and pull requests on GitHub: :issue:`992`, :issue:`1014`.

  • Support Python 3.13 and publish non-free-threaded wheels

    Related issues and pull requests on GitHub: :issue:`1054`.

Contributor-facing changes

  • The CI/CD setup has been updated to test arm64 wheels under macOS 14, except for Python 3.7 that is unsupported in that environment -- by :user:`webknjaz`.

    Related issues and pull requests on GitHub: :issue:`1015`.

  • Removed unused type ignores and casts -- by :user:`hauntsaninja`.

    Related issues and pull requests on GitHub: :issue:`1031`.

Miscellaneous internal changes

  • port, scheme, and raw_host are now cached_property -- by :user:`bdraco`.

    aiohttp accesses these properties quite often, which cause :mod:`urllib` to build the _hostinfo property every time. port, scheme, and raw_host are now cached properties, which will improve performance.

    Related issues and pull requests on GitHub: :issue:`1044`, :issue:`1058`.


1.9.4 (2023-12-06)

Bug fixes

Packaging updates and notes for downstreams

  • The leading -- has been dropped from the PEP 517 in-tree build backend config setting names. --pure-python is now just pure-python -- by :user:`webknjaz`.

    The usage now looks as follows:

    $ python -m build \
        --config-setting=pure-python=true \
        --config-setting=with-cython-tracing=true

    (:issue:`963`)

Contributor-facing changes

  • A step-by-step :doc:`Release Guide <contributing/release_guide>` guide has been added, describing how to release yarl -- by :user:`webknjaz`.

    This is primarily targeting maintainers. (:issue:`960`)

  • Coverage collection has been implemented for the Cython modules -- by :user:`webknjaz`.

    It will also be reported to Codecov from any non-release CI jobs.

    To measure coverage in a development environment, yarl can be installed in editable mode:

    $ python -Im pip install -e .

    Editable install produces C-files required for the Cython coverage plugin to map the measurements back to the PYX-files.

    :issue:`961`

  • It is now possible to request line tracing in Cython builds using the with-cython-tracing PEP 517 config setting -- :user:`webknjaz`.

    This can be used in CI and development environment to measure coverage on Cython modules, but is not normally useful to the end-users or downstream packagers.

    Here's a usage example:

    $ python -Im pip install . --config-settings=with-cython-tracing=true

    For editable installs, this setting is on by default. Otherwise, it's off unless requested explicitly.

    The following produces C-files required for the Cython coverage plugin to map the measurements back to the PYX-files:

    $ python -Im pip install -e .

    Alternatively, the YARL_CYTHON_TRACING=1 environment variable can be set to do the same as the PEP 517 config setting.

    :issue:`962`

1.9.3 (2023-11-20)

Bug fixes

Packaging updates and notes for downstreams

  • Integrated Cython 3 to enable building yarl under Python 3.12 -- by :user:`mjpieters`. (:issue:`829`, :issue:`881`)

  • Declared modern setuptools.build_meta as the PEP 517 build backend in :file:`pyproject.toml` explicitly -- by :user:`webknjaz`. (:issue:`886`)

  • Converted most of the packaging setup into a declarative :file:`setup.cfg` config -- by :user:`webknjaz`. (:issue:`890`)

  • The packaging is replaced from an old-fashioned :file:`setup.py` to an in-tree PEP 517 build backend -- by :user:`webknjaz`.

    Whenever the end-users or downstream packagers need to build yarl from source (a Git checkout or an sdist), they may pass a config_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=false

    This will also work with -e | --editable.

    The same can be achieved via pypa/build:

    $ python -m build --config-setting=--pure-python=false

    Adding -w | --wheel can force pypa/build produce a wheel from source directly, as opposed to building an sdist and then building from it. (:issue:`893`)

    Attention!

    v1.9.3 was the only version using the --pure-python setting name. Later versions dropped the -- prefix, making it just pure-python.

  • Declared Python 3.12 supported officially in the distribution package metadata -- by :user:`edgarrmondragon`. (:issue:`942`)

Contributor-facing changes

1.9.2 (2023-04-25)

Bugfixes

1.9.1 (2023-04-21)

Bugfixes

  • Marked tests that fail on older Python patch releases (< 3.7.10, < 3.8.8 and < 3.9.2) as expected to fail due to missing a security fix for CVE-2021-23336. (#850)

1.9.0 (2023-04-19)

This release was never published to PyPI, due to issues with the build process.

Features

Bugfixes

  • Path normalization for absolute URLs no longer raises a ValueError exception when .. segments would otherwise go beyond the URL path root. (#536)
  • Fixed an issue with update_query() not getting rid of the query when argument is None. (#792)
  • Added some input restrictions on with_port() function to prevent invalid boolean inputs or out of valid port inputs; handled incorrect 0 port representation. (#793)
  • Made :py:meth:`~yarl.URL.build` raise a :py:exc:`TypeError` if the host argument is :py:data:`None` — by :user:`paulpapacz`. (#808)
  • Fixed an issue with update_query() getting rid of the query when the argument is empty but not None. (#845)

Misc

1.8.2 (2022-12-03)

This is the first release that started shipping wheels for Python 3.11.

1.8.1 (2022-08-01)

Misc

1.8.0 (2022-08-01)

Features

  • Added URL.raw_suffix, URL.suffix, URL.raw_suffixes, URL.suffixes, URL.with_suffix. (#613)

Improved Documentation

Deprecations and Removals

  • Dropped Python 3.6 support. (#672)

Misc

1.7.2 (2021-11-01)

Bugfixes

  • Changed call in with_port() to stop reencoding parts of the URL that were already encoded. (#623)

1.7.1 (2021-10-07)

Bugfixes

  • Fix 1.7.0 build error

1.7.0 (2021-10-06)

Features

  • Add __bytes__() magic method so that bytes(url) will work and use optimal ASCII encoding. (#582)
  • Started shipping platform-specific arm64 wheels for Apple Silicon. (#622)
  • Started shipping platform-specific wheels with the musl tag targeting typical Alpine Linux runtimes. (#622)
  • Added support for Python 3.10. (#622)

1.6.3 (2020-11-14)

Bugfixes

  • No longer loose characters when decoding incorrect percent-sequences (like %e2%82%f8). All non-decodable percent-sequences are now preserved. #517
  • Provide x86 Windows wheels. #535

1.6.2 (2020-10-12)

Bugfixes

  • Provide generated .c files in TarBall distribution. #530

1.6.1 (2020-10-12)

Features

  • Provide wheels for aarch64, i686, ppc64le, s390x architectures on Linux as well as x86_64. #507
  • Provide wheels for Python 3.9. #526

Bugfixes

  • human_repr() now always produces valid representation equivalent to the original URL (if the original URL is valid). #511
  • Fixed requoting a single percent followed by a percent-encoded character in the Cython implementation. #514
  • Fix ValueError when decoding % which is not followed by two hexadecimal digits. #516
  • Fix decoding % followed by a space and hexadecimal digit. #520
  • Fix annotation of with_query()/update_query() methods for key=[val1, val2] case. #528

Removal

  • Drop Python 3.5 support; Python 3.6 is the minimal supported Python version.

1.6.0 (2020-09-23)

Features

  • Allow for int and float subclasses in query, while still denying bool. #492

Bugfixes

  • Do not requote arguments in URL.build(), with_xxx() and in / operator. #502
  • Keep IPv6 brackets in origin(). #504

1.5.1 (2020-08-01)

Bugfixes

  • Fix including relocated internal yarl._quoting_c C-extension into published PyPI dists. #485

Misc


1.5.0 (2020-07-26)

Features

  • Convert host to lowercase on URL building. #386

  • Allow using mod operator (%) for updating query string (an alias for update_query() method). #435

  • Allow use of sequences such as list and tuple in the values of a mapping such as dict to represent that a key has many values:

    url = URL("http://example.com")
    assert url.with_query({"a": [1, 2]}) == URL("http://example.com/?a=1&a=2")
    

    #443

  • Support URL.build() with scheme and path (creates a relative URL). #464

  • Cache slow IDNA encode/decode calls. #476

  • Add @final / Final type hints #477

  • Support URL authority/raw_authority properties and authority argument of URL.build() method. #478

  • Hide the library implementation details, make the exposed public list very clean. #483

Bugfixes

  • Fix tests with newer Python (3.7.6, 3.8.1 and 3.9.0+). #409
  • Fix a bug where query component, passed in a form of mapping or sequence, is unquoted in unexpected way. #426
  • Hide Query and QueryVariable type aliases in __init__.pyi, now they are prefixed with underscore. #431
  • Keep IPv6 brackets after updating port/user/password. #451

1.4.2 (2019-12-05)

Features

  • Workaround for missing str.isascii() in Python 3.6 #389

1.4.1 (2019-11-29)

  • Fix regression, make the library work on Python 3.5 and 3.6 again.

1.4.0 (2019-11-29)

  • Distinguish an empty password in URL from a password not provided at all (#262)
  • Fixed annotations for optional parameters of URL.build (#309)
  • Use None as default value of user parameter of URL.build (#309)
  • Enforce building C Accelerated modules when installing from source tarball, use YARL_NO_EXTENSIONS environment variable for falling back to (slower) Pure Python implementation (#329)
  • Drop Python 3.5 support
  • Fix quoting of plus in path by pure python version (#339)
  • Don't create a new URL if fragment is unchanged (#292)
  • Included in error message the path that produces starting slash forbidden error (#376)
  • Skip slow IDNA encoding for ASCII-only strings (#387)

1.3.0 (2018-12-11)

  • Fix annotations for query parameter (#207)
  • An incoming query sequence can have int variables (the same as for Mapping type) (#208)
  • Add URL.explicit_port property (#218)
  • Give a friendlier error when port can't be converted to int (#168)
  • bool(URL()) now returns False (#272)

1.2.6 (2018-06-14)

  • Drop Python 3.4 trove classifier (#205)

1.2.5 (2018-05-23)

  • Fix annotations for build (#199)

1.2.4 (2018-05-08)

  • Fix annotations for cached_property (#195)

1.2.3 (2018-05-03)

  • Accept str subclasses in URL constructor (#190)

1.2.2 (2018-05-01)

  • Fix build

1.2.1 (2018-04-30)

  • Pin minimal required Python to 3.5.3 (#189)

1.2.0 (2018-04-30)

  • Forbid inheritance, replace __init__ with __new__ (#171)
  • Support PEP-561 (provide type hinting marker) (#182)

1.1.1 (2018-02-17)

  • Fix performance regression: don't encode empty netloc (#170)

1.1.0 (2018-01-21)

  • Make pure Python quoter consistent with Cython version (#162)

1.0.0 (2018-01-15)

  • Use fast path if quoted string does not need requoting (#154)
  • Speed up quoting/unquoting by _Quoter and _Unquoter classes (#155)
  • Drop yarl.quote and yarl.unquote public functions (#155)
  • Add custom string writer, reuse static buffer if available (#157) Code is 50-80 times faster than Pure Python version (was 4-5 times faster)
  • Don't recode IP zone (#144)
  • Support encoded=True in yarl.URL.build() (#158)
  • Fix updating query with multiple keys (#160)

0.18.0 (2018-01-10)

  • Fallback to IDNA 2003 if domain name is not IDNA 2008 compatible (#152)

0.17.0 (2017-12-30)

  • Use IDNA 2008 for domain name processing (#149)

0.16.0 (2017-12-07)

  • Fix raising TypeError by url.query_string() after url.with_query({}) (empty mapping) (#141)

0.15.0 (2017-11-23)

  • Add raw_path_qs attribute (#137)

0.14.2 (2017-11-14)

  • Restore strict parameter as no-op in quote / unquote

0.14.1 (2017-11-13)

  • Restore strict parameter as no-op for sake of compatibility with aiohttp 2.2

0.14.0 (2017-11-11)

  • Drop strict mode (#123)
  • Fix "ValueError: Unallowed PCT %" when there's a "%" in the URL (#124)

0.13.0 (2017-10-01)

  • Document encoded parameter (#102)
  • Support relative URLs like '?key=value' (#100)
  • Unsafe encoding for QS fixed. Encode ; character in value parameter (#104)
  • Process passwords without user names (#95)

0.12.0 (2017-06-26)

  • Properly support paths without leading slash in URL.with_path() (#90)
  • Enable type annotation checks

0.11.0 (2017-06-26)

  • Normalize path (#86)
  • Clear query and fragment parts in .with_path() (#85)

0.10.3 (2017-06-13)

  • Prevent double URL arguments unquoting (#83)

0.10.2 (2017-05-05)

  • Unexpected hash behavior (#75)

0.10.1 (2017-05-03)

  • Unexpected compare behavior (#73)
  • Do not quote or unquote + if not a query string. (#74)

0.10.0 (2017-03-14)

  • Added URL.build class method (#58)
  • Added path_qs attribute (#42)

0.9.8 (2017-02-16)

  • Do not quote : in path

0.9.7 (2017-02-16)

  • Load from pickle without _cache (#56)
  • Percent-encoded pluses in path variables become spaces (#59)

0.9.6 (2017-02-15)

  • Revert backward incompatible change (BaseURL)

0.9.5 (2017-02-14)

  • Fix BaseURL rich comparison support

0.9.4 (2017-02-14)

  • Use BaseURL

0.9.3 (2017-02-14)

  • Added BaseURL

0.9.2 (2017-02-08)

  • Remove debug print

0.9.1 (2017-02-07)

  • Do not lose tail chars (#45)

0.9.0 (2017-02-07)

  • Allow to quote % in non strict mode (#21)
  • Incorrect parsing of query parameters with %3B (;) inside (#34)
  • Fix core dumps (#41)
  • tmpbuf - compiling error (#43)
  • Added URL.update_path() method
  • Added URL.update_query() method (#47)

0.8.1 (2016-12-03)

  • Fix broken aiohttp: revert back quote / unquote.

0.8.0 (2016-12-03)

  • Support more verbose error messages in .with_query() (#24)
  • Don't percent-encode @ and : in path (#32)
  • Don't expose yarl.quote and yarl.unquote, these functions are part of private API

0.7.1 (2016-11-18)

  • Accept not only str but all classes inherited from str also (#25)

0.7.0 (2016-11-07)

  • Accept int as value for .with_query()

0.6.0 (2016-11-07)

  • Explicitly use UTF8 encoding in :file:`setup.py` (#20)
  • Properly unquote non-UTF8 strings (#19)

0.5.3 (2016-11-02)

0.5.2 (2016-11-02)

  • Inline _encode class method

0.5.1 (2016-11-02)

  • Make URL construction faster by removing extra classmethod calls

0.5.0 (2016-11-02)

  • Add Cython optimization for quoting/unquoting
  • Provide binary wheels

0.4.3 (2016-09-29)

  • Fix typing stubs

0.4.2 (2016-09-29)

  • Expose quote() and unquote() as public API

0.4.1 (2016-09-28)

  • Support empty values in query ('/path?arg')

0.4.0 (2016-09-27)

  • Introduce relative() (#16)

0.3.2 (2016-09-27)

  • Typo fixes #15

0.3.1 (2016-09-26)

  • Support sequence of pairs as with_query() parameter

0.3.0 (2016-09-26)

  • Introduce is_default_port()

0.2.1 (2016-09-26)

0.2.0 (2016-09-18)

  • Avoid doubling slashes when joining paths (#13)
  • Appending path starting from slash is forbidden (#12)

0.1.4 (2016-09-09)

  • Add kwargs support for with_query() (#10)

0.1.3 (2016-09-07)

  • Document with_query(), with_fragment() and origin()
  • Allow None for with_query() and with_fragment()

0.1.2 (2016-09-07)

  • Fix links, tune docs theme.

0.1.1 (2016-09-06)

  • Update README, old version used obsolete API

0.1.0 (2016-09-06)

  • The library was deeply refactored, bytes are gone away but all accepted strings are encoded if needed.

0.0.1 (2016-08-30)

  • The first release.