Must we include urllib just to decode a URL-encoded string, when using Requests?

Dotan Cohen dotancohen at gmail.com
Thu Jun 13 09:41:42 EDT 2013


On Thu, Jun 13, 2013 at 4:34 PM, Robert Kern <robert.kern at gmail.com> wrote:
>> I'm pretty sure that Requests will use either urllib or urllib2,
>> depending on what is available on the server.
>
> No, it doesn't. It gets its quote() function from urllib always.
>

I see, thanks. Then that is what I will do as well!

>> I would like to use
>> whatever Requests is currently using, rather than import the other.
>> Can I tell which library Requests is currently using and use that?
>
>
> The only thing I can think that you are talking about is the difference
> between Python 2 and Python 3. In Python 2, it's urllib.quote() and in
> Python 3, it's urllib.parse.quote(), but that's a Python-version issue, not
> something to do with requests, per se. requests does have a compatibility
> layer, internally, that pastes over those issues, but I don't think that is
> intended to be a stable public API that you should rely on. You should
> handle that kind of switch yourself if you care about compatibility across
> both versions of Python.
>
> https://github.com/kennethreitz/requests/blob/master/requests/compat.py#L86
>

Great, thank you Robert. I see that Requests is calling both urllib
and urllib2. For some reason I thought that is rather wasteful and
should be avoided. I was probably wrong!

--
Dotan Cohen

http://gibberish.co.il
http://what-is-what.com



More information about the Python-list mailing list