Message225566
| Author |
ztane |
| Recipients |
ztane |
| Date |
2014年08月20日.12:39:51 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1408538391.97.0.53072227801.issue22234@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Because of "if x else ''" in _decode_args (http://hg.python.org/cpython/file/3.4/Lib/urllib/parse.py#l96), urllib.parse.urlparse accepts any falsy value as an url, returning a ParseResultBytes with all members set to empty bytestrings.
Thus you get:
>>> urllib.parse.urlparse({})
ParseResultBytes(scheme=b'', netloc=b'', path=b'', params=b'', query=b'', fragment=b'')
which may result in some very confusing exceptions later on: I had a list of URLs that accidentally contained some Nones and got very confusing TypeErrors while processing the results expecting them to be strings.
If the `if x else ''` part were removed, such invalid falsy values would fail with `AttributeError: 'foo' object has no attribute 'decode'`, as happens with any truthy invalid value. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2014年08月20日 12:39:52 | ztane | set | recipients:
+ ztane |
| 2014年08月20日 12:39:51 | ztane | set | messageid: <1408538391.97.0.53072227801.issue22234@psf.upfronthosting.co.za> |
| 2014年08月20日 12:39:51 | ztane | link | issue22234 messages |
| 2014年08月20日 12:39:51 | ztane | create |
|