diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2013-04-06 19:09:17 -0600 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2013-04-06 19:09:17 -0600 |
commit | aab46a78cefe9fbd46104496ffad17667784a3f5 (patch) | |
tree | 1385a8433047a5cb92f3dcf3b2af12ca02b0025d /numpy/f2py | |
parent | 3c70e20a5f1aed4098ba66d21e6a1f60edc6fddd (diff) | |
download | numpy-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.py | 2 | ||||
-rw-r--r-- | numpy/f2py/capi_maps.py | 4 | ||||
-rwxr-xr-x | numpy/f2py/crackfortran.py | 96 | ||||
-rwxr-xr-x | numpy/f2py/f2py2e.py | 2 |
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 |