@@ -67,7 +67,7 @@ def __init__(self, fname, previously_included=None, incl_info=None):
with open(self._fname, 'r', encoding='utf-8') as fp:
self.src = fp.read()
except IOError as e:
- raise QAPISemError(incl_info or QAPISourceInfo(None, None, None),
+ raise QAPISemError(incl_info or QAPISourceInfo(None),
"can't read %s file '%s': %s"
% ("include" if incl_info else "schema",
self._fname,
@@ -30,7 +30,10 @@ def __init__(self) -> None:
class QAPISourceInfo:
T = TypeVar('T', bound='QAPISourceInfo')
- def __init__(self: T, fname: str, line: int, parent: Optional[T]):
+ def __init__(self: T,
+ fname: str,
+ line: int = 0,
+ parent: Optional[T] = None):
self.fname = fname
self.line = line
self.parent = parent
@@ -53,7 +56,7 @@ def loc(self) -> str:
if self.fname is None:
return sys.argv[0]
ret = self.fname
- if self.line is not None:
+ if self.line:
ret += ':%d' % self.line
return ret
The parser tries to create an object as QAPISourceInfo(None, None, None). Add some defaults to QAPISourceInfo such that we don't need to pass explicit as many explicit nothings. Having the defaults nearby the code in source.py also helps remind us that they might be unset. Using a numerical 0 to mean "no line" is nicer to type than using None for the same. Signed-off-by: John Snow <jsnow@redhat.com> --- scripts/qapi/parser.py | 2 +- scripts/qapi/source.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-)