summaryrefslogtreecommitdiff
path: root/numpy/f2py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-04-26 21:31:12 -0600
committerCharles Harris <charlesr.harris@gmail.com>2013-05-02 21:13:17 -0600
commitdec4f4b76ae9b2b953bcc093275aa59f93adf6fd (patch)
tree13a9a50d087f6c55a6afb942437afc99110cd6f5 /numpy/f2py
parent63a9f197d040b5479b772fd3925274fc984ffd24 (diff)
downloadnumpy-dec4f4b76ae9b2b953bcc093275aa59f93adf6fd.tar.gz
MAINT: Apply 2to3 idioms fixer.
The idioms fixer makes the following replacements. 1) int <- bool 2) comparison or identity of types <- isinstance 3) a.sort() <- sorted(a) There were two problems that needed to be dealt with after the application of the fixer. First, the replacement of comparison or identity of types by isinstance was not always correct. The isinstance function returns true for subtypes whereas many of the places where the fixer made a substitution needed to check for exact type equality. Second, the sorted function was applied to arrays, but because it treats them as iterators and constructs a sorted list from the result, that is the wrong thing to do. Closes #3062.
Diffstat (limited to 'numpy/f2py')
-rw-r--r--numpy/f2py/auxfuncs.py42
-rw-r--r--numpy/f2py/cb_rules.py10
-rw-r--r--numpy/f2py/cfuncs.py8
-rw-r--r--numpy/f2py/common_rules.py2
-rwxr-xr-xnumpy/f2py/crackfortran.py29
-rwxr-xr-xnumpy/f2py/f2py2e.py2
-rw-r--r--numpy/f2py/f90mod_rules.py4
-rw-r--r--numpy/f2py/rules.py10
8 files changed, 54 insertions, 53 deletions
diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py
index e391430f5..e835090f7 100644
--- a/numpy/f2py/auxfuncs.py
+++ b/numpy/f2py/auxfuncs.py
@@ -491,9 +491,9 @@ def getmultilineblock(rout,blockname,comment=1,counter=0):
except KeyError:
return
if not r: return
- if counter>0 and type(r) is type(''):
+ if counter > 0 and isinstance(r, str):
return
- if type(r) is type([]):
+ if isinstance(r, list):
if counter>=len(r): return
r = r[counter]
if r[:3]=="'''":
@@ -598,7 +598,7 @@ def gentitle(name):
return '/*%s %s %s*/'%(l*'*',name,l*'*')
def flatlist(l):
- if type(l)==list:
+ if isinstance(l, list):
return reduce(lambda x,y,f=flatlist:x+f(y),l,[])
return [l]
@@ -607,9 +607,9 @@ def stripcomma(s):
return s
def replace(str,d,defaultsep=''):
- if type(d)==list:
+ if isinstance(d, list):
return [replace(str, _m, defaultsep) for _m in d]
- if type(str)==list:
+ if isinstance(str, list):
return [replace(_m, d, defaultsep) for _m in str]
for k in 2*list(d.keys()):
if k=='separatorsfor':
@@ -618,14 +618,14 @@ def replace(str,d,defaultsep=''):
sep=d['separatorsfor'][k]
else:
sep=defaultsep
- if type(d[k])==list:
+ if isinstance(d[k], list):
str=str.replace('#%s#'%(k),sep.join(flatlist(d[k])))
else:
str=str.replace('#%s#'%(k),d[k])
return str
def dictappend(rd,ar):
- if type(ar)==list:
+ if isinstance(ar, list):
for a in ar:
rd=dictappend(rd,a)
return rd
@@ -633,15 +633,15 @@ def dictappend(rd,ar):
if k[0]=='_':
continue
if k in rd:
- if type(rd[k])==str:
+ if isinstance(rd[k], str):
rd[k]=[rd[k]]
- if type(rd[k])==list:
- if type(ar[k])==list:
+ if isinstance(rd[k], list):
+ if isinstance(ar[k], list):
rd[k]=rd[k]+ar[k]
else:
rd[k].append(ar[k])
- elif type(rd[k])==dict:
- if type(ar[k])==dict:
+ elif isinstance(rd[k], dict):
+ if isinstance(ar[k], dict):
if k=='separatorsfor':
for k1 in ar[k].keys():
if k1 not in rd[k]:
@@ -654,7 +654,7 @@ def dictappend(rd,ar):
def applyrules(rules,d,var={}):
ret={}
- if type(rules)==list:
+ if isinstance(rules, list):
for r in rules:
rr=applyrules(r,d,var)
ret=dictappend(ret,rr)
@@ -671,9 +671,9 @@ def applyrules(rules,d,var={}):
for k in rules.keys():
if k=='separatorsfor':
ret[k]=rules[k]; continue
- if type(rules[k])==str:
+ if isinstance(rules[k], str):
ret[k]=replace(rules[k],d)
- elif type(rules[k])==list:
+ elif isinstance(rules[k], list):
ret[k]=[]
for i in rules[k]:
ar=applyrules({k:i},d,var)
@@ -681,13 +681,13 @@ def applyrules(rules,d,var={}):
ret[k].append(ar[k])
elif k[0]=='_':
continue
- elif type(rules[k])==dict:
+ elif isinstance(rules[k], dict):
ret[k]=[]
for k1 in rules[k].keys():
- if type(k1)==types.FunctionType and k1(var):
- if type(rules[k][k1])==list:
+ if isinstance(k1, types.FunctionType) and k1(var):
+ if isinstance(rules[k][k1], list):
for i in rules[k][k1]:
- if type(i)==dict:
+ if isinstance(i, dict):
res=applyrules({'supertext':i},d,var)
if 'supertext' in res:
i=res['supertext']
@@ -695,7 +695,7 @@ def applyrules(rules,d,var={}):
ret[k].append(replace(i,d))
else:
i=rules[k][k1]
- if type(i)==dict:
+ if isinstance(i, dict):
res=applyrules({'supertext':i},d)
if 'supertext' in res:
i=res['supertext']
@@ -703,7 +703,7 @@ def applyrules(rules,d,var={}):
ret[k].append(replace(i,d))
else:
errmess('applyrules: ignoring rule %s.\n'%repr(rules[k]))
- if type(ret[k])==list:
+ if isinstance(ret[k], list):
if len(ret[k])==1:
ret[k]=ret[k][0]
if ret[k]==[]:
diff --git a/numpy/f2py/cb_rules.py b/numpy/f2py/cb_rules.py
index 85e679060..f80ab06f0 100644
--- a/numpy/f2py/cb_rules.py
+++ b/numpy/f2py/cb_rules.py
@@ -466,7 +466,7 @@ def buildcallback(rout,um):
if '_break' in r:
break
if 'args' in rd and 'optargs' in rd:
- if type(rd['optargs'])==type([]):
+ if isinstance(rd['optargs'], list):
rd['optargs']=rd['optargs']+["""
#ifndef F2PY_CB_RETURNCOMPLEX
,
@@ -482,7 +482,7 @@ def buildcallback(rout,um):
,
#endif
"""]
- if type(rd['docreturn'])==list:
+ if isinstance(rd['docreturn'], list):
rd['docreturn']=stripcomma(replace('#docreturn#',{'docreturn':rd['docreturn']}))
optargs=stripcomma(replace('#docsignopt#',
{'docsignopt':rd['docsignopt']}
@@ -499,10 +499,10 @@ def buildcallback(rout,um):
rd['docstrsigns']=[]
rd['latexdocstrsigns']=[]
for k in ['docstrreq','docstropt','docstrout','docstrcbs']:
- if k in rd and type(rd[k])==list:
+ if k in rd and isinstance(rd[k], list):
rd['docstrsigns']=rd['docstrsigns']+rd[k]
k='latex'+k
- if k in rd and type(rd[k])==list:
+ if k in rd and isinstance(rd[k], list):
rd['latexdocstrsigns']=rd['latexdocstrsigns']+rd[k][0:1]+\
['\\begin{description}']+rd[k][1:]+\
['\\end{description}']
@@ -515,7 +515,7 @@ def buildcallback(rout,um):
ar=applyrules(cb_routine_rules,rd)
cfuncs.callbacks[rd['name']]=ar['body']
- if type(ar['need'])==str:
+ if isinstance(ar['need'], str):
ar['need']=[ar['need']]
if 'need' in rd:
diff --git a/numpy/f2py/cfuncs.py b/numpy/f2py/cfuncs.py
index a16a07d59..2229c3e24 100644
--- a/numpy/f2py/cfuncs.py
+++ b/numpy/f2py/cfuncs.py
@@ -1128,10 +1128,10 @@ def buildcfuncs():
def append_needs(need,flag=1):
global outneeds,needs
- if type(need)==list:
+ if isinstance(need, list):
for n in need:
append_needs(n,flag)
- elif type(need)==str:
+ elif isinstance(need, str):
if not need: return
if need in includes0:
n = 'includes0'
@@ -1160,7 +1160,7 @@ def append_needs(need,flag=1):
if need in needs:
for nn in needs[need]:
t=append_needs(nn,0)
- if type(t)==dict:
+ if isinstance(t, dict):
for nnn in t.keys():
if nnn in tmp:
tmp[nnn]=tmp[nnn]+t[nnn]
@@ -1176,7 +1176,7 @@ def append_needs(need,flag=1):
if need in needs:
for nn in needs[need]:
t=append_needs(nn,flag)
- if type(t)==dict:
+ if isinstance(t, dict):
for nnn in t.keys():
if nnn in tmp:
tmp[nnn]=t[nnn]+tmp[nnn]
diff --git a/numpy/f2py/common_rules.py b/numpy/f2py/common_rules.py
index bfeaf4c9b..dd44e3326 100644
--- a/numpy/f2py/common_rules.py
+++ b/numpy/f2py/common_rules.py
@@ -121,7 +121,7 @@ def buildhooks(m):
dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n,vars[n])))
if hasnote(vars[n]):
note = vars[n]['note']
- if type(note) is type([]): note='\n'.join(note)
+ if isinstance(note, list): note='\n'.join(note)
dadd('--- %s'%(note))
dadd('\\end{description}')
ret['docs'].append('"\t/%s/ %s\\n"'%(name,','.join(map(lambda v,d:v+d,inames,idims))))
diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py
index c86a15407..2ee8eb9a1 100755
--- a/numpy/f2py/crackfortran.py
+++ b/numpy/f2py/crackfortran.py
@@ -297,7 +297,7 @@ def readfortrancode(ffile,dowithline=show,istop=1):
spacedigits=[' '] + [str(_m) for _m in range(10)]
filepositiontext=''
fin=fileinput.FileInput(ffile)
- while 1:
+ while True:
l=fin.readline()
if not l: break
if fin.isfirstline():
@@ -381,7 +381,7 @@ def readfortrancode(ffile,dowithline=show,istop=1):
elif sourcecodeform=='free':
if not cont and ext=='.pyf' and mline_mark.match(l):
l = l + '\n'
- while 1:
+ while True:
lc = fin.readline()
if not lc:
errmess('Unexpected end of file when reading multiline\n')
@@ -1167,7 +1167,7 @@ def analyzeline(m,case,line):
groupcache[groupcounter]['f2pyenhancements'] = {}
d = groupcache[groupcounter]['f2pyenhancements']
if m.group('this')=='usercode' and 'usercode' in d:
- if type(d['usercode']) is type(''):
+ if isinstance(d['usercode'], str):
d['usercode'] = [d['usercode']]
d['usercode'].append(m.group('after'))
else:
@@ -1522,7 +1522,7 @@ def postcrack2(block,tab='',param_map=None):
global f90modulevars
if not f90modulevars:
return block
- if type(block)==list:
+ if isinstance(block, list):
ret = []
for g in block:
g = postcrack2(g,tab=tab+'\t',param_map=param_map)
@@ -1559,7 +1559,7 @@ def postcrack(block,args=None,tab=''):
determine expression types if in argument list
"""
global usermodules,onlyfunctions
- if type(block)==list:
+ if isinstance(block, list):
gret=[]
uret=[]
for g in block:
@@ -1571,7 +1571,7 @@ def postcrack(block,args=None,tab=''):
gret.append(g)
return uret+gret
setmesstext(block)
- if (not type(block)==dict) and 'block' not in block:
+ if not isinstance(block, dict) and 'block' not in block:
raise Exception('postcrack: Expected block dictionary instead of ' + \
str(block))
if 'name' in block and not block['name']=='unknown_interface':
@@ -1819,12 +1819,12 @@ def getarrlen(dl,args,star='*'):
except: edl.append(dl[0])
try: edl.append(myeval(dl[1],{},{}))
except: edl.append(dl[1])
- if type(edl[0]) is type(0):
+ if isinstance(edl[0], int):
p1 = 1-edl[0]
if p1==0: d = str(dl[1])
elif p1<0: d = '%s-%s'%(dl[1],-p1)
else: d = '%s+%s'%(dl[1],p1)
- elif type(edl[1]) is type(0):
+ elif isinstance(edl[1], int):
p1 = 1+edl[1]
if p1==0: d='-(%s)' % (dl[0])
else: d='%s-(%s)' % (p1,dl[0])
@@ -2042,7 +2042,7 @@ def get_parameters(vars, global_params={}):
params[n] = v
#print params
outmess('get_parameters: got "%s" on %s\n' % (msg,repr(v)))
- if isstring(vars[n]) and type(params[n]) is type(0):
+ if isstring(vars[n]) and isinstance(params[n], int):
params[n] = chr(params[n])
nl = n.lower()
if nl!=n:
@@ -2458,14 +2458,15 @@ determineexprtype_re_3 = re.compile(r'\A[+-]?[\d.]+[\d+-de.]*(_(P<name>[\w]+)|)\
determineexprtype_re_4 = re.compile(r'\A\(.*\)\Z',re.I)
determineexprtype_re_5 = re.compile(r'\A(?P<name>\w+)\s*\(.*?\)\s*\Z',re.I)
def _ensure_exprdict(r):
- if type(r) is type(0):
+ if isinstance(r, int):
return {'typespec':'integer'}
- if type(r) is type(0.0):
+ if isinstance(r, float):
return {'typespec':'real'}
- if type(r) is type(0j):
+ if isinstance(r, complex):
return {'typespec':'complex'}
- assert type(r) is type({}),repr(r)
- return r
+ if isinstance(r, dict):
+ return r
+ raise AssertionError(repr(r))
def determineexprtype(expr,vars,rules={}):
if expr in vars:
diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py
index 98f58e333..64c13fff0 100755
--- a/numpy/f2py/f2py2e.py
+++ b/numpy/f2py/f2py2e.py
@@ -339,7 +339,7 @@ def dict_append(d_out,d_in):
for (k,v) in d_in.items():
if k not in d_out:
d_out[k] = []
- if type(v) is list:
+ if isinstance(v, list):
d_out[k] = d_out[k] + v
else:
d_out[k].append(v)
diff --git a/numpy/f2py/f90mod_rules.py b/numpy/f2py/f90mod_rules.py
index b68a79b64..7e25a4930 100644
--- a/numpy/f2py/f90mod_rules.py
+++ b/numpy/f2py/f90mod_rules.py
@@ -119,7 +119,7 @@ def buildhooks(pymod):
dadd('\\subsection{Fortran 90/95 module \\texttt{%s}}\n'%(m['name']))
if hasnote(m):
note = m['note']
- if type(note) is type([]): note='\n'.join(note)
+ if isinstance(note, list): note='\n'.join(note)
dadd(note)
if onlyvars:
dadd('\\begin{description}')
@@ -145,7 +145,7 @@ def buildhooks(pymod):
dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n,var)))
if hasnote(var):
note = var['note']
- if type(note) is type([]): note='\n'.join(note)
+ if isinstance(note, list): note='\n'.join(note)
dadd('--- %s'%(note))
if isallocatable(var):
fargs.append('f2py_%s_getdims_%s'%(m['name'],n))
diff --git a/numpy/f2py/rules.py b/numpy/f2py/rules.py
index a76401ac9..f7f82fc99 100644
--- a/numpy/f2py/rules.py
+++ b/numpy/f2py/rules.py
@@ -1388,9 +1388,9 @@ def buildapi(rout):
vrd['check']=c
ar=applyrules(check_rules,vrd,var[a])
rd=dictappend(rd,ar)
- if type(rd['cleanupfrompyobj']) is list:
+ if isinstance(rd['cleanupfrompyobj'], list):
rd['cleanupfrompyobj'].reverse()
- if type(rd['closepyobjfrom']) is list:
+ if isinstance(rd['closepyobjfrom'], list):
rd['closepyobjfrom'].reverse()
rd['docsignature']=stripcomma(replace('#docsign##docsignopt##docsignxa#',
{'docsign':rd['docsign'],
@@ -1415,15 +1415,15 @@ def buildapi(rout):
else:
rd['callcompaqfortran']=cfs
rd['callfortran']=cfs
- if type(rd['docreturn'])==list:
+ if isinstance(rd['docreturn'], list):
rd['docreturn']=stripcomma(replace('#docreturn#',{'docreturn':rd['docreturn']}))+' = '
rd['docstrsigns']=[]
rd['latexdocstrsigns']=[]
for k in ['docstrreq','docstropt','docstrout','docstrcbs']:
- if k in rd and type(rd[k])==list:
+ if k in rd and isinstance(rd[k], list):
rd['docstrsigns']=rd['docstrsigns']+rd[k]
k='latex'+k
- if k in rd and type(rd[k])==list:
+ if k in rd and isinstance(rd[k], list):
rd['latexdocstrsigns']=rd['latexdocstrsigns']+rd[k][0:1]+\
['\\begin{description}']+rd[k][1:]+\
['\\end{description}']