Issue 16423: urllib data URL (original) (raw)

Created on 2012-11-07 03:28 by panzi, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
doc-urllib.request-data-url-recipe.patch panzi,2012-11-07 03:27 Patch that adds a data URL handler recipe to the urllib documentation. review
urllib.request-data-url.patch panzi,2012-11-18 04:41 urllib.request patch for data url support (w/ doc and tests) review

| Repositories containing patches | | | | | -------------------------------------------------------------------------------------------------- | | | | | https://bitbucket.org/panzi/cpython | | | |

Messages (15)
msg175041 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-07 03:27
I think it would be really helpful if urllib would support data URLs. However, I was told on the python-ideas mailing list that it would probably only added as recipe in the documentation. The attached patch adds such an recipe to the urllib.request documentation. I've never written a doc patch (or any patch) for python before, so I don't know if I added it at the right place in the right format.
msg175667 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-16 03:45
New patch. Instead of adding the data URL support to the doc as a recipe I added it to urllib.request directly. I think this is better and justified, because the old legacy URLopener had (some kind) of support for data URLs. OT: I think that the legacy URLopener has bugs. It only unquotes the data if it's base64 encoded, but it should be unquoted in any case. Also it returns a StringIO and decodes the content as latin-1. This is wrong, the content is a binary string. It could be text encoded in any kind of charset or not text at all (e.g. an image).
msg175828 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-17 23:36
A couple of comments: - the patch needs a test (and docs too) - are you sure ignoring POSTed data is the right thing to do? Shouldn't we forbid it instead? - I think it would be nice to reference the RFC number somewhere - not sure why you raise IOError on a bad URL; I would say ValueError is the right exception here +1 on the general idea, by the way.
msg175831 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-17 23:42
On 11/18/2012 12:36 AM, Antoine Pitrou wrote: > > Antoine Pitrou added the comment: > > A couple of comments: > > - the patch needs a test (and docs too) Will do (when I have time). > - are you sure ignoring POSTed data is the right thing to do? Shouldn't we forbid it instead? > - I think it would be nice to reference the RFC number somewhere > - not sure why you raise IOError on a bad URL; I would say ValueError is the right exception here > I did that because that's what the old URLopener code does (ignoring POSTed data and raising an IOError). The comment is actually a 1:1 copy of the old code. > +1 on the general idea, by the way. > > ---------- > nosy: +pitrou > > _______________________________________ > Python tracker <report@bugs.python.org> > <http://bugs.python.org/issue16423> > _______________________________________ >
msg175833 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-17 23:43
> > - are you sure ignoring POSTed data is the right thing to do? Shouldn't we forbid it instead? > > - I think it would be nice to reference the RFC number somewhere > > - not sure why you raise IOError on a bad URL; I would say ValueError is the right exception here > > > > I did that because that's what the old URLopener code does (ignoring POSTed data and raising an > IOError). The comment is actually a 1:1 copy of the old code. Ok. I think it's better to take a fresh start here :-)
msg175840 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-18 01:31
On 11/18/2012 12:36 AM, Antoine Pitrou wrote: > > - the patch needs a test (and docs too) > - are you sure ignoring POSTed data is the right thing to do? Shouldn't we forbid it instead? Btw.: The file:// protocol handler also just ignores posted data, so I think the data url handler shouldn't deviate from that. Either both raise an error when data is posted or none.
msg175842 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-18 04:16
Ok, I've added a documentation and some tests. Is it ok this way? More tests? More/other documentation?
msg175867 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-18 11:38
> On 11/18/2012 12:36 AM, Antoine Pitrou wrote: > > > > - the patch needs a test (and docs too) > > - are you sure ignoring POSTed data is the right thing to do? Shouldn't we forbid it instead? > > Btw.: The file:// protocol handler also just ignores posted data, so I think the data url handler > shouldn't deviate from that. Either both raise an error when data is posted or none. Ah, fair enough, then. Thanks for the updated patch, I'll take a look (unless someone beats me to it).
msg176294 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012-11-24 17:00
New changeset a182367eac5a by Antoine Pitrou in branch 'default': Issue #16423: urllib.request now has support for ``data:`` URLs. http://hg.python.org/cpython/rev/a182367eac5a
msg176295 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-24 17:03
I've committed your patch after having made the few very minor changes mentioned in the review. Thank you very much!
msg176298 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-24 17:23
Great! Feels awesome to have my first bit of code contributed to the Python project. :)
msg176299 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-24 17:49
You're welcome! We're always happy to have new contributors. I've forgotten something: could you sign a contributor agreement? You'll find instructions at http://www.python.org/psf/contrib/
msg176300 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-24 17:55
Will do (later today).
msg176304 - (view) Author: Mathias Panzenböck (panzi) * Date: 2012-11-24 18:30
Hmm, which of the two initial licenses should I choose? Which one do you rather want me to choose?
msg176305 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-11-24 18:39
> Hmm, which of the two initial licenses should I choose? Which one do > you rather want me to choose? Whichever you prefer. They should be equivalent in their terms (non-copyleft free licenses).
History
Date User Action Args
2022-04-11 14:57:38 admin set github: 60627
2012-11-24 18:39:10 pitrou set messages: +
2012-11-24 18:30:05 panzi set messages: +
2012-11-24 17:55:01 panzi set messages: +
2012-11-24 17:49:19 pitrou set messages: +
2012-11-24 17:23:55 panzi set messages: +
2012-11-24 17:03:24 pitrou set status: open -> closedmessages: + assignee: orsenthil -> resolution: not a bugstage: patch review -> resolved
2012-11-24 17:00:13 python-dev set nosy: + python-devmessages: +
2012-11-18 11:38:27 pitrou set messages: +
2012-11-18 04:42:11 panzi set files: - urllib.request-data-url.patch
2012-11-18 04:41:47 panzi set files: + urllib.request-data-url.patch
2012-11-18 04:41:33 panzi set files: - urllib.request-data-url.patch
2012-11-18 04:16:02 panzi set files: + urllib.request-data-url.patchmessages: +
2012-11-18 01:31:15 panzi set messages: +
2012-11-17 23:43:19 pitrou set messages: +
2012-11-17 23:42:08 panzi set messages: +
2012-11-17 23:36:39 pitrou set nosy: + pitroumessages: +
2012-11-16 08:19:04 serhiy.storchaka set stage: patch reviewversions: - Python 3.1, Python 3.2, Python 3.3, Python 3.5
2012-11-16 03:50:36 panzi set type: enhancementcomponents: + Library (Lib), - Documentationtitle: urllib data URL recipe -> urllib data URL
2012-11-16 03:45:11 panzi set files: + urllib.request-data-url.patchmessages: +
2012-11-07 05:08:37 orsenthil set assignee: docs@python -> orsenthilnosy: + orsenthil
2012-11-07 03:28:02 panzi create