summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Cournapeau <cournape@gmail.com>2009-01-04 11:08:16 +0000
committerDavid Cournapeau <cournape@gmail.com>2009-01-04 11:08:16 +0000
commitf5afa7836d56640f25ff3fbd2c59b8dcf016e26f (patch)
tree90991728ad3ef5783949ad704a76357d2874c4a3
parent1bd6b58098c4fce234889d2709e13fff2e5ce40e (diff)
downloadnumpy-f5afa7836d56640f25ff3fbd2c59b8dcf016e26f.tar.gz
Do not use popen* but subprocess.Popen instead.
-rw-r--r--numpy/distutils/lib2def.py11
-rw-r--r--numpy/distutils/mingw32ccompiler.py8
-rw-r--r--numpy/distutils/misc_util.py6
3 files changed, 16 insertions, 9 deletions
diff --git a/numpy/distutils/lib2def.py b/numpy/distutils/lib2def.py
index 583f244c0..a486b13bd 100644
--- a/numpy/distutils/lib2def.py
+++ b/numpy/distutils/lib2def.py
@@ -1,6 +1,7 @@
import re
import sys
import os
+import subprocess
__doc__ = """This module generates a DEF file from the symbols in
an MSVC-compiled DLL import library. It correctly discriminates between
@@ -59,13 +60,13 @@ libfile, deffile = parse_cmd()"""
deffile = None
return libfile, deffile
-def getnm(nm_cmd = 'nm -Cs python%s.lib' % py_ver):
+def getnm(nm_cmd = ['nm', '-Cs', 'python%s.lib' % py_ver]):
"""Returns the output of nm_cmd via a pipe.
nm_output = getnam(nm_cmd = 'nm -Cs py_lib')"""
- f = os.popen(nm_cmd)
- nm_output = f.read()
- f.close()
+ f = subprocess.Popen(nm_cmd, shell=True, stdout=subprocess.PIPE)
+ nm_output = f.stdout.read()
+ f.stdout.close()
return nm_output
def parse_nm(nm_output):
@@ -107,7 +108,7 @@ if __name__ == '__main__':
deffile = sys.stdout
else:
deffile = open(deffile, 'w')
- nm_cmd = '%s %s' % (DEFAULT_NM, libfile)
+ nm_cmd = [str(DEFAULT_NM), str(libfile)]
nm_output = getnm(nm_cmd)
dlist, flist = parse_nm(nm_output)
output_def(dlist, flist, DEF_HEADER, deffile)
diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py
index 5975272b2..3c7bd2fdc 100644
--- a/numpy/distutils/mingw32ccompiler.py
+++ b/numpy/distutils/mingw32ccompiler.py
@@ -9,6 +9,7 @@ Support code for building Python extensions on Windows.
"""
import os
+import subprocess
import sys
import log
@@ -50,9 +51,10 @@ class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler):
# get_versions methods regex
if self.gcc_version is None:
import re
- out = os.popen('gcc -dumpversion','r')
- out_string = out.read()
- out.close()
+ p = subprocess.Popen(['gcc', '-dumpversion'], shell=True,
+ stdout=subprocess.PIPE)
+ out_string = p.stdout.read()
+ p.stdout.close()
result = re.search('(\d+\.\d+)',out_string)
if result:
self.gcc_version = StrictVersion(result.group(1))
diff --git a/numpy/distutils/misc_util.py b/numpy/distutils/misc_util.py
index 23848b72a..1ba44d89f 100644
--- a/numpy/distutils/misc_util.py
+++ b/numpy/distutils/misc_util.py
@@ -6,6 +6,7 @@ import copy
import glob
import atexit
import tempfile
+import subprocess
try:
set
@@ -1340,7 +1341,10 @@ class Configuration(object):
revision = None
m = None
try:
- sin, sout = os.popen4('svnversion')
+ p = subprocess.Popen(['svnversion'], shell=True,
+ stdout=subprocess.PIPE, stderr=STDOUT,
+ close_fds=True)
+ sout = p.stdout
m = re.match(r'(?P<revision>\d+)', sout.read())
except:
pass