-
Notifications
You must be signed in to change notification settings - Fork 153
/
changelog.txt
167 lines (131 loc) Β· 7.61 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
================================================================================
v2.1.3
================================================================================
Fixed: Actually drop ';' as a query delimiter. See furl v2.1.2's
changelog and https://bugs.python.org/issue42967.
================================================================================
v2.1.2
================================================================================
Fixed: Support Python 3.9's changed urllib.parse.urljoin() behavior.
< py3.9: furl('wss://slrp.com/').join('foo:1') -> 'wss://slrp.com/foo:1'
>= py3.9: furl('wss://slrp.com/').join('foo:1') -> 'foo:1'
Changed: Drop semicolon query delimiters. See
https://bugs.python.org/issue42967.
Changed: Drop support for EOL Python 3.4 and Python 3.5.
================================================================================
v2.1.1
================================================================================
Fixed: Export metadata variables (furl.__title__, furl.__version__, etc).
Added: scheme, host, netloc, and origin as parameters to furl.remove().
Changed: Homogenize parameter order across furl.add(), furl.set(), and
furl.remove().
Changed: furl.origin can be assigned None. This has the same behavior as
furl.remove(origin=True).
================================================================================
v2.1.0
================================================================================
Added: A dont_quote= parameter to Query.encode() and a query_dont_quote=
parameter to furl.tostr() that exempt valid query characters from being
percent-encoded, either in their entirety with dont_quote=True, or selectively
with dont_quote=<string>, like dont_quote='/?@_'.
Changed: Move package info from __init__.py into the more standard
__version__.py.
Fixed: Support Unicode usernames and passwords in Python 2.
Fixed: Update orderedmultdict to v1.0.1 to resolve a DeprecationWarning.
Fixed: Encode '/' consistently in query strings across both quote_plus=True and
quote_plus=False.
================================================================================
v2.0.0
================================================================================
Added: All URL components (scheme, host, path, etc) to furl()'s constructor as
keyword arguments. E.g. f = furl(scheme='http', host='host', path='/lolsup').
Changed: furl.__truediv__() and Path.__truediv__() now mirror
Pathlib.__truediv__()'s behavior and return a new instance. The original
instance is no longer modified. Old behavior: f = furl('1'); f / '2' -> str(f)
== '1'. New behavior: f = furl('1'); f /= '2' -> str(f) == '1/2'.
Fixed: Path.load() now accepts Path instances, e.g. f.path.load(Path('hi')).
Removed: Support for Python 2.6, which reached EOL on 2013-10-29.
================================================================================
v1.2.1
================================================================================
Fixed: Join URLs without an authority (e.g. 'foo:blah') consistently with
urllib.parse.urljoin().
================================================================================
v1.2
================================================================================
Added: Path segment appending via the division operator (__truediv__()).
Changed: Bump orderedmultidict dependency to v1.0.
Changed: Check code style with flake8 instead of pycodestyle.
Changed: Percent-encode all non-unreserved characters in Query key=value pairs,
including valid query characters (e.g. '=', '?', etc). Old encoding:
"?url=http://foo.com/"; new encoding: "?url=http%3A%2F%2Ffoo.com%2F". Equal
signs remain decoded in query values where the key is empty to allow for, and
preserve, queries like '?==3=='.
================================================================================
v1.1
================================================================================
Fixed: Support and preserve all query strings as provided. For example, preserve
the query '&&==' of 'http://foo.com?&&==' as-is. Empty key=value pairs are
stored as ('', None) in Query.params, e.g. [('', None), ('', None)] for the
query '&'.
Changed: Don't encode equal signs ('=') in query values if the key is empty.
That is, allow and preserve queries like '?==3==' while also percent encoding
equal signs in query values with an associted key, as expected. E.g.
'?a=1%3D1'.
================================================================================
v1.0.2
================================================================================
Added: strip_scheme() public function.
Changed: Make get_scheme() and set_scheme() functions public.
Added: Support all schemes without a netloc/authority, like
'mailto:hi@email.com', without an explicit whitelist of such schemes
(e.g. tel:, sms:, mailto:, etc).
Fixed: Restore furl.url's setter method. E.g. furl.url = 'http://www.foo.com/'.
Removed: Support for Python 3.3, which reached EOL on 2017-09-29.
================================================================================
v1.0.1
================================================================================
Added: Add dictionary representations of Path, Query, Fragment, and furl objects
via an asdict() method.
================================================================================
v1.0.0
================================================================================
Added: Test against Python 3.6.
Changed: Bumped the version number to v1.0 to signify that furl is a mature and
stable library. Furl has been marked Production/Stable in setup.py for a long
time anyhow -- it's high time for the version number to catch up.
================================================================================
v0.5.7
================================================================================
Fixed: Only percent-decode percent-encoded path strings once, not twice.
================================================================================
v0.5.6
================================================================================
Changed: Bumped the orderedmultidict dependency from v0.7.7 to v0.7.8. The
latter, v0.7.8, fixes a splat (i.e. **omdict) bug.
================================================================================
v0.5.5
================================================================================
Changed: Bumped the orderedmultidict dependency from v0.7.6 to v0.7.7. The
latter, v0.7.7, better interoperates with other popular libraries, like
Requests.
================================================================================
v0.5.4
================================================================================
Fixed: When provided to constructors and load() methods, treat None as the empty
string, not the string 'None'. E.g. furl(None) == furl(''), not furl('None').
================================================================================
v0.5.3
================================================================================
Fixed: In Python 2, furl.netloc and furl.origin return strings, not Unicode
strings.
================================================================================
v0.5.2
================================================================================
Added: Test PEP8 compliance with tox.
Fixed: Verify valid schemes before adoption.
================================================================================
v0.5.1
================================================================================
Added: Origin support (e.g. http://google.com of http://u:p@google.com/).
This changelog wasn't maintained prior to v0.5.