Package: python-debian Version: 0.1.10~bpo40+1 Severity: wishlist Tags: patch
Hi, I repeatedly stumble over the 'file' arg to changelog.Changelog(), expecting it should be an open file object and not a string. It's just a minor thing, but I find f = open('/path/to/changelog') cl = changelog.Changelog(f) more intuitive than cl = changelog.Changelog(f.read()) It corresponds better with how files are treated in deb822 as well. Patch attached (strings are still supported, as to not break existing scripts). Cheers, Til
--- changelog.py.orig 2008-06-24 09:33:13.307114680 +0200 +++ changelog.py 2008-06-24 10:25:14.884034626 +0200 @@ -195,7 +195,7 @@ def __init__(self, file=None, max_blocks=None, allow_empty_author=False): - """Set up the Changelog for use. file is the contects of the changelog. + """Set up the Changelog for use. file is an open filehandle to a changelog file. """ self._blocks = [] if file is not None: @@ -217,9 +217,13 @@ author = None date = None - self._file = file + if isinstance(file, open): # open is an alias for file, which is hidden by the file variable + self._file = file + else: + self._file = file.split('\n') state = before - for line in self._file.split('\n'): + for line in self._file: + line = line.rstrip('\n') if state == before: m = topline.match(line) if m is not None: