Bug#487797: python-debian: file arg in Changelog should expect file object
Tilman Koschnick
til at subnetz.org
Tue Jun 24 08:28:53 UTC 2008
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
-------------- next part --------------
--- 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:
More information about the pkg-python-debian-maint
mailing list