- Workaround for missing str.isascii() in Python 3.6 #389
- Fix regression, make the library work on Python 3.5 and 3.6 again.
- 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 ofURL.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 msg the path that produces starting slash forbidden error (#376)
- Skip slow IDNA encoding for ASCII-only strings (#387)
- 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 cant be converted to int (#168)
bool(URL())
now returnsFalse
(#272)
- Drop Python 3.4 trove classifier (#205)
- Fix annotations for
build
(#199)
- Fix annotations for
cached_property
(#195)
- Accept
str
subclasses inURL
constructor (#190)
- Fix build
- Pin minimal required Python to 3.5.3 (#189)
- Forbid inheritance, replace
__init__
with__new__
(#171) - Support PEP-561 (provide type hinting marker) (#182)
- Fix performance regression: don't encode enmpty netloc (#170)
- Make pure Python quoter consistent with Cython version (#162)
- Use fast path if quoted string does not need requoting (#154)
- Speed up quoting/unquoting by
_Quoter
and_Unquoter
classes (#155) - Drop
yarl.quote
andyarl.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
inyarl.URL.build()
(#158) - Fix updating query with multiple keys (#160)
- Fallback to IDNA 2003 if domain name is not IDNA 2008 compatible (#152)
- Use IDNA 2008 for domain name processing (#149)
- Fix raising
TypeError
byurl.query_string()
afterurl.with_query({})
(empty mapping) (#141)
- Add
raw_path_qs
attribute (#137)
- Restore
strict
parameter as no-op inquote
/unquote
- Restore
strict
parameter as no-op for sake of compatibility with aiohttp 2.2
- Drop strict mode (#123)
- Fix
"ValueError: Unallowed PCT %"
when there's a"%"
in the url (#124)
- Document
encoded
parameter (#102) - Support relative urls like
'?key=value'
(#100) - Unsafe encoding for QS fixed. Encode
;
char in value param (#104) - Process passwords without user names (#95)
- Properly support paths without leading slash in
URL.with_path()
(#90) - Enable type annotation checks
- Normalize path (#86)
- Clear query and fragment parts in
.with_path()
(#85)
- Prevent double URL args unquoting (#83)
- Unexpected hash behaviour (#75)
- Unexpected compare behaviour (#73)
- Do not quote or unquote + if not a query string. (#74)
- Added
URL.build
class method (#58) - Added
path_qs
attribute (#42)
- Do not quote
:
in path
- Load from pickle without _cache (#56)
- Percent-encoded pluses in path variables become spaces (#59)
- Revert backward incompatible change (BaseURL)
- Fix BaseURL rich comparison support
- Use BaseURL
- Added BaseURL
- Remove debug print
- Do not lose tail chars (#45)
- 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)
- Fix broken aiohttp: revert back
quote
/unquote
.
- Support more verbose error messages in
.with_query()
(#24) - Don't percent-encode
@
and:
in path (#32) - Don't expose
yarl.quote
andyarl.unquote
, these functions are part of private API
- Accept not only
str
but all classes inherited fromstr
also (#25)
- Accept
int
as value for.with_query()
- Explicitly use UTF8 encoding in setup.py (#20)
- Properly unquote non-UTF8 strings (#19)
- Don't use namedtuple fields but indexes on URL construction
- Inline
_encode
class method
- Make URL construction faster by removing extra classmethod calls
- Add cython optimization for quoting/unquoting
- Provide binary wheels
- Fix typing stubs
- Expose
quote()
andunquote()
as public API
- Support empty values in query (
'/path?arg'
)
- Introduce
relative()
(#16)
- Typo fixes #15
- Support sequence of pairs as
with_query()
parameter
- Introduce
is_default_port()
- Raise ValueError for URLs like 'http://:8080/'
- Avoid doubling slashes when joining paths (#13)
- Appending path starting from slash is forbidden (#12)
- Add kwargs support for
with_query()
(#10)
- Document
with_query()
,with_fragment()
andorigin()
- Allow
None
forwith_query()
andwith_fragment()
- Fix links, tune docs theme.
- Update README, old version used obsolete API
- The library was deeply refactored, bytes are gone away but all accepted strings are encoded if needed.
- The first release.