X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fsrcformats.py;h=bcb2e2bbae4e373df2e0c2cb1a130a58d15cfa1e;hb=fee8895dd909a9d0f4f4a71c83f689dabee62cfe;hp=f3afb8dba8b65b04fceca139b79b906b214e3080;hpb=b7d36f712210b0efac983da88ae91cdd3fd7f469;p=dak.git diff --git a/daklib/srcformats.py b/daklib/srcformats.py index f3afb8db..bcb2e2bb 100644 --- a/daklib/srcformats.py +++ b/daklib/srcformats.py @@ -59,15 +59,12 @@ class SourceFormat(type): @classmethod def validate_format(cls, format, is_a_dsc=False, field='files'): - if is_a_dsc: - if format != (1,0) and \ - format != (3,0,"quilt") and format != (3,0,"native"): - raise UnknownFormatError, repr(format) - else: - if (format < (1,5) or format > (1,8)): - raise UnknownFormatError, repr(format) - if field != "files" and format < (1,8): - raise UnknownFormatError, repr(format) + """ + Raises UnknownFormatError if the specified format tuple is not valid for + this format (for example, the format (1, 0) is not valid for the + "3.0 (quilt)" format). Return value is undefined in all other cases. + """ + pass class FormatOne(SourceFormat): __metaclass__ = SourceFormat @@ -91,6 +88,19 @@ class FormatOne(SourceFormat): for msg in super(FormatOne, cls).reject_msgs(has): yield msg + @classmethod + def validate_format(cls, format, is_a_dsc=False, field='files'): + msg = "Invalid format %s definition: %r" % (cls.name, format) + + if is_a_dsc: + if format != (1, 0): + raise UnknownFormatError, msg + else: + if (format < (1,5) or format > (1,8)): + raise UnknownFormatError, msg + if field != "files" and format < (1,8): + raise UnknownFormatError, msg + class FormatThree(SourceFormat): __metaclass__ = SourceFormat @@ -100,6 +110,12 @@ class FormatThree(SourceFormat): requires = ('native_tar',) disallowed = ('orig_tar', 'debian_diff', 'debian_tar', 'more_orig_tar') + @classmethod + def validate_format(cls, format, **kwargs): + if format != (3, 0, 'native'): + raise UnknownFormatError, "Invalid format %s definition: %r" % \ + (cls.name, format) + class FormatThreeQuilt(SourceFormat): __metaclass__ = SourceFormat @@ -108,3 +124,9 @@ class FormatThreeQuilt(SourceFormat): requires = ('orig_tar', 'debian_tar') disallowed = ('debian_diff', 'native_tar') + + @classmethod + def validate_format(cls, format, **kwargs): + if format != (3, 0, 'quilt'): + raise UnknownFormatError, "Invalid format %s definition: %r" % \ + (cls.name, format)