Bug#593525: python-debian: Please add a Control object
Benjamin Drung
bdrung at ubuntu.com
Sat Sep 25 16:50:45 UTC 2010
Am Mittwoch, den 25.08.2010, 16:40 -0700 schrieb John Wright:
> Hi Benjamin,
>
> On Thu, Aug 19, 2010 at 01:25:30AM +0200, Benjamin Drung wrote:
> > Package: python-debian
> > Version: 0.1.16
> > Severity: wishlist
> >
> > I want to parse a debian/control file and found no 'Control' object that
> > represents a debian/control file. I had to create my own Crontol object that
> > contains a list of Deb822 objects:
> >
> > def get_blocks(blocks, line):
> > if line.strip() == "":
> > blocks.append(list())
> > else:
> > blocks[-1].append(line)
> > return blocks
> >
> > lines = open("debian/control").readlines()
> > blocks = reduce(get_blocks, lines, [[]])
> > self.blocks = map(debian.deb822.Deb822, blocks)
> >
> > Please add a Control object.
>
> The classes in the deb822 packages each represent one "paragraph" of a
> multi-paragraph file. What you probably want is the iter_paragraphs
> method on Deb822 (and hence all of its subclasses). It yields one
> object for each paragraph in the file. Control files have no special
> multivalued fields, so the Deb822 class should work fine:
>
> for paragraph in deb822.Deb822.iter_paragraphs(open('debian/control')):
> # paragraph is a Deb822 object.
> print paragraph.items()
>
> We could probably use some better documentation for new users....
Thanks. That simplifies my code. You can inspect wrap-and-sort in
ubuntu-dev-tools >= 0.102 (from experimental).
--
Benjamin Drung
Ubuntu Developer (www.ubuntu.com) | Debian Maintainer (www.debian.org)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-python-debian-maint/attachments/20100925/1dd7a03c/attachment.pgp>
More information about the pkg-python-debian-maint
mailing list