summaryrefslogtreecommitdiff
path: root/numpy/f2py
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2013-08-18 11:51:25 -0600
committerCharles Harris <charlesr.harris@gmail.com>2013-08-18 11:51:25 -0600
commitfbd6510d58a47ea0d166c48a82793f05425406e4 (patch)
tree330ce703eb02d20f96099c3fe0fc36ae33d4905b /numpy/f2py
parent8ddb0ce0acafe75d78df528b4d2540dfbf4b364d (diff)
downloadnumpy-fbd6510d58a47ea0d166c48a82793f05425406e4.tar.gz
STY: Giant comma spacing fixup.
Run the 2to3 ws_comma fixer on *.py files. Some lines are now too long and will need to be broken at some point. OTOH, some lines were already too long and need to be broken at some point. Now seems as good a time as any to do this with open PRs at a minimum.
Diffstat (limited to 'numpy/f2py')
-rw-r--r--numpy/f2py/__init__.py10
-rw-r--r--numpy/f2py/auxfuncs.py136
-rw-r--r--numpy/f2py/capi_maps.py314
-rw-r--r--numpy/f2py/cb_rules.py204
-rw-r--r--numpy/f2py/cfuncs.py64
-rw-r--r--numpy/f2py/common_rules.py46
-rwxr-xr-xnumpy/f2py/crackfortran.py800
-rw-r--r--numpy/f2py/diagnose.py24
-rwxr-xr-xnumpy/f2py/doc/collectinput.py8
-rw-r--r--numpy/f2py/docs/pytest.py4
-rw-r--r--numpy/f2py/docs/usersguide/setup_example.py4
-rwxr-xr-xnumpy/f2py/f2py2e.py84
-rw-r--r--numpy/f2py/f2py_testing.py12
-rw-r--r--numpy/f2py/f90mod_rules.py72
-rw-r--r--numpy/f2py/func2subr.py76
-rw-r--r--numpy/f2py/rules.py568
-rw-r--r--numpy/f2py/setup.py10
-rw-r--r--numpy/f2py/tests/test_array_from_pyobj.py282
-rw-r--r--numpy/f2py/tests/test_assumed_shape.py22
-rw-r--r--numpy/f2py/tests/test_callback.py32
-rw-r--r--numpy/f2py/tests/test_kind.py4
-rw-r--r--numpy/f2py/tests/test_return_character.py18
-rw-r--r--numpy/f2py/tests/test_return_complex.py24
-rw-r--r--numpy/f2py/tests/test_return_integer.py18
-rw-r--r--numpy/f2py/tests/test_return_logical.py22
-rw-r--r--numpy/f2py/tests/test_return_real.py20
-rw-r--r--numpy/f2py/tests/test_size.py28
-rw-r--r--numpy/f2py/use_rules.py30
28 files changed, 1468 insertions, 1468 deletions
diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py
index 26a63daa8..ccdbd4e0b 100644
--- a/numpy/f2py/__init__.py
+++ b/numpy/f2py/__init__.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
from __future__ import division, absolute_import, print_function
-__all__ = ['run_main','compile','f2py_testing']
+__all__ = ['run_main', 'compile', 'f2py_testing']
import os
import sys
@@ -32,13 +32,13 @@ def compile(source,
else:
fname = source_fn
- f = open(fname,'w')
+ f = open(fname, 'w')
f.write(source)
f.close()
- args = ' -c -m %s %s %s'%(modulename,fname,extra_args)
- c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' %(sys.executable,args)
- s,o = exec_command(c)
+ args = ' -c -m %s %s %s'%(modulename, fname, extra_args)
+ c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' %(sys.executable, args)
+ s, o = exec_command(c)
if source_fn is None:
try: os.remove(fname)
except OSError: pass
diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py
index e835090f7..2e016e186 100644
--- a/numpy/f2py/auxfuncs.py
+++ b/numpy/f2py/auxfuncs.py
@@ -37,7 +37,7 @@ wrapfuncs = 1
def outmess(t):
- if options.get('verbose',1):
+ if options.get('verbose', 1):
sys.stdout.write(t)
def debugcapi(var):
@@ -68,7 +68,7 @@ def isscalar(var):
return not (isarray(var) or isstring(var) or isexternal(var))
def iscomplex(var):
- return isscalar(var) and var.get('typespec') in ['complex','double complex']
+ return isscalar(var) and var.get('typespec') in ['complex', 'double complex']
def islogical(var):
return isscalar(var) and var.get('typespec')=='logical'
@@ -91,7 +91,7 @@ def get_kind(var):
def islong_long(var):
if not isscalar(var):
return 0
- if var.get('typespec') not in ['integer','logical']:
+ if var.get('typespec') not in ['integer', 'logical']:
return 0
return get_kind(var)=='8'
@@ -143,7 +143,7 @@ def islong_complex(var):
return get_kind(var)=='32'
def iscomplexarray(var):
- return isarray(var) and var.get('typespec') in ['complex','double complex']
+ return isarray(var) and var.get('typespec') in ['complex', 'double complex']
def isint1array(var):
return isarray(var) and var.get('typespec')=='integer' \
@@ -216,7 +216,7 @@ def hasassumedshape(rout):
if rout.get('hasassumedshape'):
return True
for a in rout['args']:
- for d in rout['vars'].get(a,{}).get('dimension',[]):
+ for d in rout['vars'].get(a, {}).get('dimension', []):
if d==':':
rout['hasassumedshape'] = True
return True
@@ -332,53 +332,53 @@ def isintent_inout(var):
return 'intent' in var and ('inout' in var['intent'] or 'outin' in var['intent']) and 'in' not in var['intent'] and 'hide' not in var['intent'] and 'inplace' not in var['intent']
def isintent_out(var):
- return 'out' in var.get('intent',[])
+ return 'out' in var.get('intent', [])
def isintent_hide(var):
- return ('intent' in var and ('hide' in var['intent'] or ('out' in var['intent'] and 'in' not in var['intent'] and (not l_or(isintent_inout,isintent_inplace)(var)))))
+ return ('intent' in var and ('hide' in var['intent'] or ('out' in var['intent'] and 'in' not in var['intent'] and (not l_or(isintent_inout, isintent_inplace)(var)))))
def isintent_nothide(var):
return not isintent_hide(var)
def isintent_c(var):
- return 'c' in var.get('intent',[])
+ return 'c' in var.get('intent', [])
# def isintent_f(var):
# return not isintent_c(var)
def isintent_cache(var):
- return 'cache' in var.get('intent',[])
+ return 'cache' in var.get('intent', [])
def isintent_copy(var):
- return 'copy' in var.get('intent',[])
+ return 'copy' in var.get('intent', [])
def isintent_overwrite(var):
- return 'overwrite' in var.get('intent',[])
+ return 'overwrite' in var.get('intent', [])
def isintent_callback(var):
- return 'callback' in var.get('intent',[])
+ return 'callback' in var.get('intent', [])
def isintent_inplace(var):
- return 'inplace' in var.get('intent',[])
+ return 'inplace' in var.get('intent', [])
def isintent_aux(var):
- return 'aux' in var.get('intent',[])
+ return 'aux' in var.get('intent', [])
def isintent_aligned4(var):
- return 'aligned4' in var.get('intent',[])
+ return 'aligned4' in var.get('intent', [])
def isintent_aligned8(var):
- return 'aligned8' in var.get('intent',[])
+ return 'aligned8' in var.get('intent', [])
def isintent_aligned16(var):
- return 'aligned16' in var.get('intent',[])
-
-isintent_dict = {isintent_in:'INTENT_IN',isintent_inout:'INTENT_INOUT',
- isintent_out:'INTENT_OUT',isintent_hide:'INTENT_HIDE',
- isintent_cache:'INTENT_CACHE',
- isintent_c:'INTENT_C',isoptional:'OPTIONAL',
- isintent_inplace:'INTENT_INPLACE',
- isintent_aligned4:'INTENT_ALIGNED4',
- isintent_aligned8:'INTENT_ALIGNED8',
- isintent_aligned16:'INTENT_ALIGNED16',
+ return 'aligned16' in var.get('intent', [])
+
+isintent_dict = {isintent_in: 'INTENT_IN', isintent_inout: 'INTENT_INOUT',
+ isintent_out: 'INTENT_OUT', isintent_hide: 'INTENT_HIDE',
+ isintent_cache: 'INTENT_CACHE',
+ isintent_c: 'INTENT_C', isoptional: 'OPTIONAL',
+ isintent_inplace: 'INTENT_INPLACE',
+ isintent_aligned4: 'INTENT_ALIGNED4',
+ isintent_aligned8: 'INTENT_ALIGNED8',
+ isintent_aligned16: 'INTENT_ALIGNED16',
}
def isprivate(var):
@@ -390,7 +390,7 @@ def hasinitvalue(var):
def hasinitvalueasstring(var):
if not hasinitvalue(var):
return 0
- return var['='][0] in ['"',"'"]
+ return var['='][0] in ['"', "'"]
def hasnote(var):
return 'note' in var
@@ -444,25 +444,25 @@ class F2PYError(Exception):
pass
class throw_error:
- def __init__(self,mess):
+ def __init__(self, mess):
self.mess = mess
- def __call__(self,var):
- mess = '\n\n var = %s\n Message: %s\n' % (var,self.mess)
+ def __call__(self, var):
+ mess = '\n\n var = %s\n Message: %s\n' % (var, self.mess)
raise F2PYError(mess)
def l_and(*f):
- l,l2='lambda v',[]
+ l, l2='lambda v', []
for i in range(len(f)):
- l='%s,f%d=f[%d]'%(l,i,i)
+ l='%s,f%d=f[%d]'%(l, i, i)
l2.append('f%d(v)'%(i))
- return eval('%s:%s'%(l,' and '.join(l2)))
+ return eval('%s:%s'%(l, ' and '.join(l2)))
def l_or(*f):
- l,l2='lambda v',[]
+ l, l2='lambda v', []
for i in range(len(f)):
- l='%s,f%d=f[%d]'%(l,i,i)
+ l='%s,f%d=f[%d]'%(l, i, i)
l2.append('f%d(v)'%(i))
- return eval('%s:%s'%(l,' or '.join(l2)))
+ return eval('%s:%s'%(l, ' or '.join(l2)))
def l_not(f):
return eval('lambda v,f=f:not f(v)')
@@ -508,22 +508,22 @@ def getmultilineblock(rout,blockname,comment=1,counter=0):
r = r[:-3]
else:
errmess("%s multiline block should end with `'''`: %s\n" \
- % (blockname,repr(r)))
+ % (blockname, repr(r)))
return r
def getcallstatement(rout):
- return getmultilineblock(rout,'callstatement')
+ return getmultilineblock(rout, 'callstatement')
def getcallprotoargument(rout,cb_map={}):
- r = getmultilineblock(rout,'callprotoargument',comment=0)
+ r = getmultilineblock(rout, 'callprotoargument', comment=0)
if r: return r
if hascallstatement(rout):
outmess('warning: callstatement is defined without callprotoargument\n')
return
from .capi_maps import getctype
- arg_types,arg_types2 = [],[]
- if l_and(isstringfunction,l_not(isfunction_wrap))(rout):
- arg_types.extend(['char*','size_t'])
+ arg_types, arg_types2 = [], []
+ if l_and(isstringfunction, l_not(isfunction_wrap))(rout):
+ arg_types.extend(['char*', 'size_t'])
for n in rout['args']:
var = rout['vars'][n]
if isintent_callback(var):
@@ -532,7 +532,7 @@ def getcallprotoargument(rout,cb_map={}):
ctype = cb_map[n]+'_typedef'
else:
ctype = getctype(var)
- if l_and(isintent_c,l_or(isscalar,iscomplex))(var):
+ if l_and(isintent_c, l_or(isscalar, iscomplex))(var):
pass
elif isstring(var):
pass
@@ -550,16 +550,16 @@ def getcallprotoargument(rout,cb_map={}):
return proto_args
def getusercode(rout):
- return getmultilineblock(rout,'usercode')
+ return getmultilineblock(rout, 'usercode')
def getusercode1(rout):
- return getmultilineblock(rout,'usercode',counter=1)
+ return getmultilineblock(rout, 'usercode', counter=1)
def getpymethoddef(rout):
- return getmultilineblock(rout,'pymethoddef')
+ return getmultilineblock(rout, 'pymethoddef')
def getargs(rout):
- sortargs,args=[],[]
+ sortargs, args=[], []
if 'args' in rout:
args=rout['args']
if 'sortvars' in rout:
@@ -569,10 +569,10 @@ def getargs(rout):
if a not in sortargs:
sortargs.append(a)
else: sortargs=rout['args']
- return args,sortargs
+ return args, sortargs
def getargs2(rout):
- sortargs,args=[],rout.get('args',[])
+ sortargs, args=[], rout.get('args', [])
auxvars = [a for a in rout['vars'].keys() if isintent_aux(rout['vars'][a])\
and a not in args]
args = auxvars + args
@@ -583,23 +583,23 @@ def getargs2(rout):
if a not in sortargs:
sortargs.append(a)
else: sortargs=auxvars + rout['args']
- return args,sortargs
+ return args, sortargs
def getrestdoc(rout):
if 'f2pymultilines' not in rout:
return None
k = None
if rout['block']=='python module':
- k = rout['block'],rout['name']
- return rout['f2pymultilines'].get(k,None)
+ k = rout['block'], rout['name']
+ return rout['f2pymultilines'].get(k, None)
def gentitle(name):
l=(80-len(name)-6)//2
- return '/*%s %s %s*/'%(l*'*',name,l*'*')
+ return '/*%s %s %s*/'%(l*'*', name, l*'*')
def flatlist(l):
if isinstance(l, list):
- return reduce(lambda x,y,f=flatlist:x+f(y),l,[])
+ return reduce(lambda x,y,f=flatlist:x+f(y), l, [])
return [l]
def stripcomma(s):
@@ -619,15 +619,15 @@ def replace(str,d,defaultsep=''):
else:
sep=defaultsep
if isinstance(d[k], list):
- str=str.replace('#%s#'%(k),sep.join(flatlist(d[k])))
+ str=str.replace('#%s#'%(k), sep.join(flatlist(d[k])))
else:
- str=str.replace('#%s#'%(k),d[k])
+ str=str.replace('#%s#'%(k), d[k])
return str
-def dictappend(rd,ar):
+def dictappend(rd, ar):
if isinstance(ar, list):
for a in ar:
- rd=dictappend(rd,a)
+ rd=dictappend(rd, a)
return rd
for k in ar.keys():
if k[0]=='_':
@@ -647,7 +647,7 @@ def dictappend(rd,ar):
if k1 not in rd[k]:
rd[k][k1]=ar[k][k1]
else:
- rd[k]=dictappend(rd[k],ar[k])
+ rd[k]=dictappend(rd[k], ar[k])
else:
rd[k]=ar[k]
return rd
@@ -656,15 +656,15 @@ def applyrules(rules,d,var={}):
ret={}
if isinstance(rules, list):
for r in rules:
- rr=applyrules(r,d,var)
- ret=dictappend(ret,rr)
+ rr=applyrules(r, d, var)
+ ret=dictappend(ret, rr)
if '_break' in rr:
break
return ret
if '_check' in rules and (not rules['_check'](var)):
return ret
if 'need' in rules:
- res = applyrules({'needs':rules['need']},d,var)
+ res = applyrules({'needs':rules['need']}, d, var)
if 'needs' in res:
cfuncs.append_needs(res['needs'])
@@ -672,11 +672,11 @@ def applyrules(rules,d,var={}):
if k=='separatorsfor':
ret[k]=rules[k]; continue
if isinstance(rules[k], str):
- ret[k]=replace(rules[k],d)
+ ret[k]=replace(rules[k], d)
elif isinstance(rules[k], list):
ret[k]=[]
for i in rules[k]:
- ar=applyrules({k:i},d,var)
+ ar=applyrules({k:i}, d, var)
if k in ar:
ret[k].append(ar[k])
elif k[0]=='_':
@@ -688,19 +688,19 @@ def applyrules(rules,d,var={}):
if isinstance(rules[k][k1], list):
for i in rules[k][k1]:
if isinstance(i, dict):
- res=applyrules({'supertext':i},d,var)
+ res=applyrules({'supertext':i}, d, var)
if 'supertext' in res:
i=res['supertext']
else: i=''
- ret[k].append(replace(i,d))
+ ret[k].append(replace(i, d))
else:
i=rules[k][k1]
if isinstance(i, dict):
- res=applyrules({'supertext':i},d)
+ res=applyrules({'supertext':i}, d)
if 'supertext' in res:
i=res['supertext']
else: i=''
- ret[k].append(replace(i,d))
+ ret[k].append(replace(i, d))
else:
errmess('applyrules: ignoring rule %s.\n'%repr(rules[k]))
if isinstance(ret[k], list):
diff --git a/numpy/f2py/capi_maps.py b/numpy/f2py/capi_maps.py
index 41bca45d2..536a576dd 100644
--- a/numpy/f2py/capi_maps.py
+++ b/numpy/f2py/capi_maps.py
@@ -34,22 +34,22 @@ lcb_map={}
lcb2_map={}
# forced casting: mainly caused by the fact that Python or Numeric
# C/APIs do not support the corresponding C types.
-c2py_map={'double':'float',
- 'float':'float', # forced casting
- 'long_double':'float', # forced casting
- 'char':'int', # forced casting
- 'signed_char':'int', # forced casting
- 'unsigned_char':'int', # forced casting
- 'short':'int', # forced casting
- 'unsigned_short':'int', # forced casting
- 'int':'int', # (forced casting)
- 'long':'int',
- 'long_long':'long',
- 'unsigned':'int', # forced casting
- 'complex_float':'complex', # forced casting
- 'complex_double':'complex',
- 'complex_long_double':'complex', # forced casting
- 'string':'string',
+c2py_map={'double': 'float',
+ 'float': 'float', # forced casting
+ 'long_double': 'float', # forced casting
+ 'char': 'int', # forced casting
+ 'signed_char': 'int', # forced casting
+ 'unsigned_char': 'int', # forced casting
+ 'short': 'int', # forced casting
+ 'unsigned_short': 'int', # forced casting
+ 'int': 'int', # (forced casting)
+ 'long': 'int',
+ 'long_long': 'long',
+ 'unsigned': 'int', # forced casting
+ 'complex_float': 'complex', # forced casting
+ 'complex_double': 'complex',
+ 'complex_long_double': 'complex', # forced casting
+ 'string': 'string',
}
c2capi_map={'double':'NPY_DOUBLE',
'float':'NPY_FLOAT',
@@ -71,24 +71,24 @@ c2capi_map={'double':'NPY_DOUBLE',
#These new maps aren't used anyhere yet, but should be by default
# unless building numeric or numarray extensions.
if using_newcore:
- c2capi_map={'double':'NPY_DOUBLE',
- 'float':'NPY_FLOAT',
- 'long_double':'NPY_LONGDOUBLE',
- 'char':'NPY_BYTE',
- 'unsigned_char':'NPY_UBYTE',
- 'signed_char':'NPY_BYTE',
- 'short':'NPY_SHORT',
- 'unsigned_short':'NPY_USHORT',
- 'int':'NPY_INT',
- 'unsigned':'NPY_UINT',
- 'long':'NPY_LONG',
- 'unsigned_long':'NPY_ULONG',
- 'long_long':'NPY_LONGLONG',
- 'unsigned_long_long':'NPY_ULONGLONG',
- 'complex_float':'NPY_CFLOAT',
- 'complex_double':'NPY_CDOUBLE',
- 'complex_long_double':'NPY_CDOUBLE',
- 'string':'NPY_CHAR', # f2py 2e is not ready for NPY_STRING (must set itemisize etc)
+ c2capi_map={'double': 'NPY_DOUBLE',
+ 'float': 'NPY_FLOAT',
+ 'long_double': 'NPY_LONGDOUBLE',
+ 'char': 'NPY_BYTE',
+ 'unsigned_char': 'NPY_UBYTE',
+ 'signed_char': 'NPY_BYTE',
+ 'short': 'NPY_SHORT',
+ 'unsigned_short': 'NPY_USHORT',
+ 'int': 'NPY_INT',
+ 'unsigned': 'NPY_UINT',
+ 'long': 'NPY_LONG',
+ 'unsigned_long': 'NPY_ULONG',
+ 'long_long': 'NPY_LONGLONG',
+ 'unsigned_long_long': 'NPY_ULONGLONG',
+ 'complex_float': 'NPY_CFLOAT',
+ 'complex_double': 'NPY_CDOUBLE',
+ 'complex_long_double': 'NPY_CDOUBLE',
+ 'string': 'NPY_CHAR', # f2py 2e is not ready for NPY_STRING (must set itemisize etc)
#'string':'NPY_STRING'
}
@@ -175,10 +175,10 @@ if os.path.isfile('.f2py_f2cmap'):
# in type specifications.
try:
outmess('Reading .f2py_f2cmap ...\n')
- f = open('.f2py_f2cmap','r')
- d = eval(f.read(),{},{})
+ f = open('.f2py_f2cmap', 'r')
+ d = eval(f.read(), {}, {})
f.close()
- for k,d1 in d.items():
+ for k, d1 in d.items():
for k1 in d1.keys():
d1[k1.lower()] = d1[k1]
d[k.lower()] = d[k]
@@ -188,31 +188,31 @@ if os.path.isfile('.f2py_f2cmap'):
for k1 in d[k].keys():
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]))
+ 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]))
+ 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],list(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))
-cformat_map={'double':'%g',
- 'float':'%g',
- 'long_double':'%Lg',
- 'char':'%d',
- 'signed_char':'%d',
- 'unsigned_char':'%hhu',
- 'short':'%hd',
- 'unsigned_short':'%hu',
- 'int':'%d',
- 'unsigned':'%u',
- 'long':'%ld',
- 'unsigned_long':'%lu',
- 'long_long':'%ld',
- 'complex_float':'(%g,%g)',
- 'complex_double':'(%g,%g)',
- 'complex_long_double':'(%Lg,%Lg)',
- 'string':'%s',
+cformat_map={'double': '%g',
+ 'float': '%g',
+ 'long_double': '%Lg',
+ 'char': '%d',
+ 'signed_char': '%d',
+ 'unsigned_char': '%hhu',
+ 'short': '%hd',
+ 'unsigned_short': '%hu',
+ 'int': '%d',
+ 'unsigned': '%u',
+ 'long': '%ld',
+ 'unsigned_long': '%lu',
+ 'long_long': '%ld',
+ 'complex_float': '(%g,%g)',
+ 'complex_double': '(%g,%g)',
+ 'complex_long_double': '(%Lg,%Lg)',
+ 'string': '%s',
}
############### Auxiliary functions
@@ -241,7 +241,7 @@ def getctype(var):
try:
ctype=f2cmap[var['kindselector']['*']]
except KeyError:
- errmess('getctype: "%s %s %s" not supported.\n'%(var['typespec'],'*',var['kindselector']['*']))
+ errmess('getctype: "%s %s %s" not supported.\n'%(var['typespec'], '*', var['kindselector']['*']))
elif 'kind' in var['kindselector']:
if typespec+'kind' in f2cmap_all:
f2cmap=f2cmap_all[typespec+'kind']
@@ -254,8 +254,8 @@ def getctype(var):
ctype=f2cmap[str(var['kindselector']['kind'])]
except KeyError:
errmess('getctype: "%s(kind=%s)" is mapped to C "%s" (to override define dict(%s = dict(%s="<C typespec>")) in %s/.f2py_f2cmap file).\n'\
- %(typespec,var['kindselector']['kind'], ctype,
- typespec,var['kindselector']['kind'], os.getcwd()))
+ %(typespec, var['kindselector']['kind'], ctype,
+ typespec, var['kindselector']['kind'], os.getcwd()))
else:
if not isexternal(var):
@@ -281,7 +281,7 @@ def getstrlength(var):
len=a['*']
elif 'len' in a:
len=a['len']
- if re.match(r'\(\s*([*]|[:])\s*\)',len) or re.match(r'([*]|[:])',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'%(repr(var)))
@@ -314,35 +314,35 @@ def getarrdims(a,var,verbose=0):
if dim[i] in depargs: v=[dim[i]]
else:
for va in depargs:
- if re.match(r'.*?\b%s\b.*'%va,dim[i]):
+ if re.match(r'.*?\b%s\b.*'%va, dim[i]):
v.append(va)
for va in v:
if depargs.index(va)>depargs.index(a):
dim[i]='*'
break
- ret['setdims'],i='',-1
+ ret['setdims'], i='', -1
for d in dim:
i=i+1
- if d not in ['*',':','(*)','(:)']:
- ret['setdims']='%s#varname#_Dims[%d]=%s,'%(ret['setdims'],i,d)
+ if d not in ['*', ':', '(*)', '(:)']:
+ ret['setdims']='%s#varname#_Dims[%d]=%s,'%(ret['setdims'], i, d)
if ret['setdims']: ret['setdims']=ret['setdims'][:-1]
- ret['cbsetdims'],i='',-1
+ ret['cbsetdims'], i='', -1
for d in var['dimension']:
i=i+1
- if d not in ['*',':','(*)','(:)']:
- ret['cbsetdims']='%s#varname#_Dims[%d]=%s,'%(ret['cbsetdims'],i,d)
+ if d not in ['*', ':', '(*)', '(:)']:
+ ret['cbsetdims']='%s#varname#_Dims[%d]=%s,'%(ret['cbsetdims'], i, d)
elif isintent_in(var):
outmess('getarrdims:warning: assumed shape array, using 0 instead of %r\n' \
% (d))
- ret['cbsetdims']='%s#varname#_Dims[%d]=%s,'%(ret['cbsetdims'],i,0)
+ ret['cbsetdims']='%s#varname#_Dims[%d]=%s,'%(ret['cbsetdims'], i, 0)
elif verbose :
- errmess('getarrdims: If in call-back function: array argument %s must have bounded dimensions: got %s\n'%(repr(a),repr(d)))
+ errmess('getarrdims: If in call-back function: array argument %s must have bounded dimensions: got %s\n'%(repr(a), repr(d)))
if ret['cbsetdims']: ret['cbsetdims']=ret['cbsetdims'][:-1]
# if not isintent_c(var):
# var['dimension'].reverse()
return ret
-def getpydocsign(a,var):
+def getpydocsign(a, var):
global lcb_map
if isfunction(var):
if 'result' in var:
@@ -350,11 +350,11 @@ def getpydocsign(a,var):
else:
af=var['name']
if af in var['vars']:
- return getpydocsign(af,var['vars'][af])
+ return getpydocsign(af, var['vars'][af])
else:
errmess('getctype: function %s has no return value?!\n'%af)
- return '',''
- sig,sigout=a,a
+ return '', ''
+ sig, sigout=a, a
opt=''
if isintent_in(var): opt='input'
elif isintent_inout(var): opt='in/output'
@@ -368,63 +368,63 @@ def getpydocsign(a,var):
ctype=getctype(var)
if hasinitvalue(var):
- init,showinit=getinit(a,var)
+ init, showinit=getinit(a, var)
init = ', optional\\n Default: %s' % showinit
if isscalar(var):
if isintent_inout(var):
- sig='%s : %s rank-0 array(%s,\'%s\')%s'%(a,opt,c2py_map[ctype],
+ sig='%s : %s rank-0 array(%s,\'%s\')%s'%(a, opt, c2py_map[ctype],
c2pycode_map[ctype], init)
else:
- sig='%s : %s %s%s'%(a,opt,c2py_map[ctype],init)
- sigout='%s : %s'%(out_a,c2py_map[ctype])
+ sig='%s : %s %s%s'%(a, opt, c2py_map[ctype], init)
+ sigout='%s : %s'%(out_a, c2py_map[ctype])
elif isstring(var):
if isintent_inout(var):
- sig='%s : %s rank-0 array(string(len=%s),\'c\')%s'%(a,opt,getstrlength(var),init)
+ sig='%s : %s rank-0 array(string(len=%s),\'c\')%s'%(a, opt, getstrlength(var), init)
else:
- sig='%s : %s string(len=%s)%s'%(a,opt,getstrlength(var),init)
- sigout='%s : string(len=%s)'%(out_a,getstrlength(var))
+ sig='%s : %s string(len=%s)%s'%(a, opt, getstrlength(var), init)
+ sigout='%s : string(len=%s)'%(out_a, getstrlength(var))
elif isarray(var):
dim=var['dimension']
rank=repr(len(dim))
- sig='%s : %s rank-%s array(\'%s\') with bounds (%s)%s'%(a,opt,rank,
+ sig='%s : %s rank-%s array(\'%s\') with bounds (%s)%s'%(a, opt, rank,
c2pycode_map[ctype],
','.join(dim), init)
if a==out_a:
sigout='%s : rank-%s array(\'%s\') with bounds (%s)'\
- %(a,rank,c2pycode_map[ctype],','.join(dim))
+ %(a, rank, c2pycode_map[ctype], ','.join(dim))
else:
sigout='%s : rank-%s array(\'%s\') with bounds (%s) and %s storage'\
- %(out_a,rank,c2pycode_map[ctype],','.join(dim),a)
+ %(out_a, rank, c2pycode_map[ctype], ','.join(dim), a)
elif isexternal(var):
ua=''
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=''
- sig='%s : call-back function%s'%(a,ua)
+ sig='%s : call-back function%s'%(a, ua)
sigout=sig
else:
errmess('getpydocsign: Could not resolve docsignature for "%s".\\n'%a)
- return sig,sigout
+ return sig, sigout
-def getarrdocsign(a,var):
+def getarrdocsign(a, var):
ctype=getctype(var)
if isstring(var) and (not isarray(var)):
- sig='%s : rank-0 array(string(len=%s),\'c\')'%(a,getstrlength(var))
+ sig='%s : rank-0 array(string(len=%s),\'c\')'%(a, getstrlength(var))
elif isscalar(var):
- sig='%s : rank-0 array(%s,\'%s\')'%(a,c2py_map[ctype],
+ sig='%s : rank-0 array(%s,\'%s\')'%(a, c2py_map[ctype],
c2pycode_map[ctype],)
elif isarray(var):
dim=var['dimension']
rank=repr(len(dim))
- sig='%s : rank-%s array(\'%s\') with bounds (%s)'%(a,rank,
+ sig='%s : rank-%s array(\'%s\') with bounds (%s)'%(a, rank,
c2pycode_map[ctype],
','.join(dim))
return sig
-def getinit(a,var):
- if isstring(var): init,showinit='""',"''"
- else: init,showinit='',''
+def getinit(a, var):
+ if isstring(var): init, showinit='""', "''"
+ else: init, showinit='', ''
if hasinitvalue(var):
init=var['=']
showinit=init
@@ -434,22 +434,22 @@ def getinit(a,var):
try:
v = var["="]
if ',' in v:
- ret['init.r'],ret['init.i']=markoutercomma(v[1:-1]).split('@,@')
+ ret['init.r'], ret['init.i']=markoutercomma(v[1:-1]).split('@,@')
else:
- v = eval(v,{},{})
- ret['init.r'],ret['init.i']=str(v.real),str(v.imag)
+ v = eval(v, {}, {})
+ ret['init.r'], ret['init.i']=str(v.real), str(v.imag)
except:
raise ValueError('getinit: expected complex number `(r,i)\' but got `%s\' as initial value of %r.' % (init, a))
if isarray(var):
- init='(capi_c.r=%s,capi_c.i=%s,capi_c)'%(ret['init.r'],ret['init.i'])
+ init='(capi_c.r=%s,capi_c.i=%s,capi_c)'%(ret['init.r'], ret['init.i'])
elif isstring(var):
- if not init: init,showinit='""',"''"
+ if not init: init, showinit='""', "''"
if init[0]=="'":
- init='"%s"'%(init[1:-1].replace('"','\\"'))
+ init='"%s"'%(init[1:-1].replace('"', '\\"'))
if init[0]=='"': showinit="'%s'"%(init[1:-1])
- return init,showinit
+ return init, showinit
-def sign2map(a,var):
+def sign2map(a, var):
"""
varname,ctype,atype
init,init.r,init.i,pytype
@@ -457,7 +457,7 @@ def sign2map(a,var):
varrfromat
intent
"""
- global lcb_map,cb_map
+ global lcb_map, cb_map
out_a = a
if isintent_out(var):
for k in var['intent']:
@@ -467,7 +467,7 @@ def sign2map(a,var):
ret={'varname':a,'outvarname':out_a}
ret['ctype']=getctype(var)
intent_flags = []
- for f,s in isintent_dict.items():
+ for f, s in isintent_dict.items():
if f(var): intent_flags.append('F2PY_%s'%s)
if intent_flags:
#XXX: Evaluate intent_flags here.
@@ -478,9 +478,9 @@ def sign2map(a,var):
elif ret['ctype'] in c2buildvalue_map:
ret['varrformat']=c2buildvalue_map[ret['ctype']]
else: ret['varrformat']='O'
- ret['init'],ret['showinit']=getinit(a,var)
+ ret['init'], ret['showinit']=getinit(a, var)
if hasinitvalue(var) and iscomplex(var) and not isarray(var):
- ret['init.r'],ret['init.i'] = markoutercomma(ret['init'][1:-1]).split('@,@')
+ ret['init.r'], ret['init.i'] = markoutercomma(ret['init'][1:-1]).split('@,@')
if isexternal(var):
ret['cbnamekey']=a
if a in lcb_map:
@@ -491,59 +491,59 @@ 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,list(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):
- ret=dictappend(ret,getarrdims(a,var))
+ ret=dictappend(ret, getarrdims(a, var))
dim=copy.copy(var['dimension'])
if ret['ctype'] in c2capi_map:
ret['atype']=c2capi_map[ret['ctype']]
# Debug info
if debugcapi(var):
- il=[isintent_in,'input',isintent_out,'output',
- isintent_inout,'inoutput',isrequired,'required',
- isoptional,'optional',isintent_hide,'hidden',
- iscomplex,'complex scalar',
- l_and(isscalar,l_not(iscomplex)),'scalar',
- isstring,'string',isarray,'array',
- iscomplexarray,'complex array',isstringarray,'string array',
- iscomplexfunction,'complex function',
- l_and(isfunction,l_not(iscomplexfunction)),'function',
- isexternal,'callback',
- isintent_callback,'callback',
- isintent_aux,'auxiliary',
+ il=[isintent_in, 'input', isintent_out, 'output',
+ isintent_inout, 'inoutput', isrequired, 'required',
+ isoptional, 'optional', isintent_hide, 'hidden',
+ iscomplex, 'complex scalar',
+ l_and(isscalar, l_not(iscomplex)), 'scalar',
+ isstring, 'string', isarray, 'array',
+ iscomplexarray, 'complex array', isstringarray, 'string array',
+ iscomplexfunction, 'complex function',
+ l_and(isfunction, l_not(iscomplexfunction)), 'function',
+ isexternal, 'callback',
+ isintent_callback, 'callback',
+ isintent_aux, 'auxiliary',
#ismutable,'mutable',l_not(ismutable),'immutable',
]
rl=[]
- for i in range(0,len(il),2):
+ for i in range(0, len(il), 2):
if il[i](var): rl.append(il[i+1])
if isstring(var):
- rl.append('slen(%s)=%s'%(a,ret['length']))
+ rl.append('slen(%s)=%s'%(a, ret['length']))
if isarray(var):
# if not isintent_c(var):
# var['dimension'].reverse()
- ddim=','.join(map(lambda x,y:'%s|%s'%(x,y),var['dimension'],dim))
+ ddim=','.join(map(lambda x, y:'%s|%s'%(x, y), var['dimension'], dim))
rl.append('dims(%s)'%ddim)
# if not isintent_c(var):
# var['dimension'].reverse()
if isexternal(var):
- ret['vardebuginfo']='debug-capi:%s=>%s:%s'%(a,ret['cbname'],','.join(rl))
+ ret['vardebuginfo']='debug-capi:%s=>%s:%s'%(a, ret['cbname'], ','.join(rl))
else:
- ret['vardebuginfo']='debug-capi:%s %s=%s:%s'%(ret['ctype'],a,ret['showinit'],','.join(rl))
+ ret['vardebuginfo']='debug-capi:%s %s=%s:%s'%(ret['ctype'], a, ret['showinit'], ','.join(rl))
if isscalar(var):
if ret['ctype'] in cformat_map:
- ret['vardebugshowvalue']='debug-capi:%s=%s'%(a,cformat_map[ret['ctype']])
+ 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)
+ ret['vardebugshowvalue']='debug-capi:slen(%s)=%%d %s=\\"%%s\\"'%(a, a)
if isexternal(var):
ret['vardebugshowvalue']='debug-capi:%s=%%p'%(a)
if ret['ctype'] in cformat_map:
- ret['varshowvalue']='#name#:%s=%s'%(a,cformat_map[ret['ctype']])
+ ret['varshowvalue']='#name#:%s=%s'%(a, cformat_map[ret['ctype']])
ret['showvalueformat']='%s'%(cformat_map[ret['ctype']])
if isstring(var):
- ret['varshowvalue']='#name#:slen(%s)=%%d %s=\\"%%s\\"'%(a,a)
- ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,var)
+ ret['varshowvalue']='#name#:slen(%s)=%%d %s=\\"%%s\\"'%(a, a)
+ ret['pydocsign'], ret['pydocsignout']=getpydocsign(a, var)
if hasnote(var):
ret['note']=var['note']
return ret
@@ -557,17 +557,17 @@ def routsign2map(rout):
global lcb_map
name = rout['name']
fname = getfortranname(rout)
- ret={'name':name,
- 'texname':name.replace('_','\\_'),
- 'name_lower':name.lower(),
- 'NAME':name.upper(),
- 'begintitle':gentitle(name),
- 'endtitle':gentitle('end of %s'%name),
- 'fortranname':fname,
- 'FORTRANNAME':fname.upper(),
- 'callstatement':getcallstatement(rout) or '',
- 'usercode':getusercode(rout) or '',
- 'usercode1':getusercode1(rout) or '',
+ ret={'name': name,
+ 'texname': name.replace('_', '\\_'),
+ 'name_lower': name.lower(),
+ 'NAME': name.upper(),
+ 'begintitle': gentitle(name),
+ 'endtitle': gentitle('end of %s'%name),
+ 'fortranname': fname,
+ 'FORTRANNAME': fname.upper(),
+ 'callstatement': getcallstatement(rout) or '',
+ 'usercode': getusercode(rout) or '',
+ 'usercode1': getusercode1(rout) or '',
}
if '_' in fname:
ret['F_FUNC'] = 'F_FUNC_US'
@@ -590,15 +590,15 @@ def routsign2map(rout):
#else:
# errmess('routsign2map: cb_map does not contain module "%s" used in "use" statement.\n'%(u))
elif 'externals' in rout and rout['externals']:
- errmess('routsign2map: Confused: function %s has externals %s but no "use" statement.\n'%(ret['name'],repr(rout['externals'])))
- ret['callprotoargument'] = getcallprotoargument(rout,lcb_map) or ''
+ errmess('routsign2map: Confused: function %s has externals %s but no "use" statement.\n'%(ret['name'], repr(rout['externals'])))
+ ret['callprotoargument'] = getcallprotoargument(rout, lcb_map) or ''
if isfunction(rout):
if 'result' in rout:
a=rout['result']
else:
a=rout['name']
ret['rname']=a
- ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,rout)
+ ret['pydocsign'], ret['pydocsignout']=getpydocsign(a, rout)
ret['ctype']=getctype(rout['vars'][a])
if hasresultnote(rout):
ret['resultnote']=rout['vars'][a]['note']
@@ -610,9 +610,9 @@ def routsign2map(rout):
errmess('routsign2map: no c2buildvalue key for type %s\n'%(repr(ret['ctype'])))
if debugcapi(rout):
if ret['ctype'] in cformat_map:
- ret['routdebugshowvalue']='debug-capi:%s=%s'%(a,cformat_map[ret['ctype']])
+ 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)
+ ret['routdebugshowvalue']='debug-capi:slen(%s)=%%d %s=\\"%%s\\"'%(a, a)
if isstringfunction(rout):
ret['rlength']=getstrlength(rout['vars'][a])
if ret['rlength']=='-1':
@@ -630,11 +630,11 @@ def modsign2map(m):
if ismodule(m):
ret={'f90modulename':m['name'],
'F90MODULENAME':m['name'].upper(),
- 'texf90modulename':m['name'].replace('_','\\_')}
+ 'texf90modulename':m['name'].replace('_', '\\_')}
else:
ret={'modulename':m['name'],
'MODULENAME':m['name'].upper(),
- 'texmodulename':m['name'].replace('_','\\_')}
+ 'texmodulename':m['name'].replace('_', '\\_')}
ret['restdoc'] = getrestdoc(m) or []
if hasnote(m):
ret['note']=m['note']
@@ -664,19 +664,19 @@ def cb_sign2map(a,var,index=None):
if ret['ctype'] in cformat_map:
ret['showvalueformat']='%s'%(cformat_map[ret['ctype']])
if isarray(var):
- ret=dictappend(ret,getarrdims(a,var))
- ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,var)
+ ret=dictappend(ret, getarrdims(a, var))
+ ret['pydocsign'], ret['pydocsignout']=getpydocsign(a, var)
if hasnote(var):
ret['note']=var['note']
var['note']=['See elsewhere.']
return ret
-def cb_routsign2map(rout,um):
+def cb_routsign2map(rout, um):
"""
name,begintitle,endtitle,argname
ctype,rctype,maxnofargs,nofoptargs,returncptr
"""
- ret={'name':'cb_%s_in_%s'%(rout['name'],um),
+ ret={'name':'cb_%s_in_%s'%(rout['name'], um),
'returncptr':''}
if isintent_callback(rout):
if '_' in rout['name']:
@@ -722,7 +722,7 @@ return_value=
ret['note']=rout['vars'][a]['note']
rout['vars'][a]['note']=['See elsewhere.']
ret['rname']=a
- ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,rout)
+ ret['pydocsign'], ret['pydocsignout']=getpydocsign(a, rout)
if iscomplexfunction(rout):
ret['rctype']="""
#ifdef F2PY_CB_RETURNCOMPLEX
@@ -740,7 +740,7 @@ void
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):
+ if l_or(isintent_in, isintent_inout)(var):
nofargs=nofargs+1
if isoptional(var):
nofoptargs=nofoptargs+1
@@ -751,7 +751,7 @@ void
rout['note']=['See elsewhere.']
return ret
-def common_sign2map(a,var): # obsolute
+def common_sign2map(a, var): # obsolute
ret={'varname':a}
ret['ctype']=getctype(var)
if isstringarray(var):
@@ -761,13 +761,13 @@ def common_sign2map(a,var): # obsolute
if ret['ctype'] in cformat_map:
ret['showvalueformat']='%s'%(cformat_map[ret['ctype']])
if isarray(var):
- ret=dictappend(ret,getarrdims(a,var))
+ ret=dictappend(ret, getarrdims(a, var))
elif isstring(var):
ret['size']=getstrlength(var)
ret['rank']='1'
- ret['pydocsign'],ret['pydocsignout']=getpydocsign(a,var)
+ ret['pydocsign'], ret['pydocsignout']=getpydocsign(a, var)
if hasnote(var):
ret['note']=var['note']
var['note']=['See elsewhere.']
- ret['arrdocstr']=getarrdocsign(a,var) # for strings this returns 0-rank but actually is 1-rank
+ ret['arrdocstr']=getarrdocsign(a, var) # for strings this returns 0-rank but actually is 1-rank
return ret
diff --git a/numpy/f2py/cb_rules.py b/numpy/f2py/cb_rules.py
index f80ab06f0..f3bf848a7 100644
--- a/numpy/f2py/cb_rules.py
+++ b/numpy/f2py/cb_rules.py
@@ -127,7 +127,7 @@ capi_return_pt:
}
#endtitle#
""",
- 'need':['setjmp.h','CFUNCSMESS'],
+ 'need':['setjmp.h', 'CFUNCSMESS'],
'maxnofargs':'#maxnofargs#',
'nofoptargs':'#nofoptargs#',
'docstr':"""\
@@ -142,42 +142,42 @@ capi_return_pt:
}
cb_rout_rules=[
{# Init
- 'separatorsfor':{'decl':'\n',
- 'args':',','optargs':'','pyobjfrom':'\n','freemem':'\n',
- 'args_td':',','optargs_td':'',
- 'args_nm':',','optargs_nm':'',
- 'frompyobj':'\n','setdims':'\n',
- 'docstrsigns':'\\n"\n"',
- 'latexdocstrsigns':'\n',
- 'latexdocstrreq':'\n','latexdocstropt':'\n',
- 'latexdocstrout':'\n','latexdocstrcbs':'\n',
+ 'separatorsfor': {'decl': '\n',
+ 'args': ',', 'optargs': '', 'pyobjfrom': '\n', 'freemem': '\n',
+ 'args_td': ',', 'optargs_td': '',
+ 'args_nm': ',', 'optargs_nm': '',
+ 'frompyobj': '\n', 'setdims': '\n',
+ 'docstrsigns': '\\n"\n"',
+ 'latexdocstrsigns': '\n',
+ 'latexdocstrreq': '\n', 'latexdocstropt': '\n',
+ 'latexdocstrout': '\n', 'latexdocstrcbs': '\n',
},
- 'decl':'/*decl*/','pyobjfrom':'/*pyobjfrom*/','frompyobj':'/*frompyobj*/',
- 'args':[],'optargs':'','return':'','strarglens':'','freemem':'/*freemem*/',
- 'args_td':[],'optargs_td':'','strarglens_td':'',
- 'args_nm':[],'optargs_nm':'','strarglens_nm':'',
- 'noargs':'',
- 'setdims':'/*setdims*/',
- 'docstrsigns':'','latexdocstrsigns':'',
- 'docstrreq':'\tRequired arguments:',
- 'docstropt':'\tOptional arguments:',
- 'docstrout':'\tReturn objects:',
- 'docstrcbs':'\tCall-back functions:',
- 'docreturn':'','docsign':'','docsignopt':'',
- 'latexdocstrreq':'\\noindent Required arguments:',
- 'latexdocstropt':'\\noindent Optional arguments:',
- 'latexdocstrout':'\\noindent Return objects:',
- 'latexdocstrcbs':'\\noindent Call-back functions:',
- 'routnote':{hasnote:'--- #note#',l_not(hasnote):''},
- },{ # Function
+ 'decl': '/*decl*/', 'pyobjfrom': '/*pyobjfrom*/', 'frompyobj': '/*frompyobj*/',
+ 'args': [], 'optargs': '', 'return': '', 'strarglens': '', 'freemem': '/*freemem*/',
+ 'args_td': [], 'optargs_td': '', 'strarglens_td': '',
+ 'args_nm': [], 'optargs_nm': '', 'strarglens_nm': '',
+ 'noargs': '',
+ 'setdims': '/*setdims*/',
+ 'docstrsigns': '', 'latexdocstrsigns': '',
+ 'docstrreq': '\tRequired arguments:',
+ 'docstropt': '\tOptional arguments:',
+ 'docstrout': '\tReturn objects:',
+ 'docstrcbs': '\tCall-back functions:',
+ 'docreturn': '', 'docsign': '', 'docsignopt': '',
+ 'latexdocstrreq': '\\noindent Required arguments:',
+ 'latexdocstropt': '\\noindent Optional arguments:',
+ 'latexdocstrout': '\\noindent Return objects:',
+ 'latexdocstrcbs': '\\noindent Call-back functions:',
+ 'routnote': {hasnote:'--- #note#',l_not(hasnote):''},
+ }, { # Function
'decl':'\t#ctype# return_value;',
'frompyobj':[{debugcapi:'\tCFUNCSMESS("cb:Getting return_value->");'},
'\tif (capi_j>capi_i)\n\t\tGETSCALARFROMPYTUPLE(capi_return,capi_i++,&return_value,#ctype#,"#ctype#_from_pyobj failed in converting return_value of call-back function #name# to C #ctype#\\n");',
{debugcapi:'\tfprintf(stderr,"#showvalueformat#.\\n",return_value);'}
],
- 'need':['#ctype#_from_pyobj',{debugcapi:'CFUNCSMESS'},'GETSCALARFROMPYTUPLE'],
+ 'need':['#ctype#_from_pyobj', {debugcapi:'CFUNCSMESS'}, 'GETSCALARFROMPYTUPLE'],
'return':'\treturn return_value;',
- '_check':l_and(isfunction,l_not(isstringfunction),l_not(iscomplexfunction))
+ '_check':l_and(isfunction, l_not(isstringfunction), l_not(iscomplexfunction))
},
{# String function
'pyobjfrom':{debugcapi:'\tfprintf(stderr,"debug-capi:cb:#name#:%d:\\n",return_value_len);'},
@@ -189,8 +189,8 @@ cb_rout_rules=[
\t\tGETSTRFROMPYTUPLE(capi_return,capi_i++,return_value,return_value_len);""",
{debugcapi:'\tfprintf(stderr,"#showvalueformat#\\".\\n",return_value);'}
],
- 'need':['#ctype#_from_pyobj',{debugcapi:'CFUNCSMESS'},
- 'string.h','GETSTRFROMPYTUPLE'],
+ 'need':['#ctype#_from_pyobj', {debugcapi:'CFUNCSMESS'},
+ 'string.h', 'GETSTRFROMPYTUPLE'],
'return':'return;',
'_check':isstringfunction
},
@@ -240,8 +240,8 @@ return_value
\treturn;
#endif
""",
- 'need':['#ctype#_from_pyobj',{debugcapi:'CFUNCSMESS'},
- 'string.h','GETSCALARFROMPYTUPLE','#ctype#'],
+ 'need':['#ctype#_from_pyobj', {debugcapi:'CFUNCSMESS'},
+ 'string.h', 'GETSCALARFROMPYTUPLE', '#ctype#'],
'_check':iscomplexfunction
},
{'docstrout':'\t\t#pydocsignout#',
@@ -254,59 +254,59 @@ return_value
cb_arg_rules=[
{ # Doc
- 'docstropt':{l_and(isoptional,isintent_nothide):'\t\t#pydocsign#'},
- 'docstrreq':{l_and(isrequired,isintent_nothide):'\t\t#pydocsign#'},
+ 'docstropt':{l_and(isoptional, isintent_nothide):'\t\t#pydocsign#'},
+ 'docstrreq':{l_and(isrequired, isintent_nothide):'\t\t#pydocsign#'},
'docstrout':{isintent_out:'\t\t#pydocsignout#'},
- 'latexdocstropt':{l_and(isoptional,isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
+ 'latexdocstropt':{l_and(isoptional, isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
{hasnote:'--- #note#'}]},
- 'latexdocstrreq':{l_and(isrequired,isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
+ 'latexdocstrreq':{l_and(isrequired, isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
{hasnote:'--- #note#'}]},
'latexdocstrout':{isintent_out:['\\item[]{{}\\verb@#pydocsignout#@{}}',
- {l_and(hasnote,isintent_hide):'--- #note#',
- l_and(hasnote,isintent_nothide):'--- See above.'}]},
- 'docsign':{l_and(isrequired,isintent_nothide):'#varname#,'},
- 'docsignopt':{l_and(isoptional,isintent_nothide):'#varname#,'},
+ {l_and(hasnote, isintent_hide):'--- #note#',
+ l_and(hasnote, isintent_nothide):'--- See above.'}]},
+ 'docsign':{l_and(isrequired, isintent_nothide):'#varname#,'},
+ 'docsignopt':{l_and(isoptional, isintent_nothide):'#varname#,'},
'depend':''
},
{
- 'args':{
- l_and (isscalar,isintent_c):'#ctype# #varname_i#',
- l_and (isscalar,l_not(isintent_c)):'#ctype# *#varname_i#_cb_capi',
+ 'args': {
+ l_and (isscalar, isintent_c):'#ctype# #varname_i#',
+ l_and (isscalar, l_not(isintent_c)):'#ctype# *#varname_i#_cb_capi',
isarray:'#ctype# *#varname_i#',
isstring:'#ctype# #varname_i#'
},
- 'args_nm':{
- l_and (isscalar,isintent_c):'#varname_i#',
- l_and (isscalar,l_not(isintent_c)):'#varname_i#_cb_capi',
+ 'args_nm': {
+ l_and (isscalar, isintent_c):'#varname_i#',
+ l_and (isscalar, l_not(isintent_c)):'#varname_i#_cb_capi',
isarray:'#varname_i#',
isstring:'#varname_i#'
},
- 'args_td':{
- l_and (isscalar,isintent_c):'#ctype#',
- l_and (isscalar,l_not(isintent_c)):'#ctype# *',
+ 'args_td': {
+ l_and (isscalar, isintent_c):'#ctype#',
+ l_and (isscalar, l_not(isintent_c)):'#ctype# *',
isarray:'#ctype# *',
isstring:'#ctype#'
},
- 'strarglens':{isstring:',int #varname_i#_cb_len'}, # untested with multiple args
- 'strarglens_td':{isstring:',int'}, # untested with multiple args
- 'strarglens_nm':{isstring:',#varname_i#_cb_len'}, # untested with multiple args
+ 'strarglens': {isstring:',int #varname_i#_cb_len'}, # untested with multiple args
+ 'strarglens_td': {isstring:',int'}, # untested with multiple args
+ 'strarglens_nm': {isstring:',#varname_i#_cb_len'}, # untested with multiple args
},
{ # Scalars
'decl':{l_not(isintent_c):'\t#ctype# #varname_i#=(*#varname_i#_cb_capi);'},
- 'error': {l_and(isintent_c,isintent_out,
+ 'error': {l_and(isintent_c, isintent_out,
throw_error('intent(c,out) is forbidden for callback scalar arguments')):\
''},
'frompyobj':[{debugcapi:'\tCFUNCSMESS("cb:Getting #varname#->");'},
{isintent_out:'\tif (capi_j>capi_i)\n\t\tGETSCALARFROMPYTUPLE(capi_return,capi_i++,#varname_i#_cb_capi,#ctype#,"#ctype#_from_pyobj failed in converting argument #varname# of call-back function #name# to C #ctype#\\n");'},
- {l_and(debugcapi,l_and(l_not(iscomplex),isintent_c)):'\tfprintf(stderr,"#showvalueformat#.\\n",#varname_i#);'},
- {l_and(debugcapi,l_and(l_not(iscomplex),l_not(isintent_c))):'\tfprintf(stderr,"#showvalueformat#.\\n",*#varname_i#_cb_capi);'},
- {l_and(debugcapi,l_and(iscomplex,isintent_c)):'\tfprintf(stderr,"#showvalueformat#.\\n",(#varname_i#).r,(#varname_i#).i);'},
- {l_and(debugcapi,l_and(iscomplex,l_not(isintent_c))):'\tfprintf(stderr,"#showvalueformat#.\\n",(*#varname_i#_cb_capi).r,(*#varname_i#_cb_capi).i);'},
+ {l_and(debugcapi, l_and(l_not(iscomplex), isintent_c)):'\tfprintf(stderr,"#showvalueformat#.\\n",#varname_i#);'},
+ {l_and(debugcapi, l_and(l_not(iscomplex), l_not(isintent_c))):'\tfprintf(stderr,"#showvalueformat#.\\n",*#varname_i#_cb_capi);'},
+ {l_and(debugcapi, l_and(iscomplex, isintent_c)):'\tfprintf(stderr,"#showvalueformat#.\\n",(#varname_i#).r,(#varname_i#).i);'},
+ {l_and(debugcapi, l_and(iscomplex, l_not(isintent_c))):'\tfprintf(stderr,"#showvalueformat#.\\n",(*#varname_i#_cb_capi).r,(*#varname_i#_cb_capi).i);'},
],
- 'need':[{isintent_out:['#ctype#_from_pyobj','GETSCALARFROMPYTUPLE']},
+ 'need':[{isintent_out:['#ctype#_from_pyobj', 'GETSCALARFROMPYTUPLE']},
{debugcapi:'CFUNCSMESS'}],
'_check':isscalar
- },{
+ }, {
'pyobjfrom':[{isintent_in:"""\
\tif (#name#_nofargs>capi_i)
\t\tif (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,pyobj_from_#ctype#1(#varname_i#)))
@@ -318,18 +318,18 @@ cb_arg_rules=[
'need':[{isintent_in:'pyobj_from_#ctype#1'},
{isintent_inout:'pyarr_from_p_#ctype#1'},
{iscomplex:'#ctype#'}],
- '_check':l_and(isscalar,isintent_nothide),
+ '_check':l_and(isscalar, isintent_nothide),
'_optional':''
- },{# String
+ }, {# String
'frompyobj':[{debugcapi:'\tCFUNCSMESS("cb:Getting #varname#->\\"");'},
"""\tif (capi_j>capi_i)
\t\tGETSTRFROMPYTUPLE(capi_return,capi_i++,#varname_i#,#varname_i#_cb_len);""",
{debugcapi:'\tfprintf(stderr,"#showvalueformat#\\":%d:.\\n",#varname_i#,#varname_i#_cb_len);'},
],
- 'need':['#ctype#','GETSTRFROMPYTUPLE',
- {debugcapi:'CFUNCSMESS'},'string.h'],
- '_check':l_and(isstring,isintent_out)
- },{
+ 'need':['#ctype#', 'GETSTRFROMPYTUPLE',
+ {debugcapi:'CFUNCSMESS'}, 'string.h'],
+ '_check':l_and(isstring, isintent_out)
+ }, {
'pyobjfrom':[{debugcapi:'\tfprintf(stderr,"debug-capi:cb:#varname#=\\"#showvalueformat#\\":%d:\\n",#varname_i#,#varname_i#_cb_len);'},
{isintent_in:"""\
\tif (#name#_nofargs>capi_i)
@@ -343,7 +343,7 @@ cb_arg_rules=[
\t}"""}],
'need':[{isintent_in:'pyobj_from_#ctype#1size'},
{isintent_inout:'pyarr_from_p_#ctype#1'}],
- '_check':l_and(isstring,isintent_nothide),
+ '_check':l_and(isstring, isintent_nothide),
'_optional':''
},
# Array ...
@@ -354,12 +354,12 @@ cb_arg_rules=[
'_depend':''
},
{
- 'pyobjfrom':[{debugcapi:'\tfprintf(stderr,"debug-capi:cb:#varname#\\n");'},
- {isintent_c:"""\
+ 'pyobjfrom': [{debugcapi:'\tfprintf(stderr,"debug-capi:cb:#varname#\\n");'},
+ {isintent_c: """\
\tif (#name#_nofargs>capi_i) {
\t\tPyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,#rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,0,NPY_CARRAY,NULL); /*XXX: Hmm, what will destroy this array??? */
""",
- l_not(isintent_c):"""\
+ l_not(isintent_c): """\
\tif (#name#_nofargs>capi_i) {
\t\tPyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,#rank#,#varname_i#_Dims,#atype#,NULL,(char*)#varname_i#,0,NPY_FARRAY,NULL); /*XXX: Hmm, what will destroy this array??? */
""",
@@ -370,9 +370,9 @@ cb_arg_rules=[
\t\tif (PyTuple_SetItem((PyObject *)capi_arglist,capi_i++,(PyObject *)tmp_arr))
\t\t\tgoto capi_fail;
}"""],
- '_check':l_and(isarray,isintent_nothide,l_or(isintent_in,isintent_inout)),
- '_optional':'',
- },{
+ '_check': l_and(isarray, isintent_nothide, l_or(isintent_in, isintent_inout)),
+ '_optional': '',
+ }, {
'frompyobj':[{debugcapi:'\tCFUNCSMESS("cb:Getting #varname#->");'},
"""\tif (capi_j>capi_i) {
\t\tPyArrayObject *rv_cb_arr = NULL;
@@ -391,9 +391,9 @@ cb_arg_rules=[
\t}""",
{debugcapi:'\tfprintf(stderr,"<-.\\n");'},
],
- 'need':['MEMCOPY',{iscomplexarray:'#ctype#'}],
- '_check':l_and(isarray,isintent_out)
- },{
+ 'need':['MEMCOPY', {iscomplexarray:'#ctype#'}],
+ '_check':l_and(isarray, isintent_out)
+ }, {
'docreturn':'#varname#,',
'_check':isintent_out
}
@@ -408,28 +408,28 @@ def buildcallbacks(m):
if bi['block']=='interface':
for b in bi['body']:
if b:
- buildcallback(b,m['name'])
+ buildcallback(b, m['name'])
else:
errmess('warning: empty body for %s\n' % (m['name']))
-def buildcallback(rout,um):
+def buildcallback(rout, um):
global cb_map
from . import capi_maps
- outmess('\tConstructing call-back function "cb_%s_in_%s"\n'%(rout['name'],um))
- args,depargs=getargs(rout)
+ outmess('\tConstructing call-back function "cb_%s_in_%s"\n'%(rout['name'], um))
+ args, depargs=getargs(rout)
capi_maps.depargs=depargs
var=rout['vars']
- vrd=capi_maps.cb_routsign2map(rout,um)
- rd=dictappend({},vrd)
- cb_map[um].append([rout['name'],rd['name']])
+ vrd=capi_maps.cb_routsign2map(rout, um)
+ rd=dictappend({}, vrd)
+ cb_map[um].append([rout['name'], rd['name']])
for r in cb_rout_rules:
if ('_check' in r and r['_check'](rout)) or ('_check' not in r):
- ar=applyrules(r,vrd,rout)
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, rout)
+ rd=dictappend(rd, ar)
savevrd={}
- for i,a in enumerate(args):
- vrd=capi_maps.cb_sign2map(a,var[a], index=i)
+ for i, a in enumerate(args):
+ vrd=capi_maps.cb_sign2map(a, var[a], index=i)
savevrd[a]=vrd
for r in cb_arg_rules:
if '_depend' in r:
@@ -437,8 +437,8 @@ def buildcallback(rout,um):
if '_optional' in r and isoptional(var[a]):
continue
if ('_check' in r and r['_check'](var[a])) or ('_check' not in r):
- ar=applyrules(r,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, var[a])
+ rd=dictappend(rd, ar)
if '_break' in r:
break
for a in args:
@@ -449,8 +449,8 @@ def buildcallback(rout,um):
if ('_optional' not in r) or ('_optional' in r and isrequired(var[a])):
continue
if ('_check' in r and r['_check'](var[a])) or ('_check' not in r):
- ar=applyrules(r,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, var[a])
+ rd=dictappend(rd, ar)
if '_break' in r:
break
for a in depargs:
@@ -461,8 +461,8 @@ def buildcallback(rout,um):
if '_optional' in r:
continue
if ('_check' in r and r['_check'](var[a])) or ('_check' not in r):
- ar=applyrules(r,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, var[a])
+ rd=dictappend(rd, ar)
if '_break' in r:
break
if 'args' in rd and 'optargs' in rd:
@@ -483,22 +483,22 @@ def buildcallback(rout,um):
#endif
"""]
if isinstance(rd['docreturn'], list):
- rd['docreturn']=stripcomma(replace('#docreturn#',{'docreturn':rd['docreturn']}))
+ rd['docreturn']=stripcomma(replace('#docreturn#', {'docreturn':rd['docreturn']}))
optargs=stripcomma(replace('#docsignopt#',
{'docsignopt':rd['docsignopt']}
))
if optargs=='':
- rd['docsignature']=stripcomma(replace('#docsign#',{'docsign':rd['docsign']}))
+ rd['docsignature']=stripcomma(replace('#docsign#', {'docsign':rd['docsign']}))
else:
rd['docsignature']=replace('#docsign#[#docsignopt#]',
- {'docsign':rd['docsign'],
- 'docsignopt':optargs,
+ {'docsign': rd['docsign'],
+ 'docsignopt': optargs,
})
- rd['latexdocsignature']=rd['docsignature'].replace('_','\\_')
- rd['latexdocsignature']=rd['latexdocsignature'].replace(',',', ')
+ rd['latexdocsignature']=rd['docsignature'].replace('_', '\\_')
+ rd['latexdocsignature']=rd['latexdocsignature'].replace(',', ', ')
rd['docstrsigns']=[]
rd['latexdocstrsigns']=[]
- for k in ['docstrreq','docstropt','docstrout','docstrcbs']:
+ for k in ['docstrreq', 'docstropt', 'docstrout', 'docstrcbs']:
if k in rd and isinstance(rd[k], list):
rd['docstrsigns']=rd['docstrsigns']+rd[k]
k='latex'+k
@@ -513,7 +513,7 @@ def buildcallback(rout,um):
if not (rd.get('args') or rd.get('optargs') or rd.get('strarglens')):
rd['noargs'] = 'void'
- ar=applyrules(cb_routine_rules,rd)
+ ar=applyrules(cb_routine_rules, rd)
cfuncs.callbacks[rd['name']]=ar['body']
if isinstance(ar['need'], str):
ar['need']=[ar['need']]
diff --git a/numpy/f2py/cfuncs.py b/numpy/f2py/cfuncs.py
index 2229c3e24..c8b529056 100644
--- a/numpy/f2py/cfuncs.py
+++ b/numpy/f2py/cfuncs.py
@@ -39,12 +39,12 @@ typedefs_generated={'typedefs_generated':'/*need_typedefs_generated*/'}
cppmacros={'cppmacros':'/*need_cppmacros*/'}
cfuncs={'cfuncs':'/*need_cfuncs*/'}
callbacks={'callbacks':'/*need_callbacks*/'}
-f90modhooks={'f90modhooks':'/*need_f90modhooks*/',
- 'initf90modhooksstatic':'/*initf90modhooksstatic*/',
- 'initf90modhooksdynamic':'/*initf90modhooksdynamic*/',
+f90modhooks={'f90modhooks': '/*need_f90modhooks*/',
+ 'initf90modhooksstatic': '/*initf90modhooksstatic*/',
+ 'initf90modhooksdynamic': '/*initf90modhooksdynamic*/',
}
-commonhooks={'commonhooks':'/*need_commonhooks*/',
- 'initcommonhooks':'/*need_initcommonhooks*/',
+commonhooks={'commonhooks': '/*need_commonhooks*/',
+ 'initcommonhooks': '/*need_initcommonhooks*/',
}
############ Includes ###################
@@ -419,7 +419,7 @@ cppmacros['TRYCOMPLEXPYARRAYTEMPLATE']="""\
## """
-needs['GETSTRFROMPYTUPLE']=['STRINGCOPYN','PRINTPYOBJERR']
+needs['GETSTRFROMPYTUPLE']=['STRINGCOPYN', 'PRINTPYOBJERR']
cppmacros['GETSTRFROMPYTUPLE']="""\
#define GETSTRFROMPYTUPLE(tuple,index,str,len) {\\
\t\tPyObject *rv_cb_str = PyTuple_GetItem((tuple),(index));\\
@@ -587,7 +587,7 @@ static int *nextforcomb(void) {
if (forcombcache.tr) return i_tr;
return i;
}"""
-needs['try_pyarr_from_string']=['STRINGCOPYN','PRINTPYOBJERR','string']
+needs['try_pyarr_from_string']=['STRINGCOPYN', 'PRINTPYOBJERR', 'string']
cfuncs['try_pyarr_from_string']="""\
static int try_pyarr_from_string(PyObject *obj,const string str) {
\tPyArrayObject *arr = NULL;
@@ -600,7 +600,7 @@ capi_fail:
\treturn 0;
}
"""
-needs['string_from_pyobj']=['string','STRINGMALLOC','STRINGCOPYN']
+needs['string_from_pyobj']=['string', 'STRINGMALLOC', 'STRINGCOPYN']
cfuncs['string_from_pyobj']="""\
static int string_from_pyobj(string *str,int *len,const string inistr,PyObject *obj,const char *errmess) {
\tPyArrayObject *arr = NULL;
@@ -680,7 +680,7 @@ static int char_from_pyobj(char* v,PyObject *obj,const char *errmess) {
\treturn 0;
}
"""
-needs['signed_char_from_pyobj']=['int_from_pyobj','signed_char']
+needs['signed_char_from_pyobj']=['int_from_pyobj', 'signed_char']
cfuncs['signed_char_from_pyobj']="""\
static int signed_char_from_pyobj(signed_char* v,PyObject *obj,const char *errmess) {
\tint i=0;
@@ -803,7 +803,7 @@ static int long_long_from_pyobj(long_long* v,PyObject *obj,const char *errmess)
\treturn 0;
}
"""
-needs['long_double_from_pyobj']=['double_from_pyobj','long_double']
+needs['long_double_from_pyobj']=['double_from_pyobj', 'long_double']
cfuncs['long_double_from_pyobj']="""\
static int long_double_from_pyobj(long_double* v,PyObject *obj,const char *errmess) {
\tdouble d=0;
@@ -875,7 +875,7 @@ static int float_from_pyobj(float* v,PyObject *obj,const char *errmess) {
\treturn 0;
}
"""
-needs['complex_long_double_from_pyobj']=['complex_long_double','long_double',
+needs['complex_long_double_from_pyobj']=['complex_long_double', 'long_double',
'complex_double_from_pyobj']
cfuncs['complex_long_double_from_pyobj']="""\
static int complex_long_double_from_pyobj(complex_long_double* v,PyObject *obj,const char *errmess) {
@@ -976,7 +976,7 @@ static int complex_double_from_pyobj(complex_double* v,PyObject *obj,const char
\treturn 0;
}
"""
-needs['complex_float_from_pyobj']=['complex_float','complex_double_from_pyobj']
+needs['complex_float_from_pyobj']=['complex_float', 'complex_double_from_pyobj']
cfuncs['complex_float_from_pyobj']="""\
static int complex_float_from_pyobj(complex_float* v,PyObject *obj,const char *errmess) {
\tcomplex_double cd={0.0,0.0};
@@ -988,30 +988,30 @@ static int complex_float_from_pyobj(complex_float* v,PyObject *obj,const char *e
\treturn 0;
}
"""
-needs['try_pyarr_from_char']=['pyobj_from_char1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_char']=['pyobj_from_char1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_char']='static int try_pyarr_from_char(PyObject* obj,char* v) {\n\tTRYPYARRAYTEMPLATE(char,\'c\');\n}\n'
-needs['try_pyarr_from_signed_char']=['TRYPYARRAYTEMPLATE','unsigned_char']
+needs['try_pyarr_from_signed_char']=['TRYPYARRAYTEMPLATE', 'unsigned_char']
cfuncs['try_pyarr_from_unsigned_char']='static int try_pyarr_from_unsigned_char(PyObject* obj,unsigned_char* v) {\n\tTRYPYARRAYTEMPLATE(unsigned_char,\'b\');\n}\n'
-needs['try_pyarr_from_signed_char']=['TRYPYARRAYTEMPLATE','signed_char']
+needs['try_pyarr_from_signed_char']=['TRYPYARRAYTEMPLATE', 'signed_char']
cfuncs['try_pyarr_from_signed_char']='static int try_pyarr_from_signed_char(PyObject* obj,signed_char* v) {\n\tTRYPYARRAYTEMPLATE(signed_char,\'1\');\n}\n'
-needs['try_pyarr_from_short']=['pyobj_from_short1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_short']=['pyobj_from_short1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_short']='static int try_pyarr_from_short(PyObject* obj,short* v) {\n\tTRYPYARRAYTEMPLATE(short,\'s\');\n}\n'
-needs['try_pyarr_from_int']=['pyobj_from_int1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_int']=['pyobj_from_int1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_int']='static int try_pyarr_from_int(PyObject* obj,int* v) {\n\tTRYPYARRAYTEMPLATE(int,\'i\');\n}\n'
-needs['try_pyarr_from_long']=['pyobj_from_long1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_long']=['pyobj_from_long1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_long']='static int try_pyarr_from_long(PyObject* obj,long* v) {\n\tTRYPYARRAYTEMPLATE(long,\'l\');\n}\n'
-needs['try_pyarr_from_long_long']=['pyobj_from_long_long1','TRYPYARRAYTEMPLATE','long_long']
+needs['try_pyarr_from_long_long']=['pyobj_from_long_long1', 'TRYPYARRAYTEMPLATE', 'long_long']
cfuncs['try_pyarr_from_long_long']='static int try_pyarr_from_long_long(PyObject* obj,long_long* v) {\n\tTRYPYARRAYTEMPLATE(long_long,\'L\');\n}\n'
-needs['try_pyarr_from_float']=['pyobj_from_float1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_float']=['pyobj_from_float1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_float']='static int try_pyarr_from_float(PyObject* obj,float* v) {\n\tTRYPYARRAYTEMPLATE(float,\'f\');\n}\n'
-needs['try_pyarr_from_double']=['pyobj_from_double1','TRYPYARRAYTEMPLATE']
+needs['try_pyarr_from_double']=['pyobj_from_double1', 'TRYPYARRAYTEMPLATE']
cfuncs['try_pyarr_from_double']='static int try_pyarr_from_double(PyObject* obj,double* v) {\n\tTRYPYARRAYTEMPLATE(double,\'d\');\n}\n'
-needs['try_pyarr_from_complex_float']=['pyobj_from_complex_float1','TRYCOMPLEXPYARRAYTEMPLATE','complex_float']
+needs['try_pyarr_from_complex_float']=['pyobj_from_complex_float1', 'TRYCOMPLEXPYARRAYTEMPLATE', 'complex_float']
cfuncs['try_pyarr_from_complex_float']='static int try_pyarr_from_complex_float(PyObject* obj,complex_float* v) {\n\tTRYCOMPLEXPYARRAYTEMPLATE(float,\'F\');\n}\n'
-needs['try_pyarr_from_complex_double']=['pyobj_from_complex_double1','TRYCOMPLEXPYARRAYTEMPLATE','complex_double']
+needs['try_pyarr_from_complex_double']=['pyobj_from_complex_double1', 'TRYCOMPLEXPYARRAYTEMPLATE', 'complex_double']
cfuncs['try_pyarr_from_complex_double']='static int try_pyarr_from_complex_double(PyObject* obj,complex_double* v) {\n\tTRYCOMPLEXPYARRAYTEMPLATE(double,\'D\');\n}\n'
-needs['create_cb_arglist']=['CFUNCSMESS','PRINTPYOBJERR','MINMAX']
+needs['create_cb_arglist']=['CFUNCSMESS', 'PRINTPYOBJERR', 'MINMAX']
cfuncs['create_cb_arglist']="""\
static int create_cb_arglist(PyObject* fun,PyTupleObject* xa,const int maxnofargs,const int nofoptargs,int *nofargs,PyTupleObject **args,const char *errmess) {
\tPyObject *tmp = NULL;
@@ -1118,7 +1118,7 @@ def buildcfuncs():
from .capi_maps import c2capi_map
for k in c2capi_map.keys():
m='pyarr_from_p_%s1'%k
- cppmacros[m]='#define %s(v) (PyArray_SimpleNewFromData(0,NULL,%s,(char *)v))'%(m,c2capi_map[k])
+ cppmacros[m]='#define %s(v) (PyArray_SimpleNewFromData(0,NULL,%s,(char *)v))'%(m, c2capi_map[k])
k='string'
m='pyarr_from_p_%s1'%k
cppmacros[m]='#define %s(v,dims) (PyArray_SimpleNewFromData(1,dims,NPY_CHAR,(char *)v))'%(m)
@@ -1127,10 +1127,10 @@ def buildcfuncs():
############ Auxiliary functions for sorting needs ###################
def append_needs(need,flag=1):
- global outneeds,needs
+ global outneeds, needs
if isinstance(need, list):
for n in need:
- append_needs(n,flag)
+ append_needs(n, flag)
elif isinstance(need, str):
if not need: return
if need in includes0:
@@ -1159,7 +1159,7 @@ def append_needs(need,flag=1):
tmp={}
if need in needs:
for nn in needs[need]:
- t=append_needs(nn,0)
+ t=append_needs(nn, 0)
if isinstance(t, dict):
for nnn in t.keys():
if nnn in tmp:
@@ -1175,7 +1175,7 @@ def append_needs(need,flag=1):
tmp={}
if need in needs:
for nn in needs[need]:
- t=append_needs(nn,flag)
+ t=append_needs(nn, flag)
if isinstance(t, dict):
for nnn in t.keys():
if nnn in tmp:
@@ -1190,7 +1190,7 @@ def append_needs(need,flag=1):
errmess('append_needs: expected list or string but got :%s\n'%(repr(need)))
def get_needs():
- global outneeds,needs
+ global outneeds, needs
res={}
for n in outneeds.keys():
out=[]
@@ -1210,9 +1210,9 @@ def get_needs():
else:
out.append(outneeds[n][0])
del outneeds[n][0]
- if saveout and (0 not in map(lambda x,y:x==y, saveout, outneeds[n])) \
+ if saveout and (0 not in map(lambda x, y:x==y, saveout, outneeds[n])) \
and outneeds[n] != []:
- print(n,saveout)
+ print(n, saveout)
errmess('get_needs: no progress in sorting needs, probably circular dependence, skipping.\n')
out=out+saveout
break
diff --git a/numpy/f2py/common_rules.py b/numpy/f2py/common_rules.py
index dd44e3326..d3b7f6dc2 100644
--- a/numpy/f2py/common_rules.py
+++ b/numpy/f2py/common_rules.py
@@ -39,10 +39,10 @@ def findcommonblocks(block,top=1):
vars={}
for v in block['common'][n]:
vars[v]=block['vars'][v]
- ret.append((n,block['common'][n],vars))
+ ret.append((n, block['common'][n], vars))
elif hasbody(block):
for b in block['body']:
- ret=ret+findcommonblocks(b,0)
+ ret=ret+findcommonblocks(b, 0)
if top:
tret=[]
names=[]
@@ -56,31 +56,31 @@ def findcommonblocks(block,top=1):
def buildhooks(m):
ret = {'commonhooks':[],'initcommonhooks':[],'docs':['"COMMON blocks:\\n"']}
fwrap = ['']
- def fadd(line,s=fwrap): s[0] = '%s\n %s'%(s[0],line)
+ def fadd(line,s=fwrap): s[0] = '%s\n %s'%(s[0], line)
chooks = ['']
- def cadd(line,s=chooks): s[0] = '%s\n%s'%(s[0],line)
+ def cadd(line,s=chooks): s[0] = '%s\n%s'%(s[0], line)
ihooks = ['']
- def iadd(line,s=ihooks): s[0] = '%s\n%s'%(s[0],line)
+ def iadd(line,s=ihooks): s[0] = '%s\n%s'%(s[0], line)
doc = ['']
- def dadd(line,s=doc): s[0] = '%s\n%s'%(s[0],line)
- for (name,vnames,vars) in findcommonblocks(m):
+ def dadd(line,s=doc): s[0] = '%s\n%s'%(s[0], line)
+ for (name, vnames, vars) in findcommonblocks(m):
lower_name = name.lower()
- hnames,inames = [],[]
+ hnames, inames = [], []
for n in vnames:
if isintent_hide(vars[n]): hnames.append(n)
else: inames.append(n)
if hnames:
- outmess('\t\tConstructing COMMON block support for "%s"...\n\t\t %s\n\t\t Hidden: %s\n'%(name,','.join(inames),','.join(hnames)))
+ outmess('\t\tConstructing COMMON block support for "%s"...\n\t\t %s\n\t\t Hidden: %s\n'%(name, ','.join(inames), ','.join(hnames)))
else:
- outmess('\t\tConstructing COMMON block support for "%s"...\n\t\t %s\n'%(name,','.join(inames)))
+ outmess('\t\tConstructing COMMON block support for "%s"...\n\t\t %s\n'%(name, ','.join(inames)))
fadd('subroutine f2pyinit%s(setupfunc)'%name)
fadd('external setupfunc')
for n in vnames:
- fadd(func2subr.var2fixfortran(vars,n))
+ fadd(func2subr.var2fixfortran(vars, n))
if name=='_BLNK_':
fadd('common %s'%(','.join(vnames)))
else:
- fadd('common /%s/ %s'%(name,','.join(vnames)))
+ fadd('common /%s/ %s'%(name, ','.join(vnames)))
fadd('call setupfunc(%s)'%(','.join(inames)))
fadd('end\n')
cadd('static FortranDataDef f2py_%s_def[] = {'%(name))
@@ -88,45 +88,45 @@ def buildhooks(m):
for n in inames:
ct = capi_maps.getctype(vars[n])
at = capi_maps.c2capi_map[ct]
- dm = capi_maps.getarrdims(n,vars[n])
+ dm = capi_maps.getarrdims(n, vars[n])
if dm['dims']: idims.append('(%s)'%(dm['dims']))
else: idims.append('')
dms=dm['dims'].strip()
if not dms: dms='-1'
- cadd('\t{\"%s\",%s,{{%s}},%s},'%(n,dm['rank'],dms,at))
+ cadd('\t{\"%s\",%s,{{%s}},%s},'%(n, dm['rank'], dms, at))
cadd('\t{NULL}\n};')
inames1 = rmbadname(inames)
inames1_tps = ','.join(['char *'+s for s in inames1])
- cadd('static void f2py_setup_%s(%s) {'%(name,inames1_tps))
+ cadd('static void f2py_setup_%s(%s) {'%(name, inames1_tps))
cadd('\tint i_f2py=0;')
for n in inames1:
- cadd('\tf2py_%s_def[i_f2py++].data = %s;'%(name,n))
+ cadd('\tf2py_%s_def[i_f2py++].data = %s;'%(name, n))
cadd('}')
if '_' in lower_name:
F_FUNC='F_FUNC_US'
else:
F_FUNC='F_FUNC'
cadd('extern void %s(f2pyinit%s,F2PYINIT%s)(void(*)(%s));'\
- %(F_FUNC,lower_name,name.upper(),
+ %(F_FUNC, lower_name, name.upper(),
','.join(['char*']*len(inames1))))
cadd('static void f2py_init_%s(void) {'%name)
cadd('\t%s(f2pyinit%s,F2PYINIT%s)(f2py_setup_%s);'\
- %(F_FUNC,lower_name,name.upper(),name))
+ %(F_FUNC, lower_name, name.upper(), name))
cadd('}\n')
- iadd('\tF2PyDict_SetItemString(d, \"%s\", PyFortranObject_New(f2py_%s_def,f2py_init_%s));'%(name,name,name))
- tname = name.replace('_','\\_')
+ iadd('\tF2PyDict_SetItemString(d, \"%s\", PyFortranObject_New(f2py_%s_def,f2py_init_%s));'%(name, name, name))
+ tname = name.replace('_', '\\_')
dadd('\\subsection{Common block \\texttt{%s}}\n'%(tname))
dadd('\\begin{description}')
for n in inames:
- dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n,vars[n])))
+ dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n, vars[n])))
if hasnote(vars[n]):
note = vars[n]['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))))
+ ret['docs'].append('"\t/%s/ %s\\n"'%(name, ','.join(map(lambda v, d:v+d, inames, idims))))
ret['commonhooks']=chooks
ret['initcommonhooks']=ihooks
ret['latexdoc']=doc[0]
if len(ret['docs'])<=1: ret['docs']=''
- return ret,fwrap[0]
+ return ret, fwrap[0]
diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py
index 8b455c8ad..34b6192e4 100755
--- a/numpy/f2py/crackfortran.py
+++ b/numpy/f2py/crackfortran.py
@@ -204,21 +204,21 @@ for c in "ijklmn": defaultimplicitrules[c]={'typespec':'integer'}
del c
badnames={}
invbadnames={}
-for n in ['int','double','float','char','short','long','void','case','while',
- 'return','signed','unsigned','if','for','typedef','sizeof','union',
- 'struct','static','register','new','break','do','goto','switch',
- 'continue','else','inline','extern','delete','const','auto',
- 'len','rank','shape','index','slen','size','_i',
+for n in ['int', 'double', 'float', 'char', 'short', 'long', 'void', 'case', 'while',
+ 'return', 'signed', 'unsigned', 'if', 'for', 'typedef', 'sizeof', 'union',
+ 'struct', 'static', 'register', 'new', 'break', 'do', 'goto', 'switch',
+ 'continue', 'else', 'inline', 'extern', 'delete', 'const', 'auto',
+ 'len', 'rank', 'shape', 'index', 'slen', 'size', '_i',
'max', 'min',
- 'flen','fshape',
- 'string','complex_double','float_double','stdin','stderr','stdout',
- 'type','default']:
+ 'flen', 'fshape',
+ 'string', 'complex_double', 'float_double', 'stdin', 'stderr', 'stdout',
+ 'type', 'default']:
badnames[n]=n+'_bn'
invbadnames[n+'_bn']=n
def rmbadname1(name):
if name in badnames:
- errmess('rmbadname1: Replacing "%s" with "%s".\n'%(name,badnames[name]))
+ errmess('rmbadname1: Replacing "%s" with "%s".\n'%(name, badnames[name]))
return badnames[name]
return name
@@ -227,7 +227,7 @@ def rmbadname(names): return [rmbadname1(_m) for _m in names]
def undo_rmbadname1(name):
if name in invbadnames:
errmess('undo_rmbadname1: Replacing "%s" with "%s".\n'\
- %(name,invbadnames[name]))
+ %(name, invbadnames[name]))
return invbadnames[name]
return name
@@ -240,17 +240,17 @@ def getextension(name):
if '/' in name[i:]: return ''
return name[i+1:]
-is_f_file = re.compile(r'.*[.](for|ftn|f77|f)\Z',re.I).match
-_has_f_header = re.compile(r'-[*]-\s*fortran\s*-[*]-',re.I).search
-_has_f90_header = re.compile(r'-[*]-\s*f90\s*-[*]-',re.I).search
-_has_fix_header = re.compile(r'-[*]-\s*fix\s*-[*]-',re.I).search
-_free_f90_start = re.compile(r'[^c*]\s*[^\s\d\t]',re.I).match
+is_f_file = re.compile(r'.*[.](for|ftn|f77|f)\Z', re.I).match
+_has_f_header = re.compile(r'-[*]-\s*fortran\s*-[*]-', re.I).search
+_has_f90_header = re.compile(r'-[*]-\s*f90\s*-[*]-', re.I).search
+_has_fix_header = re.compile(r'-[*]-\s*fix\s*-[*]-', re.I).search
+_free_f90_start = re.compile(r'[^c*]\s*[^\s\d\t]', re.I).match
def is_free_format(file):
"""Check if file is in free format Fortran."""
# f90 allows both fixed and free format, assuming fixed unless
# signs of free format are detected.
result = 0
- f = open(file,'r')
+ f = open(file, 'r')
line = f.readline()
n = 15 # the number of non-comment lines to scan for hints
if _has_f_header(line):
@@ -277,23 +277,23 @@ def readfortrancode(ffile,dowithline=show,istop=1):
2) Call dowithline(line) on every line.
3) Recursively call itself when statement \"include '<filename>'\" is met.
"""
- global gotnextfile,filepositiontext,currentfilename,sourcecodeform,strictf77,\
- beginpattern,quiet,verbose,dolowercase,include_paths
+ global gotnextfile, filepositiontext, currentfilename, sourcecodeform, strictf77,\
+ beginpattern, quiet, verbose, dolowercase, include_paths
if not istop:
- saveglobals=gotnextfile,filepositiontext,currentfilename,sourcecodeform,strictf77,\
- beginpattern,quiet,verbose,dolowercase
+ saveglobals=gotnextfile, filepositiontext, currentfilename, sourcecodeform, strictf77,\
+ beginpattern, quiet, verbose, dolowercase
if ffile==[]: return
localdolowercase = dolowercase
cont=0
finalline=''
ll=''
commentline=re.compile(r'(?P<line>([^"]*["][^"]*["][^"!]*|[^\']*\'[^\']*\'[^\'!]*|[^!\'"]*))!{1}(?P<rest>.*)')
- includeline=re.compile(r'\s*include\s*(\'|")(?P<name>[^\'"]*)(\'|")',re.I)
+ includeline=re.compile(r'\s*include\s*(\'|")(?P<name>[^\'"]*)(\'|")', re.I)
cont1=re.compile(r'(?P<line>.*)&\s*\Z')
cont2=re.compile(r'(\s*&|)(?P<line>.*)')
mline_mark = re.compile(r".*?'''")
- if istop: dowithline('',-1)
- ll,l1='',''
+ if istop: dowithline('', -1)
+ ll, l1='', ''
spacedigits=[' '] + [str(_m) for _m in range(10)]
filepositiontext=''
fin=fileinput.FileInput(ffile)
@@ -316,10 +316,10 @@ def readfortrancode(ffile,dowithline=show,istop=1):
if strictf77: beginpattern=beginpattern77
else: beginpattern=beginpattern90
outmess('\tReading file %s (format:%s%s)\n'\
- %(repr(currentfilename),sourcecodeform,
+ %(repr(currentfilename), sourcecodeform,
strictf77 and ',strict' or ''))
- l=l.expandtabs().replace('\xa0',' ')
+ l=l.expandtabs().replace('\xa0', ' ')
while not l=='': # Get rid of newline characters
if l[-1] not in "\n\r\f": break
l=l[:-1]
@@ -337,7 +337,7 @@ def readfortrancode(ffile,dowithline=show,istop=1):
cont=0
continue
if sourcecodeform=='fix':
- if l[0] in ['*','c','!','C','#']:
+ if l[0] in ['*', 'c', '!', 'C', '#']:
if l[1:5].lower()=='f2py': # f2py directive
l=' '+l[5:]
else: # Skip comment line
@@ -404,20 +404,20 @@ def readfortrancode(ffile,dowithline=show,istop=1):
cont=(r is not None)
else:
raise ValueError("Flag sourcecodeform must be either 'fix' or 'free': %s"%repr(sourcecodeform))
- filepositiontext='Line #%d in %s:"%s"\n\t' % (fin.filelineno()-1,currentfilename,l1)
+ filepositiontext='Line #%d in %s:"%s"\n\t' % (fin.filelineno()-1, currentfilename, l1)
m=includeline.match(origfinalline)
if m:
fn=m.group('name')
if os.path.isfile(fn):
- readfortrancode(fn,dowithline=dowithline,istop=0)
+ readfortrancode(fn, dowithline=dowithline, istop=0)
else:
include_dirs = [os.path.dirname(currentfilename)] + include_paths
foundfile = 0
for inc_dir in include_dirs:
- fn1 = os.path.join(inc_dir,fn)
+ fn1 = os.path.join(inc_dir, fn)
if os.path.isfile(fn1):
foundfile = 1
- readfortrancode(fn1,dowithline=dowithline,istop=0)
+ readfortrancode(fn1, dowithline=dowithline, istop=0)
break
if not foundfile:
outmess('readfortrancode: could not find include file %s in %s. Ignoring.\n'%(repr(fn), os.pathsep.join(include_dirs)))
@@ -428,20 +428,20 @@ def readfortrancode(ffile,dowithline=show,istop=1):
finalline=ll.lower()
else: finalline=ll
origfinalline = ll
- filepositiontext='Line #%d in %s:"%s"\n\t' % (fin.filelineno()-1,currentfilename,l1)
+ filepositiontext='Line #%d in %s:"%s"\n\t' % (fin.filelineno()-1, currentfilename, l1)
m=includeline.match(origfinalline)
if m:
fn=m.group('name')
if os.path.isfile(fn):
- readfortrancode(fn,dowithline=dowithline,istop=0)
+ readfortrancode(fn, dowithline=dowithline, istop=0)
else:
include_dirs = [os.path.dirname(currentfilename)] + include_paths
foundfile = 0
for inc_dir in include_dirs:
- fn1 = os.path.join(inc_dir,fn)
+ fn1 = os.path.join(inc_dir, fn)
if os.path.isfile(fn1):
foundfile = 1
- readfortrancode(fn1,dowithline=dowithline,istop=0)
+ readfortrancode(fn1, dowithline=dowithline, istop=0)
break
if not foundfile:
outmess('readfortrancode: could not find include file %s in %s. Ignoring.\n'%(repr(fn), os.pathsep.join(include_dirs)))
@@ -449,10 +449,10 @@ def readfortrancode(ffile,dowithline=show,istop=1):
dowithline(finalline)
filepositiontext=''
fin.close()
- if istop: dowithline('',1)
+ if istop: dowithline('', 1)
else:
- gotnextfile,filepositiontext,currentfilename,sourcecodeform,strictf77,\
- beginpattern,quiet,verbose,dolowercase=saveglobals
+ gotnextfile, filepositiontext, currentfilename, sourcecodeform, strictf77,\
+ beginpattern, quiet, verbose, dolowercase=saveglobals
########### Crack line
beforethisafter=r'\s*(?P<before>%s(?=\s*(\b(%s)\b)))'+ \
@@ -460,55 +460,55 @@ beforethisafter=r'\s*(?P<before>%s(?=\s*(\b(%s)\b)))'+ \
r'\s*(?P<after>%s)\s*\Z'
##
fortrantypes='character|logical|integer|real|complex|double\s*(precision\s*(complex|)|complex)|type(?=\s*\([\w\s,=(*)]*\))|byte'
-typespattern=re.compile(beforethisafter%('',fortrantypes,fortrantypes,'.*'),re.I),'type'
-typespattern4implicit=re.compile(beforethisafter%('',fortrantypes+'|static|automatic|undefined',fortrantypes+'|static|automatic|undefined','.*'),re.I)
+typespattern=re.compile(beforethisafter%('', fortrantypes, fortrantypes, '.*'), re.I), 'type'
+typespattern4implicit=re.compile(beforethisafter%('', fortrantypes+'|static|automatic|undefined', fortrantypes+'|static|automatic|undefined', '.*'), re.I)
#
-functionpattern=re.compile(beforethisafter%('([a-z]+[\w\s(=*+-/)]*?|)','function','function','.*'),re.I),'begin'
-subroutinepattern=re.compile(beforethisafter%('[a-z\s]*?','subroutine','subroutine','.*'),re.I),'begin'
+functionpattern=re.compile(beforethisafter%('([a-z]+[\w\s(=*+-/)]*?|)', 'function', 'function', '.*'), re.I), 'begin'
+subroutinepattern=re.compile(beforethisafter%('[a-z\s]*?', 'subroutine', 'subroutine', '.*'), re.I), 'begin'
#modulepattern=re.compile(beforethisafter%('[a-z\s]*?','module','module','.*'),re.I),'begin'
#
groupbegins77=r'program|block\s*data'
-beginpattern77=re.compile(beforethisafter%('',groupbegins77,groupbegins77,'.*'),re.I),'begin'
+beginpattern77=re.compile(beforethisafter%('', groupbegins77, groupbegins77, '.*'), re.I), 'begin'
groupbegins90=groupbegins77+r'|module(?!\s*procedure)|python\s*module|interface|type(?!\s*\()'
-beginpattern90=re.compile(beforethisafter%('',groupbegins90,groupbegins90,'.*'),re.I),'begin'
+beginpattern90=re.compile(beforethisafter%('', groupbegins90, groupbegins90, '.*'), re.I), 'begin'
groupends=r'end|endprogram|endblockdata|endmodule|endpythonmodule|endinterface'
-endpattern=re.compile(beforethisafter%('',groupends,groupends,'[\w\s]*'),re.I),'end'
+endpattern=re.compile(beforethisafter%('', groupends, groupends, '[\w\s]*'), re.I), 'end'
#endifs='end\s*(if|do|where|select|while|forall)'
endifs='(end\s*(if|do|where|select|while|forall))|(module\s*procedure)'
-endifpattern=re.compile(beforethisafter%('[\w]*?',endifs,endifs,'[\w\s]*'),re.I),'endif'
+endifpattern=re.compile(beforethisafter%('[\w]*?', endifs, endifs, '[\w\s]*'), re.I), 'endif'
#
-implicitpattern=re.compile(beforethisafter%('','implicit','implicit','.*'),re.I),'implicit'
-dimensionpattern=re.compile(beforethisafter%('','dimension|virtual','dimension|virtual','.*'),re.I),'dimension'
-externalpattern=re.compile(beforethisafter%('','external','external','.*'),re.I),'external'
-optionalpattern=re.compile(beforethisafter%('','optional','optional','.*'),re.I),'optional'
-requiredpattern=re.compile(beforethisafter%('','required','required','.*'),re.I),'required'
-publicpattern=re.compile(beforethisafter%('','public','public','.*'),re.I),'public'
-privatepattern=re.compile(beforethisafter%('','private','private','.*'),re.I),'private'
-intrisicpattern=re.compile(beforethisafter%('','intrisic','intrisic','.*'),re.I),'intrisic'
-intentpattern=re.compile(beforethisafter%('','intent|depend|note|check','intent|depend|note|check','\s*\(.*?\).*'),re.I),'intent'
-parameterpattern=re.compile(beforethisafter%('','parameter','parameter','\s*\(.*'),re.I),'parameter'
-datapattern=re.compile(beforethisafter%('','data','data','.*'),re.I),'data'
-callpattern=re.compile(beforethisafter%('','call','call','.*'),re.I),'call'
-entrypattern=re.compile(beforethisafter%('','entry','entry','.*'),re.I),'entry'
-callfunpattern=re.compile(beforethisafter%('','callfun','callfun','.*'),re.I),'callfun'
-commonpattern=re.compile(beforethisafter%('','common','common','.*'),re.I),'common'
-usepattern=re.compile(beforethisafter%('','use','use','.*'),re.I),'use'
-containspattern=re.compile(beforethisafter%('','contains','contains',''),re.I),'contains'
-formatpattern=re.compile(beforethisafter%('','format','format','.*'),re.I),'format'
+implicitpattern=re.compile(beforethisafter%('', 'implicit', 'implicit', '.*'), re.I), 'implicit'
+dimensionpattern=re.compile(beforethisafter%('', 'dimension|virtual', 'dimension|virtual', '.*'), re.I), 'dimension'
+externalpattern=re.compile(beforethisafter%('', 'external', 'external', '.*'), re.I), 'external'
+optionalpattern=re.compile(beforethisafter%('', 'optional', 'optional', '.*'), re.I), 'optional'
+requiredpattern=re.compile(beforethisafter%('', 'required', 'required', '.*'), re.I), 'required'
+publicpattern=re.compile(beforethisafter%('', 'public', 'public', '.*'), re.I), 'public'
+privatepattern=re.compile(beforethisafter%('', 'private', 'private', '.*'), re.I), 'private'
+intrisicpattern=re.compile(beforethisafter%('', 'intrisic', 'intrisic', '.*'), re.I), 'intrisic'
+intentpattern=re.compile(beforethisafter%('', 'intent|depend|note|check', 'intent|depend|note|check', '\s*\(.*?\).*'), re.I), 'intent'
+parameterpattern=re.compile(beforethisafter%('', 'parameter', 'parameter', '\s*\(.*'), re.I), 'parameter'
+datapattern=re.compile(beforethisafter%('', 'data', 'data', '.*'), re.I), 'data'
+callpattern=re.compile(beforethisafter%('', 'call', 'call', '.*'), re.I), 'call'
+entrypattern=re.compile(beforethisafter%('', 'entry', 'entry', '.*'), re.I), 'entry'
+callfunpattern=re.compile(beforethisafter%('', 'callfun', 'callfun', '.*'), re.I), 'callfun'
+commonpattern=re.compile(beforethisafter%('', 'common', 'common', '.*'), re.I), 'common'
+usepattern=re.compile(beforethisafter%('', 'use', 'use', '.*'), re.I), 'use'
+containspattern=re.compile(beforethisafter%('', 'contains', 'contains', ''), re.I), 'contains'
+formatpattern=re.compile(beforethisafter%('', 'format', 'format', '.*'), re.I), 'format'
## Non-fortran and f2py-specific statements
-f2pyenhancementspattern=re.compile(beforethisafter%('','threadsafe|fortranname|callstatement|callprotoargument|usercode|pymethoddef','threadsafe|fortranname|callstatement|callprotoargument|usercode|pymethoddef','.*'),re.I|re.S),'f2pyenhancements'
-multilinepattern = re.compile(r"\s*(?P<before>''')(?P<this>.*?)(?P<after>''')\s*\Z",re.S),'multiline'
+f2pyenhancementspattern=re.compile(beforethisafter%('', 'threadsafe|fortranname|callstatement|callprotoargument|usercode|pymethoddef', 'threadsafe|fortranname|callstatement|callprotoargument|usercode|pymethoddef', '.*'), re.I|re.S), 'f2pyenhancements'
+multilinepattern = re.compile(r"\s*(?P<before>''')(?P<this>.*?)(?P<after>''')\s*\Z", re.S), 'multiline'
##
def _simplifyargs(argsline):
a = []
for n in markoutercomma(argsline).split('@,@'):
for r in '(),':
- n = n.replace(r,'_')
+ n = n.replace(r, '_')
a.append(n)
return ','.join(a)
-crackline_re_1 = re.compile(r'\s*(?P<result>\b[a-z]+[\w]*\b)\s*[=].*',re.I)
+crackline_re_1 = re.compile(r'\s*(?P<result>\b[a-z]+[\w]*\b)\s*[=].*', re.I)
def crackline(line,reset=0):
"""
reset=-1 --- initialize
@@ -517,14 +517,14 @@ def crackline(line,reset=0):
Cracked data is saved in grouplist[0].
"""
- global beginpattern,groupcounter,groupname,groupcache,grouplist,gotnextfile,\
- filepositiontext,currentfilename,neededmodule,expectbegin,skipblocksuntil,\
- skipemptyends,previous_context
+ global beginpattern, groupcounter, groupname, groupcache, grouplist, gotnextfile,\
+ filepositiontext, currentfilename, neededmodule, expectbegin, skipblocksuntil,\
+ skipemptyends, previous_context
if ';' in line and not (f2pyenhancementspattern[0].match(line) or
multilinepattern[0].match(line)):
for l in line.split(';'):
- assert reset==0,repr(reset) # XXX: non-zero reset values need testing
- crackline(l,reset)
+ assert reset==0, repr(reset) # XXX: non-zero reset values need testing
+ crackline(l, reset)
return
if reset<0:
groupcounter=0
@@ -542,7 +542,7 @@ def crackline(line,reset=0):
fl=0
if f77modulename and neededmodule==groupcounter: fl=2
while groupcounter>fl:
- outmess('crackline: groupcounter=%s groupname=%s\n'%(repr(groupcounter),repr(groupname)))
+ outmess('crackline: groupcounter=%s groupname=%s\n'%(repr(groupcounter), repr(groupname)))
outmess('crackline: Mismatch of blocks encountered. Trying to fix it by assuming "end" statement.\n')
grouplist[groupcounter-1].append(groupcache[groupcounter])
grouplist[groupcounter-1][-1]['body']=grouplist[groupcounter]
@@ -561,15 +561,15 @@ def crackline(line,reset=0):
return
if line=='': return
flag=0
- for pat in [dimensionpattern,externalpattern,intentpattern,optionalpattern,
+ for pat in [dimensionpattern, externalpattern, intentpattern, optionalpattern,
requiredpattern,
- parameterpattern,datapattern,publicpattern,privatepattern,
+ parameterpattern, datapattern, publicpattern, privatepattern,
intrisicpattern,
- endifpattern,endpattern,
+ endifpattern, endpattern,
formatpattern,
- beginpattern,functionpattern,subroutinepattern,
- implicitpattern,typespattern,commonpattern,
- callpattern,usepattern,containspattern,
+ beginpattern, functionpattern, subroutinepattern,
+ implicitpattern, typespattern, commonpattern,
+ callpattern, usepattern, containspattern,
entrypattern,
f2pyenhancementspattern,
multilinepattern
@@ -587,18 +587,18 @@ def crackline(line,reset=0):
name=invbadnames[name]
if 'interfaced' in groupcache[groupcounter] and name in groupcache[groupcounter]['interfaced']:
continue
- m1=re.match(r'(?P<before>[^"]*)\b%s\b\s*@\(@(?P<args>[^@]*)@\)@.*\Z'%name,markouterparen(line),re.I)
+ m1=re.match(r'(?P<before>[^"]*)\b%s\b\s*@\(@(?P<args>[^@]*)@\)@.*\Z'%name, markouterparen(line), re.I)
if m1:
m2 = re_1.match(m1.group('before'))
a = _simplifyargs(m1.group('args'))
if m2:
- line='callfun %s(%s) result (%s)'%(name,a,m2.group('result'))
- else: line='callfun %s(%s)'%(name,a)
+ line='callfun %s(%s) result (%s)'%(name, a, m2.group('result'))
+ else: line='callfun %s(%s)'%(name, a)
m = callfunpattern[0].match(line)
if not m:
outmess('crackline: could not resolve function call for line=%s.\n'%repr(line))
return
- analyzeline(m,'callfun',line)
+ analyzeline(m, 'callfun', line)
return
if verbose>1 or (verbose==1 and currentfilename.lower().endswith('.pyf')):
previous_context = None
@@ -632,7 +632,7 @@ def crackline(line,reset=0):
groupcounter=groupcounter+1
return
gotnextfile=0
- analyzeline(m,pat[1],line)
+ analyzeline(m, pat[1], line)
expectbegin=0
elif pat[1]=='endif':
pass
@@ -642,7 +642,7 @@ def crackline(line,reset=0):
skipblocksuntil=groupcounter
else:
if 0<=skipblocksuntil<=groupcounter:return
- analyzeline(m,pat[1],line)
+ analyzeline(m, pat[1], line)
def markouterparen(line):
l='';f=0
@@ -673,10 +673,10 @@ def markoutercomma(line,comma=','):
l=l+'@'+comma+'@'
continue
l=l+c
- assert not f,repr((f,line,l,cc))
+ assert not f, repr((f, line, l, cc))
return l
def unmarkouterparen(line):
- r = line.replace('@(@','(').replace('@)@',')')
+ r = line.replace('@(@', '(').replace('@)@', ')')
return r
def appenddecl(decl,decl2,force=1):
if not decl: decl={}
@@ -688,32 +688,32 @@ def appenddecl(decl,decl2,force=1):
decl[k]=decl2[k]
elif k=='attrspec':
for l in decl2[k]:
- decl=setattrspec(decl,l,force)
+ decl=setattrspec(decl, l, force)
elif k=='kindselector':
- decl=setkindselector(decl,decl2[k],force)
+ decl=setkindselector(decl, decl2[k], force)
elif k=='charselector':
- decl=setcharselector(decl,decl2[k],force)
- elif k in ['=','typename']:
+ decl=setcharselector(decl, decl2[k], force)
+ elif k in ['=', 'typename']:
if force or k not in decl:
decl[k]=decl2[k]
elif k=='note':
pass
- elif k in ['intent','check','dimension','optional','required']:
+ elif k in ['intent', 'check', 'dimension', 'optional', 'required']:
errmess('appenddecl: "%s" not implemented.\n'%k)
else:
raise Exception('appenddecl: Unknown variable definition key:' + \
str(k))
return decl
-selectpattern=re.compile(r'\s*(?P<this>(@\(@.*?@\)@|[*][\d*]+|[*]\s*@\(@.*?@\)@|))(?P<after>.*)\Z',re.I)
-nameargspattern=re.compile(r'\s*(?P<name>\b[\w$]+\b)\s*(@\(@\s*(?P<args>[\w\s,]*)\s*@\)@|)\s*((result(\s*@\(@\s*(?P<result>\b[\w$]+\b)\s*@\)@|))|(bind\s*@\(@\s*(?P<bind>.*)\s*@\)@))*\s*\Z',re.I)
-callnameargspattern=re.compile(r'\s*(?P<name>\b[\w$]+\b)\s*@\(@\s*(?P<args>.*)\s*@\)@\s*\Z',re.I)
+selectpattern=re.compile(r'\s*(?P<this>(@\(@.*?@\)@|[*][\d*]+|[*]\s*@\(@.*?@\)@|))(?P<after>.*)\Z', re.I)
+nameargspattern=re.compile(r'\s*(?P<name>\b[\w$]+\b)\s*(@\(@\s*(?P<args>[\w\s,]*)\s*@\)@|)\s*((result(\s*@\(@\s*(?P<result>\b[\w$]+\b)\s*@\)@|))|(bind\s*@\(@\s*(?P<bind>.*)\s*@\)@))*\s*\Z', re.I)
+callnameargspattern=re.compile(r'\s*(?P<name>\b[\w$]+\b)\s*@\(@\s*(?P<args>.*)\s*@\)@\s*\Z', re.I)
real16pattern = re.compile(r'([-+]?(?:\d+(?:\.\d*)?|\d*\.\d+))[dD]((?:[-+]?\d+)?)')
real8pattern = re.compile(r'([-+]?((?:\d+(?:\.\d*)?|\d*\.\d+))[eE]((?:[-+]?\d+)?)|(\d+\.\d*))')
-_intentcallbackpattern = re.compile(r'intent\s*\(.*?\bcallback\b',re.I)
+_intentcallbackpattern = re.compile(r'intent\s*\(.*?\bcallback\b', re.I)
def _is_intent_callback(vdecl):
- for a in vdecl.get('attrspec',[]):
+ for a in vdecl.get('attrspec', []):
if _intentcallbackpattern.match(a):
return 1
return 0
@@ -722,20 +722,20 @@ def _resolvenameargspattern(line):
line = markouterparen(line)
m1=nameargspattern.match(line)
if m1:
- return m1.group('name'),m1.group('args'),m1.group('result'), m1.group('bind')
+ return m1.group('name'), m1.group('args'), m1.group('result'), m1.group('bind')
m1=callnameargspattern.match(line)
if m1:
- return m1.group('name'),m1.group('args'),None, None
- return None,[],None, None
+ return m1.group('name'), m1.group('args'), None, None
+ return None, [], None, None
-def analyzeline(m,case,line):
- global groupcounter,groupname,groupcache,grouplist,filepositiontext,\
- currentfilename,f77modulename,neededinterface,neededmodule,expectbegin,\
- gotnextfile,previous_context
+def analyzeline(m, case, line):
+ global groupcounter, groupname, groupcache, grouplist, filepositiontext,\
+ currentfilename, f77modulename, neededinterface, neededmodule, expectbegin,\
+ gotnextfile, previous_context
block=m.group('this')
if case != 'multiline':
previous_context = None
- if expectbegin and case not in ['begin','call','callfun','type'] \
+ if expectbegin and case not in ['begin', 'call', 'callfun', 'type'] \
and not skipemptyends and groupcounter<1:
newname=os.path.basename(currentfilename).split('.')[0]
outmess('analyzeline: no group yet. Creating program group with name "%s".\n'%newname)
@@ -750,21 +750,21 @@ def analyzeline(m,case,line):
groupcache[groupcounter]['name']=newname
groupcache[groupcounter]['from']='fromsky'
expectbegin=0
- if case in ['begin','call','callfun']:
+ if case in ['begin', 'call', 'callfun']:
# Crack line => block,name,args,result
block = block.lower()
- if re.match(r'block\s*data',block,re.I): block='block data'
- if re.match(r'python\s*module',block,re.I): block='python module'
- name,args,result,bind = _resolvenameargspattern(m.group('after'))
+ if re.match(r'block\s*data', block, re.I): block='block data'
+ if re.match(r'python\s*module', block, re.I): block='python module'
+ name, args, result, bind = _resolvenameargspattern(m.group('after'))
if name is None:
if block=='block data':
name = '_BLOCK_DATA_'
else:
name = ''
- if block not in ['interface','block data']:
+ if block not in ['interface', 'block data']:
outmess('analyzeline: No name/args pattern found for line.\n')
- previous_context = (block,name,groupcounter)
+ previous_context = (block, name, groupcounter)
if args: args=rmbadname([x.strip() for x in markoutercomma(args).split('@,@')])
else: args=[]
if '' in args:
@@ -776,7 +776,7 @@ def analyzeline(m,case,line):
needmodule=0
needinterface=0
- if case in ['call','callfun']:
+ if case in ['call', 'callfun']:
needinterface=1
if 'args' not in groupcache[groupcounter]:
return
@@ -799,7 +799,7 @@ def analyzeline(m,case,line):
grouplist[groupcounter]=[]
if needmodule:
if verbose>1:
- outmess('analyzeline: Creating module block %s\n'%repr(f77modulename),0)
+ outmess('analyzeline: Creating module block %s\n'%repr(f77modulename), 0)
groupname[groupcounter]='module'
groupcache[groupcounter]['block']='python module'
groupcache[groupcounter]['name']=f77modulename
@@ -813,11 +813,11 @@ def analyzeline(m,case,line):
grouplist[groupcounter]=[]
if needinterface:
if verbose>1:
- outmess('analyzeline: Creating additional interface block (groupcounter=%s).\n' % (groupcounter),0)
+ outmess('analyzeline: Creating additional interface block (groupcounter=%s).\n' % (groupcounter), 0)
groupname[groupcounter]='interface'
groupcache[groupcounter]['block']='interface'
groupcache[groupcounter]['name']='unknown_interface'
- groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'],groupcache[groupcounter-1]['name'])
+ groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'], groupcache[groupcounter-1]['name'])
groupcache[groupcounter]['body']=[]
groupcache[groupcounter]['externals']=[]
groupcache[groupcounter]['interfaced']=[]
@@ -835,9 +835,9 @@ def analyzeline(m,case,line):
groupcache[groupcounter]['from']=currentfilename
else:
if f77modulename and groupcounter==3:
- groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'],currentfilename)
+ groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'], currentfilename)
else:
- groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'],groupcache[groupcounter-1]['name'])
+ groupcache[groupcounter]['from']='%s:%s'%(groupcache[groupcounter-1]['from'], groupcache[groupcounter-1]['name'])
for k in list(groupcache[groupcounter].keys()):
if not groupcache[groupcounter][k]:
del groupcache[groupcounter][k]
@@ -852,7 +852,7 @@ def analyzeline(m,case,line):
if block=='type':
groupcache[groupcounter]['varnames'] = []
- if case in ['call','callfun']: # set parents variables
+ if case in ['call', 'callfun']: # set parents variables
if name not in groupcache[groupcounter-2]['externals']:
groupcache[groupcounter-2]['externals'].append(name)
groupcache[groupcounter]['vars']=copy.deepcopy(groupcache[groupcounter-2]['vars'])
@@ -860,23 +860,23 @@ def analyzeline(m,case,line):
#except: pass
try: del groupcache[groupcounter]['vars'][name][groupcache[groupcounter]['vars'][name]['attrspec'].index('external')]
except: pass
- if block in ['function','subroutine']: # set global attributes
- try: groupcache[groupcounter]['vars'][name]=appenddecl(groupcache[groupcounter]['vars'][name],groupcache[groupcounter-2]['vars'][''])
+ if block in ['function', 'subroutine']: # set global attributes
+ try: groupcache[groupcounter]['vars'][name]=appenddecl(groupcache[groupcounter]['vars'][name], groupcache[groupcounter-2]['vars'][''])
except: pass
if case=='callfun': # return type
if result and result in groupcache[groupcounter]['vars']:
if not name==result:
- groupcache[groupcounter]['vars'][name]=appenddecl(groupcache[groupcounter]['vars'][name],groupcache[groupcounter]['vars'][result])
+ groupcache[groupcounter]['vars'][name]=appenddecl(groupcache[groupcounter]['vars'][name], groupcache[groupcounter]['vars'][result])
#if groupcounter>1: # name is interfaced
try: groupcache[groupcounter-2]['interfaced'].append(name)
except: pass
if block=='function':
t=typespattern[0].match(m.group('before')+' '+name)
if t:
- typespec,selector,attr,edecl=cracktypespec0(t.group('this'),t.group('after'))
- updatevars(typespec,selector,attr,edecl)
+ typespec, selector, attr, edecl=cracktypespec0(t.group('this'), t.group('after'))
+ updatevars(typespec, selector, attr, edecl)
- if case in ['call','callfun']:
+ if case in ['call', 'callfun']:
grouplist[groupcounter-1].append(groupcache[groupcounter])
grouplist[groupcounter-1][-1]['body']=grouplist[groupcounter]
del grouplist[groupcounter]
@@ -887,20 +887,20 @@ def analyzeline(m,case,line):
groupcounter=groupcounter-1 # end interface
elif case=='entry':
- name,args,result,bind=_resolvenameargspattern(m.group('after'))
+ name, args, result, bind=_resolvenameargspattern(m.group('after'))
if name is not None:
if args:
args=rmbadname([x.strip() for x in markoutercomma(args).split('@,@')])
else: args=[]
- assert result is None,repr(result)
+ assert result is None, repr(result)
groupcache[groupcounter]['entry'][name] = args
- previous_context = ('entry',name,groupcounter)
+ previous_context = ('entry', name, groupcounter)
elif case=='type':
- typespec,selector,attr,edecl=cracktypespec0(block,m.group('after'))
- last_name = updatevars(typespec,selector,attr,edecl)
+ typespec, selector, attr, edecl=cracktypespec0(block, m.group('after'))
+ last_name = updatevars(typespec, selector, attr, edecl)
if last_name is not None:
- previous_context = ('variable',last_name,groupcounter)
- elif case in ['dimension','intent','optional','required','external','public','private','intrisic']:
+ previous_context = ('variable', last_name, groupcounter)
+ elif case in ['dimension', 'intent', 'optional', 'required', 'external', 'public', 'private', 'intrisic']:
edecl=groupcache[groupcounter]['vars']
ll=m.group('after').strip()
i=ll.find('::')
@@ -909,7 +909,7 @@ def analyzeline(m,case,line):
ll=ll[:i+1]+'::'+ll[i+1:]
i=ll.find('::')
if ll[i:]=='::' and 'args' in groupcache[groupcounter]:
- outmess('All arguments will have attribute %s%s\n'%(m.group('this'),ll[:i]))
+ outmess('All arguments will have attribute %s%s\n'%(m.group('this'), ll[:i]))
ll = ll + ','.join(groupcache[groupcounter]['args'])
if i<0:i=0;pl=''
else: pl=ll[:i].strip();ll=ll[i+2:]
@@ -922,10 +922,10 @@ def analyzeline(m,case,line):
for e in [x.strip() for x in markoutercomma(ll).split('@,@')]:
m1=namepattern.match(e)
if not m1:
- if case in ['public','private']: k=''
+ if case in ['public', 'private']: k=''
else:
print(m.groupdict())
- outmess('analyzeline: no name pattern found in %s statement for %s. Skipping.\n'%(case,repr(e)))
+ outmess('analyzeline: no name pattern found in %s statement for %s. Skipping.\n'%(case, repr(e)))
continue
else:
k=rmbadname1(m1.group('name'))
@@ -942,14 +942,14 @@ def analyzeline(m,case,line):
outmess('analyzeline: missing __user__ module (could be nothing)\n')
if k!=groupcache[groupcounter]['name']: # fixes ticket 1693
outmess('analyzeline: appending intent(callback) %s'\
- ' to %s arguments\n' % (k,groupcache[groupcounter]['name']))
+ ' to %s arguments\n' % (k, groupcache[groupcounter]['name']))
groupcache[groupcounter]['args'].append(k)
else:
errmess('analyzeline: intent(callback) %s is ignored' % (k))
else:
errmess('analyzeline: intent(callback) %s is already'\
' in argument list' % (k))
- if case in ['optional','required','public','external','private','intrisic']:
+ if case in ['optional', 'required', 'public', 'external', 'private', 'intrisic']:
ap=case
if 'attrspec' in edecl[k]:
edecl[k]['attrspec'].append(ap)
@@ -968,23 +968,23 @@ def analyzeline(m,case,line):
last_name = k
groupcache[groupcounter]['vars']=edecl
if last_name is not None:
- previous_context = ('variable',last_name,groupcounter)
+ previous_context = ('variable', last_name, groupcounter)
elif case=='parameter':
edecl=groupcache[groupcounter]['vars']
ll=m.group('after').strip()[1:-1]
last_name = None
for e in markoutercomma(ll).split('@,@'):
try:
- k,initexpr=[x.strip() for x in e.split('=')]
+ k, initexpr=[x.strip() for x in e.split('=')]
except:
- outmess('analyzeline: could not extract name,expr in parameter statement "%s" of "%s"\n'%(e,ll));continue
+ outmess('analyzeline: could not extract name,expr in parameter statement "%s" of "%s"\n'%(e, ll));continue
params = get_parameters(edecl)
k=rmbadname1(k)
if k not in edecl:
edecl[k]={}
if '=' in edecl[k] and (not edecl[k]['=']==initexpr):
- outmess('analyzeline: Overwriting the value of parameter "%s" ("%s") with "%s".\n'%(k,edecl[k]['='],initexpr))
- t = determineexprtype(initexpr,params)
+ outmess('analyzeline: Overwriting the value of parameter "%s" ("%s") with "%s".\n'%(k, edecl[k]['='], initexpr))
+ t = determineexprtype(initexpr, params)
if t:
if t.get('typespec')=='real':
tt = list(initexpr)
@@ -993,11 +993,11 @@ def analyzeline(m,case,line):
initexpr[m.start():m.end()].lower().replace('d', 'e'))
initexpr = ''.join(tt)
elif t.get('typespec')=='complex':
- initexpr = initexpr[1:].lower().replace('d','e').\
- replace(',','+1j*(')
+ initexpr = initexpr[1:].lower().replace('d', 'e').\
+ replace(',', '+1j*(')
try:
- v = eval(initexpr,{},params)
- except (SyntaxError,NameError,TypeError) as msg:
+ v = eval(initexpr, {}, params)
+ except (SyntaxError, NameError, TypeError) as msg:
errmess('analyzeline: Failed to evaluate %r. Ignoring: %s\n'\
% (initexpr, msg))
continue
@@ -1008,7 +1008,7 @@ def analyzeline(m,case,line):
last_name = k
groupcache[groupcounter]['vars']=edecl
if last_name is not None:
- previous_context = ('variable',last_name,groupcounter)
+ previous_context = ('variable', last_name, groupcounter)
elif case=='implicit':
if m.group('after').strip().lower()=='none':
groupcache[groupcounter]['implicit']=None
@@ -1021,14 +1021,14 @@ def analyzeline(m,case,line):
impl={}
for e in markoutercomma(m.group('after')).split('@,@'):
decl={}
- m1=re.match(r'\s*(?P<this>.*?)\s*(\(\s*(?P<after>[a-z-, ]+)\s*\)\s*|)\Z',e,re.I)
+ m1=re.match(r'\s*(?P<this>.*?)\s*(\(\s*(?P<after>[a-z-, ]+)\s*\)\s*|)\Z', e, re.I)
if not m1:
outmess('analyzeline: could not extract info of implicit statement part "%s"\n'%(e));continue
m2=typespattern4implicit.match(m1.group('this'))
if not m2:
outmess('analyzeline: could not extract types pattern of implicit statement part "%s"\n'%(e));continue
- typespec,selector,attr,edecl=cracktypespec0(m2.group('this'),m2.group('after'))
- kindselect,charselect,typename=cracktypespec(typespec,selector)
+ typespec, selector, attr, edecl=cracktypespec0(m2.group('this'), m2.group('after'))
+ kindselect, charselect, typename=cracktypespec(typespec, selector)
decl['typespec']=typespec
decl['kindselector']=kindselect
decl['charselector']=charselect
@@ -1037,13 +1037,13 @@ def analyzeline(m,case,line):
if not decl[k]: del decl[k]
for r in markoutercomma(m1.group('after')).split('@,@'):
if '-' in r:
- try: begc,endc=[x.strip() for x in r.split('-')]
+ try: begc, endc=[x.strip() for x in r.split('-')]
except:
outmess('analyzeline: expected "<char>-<char>" instead of "%s" in range list of implicit statement\n'%r);continue
else: begc=endc=r.strip()
if not len(begc)==len(endc)==1:
outmess('analyzeline: expected "<char>-<char>" instead of "%s" in range list of implicit statement (2)\n'%r);continue
- for o in range(ord(begc),ord(endc)+1):
+ for o in range(ord(begc), ord(endc)+1):
impl[chr(o)]=decl
groupcache[groupcounter]['implicit']=impl
elif case=='data':
@@ -1061,13 +1061,13 @@ def analyzeline(m,case,line):
dl = dl.strip()
if dl.startswith(','):
dl = dl[1:].strip()
- ll.append([dl,il])
+ ll.append([dl, il])
dl=c;il='';f=0
if f==2:
dl = dl.strip()
if dl.startswith(','):
dl = dl[1:].strip()
- ll.append([dl,il])
+ ll.append([dl, il])
vars={}
if 'vars' in groupcache[groupcounter]:
vars=groupcache[groupcounter]['vars']
@@ -1097,13 +1097,13 @@ def analyzeline(m,case,line):
if v not in vars:
vars[v]={}
if '=' in vars[v] and not vars[v]['=']==l[1][j:i-1]:
- outmess('analyzeline: changing init expression of "%s" ("%s") to "%s"\n'%(v,vars[v]['='],l[1][j:i-1]))
+ outmess('analyzeline: changing init expression of "%s" ("%s") to "%s"\n'%(v, vars[v]['='], l[1][j:i-1]))
vars[v]['=']=l[1][j:i-1]
j=i
last_name = v
groupcache[groupcounter]['vars']=vars
if last_name is not None:
- previous_context = ('variable',last_name,groupcounter)
+ previous_context = ('variable', last_name, groupcounter)
elif case=='common':
line=m.group('after').strip()
if not line[0]=='/':line='//'+line
@@ -1114,13 +1114,13 @@ def analyzeline(m,case,line):
if f>=3:
bn = bn.strip()
if not bn: bn='_BLNK_'
- cl.append([bn,ol])
+ cl.append([bn, ol])
f=f-2;bn='';ol=''
if f%2: bn=bn+c
else: ol=ol+c
bn = bn.strip()
if not bn: bn='_BLNK_'
- cl.append([bn,ol])
+ cl.append([bn, ol])
commonkey={}
if 'common' in groupcache[groupcounter]:
commonkey=groupcache[groupcounter]['common']
@@ -1132,9 +1132,9 @@ def analyzeline(m,case,line):
for i in [x.strip() for x in markoutercomma(c[1]).split('@,@')]:
if i: commonkey[c[0]].append(i)
groupcache[groupcounter]['common']=commonkey
- previous_context = ('common',bn,groupcounter)
+ previous_context = ('common', bn, groupcounter)
elif case=='use':
- m1=re.match(r'\A\s*(?P<name>\b[\w]+\b)\s*((,(\s*\bonly\b\s*:|(?P<notonly>))\s*(?P<list>.*))|)\s*\Z',m.group('after'),re.I)
+ m1=re.match(r'\A\s*(?P<name>\b[\w]+\b)\s*((,(\s*\bonly\b\s*:|(?P<notonly>))\s*(?P<list>.*))|)\s*\Z', m.group('after'), re.I)
if m1:
mm=m1.groupdict()
if 'use' not in groupcache[groupcounter]:
@@ -1150,7 +1150,7 @@ def analyzeline(m,case,line):
rl={}
for l in ll:
if '=' in l:
- m2=re.match(r'\A\s*(?P<local>\b[\w]+\b)\s*=\s*>\s*(?P<use>\b[\w]+\b)\s*\Z',l,re.I)
+ m2=re.match(r'\A\s*(?P<local>\b[\w]+\b)\s*=\s*>\s*(?P<use>\b[\w]+\b)\s*\Z', l, re.I)
if m2: rl[m2.group('local').strip()]=m2.group('use').strip()
else:
outmess('analyzeline: Not local=>use pattern found in %s\n'%repr(l))
@@ -1187,7 +1187,7 @@ def analyzeline(m,case,line):
print(m.groupdict())
outmess('analyzeline: No code implemented for line.\n')
-def appendmultiline(group, context_name,ml):
+def appendmultiline(group, context_name, ml):
if 'f2pymultilines' not in group:
group['f2pymultilines'] = {}
d = group['f2pymultilines']
@@ -1196,11 +1196,11 @@ def appendmultiline(group, context_name,ml):
d[context_name].append(ml)
return
-def cracktypespec0(typespec,ll):
+def cracktypespec0(typespec, ll):
selector=None
attr=None
- if re.match(r'double\s*complex',typespec,re.I): typespec='double complex'
- elif re.match(r'double\s*precision',typespec,re.I): typespec='double precision'
+ if re.match(r'double\s*complex', typespec, re.I): typespec='double complex'
+ elif re.match(r'double\s*precision', typespec, re.I): typespec='double precision'
else: typespec=typespec.strip().lower()
m1=selectpattern.match(markouterparen(ll))
if not m1:
@@ -1208,25 +1208,25 @@ def cracktypespec0(typespec,ll):
return
d=m1.groupdict()
for k in list(d.keys()): d[k]=unmarkouterparen(d[k])
- if typespec in ['complex','integer','logical','real','character','type']:
+ if typespec in ['complex', 'integer', 'logical', 'real', 'character', 'type']:
selector=d['this']
ll=d['after']
i=ll.find('::')
if i>=0:
attr=ll[:i].strip()
ll=ll[i+2:]
- return typespec,selector,attr,ll
+ return typespec, selector, attr, ll
#####
-namepattern=re.compile(r'\s*(?P<name>\b[\w]+\b)\s*(?P<after>.*)\s*\Z',re.I)
-kindselector=re.compile(r'\s*(\(\s*(kind\s*=)?\s*(?P<kind>.*)\s*\)|[*]\s*(?P<kind2>.*?))\s*\Z',re.I)
-charselector=re.compile(r'\s*(\((?P<lenkind>.*)\)|[*]\s*(?P<charlen>.*))\s*\Z',re.I)
-lenkindpattern=re.compile(r'\s*(kind\s*=\s*(?P<kind>.*?)\s*(@,@\s*len\s*=\s*(?P<len>.*)|)|(len\s*=\s*|)(?P<len2>.*?)\s*(@,@\s*(kind\s*=\s*|)(?P<kind2>.*)|))\s*\Z',re.I)
-lenarraypattern=re.compile(r'\s*(@\(@\s*(?!/)\s*(?P<array>.*?)\s*@\)@\s*[*]\s*(?P<len>.*?)|([*]\s*(?P<len2>.*?)|)\s*(@\(@\s*(?!/)\s*(?P<array2>.*?)\s*@\)@|))\s*(=\s*(?P<init>.*?)|(@\(@|)/\s*(?P<init2>.*?)\s*/(@\)@|)|)\s*\Z',re.I)
+namepattern=re.compile(r'\s*(?P<name>\b[\w]+\b)\s*(?P<after>.*)\s*\Z', re.I)
+kindselector=re.compile(r'\s*(\(\s*(kind\s*=)?\s*(?P<kind>.*)\s*\)|[*]\s*(?P<kind2>.*?))\s*\Z', re.I)
+charselector=re.compile(r'\s*(\((?P<lenkind>.*)\)|[*]\s*(?P<charlen>.*))\s*\Z', re.I)
+lenkindpattern=re.compile(r'\s*(kind\s*=\s*(?P<kind>.*?)\s*(@,@\s*len\s*=\s*(?P<len>.*)|)|(len\s*=\s*|)(?P<len2>.*?)\s*(@,@\s*(kind\s*=\s*|)(?P<kind2>.*)|))\s*\Z', re.I)
+lenarraypattern=re.compile(r'\s*(@\(@\s*(?!/)\s*(?P<array>.*?)\s*@\)@\s*[*]\s*(?P<len>.*?)|([*]\s*(?P<len2>.*?)|)\s*(@\(@\s*(?!/)\s*(?P<array2>.*?)\s*@\)@|))\s*(=\s*(?P<init>.*?)|(@\(@|)/\s*(?P<init2>.*?)\s*/(@\)@|)|)\s*\Z', re.I)
def removespaces(expr):
expr=expr.strip()
if len(expr)<=1: return expr
expr2=expr[0]
- for i in range(1,len(expr)-1):
+ for i in range(1, len(expr)-1):
if expr[i]==' ' and \
((expr[i+1] in "()[]{}=+-/* ") or (expr[i-1] in "()[]{}=+-/* ")): continue
expr2=expr2+expr[i]
@@ -1238,20 +1238,20 @@ def markinnerspaces(line):
cc1='"'
cb=''
for c in line:
- if cb=='\\' and c in ['\\','\'','"']:
+ if cb=='\\' and c in ['\\', '\'', '"']:
l=l+c;
cb=c
continue
- if f==0 and c in ['\'','"']: cc=c; cc1={'\'':'"','"':'\''}[c]
+ if f==0 and c in ['\'', '"']: cc=c; cc1={'\'':'"','"':'\''}[c]
if c==cc:f=f+1
elif c==cc:f=f-1
elif c==' ' and f==1: l=l+'@_@'; continue
l=l+c;cb=c
return l
-def updatevars(typespec,selector,attrspec,entitydecl):
- global groupcache,groupcounter
+def updatevars(typespec, selector, attrspec, entitydecl):
+ global groupcache, groupcounter
last_name = None
- kindselect,charselect,typename=cracktypespec(typespec,selector)
+ kindselect, charselect, typename=cracktypespec(typespec, selector)
if attrspec:
attrspec=[x.strip() for x in markoutercomma(attrspec).split('@,@')]
l = []
@@ -1268,8 +1268,8 @@ def updatevars(typespec,selector,attrspec,entitydecl):
el=[x.strip() for x in markoutercomma(entitydecl).split('@,@')]
el1=[]
for e in el:
- for e1 in [x.strip() for x in markoutercomma(removespaces(markinnerspaces(e)),comma=' ').split('@ @')]:
- if e1: el1.append(e1.replace('@_@',' '))
+ for e1 in [x.strip() for x in markoutercomma(removespaces(markinnerspaces(e)), comma=' ').split('@ @')]:
+ if e1: el1.append(e1.replace('@_@', ' '))
for e in el1:
m=namepattern.match(e)
if not m:
@@ -1283,29 +1283,29 @@ def updatevars(typespec,selector,attrspec,entitydecl):
if not_has_typespec:
edecl['typespec']=typespec
elif typespec and (not typespec==edecl['typespec']):
- outmess('updatevars: attempt to change the type of "%s" ("%s") to "%s". Ignoring.\n' % (ename,edecl['typespec'],typespec))
+ outmess('updatevars: attempt to change the type of "%s" ("%s") to "%s". Ignoring.\n' % (ename, edecl['typespec'], typespec))
if 'kindselector' not in edecl:
edecl['kindselector']=copy.copy(kindselect)
elif kindselect:
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]))
+ 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])
if 'charselector' not in edecl and charselect:
if not_has_typespec:
edecl['charselector']=charselect
else:
errmess('updatevars:%s: attempt to change empty charselector to %r. Ignoring.\n' \
- %(ename,charselect))
+ %(ename, charselect))
elif charselect:
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]))
+ 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])
if 'typename' not in edecl:
edecl['typename']=typename
elif typename and (not edecl['typename']==typename):
- outmess('updatevars: attempt to change the typename of "%s" ("%s") to "%s". Ignoring.\n' % (ename,edecl['typename'],typename))
+ outmess('updatevars: attempt to change the typename of "%s" ("%s") to "%s". Ignoring.\n' % (ename, edecl['typename'], typename))
if 'attrspec' not in edecl:
edecl['attrspec']=copy.copy(attrspec)
elif attrspec:
@@ -1322,7 +1322,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
m1=lenarraypattern.match(markouterparen(m.group('after')))
if m1:
d1=m1.groupdict()
- for lk in ['len','array','init']:
+ 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 list(d1.keys()):
if d1[k] is not None: d1[k]=unmarkouterparen(d1[k])
@@ -1334,7 +1334,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
else:
d1['array']=d1['array']+','+d1['len']
del d1['len']
- errmess('updatevars: "%s %s" is mapped to "%s %s(%s)"\n'%(typespec,e,typespec,ename,d1['array']))
+ errmess('updatevars: "%s %s" is mapped to "%s %s(%s)"\n'%(typespec, e, typespec, ename, d1['array']))
if 'array' in d1:
dm = 'dimension(%s)'%d1['array']
if 'attrspec' not in edecl or (not edecl['attrspec']):
@@ -1345,11 +1345,11 @@ def updatevars(typespec,selector,attrspec,entitydecl):
if dm1[:9]=='dimension' and dm1!=dm:
del edecl['attrspec'][-1]
errmess('updatevars:%s: attempt to change %r to %r. Ignoring.\n' \
- % (ename,dm1,dm))
+ % (ename, dm1, dm))
break
if 'len' in d1:
- if typespec in ['complex','integer','logical','real']:
+ if typespec in ['complex', 'integer', 'logical', 'real']:
if ('kindselector' not in edecl) or (not edecl['kindselector']):
edecl['kindselector']={}
edecl['kindselector']['*']=d1['len']
@@ -1361,7 +1361,7 @@ def updatevars(typespec,selector,attrspec,entitydecl):
edecl['charselector']['*']=d1['len']
if 'init' in d1:
if '=' in edecl and (not edecl['=']==d1['init']):
- outmess('updatevars: attempt to change the init expression of "%s" ("%s") to "%s". Ignoring.\n' % (ename,edecl['='],d1['init']))
+ outmess('updatevars: attempt to change the init expression of "%s" ("%s") to "%s". Ignoring.\n' % (ename, edecl['='], d1['init']))
else:
edecl['=']=d1['init']
else:
@@ -1375,12 +1375,12 @@ def updatevars(typespec,selector,attrspec,entitydecl):
last_name = ename
return last_name
-def cracktypespec(typespec,selector):
+def cracktypespec(typespec, selector):
kindselect=None
charselect=None
typename=None
if selector:
- if typespec in ['complex','integer','logical','real']:
+ if typespec in ['complex', 'integer', 'logical', 'real']:
kindselect=kindselector.match(selector)
if not kindselect:
outmess('cracktypespec: no kindselector pattern found for %s\n'%(repr(selector)))
@@ -1390,7 +1390,7 @@ def cracktypespec(typespec,selector):
del kindselect['kind2']
for k in list(kindselect.keys()):
if not kindselect[k]: del kindselect[k]
- for k,i in list(kindselect.items()):
+ for k, i in list(kindselect.items()):
kindselect[k] = rmbadname1(i)
elif typespec=='character':
charselect=charselector.match(selector)
@@ -1403,7 +1403,7 @@ def cracktypespec(typespec,selector):
if charselect['lenkind']:
lenkind=lenkindpattern.match(markoutercomma(charselect['lenkind']))
lenkind=lenkind.groupdict()
- for lk in ['len','kind']:
+ for lk in ['len', 'kind']:
if lenkind[lk+'2']:
lenkind[lk]=lenkind[lk+'2']
charselect[lk]=lenkind[lk]
@@ -1411,15 +1411,15 @@ def cracktypespec(typespec,selector):
del charselect['lenkind']
for k in list(charselect.keys()):
if not charselect[k]: del charselect[k]
- for k,i in list(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)
+ typename=re.match(r'\s*\(\s*(?P<name>\w+)\s*\)', selector, re.I)
if typename: typename=typename.group('name')
else: outmess('cracktypespec: no typename found in %s\n'%(repr(typespec+selector)))
else:
outmess('cracktypespec: no selector used for %s\n'%(repr(selector)))
- return kindselect,charselect,typename
+ return kindselect, charselect, typename
######
def setattrspec(decl,attr,force=0):
if not decl:
@@ -1479,7 +1479,7 @@ def getblockname(block,unknown='unknown'):
def setmesstext(block):
global filepositiontext
try:
- filepositiontext='In: %s:%s\n'%(block['from'],block['name'])
+ filepositiontext='In: %s:%s\n'%(block['from'], block['name'])
except:
pass
@@ -1498,7 +1498,7 @@ def get_useparameters(block, param_map=None):
usedict = get_usedict(block)
if not usedict:
return param_map
- for usename,mapping in list(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')))
@@ -1510,10 +1510,10 @@ 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 list(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' % (repr(k),repr(usename)))
+ ' value from module %s' % (repr(k), repr(usename)))
param_map[k] = v
return param_map
@@ -1525,11 +1525,11 @@ def postcrack2(block,tab='',param_map=None):
if isinstance(block, list):
ret = []
for g in block:
- g = postcrack2(g,tab=tab+'\t',param_map=param_map)
+ g = postcrack2(g, tab=tab+'\t', param_map=param_map)
ret.append(g)
return ret
setmesstext(block)
- outmess('%sBlock: %s\n'%(tab,block['name']),0)
+ outmess('%sBlock: %s\n'%(tab, block['name']), 0)
if param_map is None:
param_map = get_useparameters(block)
@@ -1546,7 +1546,7 @@ def postcrack2(block,tab='',param_map=None):
kind['kind'] = param_map[val]
new_body = []
for b in block['body']:
- b = postcrack2(b,tab=tab+'\t',param_map=param_map)
+ b = postcrack2(b, tab=tab+'\t', param_map=param_map)
new_body.append(b)
block['body'] = new_body
@@ -1558,13 +1558,13 @@ def postcrack(block,args=None,tab=''):
function return values
determine expression types if in argument list
"""
- global usermodules,onlyfunctions
+ global usermodules, onlyfunctions
if isinstance(block, list):
gret=[]
uret=[]
for g in block:
setmesstext(g)
- g=postcrack(g,tab=tab+'\t')
+ g=postcrack(g, tab=tab+'\t')
if 'name' in g and '__user__' in g['name']: # sort user routines to appear first
uret.append(g)
else:
@@ -1575,7 +1575,7 @@ def postcrack(block,args=None,tab=''):
raise Exception('postcrack: Expected block dictionary instead of ' + \
str(block))
if 'name' in block and not block['name']=='unknown_interface':
- outmess('%sBlock: %s\n'%(tab,block['name']),0)
+ outmess('%sBlock: %s\n'%(tab, block['name']), 0)
blocktype=block['block']
block=analyzeargs(block)
block=analyzecommon(block)
@@ -1583,7 +1583,7 @@ def postcrack(block,args=None,tab=''):
block['sortvars']=sortvarnames(block['vars'])
if 'args' in block and block['args']:
args=block['args']
- block['body']=analyzebody(block,args,tab=tab)
+ block['body']=analyzebody(block, args, tab=tab)
userisdefined=[]
## fromuser = []
@@ -1610,8 +1610,8 @@ def postcrack(block,args=None,tab=''):
mname='unknown__user__routines'
if mname in userisdefined:
i=1
- while '%s_%i'%(mname,i) in userisdefined: i=i+1
- mname='%s_%i'%(mname,i)
+ while '%s_%i'%(mname, i) in userisdefined: i=i+1
+ mname='%s_%i'%(mname, i)
interface={'block':'interface','body':[],'vars':{},'name':name+'_user_interface'}
for e in block['externals']:
## if e in fromuser:
@@ -1687,7 +1687,7 @@ def analyzecommon(block):
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)
+ m=re.match(r'\A\s*\b(?P<name>.*?)\b\s*(\((?P<dims>.*?)\)|)\s*\Z', e, re.I)
if m:
dims=[]
if m.group('dims'):
@@ -1705,7 +1705,7 @@ def analyzecommon(block):
if n not in commonvars: commonvars.append(n)
else:
n=e
- errmess('analyzecommon: failed to extract "<name>[(<dims>)]" from "%s" in common /%s/.\n'%(e,k))
+ errmess('analyzecommon: failed to extract "<name>[(<dims>)]" from "%s" in common /%s/.\n'%(e, k))
comvars.append(n)
block['common'][k]=comvars
if 'commonvars' not in block:
@@ -1715,12 +1715,12 @@ def analyzecommon(block):
return block
def analyzebody(block,args,tab=''):
- global usermodules,skipfuncs,onlyfuncs,f90modulevars
+ global usermodules, skipfuncs, onlyfuncs, f90modulevars
setmesstext(block)
body=[]
for b in block['body']:
b['parent_block'] = block
- if b['block'] in ['function','subroutine']:
+ if b['block'] in ['function', 'subroutine']:
if args is not None and b['name'] not in args:
continue
else:
@@ -1732,11 +1732,11 @@ def analyzebody(block,args,tab=''):
b['saved_interface'] = crack2fortrangen(b, '\n'+' '*6, as_interface=True)
else: as_=args
- b=postcrack(b,as_,tab=tab+'\t')
+ b=postcrack(b, as_, tab=tab+'\t')
if b['block']=='interface' and not b['body']:
if 'f2pyenhancements' not in b:
continue
- if b['block'].replace(' ','')=='pythonmodule':
+ if b['block'].replace(' ', '')=='pythonmodule':
usermodules.append(b)
else:
if b['block']=='module':
@@ -1755,113 +1755,113 @@ def buildimplicitrules(block):
outmess('buildimplicitrules: no implicit rules for routine %s.\n'%repr(block['name']))
else:
for k in list(block['implicit'].keys()):
- if block['implicit'][k].get('typespec') not in ['static','automatic']:
+ if block['implicit'][k].get('typespec') not in ['static', 'automatic']:
implicitrules[k]=block['implicit'][k]
else:
attrrules[k]=block['implicit'][k]['typespec']
- return implicitrules,attrrules
+ return implicitrules, attrrules
def myeval(e,g=None,l=None):
- r = eval(e,g,l)
- if type(r) in [type(0),type(0.0)]:
+ r = eval(e, g, l)
+ if type(r) in [type(0), type(0.0)]:
return r
raise ValueError('r=%r' % (r))
-getlincoef_re_1 = re.compile(r'\A\b\w+\b\Z',re.I)
-def getlincoef(e,xset): # e = a*x+b ; x in xset
+getlincoef_re_1 = re.compile(r'\A\b\w+\b\Z', re.I)
+def getlincoef(e, xset): # e = a*x+b ; x in xset
try:
- c = int(myeval(e,{},{}))
- return 0,c,None
+ c = int(myeval(e, {}, {}))
+ return 0, c, None
except: pass
if getlincoef_re_1.match(e):
- return 1,0,e
+ return 1, 0, e
len_e = len(e)
for x in xset:
if len(x)>len_e: continue
if re.search(r'\w\s*\([^)]*\b'+x+r'\b', e):
# skip function calls having x as an argument, e.g max(1, x)
continue
- re_1 = re.compile(r'(?P<before>.*?)\b'+x+r'\b(?P<after>.*)',re.I)
+ re_1 = re.compile(r'(?P<before>.*?)\b'+x+r'\b(?P<after>.*)', re.I)
m = re_1.match(e)
if m:
try:
m1 = re_1.match(e)
while m1:
- ee = '%s(%s)%s'%(m1.group('before'),0,m1.group('after'))
+ ee = '%s(%s)%s'%(m1.group('before'), 0, m1.group('after'))
m1 = re_1.match(ee)
- b = myeval(ee,{},{})
+ b = myeval(ee, {}, {})
m1 = re_1.match(e)
while m1:
- ee = '%s(%s)%s'%(m1.group('before'),1,m1.group('after'))
+ ee = '%s(%s)%s'%(m1.group('before'), 1, m1.group('after'))
m1 = re_1.match(ee)
- a = myeval(ee,{},{}) - b
+ a = myeval(ee, {}, {}) - b
m1 = re_1.match(e)
while m1:
- ee = '%s(%s)%s'%(m1.group('before'),0.5,m1.group('after'))
+ ee = '%s(%s)%s'%(m1.group('before'), 0.5, m1.group('after'))
m1 = re_1.match(ee)
- c = myeval(ee,{},{})
+ c = myeval(ee, {}, {})
# computing another point to be sure that expression is linear
m1 = re_1.match(e)
while m1:
- ee = '%s(%s)%s'%(m1.group('before'),1.5,m1.group('after'))
+ ee = '%s(%s)%s'%(m1.group('before'), 1.5, m1.group('after'))
m1 = re_1.match(ee)
- c2 = myeval(ee,{},{})
+ c2 = myeval(ee, {}, {})
if (a*0.5+b==c and a*1.5+b==c2):
- return a,b,x
+ return a, b, x
except: pass
break
- return None,None,None
+ return None, None, None
_varname_match = re.compile(r'\A[a-z]\w*\Z').match
def getarrlen(dl,args,star='*'):
edl = []
- try: edl.append(myeval(dl[0],{},{}))
+ try: edl.append(myeval(dl[0], {}, {}))
except: edl.append(dl[0])
- try: edl.append(myeval(dl[1],{},{}))
+ try: edl.append(myeval(dl[1], {}, {}))
except: edl.append(dl[1])
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 p1<0: d = '%s-%s'%(dl[1], -p1)
+ else: d = '%s+%s'%(dl[1], p1)
elif isinstance(edl[1], int):
p1 = 1+edl[1]
if p1==0: d='-(%s)' % (dl[0])
- else: d='%s-(%s)' % (p1,dl[0])
- else: d = '%s-(%s)+1'%(dl[1],dl[0])
- try: return repr(myeval(d,{},{})),None,None
+ else: d='%s-(%s)' % (p1, dl[0])
+ else: d = '%s-(%s)+1'%(dl[1], dl[0])
+ try: return repr(myeval(d, {}, {})), None, None
except: pass
- d1,d2=getlincoef(dl[0],args),getlincoef(dl[1],args)
- if None not in [d1[0],d2[0]]:
- if (d1[0],d2[0])==(0,0):
- return repr(d2[1]-d1[1]+1),None,None
+ d1, d2=getlincoef(dl[0], args), getlincoef(dl[1], args)
+ if None not in [d1[0], d2[0]]:
+ if (d1[0], d2[0])==(0, 0):
+ return repr(d2[1]-d1[1]+1), None, None
b = d2[1] - d1[1] + 1
- d1 = (d1[0],0,d1[2])
- d2 = (d2[0],b,d2[2])
+ d1 = (d1[0], 0, d1[2])
+ d2 = (d2[0], b, d2[2])
if d1[0]==0 and d2[2] in args:
- if b<0: return '%s * %s - %s'%(d2[0],d2[2],-b),d2[2],'+%s)/(%s)'%(-b,d2[0])
- elif b: return '%s * %s + %s'%(d2[0],d2[2],b),d2[2],'-%s)/(%s)'%(b,d2[0])
- else: return '%s * %s'%(d2[0],d2[2]),d2[2],')/(%s)'%(d2[0])
+ if b<0: return '%s * %s - %s'%(d2[0], d2[2], -b), d2[2], '+%s)/(%s)'%(-b, d2[0])
+ elif b: return '%s * %s + %s'%(d2[0], d2[2], b), d2[2], '-%s)/(%s)'%(b, d2[0])
+ else: return '%s * %s'%(d2[0], d2[2]), d2[2], ')/(%s)'%(d2[0])
if d2[0]==0 and d1[2] in args:
- if b<0: return '%s * %s - %s'%(-d1[0],d1[2],-b),d1[2],'+%s)/(%s)'%(-b,-d1[0])
- elif b: return '%s * %s + %s'%(-d1[0],d1[2],b),d1[2],'-%s)/(%s)'%(b,-d1[0])
- else: return '%s * %s'%(-d1[0],d1[2]),d1[2],')/(%s)'%(-d1[0])
+ if b<0: return '%s * %s - %s'%(-d1[0], d1[2], -b), d1[2], '+%s)/(%s)'%(-b, -d1[0])
+ elif b: return '%s * %s + %s'%(-d1[0], d1[2], b), d1[2], '-%s)/(%s)'%(b, -d1[0])
+ else: return '%s * %s'%(-d1[0], d1[2]), d1[2], ')/(%s)'%(-d1[0])
if d1[2]==d2[2] and d1[2] in args:
a = d2[0] - d1[0]
- if not a: return repr(b),None,None
- if b<0: return '%s * %s - %s'%(a,d1[2],-b),d2[2],'+%s)/(%s)'%(-b,a)
- elif b: return '%s * %s + %s'%(a,d1[2],b),d2[2],'-%s)/(%s)'%(b,a)
- else: return '%s * %s'%(a,d1[2]),d2[2],')/(%s)'%(a)
+ if not a: return repr(b), None, None
+ if b<0: return '%s * %s - %s'%(a, d1[2], -b), d2[2], '+%s)/(%s)'%(-b, a)
+ elif b: return '%s * %s + %s'%(a, d1[2], b), d2[2], '-%s)/(%s)'%(b, a)
+ else: return '%s * %s'%(a, d1[2]), d2[2], ')/(%s)'%(a)
if d1[0]==d2[0]==1:
c = str(d1[2])
if c not in args:
if _varname_match(c):
outmess('\tgetarrlen:variable "%s" undefined\n' % (c))
c = '(%s)'%c
- if b==0: d='%s-%s' % (d2[2],c)
- elif b<0: d='%s-%s-%s' % (d2[2],c,-b)
- else: d='%s-%s+%s' % (d2[2],c,b)
+ if b==0: d='%s-%s' % (d2[2], c)
+ elif b<0: d='%s-%s-%s' % (d2[2], c, -b)
+ else: d='%s-%s+%s' % (d2[2], c, b)
elif d1[0]==0:
c2 = str(d2[2])
if c2 not in args:
@@ -1870,11 +1870,11 @@ def getarrlen(dl,args,star='*'):
c2 = '(%s)'%c2
if d2[0]==1: pass
elif d2[0]==-1: c2='-%s' %c2
- else: c2='%s*%s'%(d2[0],c2)
+ else: c2='%s*%s'%(d2[0], c2)
if b==0: d=c2
- elif b<0: d='%s-%s' % (c2,-b)
- else: d='%s+%s' % (c2,b)
+ elif b<0: d='%s-%s' % (c2, -b)
+ else: d='%s+%s' % (c2, b)
elif d2[0]==0:
c1 = str(d1[2])
if c1 not in args:
@@ -1883,12 +1883,12 @@ def getarrlen(dl,args,star='*'):
c1 = '(%s)'%c1
if d1[0]==1: c1='-%s'%c1
elif d1[0]==-1: c1='+%s'%c1
- elif d1[0]<0: c1='+%s*%s'%(-d1[0],c1)
- else: c1 = '-%s*%s' % (d1[0],c1)
+ elif d1[0]<0: c1='+%s*%s'%(-d1[0], c1)
+ else: c1 = '-%s*%s' % (d1[0], c1)
if b==0: d=c1
- elif b<0: d='%s-%s' % (c1,-b)
- else: d='%s+%s' % (c1,b)
+ elif b<0: d='%s-%s' % (c1, -b)
+ else: d='%s+%s' % (c1, b)
else:
c1 = str(d1[2])
if c1 not in args:
@@ -1897,8 +1897,8 @@ def getarrlen(dl,args,star='*'):
c1 = '(%s)'%c1
if d1[0]==1: c1='-%s'%c1
elif d1[0]==-1: c1='+%s'%c1
- elif d1[0]<0: c1='+%s*%s'%(-d1[0],c1)
- else: c1 = '-%s*%s' % (d1[0],c1)
+ elif d1[0]<0: c1='+%s*%s'%(-d1[0], c1)
+ else: c1 = '-%s*%s' % (d1[0], c1)
c2 = str(d2[2])
if c2 not in args:
@@ -1907,25 +1907,25 @@ def getarrlen(dl,args,star='*'):
c2 = '(%s)'%c2
if d2[0]==1: pass
elif d2[0]==-1: c2='-%s' %c2
- else: c2='%s*%s'%(d2[0],c2)
+ else: c2='%s*%s'%(d2[0], c2)
- if b==0: d='%s%s' % (c2,c1)
- elif b<0: d='%s%s-%s' % (c2,c1,-b)
- else: d='%s%s+%s' % (c2,c1,b)
- return d,None,None
+ if b==0: d='%s%s' % (c2, c1)
+ elif b<0: d='%s%s-%s' % (c2, c1, -b)
+ else: d='%s%s+%s' % (c2, c1, b)
+ return d, None, None
-word_pattern = re.compile(r'\b[a-z][\w$]*\b',re.I)
+word_pattern = re.compile(r'\b[a-z][\w$]*\b', re.I)
def _get_depend_dict(name, vars, deps):
if name in vars:
- words = vars[name].get('depend',[])
+ words = vars[name].get('depend', [])
if '=' in vars[name] and not isstring(vars[name]):
for word in word_pattern.findall(vars[name]['=']):
if word not in words and word in vars:
words.append(word)
for word in words[:]:
- for w in deps.get(word,[]) \
+ for w in deps.get(word, []) \
or _get_depend_dict(word, vars, deps):
if w not in words:
words.append(w)
@@ -1999,9 +1999,9 @@ def _selected_real_kind_func(p, r=0, radix=0):
def get_parameters(vars, global_params={}):
params = copy.copy(global_params)
g_params = copy.copy(global_params)
- for name,func in [('kind',_kind_func),
- ('selected_int_kind',_selected_int_kind_func),
- ('selected_real_kind',_selected_real_kind_func),
+ for name, func in [('kind', _kind_func),
+ ('selected_int_kind', _selected_int_kind_func),
+ ('selected_real_kind', _selected_real_kind_func),
]:
if name not in g_params:
g_params[name] = func
@@ -2009,22 +2009,22 @@ def get_parameters(vars, global_params={}):
for n in get_sorted_names(vars):
if 'attrspec' in vars[n] and 'parameter' in vars[n]['attrspec']:
param_names.append(n)
- kind_re = re.compile(r'\bkind\s*\(\s*(?P<value>.*)\s*\)',re.I)
- selected_int_kind_re = re.compile(r'\bselected_int_kind\s*\(\s*(?P<value>.*)\s*\)',re.I)
- selected_kind_re = re.compile(r'\bselected_(int|real)_kind\s*\(\s*(?P<value>.*)\s*\)',re.I)
+ kind_re = re.compile(r'\bkind\s*\(\s*(?P<value>.*)\s*\)', re.I)
+ selected_int_kind_re = re.compile(r'\bselected_int_kind\s*\(\s*(?P<value>.*)\s*\)', re.I)
+ selected_kind_re = re.compile(r'\bselected_(int|real)_kind\s*\(\s*(?P<value>.*)\s*\)', re.I)
for n in param_names:
if '=' in vars[n]:
v = vars[n]['=']
if islogical(vars[n]):
v = v.lower()
for repl in [
- ('.false.','False'),
- ('.true.','True'),
+ ('.false.', 'False'),
+ ('.true.', 'True'),
#TODO: test .eq., .neq., etc replacements.
]:
v = v.replace(*repl)
- v = kind_re.sub(r'kind("\1")',v)
- v = selected_int_kind_re.sub(r'selected_int_kind(\1)',v)
+ v = kind_re.sub(r'kind("\1")', v)
+ v = selected_int_kind_re.sub(r'selected_int_kind(\1)', v)
if isinteger(vars[n]) and not selected_kind_re.match(v):
v = v.split('_')[0]
if isdouble(vars[n]):
@@ -2037,11 +2037,11 @@ def get_parameters(vars, global_params={}):
if v[0]=='(' and v[-1]==')':
l = markoutercomma(v[1:-1]).split('@,@')
try:
- params[n] = eval(v,g_params,params)
+ params[n] = eval(v, g_params, params)
except Exception as msg:
params[n] = v
#print params
- outmess('get_parameters: got "%s" on %s\n' % (msg,repr(v)))
+ outmess('get_parameters: got "%s" on %s\n' % (msg, repr(v)))
if isstring(vars[n]) and isinstance(params[n], int):
params[n] = chr(params[n])
nl = n.lower()
@@ -2052,30 +2052,30 @@ def get_parameters(vars, global_params={}):
outmess('get_parameters:parameter %s does not have value?!\n'%(repr(n)))
return params
-def _eval_length(length,params):
- if length in ['(:)','(*)','*']:
+def _eval_length(length, params):
+ if length in ['(:)', '(*)', '*']:
return '(*)'
- return _eval_scalar(length,params)
+ return _eval_scalar(length, params)
_is_kind_number = re.compile(r'\d+_').match
-def _eval_scalar(value,params):
+def _eval_scalar(value, params):
if _is_kind_number(value):
value = value.split('_')[0]
try:
- value = str(eval(value,{},params))
+ value = str(eval(value, {}, params))
except (NameError, SyntaxError):
return value
except Exception as msg:
errmess('"%s" in evaluating %r '\
'(available names: %s)\n' \
- % (msg,value,list(params.keys())))
+ % (msg, value, list(params.keys())))
return value
def analyzevars(block):
global f90modulevars
setmesstext(block)
- implicitrules,attrrules=buildimplicitrules(block)
+ implicitrules, attrrules=buildimplicitrules(block)
vars=copy.copy(block['vars'])
if block['block']=='function' and block['name'] not in vars:
vars[block['name']]={}
@@ -2084,9 +2084,9 @@ def analyzevars(block):
if 'attrspec' in block['vars']['']:
gen=block['vars']['']['attrspec']
for n in list(vars.keys()):
- for k in ['public','private']:
+ for k in ['public', 'private']:
if k in gen:
- vars[n]=setattrspec(vars[n],k)
+ vars[n]=setattrspec(vars[n], k)
svars=[]
args = block['args']
for a in args:
@@ -2109,10 +2109,10 @@ def analyzevars(block):
try:
dep_matches[n]
except KeyError:
- dep_matches[n] = re.compile(r'.*\b%s\b'%(v),re.I).match
+ dep_matches[n] = re.compile(r'.*\b%s\b'%(v), re.I).match
for n in svars:
if n[0] in list(attrrules.keys()):
- vars[n]=setattrspec(vars[n],attrrules[n[0]])
+ 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:
@@ -2124,15 +2124,15 @@ def analyzevars(block):
vars[n][k]=implicitrules[ln0][k]
elif k=='attrspec':
for l in implicitrules[ln0][k]:
- vars[n]=setattrspec(vars[n],l)
+ vars[n]=setattrspec(vars[n], l)
elif n in block['args']:
- outmess('analyzevars: typespec of variable %s is not defined in routine %s.\n'%(repr(n),block['name']))
+ outmess('analyzevars: typespec of variable %s is not defined in routine %s.\n'%(repr(n), block['name']))
if 'charselector' in vars[n]:
if 'len' in vars[n]['charselector']:
l = vars[n]['charselector']['len']
try:
- l = str(eval(l,{},params))
+ l = str(eval(l, {}, params))
except:
pass
vars[n]['charselector']['len'] = l
@@ -2141,7 +2141,7 @@ def analyzevars(block):
if 'kind' in vars[n]['kindselector']:
l = vars[n]['kindselector']['kind']
try:
- l = str(eval(l,{},params))
+ l = str(eval(l, {}, params))
except:
pass
vars[n]['kindselector']['kind'] = l
@@ -2151,14 +2151,14 @@ def analyzevars(block):
attr=vars[n]['attrspec']
attr.reverse()
vars[n]['attrspec']=[]
- dim,intent,depend,check,note=None,None,None,None,None
+ dim, intent, depend, check, note=None, None, None, None, None
for a in attr:
if a[:9]=='dimension': dim=(a[9:].strip())[1:-1]
elif a[:6]=='intent': intent=(a[6:].strip())[1:-1]
elif a[:6]=='depend': depend=(a[6:].strip())[1:-1]
elif a[:5]=='check': check=(a[5:].strip())[1:-1]
elif a[:4]=='note': note=(a[4:].strip())[1:-1]
- else: vars[n]=setattrspec(vars[n],a)
+ else: vars[n]=setattrspec(vars[n], a)
if intent:
if 'intent' not in vars[n]:
vars[n]['intent']=[]
@@ -2167,8 +2167,8 @@ def analyzevars(block):
vars[n]['intent'].append(c)
intent=None
if note:
- note=note.replace('\\n\\n','\n\n')
- note=note.replace('\\n ','\n')
+ note=note.replace('\\n\\n', '\n\n')
+ note=note.replace('\\n ', '\n')
if 'note' not in vars[n]:
vars[n]['note']=[note]
else:
@@ -2197,23 +2197,23 @@ def analyzevars(block):
if d in params:
d = str(params[d])
for p in list(params.keys()):
- m = re.match(r'(?P<before>.*?)\b'+p+r'\b(?P<after>.*)',d,re.I)
+ 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]`))
d = m.group('before')+str(params[p])+m.group('after')
if d==star:
dl = [star]
else:
- dl=markoutercomma(d,':').split('@:@')
+ dl=markoutercomma(d, ':').split('@:@')
if len(dl)==2 and '*' in dl: # e.g. dimension(5:*)
dl = ['*']
d = '*'
- if len(dl)==1 and not dl[0]==star: dl = ['1',dl[0]]
+ if len(dl)==1 and not dl[0]==star: dl = ['1', dl[0]]
if len(dl)==2:
- d,v,di = getarrlen(dl,list(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
+ if v: savelindims[d] = v, di
vars[n]['dimension'].append(d)
if 'dimension' in vars[n]:
if isintent_c(vars[n]):
@@ -2226,9 +2226,9 @@ def analyzevars(block):
if '*' in d:
d = d['*']
errmess('analyzevars: character array "character*%s %s(%s)" is considered as "character %s(%s)"; "intent(c)" is forced.\n'\
- %(d,n,
+ %(d, n,
','.join(vars[n]['dimension']),
- n,','.join(vars[n]['dimension']+[d])))
+ n, ','.join(vars[n]['dimension']+[d])))
vars[n]['dimension'].append(d)
del vars[n]['charselector']
if 'intent' not in vars[n]:
@@ -2253,14 +2253,14 @@ def analyzevars(block):
#origd = d
if d not in vars:
if d in savelindims:
- pd,ad='(',savelindims[d][1]
+ pd, ad='(', savelindims[d][1]
d = savelindims[d][0]
else:
for r in block['args']:
#for r in block['vars'].iterkeys():
if r not in vars:
continue
- if re.match(r'.*?\b'+r+r'\b',d,re.I):
+ if re.match(r'.*?\b'+r+r'\b', d, re.I):
ddeps.append(r)
if d in vars:
if 'attrspec' in vars[d]:
@@ -2275,22 +2275,22 @@ def analyzevars(block):
and l_or(isintent_in, isintent_inout, isintent_inplace)(vars[n]):
vars[d]['depend']=[n]
if ni>1:
- vars[d]['=']='%s%s(%s,%s)%s'% (pd,shape_macro,n,i,ad)
+ vars[d]['=']='%s%s(%s,%s)%s'% (pd, shape_macro, n, i, ad)
else:
- vars[d]['=']='%slen(%s)%s'% (pd,n,ad)
+ vars[d]['=']='%slen(%s)%s'% (pd, n, ad)
# /---< no check
if 1 and 'check' not in vars[d]:
if ni>1:
vars[d]['check']=['%s%s(%s,%i)%s==%s'\
- %(pd,shape_macro,n,i,ad,d)]
+ %(pd, shape_macro, n, i, ad, d)]
else:
- vars[d]['check']=['%slen(%s)%s>=%s'%(pd,n,ad,d)]
+ vars[d]['check']=['%slen(%s)%s>=%s'%(pd, n, ad, d)]
if 'attrspec' not in vars[d]:
vars[d]['attrspec']=['optional']
if ('optional' not in vars[d]['attrspec']) and\
('required' not in vars[d]['attrspec']):
vars[d]['attrspec'].append('optional')
- elif d not in ['*',':']:
+ elif d not in ['*', ':']:
#/----< no check
#if ni>1: vars[n]['check'].append('shape(%s,%i)==%s'%(n,i,d))
#else: vars[n]['check'].append('len(%s)>=%s'%(n,d))
@@ -2325,11 +2325,11 @@ def analyzevars(block):
vars[n]['attrspec'].append('optional')
if 'depend' not in vars[n]:
vars[n]['depend']=[]
- for v,m in list(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)
+ vars[n]['='] = _eval_scalar(vars[n]['='], params)
for n in list(vars.keys()):
if n==block['name']: # n is block name
@@ -2337,38 +2337,38 @@ def analyzevars(block):
block['note']=vars[n]['note']
if block['block']=='function':
if 'result' in block and block['result'] in vars:
- vars[n]=appenddecl(vars[n],vars[block['result']])
+ vars[n]=appenddecl(vars[n], vars[block['result']])
if 'prefix' in block:
pr=block['prefix']; ispure=0; isrec=1
- pr1=pr.replace('pure','')
+ pr1=pr.replace('pure', '')
ispure=(not pr==pr1)
- pr=pr1.replace('recursive','')
+ pr=pr1.replace('recursive', '')
isrec=(not pr==pr1)
m=typespattern[0].match(pr)
if m:
- typespec,selector,attr,edecl=cracktypespec0(m.group('this'),m.group('after'))
- kindselect,charselect,typename=cracktypespec(typespec,selector)
+ typespec, selector, attr, edecl=cracktypespec0(m.group('this'), m.group('after'))
+ kindselect, charselect, typename=cracktypespec(typespec, selector)
vars[n]['typespec']=typespec
if kindselect:
if 'kind' in kindselect:
try:
- kindselect['kind'] = eval(kindselect['kind'],{},params)
+ kindselect['kind'] = eval(kindselect['kind'], {}, params)
except:
pass
vars[n]['kindselector']=kindselect
if charselect: vars[n]['charselector']=charselect
if typename: vars[n]['typename']=typename
- if ispure: vars[n]=setattrspec(vars[n],'pure')
- if isrec: vars[n]=setattrspec(vars[n],'recursive')
+ if ispure: vars[n]=setattrspec(vars[n], 'pure')
+ if isrec: vars[n]=setattrspec(vars[n], 'recursive')
else:
outmess('analyzevars: prefix (%s) were not used\n'%repr(block['prefix']))
- if not block['block'] in ['module','pythonmodule','python module','block data']:
+ if not block['block'] in ['module', 'pythonmodule', 'python module', 'block data']:
if 'commonvars' in block:
neededvars=copy.copy(block['args']+block['commonvars'])
else:
neededvars=copy.copy(block['args'])
for n in list(vars.keys()):
- if l_or(isintent_callback,isintent_aux)(vars[n]):
+ if l_or(isintent_callback, isintent_aux)(vars[n]):
neededvars.append(n)
if 'entry' in block:
neededvars.extend(list(block['entry'].keys()))
@@ -2381,7 +2381,7 @@ def analyzevars(block):
neededvars.append(block['result'])
else:
neededvars.append(block['name'])
- if block['block'] in ['subroutine','function']:
+ if block['block'] in ['subroutine', 'function']:
name = block['name']
if name in vars and 'intent' in vars[name]:
block['intent'] = vars[name]['intent']
@@ -2392,13 +2392,13 @@ def analyzevars(block):
del vars[n]
return vars
-analyzeargs_re_1 = re.compile(r'\A[a-z]+[\w$]*\Z',re.I)
+analyzeargs_re_1 = re.compile(r'\A[a-z]+[\w$]*\Z', re.I)
def expr2name(a, block, args=[]):
orig_a = a
a_is_expr = not analyzeargs_re_1.match(a)
if a_is_expr: # `a` is an expression
- implicitrules,attrrules=buildimplicitrules(block)
- at=determineexprtype(a,block['vars'],implicitrules)
+ implicitrules, attrrules=buildimplicitrules(block)
+ at=determineexprtype(a, block['vars'], implicitrules)
na='e_'
for c in a:
c = c.lower()
@@ -2423,12 +2423,12 @@ def expr2name(a, block, args=[]):
else:
block['vars'][a]={}
if 'externals' in block and orig_a in block['externals']+block['interfaced']:
- block['vars'][a]=setattrspec(block['vars'][a],'external')
+ block['vars'][a]=setattrspec(block['vars'][a], 'external')
return a
def analyzeargs(block):
setmesstext(block)
- implicitrules,attrrules=buildimplicitrules(block)
+ implicitrules, attrrules=buildimplicitrules(block)
if 'args' not in block:
block['args']=[]
args=[]
@@ -2437,7 +2437,7 @@ def analyzeargs(block):
args.append(a)
block['args']=args
if 'entry' in block:
- for k,args1 in list(block['entry'].items()):
+ for k, args1 in list(block['entry'].items()):
for a in args1:
if a not in block['vars']:
block['vars'][a]={}
@@ -2452,11 +2452,11 @@ def analyzeargs(block):
block['vars'][block['result']]={}
return block
-determineexprtype_re_1 = re.compile(r'\A\(.+?[,].+?\)\Z',re.I)
-determineexprtype_re_2 = re.compile(r'\A[+-]?\d+(_(P<name>[\w]+)|)\Z',re.I)
-determineexprtype_re_3 = re.compile(r'\A[+-]?[\d.]+[\d+-de.]*(_(P<name>[\w]+)|)\Z',re.I)
-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)
+determineexprtype_re_1 = re.compile(r'\A\(.+?[,].+?\)\Z', re.I)
+determineexprtype_re_2 = re.compile(r'\A[+-]?\d+(_(P<name>[\w]+)|)\Z', re.I)
+determineexprtype_re_3 = re.compile(r'\A[+-]?[\d.]+[\d+-de.]*(_(P<name>[\w]+)|)\Z', re.I)
+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 isinstance(r, int):
return {'typespec':'integer'}
@@ -2484,18 +2484,18 @@ def determineexprtype(expr,vars,rules={}):
if 'name' in m.groupdict() and m.group('name'):
outmess('determineexprtype: selected kind types not supported (%s)\n'%repr(expr))
return {'typespec':'real'}
- for op in ['+','-','*','/']:
- for e in [x.strip() for x in markoutercomma(expr,comma=op).split('@'+op+'@')]:
+ for op in ['+', '-', '*', '/']:
+ for e in [x.strip() for x in markoutercomma(expr, comma=op).split('@'+op+'@')]:
if e in vars:
return _ensure_exprdict(vars[e])
t={}
if determineexprtype_re_4.match(expr): # in parenthesis
- t=determineexprtype(expr[1:-1],vars,rules)
+ t=determineexprtype(expr[1:-1], vars, rules)
else:
m = determineexprtype_re_5.match(expr)
if m:
rn=m.group('name')
- t=determineexprtype(m.group('name'),vars,rules)
+ t=determineexprtype(m.group('name'), vars, rules)
if t and 'attrspec' in t:
del t['attrspec']
if not t:
@@ -2514,12 +2514,12 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
ret=''
if isinstance(block, list):
for g in block:
- if g and g['block'] in ['function','subroutine']:
+ if g and g['block'] in ['function', 'subroutine']:
if g['name'] in skipfuncs:
continue
if onlyfuncs and g['name'] not in onlyfuncs:
continue
- ret=ret+crack2fortrangen(g,tab,as_interface=as_interface)
+ ret=ret+crack2fortrangen(g, tab, as_interface=as_interface)
return ret
prefix=''
name=''
@@ -2540,20 +2540,20 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
f2pyenhancements = ''
if 'f2pyenhancements' in block:
for k in list(block['f2pyenhancements'].keys()):
- f2pyenhancements = '%s%s%s %s'%(f2pyenhancements,tab+tabchar,k,block['f2pyenhancements'][k])
- intent_lst = block.get('intent',[])[:]
+ 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:
intent_lst.remove('callback')
if intent_lst:
f2pyenhancements = '%s%sintent(%s) %s'%\
- (f2pyenhancements,tab+tabchar,
- ','.join(intent_lst),name)
+ (f2pyenhancements, tab+tabchar,
+ ','.join(intent_lst), name)
use=''
if 'use' in block:
- use=use2fortran(block['use'],tab+tabchar)
+ use=use2fortran(block['use'], tab+tabchar)
common=''
if 'common' in block:
- common=common2fortran(block['common'],tab+tabchar)
+ common=common2fortran(block['common'], tab+tabchar)
if name=='unknown_interface': name=''
result=''
if 'result' in block:
@@ -2562,35 +2562,35 @@ def crack2fortrangen(block,tab='\n', as_interface=False):
argsl.append(block['result'])
#if 'prefix' in block:
# prefix=block['prefix']+' '
- body=crack2fortrangen(block['body'],tab+tabchar)
- vars=vars2fortran(block,block['vars'],argsl,tab+tabchar, as_interface=as_interface)
+ body=crack2fortrangen(block['body'], tab+tabchar)
+ vars=vars2fortran(block, block['vars'], argsl, tab+tabchar, as_interface=as_interface)
mess=''
if 'from' in block and not as_interface:
mess='! in %s'%block['from']
if 'entry' in block:
entry_stmts = ''
- for k,i in list(block['entry'].items()):
+ for k, i in list(block['entry'].items()):
entry_stmts = '%s%sentry %s(%s)' \
- % (entry_stmts,tab+tabchar,k,','.join(i))
+ % (entry_stmts, tab+tabchar, k, ','.join(i))
body = body + entry_stmts
if blocktype=='block data' and name=='_BLOCK_DATA_':
name = ''
- ret='%s%s%s %s%s%s %s%s%s%s%s%s%send %s %s'%(tab,prefix,blocktype,name,args,result,mess,f2pyenhancements,use,vars,common,body,tab,blocktype,name)
+ ret='%s%s%s %s%s%s %s%s%s%s%s%s%send %s %s'%(tab, prefix, blocktype, name, args, result, mess, f2pyenhancements, use, vars, common, body, tab, blocktype, name)
return ret
def common2fortran(common,tab=''):
ret=''
for k in list(common.keys()):
if k=='_BLNK_':
- ret='%s%scommon %s'%(ret,tab,','.join(common[k]))
+ ret='%s%scommon %s'%(ret, tab, ','.join(common[k]))
else:
- ret='%s%scommon /%s/ %s'%(ret,tab,k,','.join(common[k]))
+ ret='%s%scommon /%s/ %s'%(ret, tab, k, ','.join(common[k]))
return ret
def use2fortran(use,tab=''):
ret=''
for m in list(use.keys()):
- ret='%s%suse %s,'%(ret,tab,m)
+ ret='%s%suse %s,'%(ret, tab, m)
if use[m]=={}:
if ret and ret[-1]==',': ret=ret[:-1]
continue
@@ -2600,9 +2600,9 @@ def use2fortran(use,tab=''):
c=' '
for k in list(use[m]['map'].keys()):
if k==use[m]['map'][k]:
- ret='%s%s%s'%(ret,c,k); c=','
+ ret='%s%s%s'%(ret, c, k); c=','
else:
- ret='%s%s%s=>%s'%(ret,c,k,use[m]['map'][k]); c=','
+ ret='%s%s%s=>%s'%(ret, c, k, use[m]['map'][k]); c=','
if ret and ret[-1]==',': ret=ret[:-1]
return ret
@@ -2647,13 +2647,13 @@ def vars2fortran(block,vars,args,tab='', as_interface=False):
if 'depend' in vars[a]:
for d in vars[a]['depend']:
if d in vars and 'depend' in vars[d] and a in vars[d]['depend']:
- errmess('vars2fortran: Warning: cross-dependence between variables "%s" and "%s"\n'%(a,d))
+ errmess('vars2fortran: Warning: cross-dependence between variables "%s" and "%s"\n'%(a, d))
if 'externals' in block and a in block['externals']:
if isintent_callback(vars[a]):
- ret='%s%sintent(callback) %s'%(ret,tab,a)
- ret='%s%sexternal %s'%(ret,tab,a)
+ ret='%s%sintent(callback) %s'%(ret, tab, a)
+ ret='%s%sexternal %s'%(ret, tab, a)
if isoptional(vars[a]):
- ret='%s%soptional %s'%(ret,tab,a)
+ ret='%s%soptional %s'%(ret, tab, a)
if a in vars and 'typespec' not in vars[a]:
continue
cont=1
@@ -2671,33 +2671,33 @@ def vars2fortran(block,vars,args,tab='', as_interface=False):
if 'typespec' not in vars[a]:
if 'attrspec' in vars[a] and 'external' in vars[a]['attrspec']:
if a in args:
- ret='%s%sexternal %s'%(ret,tab,a)
+ ret='%s%sexternal %s'%(ret, tab, a)
continue
show(vars[a])
outmess('vars2fortran: No typespec for argument "%s".\n'%a)
continue
vardef=vars[a]['typespec']
if vardef=='type' and 'typename' in vars[a]:
- vardef='%s(%s)'%(vardef,vars[a]['typename'])
+ vardef='%s(%s)'%(vardef, vars[a]['typename'])
selector={}
if 'kindselector' in vars[a]:
selector=vars[a]['kindselector']
elif 'charselector' in vars[a]:
selector=vars[a]['charselector']
if '*' in selector:
- if selector['*'] in ['*',':']:
- vardef='%s*(%s)'%(vardef,selector['*'])
+ if selector['*'] in ['*', ':']:
+ vardef='%s*(%s)'%(vardef, selector['*'])
else:
- vardef='%s*%s'%(vardef,selector['*'])
+ vardef='%s*%s'%(vardef, selector['*'])
else:
if 'len' in selector:
- vardef='%s(len=%s'%(vardef,selector['len'])
+ vardef='%s(len=%s'%(vardef, selector['len'])
if 'kind' in selector:
- vardef='%s,kind=%s)'%(vardef,selector['kind'])
+ vardef='%s,kind=%s)'%(vardef, selector['kind'])
else:
vardef='%s)'%(vardef)
elif 'kind' in selector:
- vardef='%s(kind=%s)'%(vardef,selector['kind'])
+ vardef='%s(kind=%s)'%(vardef, selector['kind'])
c=' '
if 'attrspec' in vars[a]:
attr=[]
@@ -2705,47 +2705,47 @@ def vars2fortran(block,vars,args,tab='', as_interface=False):
if l not in ['external']:
attr.append(l)
if attr:
- vardef='%s, %s'%(vardef,','.join(attr))
+ vardef='%s, %s'%(vardef, ','.join(attr))
c=','
if 'dimension' in vars[a]:
# if not isintent_c(vars[a]):
# vars[a]['dimension'].reverse()
- vardef='%s%sdimension(%s)'%(vardef,c,','.join(vars[a]['dimension']))
+ vardef='%s%sdimension(%s)'%(vardef, c, ','.join(vars[a]['dimension']))
c=','
if 'intent' in vars[a]:
lst = true_intent_list(vars[a])
if lst:
- vardef='%s%sintent(%s)'%(vardef,c,','.join(lst))
+ vardef='%s%sintent(%s)'%(vardef, c, ','.join(lst))
c=','
if 'check' in vars[a]:
- vardef='%s%scheck(%s)'%(vardef,c,','.join(vars[a]['check']))
+ vardef='%s%scheck(%s)'%(vardef, c, ','.join(vars[a]['check']))
c=','
if 'depend' in vars[a]:
- vardef='%s%sdepend(%s)'%(vardef,c,','.join(vars[a]['depend']))
+ vardef='%s%sdepend(%s)'%(vardef, c, ','.join(vars[a]['depend']))
c=','
if '=' in vars[a]:
v = vars[a]['=']
- if vars[a]['typespec'] in ['complex','double complex']:
+ if vars[a]['typespec'] in ['complex', 'double complex']:
try:
v = eval(v)
- v = '(%s,%s)' % (v.real,v.imag)
+ v = '(%s,%s)' % (v.real, v.imag)
except:
pass
- vardef='%s :: %s=%s'%(vardef,a,v)
+ vardef='%s :: %s=%s'%(vardef, a, v)
else:
- vardef='%s :: %s'%(vardef,a)
- ret='%s%s%s'%(ret,tab,vardef)
+ vardef='%s :: %s'%(vardef, a)
+ ret='%s%s%s'%(ret, tab, vardef)
return ret
######
def crackfortran(files):
global usermodules
- outmess('Reading fortran codes...\n',0)
- readfortrancode(files,crackline)
- outmess('Post-processing...\n',0)
+ outmess('Reading fortran codes...\n', 0)
+ readfortrancode(files, crackline)
+ outmess('Post-processing...\n', 0)
usermodules=[]
postlist=postcrack(grouplist[0])
- outmess('Post-processing (stage 2)...\n',0)
+ outmess('Post-processing (stage 2)...\n', 0)
postlist=postcrack2(postlist)
return usermodules+postlist
@@ -2778,7 +2778,7 @@ if __name__ == "__main__":
quiet=0
elif l=='-fix':
if strictf77:
- outmess('Use option -f90 before -fix if Fortran 90 code is in fix form.\n',0)
+ outmess('Use option -f90 before -fix if Fortran 90 code is in fix form.\n', 0)
skipemptyends=1
sourcecodeform='fix'
elif l=='-skipemptyends':
@@ -2820,13 +2820,13 @@ if __name__ == "__main__":
that should not need one (expect if you are scanning F90 code
for non module blocks but then you should use flag -skipemptyends
and also be sure that the files do not contain programs without program statement).
-""",0)
+""", 0)
- postlist=crackfortran(files,funcs)
+ postlist=crackfortran(files, funcs)
if pyffilename:
- outmess('Writing fortran code to file %s\n'%repr(pyffilename),0)
+ outmess('Writing fortran code to file %s\n'%repr(pyffilename), 0)
pyf=crack2fortran(postlist)
- f=open(pyffilename,'w')
+ f=open(pyffilename, 'w')
f.write(pyf)
f.close()
if showblocklist:
diff --git a/numpy/f2py/diagnose.py b/numpy/f2py/diagnose.py
index f00c3f0ac..68d7e48d2 100644
--- a/numpy/f2py/diagnose.py
+++ b/numpy/f2py/diagnose.py
@@ -37,7 +37,7 @@ def run():
from numpy.f2py import f2py2e
has_f2py2e = 1
except ImportError:
- print('Failed to import f2py2e:',sys.exc_info()[1])
+ print('Failed to import f2py2e:', sys.exc_info()[1])
has_f2py2e = 0
try:
@@ -48,7 +48,7 @@ def run():
import numpy_distutils
has_numpy_distutils = 1
except ImportError:
- print('Failed to import numpy_distutils:',sys.exc_info()[1])
+ print('Failed to import numpy_distutils:', sys.exc_info()[1])
has_numpy_distutils = 0
if has_newnumpy:
@@ -62,9 +62,9 @@ def run():
if has_f2py2e:
try:
print('Found f2py2e version %r in %s' % \
- (f2py2e.__version__.version,f2py2e.__file__))
+ (f2py2e.__version__.version, f2py2e.__file__))
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
if has_numpy_distutils:
@@ -79,7 +79,7 @@ def run():
numpy_distutils.__file__))
print('------')
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
try:
if has_numpy_distutils == 1:
@@ -93,10 +93,10 @@ def run():
compiler_class(verbose=1).is_available()
print('------')
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
except Exception as msg:
- print('error:',msg,'(ignore it, build_flib is obsolute for numpy.distutils 0.2.2 and up)')
+ print('error:', msg, '(ignore it, build_flib is obsolute for numpy.distutils 0.2.2 and up)')
print('------')
try:
if has_numpy_distutils == 2:
@@ -112,10 +112,10 @@ def run():
fcompiler.show_fcompilers()
print('------')
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
try:
if has_numpy_distutils == 2:
@@ -130,7 +130,7 @@ def run():
print('ok')
print('------')
except Exception as msg:
- print('error:',msg,'(ignore it)')
+ print('error:', msg, '(ignore it)')
print('Importing numpy_distutils.cpuinfo ...', end=' ')
from numpy_distutils.cpuinfo import cpuinfo
print('ok')
@@ -138,11 +138,11 @@ def run():
cpu = cpuinfo()
print('CPU information:', end=' ')
for name in dir(cpuinfo):
- if name[0]=='_' and name[1]!='_' and getattr(cpu,name[1:])():
+ if name[0]=='_' and name[1]!='_' and getattr(cpu, name[1:])():
print(name[1:], end=' ')
print('------')
except Exception as msg:
- print('error:',msg)
+ print('error:', msg)
print('------')
os.chdir(_path)
if __name__ == "__main__":
diff --git a/numpy/f2py/doc/collectinput.py b/numpy/f2py/doc/collectinput.py
index 317fde5b2..2585dae49 100755
--- a/numpy/f2py/doc/collectinput.py
+++ b/numpy/f2py/doc/collectinput.py
@@ -40,7 +40,7 @@ except:
try: fi=sys.argv[1]
except: fi=()
if not stdoutflag:
- sys.stdout=open(fn,'w')
+ sys.stdout=open(fn, 'w')
nonverb=r'[\w\s\\&=\^\*\.\{\(\)\[\?\+\$/]*(?!\\verb.)'
input=re.compile(nonverb+r'\\(input|include)\*?\s*\{?.*}?')
@@ -59,12 +59,12 @@ for l in fileinput.input(fi):
if l[-1]=='}': l=l[:-1]
i=m.end()-2
sys.stderr.write('>>>>>>')
- while i>-1 and (l[i] not in [' ','{']): i=i-1
+ while i>-1 and (l[i] not in [' ', '{']): i=i-1
if i>-1:
fn=l[i+1:]
- try: f=open(fn,'r'); flag=1; f.close()
+ try: f=open(fn, 'r'); flag=1; f.close()
except:
- try: f=open(fn+'.tex','r'); flag=1;fn=fn+'.tex'; f.close()
+ try: f=open(fn+'.tex', 'r'); flag=1;fn=fn+'.tex'; f.close()
except: flag=0
if flag==0:
sys.stderr.write('Could not open a file: '+fn+'\n')
diff --git a/numpy/f2py/docs/pytest.py b/numpy/f2py/docs/pytest.py
index b61a607fe..bf4ef917f 100644
--- a/numpy/f2py/docs/pytest.py
+++ b/numpy/f2py/docs/pytest.py
@@ -4,9 +4,9 @@ from __future__ import division, absolute_import, print_function
import Numeric
def foo(a):
a = Numeric.array(a)
- m,n = a.shape
+ m, n = a.shape
for i in range(m):
for j in range(n):
- a[i,j] = a[i,j] + 10*(i+1) + (j+1)
+ a[i, j] = a[i, j] + 10*(i+1) + (j+1)
return a
#eof
diff --git a/numpy/f2py/docs/usersguide/setup_example.py b/numpy/f2py/docs/usersguide/setup_example.py
index 8dfaa7a52..ab451084b 100644
--- a/numpy/f2py/docs/usersguide/setup_example.py
+++ b/numpy/f2py/docs/usersguide/setup_example.py
@@ -8,7 +8,7 @@ from numpy_distutils.core import Extension
ext1 = Extension(name = 'scalar',
sources = ['scalar.f'])
ext2 = Extension(name = 'fib2',
- sources = ['fib2.pyf','fib1.f'])
+ sources = ['fib2.pyf', 'fib1.f'])
if __name__ == "__main__":
from numpy_distutils.core import setup
@@ -16,6 +16,6 @@ if __name__ == "__main__":
description = "F2PY Users Guide examples",
author = "Pearu Peterson",
author_email = "pearu@cens.ioc.ee",
- ext_modules = [ext1,ext2]
+ ext_modules = [ext1, ext2]
)
# End of setup_example.py
diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py
index 64c13fff0..011b430d5 100755
--- a/numpy/f2py/f2py2e.py
+++ b/numpy/f2py/f2py2e.py
@@ -173,8 +173,8 @@ Copyright 1999 - 2011 Pearu Peterson all rights reserved.
http://cens.ioc.ee/projects/f2py2e/"""%(f2py_version, numpy_version)
def scaninputline(inputline):
- files,funcs,skipfuncs,onlyfuncs,debug=[],[],[],[],[]
- f,f2,f3,f4,f5,f6,f7,f8,f9=1,0,0,0,0,0,0,0,0
+ files, funcs, skipfuncs, onlyfuncs, debug=[], [], [], [], []
+ f, f2, f3, f4, f5, f6, f7, f8, f9=1, 0, 0, 0, 0, 0, 0, 0, 0
verbose = 1
dolc=-1
dolatexdoc = 0
@@ -182,7 +182,7 @@ def scaninputline(inputline):
wrapfuncs = 1
buildpath = '.'
include_paths = []
- signsfile,modulename=None,None
+ signsfile, modulename=None, None
options = {'buildpath':buildpath,
'coutput': None,
'f2py_wrapper_output': None}
@@ -236,7 +236,7 @@ def scaninputline(inputline):
open(l).close()
files.append(l)
except IOError as detail:
- errmess('IOError: %s. Skipping file "%s".\n'%(str(detail),l))
+ errmess('IOError: %s. Skipping file "%s".\n'%(str(detail), l))
elif f==-1: skipfuncs.append(l)
elif f==0: onlyfuncs.append(l)
if not f5 and not files and not modulename:
@@ -247,7 +247,7 @@ def scaninputline(inputline):
outmess('Creating build directory %s'%(buildpath))
os.mkdir(buildpath)
if signsfile:
- signsfile = os.path.join(buildpath,signsfile)
+ signsfile = os.path.join(buildpath, signsfile)
if signsfile and os.path.isfile(signsfile) and 'h-overwrite' not in options:
errmess('Signature file "%s" exists!!! Use --overwrite-signature to overwrite.\n'%(signsfile))
sys.exit()
@@ -265,9 +265,9 @@ def scaninputline(inputline):
options['wrapfuncs'] = wrapfuncs
options['buildpath']=buildpath
options['include_paths']=include_paths
- return files,options
+ return files, options
-def callcrackfortran(files,options):
+def callcrackfortran(files, options):
rules.options=options
funcs=[]
crackfortran.debug=options['debug']
@@ -287,7 +287,7 @@ def callcrackfortran(files,options):
if options['signsfile'][-6:]=='stdout':
sys.stdout.write(pyf)
else:
- f=open(options['signsfile'],'w')
+ f=open(options['signsfile'], 'w')
f.write(pyf)
f.close()
if options["coutput"] is None:
@@ -307,7 +307,7 @@ def callcrackfortran(files,options):
def buildmodules(lst):
cfuncs.buildcfuncs()
outmess('Building modules...\n')
- modules,mnames,isusedby=[],[],{}
+ modules, mnames, isusedby=[], [], {}
for i in range(len(lst)):
if '__user__' in lst[i]['name']:
cb_rules.buildcallbacks(lst[i])
@@ -322,7 +322,7 @@ def buildmodules(lst):
ret = {}
for i in range(len(mnames)):
if mnames[i] in isusedby:
- outmess('\tSkipping module "%s" which is used by %s.\n'%(mnames[i],','.join(['"%s"'%s for s in isusedby[mnames[i]]])))
+ outmess('\tSkipping module "%s" which is used by %s.\n'%(mnames[i], ','.join(['"%s"'%s for s in isusedby[mnames[i]]])))
else:
um=[]
if 'use' in modules[i]:
@@ -330,13 +330,13 @@ def buildmodules(lst):
if u in isusedby and u in mnames:
um.append(modules[mnames.index(u)])
else:
- outmess('\tModule "%s" uses nonexisting "%s" which will be ignored.\n'%(mnames[i],u))
+ outmess('\tModule "%s" uses nonexisting "%s" which will be ignored.\n'%(mnames[i], u))
ret[mnames[i]] = {}
- dict_append(ret[mnames[i]],rules.buildmodule(modules[i],um))
+ dict_append(ret[mnames[i]], rules.buildmodule(modules[i], um))
return ret
-def dict_append(d_out,d_in):
- for (k,v) in d_in.items():
+def dict_append(d_out, d_in):
+ for (k, v) in d_in.items():
if k not in d_out:
d_out[k] = []
if isinstance(v, list):
@@ -354,11 +354,11 @@ def run_main(comline_list):
else:
reload(crackfortran)
f2pydir=os.path.dirname(os.path.abspath(cfuncs.__file__))
- fobjhsrc = os.path.join(f2pydir,'src','fortranobject.h')
- fobjcsrc = os.path.join(f2pydir,'src','fortranobject.c')
- files,options=scaninputline(comline_list)
+ fobjhsrc = os.path.join(f2pydir, 'src', 'fortranobject.h')
+ fobjcsrc = os.path.join(f2pydir, 'src', 'fortranobject.c')
+ files, options=scaninputline(comline_list)
auxfuncs.options=options
- postlist=callcrackfortran(files,options)
+ postlist=callcrackfortran(files, options)
isusedby={}
for i in range(len(postlist)):
if 'use' in postlist[i]:
@@ -370,11 +370,11 @@ def run_main(comline_list):
if postlist[i]['block']=='python module' and '__user__' in postlist[i]['name']:
if postlist[i]['name'] in isusedby:
#if not quiet:
- outmess('Skipping Makefile build for module "%s" which is used by %s\n'%(postlist[i]['name'],','.join(['"%s"'%s for s in isusedby[postlist[i]['name']]])))
+ outmess('Skipping Makefile build for module "%s" which is used by %s\n'%(postlist[i]['name'], ','.join(['"%s"'%s for s in isusedby[postlist[i]['name']]])))
if 'signsfile' in options:
if options['verbose']>1:
outmess('Stopping. Edit the signature file and then run f2py on the signature file: ')
- outmess('%s %s\n'%(os.path.basename(sys.argv[0]),options['signsfile']))
+ outmess('%s %s\n'%(os.path.basename(sys.argv[0]), options['signsfile']))
return
for i in range(len(postlist)):
if postlist[i]['block']!='python module':
@@ -388,14 +388,14 @@ def run_main(comline_list):
ret=buildmodules(postlist)
for mn in ret.keys():
- dict_append(ret[mn],{'csrc':fobjcsrc,'h':fobjhsrc})
+ dict_append(ret[mn], {'csrc':fobjcsrc,'h':fobjhsrc})
return ret
def filter_files(prefix,suffix,files,remove_prefix=None):
"""
Filter files by prefix and suffix.
"""
- filtered,rest = [],[]
+ filtered, rest = [], []
match = re.compile(prefix+r'.*'+suffix+r'\Z').match
if remove_prefix:
ind = len(prefix)
@@ -404,7 +404,7 @@ def filter_files(prefix,suffix,files,remove_prefix=None):
for file in [x.strip() for x in files]:
if match(file): filtered.append(file[ind:])
else: rest.append(file)
- return filtered,rest
+ return filtered, rest
def get_prefix(module):
p = os.path.dirname(os.path.dirname(module.__file__))
@@ -442,7 +442,7 @@ def run_compile():
f2py_flags2 = []
fl = 0
for a in sys.argv[1:]:
- if a in ['only:','skip:']:
+ if a in ['only:', 'skip:']:
fl = 1
elif a==':':
fl = 0
@@ -483,7 +483,7 @@ def run_compile():
for s in del_list:
i = flib_flags.index(s)
del flib_flags[i]
- assert len(flib_flags)<=2,repr(flib_flags)
+ assert len(flib_flags)<=2, repr(flib_flags)
_reg5 = re.compile(r'[-][-](verbose)')
setup_flags = [_m for _m in sys.argv[1:] if _reg5.match(_m)]
@@ -499,39 +499,39 @@ def run_compile():
if optname in sys.argv:
i = sys.argv.index (optname)
f2py_flags.extend (sys.argv[i:i+2])
- del sys.argv[i+1],sys.argv[i]
+ del sys.argv[i+1], sys.argv[i]
sources = sys.argv[1:]
if '-m' in sys.argv:
i = sys.argv.index('-m')
modulename = sys.argv[i+1]
- del sys.argv[i+1],sys.argv[i]
+ del sys.argv[i+1], sys.argv[i]
sources = sys.argv[1:]
else:
from numpy.distutils.command.build_src import get_f2py_modulename
- pyf_files,sources = filter_files('','[.]pyf([.]src|)',sources)
+ pyf_files, sources = filter_files('', '[.]pyf([.]src|)', sources)
sources = pyf_files + sources
for f in pyf_files:
modulename = get_f2py_modulename(f)
if modulename:
break
- extra_objects, sources = filter_files('','[.](o|a|so)',sources)
- include_dirs, sources = filter_files('-I','',sources,remove_prefix=1)
- library_dirs, sources = filter_files('-L','',sources,remove_prefix=1)
- libraries, sources = filter_files('-l','',sources,remove_prefix=1)
- undef_macros, sources = filter_files('-U','',sources,remove_prefix=1)
- define_macros, sources = filter_files('-D','',sources,remove_prefix=1)
+ extra_objects, sources = filter_files('', '[.](o|a|so)', sources)
+ include_dirs, sources = filter_files('-I', '', sources, remove_prefix=1)
+ library_dirs, sources = filter_files('-L', '', sources, remove_prefix=1)
+ libraries, sources = filter_files('-l', '', sources, remove_prefix=1)
+ undef_macros, sources = filter_files('-U', '', sources, remove_prefix=1)
+ define_macros, sources = filter_files('-D', '', sources, remove_prefix=1)
using_numarray = 0
using_numeric = 0
for i in range(len(define_macros)):
- name_value = define_macros[i].split('=',1)
+ name_value = define_macros[i].split('=', 1)
if len(name_value)==1:
name_value.append(None)
if len(name_value)==2:
define_macros[i] = tuple(name_value)
else:
- print('Invalid use of -D:',name_value)
+ print('Invalid use of -D:', name_value)
from numpy.distutils.system_info import get_info
@@ -544,10 +544,10 @@ def run_compile():
#num_info = {'include_dirs': get_numpy_include_dirs()}
if num_info:
- include_dirs.extend(num_info.get('include_dirs',[]))
+ include_dirs.extend(num_info.get('include_dirs', []))
- from numpy.distutils.core import setup,Extension
- ext_args = {'name':modulename,'sources':sources,
+ from numpy.distutils.core import setup, Extension
+ ext_args = {'name': modulename, 'sources': sources,
'include_dirs': include_dirs,
'library_dirs': library_dirs,
'libraries': libraries,
@@ -569,9 +569,9 @@ def run_compile():
ext = Extension(**ext_args)
sys.argv = [sys.argv[0]] + setup_flags
sys.argv.extend(['build',
- '--build-temp',build_dir,
- '--build-base',build_dir,
- '--build-platlib','.'])
+ '--build-temp', build_dir,
+ '--build-base', build_dir,
+ '--build-platlib', '.'])
if fc_flags:
sys.argv.extend(['config_fc']+fc_flags)
if flib_flags:
diff --git a/numpy/f2py/f2py_testing.py b/numpy/f2py/f2py_testing.py
index e5ba8a9d5..4cec4baad 100644
--- a/numpy/f2py/f2py_testing.py
+++ b/numpy/f2py/f2py_testing.py
@@ -15,10 +15,10 @@ def cmdline():
else:
args.append(a)
f2py_opts = ' '.join(args)
- return repeat,f2py_opts
+ return repeat, f2py_opts
def run(runtest,test_functions,repeat=1):
- l = [(t,repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
+ l = [(t, repr(t.__doc__.split('\n')[1].strip())) for t in test_functions]
#l = [(t,'') for t in test_functions]
start_memusage = memusage()
diff_memusage = None
@@ -26,7 +26,7 @@ def run(runtest,test_functions,repeat=1):
i = 0
while i<repeat:
i += 1
- for t,fname in l:
+ for t, fname in l:
runtest(t)
if start_memusage is None: continue
if diff_memusage is None:
@@ -39,8 +39,8 @@ def run(runtest,test_functions,repeat=1):
fname)
diff_memusage = diff_memusage2
current_memusage = memusage()
- print('run',repeat*len(test_functions),'tests',\
+ print('run', repeat*len(test_functions), 'tests',\
'in %.2f seconds' % ((jiffies()-start_jiffies)/100.0))
if start_memusage:
- print('initial virtual memory size:',start_memusage,'bytes')
- print('current virtual memory size:',current_memusage,'bytes')
+ print('initial virtual memory size:', start_memusage, 'bytes')
+ print('current virtual memory size:', current_memusage, 'bytes')
diff --git a/numpy/f2py/f90mod_rules.py b/numpy/f2py/f90mod_rules.py
index 7e25a4930..758cad58a 100644
--- a/numpy/f2py/f90mod_rules.py
+++ b/numpy/f2py/f90mod_rules.py
@@ -83,19 +83,19 @@ fgetdims2_sa="""\
def buildhooks(pymod):
- global fgetdims1,fgetdims2
+ global fgetdims1, fgetdims2
from . import rules
ret = {'f90modhooks':[],'initf90modhooks':[],'body':[],
- 'need':['F_FUNC','arrayobject.h'],
+ 'need':['F_FUNC', 'arrayobject.h'],
'separatorsfor':{'includes0':'\n','includes':'\n'},
'docs':['"Fortran 90/95 modules:\\n"'],
'latexdoc':[]}
fhooks=['']
- def fadd(line,s=fhooks): s[0] = '%s\n %s'%(s[0],line)
+ def fadd(line,s=fhooks): s[0] = '%s\n %s'%(s[0], line)
doc = ['']
- def dadd(line,s=doc): s[0] = '%s\n%s'%(s[0],line)
+ def dadd(line,s=doc): s[0] = '%s\n%s'%(s[0], line)
for m in findf90modules(pymod):
- sargs,fargs,efargs,modobjs,notvars,onlyvars=[],[],[],[],[m['name']],[]
+ sargs, fargs, efargs, modobjs, notvars, onlyvars=[], [], [], [], [m['name']], []
sargsp = []
ifargs = []
mfargs = []
@@ -103,16 +103,16 @@ def buildhooks(pymod):
for b in m['body']: notvars.append(b['name'])
for n in m['vars'].keys():
var = m['vars'][n]
- if (n not in notvars) and (not l_or(isintent_hide,isprivate)(var)):
+ if (n not in notvars) and (not l_or(isintent_hide, isprivate)(var)):
onlyvars.append(n)
mfargs.append(n)
outmess('\t\tConstructing F90 module support for "%s"...\n'%(m['name']))
if onlyvars:
outmess('\t\t Variables: %s\n'%(' '.join(onlyvars)))
chooks=['']
- def cadd(line,s=chooks): s[0] = '%s\n%s'%(s[0],line)
+ def cadd(line,s=chooks): s[0] = '%s\n%s'%(s[0], line)
ihooks=['']
- def iadd(line,s=ihooks): s[0] = '%s\n%s'%(s[0],line)
+ def iadd(line,s=ihooks): s[0] = '%s\n%s'%(s[0], line)
vrd=capi_maps.modsign2map(m)
cadd('static FortranDataDef f2py_%s_def[] = {'%(m['name']))
@@ -128,33 +128,33 @@ def buildhooks(pymod):
modobjs.append(n)
ct = capi_maps.getctype(var)
at = capi_maps.c2capi_map[ct]
- dm = capi_maps.getarrdims(n,var)
- dms = dm['dims'].replace('*','-1').strip()
- dms = dms.replace(':','-1').strip()
+ dm = capi_maps.getarrdims(n, var)
+ dms = dm['dims'].replace('*', '-1').strip()
+ dms = dms.replace(':', '-1').strip()
if not dms: dms='-1'
use_fgetdims2 = fgetdims2
if isstringarray(var):
if 'charselector' in var and 'len' in var['charselector']:
cadd('\t{"%s",%s,{{%s,%s}},%s},'\
- %(undo_rmbadname1(n),dm['rank'],dms,var['charselector']['len'],at))
+ %(undo_rmbadname1(n), dm['rank'], dms, var['charselector']['len'], at))
use_fgetdims2 = fgetdims2_sa
else:
- cadd('\t{"%s",%s,{{%s}},%s},'%(undo_rmbadname1(n),dm['rank'],dms,at))
+ cadd('\t{"%s",%s,{{%s}},%s},'%(undo_rmbadname1(n), dm['rank'], dms, at))
else:
- cadd('\t{"%s",%s,{{%s}},%s},'%(undo_rmbadname1(n),dm['rank'],dms,at))
- dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n,var)))
+ cadd('\t{"%s",%s,{{%s}},%s},'%(undo_rmbadname1(n), dm['rank'], dms, at))
+ dadd('\\item[]{{}\\verb@%s@{}}'%(capi_maps.getarrdocsign(n, var)))
if hasnote(var):
note = var['note']
if isinstance(note, list): note='\n'.join(note)
dadd('--- %s'%(note))
if isallocatable(var):
- fargs.append('f2py_%s_getdims_%s'%(m['name'],n))
+ fargs.append('f2py_%s_getdims_%s'%(m['name'], n))
efargs.append(fargs[-1])
sargs.append('void (*%s)(int*,int*,void(*)(char*,int*),int*)'%(n))
sargsp.append('void (*)(int*,int*,void(*)(char*,int*),int*)')
- iadd('\tf2py_%s_def[i_f2py++].func = %s;'%(m['name'],n))
+ iadd('\tf2py_%s_def[i_f2py++].func = %s;'%(m['name'], n))
fadd('subroutine %s(r,s,f2pysetdata,flag)'%(fargs[-1]))
- fadd('use %s, only: d => %s\n'%(m['name'],undo_rmbadname1(n)))
+ fadd('use %s, only: d => %s\n'%(m['name'], undo_rmbadname1(n)))
fadd('integer flag\n')
fhooks[0]=fhooks[0]+fgetdims1
dms = eval('range(1,%s+1)'%(dm['rank']))
@@ -165,27 +165,27 @@ def buildhooks(pymod):
fargs.append(n)
sargs.append('char *%s'%(n))
sargsp.append('char*')
- iadd('\tf2py_%s_def[i_f2py++].data = %s;'%(m['name'],n))
+ iadd('\tf2py_%s_def[i_f2py++].data = %s;'%(m['name'], n))
if onlyvars:
dadd('\\end{description}')
if hasbody(m):
for b in m['body']:
if not isroutine(b):
- print('Skipping',b['block'],b['name'])
+ print('Skipping', b['block'], b['name'])
continue
modobjs.append('%s()'%(b['name']))
b['modulename'] = m['name']
- api,wrap=rules.buildapi(b)
+ api, wrap=rules.buildapi(b)
if isfunction(b):
fhooks[0]=fhooks[0]+wrap
- fargs.append('f2pywrap_%s_%s'%(m['name'],b['name']))
+ fargs.append('f2pywrap_%s_%s'%(m['name'], b['name']))
#efargs.append(fargs[-1])
- ifargs.append(func2subr.createfuncwrapper(b,signature=1))
+ ifargs.append(func2subr.createfuncwrapper(b, signature=1))
else:
if wrap:
fhooks[0]=fhooks[0]+wrap
- fargs.append('f2pywrap_%s_%s'%(m['name'],b['name']))
- ifargs.append(func2subr.createsubrwrapper(b,signature=1))
+ fargs.append('f2pywrap_%s_%s'%(m['name'], b['name']))
+ ifargs.append(func2subr.createsubrwrapper(b, signature=1))
else:
fargs.append(b['name'])
mfargs.append(fargs[-1])
@@ -193,35 +193,35 @@ def buildhooks(pymod):
# outmess('\t\t\tapplying --external-modroutines for %s\n'%(b['name']))
# efargs.append(fargs[-1])
api['externroutines']=[]
- ar=applyrules(api,vrd)
+ ar=applyrules(api, vrd)
ar['docs']=[]
ar['docshort']=[]
- ret=dictappend(ret,ar)
- cadd('\t{"%s",-1,{{-1}},0,NULL,(void *)f2py_rout_#modulename#_%s_%s,doc_f2py_rout_#modulename#_%s_%s},'%(b['name'],m['name'],b['name'],m['name'],b['name']))
+ ret=dictappend(ret, ar)
+ cadd('\t{"%s",-1,{{-1}},0,NULL,(void *)f2py_rout_#modulename#_%s_%s,doc_f2py_rout_#modulename#_%s_%s},'%(b['name'], m['name'], b['name'], m['name'], b['name']))
sargs.append('char *%s'%(b['name']))
sargsp.append('char *')
- iadd('\tf2py_%s_def[i_f2py++].data = %s;'%(m['name'],b['name']))
+ iadd('\tf2py_%s_def[i_f2py++].data = %s;'%(m['name'], b['name']))
cadd('\t{NULL}\n};\n')
iadd('}')
- ihooks[0]='static void f2py_setup_%s(%s) {\n\tint i_f2py=0;%s'%(m['name'],','.join(sargs),ihooks[0])
+ ihooks[0]='static void f2py_setup_%s(%s) {\n\tint i_f2py=0;%s'%(m['name'], ','.join(sargs), ihooks[0])
if '_' in m['name']:
F_FUNC='F_FUNC_US'
else:
F_FUNC='F_FUNC'
iadd('extern void %s(f2pyinit%s,F2PYINIT%s)(void (*)(%s));'\
- %(F_FUNC,m['name'],m['name'].upper(),','.join(sargsp)))
+ %(F_FUNC, m['name'], m['name'].upper(), ','.join(sargsp)))
iadd('static void f2py_init_%s(void) {'%(m['name']))
iadd('\t%s(f2pyinit%s,F2PYINIT%s)(f2py_setup_%s);'\
- %(F_FUNC,m['name'],m['name'].upper(),m['name']))
+ %(F_FUNC, m['name'], m['name'].upper(), m['name']))
iadd('}\n')
ret['f90modhooks']=ret['f90modhooks']+chooks+ihooks
- ret['initf90modhooks']=['\tPyDict_SetItemString(d, "%s", PyFortranObject_New(f2py_%s_def,f2py_init_%s));'%(m['name'],m['name'],m['name'])]+ret['initf90modhooks']
+ ret['initf90modhooks']=['\tPyDict_SetItemString(d, "%s", PyFortranObject_New(f2py_%s_def,f2py_init_%s));'%(m['name'], m['name'], m['name'])]+ret['initf90modhooks']
fadd('')
fadd('subroutine f2pyinit%s(f2pysetupfunc)'%(m['name']))
#fadd('use %s'%(m['name']))
if mfargs:
for a in undo_rmbadname(mfargs):
- fadd('use %s, only : %s'%(m['name'],a))
+ fadd('use %s, only : %s'%(m['name'], a))
if ifargs:
fadd(' '.join(['interface']+ifargs))
fadd('end interface')
@@ -232,7 +232,7 @@ def buildhooks(pymod):
fadd('call f2pysetupfunc(%s)'%(','.join(undo_rmbadname(fargs))))
fadd('end subroutine f2pyinit%s\n'%(m['name']))
- dadd('\n'.join(ret['latexdoc']).replace(r'\subsection{',r'\subsubsection{'))
+ dadd('\n'.join(ret['latexdoc']).replace(r'\subsection{', r'\subsubsection{'))
ret['latexdoc']=[]
ret['docs'].append('"\t%s --- %s"'%(m['name'],
@@ -243,4 +243,4 @@ def buildhooks(pymod):
ret['docshort']=[]
ret['latexdoc']=doc[0]
if len(ret['docs'])<=1: ret['docs']=''
- return ret,fhooks[0]
+ return ret, fhooks[0]
diff --git a/numpy/f2py/func2subr.py b/numpy/f2py/func2subr.py
index 1698d0e40..22f60851d 100644
--- a/numpy/f2py/func2subr.py
+++ b/numpy/f2py/func2subr.py
@@ -40,7 +40,7 @@ def var2fixfortran(vars,a,fa=None,f90mode=None):
return ''
vardef=vars[a]['typespec']
if vardef=='type' and 'typename' in vars[a]:
- vardef='%s(%s)'%(vardef,vars[a]['typename'])
+ vardef='%s(%s)'%(vardef, vars[a]['typename'])
selector={}
lk = ''
if 'kindselector' in vars[a]:
@@ -51,28 +51,28 @@ def var2fixfortran(vars,a,fa=None,f90mode=None):
lk = 'len'
if '*' in selector:
if f90mode:
- if selector['*'] in ['*',':','(*)']:
+ if selector['*'] in ['*', ':', '(*)']:
vardef='%s(len=*)'%(vardef)
else:
- vardef='%s(%s=%s)'%(vardef,lk,selector['*'])
+ vardef='%s(%s=%s)'%(vardef, lk, selector['*'])
else:
- if selector['*'] in ['*',':']:
- vardef='%s*(%s)'%(vardef,selector['*'])
+ if selector['*'] in ['*', ':']:
+ vardef='%s*(%s)'%(vardef, selector['*'])
else:
- vardef='%s*%s'%(vardef,selector['*'])
+ vardef='%s*%s'%(vardef, selector['*'])
else:
if 'len' in selector:
- vardef='%s(len=%s'%(vardef,selector['len'])
+ vardef='%s(len=%s'%(vardef, selector['len'])
if 'kind' in selector:
- vardef='%s,kind=%s)'%(vardef,selector['kind'])
+ vardef='%s,kind=%s)'%(vardef, selector['kind'])
else:
vardef='%s)'%(vardef)
elif 'kind' in selector:
- vardef='%s(kind=%s)'%(vardef,selector['kind'])
+ vardef='%s(kind=%s)'%(vardef, selector['kind'])
- vardef='%s %s'%(vardef,fa)
+ vardef='%s %s'%(vardef, fa)
if 'dimension' in vars[a]:
- vardef='%s(%s)'%(vardef,','.join(vars[a]['dimension']))
+ vardef='%s(%s)'%(vardef, ','.join(vars[a]['dimension']))
return vardef
def createfuncwrapper(rout,signature=0):
@@ -82,7 +82,7 @@ def createfuncwrapper(rout,signature=0):
vars = rout['vars']
for a in rout['args']:
v = rout['vars'][a]
- for i,d in enumerate(v.get('dimension',[])):
+ for i, d in enumerate(v.get('dimension', [])):
if d==':':
dn = 'f2py_%s_d%s' % (a, i)
dv = dict(typespec='integer', intent=['hide'])
@@ -95,7 +95,7 @@ def createfuncwrapper(rout,signature=0):
ret = ['']
def add(line,ret=ret):
- ret[0] = '%s\n %s'%(ret[0],line)
+ ret[0] = '%s\n %s'%(ret[0], line)
name = rout['name']
fortranname = getfortranname(rout)
f90mode = ismoduleroutine(rout)
@@ -107,22 +107,22 @@ def createfuncwrapper(rout,signature=0):
else:
args = [newname]+rout['args']
- l = var2fixfortran(vars,name,newname,f90mode)
+ l = var2fixfortran(vars, name, newname, f90mode)
return_char_star = 0
if l[:13]=='character*(*)':
return_char_star = 1
if f90mode: l = 'character(len=10)'+l[13:]
else: l = 'character*10'+l[13:]
charselect = vars[name]['charselector']
- if charselect.get('*','')=='(*)':
+ if charselect.get('*', '')=='(*)':
charselect['*'] = '10'
sargs = ', '.join(args)
if f90mode:
- add('subroutine f2pywrap_%s_%s (%s)'%(rout['modulename'],name,sargs))
+ add('subroutine f2pywrap_%s_%s (%s)'%(rout['modulename'], name, sargs))
if not signature:
- add('use %s, only : %s'%(rout['modulename'],fortranname))
+ add('use %s, only : %s'%(rout['modulename'], fortranname))
else:
- add('subroutine f2pywrap%s (%s)'%(name,sargs))
+ add('subroutine f2pywrap%s (%s)'%(name, sargs))
if not need_interface:
add('external %s'%(fortranname))
l = l + ', '+fortranname
@@ -140,16 +140,16 @@ def createfuncwrapper(rout,signature=0):
for a in args:
if a in dumped_args: continue
if isscalar(vars[a]):
- add(var2fixfortran(vars,a,f90mode=f90mode))
+ add(var2fixfortran(vars, a, f90mode=f90mode))
dumped_args.append(a)
for a in args:
if a in dumped_args: continue
if isintent_in(vars[a]):
- add(var2fixfortran(vars,a,f90mode=f90mode))
+ add(var2fixfortran(vars, a, f90mode=f90mode))
dumped_args.append(a)
for a in args:
if a in dumped_args: continue
- add(var2fixfortran(vars,a,f90mode=f90mode))
+ add(var2fixfortran(vars, a, f90mode=f90mode))
add(l)
@@ -166,11 +166,11 @@ def createfuncwrapper(rout,signature=0):
if not signature:
if islogicalfunction(rout):
- add('%s = .not.(.not.%s(%s))'%(newname,fortranname,sargs))
+ add('%s = .not.(.not.%s(%s))'%(newname, fortranname, sargs))
else:
- add('%s = %s(%s)'%(newname,fortranname,sargs))
+ add('%s = %s(%s)'%(newname, fortranname, sargs))
if f90mode:
- add('end subroutine f2pywrap_%s_%s'%(rout['modulename'],name))
+ add('end subroutine f2pywrap_%s_%s'%(rout['modulename'], name))
else:
add('end')
#print '**'*10
@@ -185,7 +185,7 @@ def createsubrwrapper(rout,signature=0):
vars = rout['vars']
for a in rout['args']:
v = rout['vars'][a]
- for i,d in enumerate(v.get('dimension',[])):
+ for i, d in enumerate(v.get('dimension', [])):
if d==':':
dn = 'f2py_%s_d%s' % (a, i)
dv = dict(typespec='integer', intent=['hide'])
@@ -198,7 +198,7 @@ def createsubrwrapper(rout,signature=0):
ret = ['']
def add(line,ret=ret):
- ret[0] = '%s\n %s'%(ret[0],line)
+ ret[0] = '%s\n %s'%(ret[0], line)
name = rout['name']
fortranname = getfortranname(rout)
f90mode = ismoduleroutine(rout)
@@ -207,11 +207,11 @@ def createsubrwrapper(rout,signature=0):
sargs = ', '.join(args)
if f90mode:
- add('subroutine f2pywrap_%s_%s (%s)'%(rout['modulename'],name,sargs))
+ add('subroutine f2pywrap_%s_%s (%s)'%(rout['modulename'], name, sargs))
if not signature:
- add('use %s, only : %s'%(rout['modulename'],fortranname))
+ add('use %s, only : %s'%(rout['modulename'], fortranname))
else:
- add('subroutine f2pywrap%s (%s)'%(name,sargs))
+ add('subroutine f2pywrap%s (%s)'%(name, sargs))
if not need_interface:
add('external %s'%(fortranname))
@@ -228,11 +228,11 @@ def createsubrwrapper(rout,signature=0):
for a in args:
if a in dumped_args: continue
if isscalar(vars[a]):
- add(var2fixfortran(vars,a,f90mode=f90mode))
+ add(var2fixfortran(vars, a, f90mode=f90mode))
dumped_args.append(a)
for a in args:
if a in dumped_args: continue
- add(var2fixfortran(vars,a,f90mode=f90mode))
+ add(var2fixfortran(vars, a, f90mode=f90mode))
if need_interface:
if f90mode:
@@ -246,9 +246,9 @@ def createsubrwrapper(rout,signature=0):
sargs = ', '.join([a for a in args if a not in extra_args])
if not signature:
- add('call %s(%s)'%(fortranname,sargs))
+ add('call %s(%s)'%(fortranname, sargs))
if f90mode:
- add('end subroutine f2pywrap_%s_%s'%(rout['modulename'],name))
+ add('end subroutine f2pywrap_%s_%s'%(rout['modulename'], name))
else:
add('end')
#print '**'*10
@@ -261,7 +261,7 @@ def assubr(rout):
if isfunction_wrap(rout):
fortranname = getfortranname(rout)
name = rout['name']
- outmess('\t\tCreating wrapper for Fortran function "%s"("%s")...\n'%(name,fortranname))
+ outmess('\t\tCreating wrapper for Fortran function "%s"("%s")...\n'%(name, fortranname))
rout = copy.copy(rout)
fname = name
rname = fname
@@ -281,11 +281,11 @@ def assubr(rout):
if flag:
fvar['intent'].append('out=%s' % (rname))
rout['args'][:] = [fname] + rout['args']
- return rout,createfuncwrapper(rout)
+ return rout, createfuncwrapper(rout)
if issubroutine_wrap(rout):
fortranname = getfortranname(rout)
name = rout['name']
- outmess('\t\tCreating wrapper for Fortran subroutine "%s"("%s")...\n'%(name,fortranname))
+ outmess('\t\tCreating wrapper for Fortran subroutine "%s"("%s")...\n'%(name, fortranname))
rout = copy.copy(rout)
- return rout,createsubrwrapper(rout)
- return rout,''
+ return rout, createsubrwrapper(rout)
+ return rout, ''
diff --git a/numpy/f2py/rules.py b/numpy/f2py/rules.py
index f7f82fc99..4c186712c 100644
--- a/numpy/f2py/rules.py
+++ b/numpy/f2py/rules.py
@@ -81,18 +81,18 @@ sepdict={}
for k in ['decl',
'frompyobj',
'cleanupfrompyobj',
- 'topyarr','method',
- 'pyobjfrom','closepyobjfrom',
+ 'topyarr', 'method',
+ 'pyobjfrom', 'closepyobjfrom',
'freemem',
'userincludes',
- 'includes0','includes','typedefs','typedefs_generated',
- 'cppmacros','cfuncs','callbacks',
+ 'includes0', 'includes', 'typedefs', 'typedefs_generated',
+ 'cppmacros', 'cfuncs', 'callbacks',
'latexdoc',
'restdoc',
- 'routine_defs','externroutines',
+ 'routine_defs', 'externroutines',
'initf2pywraphooks',
- 'commonhooks','initcommonhooks',
- 'f90modhooks','initf90modhooks']:
+ 'commonhooks', 'initcommonhooks',
+ 'f90modhooks', 'initf90modhooks']:
sepdict[k]='\n'
#################### Rules for C/API module #################
@@ -243,16 +243,16 @@ PyMODINIT_FUNC init#modulename#(void) {
}
defmod_rules=[
- {'body':'/*eof body*/',
- 'method':'/*eof method*/',
- 'externroutines':'/*eof externroutines*/',
- 'routine_defs':'/*eof routine_defs*/',
- 'initf90modhooks':'/*eof initf90modhooks*/',
- 'initf2pywraphooks':'/*eof initf2pywraphooks*/',
- 'initcommonhooks':'/*eof initcommonhooks*/',
- 'latexdoc':'',
- 'restdoc':'',
- 'modnote':{hasnote:'#note#',l_not(hasnote):''},
+ {'body': '/*eof body*/',
+ 'method': '/*eof method*/',
+ 'externroutines': '/*eof externroutines*/',
+ 'routine_defs': '/*eof routine_defs*/',
+ 'initf90modhooks': '/*eof initf90modhooks*/',
+ 'initf2pywraphooks': '/*eof initf2pywraphooks*/',
+ 'initcommonhooks': '/*eof initcommonhooks*/',
+ 'latexdoc': '',
+ 'restdoc': '',
+ 'modnote': {hasnote:'#note#',l_not(hasnote):''},
}
]
@@ -320,7 +320,7 @@ f2py_stop_clock();
'doc':'#docreturn##name#(#docsignature#)',
'docshort':'#docreturn##name#(#docsignatureshort#)',
'docs':'"\t#docreturn##name#(#docsignature#)\\n"\n',
- 'need':['arrayobject.h','CFUNCSMESS','MINMAX'],
+ 'need':['arrayobject.h', 'CFUNCSMESS', 'MINMAX'],
'cppmacros':{debugcapi:'#define DEBUGCFUNCS'},
'latexdoc':['\\subsection{Wrapper function \\texttt{#texname#}}\n',
"""
@@ -338,65 +338,65 @@ f2py_stop_clock();
rout_rules=[
{ # Init
- 'separatorsfor': {'callfortranroutine':'\n','routdebugenter':'\n','decl':'\n',
- 'routdebugleave':'\n','routdebugfailure':'\n',
- 'setjmpbuf':' || ',
- 'docstrreq':'\n','docstropt':'\n','docstrout':'\n',
- 'docstrcbs':'\n','docstrsigns':'\\n"\n"',
- 'latexdocstrsigns':'\n',
- 'latexdocstrreq':'\n','latexdocstropt':'\n',
- 'latexdocstrout':'\n','latexdocstrcbs':'\n',
+ 'separatorsfor': {'callfortranroutine': '\n', 'routdebugenter': '\n', 'decl': '\n',
+ 'routdebugleave': '\n', 'routdebugfailure': '\n',
+ 'setjmpbuf': ' || ',
+ 'docstrreq': '\n', 'docstropt': '\n', 'docstrout': '\n',
+ 'docstrcbs': '\n', 'docstrsigns': '\\n"\n"',
+ 'latexdocstrsigns': '\n',
+ 'latexdocstrreq': '\n', 'latexdocstropt': '\n',
+ 'latexdocstrout': '\n', 'latexdocstrcbs': '\n',
},
- 'kwlist':'','kwlistopt':'','callfortran':'','callfortranappend':'',
- 'docsign':'','docsignopt':'','decl':'/*decl*/',
- 'freemem':'/*freemem*/',
- 'docsignshort':'','docsignoptshort':'',
- 'docstrsigns':'','latexdocstrsigns':'',
- 'docstrreq':'\\nParameters\\n----------',
- 'docstropt':'\\nOther Parameters\\n----------------',
- 'docstrout':'\\nReturns\\n-------',
- 'docstrcbs':'\\nNotes\\n-----\\nCall-back functions::\\n',
- 'latexdocstrreq':'\\noindent Required arguments:',
- 'latexdocstropt':'\\noindent Optional arguments:',
- 'latexdocstrout':'\\noindent Return objects:',
- 'latexdocstrcbs':'\\noindent Call-back functions:',
- 'args_capi':'','keys_capi':'','functype':'',
- 'frompyobj':'/*frompyobj*/',
- 'cleanupfrompyobj':['/*end of cleanupfrompyobj*/'], #this list will be reversed
- 'pyobjfrom':'/*pyobjfrom*/',
- 'closepyobjfrom':['/*end of closepyobjfrom*/'], #this list will be reversed
- 'topyarr':'/*topyarr*/','routdebugleave':'/*routdebugleave*/',
- 'routdebugenter':'/*routdebugenter*/',
- 'routdebugfailure':'/*routdebugfailure*/',
- 'callfortranroutine':'/*callfortranroutine*/',
- 'argformat':'','keyformat':'','need_cfuncs':'',
- 'docreturn':'','return':'','returnformat':'','rformat':'',
- 'kwlistxa':'','keys_xa':'','xaformat':'','docsignxa':'','docsignxashort':'',
- 'initf2pywraphook':'',
- 'routnote':{hasnote:'--- #note#',l_not(hasnote):''},
- },{
+ 'kwlist': '', 'kwlistopt': '', 'callfortran': '', 'callfortranappend': '',
+ 'docsign': '', 'docsignopt': '', 'decl': '/*decl*/',
+ 'freemem': '/*freemem*/',
+ 'docsignshort': '', 'docsignoptshort': '',
+ 'docstrsigns': '', 'latexdocstrsigns': '',
+ 'docstrreq': '\\nParameters\\n----------',
+ 'docstropt': '\\nOther Parameters\\n----------------',
+ 'docstrout': '\\nReturns\\n-------',
+ 'docstrcbs': '\\nNotes\\n-----\\nCall-back functions::\\n',
+ 'latexdocstrreq': '\\noindent Required arguments:',
+ 'latexdocstropt': '\\noindent Optional arguments:',
+ 'latexdocstrout': '\\noindent Return objects:',
+ 'latexdocstrcbs': '\\noindent Call-back functions:',
+ 'args_capi': '', 'keys_capi': '', 'functype': '',
+ 'frompyobj': '/*frompyobj*/',
+ 'cleanupfrompyobj': ['/*end of cleanupfrompyobj*/'], #this list will be reversed
+ 'pyobjfrom': '/*pyobjfrom*/',
+ 'closepyobjfrom': ['/*end of closepyobjfrom*/'], #this list will be reversed
+ 'topyarr': '/*topyarr*/', 'routdebugleave': '/*routdebugleave*/',
+ 'routdebugenter': '/*routdebugenter*/',
+ 'routdebugfailure': '/*routdebugfailure*/',
+ 'callfortranroutine': '/*callfortranroutine*/',
+ 'argformat': '', 'keyformat': '', 'need_cfuncs': '',
+ 'docreturn': '', 'return': '', 'returnformat': '', 'rformat': '',
+ 'kwlistxa': '', 'keys_xa': '', 'xaformat': '', 'docsignxa': '', 'docsignxashort': '',
+ 'initf2pywraphook': '',
+ 'routnote': {hasnote:'--- #note#',l_not(hasnote):''},
+ }, {
'apiname':'f2py_rout_#modulename#_#name#',
'pyname':'#modulename#.#name#',
'decl':'',
'_check':l_not(ismoduleroutine)
- },{
+ }, {
'apiname':'f2py_rout_#modulename#_#f90modulename#_#name#',
'pyname':'#modulename#.#f90modulename#.#name#',
'decl':'',
'_check':ismoduleroutine
- },{ # Subroutine
- 'functype':'void',
- 'declfortranroutine':{l_and(l_not(l_or(ismoduleroutine,isintent_c)),l_not(isdummyroutine)):'extern void #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);',
- l_and(l_not(ismoduleroutine),isintent_c,l_not(isdummyroutine)):'extern void #fortranname#(#callprotoargument#);',
+ }, { # Subroutine
+ 'functype': 'void',
+ 'declfortranroutine': {l_and(l_not(l_or(ismoduleroutine, isintent_c)), l_not(isdummyroutine)):'extern void #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);',
+ l_and(l_not(ismoduleroutine), isintent_c, l_not(isdummyroutine)):'extern void #fortranname#(#callprotoargument#);',
ismoduleroutine:'',
isdummyroutine:''
},
- 'routine_def':{l_not(l_or(ismoduleroutine,isintent_c,isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
- l_and(l_not(ismoduleroutine),isintent_c,l_not(isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},',
- l_and(l_not(ismoduleroutine),isdummyroutine):'\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
+ 'routine_def': {l_not(l_or(ismoduleroutine, isintent_c, isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
+ l_and(l_not(ismoduleroutine), isintent_c, l_not(isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},',
+ l_and(l_not(ismoduleroutine), isdummyroutine): '\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
},
- 'need':{l_and(l_not(l_or(ismoduleroutine,isintent_c)),l_not(isdummyroutine)):'F_FUNC'},
- 'callfortranroutine':[
+ 'need': {l_and(l_not(l_or(ismoduleroutine, isintent_c)), l_not(isdummyroutine)):'F_FUNC'},
+ 'callfortranroutine': [
{debugcapi:["""\tfprintf(stderr,\"debug-capi:Fortran subroutine `#fortranname#(#callfortran#)\'\\n\");"""]},
{hasexternals:"""\
\t\tif (#setjmpbuf#) {
@@ -405,21 +405,21 @@ rout_rules=[
{isthreadsafe:'\t\t\tPy_BEGIN_ALLOW_THREADS'},
{hascallstatement:'''\t\t\t\t#callstatement#;
\t\t\t\t/*(*f2py_func)(#callfortran#);*/'''},
- {l_not(l_or(hascallstatement,isdummyroutine)):'\t\t\t\t(*f2py_func)(#callfortran#);'},
+ {l_not(l_or(hascallstatement, isdummyroutine)):'\t\t\t\t(*f2py_func)(#callfortran#);'},
{isthreadsafe:'\t\t\tPy_END_ALLOW_THREADS'},
{hasexternals:"""\t\t}"""}
],
- '_check':l_and(issubroutine,l_not(issubroutine_wrap)),
- },{ # Wrapped function
- 'functype':'void',
- 'declfortranroutine':{l_not(l_or(ismoduleroutine,isdummyroutine)):'extern void #F_WRAPPEDFUNC#(#name_lower#,#NAME#)(#callprotoargument#);',
- isdummyroutine:'',
+ '_check': l_and(issubroutine, l_not(issubroutine_wrap)),
+ }, { # Wrapped function
+ 'functype': 'void',
+ 'declfortranroutine': {l_not(l_or(ismoduleroutine, isdummyroutine)): 'extern void #F_WRAPPEDFUNC#(#name_lower#,#NAME#)(#callprotoargument#);',
+ isdummyroutine: '',
},
- 'routine_def':{l_not(l_or(ismoduleroutine,isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#F_WRAPPEDFUNC#(#name_lower#,#NAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
- isdummyroutine:'\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
+ 'routine_def': {l_not(l_or(ismoduleroutine, isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#F_WRAPPEDFUNC#(#name_lower#,#NAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
+ isdummyroutine: '\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
},
- 'initf2pywraphook':{l_not(l_or(ismoduleroutine,isdummyroutine)):'''
+ 'initf2pywraphook': {l_not(l_or(ismoduleroutine, isdummyroutine)):'''
{
extern #ctype# #F_FUNC#(#name_lower#,#NAME#)(void);
PyObject* o = PyDict_GetItemString(d,"#name#");
@@ -431,30 +431,30 @@ rout_rules=[
#endif
}
'''},
- 'need':{l_not(l_or(ismoduleroutine,isdummyroutine)):['F_WRAPPEDFUNC','F_FUNC']},
- 'callfortranroutine':[
+ 'need': {l_not(l_or(ismoduleroutine, isdummyroutine)):['F_WRAPPEDFUNC', 'F_FUNC']},
+ 'callfortranroutine': [
{debugcapi:["""\tfprintf(stderr,\"debug-capi:Fortran subroutine `f2pywrap#name_lower#(#callfortran#)\'\\n\");"""]},
{hasexternals:"""\
\tif (#setjmpbuf#) {
\t\tf2py_success = 0;
\t} else {"""},
{isthreadsafe:'\tPy_BEGIN_ALLOW_THREADS'},
- {l_not(l_or(hascallstatement,isdummyroutine)):'\t(*f2py_func)(#callfortran#);'},
+ {l_not(l_or(hascallstatement, isdummyroutine)):'\t(*f2py_func)(#callfortran#);'},
{hascallstatement:'\t#callstatement#;\n\t/*(*f2py_func)(#callfortran#);*/'},
{isthreadsafe:'\tPy_END_ALLOW_THREADS'},
{hasexternals:'\t}'}
],
- '_check':isfunction_wrap,
- },{ # Wrapped subroutine
- 'functype':'void',
- 'declfortranroutine':{l_not(l_or(ismoduleroutine,isdummyroutine)):'extern void #F_WRAPPEDFUNC#(#name_lower#,#NAME#)(#callprotoargument#);',
- isdummyroutine:'',
+ '_check': isfunction_wrap,
+ }, { # Wrapped subroutine
+ 'functype': 'void',
+ 'declfortranroutine': {l_not(l_or(ismoduleroutine, isdummyroutine)): 'extern void #F_WRAPPEDFUNC#(#name_lower#,#NAME#)(#callprotoargument#);',
+ isdummyroutine: '',
},
- 'routine_def':{l_not(l_or(ismoduleroutine,isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#F_WRAPPEDFUNC#(#name_lower#,#NAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
- isdummyroutine:'\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
+ 'routine_def': {l_not(l_or(ismoduleroutine, isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#F_WRAPPEDFUNC#(#name_lower#,#NAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
+ isdummyroutine: '\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
},
- 'initf2pywraphook':{l_not(l_or(ismoduleroutine,isdummyroutine)):'''
+ 'initf2pywraphook': {l_not(l_or(ismoduleroutine, isdummyroutine)):'''
{
extern void #F_FUNC#(#name_lower#,#NAME#)(void);
PyObject* o = PyDict_GetItemString(d,"#name#");
@@ -466,46 +466,46 @@ rout_rules=[
#endif
}
'''},
- 'need':{l_not(l_or(ismoduleroutine,isdummyroutine)):['F_WRAPPEDFUNC','F_FUNC']},
- 'callfortranroutine':[
+ 'need': {l_not(l_or(ismoduleroutine, isdummyroutine)):['F_WRAPPEDFUNC', 'F_FUNC']},
+ 'callfortranroutine': [
{debugcapi:["""\tfprintf(stderr,\"debug-capi:Fortran subroutine `f2pywrap#name_lower#(#callfortran#)\'\\n\");"""]},
{hasexternals:"""\
\tif (#setjmpbuf#) {
\t\tf2py_success = 0;
\t} else {"""},
{isthreadsafe:'\tPy_BEGIN_ALLOW_THREADS'},
- {l_not(l_or(hascallstatement,isdummyroutine)):'\t(*f2py_func)(#callfortran#);'},
+ {l_not(l_or(hascallstatement, isdummyroutine)):'\t(*f2py_func)(#callfortran#);'},
{hascallstatement:'\t#callstatement#;\n\t/*(*f2py_func)(#callfortran#);*/'},
{isthreadsafe:'\tPy_END_ALLOW_THREADS'},
{hasexternals:'\t}'}
],
- '_check':issubroutine_wrap,
- },{ # Function
+ '_check': issubroutine_wrap,
+ }, { # Function
'functype':'#ctype#',
'docreturn':{l_not(isintent_hide):'#rname#,'},
'docstrout':'#pydocsignout#',
'latexdocstrout':['\\item[]{{}\\verb@#pydocsignout#@{}}',
{hasresultnote:'--- #resultnote#'}],
- 'callfortranroutine':[{l_and(debugcapi,isstringfunction):"""\
+ 'callfortranroutine':[{l_and(debugcapi, isstringfunction):"""\
#ifdef USESCOMPAQFORTRAN
\tfprintf(stderr,\"debug-capi:Fortran function #ctype# #fortranname#(#callcompaqfortran#)\\n\");
#else
\tfprintf(stderr,\"debug-capi:Fortran function #ctype# #fortranname#(#callfortran#)\\n\");
#endif
"""},
- {l_and(debugcapi,l_not(isstringfunction)):"""\
+ {l_and(debugcapi, l_not(isstringfunction)):"""\
\tfprintf(stderr,\"debug-capi:Fortran function #ctype# #fortranname#(#callfortran#)\\n\");
"""}
],
- '_check':l_and(isfunction,l_not(isfunction_wrap))
- },{ # Scalar function
- 'declfortranroutine':{l_and(l_not(l_or(ismoduleroutine,isintent_c)),l_not(isdummyroutine)):'extern #ctype# #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);',
- l_and(l_not(ismoduleroutine),isintent_c,l_not(isdummyroutine)):'extern #ctype# #fortranname#(#callprotoargument#);',
+ '_check':l_and(isfunction, l_not(isfunction_wrap))
+ }, { # Scalar function
+ 'declfortranroutine':{l_and(l_not(l_or(ismoduleroutine, isintent_c)), l_not(isdummyroutine)):'extern #ctype# #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);',
+ l_and(l_not(ismoduleroutine), isintent_c, l_not(isdummyroutine)):'extern #ctype# #fortranname#(#callprotoargument#);',
isdummyroutine:''
},
- 'routine_def':{l_and(l_not(l_or(ismoduleroutine,isintent_c)),l_not(isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
- l_and(l_not(ismoduleroutine),isintent_c,l_not(isdummyroutine)):'\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},',
- isdummyroutine:'\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
+ 'routine_def':{l_and(l_not(l_or(ismoduleroutine, isintent_c)), l_not(isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
+ l_and(l_not(ismoduleroutine), isintent_c, l_not(isdummyroutine)): '\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},',
+ isdummyroutine: '\t{\"#name#\",-1,{{-1}},0,NULL,(f2py_init_func)#apiname#,doc_#apiname#},',
},
'decl':[{iscomplexfunction_warn:'\t#ctype# #name#_return_value={0,0};',
l_not(iscomplexfunction):'\t#ctype# #name#_return_value=0;'},
@@ -520,11 +520,11 @@ rout_rules=[
{hascallstatement:'''\t#callstatement#;
/*\t#name#_return_value = (*f2py_func)(#callfortran#);*/
'''},
- {l_not(l_or(hascallstatement,isdummyroutine)):'\t#name#_return_value = (*f2py_func)(#callfortran#);'},
+ {l_not(l_or(hascallstatement, isdummyroutine)):'\t#name#_return_value = (*f2py_func)(#callfortran#);'},
{isthreadsafe:'\tPy_END_ALLOW_THREADS'},
{hasexternals:'\t}'},
- {l_and(debugcapi,iscomplexfunction):'\tfprintf(stderr,"#routdebugshowvalue#\\n",#name#_return_value.r,#name#_return_value.i);'},
- {l_and(debugcapi,l_not(iscomplexfunction)):'\tfprintf(stderr,"#routdebugshowvalue#\\n",#name#_return_value);'}],
+ {l_and(debugcapi, iscomplexfunction):'\tfprintf(stderr,"#routdebugshowvalue#\\n",#name#_return_value.r,#name#_return_value.i);'},
+ {l_and(debugcapi, l_not(iscomplexfunction)):'\tfprintf(stderr,"#routdebugshowvalue#\\n",#name#_return_value);'}],
'pyobjfrom':{iscomplexfunction:'\t#name#_return_value_capi = pyobj_from_#ctype#1(#name#_return_value);'},
'need':[{l_not(isdummyroutine):'F_FUNC'},
{iscomplexfunction:'pyobj_from_#ctype#1'},
@@ -532,14 +532,14 @@ rout_rules=[
{islong_doublefunction:'long_double'}],
'returnformat':{l_not(isintent_hide):'#rformat#'},
'return':{iscomplexfunction:',#name#_return_value_capi',
- l_not(l_or(iscomplexfunction,isintent_hide)):',#name#_return_value'},
- '_check':l_and(isfunction,l_not(isstringfunction),l_not(isfunction_wrap))
- },{ # String function # in use for --no-wrap
+ l_not(l_or(iscomplexfunction, isintent_hide)):',#name#_return_value'},
+ '_check':l_and(isfunction, l_not(isstringfunction), l_not(isfunction_wrap))
+ }, { # String function # in use for --no-wrap
'declfortranroutine':'extern void #F_FUNC#(#fortranname#,#FORTRANNAME#)(#callprotoargument#);',
- 'routine_def':{l_not(l_or(ismoduleroutine,isintent_c)):
+ 'routine_def':{l_not(l_or(ismoduleroutine, isintent_c)):
# '\t{\"#name#\",-1,{{-1}},0,(char *)F_FUNC(#fortranname#,#FORTRANNAME#),(void *)#apiname#,doc_#apiname#},',
'\t{\"#name#\",-1,{{-1}},0,(char *)#F_FUNC#(#fortranname#,#FORTRANNAME#),(f2py_init_func)#apiname#,doc_#apiname#},',
- l_and(l_not(ismoduleroutine),isintent_c):
+ l_and(l_not(ismoduleroutine), isintent_c):
# '\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(void *)#apiname#,doc_#apiname#},'
'\t{\"#name#\",-1,{{-1}},0,(char *)#fortranname#,(f2py_init_func)#apiname#,doc_#apiname#},'
},
@@ -574,8 +574,8 @@ rout_rules=[
'returnformat':'#rformat#',
'return':',#name#_return_value',
'freemem':'\tSTRINGFREE(#name#_return_value);',
- 'need':['F_FUNC','#ctype#','STRINGFREE'],
- '_check':l_and(isstringfunction,l_not(isfunction_wrap)) # ???obsolete
+ 'need':['F_FUNC', '#ctype#', 'STRINGFREE'],
+ '_check':l_and(isstringfunction, l_not(isfunction_wrap)) # ???obsolete
},
{ # Debugging
'routdebugenter':'\tfprintf(stderr,"debug-capi:Python C/API function #modulename#.#name#(#docsignature#)\\n");',
@@ -587,17 +587,17 @@ rout_rules=[
################ Rules for arguments ##################
-typedef_need_dict = {islong_long:'long_long',
- islong_double:'long_double',
- islong_complex:'complex_long_double',
- isunsigned_char:'unsigned_char',
- isunsigned_short:'unsigned_short',
- isunsigned:'unsigned',
- isunsigned_long_long:'unsigned_long_long',
- isunsigned_chararray:'unsigned_char',
- isunsigned_shortarray:'unsigned_short',
- isunsigned_long_longarray:'unsigned_long_long',
- issigned_long_longarray:'long_long',
+typedef_need_dict = {islong_long: 'long_long',
+ islong_double: 'long_double',
+ islong_complex: 'complex_long_double',
+ isunsigned_char: 'unsigned_char',
+ isunsigned_short: 'unsigned_short',
+ isunsigned: 'unsigned',
+ isunsigned_long_long: 'unsigned_long_long',
+ isunsigned_chararray: 'unsigned_char',
+ isunsigned_shortarray: 'unsigned_short',
+ isunsigned_long_longarray: 'unsigned_long_long',
+ issigned_long_longarray: 'long_long',
}
aux_rules=[
@@ -605,24 +605,24 @@ aux_rules=[
'separatorsfor':sepdict
},
{ # Common
- 'frompyobj':['\t/* Processing auxiliary variable #varname# */',
+ 'frompyobj': ['\t/* Processing auxiliary variable #varname# */',
{debugcapi:'\tfprintf(stderr,"#vardebuginfo#\\n");'},],
- 'cleanupfrompyobj':'\t/* End of cleaning variable #varname# */',
- 'need':typedef_need_dict,
+ 'cleanupfrompyobj': '\t/* End of cleaning variable #varname# */',
+ 'need': typedef_need_dict,
},
# Scalars (not complex)
{ # Common
- 'decl':'\t#ctype# #varname# = 0;',
- 'need':{hasinitvalue:'math.h'},
- 'frompyobj':{hasinitvalue:'\t#varname# = #init#;'},
- '_check':l_and(isscalar,l_not(iscomplex)),
+ 'decl': '\t#ctype# #varname# = 0;',
+ 'need': {hasinitvalue:'math.h'},
+ 'frompyobj': {hasinitvalue:'\t#varname# = #init#;'},
+ '_check': l_and(isscalar, l_not(iscomplex)),
},
{
- 'return':',#varname#',
- 'docstrout':'#pydocsignout#',
- 'docreturn':'#outvarname#,',
- 'returnformat':'#varrformat#',
- '_check':l_and(isscalar,l_not(iscomplex),isintent_out),
+ 'return': ',#varname#',
+ 'docstrout': '#pydocsignout#',
+ 'docreturn': '#outvarname#,',
+ 'returnformat': '#varrformat#',
+ '_check': l_and(isscalar, l_not(iscomplex), isintent_out),
},
# Complex scalars
{ # Common
@@ -644,14 +644,14 @@ aux_rules=[
'\tnpy_intp #varname#_Dims[#rank#] = {#rank*[-1]#};',
'\tconst int #varname#_Rank = #rank#;',
],
- 'need':['len..',{hasinitvalue:'forcomb'},{hasinitvalue:'CFUNCSMESS'}],
+ 'need':['len..', {hasinitvalue:'forcomb'}, {hasinitvalue:'CFUNCSMESS'}],
'_check':isarray
},
# Scalararray
{ # Common
- '_check':l_and(isarray,l_not(iscomplexarray))
- },{ # Not hidden
- '_check':l_and(isarray,l_not(iscomplexarray),isintent_nothide)
+ '_check':l_and(isarray, l_not(iscomplexarray))
+ }, { # Not hidden
+ '_check':l_and(isarray, l_not(iscomplexarray), isintent_nothide)
},
# Integer*1 array
{'need':'#ctype#',
@@ -691,37 +691,37 @@ arg_rules=[
'separatorsfor':sepdict
},
{ # Common
- 'frompyobj':['\t/* Processing variable #varname# */',
+ 'frompyobj': ['\t/* Processing variable #varname# */',
{debugcapi:'\tfprintf(stderr,"#vardebuginfo#\\n");'},],
- 'cleanupfrompyobj':'\t/* End of cleaning variable #varname# */',
- '_depend':'',
- 'need':typedef_need_dict,
+ 'cleanupfrompyobj': '\t/* End of cleaning variable #varname# */',
+ '_depend': '',
+ 'need': typedef_need_dict,
},
# Doc signatures
{
- 'docstropt':{l_and(isoptional,isintent_nothide):'#pydocsign#'},
- 'docstrreq':{l_and(isrequired,isintent_nothide):'#pydocsign#'},
+ 'docstropt':{l_and(isoptional, isintent_nothide):'#pydocsign#'},
+ 'docstrreq':{l_and(isrequired, isintent_nothide):'#pydocsign#'},
'docstrout':{isintent_out:'#pydocsignout#'},
- 'latexdocstropt':{l_and(isoptional,isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
+ 'latexdocstropt':{l_and(isoptional, isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
{hasnote:'--- #note#'}]},
- 'latexdocstrreq':{l_and(isrequired,isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
+ 'latexdocstrreq':{l_and(isrequired, isintent_nothide):['\\item[]{{}\\verb@#pydocsign#@{}}',
{hasnote:'--- #note#'}]},
'latexdocstrout':{isintent_out:['\\item[]{{}\\verb@#pydocsignout#@{}}',
- {l_and(hasnote,isintent_hide):'--- #note#',
- l_and(hasnote,isintent_nothide):'--- See above.'}]},
+ {l_and(hasnote, isintent_hide):'--- #note#',
+ l_and(hasnote, isintent_nothide):'--- See above.'}]},
'depend':''
},
# Required/Optional arguments
{
'kwlist':'"#varname#",',
'docsign':'#varname#,',
- '_check':l_and(isintent_nothide,l_not(isoptional))
+ '_check':l_and(isintent_nothide, l_not(isoptional))
},
{
'kwlistopt':'"#varname#",',
'docsignopt':'#varname#=#showinit#,',
'docsignoptshort':'#varname#,',
- '_check':l_and(isintent_nothide,isoptional)
+ '_check':l_and(isintent_nothide, isoptional)
},
# Docstring/BuildValue
{
@@ -752,7 +752,7 @@ arg_rules=[
'keys_xa':',&PyTuple_Type,&#varname#_xa_capi',
'setjmpbuf':'(setjmp(#cbname#_jmpbuf))',
'callfortran':{l_not(isintent_callback):'#varname#_cptr,'},
- 'need':['#cbname#','setjmp.h'],
+ 'need':['#cbname#', 'setjmp.h'],
'_check':isexternal
},
{
@@ -762,7 +762,7 @@ if(F2PyCapsule_Check(#varname#_capi)) {
} else {
#varname#_cptr = #cbname#;
}
-"""},{isintent_callback:"""\
+"""}, {isintent_callback:"""\
if (#varname#_capi==Py_None) {
#varname#_capi = PyObject_GetAttrString(#modulename#_module,\"#varname#\");
if (#varname#_capi) {
@@ -814,7 +814,7 @@ if (#varname#_capi==Py_None) {
\t\t#cbname#_nofargs = #varname#_nofargs_capi;
\t\tmemcpy(&#cbname#_jmpbuf,&#varname#_jmpbuf,sizeof(jmp_buf));
\t}""",
- 'need':['SWAP','create_cb_arglist'],
+ 'need':['SWAP', 'create_cb_arglist'],
'_check':isexternal,
'_depend':''
},
@@ -824,12 +824,12 @@ if (#varname#_capi==Py_None) {
'pyobjfrom':{debugcapi:'\tfprintf(stderr,"#vardebugshowvalue#\\n",#varname#);'},
'callfortran':{isintent_c:'#varname#,',l_not(isintent_c):'&#varname#,'},
'return':{isintent_out:',#varname#'},
- '_check':l_and(isscalar,l_not(iscomplex))
- },{
- 'need':{hasinitvalue:'math.h'},
- '_check':l_and(isscalar,l_not(iscomplex)),
+ '_check':l_and(isscalar, l_not(iscomplex))
+ }, {
+ 'need': {hasinitvalue:'math.h'},
+ '_check': l_and(isscalar, l_not(iscomplex)),
#'_depend':''
- },{ # Not hidden
+ }, { # Not hidden
'decl':'\tPyObject *#varname#_capi = Py_None;',
'argformat':{isrequired:'O'},
'keyformat':{isoptional:'O'},
@@ -840,8 +840,8 @@ if (#varname#_capi==Py_None) {
\tif (f2py_success) {"""},
'closepyobjfrom':{isintent_inout:"\t} /*if (f2py_success) of #varname# pyobjfrom*/"},
'need':{isintent_inout:'try_pyarr_from_#ctype#'},
- '_check':l_and(isscalar,l_not(iscomplex),isintent_nothide)
- },{
+ '_check':l_and(isscalar, l_not(iscomplex), isintent_nothide)
+ }, {
'frompyobj':[
# hasinitvalue...
# if pyobj is None:
@@ -860,7 +860,7 @@ if (#varname#_capi==Py_None) {
#
{hasinitvalue:'\tif (#varname#_capi == Py_None) #varname# = #init#; else',
'_depend':''},
- {l_and(isoptional,l_not(hasinitvalue)):'\tif (#varname#_capi != Py_None)',
+ {l_and(isoptional, l_not(hasinitvalue)):'\tif (#varname#_capi != Py_None)',
'_depend':''},
{l_not(islogical):'''\
\t\tf2py_success = #ctype#_from_pyobj(&#varname#,#varname#_capi,"#pyname#() #nth# (#varname#) can\'t be converted to #ctype#");
@@ -872,18 +872,18 @@ if (#varname#_capi==Py_None) {
],
'cleanupfrompyobj':'\t} /*if (f2py_success) of #varname#*/',
'need':{l_not(islogical):'#ctype#_from_pyobj'},
- '_check':l_and(isscalar,l_not(iscomplex),isintent_nothide),
+ '_check':l_and(isscalar, l_not(iscomplex), isintent_nothide),
'_depend':''
# },{ # Hidden
# '_check':l_and(isscalar,l_not(iscomplex),isintent_hide)
- },{ # Hidden
+ }, { # Hidden
'frompyobj':{hasinitvalue:'\t#varname# = #init#;'},
'need':typedef_need_dict,
- '_check':l_and(isscalar,l_not(iscomplex),isintent_hide),
+ '_check':l_and(isscalar, l_not(iscomplex), isintent_hide),
'_depend':''
- },{ # Common
+ }, { # Common
'frompyobj':{debugcapi:'\tfprintf(stderr,"#vardebugshowvalue#\\n",#varname#);'},
- '_check':l_and(isscalar,l_not(iscomplex)),
+ '_check':l_and(isscalar, l_not(iscomplex)),
'_depend':''
},
# Complex scalars
@@ -893,7 +893,7 @@ if (#varname#_capi==Py_None) {
'pyobjfrom':{debugcapi:'\tfprintf(stderr,"#vardebugshowvalue#\\n",#varname#.r,#varname#.i);'},
'return':{isintent_out:',#varname#_capi'},
'_check':iscomplex
- },{ # Not hidden
+ }, { # Not hidden
'decl':'\tPyObject *#varname#_capi = Py_None;',
'argformat':{isrequired:'O'},
'keyformat':{isoptional:'O'},
@@ -904,29 +904,29 @@ if (#varname#_capi==Py_None) {
\t\tf2py_success = try_pyarr_from_#ctype#(#varname#_capi,&#varname#);
\t\tif (f2py_success) {"""},
'closepyobjfrom':{isintent_inout:"\t\t} /*if (f2py_success) of #varname# pyobjfrom*/"},
- '_check':l_and(iscomplex,isintent_nothide)
- },{
+ '_check':l_and(iscomplex, isintent_nothide)
+ }, {
'frompyobj':[{hasinitvalue:'\tif (#varname#_capi==Py_None) {#varname#.r = #init.r#, #varname#.i = #init.i#;} else'},
- {l_and(isoptional,l_not(hasinitvalue)):'\tif (#varname#_capi != Py_None)'},
+ {l_and(isoptional, l_not(hasinitvalue)):'\tif (#varname#_capi != Py_None)'},
# '\t\tf2py_success = #ctype#_from_pyobj(&#varname#,#varname#_capi,"#ctype#_from_pyobj failed in converting #nth# `#varname#\' of #pyname# to C #ctype#\\n");'
'\t\tf2py_success = #ctype#_from_pyobj(&#varname#,#varname#_capi,"#pyname#() #nth# (#varname#) can\'t be converted to #ctype#");'
'\n\tif (f2py_success) {'],
'cleanupfrompyobj':'\t} /*if (f2py_success) of #varname# frompyobj*/',
'need':['#ctype#_from_pyobj'],
- '_check':l_and(iscomplex,isintent_nothide),
+ '_check':l_and(iscomplex, isintent_nothide),
'_depend':''
- },{ # Hidden
+ }, { # Hidden
'decl':{isintent_out:'\tPyObject *#varname#_capi = Py_None;'},
- '_check':l_and(iscomplex,isintent_hide)
- },{
+ '_check':l_and(iscomplex, isintent_hide)
+ }, {
'frompyobj': {hasinitvalue:'\t#varname#.r = #init.r#, #varname#.i = #init.i#;'},
- '_check':l_and(iscomplex,isintent_hide),
+ '_check':l_and(iscomplex, isintent_hide),
'_depend':''
- },{ # Common
+ }, { # Common
'pyobjfrom':{isintent_out:'\t#varname#_capi = pyobj_from_#ctype#1(#varname#);'},
'need':['pyobj_from_#ctype#1'],
'_check':iscomplex
- },{
+ }, {
'frompyobj':{debugcapi:'\tfprintf(stderr,"#vardebugshowvalue#\\n",#varname#.r,#varname#.i);'},
'_check':iscomplex,
'_depend':''
@@ -943,7 +943,7 @@ if (#varname#_capi==Py_None) {
'return':{isintent_out:',#varname#'},
'need':['len..'],#'STRINGFREE'],
'_check':isstring
- },{ # Common
+ }, { # Common
'frompyobj':"""\
\tslen(#varname#) = #length#;
\tf2py_success = #ctype#_from_pyobj(&#varname#,&slen(#varname#),#init#,#varname#_capi,\"#ctype#_from_pyobj failed in converting #nth# `#varname#\' of #pyname# to C #ctype#\");
@@ -951,10 +951,10 @@ if (#varname#_capi==Py_None) {
'cleanupfrompyobj':"""\
\t\tSTRINGFREE(#varname#);
\t} /*if (f2py_success) of #varname#*/""",
- 'need':['#ctype#_from_pyobj','len..','STRINGFREE'],
+ 'need':['#ctype#_from_pyobj', 'len..', 'STRINGFREE'],
'_check':isstring,
'_depend':''
- },{ # Not hidden
+ }, { # Not hidden
'argformat':{isrequired:'O'},
'keyformat':{isoptional:'O'},
'args_capi':{isrequired:',&#varname#_capi'},
@@ -964,10 +964,10 @@ if (#varname#_capi==Py_None) {
\tif (f2py_success) {'''},
'closepyobjfrom':{isintent_inout:'\t} /*if (f2py_success) of #varname# pyobjfrom*/'},
'need':{isintent_inout:'try_pyarr_from_#ctype#'},
- '_check':l_and(isstring,isintent_nothide)
- },{ # Hidden
- '_check':l_and(isstring,isintent_hide)
- },{
+ '_check':l_and(isstring, isintent_nothide)
+ }, { # Hidden
+ '_check':l_and(isstring, isintent_hide)
+ }, {
'frompyobj':{debugcapi:'\tfprintf(stderr,"#vardebugshowvalue#\\n",slen(#varname#),#varname#);'},
'_check':isstring,
'_depend':''
@@ -984,38 +984,38 @@ if (#varname#_capi==Py_None) {
'return':{isintent_out:',capi_#varname#_tmp'},
'need':'len..',
'_check':isarray
- },{ # intent(overwrite) array
- 'decl':'\tint capi_overwrite_#varname# = 1;',
- 'kwlistxa':'"overwrite_#varname#",',
- 'xaformat':'i',
- 'keys_xa':',&capi_overwrite_#varname#',
- 'docsignxa':'overwrite_#varname#=1,',
- 'docsignxashort':'overwrite_#varname#,',
- 'docstropt':'overwrite_#varname# : input int, optional\\n Default: 1',
- '_check':l_and(isarray,isintent_overwrite),
- },{
- 'frompyobj':'\tcapi_#varname#_intent |= (capi_overwrite_#varname#?0:F2PY_INTENT_COPY);',
- '_check':l_and(isarray,isintent_overwrite),
- '_depend':'',
+ }, { # intent(overwrite) array
+ 'decl': '\tint capi_overwrite_#varname# = 1;',
+ 'kwlistxa': '"overwrite_#varname#",',
+ 'xaformat': 'i',
+ 'keys_xa': ',&capi_overwrite_#varname#',
+ 'docsignxa': 'overwrite_#varname#=1,',
+ 'docsignxashort': 'overwrite_#varname#,',
+ 'docstropt': 'overwrite_#varname# : input int, optional\\n Default: 1',
+ '_check': l_and(isarray, isintent_overwrite),
+ }, {
+ 'frompyobj': '\tcapi_#varname#_intent |= (capi_overwrite_#varname#?0:F2PY_INTENT_COPY);',
+ '_check': l_and(isarray, isintent_overwrite),
+ '_depend': '',
},
{ # intent(copy) array
- 'decl':'\tint capi_overwrite_#varname# = 0;',
- 'kwlistxa':'"overwrite_#varname#",',
- 'xaformat':'i',
- 'keys_xa':',&capi_overwrite_#varname#',
- 'docsignxa':'overwrite_#varname#=0,',
- 'docsignxashort':'overwrite_#varname#,',
- 'docstropt':'overwrite_#varname# : input int, optional\\n Default: 0',
- '_check':l_and(isarray,isintent_copy),
- },{
- 'frompyobj':'\tcapi_#varname#_intent |= (capi_overwrite_#varname#?0:F2PY_INTENT_COPY);',
- '_check':l_and(isarray,isintent_copy),
- '_depend':'',
- },{
- 'need':[{hasinitvalue:'forcomb'},{hasinitvalue:'CFUNCSMESS'}],
+ 'decl': '\tint capi_overwrite_#varname# = 0;',
+ 'kwlistxa': '"overwrite_#varname#",',
+ 'xaformat': 'i',
+ 'keys_xa': ',&capi_overwrite_#varname#',
+ 'docsignxa': 'overwrite_#varname#=0,',
+ 'docsignxashort': 'overwrite_#varname#,',
+ 'docstropt': 'overwrite_#varname# : input int, optional\\n Default: 0',
+ '_check': l_and(isarray, isintent_copy),
+ }, {
+ 'frompyobj': '\tcapi_#varname#_intent |= (capi_overwrite_#varname#?0:F2PY_INTENT_COPY);',
+ '_check': l_and(isarray, isintent_copy),
+ '_depend': '',
+ }, {
+ 'need':[{hasinitvalue:'forcomb'}, {hasinitvalue:'CFUNCSMESS'}],
'_check':isarray,
'_depend':''
- },{ # Not hidden
+ }, { # Not hidden
'decl':'\tPyObject *#varname#_capi = Py_None;',
'argformat':{isrequired:'O'},
'keyformat':{isoptional:'O'},
@@ -1036,8 +1036,8 @@ if (#varname#_capi==Py_None) {
# */
# """},
# 'need':{isintent_inout:'copy_ND_array'},
- '_check':l_and(isarray,isintent_nothide)
- },{
+ '_check':l_and(isarray, isintent_nothide)
+ }, {
'frompyobj':['\t#setdims#;',
'\tcapi_#varname#_intent |= #intent#;',
{isintent_hide:'\tcapi_#varname#_tmp = array_from_pyobj(#atype#,#varname#_Dims,#varname#_Rank,capi_#varname#_intent,Py_None);'},
@@ -1069,10 +1069,10 @@ if (#varname#_capi==Py_None) {
],
'cleanupfrompyobj':[ # note that this list will be reversed
'\t} /*if (capi_#varname#_tmp == NULL) ... else of #varname#*/',
- {l_not(l_or(isintent_out,isintent_hide)):"""\
+ {l_not(l_or(isintent_out, isintent_hide)):"""\
\tif((PyObject *)capi_#varname#_tmp!=#varname#_capi) {
\t\tPy_XDECREF(capi_#varname#_tmp); }"""},
- {l_and(isintent_hide,l_not(isintent_out)):"""\t\tPy_XDECREF(capi_#varname#_tmp);"""},
+ {l_and(isintent_hide, l_not(isintent_out)):"""\t\tPy_XDECREF(capi_#varname#_tmp);"""},
{hasinitvalue:'\t} /*if (f2py_success) of #varname# init*/'},
],
'_check':isarray,
@@ -1084,9 +1084,9 @@ if (#varname#_capi==Py_None) {
# },
# Scalararray
{ # Common
- '_check':l_and(isarray,l_not(iscomplexarray))
- },{ # Not hidden
- '_check':l_and(isarray,l_not(iscomplexarray),isintent_nothide)
+ '_check':l_and(isarray, l_not(iscomplexarray))
+ }, { # Not hidden
+ '_check':l_and(isarray, l_not(iscomplexarray), isintent_nothide)
},
# Integer*1 array
{'need':'#ctype#',
@@ -1127,28 +1127,28 @@ check_rules=[
{
'frompyobj':{debugcapi:'\tfprintf(stderr,\"debug-capi:Checking `#check#\'\\n\");'},
'need':'len..'
- },{
+ }, {
'frompyobj':'\tCHECKSCALAR(#check#,\"#check#\",\"#nth# #varname#\",\"#varshowvalue#\",#varname#) {',
'cleanupfrompyobj':'\t} /*CHECKSCALAR(#check#)*/',
'need':'CHECKSCALAR',
- '_check':l_and(isscalar,l_not(iscomplex)),
+ '_check':l_and(isscalar, l_not(iscomplex)),
'_break':''
- },{
+ }, {
'frompyobj':'\tCHECKSTRING(#check#,\"#check#\",\"#nth# #varname#\",\"#varshowvalue#\",#varname#) {',
'cleanupfrompyobj':'\t} /*CHECKSTRING(#check#)*/',
'need':'CHECKSTRING',
'_check':isstring,
'_break':''
- },{
+ }, {
'need':'CHECKARRAY',
'frompyobj':'\tCHECKARRAY(#check#,\"#check#\",\"#nth# #varname#\") {',
'cleanupfrompyobj':'\t} /*CHECKARRAY(#check#)*/',
'_check':isarray,
'_break':''
- },{
- 'need':'CHECKGENERIC',
- 'frompyobj':'\tCHECKGENERIC(#check#,\"#check#\",\"#nth# #varname#\") {',
- 'cleanupfrompyobj':'\t} /*CHECKGENERIC(#check#)*/',
+ }, {
+ 'need': 'CHECKGENERIC',
+ 'frompyobj': '\tCHECKGENERIC(#check#,\"#check#\",\"#nth# #varname#\") {',
+ 'cleanupfrompyobj': '\t} /*CHECKGENERIC(#check#)*/',
}
]
@@ -1156,16 +1156,16 @@ check_rules=[
#################### Build C/API module #######################
-def buildmodule(m,um):
+def buildmodule(m, um):
"""
Return
"""
- global f2py_version,options
+ global f2py_version, options
outmess('\tBuilding module "%s"...\n'%(m['name']))
ret = {}
mod_rules=defmod_rules[:]
vrd=modsign2map(m)
- rd=dictappend({'f2py_version':f2py_version},vrd)
+ rd=dictappend({'f2py_version':f2py_version}, vrd)
funcwrappers = []
funcwrappers2 = [] # F90 codes
for n in m['interfaced']:
@@ -1182,39 +1182,39 @@ def buildmodule(m,um):
continue
nb_list = [nb]
if 'entry' in nb:
- for k,a in nb['entry'].items():
+ for k, a in nb['entry'].items():
nb1 = copy.deepcopy(nb)
del nb1['entry']
nb1['name'] = k
nb1['args'] = a
nb_list.append(nb1)
for nb in nb_list:
- api,wrap=buildapi(nb)
+ api, wrap=buildapi(nb)
if wrap:
if ismoduleroutine(nb):
funcwrappers2.append(wrap)
else:
funcwrappers.append(wrap)
- ar=applyrules(api,vrd)
- rd=dictappend(rd,ar)
+ ar=applyrules(api, vrd)
+ rd=dictappend(rd, ar)
# Construct COMMON block support
- cr,wrap = common_rules.buildhooks(m)
+ cr, wrap = common_rules.buildhooks(m)
if wrap:
funcwrappers.append(wrap)
- ar=applyrules(cr,vrd)
- rd=dictappend(rd,ar)
+ ar=applyrules(cr, vrd)
+ rd=dictappend(rd, ar)
# Construct F90 module support
- mr,wrap = f90mod_rules.buildhooks(m)
+ mr, wrap = f90mod_rules.buildhooks(m)
if wrap:
funcwrappers2.append(wrap)
- ar=applyrules(mr,vrd)
- rd=dictappend(rd,ar)
+ ar=applyrules(mr, vrd)
+ rd=dictappend(rd, ar)
for u in um:
- ar=use_rules.buildusevars(u,m['use'][u['name']])
- rd=dictappend(rd,ar)
+ ar=use_rules.buildusevars(u, m['use'][u['name']])
+ rd=dictappend(rd, ar)
needs=cfuncs.get_needs()
code={}
@@ -1248,28 +1248,28 @@ def buildmodule(m,um):
mod_rules.append(code)
for r in mod_rules:
if ('_check' in r and r['_check'](m)) or ('_check' not in r):
- ar=applyrules(r,vrd,m)
- rd=dictappend(rd,ar)
- ar=applyrules(module_rules,rd)
+ ar=applyrules(r, vrd, m)
+ rd=dictappend(rd, ar)
+ ar=applyrules(module_rules, rd)
- fn = os.path.join(options['buildpath'],vrd['coutput'])
+ fn = os.path.join(options['buildpath'], vrd['coutput'])
ret['csrc'] = fn
- f=open(fn,'w')
- f.write(ar['modulebody'].replace('\t',2*' '))
+ f=open(fn, 'w')
+ f.write(ar['modulebody'].replace('\t', 2*' '))
f.close()
- outmess('\tWrote C/API module "%s" to file "%s"\n'%(m['name'],fn))
+ outmess('\tWrote C/API module "%s" to file "%s"\n'%(m['name'], fn))
if options['dorestdoc']:
- fn = os.path.join(options['buildpath'],vrd['modulename']+'module.rest')
- f=open(fn,'w')
+ fn = os.path.join(options['buildpath'], vrd['modulename']+'module.rest')
+ f=open(fn, 'w')
f.write('.. -*- rest -*-\n')
f.write('\n'.join(ar['restdoc']))
f.close()
- outmess('\tReST Documentation is saved to file "%s/%smodule.rest"\n'%(options['buildpath'],vrd['modulename']))
+ outmess('\tReST Documentation is saved to file "%s/%smodule.rest"\n'%(options['buildpath'], vrd['modulename']))
if options['dolatexdoc']:
- fn = os.path.join(options['buildpath'],vrd['modulename']+'module.tex')
+ fn = os.path.join(options['buildpath'], vrd['modulename']+'module.tex')
ret['ltx'] = fn
- f=open(fn,'w')
+ f=open(fn, 'w')
f.write('%% This file is auto-generated with f2py (version:%s)\n'%(f2py_version))
if 'shortlatex' not in options:
f.write('\\documentclass{article}\n\\usepackage{a4wide}\n\\begin{document}\n\\tableofcontents\n\n')
@@ -1277,11 +1277,11 @@ def buildmodule(m,um):
if 'shortlatex' not in options:
f.write('\\end{document}')
f.close()
- outmess('\tDocumentation is saved to file "%s/%smodule.tex"\n'%(options['buildpath'],vrd['modulename']))
+ outmess('\tDocumentation is saved to file "%s/%smodule.tex"\n'%(options['buildpath'], vrd['modulename']))
if funcwrappers:
- wn = os.path.join(options['buildpath'],vrd['f2py_wrapper_output'])
+ wn = os.path.join(options['buildpath'], vrd['f2py_wrapper_output'])
ret['fsrc'] = wn
- f=open(wn,'w')
+ f=open(wn, 'w')
f.write('C -*- fortran -*-\n')
f.write('C This file is autogenerated with f2py (version:%s)\n'%(f2py_version))
f.write('C It contains Fortran 77 wrappers to fortran functions.\n')
@@ -1293,14 +1293,14 @@ def buildmodule(m,um):
l = l[66:]
lines.append(l+'\n')
else: lines.append(l+'\n')
- lines = ''.join(lines).replace('\n &\n','\n')
+ lines = ''.join(lines).replace('\n &\n', '\n')
f.write(lines)
f.close()
outmess('\tFortran 77 wrappers are saved to "%s"\n'%(wn))
if funcwrappers2:
- wn = os.path.join(options['buildpath'],'%s-f2pywrappers2.f90'%(vrd['modulename']))
+ wn = os.path.join(options['buildpath'], '%s-f2pywrappers2.f90'%(vrd['modulename']))
ret['fsrc'] = wn
- f=open(wn,'w')
+ f=open(wn, 'w')
f.write('! -*- f90 -*-\n')
f.write('! This file is autogenerated with f2py (version:%s)\n'%(f2py_version))
f.write('! It contains Fortran 90 wrappers to fortran functions.\n')
@@ -1314,7 +1314,7 @@ def buildmodule(m,um):
l = l[66:]
lines.append(l+'\n')
else: lines.append(l+'\n')
- lines = ''.join(lines).replace('\n &\n','\n')
+ lines = ''.join(lines).replace('\n &\n', '\n')
f.write(lines)
f.close()
outmess('\tFortran 90 wrappers are saved to "%s"\n'%(wn))
@@ -1325,29 +1325,29 @@ def buildmodule(m,um):
stnd={1:'st',2:'nd',3:'rd',4:'th',5:'th',6:'th',7:'th',8:'th',9:'th',0:'th'}
def buildapi(rout):
- rout,wrap = func2subr.assubr(rout)
- args,depargs=getargs2(rout)
+ rout, wrap = func2subr.assubr(rout)
+ args, depargs=getargs2(rout)
capi_maps.depargs=depargs
var=rout['vars']
auxvars = [a for a in var.keys() if isintent_aux(var[a])]
if ismoduleroutine(rout):
- outmess('\t\t\tConstructing wrapper function "%s.%s"...\n'%(rout['modulename'],rout['name']))
+ outmess('\t\t\tConstructing wrapper function "%s.%s"...\n'%(rout['modulename'], rout['name']))
else:
outmess('\t\tConstructing wrapper function "%s"...\n'%(rout['name']))
# Routine
vrd=routsign2map(rout)
- rd=dictappend({},vrd)
+ rd=dictappend({}, vrd)
for r in rout_rules:
if ('_check' in r and r['_check'](rout)) or ('_check' not in r):
- ar=applyrules(r,vrd,rout)
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, rout)
+ rd=dictappend(rd, ar)
# Args
- nth,nthk=0,0
+ nth, nthk=0, 0
savevrd={}
for a in args:
- vrd=sign2map(a,var[a])
+ vrd=sign2map(a, var[a])
if isintent_aux(var[a]):
_rules = aux_rules
else:
@@ -1365,8 +1365,8 @@ def buildapi(rout):
if '_depend' in r:
continue
if ('_check' in r and r['_check'](var[a])) or ('_check' not in r):
- ar=applyrules(r,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, var[a])
+ rd=dictappend(rd, ar)
if '_break' in r:
break
for a in depargs:
@@ -1379,15 +1379,15 @@ def buildapi(rout):
if '_depend' not in r:
continue
if ('_check' in r and r['_check'](var[a])) or ('_check' not in r):
- ar=applyrules(r,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(r, vrd, var[a])
+ rd=dictappend(rd, ar)
if '_break' in r:
break
if 'check' in var[a]:
for c in var[a]['check']:
vrd['check']=c
- ar=applyrules(check_rules,vrd,var[a])
- rd=dictappend(rd,ar)
+ ar=applyrules(check_rules, vrd, var[a])
+ rd=dictappend(rd, ar)
if isinstance(rd['cleanupfrompyobj'], list):
rd['cleanupfrompyobj'].reverse()
if isinstance(rd['closepyobjfrom'], list):
@@ -1401,25 +1401,25 @@ def buildapi(rout):
'docsignopt':rd['docsignoptshort']}
))
if optargs=='':
- rd['docsignatureshort']=stripcomma(replace('#docsign#',{'docsign':rd['docsign']}))
+ rd['docsignatureshort']=stripcomma(replace('#docsign#', {'docsign':rd['docsign']}))
else:
rd['docsignatureshort']=replace('#docsign#[#docsignopt#]',
- {'docsign':rd['docsign'],
- 'docsignopt':optargs,
+ {'docsign': rd['docsign'],
+ 'docsignopt': optargs,
})
- rd['latexdocsignatureshort']=rd['docsignatureshort'].replace('_','\\_')
- rd['latexdocsignatureshort']=rd['latexdocsignatureshort'].replace(',',', ')
- cfs=stripcomma(replace('#callfortran##callfortranappend#',{'callfortran':rd['callfortran'],'callfortranappend':rd['callfortranappend']}))
+ rd['latexdocsignatureshort']=rd['docsignatureshort'].replace('_', '\\_')
+ rd['latexdocsignatureshort']=rd['latexdocsignatureshort'].replace(',', ', ')
+ cfs=stripcomma(replace('#callfortran##callfortranappend#', {'callfortran':rd['callfortran'],'callfortranappend':rd['callfortranappend']}))
if len(rd['callfortranappend'])>1:
- rd['callcompaqfortran']=stripcomma(replace('#callfortran# 0,#callfortranappend#',{'callfortran':rd['callfortran'],'callfortranappend':rd['callfortranappend']}))
+ rd['callcompaqfortran']=stripcomma(replace('#callfortran# 0,#callfortranappend#', {'callfortran':rd['callfortran'],'callfortranappend':rd['callfortranappend']}))
else:
rd['callcompaqfortran']=cfs
rd['callfortran']=cfs
if isinstance(rd['docreturn'], list):
- rd['docreturn']=stripcomma(replace('#docreturn#',{'docreturn':rd['docreturn']}))+' = '
+ rd['docreturn']=stripcomma(replace('#docreturn#', {'docreturn':rd['docreturn']}))+' = '
rd['docstrsigns']=[]
rd['latexdocstrsigns']=[]
- for k in ['docstrreq','docstropt','docstrout','docstrcbs']:
+ for k in ['docstrreq', 'docstropt', 'docstrout', 'docstrcbs']:
if k in rd and isinstance(rd[k], list):
rd['docstrsigns']=rd['docstrsigns']+rd[k]
k='latex'+k
@@ -1434,15 +1434,15 @@ def buildapi(rout):
if isinstance(argformat, list):
argformat.append('|')
else:
- assert isinstance(argformat, str),repr((argformat, type(argformat)))
+ assert isinstance(argformat, str), repr((argformat, type(argformat)))
rd['argformat'] += '|'
- ar=applyrules(routine_rules,rd)
+ ar=applyrules(routine_rules, rd)
if ismoduleroutine(rout):
outmess('\t\t\t %s\n'%(ar['docshort']))
else:
outmess('\t\t %s\n'%(ar['docshort']))
- return ar,wrap
+ return ar, wrap
#################### EOF rules.py #######################
diff --git a/numpy/f2py/setup.py b/numpy/f2py/setup.py
index 96a047ec7..2f1fd6a01 100644
--- a/numpy/f2py/setup.py
+++ b/numpy/f2py/setup.py
@@ -48,10 +48,10 @@ def configuration(parent_package='',top_path=None):
f2py_exe = f2py_exe[:-4] + '.py'
if 'bdist_wininst' in sys.argv and f2py_exe[-3:] != '.py':
f2py_exe = f2py_exe + '.py'
- target = os.path.join(build_dir,f2py_exe)
- if newer(__file__,target):
+ target = os.path.join(build_dir, f2py_exe)
+ if newer(__file__, target):
log.info('Creating %s', target)
- f = open(target,'w')
+ f = open(target, 'w')
f.write('''\
#!%s
# See http://cens.ioc.ee/projects/f2py2e/
@@ -91,7 +91,7 @@ if __name__ == "__main__":
config = configuration(top_path='')
version = config.get_version()
- print('F2PY Version',version)
+ print('F2PY Version', version)
config = config.todict()
if sys.version[:3]>='2.3':
@@ -125,5 +125,5 @@ wrapping Fortran 77/90/95 subroutines, accessing common blocks from
Python, and calling Python functions from Fortran (call-backs).
Interfacing subroutines/data from Fortran 90/95 modules is supported.""",
url = "http://cens.ioc.ee/projects/f2py2e/",
- keywords = ['Fortran','f2py'],
+ keywords = ['Fortran', 'f2py'],
**config)
diff --git a/numpy/f2py/tests/test_array_from_pyobj.py b/numpy/f2py/tests/test_array_from_pyobj.py
index 6707e8d8b..09d613293 100644
--- a/numpy/f2py/tests/test_array_from_pyobj.py
+++ b/numpy/f2py/tests/test_array_from_pyobj.py
@@ -8,7 +8,7 @@ import copy
import nose
from numpy.testing import *
-from numpy import array, alltrue, ndarray, asarray, can_cast,zeros, dtype
+from numpy import array, alltrue, ndarray, asarray, can_cast, zeros, dtype
from numpy.core.multiarray import typeinfo
import util
@@ -44,12 +44,12 @@ def flags_info(arr):
def flags2names(flags):
info = []
- for flagname in ['CONTIGUOUS','FORTRAN','OWNDATA','ENSURECOPY',
- 'ENSUREARRAY','ALIGNED','NOTSWAPPED','WRITEABLE',
- 'UPDATEIFCOPY','BEHAVED','BEHAVED_RO',
- 'CARRAY','FARRAY'
+ for flagname in ['CONTIGUOUS', 'FORTRAN', 'OWNDATA', 'ENSURECOPY',
+ 'ENSUREARRAY', 'ALIGNED', 'NOTSWAPPED', 'WRITEABLE',
+ 'UPDATEIFCOPY', 'BEHAVED', 'BEHAVED_RO',
+ 'CARRAY', 'FARRAY'
]:
- if abs(flags) & getattr(wrap,flagname, 0):
+ if abs(flags) & getattr(wrap, flagname, 0):
info.append(flagname)
return info
@@ -61,9 +61,9 @@ class Intent(object):
if i=='optional':
flags |= wrap.F2PY_OPTIONAL
else:
- flags |= getattr(wrap,'F2PY_INTENT_'+i.upper())
+ flags |= getattr(wrap, 'F2PY_INTENT_'+i.upper())
self.flags = flags
- def __getattr__(self,name):
+ def __getattr__(self, name):
name = name.lower()
if name=='in_': name='in'
return self.__class__(self.intent_list+[name])
@@ -82,9 +82,9 @@ class Intent(object):
intent = Intent()
class Type(object):
- _type_names = ['BOOL','BYTE','UBYTE','SHORT','USHORT','INT','UINT',
- 'LONG','ULONG','LONGLONG','ULONGLONG',
- 'FLOAT','DOUBLE','LONGDOUBLE','CFLOAT','CDOUBLE',
+ _type_names = ['BOOL', 'BYTE', 'UBYTE', 'SHORT', 'USHORT', 'INT', 'UINT',
+ 'LONG', 'ULONG', 'LONGLONG', 'ULONGLONG',
+ 'FLOAT', 'DOUBLE', 'LONGDOUBLE', 'CFLOAT', 'CDOUBLE',
'CLONGDOUBLE']
_type_cache = {}
@@ -93,10 +93,10 @@ class Type(object):
_cast_dict['UBYTE'] = _cast_dict['BOOL'] + ['UBYTE']
_cast_dict['BYTE'] = ['BYTE']
_cast_dict['UBYTE'] = ['UBYTE']
- _cast_dict['SHORT'] = _cast_dict['BYTE'] + ['UBYTE','SHORT']
- _cast_dict['USHORT'] = _cast_dict['UBYTE'] + ['BYTE','USHORT']
- _cast_dict['INT'] = _cast_dict['SHORT'] + ['USHORT','INT']
- _cast_dict['UINT'] = _cast_dict['USHORT'] + ['SHORT','UINT']
+ _cast_dict['SHORT'] = _cast_dict['BYTE'] + ['UBYTE', 'SHORT']
+ _cast_dict['USHORT'] = _cast_dict['UBYTE'] + ['BYTE', 'USHORT']
+ _cast_dict['INT'] = _cast_dict['SHORT'] + ['USHORT', 'INT']
+ _cast_dict['UINT'] = _cast_dict['USHORT'] + ['SHORT', 'UINT']
_cast_dict['LONG'] = _cast_dict['INT'] + ['LONG']
_cast_dict['ULONG'] = _cast_dict['UINT'] + ['ULONG']
@@ -104,24 +104,24 @@ class Type(object):
_cast_dict['LONGLONG'] = _cast_dict['LONG'] + ['LONGLONG']
_cast_dict['ULONGLONG'] = _cast_dict['ULONG'] + ['ULONGLONG']
- _cast_dict['FLOAT'] = _cast_dict['SHORT'] + ['USHORT','FLOAT']
- _cast_dict['DOUBLE'] = _cast_dict['INT'] + ['UINT','FLOAT','DOUBLE']
- _cast_dict['LONGDOUBLE'] = _cast_dict['LONG'] + ['ULONG','FLOAT','DOUBLE','LONGDOUBLE']
+ _cast_dict['FLOAT'] = _cast_dict['SHORT'] + ['USHORT', 'FLOAT']
+ _cast_dict['DOUBLE'] = _cast_dict['INT'] + ['UINT', 'FLOAT', 'DOUBLE']
+ _cast_dict['LONGDOUBLE'] = _cast_dict['LONG'] + ['ULONG', 'FLOAT', 'DOUBLE', 'LONGDOUBLE']
_cast_dict['CFLOAT'] = _cast_dict['FLOAT'] + ['CFLOAT']
- _cast_dict['CDOUBLE'] = _cast_dict['DOUBLE'] + ['CFLOAT','CDOUBLE']
- _cast_dict['CLONGDOUBLE'] = _cast_dict['LONGDOUBLE'] + ['CFLOAT','CDOUBLE','CLONGDOUBLE']
+ _cast_dict['CDOUBLE'] = _cast_dict['DOUBLE'] + ['CFLOAT', 'CDOUBLE']
+ _cast_dict['CLONGDOUBLE'] = _cast_dict['LONGDOUBLE'] + ['CFLOAT', 'CDOUBLE', 'CLONGDOUBLE']
- def __new__(cls,name):
- if isinstance(name,dtype):
+ def __new__(cls, name):
+ if isinstance(name, dtype):
dtype0 = name
name = None
- for n,i in typeinfo.items():
- if isinstance(i,tuple) and dtype0.type is i[-1]:
+ for n, i in typeinfo.items():
+ if isinstance(i, tuple) and dtype0.type is i[-1]:
name = n
break
- obj = cls._type_cache.get(name.upper(),None)
+ obj = cls._type_cache.get(name.upper(), None)
if obj is not None:
return obj
obj = object.__new__(cls)
@@ -129,10 +129,10 @@ class Type(object):
cls._type_cache[name.upper()] = obj
return obj
- def _init(self,name):
+ def _init(self, name):
self.NAME = name.upper()
- self.type_num = getattr(wrap,'NPY_'+self.NAME)
- assert_equal(self.type_num,typeinfo[self.NAME][1])
+ self.type_num = getattr(wrap, 'NPY_'+self.NAME)
+ assert_equal(self.type_num, typeinfo[self.NAME][1])
self.dtype = typeinfo[self.NAME][-1]
self.elsize = typeinfo[self.NAME][2] / 8
self.dtypechar = typeinfo[self.NAME][0]
@@ -169,7 +169,7 @@ class Type(object):
return types
class Array(object):
- def __init__(self,typ,dims,intent,obj):
+ def __init__(self, typ, dims, intent, obj):
self.type = typ
self.dims = dims
self.intent = intent
@@ -177,16 +177,16 @@ class Array(object):
self.obj = obj
# arr.dtypechar may be different from typ.dtypechar
- self.arr = wrap.call(typ.type_num,dims,intent.flags,obj)
+ self.arr = wrap.call(typ.type_num, dims, intent.flags, obj)
- assert_(isinstance(self.arr, ndarray),repr(type(self.arr)))
+ assert_(isinstance(self.arr, ndarray), repr(type(self.arr)))
self.arr_attr = wrap.array_attrs(self.arr)
if len(dims)>1:
if self.intent.is_intent('c'):
assert_(intent.flags & wrap.F2PY_INTENT_C)
- assert_(not self.arr.flags['FORTRAN'],repr((self.arr.flags,getattr(obj,'flags',None))))
+ assert_(not self.arr.flags['FORTRAN'], repr((self.arr.flags, getattr(obj, 'flags', None))))
assert_(self.arr.flags['CONTIGUOUS'])
assert_(not self.arr_attr[6] & wrap.FORTRAN)
else:
@@ -201,14 +201,14 @@ class Array(object):
return
if intent.is_intent('cache'):
- assert_(isinstance(obj,ndarray),repr(type(obj)))
+ assert_(isinstance(obj, ndarray), repr(type(obj)))
self.pyarr = array(obj).reshape(*dims).copy()
else:
self.pyarr = array(array(obj,
dtype = typ.dtypechar).reshape(*dims),
order=self.intent.is_intent('c') and 'C' or 'F')
assert_(self.pyarr.dtype == typ, \
- repr((self.pyarr.dtype,typ)))
+ repr((self.pyarr.dtype, typ)))
assert_(self.pyarr.flags['OWNDATA'], (obj, intent))
self.pyarr_attr = wrap.array_attrs(self.pyarr)
@@ -227,26 +227,26 @@ class Array(object):
assert_(self.arr_attr[2]==self.pyarr_attr[2]) # dimensions
if self.arr_attr[1]<=1:
assert_(self.arr_attr[3]==self.pyarr_attr[3],\
- repr((self.arr_attr[3],self.pyarr_attr[3],self.arr.tostring(),self.pyarr.tostring()))) # strides
+ repr((self.arr_attr[3], self.pyarr_attr[3], self.arr.tostring(), self.pyarr.tostring()))) # strides
assert_(self.arr_attr[5][-2:]==self.pyarr_attr[5][-2:],\
- repr((self.arr_attr[5],self.pyarr_attr[5]))) # descr
+ repr((self.arr_attr[5], self.pyarr_attr[5]))) # descr
assert_(self.arr_attr[6]==self.pyarr_attr[6],\
- repr((self.arr_attr[6],self.pyarr_attr[6],flags2names(0*self.arr_attr[6]-self.pyarr_attr[6]),flags2names(self.arr_attr[6]),intent))) # flags
+ repr((self.arr_attr[6], self.pyarr_attr[6], flags2names(0*self.arr_attr[6]-self.pyarr_attr[6]), flags2names(self.arr_attr[6]), intent))) # flags
if intent.is_intent('cache'):
assert_(self.arr_attr[5][3]>=self.type.elsize,\
- repr((self.arr_attr[5][3],self.type.elsize)))
+ repr((self.arr_attr[5][3], self.type.elsize)))
else:
assert_(self.arr_attr[5][3]==self.type.elsize,\
- repr((self.arr_attr[5][3],self.type.elsize)))
- assert_(self.arr_equal(self.pyarr,self.arr))
+ repr((self.arr_attr[5][3], self.type.elsize)))
+ assert_(self.arr_equal(self.pyarr, self.arr))
- if isinstance(self.obj,ndarray):
+ if isinstance(self.obj, ndarray):
if typ.elsize==Type(obj.dtype).elsize:
if not intent.is_intent('copy') and self.arr_attr[1]<=1:
assert_(self.has_shared_memory())
- def arr_equal(self,arr1,arr2):
+ def arr_equal(self, arr1, arr2):
if arr1.shape != arr2.shape:
return False
s = arr1==arr2
@@ -260,7 +260,7 @@ class Array(object):
"""
if self.obj is self.arr:
return True
- if not isinstance(self.obj,ndarray):
+ if not isinstance(self.obj, ndarray):
return False
obj_attr = wrap.array_attrs(self.obj)
return obj_attr[0]==self.arr_attr[0]
@@ -269,36 +269,36 @@ class Array(object):
class test_intent(unittest.TestCase):
def test_in_out(self):
- assert_equal(str(intent.in_.out),'intent(in,out)')
+ assert_equal(str(intent.in_.out), 'intent(in,out)')
assert_(intent.in_.c.is_intent('c'))
assert_(not intent.in_.c.is_intent_exact('c'))
- assert_(intent.in_.c.is_intent_exact('c','in'))
- assert_(intent.in_.c.is_intent_exact('in','c'))
+ assert_(intent.in_.c.is_intent_exact('c', 'in'))
+ assert_(intent.in_.c.is_intent_exact('in', 'c'))
assert_(not intent.in_.is_intent('c'))
class _test_shared_memory:
- num2seq = [1,2]
- num23seq = [[1,2,3],[4,5,6]]
+ num2seq = [1, 2]
+ num23seq = [[1, 2, 3], [4, 5, 6]]
def test_in_from_2seq(self):
- a = self.array([2],intent.in_,self.num2seq)
+ a = self.array([2], intent.in_, self.num2seq)
assert_(not a.has_shared_memory())
def test_in_from_2casttype(self):
for t in self.type.cast_types():
- obj = array(self.num2seq,dtype=t.dtype)
- a = self.array([len(self.num2seq)],intent.in_,obj)
+ obj = array(self.num2seq, dtype=t.dtype)
+ a = self.array([len(self.num2seq)], intent.in_, obj)
if t.elsize==self.type.elsize:
- assert_(a.has_shared_memory(),repr((self.type.dtype,t.dtype)))
+ assert_(a.has_shared_memory(), repr((self.type.dtype, t.dtype)))
else:
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_inout_2seq(self):
- obj = array(self.num2seq,dtype=self.type.dtype)
- a = self.array([len(self.num2seq)],intent.inout,obj)
+ obj = array(self.num2seq, dtype=self.type.dtype)
+ a = self.array([len(self.num2seq)], intent.inout, obj)
assert_(a.has_shared_memory())
try:
- a = self.array([2],intent.in_.inout,self.num2seq)
+ a = self.array([2], intent.in_.inout, self.num2seq)
except TypeError as msg:
if not str(msg).startswith('failed to initialize intent(inout|inplace|cache) array'):
raise
@@ -306,15 +306,15 @@ class _test_shared_memory:
raise SystemError('intent(inout) should have failed on sequence')
def test_f_inout_23seq(self):
- obj = array(self.num23seq,dtype=self.type.dtype,order='F')
- shape = (len(self.num23seq),len(self.num23seq[0]))
- a = self.array(shape,intent.in_.inout,obj)
+ obj = array(self.num23seq, dtype=self.type.dtype, order='F')
+ shape = (len(self.num23seq), len(self.num23seq[0]))
+ a = self.array(shape, intent.in_.inout, obj)
assert_(a.has_shared_memory())
- obj = array(self.num23seq,dtype=self.type.dtype,order='C')
- shape = (len(self.num23seq),len(self.num23seq[0]))
+ obj = array(self.num23seq, dtype=self.type.dtype, order='C')
+ shape = (len(self.num23seq), len(self.num23seq[0]))
try:
- a = self.array(shape,intent.in_.inout,obj)
+ a = self.array(shape, intent.in_.inout, obj)
except ValueError as msg:
if not str(msg).startswith('failed to initialize intent(inout) array'):
raise
@@ -322,84 +322,84 @@ class _test_shared_memory:
raise SystemError('intent(inout) should have failed on improper array')
def test_c_inout_23seq(self):
- obj = array(self.num23seq,dtype=self.type.dtype)
- shape = (len(self.num23seq),len(self.num23seq[0]))
- a = self.array(shape,intent.in_.c.inout,obj)
+ obj = array(self.num23seq, dtype=self.type.dtype)
+ shape = (len(self.num23seq), len(self.num23seq[0]))
+ a = self.array(shape, intent.in_.c.inout, obj)
assert_(a.has_shared_memory())
def test_in_copy_from_2casttype(self):
for t in self.type.cast_types():
- obj = array(self.num2seq,dtype=t.dtype)
- a = self.array([len(self.num2seq)],intent.in_.copy,obj)
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ obj = array(self.num2seq, dtype=t.dtype)
+ a = self.array([len(self.num2seq)], intent.in_.copy, obj)
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_c_in_from_23seq(self):
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_,self.num23seq)
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_, self.num23seq)
assert_(not a.has_shared_memory())
def test_in_from_23casttype(self):
for t in self.type.cast_types():
- obj = array(self.num23seq,dtype=t.dtype)
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_,obj)
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ obj = array(self.num23seq, dtype=t.dtype)
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_, obj)
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_f_in_from_23casttype(self):
for t in self.type.cast_types():
- obj = array(self.num23seq,dtype=t.dtype,order='F')
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_,obj)
+ obj = array(self.num23seq, dtype=t.dtype, order='F')
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_, obj)
if t.elsize==self.type.elsize:
- assert_(a.has_shared_memory(),repr(t.dtype))
+ assert_(a.has_shared_memory(), repr(t.dtype))
else:
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_c_in_from_23casttype(self):
for t in self.type.cast_types():
- obj = array(self.num23seq,dtype=t.dtype)
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_.c,obj)
+ obj = array(self.num23seq, dtype=t.dtype)
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_.c, obj)
if t.elsize==self.type.elsize:
- assert_(a.has_shared_memory(),repr(t.dtype))
+ assert_(a.has_shared_memory(), repr(t.dtype))
else:
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_f_copy_in_from_23casttype(self):
for t in self.type.cast_types():
- obj = array(self.num23seq,dtype=t.dtype,order='F')
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_.copy,obj)
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ obj = array(self.num23seq, dtype=t.dtype, order='F')
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_.copy, obj)
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_c_copy_in_from_23casttype(self):
for t in self.type.cast_types():
- obj = array(self.num23seq,dtype=t.dtype)
- a = self.array([len(self.num23seq),len(self.num23seq[0])],
- intent.in_.c.copy,obj)
- assert_(not a.has_shared_memory(),repr(t.dtype))
+ obj = array(self.num23seq, dtype=t.dtype)
+ a = self.array([len(self.num23seq), len(self.num23seq[0])],
+ intent.in_.c.copy, obj)
+ assert_(not a.has_shared_memory(), repr(t.dtype))
def test_in_cache_from_2casttype(self):
for t in self.type.all_types():
if t.elsize != self.type.elsize:
continue
- obj = array(self.num2seq,dtype=t.dtype)
+ obj = array(self.num2seq, dtype=t.dtype)
shape = (len(self.num2seq),)
- a = self.array(shape,intent.in_.c.cache,obj)
- assert_(a.has_shared_memory(),repr(t.dtype))
+ a = self.array(shape, intent.in_.c.cache, obj)
+ assert_(a.has_shared_memory(), repr(t.dtype))
- a = self.array(shape,intent.in_.cache,obj)
- assert_(a.has_shared_memory(),repr(t.dtype))
+ a = self.array(shape, intent.in_.cache, obj)
+ assert_(a.has_shared_memory(), repr(t.dtype))
- obj = array(self.num2seq,dtype=t.dtype,order='F')
- a = self.array(shape,intent.in_.c.cache,obj)
- assert_(a.has_shared_memory(),repr(t.dtype))
+ obj = array(self.num2seq, dtype=t.dtype, order='F')
+ a = self.array(shape, intent.in_.c.cache, obj)
+ assert_(a.has_shared_memory(), repr(t.dtype))
- a = self.array(shape,intent.in_.cache,obj)
- assert_(a.has_shared_memory(),repr(t.dtype))
+ a = self.array(shape, intent.in_.cache, obj)
+ assert_(a.has_shared_memory(), repr(t.dtype))
try:
- a = self.array(shape,intent.in_.cache,obj[::-1])
+ a = self.array(shape, intent.in_.cache, obj[::-1])
except ValueError as msg:
if not str(msg).startswith('failed to initialize intent(cache) array'):
raise
@@ -409,10 +409,10 @@ class _test_shared_memory:
for t in self.type.all_types():
if t.elsize >= self.type.elsize:
continue
- obj = array(self.num2seq,dtype=t.dtype)
+ obj = array(self.num2seq, dtype=t.dtype)
shape = (len(self.num2seq),)
try:
- a = self.array(shape,intent.in_.cache,obj)
+ a = self.array(shape, intent.in_.cache, obj)
except ValueError as msg:
if not str(msg).startswith('failed to initialize intent(cache) array'):
raise
@@ -421,16 +421,16 @@ class _test_shared_memory:
def test_cache_hidden(self):
shape = (2,)
- a = self.array(shape,intent.cache.hide,None)
+ a = self.array(shape, intent.cache.hide, None)
assert_(a.arr.shape==shape)
- shape = (2,3)
- a = self.array(shape,intent.cache.hide,None)
+ shape = (2, 3)
+ a = self.array(shape, intent.cache.hide, None)
assert_(a.arr.shape==shape)
- shape = (-1,3)
+ shape = (-1, 3)
try:
- a = self.array(shape,intent.cache.hide,None)
+ a = self.array(shape, intent.cache.hide, None)
except ValueError as msg:
if not str(msg).startswith('failed to create intent(cache|hide)|optional array'):
raise
@@ -439,25 +439,25 @@ class _test_shared_memory:
def test_hidden(self):
shape = (2,)
- a = self.array(shape,intent.hide,None)
+ a = self.array(shape, intent.hide, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
- shape = (2,3)
- a = self.array(shape,intent.hide,None)
+ shape = (2, 3)
+ a = self.array(shape, intent.hide, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
assert_(a.arr.flags['FORTRAN'] and not a.arr.flags['CONTIGUOUS'])
- shape = (2,3)
- a = self.array(shape,intent.c.hide,None)
+ shape = (2, 3)
+ a = self.array(shape, intent.c.hide, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
assert_(not a.arr.flags['FORTRAN'] and a.arr.flags['CONTIGUOUS'])
- shape = (-1,3)
+ shape = (-1, 3)
try:
- a = self.array(shape,intent.hide,None)
+ a = self.array(shape, intent.hide, None)
except ValueError as msg:
if not str(msg).startswith('failed to create intent(cache|hide)|optional array'):
raise
@@ -466,48 +466,48 @@ class _test_shared_memory:
def test_optional_none(self):
shape = (2,)
- a = self.array(shape,intent.optional,None)
+ a = self.array(shape, intent.optional, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
- shape = (2,3)
- a = self.array(shape,intent.optional,None)
+ shape = (2, 3)
+ a = self.array(shape, intent.optional, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
assert_(a.arr.flags['FORTRAN'] and not a.arr.flags['CONTIGUOUS'])
- shape = (2,3)
- a = self.array(shape,intent.c.optional,None)
+ shape = (2, 3)
+ a = self.array(shape, intent.c.optional, None)
assert_(a.arr.shape==shape)
- assert_(a.arr_equal(a.arr,zeros(shape,dtype=self.type.dtype)))
+ assert_(a.arr_equal(a.arr, zeros(shape, dtype=self.type.dtype)))
assert_(not a.arr.flags['FORTRAN'] and a.arr.flags['CONTIGUOUS'])
def test_optional_from_2seq(self):
obj = self.num2seq
shape = (len(obj),)
- a = self.array(shape,intent.optional,obj)
+ a = self.array(shape, intent.optional, obj)
assert_(a.arr.shape==shape)
assert_(not a.has_shared_memory())
def test_optional_from_23seq(self):
obj = self.num23seq
- shape = (len(obj),len(obj[0]))
- a = self.array(shape,intent.optional,obj)
+ shape = (len(obj), len(obj[0]))
+ a = self.array(shape, intent.optional, obj)
assert_(a.arr.shape==shape)
assert_(not a.has_shared_memory())
- a = self.array(shape,intent.optional.c,obj)
+ a = self.array(shape, intent.optional.c, obj)
assert_(a.arr.shape==shape)
assert_(not a.has_shared_memory())
def test_inplace(self):
- obj = array(self.num23seq,dtype=self.type.dtype)
+ obj = array(self.num23seq, dtype=self.type.dtype)
assert_(not obj.flags['FORTRAN'] and obj.flags['CONTIGUOUS'])
shape = obj.shape
- a = self.array(shape,intent.inplace,obj)
- assert_(obj[1][2]==a.arr[1][2],repr((obj,a.arr)))
+ a = self.array(shape, intent.inplace, obj)
+ assert_(obj[1][2]==a.arr[1][2], repr((obj, a.arr)))
a.arr[1][2]=54
- assert_(obj[1][2]==a.arr[1][2]==array(54,dtype=self.type.dtype),repr((obj,a.arr)))
+ assert_(obj[1][2]==a.arr[1][2]==array(54, dtype=self.type.dtype), repr((obj, a.arr)))
assert_(a.arr is obj)
assert_(obj.flags['FORTRAN']) # obj attributes are changed inplace!
assert_(not obj.flags['CONTIGUOUS'])
@@ -516,15 +516,15 @@ class _test_shared_memory:
for t in self.type.cast_types():
if t is self.type:
continue
- obj = array(self.num23seq,dtype=t.dtype)
+ obj = array(self.num23seq, dtype=t.dtype)
assert_(obj.dtype.type==t.dtype)
assert_(obj.dtype.type is not self.type.dtype)
assert_(not obj.flags['FORTRAN'] and obj.flags['CONTIGUOUS'])
shape = obj.shape
- a = self.array(shape,intent.inplace,obj)
- assert_(obj[1][2]==a.arr[1][2],repr((obj,a.arr)))
+ a = self.array(shape, intent.inplace, obj)
+ assert_(obj[1][2]==a.arr[1][2], repr((obj, a.arr)))
a.arr[1][2]=54
- assert_(obj[1][2]==a.arr[1][2]==array(54,dtype=self.type.dtype),repr((obj,a.arr)))
+ assert_(obj[1][2]==a.arr[1][2]==array(54, dtype=self.type.dtype), repr((obj, a.arr)))
assert_(a.arr is obj)
assert_(obj.flags['FORTRAN']) # obj attributes are changed inplace!
assert_(not obj.flags['CONTIGUOUS'])
@@ -539,7 +539,7 @@ class test_%s_gen(unittest.TestCase,
def setUp(self):
self.type = Type(%r)
array = lambda self,dims,intent,obj: Array(Type(%r),dims,intent,obj)
-''' % (t,t,t))
+''' % (t, t, t))
if __name__ == "__main__":
setup()
diff --git a/numpy/f2py/tests/test_assumed_shape.py b/numpy/f2py/tests/test_assumed_shape.py
index 6c0ea9ebd..d6beaee63 100644
--- a/numpy/f2py/tests/test_assumed_shape.py
+++ b/numpy/f2py/tests/test_assumed_shape.py
@@ -20,17 +20,17 @@ class TestAssumedShapeSumExample(util.F2PyTest):
@dec.slow
def test_all(self):
- r = self.module.fsum([1,2])
- assert_(r==3,repr(r))
- r = self.module.sum([1,2])
- assert_(r==3,repr(r))
- r = self.module.sum_with_use([1,2])
- assert_(r==3,repr(r))
-
- r = self.module.mod.sum([1,2])
- assert_(r==3,repr(r))
- r = self.module.mod.fsum([1,2])
- assert_(r==3,repr(r))
+ r = self.module.fsum([1, 2])
+ assert_(r==3, repr(r))
+ r = self.module.sum([1, 2])
+ assert_(r==3, repr(r))
+ r = self.module.sum_with_use([1, 2])
+ assert_(r==3, repr(r))
+
+ r = self.module.mod.sum([1, 2])
+ assert_(r==3, repr(r))
+ r = self.module.mod.fsum([1, 2])
+ assert_(r==3, repr(r))
if __name__ == "__main__":
import nose
diff --git a/numpy/f2py/tests/test_callback.py b/numpy/f2py/tests/test_callback.py
index 7a7e8bc11..98a90a28c 100644
--- a/numpy/f2py/tests/test_callback.py
+++ b/numpy/f2py/tests/test_callback.py
@@ -74,24 +74,24 @@ cf2py intent(out) a
def check_function(self, name):
t = getattr(self.module, name)
r = t(lambda : 4)
- assert_( r==4,repr(r))
- r = t(lambda a:5,fun_extra_args=(6,))
- assert_( r==5,repr(r))
- r = t(lambda a:a,fun_extra_args=(6,))
- assert_( r==6,repr(r))
- r = t(lambda a:5+a,fun_extra_args=(7,))
- assert_( r==12,repr(r))
- r = t(lambda a:math.degrees(a),fun_extra_args=(math.pi,))
- assert_( r==180,repr(r))
- r = t(math.degrees,fun_extra_args=(math.pi,))
- assert_( r==180,repr(r))
+ assert_( r==4, repr(r))
+ r = t(lambda a:5, fun_extra_args=(6,))
+ assert_( r==5, repr(r))
+ r = t(lambda a:a, fun_extra_args=(6,))
+ assert_( r==6, repr(r))
+ r = t(lambda a:5+a, fun_extra_args=(7,))
+ assert_( r==12, repr(r))
+ r = t(lambda a:math.degrees(a), fun_extra_args=(math.pi,))
+ assert_( r==180, repr(r))
+ r = t(math.degrees, fun_extra_args=(math.pi,))
+ assert_( r==180, repr(r))
r = t(self.module.func, fun_extra_args=(6,))
- assert_( r==17,repr(r))
+ assert_( r==17, repr(r))
r = t(self.module.func0)
- assert_( r==11,repr(r))
+ assert_( r==11, repr(r))
r = t(self.module.func0._cpointer)
- assert_( r==11,repr(r))
+ assert_( r==11, repr(r))
class A(object):
def __call__(self):
return 7
@@ -99,9 +99,9 @@ cf2py intent(out) a
return 9
a = A()
r = t(a)
- assert_( r==7,repr(r))
+ assert_( r==7, repr(r))
r = t(a.mth)
- assert_( r==9,repr(r))
+ assert_( r==9, repr(r))
if __name__ == "__main__":
import nose
diff --git a/numpy/f2py/tests/test_kind.py b/numpy/f2py/tests/test_kind.py
index 493c06942..f96fbffdb 100644
--- a/numpy/f2py/tests/test_kind.py
+++ b/numpy/f2py/tests/test_kind.py
@@ -24,11 +24,11 @@ class TestKind(util.F2PyTest):
selectedintkind = self.module.selectedintkind
for i in range(40):
- assert_(selectedintkind(i) in [selected_int_kind(i),-1],\
+ assert_(selectedintkind(i) in [selected_int_kind(i), -1],\
'selectedintkind(%s): expected %r but got %r' % (i, selected_int_kind(i), selectedintkind(i)))
for i in range(20):
- assert_(selectedrealkind(i) in [selected_real_kind(i),-1],\
+ assert_(selectedrealkind(i) in [selected_real_kind(i), -1],\
'selectedrealkind(%s): expected %r but got %r' % (i, selected_real_kind(i), selectedrealkind(i)))
if __name__ == "__main__":
diff --git a/numpy/f2py/tests/test_return_character.py b/numpy/f2py/tests/test_return_character.py
index 213730008..0865d54b3 100644
--- a/numpy/f2py/tests/test_return_character.py
+++ b/numpy/f2py/tests/test_return_character.py
@@ -8,19 +8,19 @@ import util
class TestReturnCharacter(util.F2PyTest):
def check_function(self, t):
tname = t.__doc__.split()[0]
- if tname in ['t0','t1','s0','s1']:
+ if tname in ['t0', 't1', 's0', 's1']:
assert_( t(23)==asbytes('2'))
- r = t('ab');assert_( r==asbytes('a'),repr(r))
- r = t(array('ab'));assert_( r==asbytes('a'),repr(r))
- r = t(array(77,'u1'));assert_( r==asbytes('M'),repr(r))
+ r = t('ab');assert_( r==asbytes('a'), repr(r))
+ r = t(array('ab'));assert_( r==asbytes('a'), repr(r))
+ r = t(array(77, 'u1'));assert_( r==asbytes('M'), repr(r))
#assert_(_raises(ValueError, t, array([77,87])))
#assert_(_raises(ValueError, t, array(77)))
- elif tname in ['ts','ss']:
- assert_( t(23)==asbytes('23 '),repr(t(23)))
+ elif tname in ['ts', 'ss']:
+ assert_( t(23)==asbytes('23 '), repr(t(23)))
assert_( t('123456789abcdef')==asbytes('123456789a'))
- elif tname in ['t5','s5']:
- assert_( t(23)==asbytes('23 '),repr(t(23)))
- assert_( t('ab')==asbytes('ab '),repr(t('ab')))
+ elif tname in ['t5', 's5']:
+ assert_( t(23)==asbytes('23 '), repr(t(23)))
+ assert_( t('ab')==asbytes('ab '), repr(t('ab')))
assert_( t('123456789abcdef')==asbytes('12345'))
else:
raise NotImplementedError
diff --git a/numpy/f2py/tests/test_return_complex.py b/numpy/f2py/tests/test_return_complex.py
index f03416648..d144cecf1 100644
--- a/numpy/f2py/tests/test_return_complex.py
+++ b/numpy/f2py/tests/test_return_complex.py
@@ -8,7 +8,7 @@ import util
class TestReturnComplex(util.F2PyTest):
def check_function(self, t):
tname = t.__doc__.split()[0]
- if tname in ['t0','t8','s0','s8']:
+ if tname in ['t0', 't8', 's0', 's8']:
err = 1e-5
else:
err = 0.0
@@ -22,18 +22,18 @@ class TestReturnComplex(util.F2PyTest):
assert_( abs(t([234])-234.)<=err)
assert_( abs(t((234,))-234.)<=err)
assert_( abs(t(array(234))-234.)<=err)
- assert_( abs(t(array(23+4j,'F'))-(23+4j))<=err)
+ assert_( abs(t(array(23+4j, 'F'))-(23+4j))<=err)
assert_( abs(t(array([234]))-234.)<=err)
assert_( abs(t(array([[234]]))-234.)<=err)
- assert_( abs(t(array([234],'b'))+22.)<=err)
- assert_( abs(t(array([234],'h'))-234.)<=err)
- assert_( abs(t(array([234],'i'))-234.)<=err)
- assert_( abs(t(array([234],'l'))-234.)<=err)
- assert_( abs(t(array([234],'q'))-234.)<=err)
- assert_( abs(t(array([234],'f'))-234.)<=err)
- assert_( abs(t(array([234],'d'))-234.)<=err)
- assert_( abs(t(array([234+3j],'F'))-(234+3j))<=err)
- assert_( abs(t(array([234],'D'))-234.)<=err)
+ assert_( abs(t(array([234], 'b'))+22.)<=err)
+ assert_( abs(t(array([234], 'h'))-234.)<=err)
+ assert_( abs(t(array([234], 'i'))-234.)<=err)
+ assert_( abs(t(array([234], 'l'))-234.)<=err)
+ assert_( abs(t(array([234], 'q'))-234.)<=err)
+ assert_( abs(t(array([234], 'f'))-234.)<=err)
+ assert_( abs(t(array([234], 'd'))-234.)<=err)
+ assert_( abs(t(array([234+3j], 'F'))-(234+3j))<=err)
+ assert_( abs(t(array([234], 'D'))-234.)<=err)
#assert_raises(TypeError, t, array([234], 'a1'))
assert_raises(TypeError, t, 'abc')
@@ -46,7 +46,7 @@ class TestReturnComplex(util.F2PyTest):
try:
r = t(10**400)
- assert_( repr(r) in ['(inf+0j)','(Infinity+0j)'],repr(r))
+ assert_( repr(r) in ['(inf+0j)', '(Infinity+0j)'], repr(r))
except OverflowError:
pass
diff --git a/numpy/f2py/tests/test_return_integer.py b/numpy/f2py/tests/test_return_integer.py
index d19653f4d..056466208 100644
--- a/numpy/f2py/tests/test_return_integer.py
+++ b/numpy/f2py/tests/test_return_integer.py
@@ -7,7 +7,7 @@ import util
class TestReturnInteger(util.F2PyTest):
def check_function(self, t):
- assert_( t(123)==123,repr(t(123)))
+ assert_( t(123)==123, repr(t(123)))
assert_( t(123.6)==123)
assert_( t(long(123))==123)
assert_( t('123')==123)
@@ -17,13 +17,13 @@ class TestReturnInteger(util.F2PyTest):
assert_( t(array(123))==123)
assert_( t(array([123]))==123)
assert_( t(array([[123]]))==123)
- assert_( t(array([123],'b'))==123)
- assert_( t(array([123],'h'))==123)
- assert_( t(array([123],'i'))==123)
- assert_( t(array([123],'l'))==123)
- assert_( t(array([123],'B'))==123)
- assert_( t(array([123],'f'))==123)
- assert_( t(array([123],'d'))==123)
+ assert_( t(array([123], 'b'))==123)
+ assert_( t(array([123], 'h'))==123)
+ assert_( t(array([123], 'i'))==123)
+ assert_( t(array([123], 'l'))==123)
+ assert_( t(array([123], 'B'))==123)
+ assert_( t(array([123], 'f'))==123)
+ assert_( t(array([123], 'd'))==123)
#assert_raises(ValueError, t, array([123],'S3'))
assert_raises(ValueError, t, 'abc')
@@ -34,7 +34,7 @@ class TestReturnInteger(util.F2PyTest):
assert_raises(Exception, t, t)
assert_raises(Exception, t, {})
- if t.__doc__.split()[0] in ['t8','s8']:
+ if t.__doc__.split()[0] in ['t8', 's8']:
assert_raises(OverflowError, t, 100000000000000000000000)
assert_raises(OverflowError, t, 10000000011111111111111.23)
diff --git a/numpy/f2py/tests/test_return_logical.py b/numpy/f2py/tests/test_return_logical.py
index 3823e5642..82f86b67f 100644
--- a/numpy/f2py/tests/test_return_logical.py
+++ b/numpy/f2py/tests/test_return_logical.py
@@ -7,8 +7,8 @@ import util
class TestReturnLogical(util.F2PyTest):
def check_function(self, t):
- assert_( t(True)==1,repr(t(True)))
- assert_( t(False)==0,repr(t(False)))
+ assert_( t(True)==1, repr(t(True)))
+ assert_( t(False)==0, repr(t(False)))
assert_( t(0)==0)
assert_( t(None)==0)
assert_( t(0.0)==0)
@@ -32,20 +32,20 @@ class TestReturnLogical(util.F2PyTest):
assert_( t(array(234))==1)
assert_( t(array([234]))==1)
assert_( t(array([[234]]))==1)
- assert_( t(array([234],'b'))==1)
- assert_( t(array([234],'h'))==1)
- assert_( t(array([234],'i'))==1)
- assert_( t(array([234],'l'))==1)
- assert_( t(array([234],'f'))==1)
- assert_( t(array([234],'d'))==1)
- assert_( t(array([234+3j],'F'))==1)
- assert_( t(array([234],'D'))==1)
+ assert_( t(array([234], 'b'))==1)
+ assert_( t(array([234], 'h'))==1)
+ assert_( t(array([234], 'i'))==1)
+ assert_( t(array([234], 'l'))==1)
+ assert_( t(array([234], 'f'))==1)
+ assert_( t(array([234], 'd'))==1)
+ assert_( t(array([234+3j], 'F'))==1)
+ assert_( t(array([234], 'D'))==1)
assert_( t(array(0))==0)
assert_( t(array([0]))==0)
assert_( t(array([[0]]))==0)
assert_( t(array([0j]))==0)
assert_( t(array([1]))==1)
- assert_raises(ValueError, t, array([0,0]))
+ assert_raises(ValueError, t, array([0, 0]))
class TestF77ReturnLogical(TestReturnLogical):
diff --git a/numpy/f2py/tests/test_return_real.py b/numpy/f2py/tests/test_return_real.py
index 3286e11f2..f9a09f620 100644
--- a/numpy/f2py/tests/test_return_real.py
+++ b/numpy/f2py/tests/test_return_real.py
@@ -8,7 +8,7 @@ import util
class TestReturnReal(util.F2PyTest):
def check_function(self, t):
- if t.__doc__.split()[0] in ['t0','t4','s0','s4']:
+ if t.__doc__.split()[0] in ['t0', 't4', 's0', 's4']:
err = 1e-5
else:
err = 0.0
@@ -23,14 +23,14 @@ class TestReturnReal(util.F2PyTest):
assert_( abs(t(array(234))-234.)<=err)
assert_( abs(t(array([234]))-234.)<=err)
assert_( abs(t(array([[234]]))-234.)<=err)
- assert_( abs(t(array([234],'b'))+22)<=err)
- assert_( abs(t(array([234],'h'))-234.)<=err)
- assert_( abs(t(array([234],'i'))-234.)<=err)
- assert_( abs(t(array([234],'l'))-234.)<=err)
- assert_( abs(t(array([234],'B'))-234.)<=err)
- assert_( abs(t(array([234],'f'))-234.)<=err)
- assert_( abs(t(array([234],'d'))-234.)<=err)
- if t.__doc__.split()[0] in ['t0','t4','s0','s4']:
+ assert_( abs(t(array([234], 'b'))+22)<=err)
+ assert_( abs(t(array([234], 'h'))-234.)<=err)
+ assert_( abs(t(array([234], 'i'))-234.)<=err)
+ assert_( abs(t(array([234], 'l'))-234.)<=err)
+ assert_( abs(t(array([234], 'B'))-234.)<=err)
+ assert_( abs(t(array([234], 'f'))-234.)<=err)
+ assert_( abs(t(array([234], 'd'))-234.)<=err)
+ if t.__doc__.split()[0] in ['t0', 't4', 's0', 's4']:
assert_( t(1e200)==t(1e300)) # inf
#assert_raises(ValueError, t, array([234], 'S1'))
@@ -44,7 +44,7 @@ class TestReturnReal(util.F2PyTest):
try:
r = t(10**400)
- assert_( repr(r) in ['inf','Infinity'],repr(r))
+ assert_( repr(r) in ['inf', 'Infinity'], repr(r))
except OverflowError:
pass
diff --git a/numpy/f2py/tests/test_size.py b/numpy/f2py/tests/test_size.py
index 6cc508a19..e4f21b519 100644
--- a/numpy/f2py/tests/test_size.py
+++ b/numpy/f2py/tests/test_size.py
@@ -17,30 +17,30 @@ class TestSizeSumExample(util.F2PyTest):
@dec.slow
def test_all(self):
- r = self.module.foo([[1,2]])
- assert_equal(r, [3],repr(r))
+ r = self.module.foo([[1, 2]])
+ assert_equal(r, [3], repr(r))
- r = self.module.foo([[1,2],[3,4]])
- assert_equal(r, [3,7],repr(r))
+ r = self.module.foo([[1, 2], [3, 4]])
+ assert_equal(r, [3, 7], repr(r))
- r = self.module.foo([[1,2],[3,4],[5,6]])
- assert_equal(r, [3,7,11],repr(r))
+ r = self.module.foo([[1, 2], [3, 4], [5, 6]])
+ assert_equal(r, [3, 7, 11], repr(r))
@dec.slow
def test_transpose(self):
- r = self.module.trans([[1,2]])
- assert_equal(r, [[1],[2]],repr(r))
+ r = self.module.trans([[1, 2]])
+ assert_equal(r, [[1], [2]], repr(r))
- r = self.module.trans([[1,2,3],[4,5,6]])
- assert_equal(r, [[1,4],[2,5],[3,6]],repr(r))
+ r = self.module.trans([[1, 2, 3], [4, 5, 6]])
+ assert_equal(r, [[1, 4], [2, 5], [3, 6]], repr(r))
@dec.slow
def test_flatten(self):
- r = self.module.flatten([[1,2]])
- assert_equal(r, [1,2],repr(r))
+ r = self.module.flatten([[1, 2]])
+ assert_equal(r, [1, 2], repr(r))
- r = self.module.flatten([[1,2,3],[4,5,6]])
- assert_equal(r, [1,2,3,4,5,6],repr(r))
+ r = self.module.flatten([[1, 2, 3], [4, 5, 6]])
+ assert_equal(r, [1, 2, 3, 4, 5, 6], repr(r))
if __name__ == "__main__":
import nose
diff --git a/numpy/f2py/use_rules.py b/numpy/f2py/use_rules.py
index 9a8054617..6fd72bd77 100644
--- a/numpy/f2py/use_rules.py
+++ b/numpy/f2py/use_rules.py
@@ -53,7 +53,7 @@ capi_fail:
################
-def buildusevars(m,r):
+def buildusevars(m, r):
ret={}
outmess('\t\tBuilding use variable hooks for module "%s" (feature only for F90/F95)...\n'%(m['name']))
varsmap={}
@@ -61,7 +61,7 @@ def buildusevars(m,r):
if 'map' in r:
for k in r['map'].keys():
if r['map'][k] in revmap:
- outmess('\t\t\tVariable "%s<=%s" is already mapped by "%s". Skipping.\n'%(r['map'][k],k,revmap[r['map'][k]]))
+ outmess('\t\t\tVariable "%s<=%s" is already mapped by "%s". Skipping.\n'%(r['map'][k], k, revmap[r['map'][k]]))
else:
revmap[r['map'][k]]=k
if 'only' in r and r['only']:
@@ -71,9 +71,9 @@ def buildusevars(m,r):
if revmap[r['map'][v]]==v:
varsmap[v]=r['map'][v]
else:
- outmess('\t\t\tIgnoring map "%s=>%s". See above.\n'%(v,r['map'][v]))
+ outmess('\t\t\tIgnoring map "%s=>%s". See above.\n'%(v, r['map'][v]))
else:
- outmess('\t\t\tNo definition for variable "%s=>%s". Skipping.\n'%(v,r['map'][v]))
+ outmess('\t\t\tNo definition for variable "%s=>%s". Skipping.\n'%(v, r['map'][v]))
else:
for v in m['vars'].keys():
if v in revmap:
@@ -81,29 +81,29 @@ def buildusevars(m,r):
else:
varsmap[v]=v
for v in varsmap.keys():
- ret=dictappend(ret,buildusevar(v,varsmap[v],m['vars'],m['name']))
+ ret=dictappend(ret, buildusevar(v, varsmap[v], m['vars'], m['name']))
return ret
-def buildusevar(name,realname,vars,usemodulename):
- outmess('\t\t\tConstructing wrapper function for variable "%s=>%s"...\n'%(name,realname))
+def buildusevar(name, realname, vars, usemodulename):
+ outmess('\t\t\tConstructing wrapper function for variable "%s=>%s"...\n'%(name, realname))
ret={}
vrd={'name':name,
'realname':realname,
'REALNAME':realname.upper(),
'usemodulename':usemodulename,
'USEMODULENAME':usemodulename.upper(),
- 'texname':name.replace('_','\\_'),
- 'begintitle':gentitle('%s=>%s'%(name,realname)),
- 'endtitle':gentitle('end of %s=>%s'%(name,realname)),
- 'apiname':'#modulename#_use_%s_from_%s'%(realname,usemodulename)
+ 'texname':name.replace('_', '\\_'),
+ 'begintitle':gentitle('%s=>%s'%(name, realname)),
+ 'endtitle':gentitle('end of %s=>%s'%(name, realname)),
+ 'apiname':'#modulename#_use_%s_from_%s'%(realname, usemodulename)
}
nummap={0:'Ro',1:'Ri',2:'Rii',3:'Riii',4:'Riv',5:'Rv',6:'Rvi',7:'Rvii',8:'Rviii',9:'Rix'}
vrd['texnamename']=name
for i in nummap.keys():
- vrd['texnamename']=vrd['texnamename'].replace(repr(i),nummap[i])
+ vrd['texnamename']=vrd['texnamename'].replace(repr(i), nummap[i])
if hasnote(vars[realname]): vrd['note']=vars[realname]['note']
- rd=dictappend({},vrd)
+ rd=dictappend({}, vrd)
var=vars[realname]
- print(name,realname,vars[realname])
- ret=applyrules(usemodule_rules,rd)
+ print(name, realname, vars[realname])
+ ret=applyrules(usemodule_rules, rd)
return ret