diff options
Diffstat (limited to 'debian/lib/python')
-rw-r--r-- | debian/lib/python/debian_linux/debian.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/debian/lib/python/debian_linux/debian.py b/debian/lib/python/debian_linux/debian.py index d8894b115a30..e4f01e578c17 100644 --- a/debian/lib/python/debian_linux/debian.py +++ b/debian/lib/python/debian_linux/debian.py @@ -158,26 +158,39 @@ class PackageDescription(object): __slots__ = "short", "long" def __init__(self, value = None): + self.short = [] self.long = [] if value is not None: - self.short, long = value.split("\n", 1) + short, long = value.split("\n", 1) self.append(long) - else: - self.short = None + self.append_short(short) def __str__(self): wrap = utils.TextWrapper(width = 74, fix_sentence_endings = True).wrap + short = ', '.join(self.short) long_pars = [] for i in self.long: long_pars.append(wrap(i)) long = '\n .\n '.join(['\n '.join(i) for i in long_pars]) - return self.short + '\n ' + long + return short + '\n ' + long def append(self, str): str = str.strip() if str: self.long.extend(str.split("\n.\n")) + def append_short(self, str): + for i in [i.strip() for i in str.split(",")]: + if i: + self.short.append(i) + + def extend(self, desc): + if isinstance(desc, PackageDescription): + self.short.extend(desc.short) + self.long.extend(desc.long) + else: + raise TypeError + class PackageRelation(list): def __init__(self, value = None): if value is not None: |