# HG changeset patch -- Bitbucket.org # Project pylib # URL http://bitbucket.org/hpk42/pylib/overview # User Ronny Pfannschmidt <ronny.pfannschm...@gmx.de> # Date 1288999101 -3600 # Node ID 5367bea2f47738bdefa9eb55752e5a2a4b0e841b # Parent 577b5991dbceffe0887001c8597fd9a2f4d50023 update iniconfig
--- a/testing/test_iniconfig.py +++ b/testing/test_iniconfig.py @@ -92,7 +92,7 @@ def parse(input): # only for testing purposes - _parse() does not use state except path ini = object.__new__(IniConfig) ini.path = "sample" - return ini._parse(input) + return ini._parse(input.splitlines(True)) def parse_a_error(input): return py.test.raises(ParseError, parse, input) --- a/py/_iniconfig.py +++ b/py/_iniconfig.py @@ -46,10 +46,13 @@ class IniConfig(object): self.path = str(path) # convenience if data is None: f = open(self.path) - data = f.read() - f.close() - tokens = self._parse(data) - + try: + tokens = self._parse(iter(f)) + finally: + f.close() + else: + tokens = self._parse(data.splitlines(True)) + self._sources = {} self.sections = {} @@ -69,10 +72,10 @@ class IniConfig(object): def _raise(self, lineno, msg): raise ParseError(self.path, lineno, msg) - def _parse(self, data): + def _parse(self, line_iter): result = [] section = None - for lineno, line in enumerate(data.splitlines(True)): + for lineno, line in enumerate(line_iter): name, data = self._parseline(line, lineno) # new value if name is not None and data is not None: @@ -116,7 +119,7 @@ class IniConfig(object): try: name, value = line.split(": ", 1) except ValueError: - self._raise(lineno, 'unexpected line: %s') + self._raise(lineno, 'unexpected line: %r' % line) return name.strip(), value.strip() # continuation else: _______________________________________________ py-svn mailing list py-svn@codespeak.net http://codespeak.net/mailman/listinfo/py-svn