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, native_tar, native_tar_gz, debian_tar, debian_diff, orig_tar, orig_tar_gz, more_orig_tar):
21 if not (native_tar_gz or (orig_tar_gz and debian_diff)):
22 yield "no .tar.gz or .orig.tar.gz+.diff.gz in 'Files' field."
23 if (orig_tar_gz != orig_tar) or \
24 (native_tar_gz != native_tar) or \
25 debian_tar or 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, native_tar, native_tar_gz, debian_tar, debian_diff, orig_tar, orig_tar_gz, more_orig_tar):
36 yield "lack required files for format 3.x (native)."
37 if orig_tar or debian_diff or debian_tar or 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, native_tar, native_tar_gz, debian_tar, debian_diff, orig_tar, orig_tar_gz, more_orig_tar):
47 if not(orig_tar and debian_tar):
48 yield "lack required files for format '3.x (quilt)'."
49 if debian_diff or native_tar:
50 yield "contains source files not allowed in format 3.x (quilt)"