5 class SourceFormat(type):
6 def __new__(cls, name, bases, attrs):
7 klass = super(SourceFormat, cls).__new__(cls, name, bases, attrs)
8 srcformats.append(klass)
10 klass.re_format = re.compile(klass.format)
14 class FormatOne(object):
15 __metaclass__ = SourceFormat
20 def reject_msgs(cls, has_native_tar, has_native_tar_gz, has_debian_tar, has_debian_diff, has_orig_tar, has_orig_tar_gz, has_more_orig_tar):
21 if not (has_native_tar_gz or (has_orig_tar_gz and has_debian_diff)):
22 yield "no .tar.gz or .orig.tar.gz+.diff.gz in 'Files' field."
23 if (has_orig_tar_gz != has_orig_tar) or \
24 (has_native_tar_gz != has_native_tar) or \
25 has_debian_tar or has_more_orig_tar:
26 yield "contains source files not allowed in format 1.0"
28 class FormatThree(object):
29 __metaclass__ = SourceFormat
31 format = r'3\.\d+ \(native\)'
34 def reject_msgs(cls, has_native_tar, has_native_tar_gz, has_debian_tar, has_debian_diff, has_orig_tar, has_orig_tar_gz, has_more_orig_tar):
35 if not has_native_tar:
36 yield "lack required files for format 3.x (native)."
37 if has_orig_tar or has_debian_diff or has_debian_tar or has_more_orig_tar:
38 yield "contains source files not allowed in format '3.x (native)'"
40 class FormatThreeQuilt(object):
41 __metaclass__ = SourceFormat
43 format = r'3\.\d+ \(quilt\)'
46 def reject_msgs(cls, has_native_tar, has_native_tar_gz, has_debian_tar, has_debian_diff, has_orig_tar, has_orig_tar_gz, has_more_orig_tar):
47 if not(has_orig_tar and has_debian_tar):
48 yield "lack required files for format '3.x (quilt)'."
49 if has_debian_diff or has_native_tar:
50 yield "contains source files not allowed in format 3.x (quilt)"