Bug 1850713: remove duplicated setting of early hint preloader id in `ScriptLoader...
[gecko.git] / third_party / python / yarl / CHANGES.rst
blob58ee2e4828aad6a17799ec38e8a162bad4d3e29d
1 =========
2 Changelog
3 =========
5 ..
6     You should *NOT* be adding new change log entries to this file, this
7     file is managed by towncrier. You *may* edit previous change logs to
8     fix problems like typo corrections or such.
9     To add a new change log entry, please see
10     https://pip.pypa.io/en/latest/development/#adding-a-news-entry
11     we named the news folder "changes".
13     WARNING: Don't drop the next directive!
15 .. towncrier release notes start
17 1.6.3 (2020-11-14)
18 ==================
20 Bugfixes
21 --------
23 - No longer loose characters when decoding incorrect percent-sequences (like ``%e2%82%f8``). All non-decodable percent-sequences are now preserved.
24   `#517 <https://github.com/aio-libs/yarl/issues/517>`_
25 - Provide x86 Windows wheels.
26   `#535 <https://github.com/aio-libs/yarl/issues/535>`_
29 ----
32 1.6.2 (2020-10-12)
33 ==================
36 Bugfixes
37 --------
39 - Provide generated ``.c`` files in TarBall distribution.
40   `#530  <https://github.com/aio-libs/multidict/issues/530>`_
42 1.6.1 (2020-10-12)
43 ==================
45 Features
46 --------
48 - Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` architectures on
49   Linux as well as ``x86_64``.
50   `#507  <https://github.com/aio-libs/yarl/issues/507>`_
51 - Provide wheels for Python 3.9.
52   `#526 <https://github.com/aio-libs/yarl/issues/526>`_
54 Bugfixes
55 --------
57 - ``human_repr()`` now always produces valid representation equivalent to the original URL (if the original URL is valid).
58   `#511 <https://github.com/aio-libs/yarl/issues/511>`_
59 - Fixed  requoting a single percent followed by a percent-encoded character in the Cython implementation.
60   `#514 <https://github.com/aio-libs/yarl/issues/514>`_
61 - Fix ValueError when decoding ``%`` which is not followed by two hexadecimal digits.
62   `#516 <https://github.com/aio-libs/yarl/issues/516>`_
63 - Fix decoding ``%`` followed by a space and hexadecimal digit.
64   `#520 <https://github.com/aio-libs/yarl/issues/520>`_
65 - Fix annotation of ``with_query()``/``update_query()`` methods for ``key=[val1, val2]`` case.
66   `#528 <https://github.com/aio-libs/yarl/issues/528>`_
68 Removal
69 -------
71 - Drop Python 3.5 support; Python 3.6 is the minimal supported Python version.
74 ----
77 1.6.0 (2020-09-23)
78 ==================
80 Features
81 --------
83 - Allow for int and float subclasses in query, while still denying bool.
84   `#492 <https://github.com/aio-libs/yarl/issues/492>`_
87 Bugfixes
88 --------
90 - Do not requote arguments in ``URL.build()``, ``with_xxx()`` and in ``/`` operator.
91   `#502 <https://github.com/aio-libs/yarl/issues/502>`_
92 - Keep IPv6 brackets in ``origin()``.
93   `#504 <https://github.com/aio-libs/yarl/issues/504>`_
96 ----
99 1.5.1 (2020-08-01)
100 ==================
102 Bugfixes
103 --------
105 - Fix including relocated internal ``yarl._quoting_c`` C-extension into published PyPI dists.
106   `#485 <https://github.com/aio-libs/yarl/issues/485>`_
109 Misc
110 ----
112 - `#484 <https://github.com/aio-libs/yarl/issues/484>`_
115 ----
118 1.5.0 (2020-07-26)
119 ==================
121 Features
122 --------
124 - Convert host to lowercase on URL building.
125   `#386 <https://github.com/aio-libs/yarl/issues/386>`_
126 - Allow using ``mod`` operator (`%`) for updating query string (an alias for ``update_query()`` method).
127   `#435 <https://github.com/aio-libs/yarl/issues/435>`_
128 - Allow use of sequences such as ``list`` and ``tuple`` in the values
129   of a mapping such as ``dict`` to represent that a key has many values::
131       url = URL("http://example.com")
132       assert url.with_query({"a": [1, 2]}) == URL("http://example.com/?a=1&a=2")
134   `#443 <https://github.com/aio-libs/yarl/issues/443>`_
135 - Support URL.build() with scheme and path (creates a relative URL).
136   `#464 <https://github.com/aio-libs/yarl/issues/464>`_
137 - Cache slow IDNA encode/decode calls.
138   `#476 <https://github.com/aio-libs/yarl/issues/476>`_
139 - Add ``@final`` / ``Final`` type hints
140   `#477 <https://github.com/aio-libs/yarl/issues/477>`_
141 - Support URL authority/raw_authority properties and authority argument of ``URL.build()`` method.
142   `#478 <https://github.com/aio-libs/yarl/issues/478>`_
143 - Hide the library implementation details, make the exposed public list very clean.
144   `#483 <https://github.com/aio-libs/yarl/issues/483>`_
147 Bugfixes
148 --------
150 - Fix tests with newer Python (3.7.6, 3.8.1 and 3.9.0+).
151   `#409 <https://github.com/aio-libs/yarl/issues/409>`_
152 - Fix a bug where query component, passed in a form of mapping or sequence, is unquoted in unexpected way.
153   `#426 <https://github.com/aio-libs/yarl/issues/426>`_
154 - Hide `Query` and `QueryVariable` type aliases in `__init__.pyi`, now they are prefixed with underscore.
155   `#431 <https://github.com/aio-libs/yarl/issues/431>`_
156 - Keep ipv6 brackets after updating port/user/password.
157   `#451 <https://github.com/aio-libs/yarl/issues/451>`_
160 ----
163 1.4.2 (2019-12-05)
164 ==================
166 Features
167 --------
169 - Workaround for missing `str.isascii()` in Python 3.6
170   `#389 <https://github.com/aio-libs/yarl/issues/389>`_
173 ----
176 1.4.1 (2019-11-29)
177 ==================
179 * Fix regression, make the library work on Python 3.5 and 3.6 again.
181 1.4.0 (2019-11-29)
182 ==================
184 * Distinguish an empty password in URL from a password not provided at all (#262)
186 * Fixed annotations for optional parameters of ``URL.build`` (#309)
188 * Use None as default value of ``user`` parameter of ``URL.build`` (#309)
190 * Enforce building C Accelerated modules when installing from source tarball, use
191   ``YARL_NO_EXTENSIONS`` environment variable for falling back to (slower) Pure Python
192   implementation (#329)
194 * Drop Python 3.5 support
196 * Fix quoting of plus in path by pure python version (#339)
198 * Don't create a new URL if fragment is unchanged (#292)
200 * Included in error msg the path that produces starting slash forbidden error (#376)
202 * Skip slow IDNA encoding for ASCII-only strings (#387)
205 1.3.0 (2018-12-11)
206 ==================
208 * Fix annotations for ``query`` parameter (#207)
210 * An incoming query sequence can have int variables (the same as for
211   Mapping type) (#208)
213 * Add ``URL.explicit_port`` property (#218)
215 * Give a friendlier error when port cant be converted to int (#168)
217 * ``bool(URL())`` now returns ``False`` (#272)
219 1.2.6 (2018-06-14)
220 ==================
222 * Drop Python 3.4 trove classifier (#205)
224 1.2.5 (2018-05-23)
225 ==================
227 * Fix annotations for ``build`` (#199)
229 1.2.4 (2018-05-08)
230 ==================
232 * Fix annotations for ``cached_property`` (#195)
234 1.2.3 (2018-05-03)
235 ==================
237 * Accept ``str`` subclasses in ``URL`` constructor (#190)
239 1.2.2 (2018-05-01)
240 ==================
242 * Fix build
244 1.2.1 (2018-04-30)
245 ==================
247 * Pin minimal required Python to 3.5.3 (#189)
249 1.2.0 (2018-04-30)
250 ==================
252 * Forbid inheritance, replace ``__init__`` with ``__new__`` (#171)
254 * Support PEP-561 (provide type hinting marker) (#182)
256 1.1.1 (2018-02-17)
257 ==================
259 * Fix performance regression: don't encode enmpty netloc (#170)
261 1.1.0 (2018-01-21)
262 ==================
264 * Make pure Python quoter consistent with Cython version (#162)
266 1.0.0 (2018-01-15)
267 ==================
269 * Use fast path if quoted string does not need requoting (#154)
271 * Speed up quoting/unquoting by ``_Quoter`` and ``_Unquoter`` classes (#155)
273 * Drop ``yarl.quote`` and ``yarl.unquote`` public functions (#155)
275 * Add custom string writer, reuse static buffer if available (#157)
276   Code is 50-80 times faster than Pure Python version (was 4-5 times faster)
278 * Don't recode IP zone (#144)
280 * Support ``encoded=True`` in ``yarl.URL.build()`` (#158)
282 * Fix updating query with multiple keys (#160)
284 0.18.0 (2018-01-10)
285 ===================
287 * Fallback to IDNA 2003 if domain name is not IDNA 2008 compatible (#152)
289 0.17.0 (2017-12-30)
290 ===================
292 * Use IDNA 2008 for domain name processing (#149)
294 0.16.0 (2017-12-07)
295 ===================
297 * Fix raising ``TypeError`` by ``url.query_string()`` after
298   ``url.with_query({})`` (empty mapping) (#141)
300 0.15.0 (2017-11-23)
301 ===================
303 * Add ``raw_path_qs`` attribute (#137)
305 0.14.2 (2017-11-14)
306 ===================
308 * Restore ``strict`` parameter as no-op in ``quote`` / ``unquote``
310 0.14.1 (2017-11-13)
311 ===================
313 * Restore ``strict`` parameter as no-op for sake of compatibility with
314   aiohttp 2.2
316 0.14.0 (2017-11-11)
317 ===================
319 * Drop strict mode (#123)
321 * Fix ``"ValueError: Unallowed PCT %"`` when there's a ``"%"`` in the url (#124)
323 0.13.0 (2017-10-01)
324 ===================
326 * Document ``encoded`` parameter (#102)
328 * Support relative urls like ``'?key=value'`` (#100)
330 * Unsafe encoding for QS fixed. Encode ``;`` char in value param (#104)
332 * Process passwords without user names (#95)
334 0.12.0 (2017-06-26)
335 ===================
337 * Properly support paths without leading slash in ``URL.with_path()`` (#90)
339 * Enable type annotation checks
341 0.11.0 (2017-06-26)
342 ===================
344 * Normalize path (#86)
346 * Clear query and fragment parts in ``.with_path()`` (#85)
348 0.10.3 (2017-06-13)
349 ===================
351 * Prevent double URL args unquoting (#83)
353 0.10.2 (2017-05-05)
354 ===================
356 * Unexpected hash behaviour (#75)
359 0.10.1 (2017-05-03)
360 ===================
362 * Unexpected compare behaviour (#73)
364 * Do not quote or unquote + if not a query string. (#74)
367 0.10.0 (2017-03-14)
368 ===================
370 * Added ``URL.build`` class method (#58)
372 * Added ``path_qs`` attribute (#42)
375 0.9.8 (2017-02-16)
376 ==================
378 * Do not quote ``:`` in path
381 0.9.7 (2017-02-16)
382 ==================
384 * Load from pickle without _cache (#56)
386 * Percent-encoded pluses in path variables become spaces (#59)
389 0.9.6 (2017-02-15)
390 ==================
392 * Revert backward incompatible change (BaseURL)
395 0.9.5 (2017-02-14)
396 ==================
398 * Fix BaseURL rich comparison support
401 0.9.4 (2017-02-14)
402 ==================
404 * Use BaseURL
407 0.9.3 (2017-02-14)
408 ==================
410 * Added BaseURL
413 0.9.2 (2017-02-08)
414 ==================
416 * Remove debug print
419 0.9.1 (2017-02-07)
420 ==================
422 * Do not lose tail chars (#45)
425 0.9.0 (2017-02-07)
426 ==================
428 * Allow to quote ``%`` in non strict mode (#21)
430 * Incorrect parsing of query parameters with %3B (;) inside (#34)
432 * Fix core dumps (#41)
434 * tmpbuf - compiling error (#43)
436 * Added ``URL.update_path()`` method
438 * Added ``URL.update_query()`` method (#47)
441 0.8.1 (2016-12-03)
442 ==================
444 * Fix broken aiohttp: revert back ``quote`` / ``unquote``.
447 0.8.0 (2016-12-03)
448 ==================
450 * Support more verbose error messages in ``.with_query()`` (#24)
452 * Don't percent-encode ``@`` and ``:`` in path (#32)
454 * Don't expose ``yarl.quote`` and ``yarl.unquote``, these functions are
455   part of private API
457 0.7.1 (2016-11-18)
458 ==================
460 * Accept not only ``str`` but all classes inherited from ``str`` also (#25)
462 0.7.0 (2016-11-07)
463 ==================
465 * Accept ``int`` as value for ``.with_query()``
467 0.6.0 (2016-11-07)
468 ==================
470 * Explicitly use UTF8 encoding in setup.py (#20)
471 * Properly unquote non-UTF8 strings (#19)
473 0.5.3 (2016-11-02)
474 ==================
476 * Don't use namedtuple fields but indexes on URL construction
478 0.5.2 (2016-11-02)
479 ==================
481 * Inline ``_encode`` class method
483 0.5.1 (2016-11-02)
484 ==================
486 * Make URL construction faster by removing extra classmethod calls
488 0.5.0 (2016-11-02)
489 ==================
491 * Add cython optimization for quoting/unquoting
492 * Provide binary wheels
494 0.4.3 (2016-09-29)
495 ==================
497 * Fix typing stubs
499 0.4.2 (2016-09-29)
500 ==================
502 * Expose ``quote()`` and ``unquote()`` as public API
504 0.4.1 (2016-09-28)
505 ==================
507 * Support empty values in query (``'/path?arg'``)
509 0.4.0 (2016-09-27)
510 ==================
512 * Introduce ``relative()`` (#16)
514 0.3.2 (2016-09-27)
515 ==================
517 * Typo fixes #15
519 0.3.1 (2016-09-26)
520 ==================
522 * Support sequence of pairs as ``with_query()`` parameter
524 0.3.0 (2016-09-26)
525 ==================
527 * Introduce ``is_default_port()``
529 0.2.1 (2016-09-26)
530 ==================
532 * Raise ValueError for URLs like 'http://:8080/'
534 0.2.0 (2016-09-18)
535 ==================
537 * Avoid doubling slashes when joining paths (#13)
539 * Appending path starting from slash is forbidden (#12)
541 0.1.4 (2016-09-09)
542 ==================
544 * Add kwargs support for ``with_query()`` (#10)
546 0.1.3 (2016-09-07)
547 ==================
549 * Document ``with_query()``, ``with_fragment()`` and ``origin()``
551 * Allow ``None`` for ``with_query()`` and ``with_fragment()``
553 0.1.2 (2016-09-07)
554 ==================
556 * Fix links, tune docs theme.
558 0.1.1 (2016-09-06)
559 ==================
561 * Update README, old version used obsolete API
563 0.1.0 (2016-09-06)
564 ==================
566 * The library was deeply refactored, bytes are gone away but all
567   accepted strings are encoded if needed.
569 0.0.1 (2016-08-30)
570 ==================
572 * The first release.