diff options
author | Jarrod Millman <millman@berkeley.edu> | 2007-11-28 05:12:37 +0000 |
---|---|---|
committer | Jarrod Millman <millman@berkeley.edu> | 2007-11-28 05:12:37 +0000 |
commit | 6c00b1141fdfa7d168a9b82e6ab493c77f7c1621 (patch) | |
tree | 0e9b0714a7d0a5e83ca3d321b4d9aca588347f4a /numpy/f2py/capi_maps.py | |
parent | 3fe715c0d0deb78ace46c3dbaf3165e8c4283e3c (diff) | |
download | numpy-6c00b1141fdfa7d168a9b82e6ab493c77f7c1621.tar.gz |
use 'in' keyword to test dictionary membership
Diffstat (limited to 'numpy/f2py/capi_maps.py')
-rw-r--r-- | numpy/f2py/capi_maps.py | 121 |
1 files changed, 73 insertions, 48 deletions
diff --git a/numpy/f2py/capi_maps.py b/numpy/f2py/capi_maps.py index 592b83505..3dba288c6 100644 --- a/numpy/f2py/capi_maps.py +++ b/numpy/f2py/capi_maps.py @@ -175,10 +175,11 @@ if os.path.isfile('.f2py_f2cmap'): d1[k1.lower()] = d1[k1] d[k.lower()] = d[k] for k in d.keys(): - if not f2cmap_all.has_key(k): f2cmap_all[k]={} + if k not in f2cmap_all: + f2cmap_all[k]={} for k1 in d[k].keys(): - if c2py_map.has_key(d[k][k1]): - if f2cmap_all[k].has_key(k1): + if d[k][k1] in c2py_map: + if k1 in f2cmap_all[k]: outmess("\tWarning: redefinition of {'%s':{'%s':'%s'->'%s'}}\n"%(k,k1,f2cmap_all[k][k1],d[k][k1])) f2cmap_all[k][k1] = d[k][k1] outmess('\tMapping "%s(kind=%s)" to "%s"\n' % (k,k1,d[k][k1])) @@ -213,29 +214,33 @@ def getctype(var): """ ctype='void' if isfunction(var): - if var.has_key('result'): a=var['result'] - else: a=var['name'] - if var['vars'].has_key(a): return getctype(var['vars'][a]) - else: errmess('getctype: function %s has no return value?!\n'%a) + if 'result' in var: + a=var['result'] + else: + a=var['name'] + if a in var['vars']: + return getctype(var['vars'][a]) + else: + errmess('getctype: function %s has no return value?!\n'%a) elif issubroutine(var): return ctype - elif var.has_key('typespec') and f2cmap_all.has_key(var['typespec'].lower()): + elif 'typespec' in var and var['typespec'].lower() in f2cmap_all: typespec = var['typespec'].lower() f2cmap=f2cmap_all[typespec] ctype=f2cmap[''] # default type - if var.has_key('kindselector'): - if var['kindselector'].has_key('*'): + if 'kindselector' in var: + if '*' in var['kindselector']: try: ctype=f2cmap[var['kindselector']['*']] except KeyError: errmess('getctype: "%s %s %s" not supported.\n'%(var['typespec'],'*',var['kindselector']['*'])) - elif var['kindselector'].has_key('kind'): - if f2cmap_all.has_key(typespec+'kind'): + elif 'kind' in var['kindselector']: + if typespec+'kind' in f2cmap_all: f2cmap=f2cmap_all[typespec+'kind'] try: ctype=f2cmap[var['kindselector']['kind']] except KeyError: - if f2cmap_all.has_key(typespec): + if typespec in f2cmap_all: f2cmap=f2cmap_all[typespec] try: ctype=f2cmap[str(var['kindselector']['kind'])] @@ -247,25 +252,33 @@ def getctype(var): if not isexternal(var): errmess('getctype: No C-type found in "%s", assuming void.\n'%var) return ctype + def getstrlength(var): if isstringfunction(var): - if var.has_key('result'): a=var['result'] - else: a=var['name'] - if var['vars'].has_key(a): return getstrlength(var['vars'][a]) - else: errmess('getstrlength: function %s has no return value?!\n'%a) + if 'result' in var: + a=var['result'] + else: + a=var['name'] + if a in var['vars']: + return getstrlength(var['vars'][a]) + else: + errmess('getstrlength: function %s has no return value?!\n'%a) if not isstring(var): errmess('getstrlength: expected a signature of a string but got: %s\n'%(`var`)) len='1' - if var.has_key('charselector'): + if 'charselector' in var: a=var['charselector'] - if a.has_key('*'): len=a['*'] - elif a.has_key('len'): len=a['len'] + if '*' in a: + len=a['*'] + elif 'len' in a: + len=a['len'] if re.match(r'\(\s*([*]|[:])\s*\)',len) or re.match(r'([*]|[:])',len): #if len in ['(*)','*','(:)',':']: if isintent_hide(var): errmess('getstrlength:intent(hide): expected a string with defined length but got: %s\n'%(`var`)) len='-1' return len + def getarrdims(a,var,verbose=0): global depargs ret={} @@ -319,13 +332,18 @@ def getarrdims(a,var,verbose=0): # if not isintent_c(var): # var['dimension'].reverse() return ret + def getpydocsign(a,var): global lcb_map if isfunction(var): - if var.has_key('result'): af=var['result'] - else: af=var['name'] - if var['vars'].has_key(af): return getpydocsign(af,var['vars'][af]) - else: errmess('getctype: function %s has no return value?!\n'%af) + if 'result' in var: + af=var['result'] + else: + af=var['name'] + if af in var['vars']: + return getpydocsign(af,var['vars'][af]) + else: + errmess('getctype: function %s has no return value?!\n'%af) return '','' sig,sigout=a,a opt='' @@ -370,7 +388,7 @@ def getpydocsign(a,var): %(out_a,rank,c2pycode_map[ctype],','.join(dim),a) elif isexternal(var): ua='' - if lcb_map.has_key(a) and lcb2_map.has_key(lcb_map[a]) and lcb2_map[lcb_map[a]].has_key('argname'): + if a in lcb_map and lcb_map[a] in lcb2_map and 'argname' in lcb2_map[lcb_map[a]]: ua=lcb2_map[lcb_map[a]]['argname'] if not ua==a: ua=' => %s'%ua else: ua='' @@ -379,6 +397,7 @@ def getpydocsign(a,var): else: errmess('getpydocsign: Could not resolve docsignature for "%s".\\n'%a) return sig,sigout + def getarrdocsign(a,var): ctype=getctype(var) if isstring(var) and (not isarray(var)): @@ -446,7 +465,7 @@ def sign2map(a,var): else: ret['intent'] = 'F2PY_INTENT_IN' if isarray(var): ret['varrformat']='N' - elif c2buildvalue_map.has_key(ret['ctype']): + elif ret['ctype'] in c2buildvalue_map: ret['varrformat']=c2buildvalue_map[ret['ctype']] else: ret['varrformat']='O' ret['init'],ret['showinit']=getinit(a,var) @@ -454,7 +473,7 @@ def sign2map(a,var): ret['init.r'],ret['init.i'] = markoutercomma(ret['init'][1:-1]).split('@,@') if isexternal(var): ret['cbnamekey']=a - if lcb_map.has_key(a): + if a in lcb_map: ret['cbname']=lcb_map[a] ret['maxnofargs']=lcb2_map[lcb_map[a]]['maxnofargs'] ret['nofoptargs']=lcb2_map[lcb_map[a]]['nofoptargs'] @@ -468,7 +487,8 @@ def sign2map(a,var): if isarray(var): ret=dictappend(ret,getarrdims(a,var)) dim=copy.copy(var['dimension']) - if c2capi_map.has_key(ret['ctype']): ret['atype']=c2capi_map[ret['ctype']] + if ret['ctype'] in c2capi_map: + ret['atype']=c2capi_map[ret['ctype']] # Debug info if debugcapi(var): il=[isintent_in,'input',isintent_out,'output', @@ -502,13 +522,13 @@ def sign2map(a,var): else: ret['vardebuginfo']='debug-capi:%s %s=%s:%s'%(ret['ctype'],a,ret['showinit'],','.join(rl)) if isscalar(var): - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['vardebugshowvalue']='debug-capi:%s=%s'%(a,cformat_map[ret['ctype']]) if isstring(var): ret['vardebugshowvalue']='debug-capi:slen(%s)=%%d %s=\\"%%s\\"'%(a,a) if isexternal(var): ret['vardebugshowvalue']='debug-capi:%s=%%p'%(a) - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['varshowvalue']='#name#:%s=%s'%(a,cformat_map[ret['ctype']]) ret['showvalueformat']='%s'%(cformat_map[ret['ctype']]) if isstring(var): @@ -548,36 +568,38 @@ def routsign2map(rout): else: ret['F_WRAPPEDFUNC'] = 'F_WRAPPEDFUNC' lcb_map={} - if rout.has_key('use'): + if 'use' in rout: for u in rout['use'].keys(): - if cb_rules.cb_map.has_key(u): + if u in cb_rules.cb_map: for un in cb_rules.cb_map[u]: ln=un[0] - if rout['use'][u].has_key('map'): + if 'map' in rout['use'][u]: for k in rout['use'][u]['map'].keys(): if rout['use'][u]['map'][k]==un[0]: ln=k;break lcb_map[ln]=un[1] #else: # errmess('routsign2map: cb_map does not contain module "%s" used in "use" statement.\n'%(u)) - elif rout.has_key('externals') and rout['externals']: + elif 'externals' in rout and rout['externals']: errmess('routsign2map: Confused: function %s has externals %s but no "use" statement.\n'%(ret['name'],`rout['externals']`)) ret['callprotoargument'] = getcallprotoargument(rout,lcb_map) or '' if isfunction(rout): - if rout.has_key('result'): a=rout['result'] - else: a=rout['name'] + if 'result' in rout: + a=rout['result'] + else: + a=rout['name'] ret['rname']=a ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,rout) ret['ctype']=getctype(rout['vars'][a]) if hasresultnote(rout): ret['resultnote']=rout['vars'][a]['note'] rout['vars'][a]['note']=['See elsewhere.'] - if c2buildvalue_map.has_key(ret['ctype']): + if ret['ctype'] in c2buildvalue_map: ret['rformat']=c2buildvalue_map[ret['ctype']] else: ret['rformat']='O' errmess('routsign2map: no c2buildvalue key for type %s\n'%(`ret['ctype']`)) if debugcapi(rout): - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['routdebugshowvalue']='debug-capi:%s=%s'%(a,cformat_map[ret['ctype']]) if isstringfunction(rout): ret['routdebugshowvalue']='debug-capi:slen(%s)=%%d %s=\\"%%s\\"'%(a,a) @@ -619,9 +641,9 @@ def modsign2map(m): def cb_sign2map(a,var): ret={'varname':a} ret['ctype']=getctype(var) - if c2capi_map.has_key(ret['ctype']): + if ret['ctype'] in c2capi_map: ret['atype']=c2capi_map[ret['ctype']] - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['showvalueformat']='%s'%(cformat_map[ret['ctype']]) if isarray(var): ret=dictappend(ret,getarrdims(a,var)) @@ -669,13 +691,15 @@ return_value= """ else: ret['returncptr'] = 'return_value=' - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['showvalueformat']='%s'%(cformat_map[ret['ctype']]) if isstringfunction(rout): ret['strlength']=getstrlength(rout) if isfunction(rout): - if rout.has_key('result'): a=rout['result'] - else: a=rout['name'] + if 'result' in rout: + a=rout['result'] + else: + a=rout['name'] if hasnote(rout['vars'][a]): ret['note']=rout['vars'][a]['note'] rout['vars'][a]['note']=['See elsewhere.'] @@ -695,7 +719,7 @@ void rout['note']=['See elsewhere.'] nofargs=0 nofoptargs=0 - if rout.has_key('args') and rout.has_key('vars'): + if 'args' in rout and 'vars' in rout: for a in rout['args']: var=rout['vars'][a] if l_or(isintent_in,isintent_inout)(var): @@ -704,7 +728,7 @@ void nofoptargs=nofoptargs+1 ret['maxnofargs']=`nofargs` ret['nofoptargs']=`nofoptargs` - if hasnote(rout) and isfunction(rout) and rout.has_key('result'): + if hasnote(rout) and isfunction(rout) and 'result' in rout: ret['routnote']=rout['note'] rout['note']=['See elsewhere.'] return ret @@ -712,10 +736,11 @@ void def common_sign2map(a,var): # obsolute ret={'varname':a} ret['ctype']=getctype(var) - if isstringarray(var): ret['ctype']='char' - if c2capi_map.has_key(ret['ctype']): + if isstringarray(var): + ret['ctype']='char' + if ret['ctype'] in c2capi_map: ret['atype']=c2capi_map[ret['ctype']] - if cformat_map.has_key(ret['ctype']): + if ret['ctype'] in cformat_map: ret['showvalueformat']='%s'%(cformat_map[ret['ctype']]) if isarray(var): ret=dictappend(ret,getarrdims(a,var)) |