diff --git a/Lib/platform.py b/Lib/platform.py index c898dd13675..04f7f9bd01a 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -1254,10 +1254,10 @@ _sys_version_cache = {} def _sys_version(sys_version=None): """ Returns a parsed version of Python's sys.version as tuple - (name, version, branch, revision, buildno, builddate, compiler) - referring to the Python implementation name, version, branch, - revision, build number, build date/time as string and the compiler - identification string. + (name, version, branch, revision, buildno, builddate, compiler) + referring to the Python implementation name, version, branch, + revision, build number, build date/time as string and the compiler + identification string. Note that unlike the Python sys.version, the returned value for the Python version will always include the patchlevel (it @@ -1359,8 +1359,6 @@ def python_version(): will always include the patchlevel (it defaults to 0). """ - if hasattr(sys, 'version_info'): - return '%i.%i.%i' % sys.version_info[:3] return _sys_version()[1] def python_version_tuple(): @@ -1372,8 +1370,6 @@ def python_version_tuple(): will always include the patchlevel (it defaults to 0). """ - if hasattr(sys, 'version_info'): - return sys.version_info[:3] return tuple(_sys_version()[1].split('.')) def python_branch(): diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py index a18d48b1054..a032df1bde8 100644 --- a/Lib/test/test_platform.py +++ b/Lib/test/test_platform.py @@ -25,40 +25,49 @@ class PlatformTest(unittest.TestCase): finally: os.remove(link) - def test_machine(self): - res = platform.machine() - - def test_node(self): - res = platform.node() - def test_platform(self): for aliased in (False, True): for terse in (False, True): res = platform.platform(aliased, terse) + def test_system(self): + res = platform.system() + + def test_node(self): + res = platform.node() + + def test_release(self): + res = platform.release() + + def test_version(self): + res = platform.version() + + def test_machine(self): + res = platform.machine() + def test_processor(self): res = platform.processor() + def test_python_implementation(self): + res = platform.python_implementation() + + def test_python_version(self): + res1 = platform.python_version() + res2 = platform.python_version_tuple() + self.assertEqual(res1, ".".join(res2)) + + def test_python_branch(self): + res = platform.python_branch() + + def test_python_revision(self): + res = platform.python_revision() + def test_python_build(self): res = platform.python_build() def test_python_compiler(self): res = platform.python_compiler() - def test_version(self): - res1 = platform.version() - res2 = platform.version_tuple() - self.assertEqual(res1, ".".join(res2)) - - def test_release(self): - res = platform.release() - - def test_system(self): - res = platform.system() - - def test_version(self): - res = platform.version() - def test_system_alias(self): res = platform.system_alias( platform.system(), diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index b86d8f2d3ef..c789ffce63b 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -1474,41 +1474,45 @@ class URLopener: except IOError as msg: pass fp = self.open(url, data) - headers = fp.info() - if filename: - tfp = open(filename, 'wb') - else: - import tempfile - garbage, path = splittype(url) - garbage, path = splithost(path or "") - path, garbage = splitquery(path or "") - path, garbage = splitattr(path or "") - suffix = os.path.splitext(path)[1] - (fd, filename) = tempfile.mkstemp(suffix) - self.__tempfiles.append(filename) - tfp = os.fdopen(fd, 'wb') - result = filename, headers - if self.tempcache is not None: - self.tempcache[url] = result - bs = 1024*8 - size = -1 - read = 0 - blocknum = 0 - if reporthook: - if "content-length" in headers: - size = int(headers["Content-Length"]) - reporthook(blocknum, bs, size) - while 1: - block = fp.read(bs) - if not block: - break - read += len(block) - tfp.write(block) - blocknum += 1 - if reporthook: - reporthook(blocknum, bs, size) - fp.close() - tfp.close() + try: + headers = fp.info() + if filename: + tfp = open(filename, 'wb') + else: + import tempfile + garbage, path = splittype(url) + garbage, path = splithost(path or "") + path, garbage = splitquery(path or "") + path, garbage = splitattr(path or "") + suffix = os.path.splitext(path)[1] + (fd, filename) = tempfile.mkstemp(suffix) + self.__tempfiles.append(filename) + tfp = os.fdopen(fd, 'wb') + try: + result = filename, headers + if self.tempcache is not None: + self.tempcache[url] = result + bs = 1024*8 + size = -1 + read = 0 + blocknum = 0 + if reporthook: + if "content-length" in headers: + size = int(headers["Content-Length"]) + reporthook(blocknum, bs, size) + while 1: + block = fp.read(bs) + if not block: + break + read += len(block) + tfp.write(block) + blocknum += 1 + if reporthook: + reporthook(blocknum, bs, size) + finally: + tfp.close() + finally: + fp.close() del fp del tfp diff --git a/Misc/python.man b/Misc/python.man index 23039e8b1ca..3c7d6067e1b 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -1,7 +1,7 @@ .TH PYTHON "1" "$Date$" -./" To view this file while editing, run it through groff: -./" groff -Tascii -man python.man | less +.\" To view this file while editing, run it through groff: +.\" groff -Tascii -man python.man | less .SH NAME python \- an interpreted, interactive, object-oriented programming language