summaryrefslogtreecommitdiff
path: root/numpy/distutils
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-03-28 17:13:53 -0600
committerCharles Harris <charlesr.harris@gmail.com>2013-04-02 11:23:58 -0600
commit09a52ed47bb26498c97a579ce1147861df696d84 (patch)
tree39bbddec620188f8cf09a5eb51370b0db1236219 /numpy/distutils
parenta939f2aa83e7d37d5e35e7c2a8c539c59f682598 (diff)
downloadnumpy-09a52ed47bb26498c97a579ce1147861df696d84.tar.gz
2to3: Apply `imports` fixer.
The `imports` fixer deals with the standard packages that have been renamed, removed, or methods that have moved. cPickle -- removed, use pickle commands -- removed, getoutput, getstatusoutput moved to subprocess urlparse -- removed, urlparse moved to urllib.parse cStringIO -- removed, use StringIO or io.StringIO copy_reg -- renamed copyreg _winreg -- renamed winreg ConfigParser -- renamed configparser __builtin__ -- renamed builtins In the case of `cPickle`, it is imported as `pickle` when python < 3 and performance may be a consideration, but otherwise plain old `pickle` is used. Dealing with `StringIO` is a bit tricky. There is an `io.StringIO` function in the `io` module, available since Python 2.6, but it expects unicode whereas `StringIO.StringIO` expects ascii. The Python 3 equivalent is then `io.BytesIO`. What I have done here is used BytesIO for anything that is emulating a file for testing purposes. That is more explicit than using a redefined StringIO as was done before we dropped support for Python 2.4 and 2.5. Closes #3180.
Diffstat (limited to 'numpy/distutils')
-rw-r--r--numpy/distutils/cpuinfo.py26
-rw-r--r--numpy/distutils/mingw32ccompiler.py1
-rw-r--r--numpy/distutils/misc_util.py8
-rw-r--r--numpy/distutils/npy_pkg_config.py7
-rw-r--r--numpy/distutils/system_info.py1
-rw-r--r--numpy/distutils/tests/test_exec_command.py15
6 files changed, 37 insertions, 21 deletions
diff --git a/numpy/distutils/cpuinfo.py b/numpy/distutils/cpuinfo.py
index 1e2d9379c..aaf642691 100644
--- a/numpy/distutils/cpuinfo.py
+++ b/numpy/distutils/cpuinfo.py
@@ -18,10 +18,12 @@ __all__ = ['cpu']
import sys, re, types
import os
-if sys.version_info[0] < 3:
- from commands import getstatusoutput
-else:
+
+if sys.version_info[0] >= 3:
from subprocess import getstatusoutput
+else:
+ from commands import getstatusoutput
+
import warnings
import platform
@@ -488,25 +490,29 @@ class Win32CPUInfo(CPUInfoBase):
info = []
try:
#XXX: Bad style to use so long `try:...except:...`. Fix it!
- import _winreg
+ if sys.version_info[0] >= 3:
+ import winreg
+ else:
+ import _winreg as winreg
+
prgx = re.compile(r"family\s+(?P<FML>\d+)\s+model\s+(?P<MDL>\d+)"\
"\s+stepping\s+(?P<STP>\d+)",re.IGNORECASE)
- chnd=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, self.pkey)
+ chnd=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, self.pkey)
pnum=0
while 1:
try:
- proc=_winreg.EnumKey(chnd,pnum)
- except _winreg.error:
+ proc=winreg.EnumKey(chnd,pnum)
+ except winreg.error:
break
else:
pnum+=1
info.append({"Processor":proc})
- phnd=_winreg.OpenKey(chnd,proc)
+ phnd=winreg.OpenKey(chnd,proc)
pidx=0
while True:
try:
- name,value,vtpe=_winreg.EnumValue(phnd,pidx)
- except _winreg.error:
+ name,value,vtpe=winreg.EnumValue(phnd,pidx)
+ except winreg.error:
break
else:
pidx=pidx+1
diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py
index 0505309fa..ed0dc0d4e 100644
--- a/numpy/distutils/mingw32ccompiler.py
+++ b/numpy/distutils/mingw32ccompiler.py
@@ -10,7 +10,6 @@ Support code for building Python extensions on Windows.
from __future__ import division, absolute_import
import os
-import subprocess
import sys
import subprocess
import re
diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py
index f526557d6..0c88e0ae4 100644
--- a/numpy/distutils/misc_util.py
+++ b/numpy/distutils/misc_util.py
@@ -2125,9 +2125,13 @@ def get_info(pkgname, dirs=None):
return info
def is_bootstrapping():
- import __builtin__
+ if sys.version_info[0] >= 3:
+ import builtins
+ else:
+ import __builtin__ as builtins
+
try:
- __builtin__.__NUMPY_SETUP__
+ builtins.__NUMPY_SETUP__
return True
except AttributeError:
return False
diff --git a/numpy/distutils/npy_pkg_config.py b/numpy/distutils/npy_pkg_config.py
index 2dacbbc70..a0d75670b 100644
--- a/numpy/distutils/npy_pkg_config.py
+++ b/numpy/distutils/npy_pkg_config.py
@@ -1,13 +1,14 @@
from __future__ import division, absolute_import
import sys
+import re
+import os
+import shlex
+
if sys.version_info[0] < 3:
from ConfigParser import SafeConfigParser, NoOptionError
else:
from configparser import ConfigParser, SafeConfigParser, NoOptionError
-import re
-import os
-import shlex
__all__ = ['FormatError', 'PkgNotFound', 'LibraryInfo', 'VariableSet',
'read_config', 'parse_flags']
diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
index 68ad926e3..ff32daf69 100644
--- a/numpy/distutils/system_info.py
+++ b/numpy/distutils/system_info.py
@@ -118,6 +118,7 @@ import re
import copy
import warnings
from glob import glob
+
if sys.version_info[0] < 3:
from ConfigParser import NoOptionError, ConfigParser
else:
diff --git a/numpy/distutils/tests/test_exec_command.py b/numpy/distutils/tests/test_exec_command.py
index 11f262369..3e85fcd3e 100644
--- a/numpy/distutils/tests/test_exec_command.py
+++ b/numpy/distutils/tests/test_exec_command.py
@@ -2,11 +2,16 @@ from __future__ import division, absolute_import
import os
import sys
-import StringIO
from tempfile import TemporaryFile
from numpy.distutils import exec_command
+# In python 3 stdout, stderr are text (unicode compliant) devices, so to
+# emulate them import StringIO from the io module.
+if sys.version_info[0] >= 3:
+ from io import StringIO
+else:
+ from StringIO import StringIO
class redirect_stdout(object):
"""Context manager to redirect stdout for exec_command test."""
@@ -62,26 +67,26 @@ def test_exec_command_stdout():
# both that the special case works and that the generic code works.
# Test posix version:
- with redirect_stdout(StringIO.StringIO()):
+ with redirect_stdout(StringIO()):
with redirect_stderr(TemporaryFile()):
exec_command.exec_command("cd '.'")
if os.name == 'posix':
# Test general (non-posix) version:
with emulate_nonposix():
- with redirect_stdout(StringIO.StringIO()):
+ with redirect_stdout(StringIO()):
with redirect_stderr(TemporaryFile()):
exec_command.exec_command("cd '.'")
def test_exec_command_stderr():
# Test posix version:
with redirect_stdout(TemporaryFile(mode='w+')):
- with redirect_stderr(StringIO.StringIO()):
+ with redirect_stderr(StringIO()):
exec_command.exec_command("cd '.'")
if os.name == 'posix':
# Test general (non-posix) version:
with emulate_nonposix():
with redirect_stdout(TemporaryFile()):
- with redirect_stderr(StringIO.StringIO()):
+ with redirect_stderr(StringIO()):
exec_command.exec_command("cd '.'")