Cache the lines that are read instead of re-reading
With-in the parsed file we cache the contents of the file before it is converted to unicode and the contents of the file after it is converted to unicode so it seems better to follow this pattern and to also cache the raw lines (instead of re-reading) as well. Change-Id: Ic320a6c5517e513c88bdb4014d509a5791d85524
This commit is contained in:
parent
83c934fe34
commit
674cbbcd59
|
@ -35,6 +35,7 @@ class ParsedFile(object):
|
|||
self._encoding = encoding
|
||||
self._doc = None
|
||||
self._errors = None
|
||||
self._lines = None
|
||||
self._extension = os.path.splitext(filename)[1]
|
||||
|
||||
@property
|
||||
|
@ -72,12 +73,14 @@ class ParsedFile(object):
|
|||
return self._doc
|
||||
|
||||
def lines_iter(self, remove_trailing_newline=True):
|
||||
with open(self.filename, 'rb') as fh:
|
||||
for line in fh:
|
||||
line = six.text_type(line, encoding=self.encoding)
|
||||
if remove_trailing_newline and line.endswith("\n"):
|
||||
line = line[0:-1]
|
||||
yield line
|
||||
if self._lines is None:
|
||||
with open(self.filename, 'rb') as fh:
|
||||
self._lines = list(fh)
|
||||
for line in self._lines:
|
||||
line = six.text_type(line, encoding=self.encoding)
|
||||
if remove_trailing_newline and line.endswith("\n"):
|
||||
line = line[0:-1]
|
||||
yield line
|
||||
|
||||
@property
|
||||
def extension(self):
|
||||
|
|
Loading…
Reference in New Issue