mirror of
https://github.com/python/cpython.git
synced 2025-07-29 06:05:00 +00:00
Handle urllib's renaming for Python 3.0:
* Deprecate urllib.urlopen() in favor of urllib2.urlopen() for 3.0. * Update docs to mention split/rename of the module and deprecation of urlopen(). Changes to lib2to3 are in a separate commit. Work is for issue #2885.
This commit is contained in:
parent
aac51b8a69
commit
8bb8fa5dd6
5 changed files with 51 additions and 14 deletions
|
@ -4,6 +4,13 @@
|
||||||
.. module:: urllib
|
.. module:: urllib
|
||||||
:synopsis: Open an arbitrary network resource by URL (requires sockets).
|
:synopsis: Open an arbitrary network resource by URL (requires sockets).
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The :mod:`urllib` module has been split into parts and renamed in
|
||||||
|
Python 3.0 to :mod:`urllib.request`, :mod:`urllib.parse`,
|
||||||
|
and :mod:`urllib.error`. The :term:`2to3` tool will automatically adapt
|
||||||
|
imports when converting your sources to 3.0.
|
||||||
|
Also note that the :func:`urllib.urlopen` function has been removed in
|
||||||
|
Python 3.0 in favor of :func:`urllib2.urlopen`.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: WWW
|
single: WWW
|
||||||
|
@ -116,6 +123,10 @@ High-level interface
|
||||||
.. versionchanged:: 2.6
|
.. versionchanged:: 2.6
|
||||||
Added :meth:`getcode` to returned object and support for the
|
Added :meth:`getcode` to returned object and support for the
|
||||||
:envvar:`no_proxy` environment variable.
|
:envvar:`no_proxy` environment variable.
|
||||||
|
|
||||||
|
.. deprecated:: 2.6
|
||||||
|
The :func:`urlopen` function has been removed in Python 3.0 in favor
|
||||||
|
of :func:`urllib2.urlopen`.
|
||||||
|
|
||||||
|
|
||||||
.. function:: urlretrieve(url[, filename[, reporthook[, data]]])
|
.. function:: urlretrieve(url[, filename[, reporthook[, data]]])
|
||||||
|
|
|
@ -640,16 +640,20 @@ class Pathname_Tests(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
test_support.run_unittest(
|
import warnings
|
||||||
urlopen_FileTests,
|
with test_support.catch_warning(record=False):
|
||||||
urlopen_HttpTests,
|
warnings.filterwarnings('ignore', ".*urllib\.urlopen.*Python 3.0",
|
||||||
urlretrieve_FileTests,
|
DeprecationWarning)
|
||||||
QuotingTests,
|
test_support.run_unittest(
|
||||||
UnquotingTests,
|
urlopen_FileTests,
|
||||||
urlencode_Tests,
|
urlopen_HttpTests,
|
||||||
Pathname_Tests,
|
urlretrieve_FileTests,
|
||||||
#FTPWrapperTests,
|
QuotingTests,
|
||||||
)
|
UnquotingTests,
|
||||||
|
urlencode_Tests,
|
||||||
|
Pathname_Tests,
|
||||||
|
#FTPWrapperTests,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -182,9 +182,13 @@ class urlretrieveNetworkTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
test_support.requires('network')
|
test_support.requires('network')
|
||||||
test_support.run_unittest(URLTimeoutTest,
|
from warnings import filterwarnings
|
||||||
urlopenNetworkTests,
|
with test_support.catch_warning(record=False):
|
||||||
urlretrieveNetworkTests)
|
filterwarnings('ignore', '.*urllib\.urlopen.*Python 3.0',
|
||||||
|
DeprecationWarning)
|
||||||
|
test_support.run_unittest(URLTimeoutTest,
|
||||||
|
urlopenNetworkTests,
|
||||||
|
urlretrieveNetworkTests)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_main()
|
test_main()
|
||||||
|
|
|
@ -28,6 +28,7 @@ import os
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
from urlparse import urljoin as basejoin
|
from urlparse import urljoin as basejoin
|
||||||
|
import warnings
|
||||||
|
|
||||||
__all__ = ["urlopen", "URLopener", "FancyURLopener", "urlretrieve",
|
__all__ = ["urlopen", "URLopener", "FancyURLopener", "urlretrieve",
|
||||||
"urlcleanup", "quote", "quote_plus", "unquote", "unquote_plus",
|
"urlcleanup", "quote", "quote_plus", "unquote", "unquote_plus",
|
||||||
|
@ -69,7 +70,11 @@ else:
|
||||||
# Shortcut for basic usage
|
# Shortcut for basic usage
|
||||||
_urlopener = None
|
_urlopener = None
|
||||||
def urlopen(url, data=None, proxies=None):
|
def urlopen(url, data=None, proxies=None):
|
||||||
"""urlopen(url [, data]) -> open file-like object"""
|
"""Create a file-like object for the specified URL to read from."""
|
||||||
|
from warnings import warnpy3k
|
||||||
|
warnings.warnpy3k("urllib.urlopen() has been removed in Python 3.0 in "
|
||||||
|
"favor of urllib2.urlopen()", stacklevel=2)
|
||||||
|
|
||||||
global _urlopener
|
global _urlopener
|
||||||
if proxies is not None:
|
if proxies is not None:
|
||||||
opener = FancyURLopener(proxies=proxies)
|
opener = FancyURLopener(proxies=proxies)
|
||||||
|
|
13
Misc/NEWS
13
Misc/NEWS
|
@ -29,11 +29,24 @@ Core and Builtins
|
||||||
would not cause a syntax error. This was regression from 2.4 caused by the
|
would not cause a syntax error. This was regression from 2.4 caused by the
|
||||||
switch to the new compiler.
|
switch to the new compiler.
|
||||||
|
|
||||||
|
|
||||||
|
Library
|
||||||
|
-------
|
||||||
|
|
||||||
|
- Issue #2885 (partial): The urllib.urlopen() function has been deprecated for
|
||||||
|
removal in Python 3.0 in favor of urllib2.urlopen().
|
||||||
|
|
||||||
|
- Issue #2885 (partial): lib2to3 has been updated to handle the renaming of the
|
||||||
|
urllib module in Python 3.0 to urllib.request, urllib.parse, and
|
||||||
|
urllib.error.
|
||||||
|
|
||||||
|
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
- Issue #3215: Build sqlite3 as sqlite3.dll, not sqlite3.pyd.
|
- Issue #3215: Build sqlite3 as sqlite3.dll, not sqlite3.pyd.
|
||||||
|
|
||||||
|
|
||||||
What's New in Python 2.6 beta 1?
|
What's New in Python 2.6 beta 1?
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue