summaryrefslogtreecommitdiff
path: root/numpy/f2py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-04-06 19:09:17 -0600
committerCharles Harris <charlesr.harris@gmail.com>2013-04-06 19:09:17 -0600
commitaab46a78cefe9fbd46104496ffad17667784a3f5 (patch)
tree1385a8433047a5cb92f3dcf3b2af12ca02b0025d /numpy/f2py
parent3c70e20a5f1aed4098ba66d21e6a1f60edc6fddd (diff)
downloadnumpy-aab46a78cefe9fbd46104496ffad17667784a3f5.tar.gz
2to3: apply `dict` fixer.
In Python3 `dict.items()`, `dict.keys()`, and `dict.values()` are iterators. This causes problems when a list is needed so the 2to3 fixer explicitly constructs a list when is finds on of those functions. However, that is usually not necessary, so a lot of the work here has been cleaning up those places where the fix is not needed. The big exception to that is the `numpy/f2py/crackfortran.py` file. The code there makes extensive use of loops that modify the contents of the dictionary being looped through, which raises an error. That together with the obscurity of the code in that file made it safest to let the `dict` fixer do its worst. Closes #3050.
Diffstat (limited to 'numpy/f2py')
-rw-r--r--numpy/f2py/auxfuncs.py2
-rw-r--r--numpy/f2py/capi_maps.py4
-rwxr-xr-xnumpy/f2py/crackfortran.py96
-rwxr-xr-xnumpy/f2py/f2py2e.py2
4 files changed, 52 insertions, 52 deletions
diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py
index 608ae5566..433fa1ccf 100644
--- a/numpy/f2py/auxfuncs.py
+++ b/numpy/f2py/auxfuncs.py
@@ -613,7 +613,7 @@ def replace(str,d,defaultsep=''):
return map(lambda d,f=replace,sep=defaultsep,s=str:f(s,d,sep),d)
if type(str)==types.ListType:
return map(lambda s,f=replace,sep=defaultsep,d=d:f(s,d,sep),str)
- for k in 2*d.keys():
+ for k in 2*list(d.keys()):
if k=='separatorsfor':
continue
if 'separatorsfor' in d and k in d['separatorsfor']:
diff --git a/numpy/f2py/capi_maps.py b/numpy/f2py/capi_maps.py
index 1aa67ff74..a7b513ee9 100644
--- a/numpy/f2py/capi_maps.py
+++ b/numpy/f2py/capi_maps.py
@@ -192,7 +192,7 @@ if os.path.isfile('.f2py_f2cmap'):
f2cmap_all[k][k1] = d[k][k1]
outmess('\tMapping "%s(kind=%s)" to "%s"\n' % (k,k1,d[k][k1]))
else:
- errmess("\tIgnoring map {'%s':{'%s':'%s'}}: '%s' must be in %s\n"%(k,k1,d[k][k1],d[k][k1],c2py_map.keys()))
+ errmess("\tIgnoring map {'%s':{'%s':'%s'}}: '%s' must be in %s\n"%(k,k1,d[k][k1],d[k][k1],list(c2py_map.keys())))
outmess('Succesfully applied user defined changes from .f2py_f2cmap\n')
except Exception as msg:
errmess('Failed to apply user defined changes from .f2py_f2cmap: %s. Skipping.\n' % (msg))
@@ -491,7 +491,7 @@ def sign2map(a,var):
ret['cblatexdocstr']=lcb2_map[lcb_map[a]]['latexdocstr']
else:
ret['cbname']=a
- errmess('sign2map: Confused: external %s is not in lcb_map%s.\n'%(a,lcb_map.keys()))
+ errmess('sign2map: Confused: external %s is not in lcb_map%s.\n'%(a,list(lcb_map.keys())))
if isstring(var):
ret['length']=getstrlength(var)
if isarray(var):
diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py
index 97a58813e..98872516e 100755
--- a/numpy/f2py/crackfortran.py
+++ b/numpy/f2py/crackfortran.py
@@ -680,7 +680,7 @@ def appenddecl(decl,decl2,force=1):
if not decl: decl={}
if not decl2: return decl
if decl is decl2: return decl
- for k in decl2.keys():
+ for k in list(decl2.keys()):
if k=='typespec':
if force or k not in decl:
decl[k]=decl2[k]
@@ -836,7 +836,7 @@ def analyzeline(m,case,line):
groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'],currentfilename)
else:
groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'],groupcache[groupcounter-1]['name'])
- for k in groupcache[groupcounter].keys():
+ for k in list(groupcache[groupcounter].keys()):
if not groupcache[groupcounter][k]:
del groupcache[groupcounter][k]
@@ -1031,7 +1031,7 @@ def analyzeline(m,case,line):
decl['kindselector']=kindselect
decl['charselector']=charselect
decl['typename']=typename
- for k in decl.keys():
+ for k in list(decl.keys()):
if not decl[k]: del decl[k]
for r in markoutercomma(m1.group('after')).split('@,@'):
if '-' in r:
@@ -1205,7 +1205,7 @@ def cracktypespec0(typespec,ll):
outmess('cracktypespec0: no kind/char_selector pattern found for line.\n')
return
d=m1.groupdict()
- for k in d.keys(): d[k]=unmarkouterparen(d[k])
+ for k in list(d.keys()): d[k]=unmarkouterparen(d[k])
if typespec in ['complex','integer','logical','real','character','type']:
selector=d['this']
ll=d['after']
@@ -1285,7 +1285,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
if 'kindselector' not in edecl:
edecl['kindselector']=copy.copy(kindselect)
elif kindselect:
- for k in kindselect.keys():
+ for k in list(kindselect.keys()):
if k in edecl['kindselector'] and (not kindselect[k]==edecl['kindselector'][k]):
outmess('updatevars: attempt to change the kindselector "%s" of "%s" ("%s") to "%s". Ignoring.\n' % (k,ename,edecl['kindselector'][k],kindselect[k]))
else: edecl['kindselector'][k]=copy.copy(kindselect[k])
@@ -1296,7 +1296,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
errmess('updatevars:%s: attempt to change empty charselector to %r. Ignoring.\n' \
%(ename,charselect))
elif charselect:
- for k in charselect.keys():
+ for k in list(charselect.keys()):
if k in edecl['charselector'] and (not charselect[k]==edecl['charselector'][k]):
outmess('updatevars: attempt to change the charselector "%s" of "%s" ("%s") to "%s". Ignoring.\n' % (k,ename,edecl['charselector'][k],charselect[k]))
else: edecl['charselector'][k]=copy.copy(charselect[k])
@@ -1322,7 +1322,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
d1=m1.groupdict()
for lk in ['len','array','init']:
if d1[lk+'2'] is not None: d1[lk]=d1[lk+'2']; del d1[lk+'2']
- for k in d1.keys():
+ for k in list(d1.keys()):
if d1[k] is not None: d1[k]=unmarkouterparen(d1[k])
else: del d1[k]
if 'len' in d1 and 'array' in d1:
@@ -1364,7 +1364,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
edecl['=']=d1['init']
else:
outmess('updatevars: could not crack entity declaration "%s". Ignoring.\n'%(ename+m.group('after')))
- for k in edecl.keys():
+ for k in list(edecl.keys()):
if not edecl[k]:
del edecl[k]
groupcache[groupcounter]['vars'][ename]=edecl
@@ -1386,9 +1386,9 @@ def cracktypespec(typespec,selector):
kindselect=kindselect.groupdict()
kindselect['*']=kindselect['kind2']
del kindselect['kind2']
- for k in kindselect.keys():
+ for k in list(kindselect.keys()):
if not kindselect[k]: del kindselect[k]
- for k,i in kindselect.items():
+ for k,i in list(kindselect.items()):
kindselect[k] = rmbadname1(i)
elif typespec=='character':
charselect=charselector.match(selector)
@@ -1407,9 +1407,9 @@ def cracktypespec(typespec,selector):
charselect[lk]=lenkind[lk]
del lenkind[lk+'2']
del charselect['lenkind']
- for k in charselect.keys():
+ for k in list(charselect.keys()):
if not charselect[k]: del charselect[k]
- for k,i in charselect.items():
+ for k,i in list(charselect.items()):
charselect[k] = rmbadname1(i)
elif typespec=='type':
typename=re.match(r'\s*\(\s*(?P<name>\w+)\s*\)',selector,re.I)
@@ -1449,7 +1449,7 @@ def setkindselector(decl,sel,force=0):
if 'kindselector' not in decl:
decl['kindselector']=sel
return decl
- for k in sel.keys():
+ for k in list(sel.keys()):
if force or k not in decl['kindselector']:
decl['kindselector'][k]=sel[k]
return decl
@@ -1462,7 +1462,7 @@ def setcharselector(decl,sel,force=0):
if 'charselector' not in decl:
decl['charselector']=sel
return decl
- for k in sel.keys():
+ for k in list(sel.keys()):
if force or k not in decl['charselector']:
decl['charselector'][k]=sel[k]
return decl
@@ -1496,7 +1496,7 @@ def get_useparameters(block, param_map=None):
usedict = get_usedict(block)
if not usedict:
return param_map
- for usename,mapping in usedict.items():
+ for usename,mapping in list(usedict.items()):
usename = usename.lower()
if usename not in f90modulevars:
outmess('get_useparameters: no module %s info used by %s\n' % (usename, block.get('name')))
@@ -1508,7 +1508,7 @@ def get_useparameters(block, param_map=None):
# XXX: apply mapping
if mapping:
errmess('get_useparameters: mapping for %s not impl.' % (mapping))
- for k,v in params.items():
+ for k,v in list(params.items()):
if k in param_map:
outmess('get_useparameters: overriding parameter %s with'\
' value from module %s' % (`k`,`usename`))
@@ -1534,7 +1534,7 @@ def postcrack2(block,tab='',param_map=None):
if param_map is not None and 'vars' in block:
vars = block['vars']
- for n in vars.keys():
+ for n in list(vars.keys()):
var = vars[n]
if 'kindselector' in var:
kind = var['kindselector']
@@ -1587,11 +1587,11 @@ def postcrack(block,args=None,tab=''):
## fromuser = []
if 'use' in block:
useblock=block['use']
- for k in useblock.keys():
+ for k in list(useblock.keys()):
if '__user__' in k:
userisdefined.append(k)
## if 'map' in useblock[k]:
-## for n in useblock[k]['map'].values():
+## for n in useblock[k]['map'].itervalues():
## if n not in fromuser: fromuser.append(n)
else: useblock={}
name=''
@@ -1648,7 +1648,7 @@ def postcrack(block,args=None,tab=''):
def sortvarnames(vars):
indep = []
dep = []
- for v in vars.keys():
+ for v in list(vars.keys()):
if 'depend' in vars[v] and vars[v]['depend']:
dep.append(v)
#print '%s depends on %s'%(v,vars[v]['depend'])
@@ -1682,7 +1682,7 @@ def sortvarnames(vars):
def analyzecommon(block):
if not hascommon(block): return block
commonvars=[]
- for k in block['common'].keys():
+ for k in list(block['common'].keys()):
comvars=[]
for e in block['common'][k]:
m=re.match(r'\A\s*\b(?P<name>.*?)\b\s*(\((?P<dims>.*?)\)|)\s*\Z',e,re.I)
@@ -1752,7 +1752,7 @@ def buildimplicitrules(block):
if verbose>1:
outmess('buildimplicitrules: no implicit rules for routine %s.\n'%`block['name']`)
else:
- for k in block['implicit'].keys():
+ for k in list(block['implicit'].keys()):
if block['implicit'][k].get('typespec') not in ['static','automatic']:
implicitrules[k]=block['implicit'][k]
else:
@@ -1934,7 +1934,7 @@ def _get_depend_dict(name, vars, deps):
return words
def _calc_depend_dict(vars):
- names = vars.keys()
+ names = list(vars.keys())
depend_dict = {}
for n in names:
_get_depend_dict(n, vars, depend_dict)
@@ -1945,12 +1945,12 @@ def get_sorted_names(vars):
"""
depend_dict = _calc_depend_dict(vars)
names = []
- for name in depend_dict.keys():
+ for name in list(depend_dict.keys()):
if not depend_dict[name]:
names.append(name)
del depend_dict[name]
while depend_dict:
- for name, lst in depend_dict.items():
+ for name, lst in list(depend_dict.items()):
new_lst = [n for n in lst if n in depend_dict]
if not new_lst:
names.append(name)
@@ -2067,7 +2067,7 @@ def _eval_scalar(value,params):
except Exception as msg:
errmess('"%s" in evaluating %r '\
'(available names: %s)\n' \
- % (msg,value,params.keys()))
+ % (msg,value,list(params.keys())))
return value
def analyzevars(block):
@@ -2081,7 +2081,7 @@ def analyzevars(block):
del vars['']
if 'attrspec' in block['vars']['']:
gen=block['vars']['']['attrspec']
- for n in vars.keys():
+ for n in list(vars.keys()):
for k in ['public','private']:
if k in gen:
vars[n]=setattrspec(vars[n],k)
@@ -2093,14 +2093,14 @@ def analyzevars(block):
svars.append(a)
except KeyError:
pass
- for n in vars.keys():
+ for n in list(vars.keys()):
if n not in args: svars.append(n)
params = get_parameters(vars, get_useparameters(block))
dep_matches = {}
name_match = re.compile(r'\w[\w\d_$]*').match
- for v in vars.keys():
+ for v in list(vars.keys()):
m = name_match(v)
if m:
n = v[m.start():m.end()]
@@ -2109,13 +2109,13 @@ def analyzevars(block):
except KeyError:
dep_matches[n] = re.compile(r'.*\b%s\b'%(v),re.I).match
for n in svars:
- if n[0] in attrrules.keys():
+ if n[0] in list(attrrules.keys()):
vars[n]=setattrspec(vars[n],attrrules[n[0]])
if 'typespec' not in vars[n]:
if not('attrspec' in vars[n] and 'external' in vars[n]['attrspec']):
if implicitrules:
ln0 = n[0].lower()
- for k in implicitrules[ln0].keys():
+ for k in list(implicitrules[ln0].keys()):
if k=='typespec' and implicitrules[ln0][k]=='undefined':
continue
if k not in vars[n]:
@@ -2194,7 +2194,7 @@ def analyzevars(block):
star=':'
if d in params:
d = str(params[d])
- for p in params.keys():
+ for p in list(params.keys()):
m = re.match(r'(?P<before>.*?)\b'+p+r'\b(?P<after>.*)',d,re.I)
if m:
#outmess('analyzevars:replacing parameter %s in %s (dimension of %s) with %s\n'%(`p`,`d`,`n`,`params[p]`))
@@ -2208,7 +2208,7 @@ def analyzevars(block):
d = '*'
if len(dl)==1 and not dl[0]==star: dl = ['1',dl[0]]
if len(dl)==2:
- d,v,di = getarrlen(dl,block['vars'].keys())
+ d,v,di = getarrlen(dl,list(block['vars'].keys()))
if d[:4] == '1 * ': d = d[4:]
if di and di[-4:] == '/(1)': di = di[:-4]
if v: savelindims[d] = v,di
@@ -2255,7 +2255,7 @@ def analyzevars(block):
d = savelindims[d][0]
else:
for r in block['args']:
- #for r in block['vars'].keys():
+ #for r in block['vars'].iterkeys():
if r not in vars:
continue
if re.match(r'.*?\b'+r+r'\b',d,re.I):
@@ -2323,13 +2323,13 @@ def analyzevars(block):
vars[n]['attrspec'].append('optional')
if 'depend' not in vars[n]:
vars[n]['depend']=[]
- for v,m in dep_matches.items():
+ for v,m in list(dep_matches.items()):
if m(vars[n]['=']): vars[n]['depend'].append(v)
if not vars[n]['depend']: del vars[n]['depend']
if isscalar(vars[n]):
vars[n]['='] = _eval_scalar(vars[n]['='],params)
- for n in vars.keys():
+ for n in list(vars.keys()):
if n==block['name']: # n is block name
if 'note' in vars[n]:
block['note']=vars[n]['note']
@@ -2365,12 +2365,12 @@ def analyzevars(block):
neededvars=copy.copy(block['args']+block['commonvars'])
else:
neededvars=copy.copy(block['args'])
- for n in vars.keys():
+ for n in list(vars.keys()):
if l_or(isintent_callback,isintent_aux)(vars[n]):
neededvars.append(n)
if 'entry' in block:
- neededvars.extend(block['entry'].keys())
- for k in block['entry'].keys():
+ neededvars.extend(list(block['entry'].keys()))
+ for k in list(block['entry'].keys()):
for n in block['entry'][k]:
if n not in neededvars:
neededvars.append(n)
@@ -2384,8 +2384,8 @@ def analyzevars(block):
if name in vars and 'intent' in vars[name]:
block['intent'] = vars[name]['intent']
if block['block'] == 'type':
- neededvars.extend(vars.keys())
- for n in vars.keys():
+ neededvars.extend(list(vars.keys()))
+ for n in list(vars.keys()):
if n not in neededvars:
del vars[n]
return vars
@@ -2435,7 +2435,7 @@ def analyzeargs(block):
args.append(a)
block['args']=args
if 'entry' in block:
- for k,args1 in block['entry'].items():
+ for k,args1 in list(block['entry'].items()):
for a in args1:
if a not in block['vars']:
block['vars'][a]={}
@@ -2536,7 +2536,7 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
args='(%s)'%','.join(argsl)
f2pyenhancements = ''
if 'f2pyenhancements' in block:
- for k in block['f2pyenhancements'].keys():
+ for k in list(block['f2pyenhancements'].keys()):
f2pyenhancements = '%s%s%s %s'%(f2pyenhancements,tab+tabchar,k,block['f2pyenhancements'][k])
intent_lst = block.get('intent',[])[:]
if blocktype=='function' and 'callback' in intent_lst:
@@ -2566,7 +2566,7 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
mess='! in %s'%block['from']
if 'entry' in block:
entry_stmts = ''
- for k,i in block['entry'].items():
+ for k,i in list(block['entry'].items()):
entry_stmts = '%s%sentry %s(%s)' \
% (entry_stmts,tab+tabchar,k,','.join(i))
body = body + entry_stmts
@@ -2577,7 +2577,7 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
def common2fortran(common,tab=''):
ret=''
- for k in common.keys():
+ for k in list(common.keys()):
if k=='_BLNK_':
ret='%s%scommon %s'%(ret,tab,','.join(common[k]))
else:
@@ -2586,7 +2586,7 @@ def common2fortran(common,tab=''):
def use2fortran(use,tab=''):
ret=''
- for m in use.keys():
+ for m in list(use.keys()):
ret='%s%suse %s,'%(ret,tab,m)
if use[m]=={}:
if ret and ret[-1]==',': ret=ret[:-1]
@@ -2595,7 +2595,7 @@ def use2fortran(use,tab=''):
ret='%s only:'%(ret)
if 'map' in use[m] and use[m]['map']:
c=' '
- for k in use[m]['map'].keys():
+ for k in list(use[m]['map'].keys()):
if k==use[m]['map'][k]:
ret='%s%s%s'%(ret,c,k); c=','
else:
@@ -2637,7 +2637,7 @@ def vars2fortran(block,vars,args,tab='', as_interface=False):
if 'varnames' in block:
nout.extend(block['varnames'])
if not as_interface:
- for a in vars.keys():
+ for a in list(vars.keys()):
if a not in nout:
nout.append(a)
for a in nout:
diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py
index 0886e8ebf..899de4753 100755
--- a/numpy/f2py/f2py2e.py
+++ b/numpy/f2py/f2py2e.py
@@ -469,7 +469,7 @@ def run_compile():
if s[:len(v)]==v:
from numpy.distutils import fcompiler
fcompiler.load_all_fcompiler_classes()
- allowed_keys = fcompiler.fcompiler_class.keys()
+ allowed_keys = list(fcompiler.fcompiler_class.keys())
nv = ov = s[len(v):].lower()
if ov not in allowed_keys:
vmap = {} # XXX