[Python-modules-commits] [fparser] 06/09: WIP more py3
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jul 28 10:45:31 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch dev-python3
in repository fparser.
commit 77fe2d7cab0150e38b099b286a13906c52760fba
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Tue Jul 25 18:49:38 2017 +0100
WIP more py3
---
src/fparser/Fortran2003.py | 57 +++++++++++++++++++-------------------
src/fparser/api.py | 14 +++++-----
src/fparser/base_classes.py | 39 +++++++++++++-------------
src/fparser/sourceinfo.py | 3 +-
src/fparser/splitline.py | 2 +-
src/fparser/typedecl_statements.py | 46 +++++++++++++++---------------
src/fparser/utils.py | 22 +++++++--------
7 files changed, 93 insertions(+), 90 deletions(-)
diff --git a/src/fparser/Fortran2003.py b/src/fparser/Fortran2003.py
index 461836e..660d266 100644
--- a/src/fparser/Fortran2003.py
+++ b/src/fparser/Fortran2003.py
@@ -69,11 +69,12 @@
# Original author: Pearu Peterson <pearu at cens.ioc.ee>
# First version created: Oct 2006
+from __future__ import print_function
import re
import logging
-from splitline import string_replace_map
-import pattern_tools as pattern
-from readfortran import FortranReaderBase
+from .splitline import string_replace_map
+from . import pattern_tools as pattern
+from .readfortran import FortranReaderBase
logger = logging.getLogger("fparser")
@@ -92,7 +93,7 @@ def show_result(func):
def new_func(cls, string, **kws):
r = func(cls, string, **kws)
if r is not None and isinstance(r, StmtBase):
- print '%s(%r) -> %r' % (cls.__name__, string, str(r))
+ print ('%s(%r) -> %r' % (cls.__name__, string, str(r)))
return r
return new_func
@@ -140,11 +141,11 @@ class Base(object):
# restore readers content when no match is found.
try:
result = cls.match(string)
- except NoMatchError, msg:
+ except NoMatchError as msg:
if str(msg)=='%s: %r' % (cls.__name__, string): # avoid recursion 1.
raise
- #print '__new__:result:',cls.__name__,`string,result`
+ #print '__new__:result:',cls.__name__,repr(string,result)
if isinstance(result, tuple):
obj = object.__new__(cls)
obj.string = string
@@ -160,17 +161,17 @@ class Base(object):
#print '%s:%s: %r' % (cls.__name__,subcls.__name__,string)
try:
obj = subcls(string, parent_cls = parent_cls)
- except NoMatchError, msg:
+ except NoMatchError as msg:
obj = None
if obj is not None:
return obj
else:
- raise AssertionError,`result`
+ raise AssertionError(repr(result))
errmsg = '%s: %r' % (cls.__name__, string)
#if isinstance(string, FortranReaderBase) and string.fifo_item:
# errmsg += ' while reaching %s' % (string.fifo_item[-1])
- raise NoMatchError, errmsg
+ raise NoMatchError(errmsg)
## def restore_reader(self):
## self._item.reader.put_item(self._item)
@@ -224,7 +225,7 @@ content : tuple
enable_select_type_construct_hook = False,
enable_case_construct_hook = False
):
- assert isinstance(reader,FortranReaderBase),`reader`
+ assert isinstance(reader,FortranReaderBase),repr(reader)
content = []
if startcls is not None:
try:
@@ -1870,7 +1871,7 @@ class Component_Decl(Base): # R442
if newline.startswith('='):
init = Component_Initialization(newline)
else:
- assert newline=='',`newline`
+ assert newline=='',repr(newline)
return name, array_spec, char_length, init
match = staticmethod(match)
def tostr(self):
@@ -2465,7 +2466,7 @@ class Entity_Decl(Base): # R504
elif newline:
return
else:
- assert newline=='',`newline, string`
+ assert newline=='',repr(newline, string)
return name, array_spec, char_length, init
match = staticmethod(match)
def tostr(self):
@@ -3188,7 +3189,7 @@ items : (Namelist_Group_Name, Namelist_Group_Object_List)-tuple
parts = line.split('/')
items = []
fst = parts.pop(0)
- assert not fst,`fst, parts`
+ assert not fst,repr((fst, parts))
while len(parts)>=2:
name,lst = parts[:2]
del parts[:2]
@@ -3197,7 +3198,7 @@ items : (Namelist_Group_Name, Namelist_Group_Object_List)-tuple
if lst.endswith(','):
lst = lst[:-1].rstrip()
items.append((Namelist_Group_Name(name),Namelist_Group_Object_List(lst)))
- assert not parts,`parts`
+ assert not parts,repr(parts)
return tuple(items)
def tostr(self):
@@ -3551,7 +3552,7 @@ class Allocate_Stmt(StmtBase): # R623
opts = None
if i!=-1:
j = line[:i].rfind(',')
- assert j!=-1,`i,j,line`
+ assert j!=-1,repr((i,j,line))
opts = Alloc_Opt_List(repmap(line[j+1:].lstrip()))
line = line[:j].rstrip()
return spec, Allocation_List(repmap(line)), opts
@@ -3694,7 +3695,7 @@ class Deallocate_Stmt(StmtBase): # R635
opts = None
if i!=-1:
j = line[:i].rfind(',')
- assert j!=-1,`i,j,line`
+ assert j!=-1,repr((i,j,line))
opts = Dealloc_Opt_List(repmap(line[j+1:].lstrip()))
line = line[:j].rstrip()
return Allocate_Object_List(repmap(line)), opts
@@ -3782,7 +3783,7 @@ class Defined_Op(STRINGBase): # R703, 723
subclass_names = []
def match(string):
if pattern.non_defined_binary_op.match(string):
- raise NoMatchError,'%s: %r' % (Defined_Unary_Op.__name__, string)
+ raise NoMatchError('%s: %r' % (Defined_Unary_Op.__name__, string))
return STRINGBase.match(pattern.abs_defined_op, string)
match = staticmethod(match)
@@ -4034,13 +4035,13 @@ class Pointer_Assignment_Stmt(StmtBase): # R735
l = repmap(lhs[i+1:-1].strip())
try:
return Data_Pointer_Object(o), Bounds_Spec_List(l), Data_Target(rhs)
- except NoMatchError, msg:
+ except NoMatchError as msg:
return Data_Pointer_Object(o), Bounds_Remapping_List(l), Data_Target(rhs)
else:
lhs = repmap(lhs)
try:
return Data_Pointer_Object(lhs), None, Data_Target(rhs)
- except NoMatchError, msg:
+ except NoMatchError as msg:
return Proc_Pointer_Object(lhs), None, Proc_Target(rhs)
def tostr(self):
@@ -5444,11 +5445,11 @@ items : (Io_Control_Spec_List, Format, Input_Item_List)
def tostr(self):
if self.items[0] is not None:
- assert self.items[1] is None,`self.items`
+ assert self.items[1] is None,repr(self.items)
if self.items[2] is None:
return 'READ(%s)' % (self.items[0])
return 'READ(%s) %s' % (self.items[0], self.items[2])
- assert self.items[1] is not None, `self.items`
+ assert self.items[1] is not None, repr(self.items)
if self.items[2] is None:
return 'READ %s' % (self.items[1])
return 'READ %s, %s' % (self.items[1], self.items[2])
@@ -5745,7 +5746,7 @@ items : (File_Unit_Number, Position_Spec_List)
def tostr(self):
if self.items[0] is not None:
- assert self.items[1] is None, `self.items`
+ assert self.items[1] is None, repr(self.items)
return 'BACKSPACE %s' % (self.items[0])
return 'BACKSPACE(%s)' % (self.items[1])
@@ -5773,7 +5774,7 @@ items : (File_Unit_Number, Position_Spec_List)
def tostr(self):
if self.items[0] is not None:
- assert self.items[1] is None, `self.items`
+ assert self.items[1] is None, repr(self.items)
return 'ENDFILE %s' % (self.items[0])
return 'ENDFILE(%s)' % (self.items[1])
@@ -5801,7 +5802,7 @@ items : (File_Unit_Number, Position_Spec_List)
def tostr(self):
if self.items[0] is not None:
- assert self.items[1] is None, `self.items`
+ assert self.items[1] is None, repr(self.items)
return 'REWIND %s' % (self.items[0])
return 'REWIND(%s)' % (self.items[1])
@@ -5853,7 +5854,7 @@ items : (File_Unit_Number, Position_Spec_List)
def tostr(self):
if self.items[0] is not None:
- assert self.items[1] is None, `self.items`
+ assert self.items[1] is None, repr(self.items)
return 'FLUSH %s' % (self.items[0])
return 'FLUSH(%s)' % (self.items[1])
@@ -5915,7 +5916,7 @@ items : (Inquire_Spec_List, Scalar_Int_Variable, Output_Item_List)
def tostr(self):
if self.items[0] is None:
- assert None not in self.items[1:],`self.items`
+ assert None not in self.items[1:],repr(self.items)
return 'INQUIRE(IOLENGTH=%s) %s' % (self.items[1:])
return 'INQUIRE(%s)' % (self.items[0])
@@ -6191,7 +6192,7 @@ class Data_Edit_Desc_C1002(Base):
if self.items[3] is None:
return '%s%s.%s' % (c, self.items[1], self.items[2])
return '%s%s.%sE%s' % (c, self.items[1], self.items[2], self.items[3])
- raise NotImpletenetedError,`c`
+ raise NotImpletenetedError(repr(c))
class Data_Edit_Desc(Base): # R1005
"""
@@ -6265,7 +6266,7 @@ class Data_Edit_Desc(Base): # R1005
return '%s%s' % (c, self.items[1])
else:
return '%s%s(%s)' % (c, self.items[1], self.items[2])
- raise NotImpletenetedError,`c`
+ raise NotImpletenetedError(repr(c))
class W(Base): # R1006
"""
diff --git a/src/fparser/api.py b/src/fparser/api.py
index 1c5d5b6..caf4c1b 100644
--- a/src/fparser/api.py
+++ b/src/fparser/api.py
@@ -72,13 +72,13 @@ Module content
__autodoc__ = ['get_reader', 'parse', 'walk']
-import Fortran2003
+from . import Fortran2003
# import all Statement classes:
-from base_classes import EndStatement, classes
-from block_statements import *
+from .base_classes import EndStatement, classes
+from .block_statements import *
# CHAR_BIT is used to convert object bit sizes to byte sizes
-from utils import CHAR_BIT
+from .utils import CHAR_BIT
def get_reader(input, isfree=None, isstrict=None, include_dirs = None, source_only = None,
ignore_comments = True):
@@ -115,7 +115,7 @@ def get_reader(input, isfree=None, isstrict=None, include_dirs = None, source_on
"""
import os
import re
- from readfortran import FortranFileReader, FortranStringReader
+ from .readfortran import FortranFileReader, FortranStringReader
if os.path.isfile(input):
name,ext = os.path.splitext(input)
if ext.lower() in ['.c']:
@@ -135,7 +135,7 @@ def get_reader(input, isfree=None, isstrict=None, include_dirs = None, source_on
elif isinstance(input, str):
reader = FortranStringReader(input, include_dirs = include_dirs, source_only = source_only)
else:
- raise TypeError,'Expected string or filename input but got %s' % (type(input))
+ raise TypeError('Expected string or filename input but got %s' % (type(input)))
if isfree is None: isfree = reader.isfree
if isstrict is None: isstrict = reader.isstrict
reader.set_mode(isfree, isstrict)
@@ -213,7 +213,7 @@ def parse(input, isfree=None, isstrict=None, include_dirs = None, source_only =
--------
get_reader
"""
- from parsefortran import FortranParser
+ from .parsefortran import FortranParser
reader = get_reader(input, isfree, isstrict, include_dirs, source_only)
parser = FortranParser(reader, ignore_comments = ignore_comments)
parser.parse()
diff --git a/src/fparser/base_classes.py b/src/fparser/base_classes.py
index 91c7a77..d4f97c5 100644
--- a/src/fparser/base_classes.py
+++ b/src/fparser/base_classes.py
@@ -73,10 +73,11 @@ import re
import sys
import copy
import logging
-from readfortran import Line, Comment
+from .readfortran import Line, Comment
from numpy.distutils.misc_util import yellow_text, red_text
-from utils import split_comma, specs_split_comma, is_int_literal_constant
-from utils import classes
+from .utils import split_comma, specs_split_comma, is_int_literal_constant
+from .utils import classes
+from functools import reduce
logger = logging.getLogger('fparser')
@@ -91,7 +92,7 @@ class AttributeHolder(object):
def __init__(self, **kws):
self._attributes = {}
self._readonly = []
- for k,v in kws.items():
+ for k,v in list(kws.items()):
self._attributes[k] = v
if callable(v):
self._readonly.append(k)
@@ -99,10 +100,10 @@ class AttributeHolder(object):
def __getattr__(self, name):
if name not in self._attributes:
- raise AttributeError,'%s instance has no attribute %r, '\
+ raise AttributeError('%s instance has no attribute %r, '\
'expected attributes: %s' \
% (self.__class__.__name__,name,
- ','.join(self._attributes.keys()))
+ ','.join(list(self._attributes.keys()))))
value = self._attributes[name]
if callable(value):
value = value()
@@ -114,16 +115,16 @@ class AttributeHolder(object):
self.__dict__[name] = value
return
if name in self._readonly:
- raise AttributeError,'%s instance attribute %r is readonly' \
- % (self.__class__.__name__, name)
+ raise AttributeError('%s instance attribute %r is readonly' \
+ % (self.__class__.__name__, name))
if name not in self._attributes:
- raise AttributeError,'%s instance has no attribute %r, '\
+ raise AttributeError('%s instance has no attribute %r, '\
'expected attributes: %s' \
- % (self.__class__.__name__,name,','.join(self._attributes.keys()))
+ % (self.__class__.__name__,name,','.join(list(self._attributes.keys()))))
self._attributes[name] = value
def isempty(self):
- for k in self._attributes.keys():
+ for k in list(self._attributes.keys()):
v = getattr(self,k)
if v: return False
return True
@@ -134,7 +135,7 @@ class AttributeHolder(object):
if depth==0: return tab + self.__class__.__name__
l = [self.__class__.__name__+':']
ttab = tab + ' '
- for k in self._attributes.keys():
+ for k in list(self._attributes.keys()):
v = getattr(self,k)
if v:
if isinstance(v,list):
@@ -147,7 +148,7 @@ class AttributeHolder(object):
def todict(self):
d = {}
- for k in self._attributes.keys():
+ for k in list(self._attributes.keys()):
v = getattr(self, k)
d[k] = v
return d
@@ -361,26 +362,26 @@ class Variable(object):
lattr = attr.lower()
uattr = attr.upper()
if lattr.startswith('dimension'):
- assert self.dimension is None, `self.dimension,attr`
+ assert self.dimension is None, repr(self.dimension,attr)
l = attr[9:].lstrip()
- assert l[0]+l[-1]=='()',`l`
+ assert l[0]+l[-1]=='()',repr(l)
self.set_dimension(split_comma(l[1:-1].strip(), self.parent.item))
continue
if lattr.startswith('intent'):
l = attr[6:].lstrip()
- assert l[0]+l[-1]=='()',`l`
+ assert l[0]+l[-1]=='()',repr(l)
self.set_intent(specs_split_comma(l[1:-1].strip(),
self.parent.item, upper=True))
continue
if lattr.startswith('bind'):
l = attr[4:].lstrip()
- assert l[0]+l[-1]=='()',`l`
+ assert l[0]+l[-1]=='()',repr(l)
self.bind = specs_split_comma(l[1:-1].strip(), self.parent.item,
upper = True)
continue
if lattr.startswith('check'):
l = attr[5:].lstrip()
- assert l[0]+l[-1]=='()',`l`
+ assert l[0]+l[-1]=='()',repr(l)
self.check.extend(split_comma(l[1:-1].strip(), self.parent.item))
continue
if uattr not in attributes:
@@ -746,7 +747,7 @@ class BeginStatement(Statement):
# TODO: FIX ME, Comment content is a string
self.content.append(classes.Comment(self, item))
else:
- raise NotImplementedError(`item`)
+ raise NotImplementedError(repr(item))
item = self.get_item()
if not end_flag:
diff --git a/src/fparser/sourceinfo.py b/src/fparser/sourceinfo.py
index 7622103..5adf0dc 100644
--- a/src/fparser/sourceinfo.py
+++ b/src/fparser/sourceinfo.py
@@ -75,6 +75,7 @@ Author: Pearu Peterson <pearu at cens.ioc.ee>
Created: May 2006
-----
"""
+from __future__ import print_function
__all__ = ['get_source_info', 'get_source_info_str']
@@ -169,7 +170,7 @@ def is_free_format(file):
def simple_main():
for filename in sys.argv[1:]:
isfree, isstrict = get_source_info(filename)
- print '%s: isfree=%s, isstrict=%s' % (filename, isfree, isstrict)
+ print ('%s: isfree=%s, isstrict=%s' % (filename, isfree, isstrict))
if __name__ == '__main__':
simple_main()
diff --git a/src/fparser/splitline.py b/src/fparser/splitline.py
index 9849aa1..751bab9 100644
--- a/src/fparser/splitline.py
+++ b/src/fparser/splitline.py
@@ -227,7 +227,7 @@ class LineSplitterBase(object):
def __iter__(self):
return self
- def next(self):
+ def __next__(self):
item = ''
while not item:
item = self.get_item() # get_item raises StopIteration
diff --git a/src/fparser/typedecl_statements.py b/src/fparser/typedecl_statements.py
index 3034278..6c0c87d 100644
--- a/src/fparser/typedecl_statements.py
+++ b/src/fparser/typedecl_statements.py
@@ -74,9 +74,9 @@ __all__ = ['Integer', 'Real', 'DoublePrecision', 'Complex', 'DoubleComplex',
import re
import string
-from base_classes import Statement, BeginStatement, EndStatement,\
+from .base_classes import Statement, BeginStatement, EndStatement,\
AttributeHolder, Variable
-from utils import split_comma, AnalyzeError, name_re, is_entity_decl, is_name, CHAR_BIT, parse_array_spec
+from .utils import split_comma, AnalyzeError, name_re, is_entity_decl, is_name, CHAR_BIT, parse_array_spec
# Intrinsic type specification statements
@@ -145,7 +145,7 @@ class TypeDeclarationStatement(Statement):
apply_map = item.apply_map
clsname = self.__class__.__name__.lower()
line = item.get_line()
- from block_statements import Function
+ from .block_statements import Function
if not line.lower().startswith(clsname):
i = 0
@@ -158,7 +158,7 @@ class TypeDeclarationStatement(Statement):
break
line = line[:i].replace(' ','') + line[i:]
- assert line.lower().startswith(clsname),`line,clsname`
+ assert line.lower().startswith(clsname),repr((line,clsname))
line = line[len(clsname):].lstrip()
if line.startswith('('):
@@ -221,12 +221,12 @@ class TypeDeclarationStatement(Statement):
if isinstance(self.parent, Function) \
and self.parent.name in self.entity_decls:
- assert self.parent.typedecl is None,`self.parent.typedecl`
+ assert self.parent.typedecl is None,repr(self.parent.typedecl)
self.parent.typedecl = self
self.ignore = True
if isinstance(self, Type):
self.name = self.selector[1].lower()
- assert is_name(self.name),`self.name`
+ assert is_name(self.name),repr(self.name)
else:
self.name = clsname
return
@@ -238,14 +238,14 @@ class TypeDeclarationStatement(Statement):
if selector.startswith('*'):
length = selector[1:].lstrip()
else:
- assert selector[0]+selector[-1]=='()',`selector`
+ assert selector[0]+selector[-1]=='()',repr(selector)
l = selector[1:-1].strip()
if l.lower().startswith('kind'):
l = l[4:].lstrip()
if l[0]+l[-1]=='()':
kind = 'kind'+l
else:
- assert l.startswith('='),`l`
+ assert l.startswith('='),repr(l)
kind = l[1:].lstrip()
else:
kind = l
@@ -269,13 +269,13 @@ class TypeDeclarationStatement(Statement):
l = selector[1:].lstrip()
if l.startswith('('):
if l.endswith(','): l = l[:-1].rstrip()
- assert l.endswith(')'),`l`
+ assert l.endswith(')'),repr(l)
l = l[1:-1].strip()
if l.lower().startswith('len'):
l = l[3:].lstrip()[1:].lstrip()
kind=''
else:
- assert selector[0]+selector[-1]=='()',`selector`
+ assert selector[0]+selector[-1]=='()',repr(selector)
l = split_comma(selector[1:-1].strip(), self.item)
if len(l)==1:
l = l[0]
@@ -287,18 +287,18 @@ class TypeDeclarationStatement(Statement):
else:
kind = ''
else:
- assert len(l)==2,`l`
+ assert len(l)==2,repr(l)
key0, value0 = self._split_char_selector(l[0])
key1, value1 = self._split_char_selector(l[1])
if key0=='len':
- assert key1 in [None, 'kind'],`key1`
+ assert key1 in [None, 'kind'],repr(key1)
l,kind = value0, value1
elif key0=='kind':
- assert key1=='len',`key1`
+ assert key1=='len',repr(key1)
l,kind = value1, value0
else:
- assert key0 is None,`key0`
- assert key1 in [None,'kind'],`key1`
+ assert key0 is None,repr(key0)
+ assert key1 in [None,'kind'],repr(key1)
l, kind = value0, value1
return l,kind
@@ -388,7 +388,7 @@ class TypeDeclarationStatement(Statement):
def _parse_entity(self, line):
m = name_re(line)
- assert m,`line,self.item,self.__class__.__name__`
+ assert m,epr((line,self.item,self.__class__.__name__))
name = line[:m.end()]
line = line[m.end():].lstrip()
array_spec = None
@@ -399,7 +399,7 @@ class TypeDeclarationStatement(Statement):
line = item.get_line()
if line.startswith('('):
i = line.find(')')
- assert i!=-1,`line`
+ assert i!=-1,repr(line)
array_spec = parse_array_spec(line[1:i].strip(), item)
line = line[i+1:].lstrip()
@@ -416,7 +416,7 @@ class TypeDeclarationStatement(Statement):
return name, array_spec, char_length, value
def get_zero_value(self):
- raise NotImplementedError,`self.__class__.__name__`
+ raise NotImplementedError(repr(self.__class__.__name__))
def assign_expression(self, name, value):
return '%s = %s' % (name, value)
@@ -544,7 +544,7 @@ class Type(TypeDeclarationStatement):
def get_kind(self):
# See 4.5.2, page 48
- raise NotImplementedError,`self.__class__.__name__`
+ raise NotImplementedError(repr(self.__class__.__name__))
def get_bit_size(self):
return self.get_type_decl(self.name).get_bit_size()
@@ -573,17 +573,17 @@ class Implicit(Statement):
items = []
for item in split_comma(line, self.item):
i = item.find('(')
- assert i!=-1 and item.endswith(')'),`item`
+ assert i!=-1 and item.endswith(')'),repr(item)
specs = []
for spec in split_comma(item[i+1:-1].strip(), self.item):
if '-' in spec:
s,e = spec.lower().split('-')
s = s.strip()
e = e.strip()
- assert s in self.letters and e in self.letters,`s,e`
+ assert s in self.letters and e in self.letters,repr((s,e))
else:
e = s = spec.lower().strip()
- assert s in self.letters,`s,e`
+ assert s in self.letters,repr((s,e))
specs.append((s,e))
tspec = item[:i].rstrip()
stmt = None
@@ -592,7 +592,7 @@ class Implicit(Statement):
stmt = cls(self, self.item.copy(tspec))
if stmt.isvalid:
break
- assert stmt is not None,`item,line`
+ assert stmt is not None,repr((item,line))
items.append((stmt,specs))
self.items = items
return
diff --git a/src/fparser/utils.py b/src/fparser/utils.py
index c28722d..d14d192 100644
--- a/src/fparser/utils.py
+++ b/src/fparser/utils.py
@@ -74,6 +74,7 @@ Author: Pearu Peterson <pearu at cens.ioc.ee>
Created: May 2006
-----
"""
+from __future__ import print_function
__all__ = ['split_comma', 'specs_split_comma',
'ParseError','AnalyzeError',
@@ -195,7 +196,7 @@ def parse_bind(line, item = None):
newitem = None
newline = newline[4:].lstrip()
i = newline.find(')')
- assert i!=-1,`newline`
+ assert i!=-1,repr(newline)
args = []
for a in specs_split_comma(newline[1:i].strip(), newitem, upper=True):
args.append(a)
@@ -209,9 +210,9 @@ def parse_result(line, item = None):
return None, line
line = line[6:].lstrip()
i = line.find(')')
- assert i != -1,`line`
+ assert i != -1,repr(line)
name = line[1:i].strip()
- assert is_name(name),`name`
+ assert is_name(name),repr(name)
return name, line[i+1:].lstrip()
def filter_stmts(content, classes):
@@ -243,7 +244,7 @@ def get_module_files(directory, _cache={}):
for name in module_line.findall(f.read()):
name = name[1]
if name in d:
- print d[name],'already defines',name
+ print (d[name],'already defines',name)
continue
d[name] = fn
_cache[directory] = d
@@ -283,8 +284,8 @@ def module_in_file(name, filename):
def str2stmt(string, isfree=True, isstrict=False):
""" Convert Fortran code to Statement tree.
"""
- from readfortran import Line, FortranStringReader
- from parsefortran import FortranParser
+ from .readfortran import Line, FortranStringReader
+ from .parsefortran import FortranParser
reader = FortranStringReader(string, isfree, isstrict)
parser = FortranParser(reader)
parser.parse()
@@ -314,13 +315,13 @@ def show_item_on_failure(func, _exception_depth=[0]):
def new_func(self):
try:
func(self)
- except AnalyzeError, msg:
+ except AnalyzeError as msg:
clsname = self.__class__.__name__
self.error('%s.analyze error: %s' % (clsname,msg))
traceback.print_exc()
- except ParseError, msg:
+ except ParseError as msg:
self.error('parse error: %s' % (msg))
- except Exception, msg:
+ except Exception as msg:
_exception_depth[0] += 1
if _exception_depth[0]==1:
self.error('exception triggered here: %s %s' % (Exception, msg))
@@ -340,7 +341,7 @@ class meta_classes(type):
raise AttributeError('instance does not have attribute %r' % (name))
return cls
-class classes(type):
+class classes(type, metaclass = meta_classes):
"""Make classes available as attributes of this class.
To add a class to the attributes list, one must use::
@@ -354,7 +355,6 @@ class classes(type):
* decorate analyze methods with show_item_on_failure
"""
- __metaclass__ = meta_classes
def __new__(metacls, name, bases, dict):
if 'analyze' in dict:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/fparser.git
More information about the Python-modules-commits
mailing list