debian/lib/python: PEP8 and other style fixes.
svn path=/dists/trunk/linux-2.6/; revision=18488
This commit is contained in:
parent
42fbf6c05d
commit
9863acaddd
|
@ -10,9 +10,12 @@ class Symbol(object):
|
|||
# Symbols are resolved to modules by depmod at installation/
|
||||
# upgrade time, not compile time, so moving a symbol between
|
||||
# modules is not an ABI change. Compare everything else.
|
||||
if self.name != other.name: return False
|
||||
if self.version != other.version: return False
|
||||
if self.export != other.export: return False
|
||||
if self.name != other.name:
|
||||
return False
|
||||
if self.version != other.version:
|
||||
return False
|
||||
if self.export != other.export:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
@ -22,6 +25,7 @@ class Symbol(object):
|
|||
return ret
|
||||
return not ret
|
||||
|
||||
|
||||
class Symbols(dict):
|
||||
def __init__(self, file=None):
|
||||
if file:
|
||||
|
@ -36,4 +40,5 @@ class Symbols(dict):
|
|||
symbols = self.values()
|
||||
symbols.sort(key=lambda i: i.name)
|
||||
for s in symbols:
|
||||
file.write("%s %s %s %s\n" % (s.version, s.name, s.module, s.export))
|
||||
file.write("%s %s %s %s\n" %
|
||||
(s.version, s.name, s.module, s.export))
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
import os, os.path, re, sys, textwrap
|
||||
import os
|
||||
import os.path
|
||||
import re
|
||||
import sys
|
||||
import textwrap
|
||||
|
||||
__all__ = [
|
||||
'ConfigCoreDump',
|
||||
|
@ -6,6 +10,7 @@ __all__ = [
|
|||
'ConfigParser',
|
||||
]
|
||||
|
||||
|
||||
class SchemaItemBoolean(object):
|
||||
def __call__(self, i):
|
||||
i = i.strip().lower()
|
||||
|
@ -15,8 +20,9 @@ class SchemaItemBoolean(object):
|
|||
return False
|
||||
raise Error
|
||||
|
||||
|
||||
class SchemaItemList(object):
|
||||
def __init__(self, type = "\s+"):
|
||||
def __init__(self, type="\s+"):
|
||||
self.type = type
|
||||
|
||||
def __call__(self, i):
|
||||
|
@ -25,6 +31,7 @@ class SchemaItemList(object):
|
|||
return []
|
||||
return [j.strip() for j in re.split(self.type, i)]
|
||||
|
||||
|
||||
class ConfigCore(dict):
|
||||
def get_merge(self, section, arch, featureset, flavour, key, default=None):
|
||||
temp = []
|
||||
|
@ -55,7 +62,7 @@ class ConfigCore(dict):
|
|||
|
||||
return ret or default
|
||||
|
||||
def merge(self, section, arch = None, featureset = None, flavour = None):
|
||||
def merge(self, section, arch=None, featureset=None, flavour=None):
|
||||
ret = {}
|
||||
ret.update(self.get((section,), {}))
|
||||
if featureset:
|
||||
|
@ -81,8 +88,9 @@ class ConfigCore(dict):
|
|||
fp.write('%s: %r\n' % (item, items[item]))
|
||||
fp.write('\n')
|
||||
|
||||
|
||||
class ConfigCoreDump(ConfigCore):
|
||||
def __init__(self, config = None, fp = None):
|
||||
def __init__(self, config=None, fp=None):
|
||||
super(ConfigCoreDump, self).__init__(self)
|
||||
if config is not None:
|
||||
self.update(config)
|
||||
|
@ -98,6 +106,7 @@ class ConfigCoreDump(ConfigCore):
|
|||
data[key] = value_real
|
||||
self[section_real] = data
|
||||
|
||||
|
||||
class ConfigCoreHierarchy(ConfigCore):
|
||||
config_name = "defines"
|
||||
|
||||
|
@ -134,7 +143,7 @@ class ConfigCoreHierarchy(ConfigCore):
|
|||
}
|
||||
}
|
||||
|
||||
def __init__(self, dirs = []):
|
||||
def __init__(self, dirs=[]):
|
||||
super(ConfigCoreHierarchy, self).__init__()
|
||||
self._dirs = dirs
|
||||
self._read_base()
|
||||
|
@ -143,8 +152,8 @@ class ConfigCoreHierarchy(ConfigCore):
|
|||
config = ConfigParser(self.schemas)
|
||||
config.read(self.get_files("%s/%s" % (arch, self.config_name)))
|
||||
|
||||
featuresets = config['base',].get('featuresets', [])
|
||||
flavours = config['base',].get('flavours', [])
|
||||
featuresets = config['base', ].get('featuresets', [])
|
||||
flavours = config['base', ].get('flavours', [])
|
||||
|
||||
for section in iter(config):
|
||||
if section[0] in featuresets:
|
||||
|
@ -172,7 +181,7 @@ class ConfigCoreHierarchy(ConfigCore):
|
|||
config = ConfigParser(self.schemas)
|
||||
config.read(self.get_files("%s/%s/%s" % (arch, featureset, self.config_name)))
|
||||
|
||||
flavours = config['base',].get('flavours', [])
|
||||
flavours = config['base', ].get('flavours', [])
|
||||
|
||||
for section in iter(config):
|
||||
real = (section[-1], arch, featureset) + section[:-1]
|
||||
|
@ -184,8 +193,8 @@ class ConfigCoreHierarchy(ConfigCore):
|
|||
config = ConfigParser(self.schemas)
|
||||
config.read(self.get_files(self.config_name))
|
||||
|
||||
arches = config['base',]['arches']
|
||||
featuresets = config['base',].get('featuresets', [])
|
||||
arches = config['base', ]['arches']
|
||||
featuresets = config['base', ].get('featuresets', [])
|
||||
|
||||
for section in iter(config):
|
||||
if section[0].startswith('featureset-'):
|
||||
|
@ -212,6 +221,7 @@ class ConfigCoreHierarchy(ConfigCore):
|
|||
def get_files(self, name):
|
||||
return [os.path.join(i, name) for i in self._dirs if i]
|
||||
|
||||
|
||||
class ConfigParser(object):
|
||||
__slots__ = '_config', 'schemas'
|
||||
|
||||
|
@ -260,7 +270,8 @@ class ConfigParser(object):
|
|||
for key in data.keys():
|
||||
try:
|
||||
data[key] = schema[key](data[key])
|
||||
except KeyError: pass
|
||||
except KeyError:
|
||||
pass
|
||||
super(ConfigParser.SectionSchema, self).__init__(data)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -276,4 +287,3 @@ if __name__ == '__main__':
|
|||
for item in items:
|
||||
print "%s: %s" % (item, items[item])
|
||||
print
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
import itertools, os.path, re, utils
|
||||
import itertools
|
||||
import os.path
|
||||
import re
|
||||
import utils
|
||||
|
||||
|
||||
class Changelog(list):
|
||||
_rules = r"""
|
||||
|
@ -26,7 +30,7 @@ class Changelog(list):
|
|||
def __init__(self, distribution, source, version):
|
||||
self.distribution, self.source, self.version = distribution, source, version
|
||||
|
||||
def __init__(self, dir = '', version = None):
|
||||
def __init__(self, dir='', version=None):
|
||||
if version is None:
|
||||
version = Version
|
||||
f = file(os.path.join(dir, "debian/changelog"))
|
||||
|
@ -45,6 +49,7 @@ class Changelog(list):
|
|||
v = Version(match.group('version'))
|
||||
self.append(self.Entry(match.group('distribution'), match.group('source'), v))
|
||||
|
||||
|
||||
class Version(object):
|
||||
_version_rules = ur"""
|
||||
^
|
||||
|
@ -68,7 +73,7 @@ $
|
|||
def __init__(self, version):
|
||||
match = self._version_re.match(version)
|
||||
if match is None:
|
||||
raise RuntimeError, "Invalid debian version"
|
||||
raise RuntimeError("Invalid debian version")
|
||||
self.epoch = None
|
||||
if match.group("epoch") is not None:
|
||||
self.epoch = int(match.group("epoch"))
|
||||
|
@ -93,9 +98,10 @@ $
|
|||
@property
|
||||
def debian(self):
|
||||
from warnings import warn
|
||||
warn("debian argument was replaced by revision", DeprecationWarning, stacklevel = 2)
|
||||
warn("debian argument was replaced by revision", DeprecationWarning, stacklevel=2)
|
||||
return self.revision
|
||||
|
||||
|
||||
class VersionLinux(Version):
|
||||
_version_linux_rules = ur"""
|
||||
^
|
||||
|
@ -137,7 +143,7 @@ $
|
|||
super(VersionLinux, self).__init__(version)
|
||||
match = self._version_linux_re.match(version)
|
||||
if match is None:
|
||||
raise RuntimeError, "Invalid debian linux version"
|
||||
raise RuntimeError("Invalid debian linux version")
|
||||
d = match.groupdict()
|
||||
self.linux_modifier = d['modifier']
|
||||
self.linux_version = d['version']
|
||||
|
@ -148,9 +154,10 @@ $
|
|||
self.linux_dfsg = d['dfsg']
|
||||
self.linux_revision_experimental = match.group('revision_experimental') and True
|
||||
self.linux_revision_other = match.group('revision_other') and True
|
||||
|
||||
|
||||
|
||||
class PackageFieldList(list):
|
||||
def __init__(self, value = None):
|
||||
def __init__(self, value=None):
|
||||
self.extend(value)
|
||||
|
||||
def __str__(self):
|
||||
|
@ -166,10 +173,11 @@ class PackageFieldList(list):
|
|||
else:
|
||||
super(PackageFieldList, self).extend(value)
|
||||
|
||||
|
||||
class PackageDescription(object):
|
||||
__slots__ = "short", "long"
|
||||
|
||||
def __init__(self, value = None):
|
||||
def __init__(self, value=None):
|
||||
self.short = []
|
||||
self.long = []
|
||||
if value is not None:
|
||||
|
@ -178,7 +186,7 @@ class PackageDescription(object):
|
|||
self.append_short(short)
|
||||
|
||||
def __str__(self):
|
||||
wrap = utils.TextWrapper(width = 74, fix_sentence_endings = True).wrap
|
||||
wrap = utils.TextWrapper(width=74, fix_sentence_endings=True).wrap
|
||||
short = ', '.join(self.short)
|
||||
long_pars = []
|
||||
for i in self.long:
|
||||
|
@ -203,6 +211,7 @@ class PackageDescription(object):
|
|||
else:
|
||||
raise TypeError
|
||||
|
||||
|
||||
class PackageRelation(list):
|
||||
def __init__(self, value=None, override_arches=None):
|
||||
if value:
|
||||
|
@ -221,7 +230,7 @@ class PackageRelation(list):
|
|||
if isinstance(value, basestring):
|
||||
value = PackageRelationGroup(value, override_arches)
|
||||
elif not isinstance(value, PackageRelationGroup):
|
||||
raise ValueError, "got %s" % type(value)
|
||||
raise ValueError("got %s" % type(value))
|
||||
j = self._search_value(value)
|
||||
if j:
|
||||
j._update_arches(value)
|
||||
|
@ -232,10 +241,11 @@ class PackageRelation(list):
|
|||
if isinstance(value, basestring):
|
||||
value = [j.strip() for j in re.split(',', value.strip())]
|
||||
elif not isinstance(value, (list, tuple)):
|
||||
raise ValueError, "got %s" % type(value)
|
||||
raise ValueError("got %s" % type(value))
|
||||
for i in value:
|
||||
self.append(i, override_arches)
|
||||
|
||||
|
||||
class PackageRelationGroup(list):
|
||||
def __init__(self, value=None, override_arches=None):
|
||||
if value:
|
||||
|
@ -272,15 +282,38 @@ class PackageRelationGroup(list):
|
|||
for i in value:
|
||||
self.append(i, override_arches)
|
||||
|
||||
|
||||
class PackageRelationEntry(object):
|
||||
__slots__ = "name", "operator", "version", "arches"
|
||||
|
||||
_re = re.compile(r'^(\S+)(?: \((<<|<=|=|!=|>=|>>)\s*([^)]+)\))?(?: \[([^]]+)\])?$')
|
||||
|
||||
class _operator(object):
|
||||
OP_LT = 1; OP_LE = 2; OP_EQ = 3; OP_NE = 4; OP_GE = 5; OP_GT = 6
|
||||
operators = { '<<': OP_LT, '<=': OP_LE, '=': OP_EQ, '!=': OP_NE, '>=': OP_GE, '>>': OP_GT }
|
||||
operators_neg = { OP_LT: OP_GE, OP_LE: OP_GT, OP_EQ: OP_NE, OP_NE: OP_EQ, OP_GE: OP_LT, OP_GT: OP_LE }
|
||||
OP_LT = 1
|
||||
OP_LE = 2
|
||||
OP_EQ = 3
|
||||
OP_NE = 4
|
||||
OP_GE = 5
|
||||
OP_GT = 6
|
||||
|
||||
operators = {
|
||||
'<<': OP_LT,
|
||||
'<=': OP_LE,
|
||||
'=': OP_EQ,
|
||||
'!=': OP_NE,
|
||||
'>=': OP_GE,
|
||||
'>>': OP_GT,
|
||||
}
|
||||
|
||||
operators_neg = {
|
||||
OP_LT: OP_GE,
|
||||
OP_LE: OP_GT,
|
||||
OP_EQ: OP_NE,
|
||||
OP_NE: OP_EQ,
|
||||
OP_GE: OP_LT,
|
||||
OP_GT: OP_LE,
|
||||
}
|
||||
|
||||
operators_text = dict([(b, a) for a, b in operators.iteritems()])
|
||||
|
||||
__slots__ = '_op',
|
||||
|
@ -314,7 +347,7 @@ class PackageRelationEntry(object):
|
|||
def parse(self, value):
|
||||
match = self._re.match(value)
|
||||
if match is None:
|
||||
raise RuntimeError, "Can't parse dependency %s" % value
|
||||
raise RuntimeError("Can't parse dependency %s" % value)
|
||||
match = match.groups()
|
||||
self.name = match[0]
|
||||
if match[1] is not None:
|
||||
|
@ -327,6 +360,7 @@ class PackageRelationEntry(object):
|
|||
else:
|
||||
self.arches = []
|
||||
|
||||
|
||||
class Package(dict):
|
||||
_fields = utils.SortedDict((
|
||||
('Package', str),
|
||||
|
@ -355,13 +389,14 @@ class Package(dict):
|
|||
cls = self._fields[key]
|
||||
if not isinstance(value, cls):
|
||||
value = cls(value)
|
||||
except KeyError: pass
|
||||
except KeyError:
|
||||
pass
|
||||
super(Package, self).__setitem__(key, value)
|
||||
|
||||
def iterkeys(self):
|
||||
keys = set(self.keys())
|
||||
for i in self._fields.iterkeys():
|
||||
if self.has_key(i):
|
||||
if i in self:
|
||||
keys.remove(i)
|
||||
yield i
|
||||
for i in keys:
|
||||
|
@ -374,4 +409,3 @@ class Package(dict):
|
|||
def itervalues(self):
|
||||
for i in self.iterkeys():
|
||||
yield self[i]
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import re
|
||||
|
||||
|
||||
class FirmwareFile(object):
|
||||
def __init__(self, binary, desc=None, source=None, version=None):
|
||||
self.binary = binary
|
||||
|
@ -7,12 +8,14 @@ class FirmwareFile(object):
|
|||
self.source = source
|
||||
self.version = version
|
||||
|
||||
|
||||
class FirmwareSection(object):
|
||||
def __init__(self, driver, files, licence):
|
||||
self.driver = driver
|
||||
self.files = files
|
||||
self.licence = licence
|
||||
|
||||
|
||||
class FirmwareWhence(list):
|
||||
def __init__(self, file):
|
||||
self.read(file)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from debian import *
|
||||
from utils import SortedDict
|
||||
|
||||
|
||||
class PackagesList(SortedDict):
|
||||
def append(self, package):
|
||||
self[package['Package']] = package
|
||||
|
@ -9,12 +10,13 @@ class PackagesList(SortedDict):
|
|||
for package in packages:
|
||||
self[package['Package']] = package
|
||||
|
||||
|
||||
class Makefile(object):
|
||||
def __init__(self):
|
||||
self.rules = {}
|
||||
self.add('.NOTPARALLEL')
|
||||
|
||||
def add(self, name, deps = None, cmds = None):
|
||||
def add(self, name, deps=None, cmds=None):
|
||||
if name in self.rules:
|
||||
self.rules[name].add(deps, cmds)
|
||||
else:
|
||||
|
@ -31,12 +33,12 @@ class Makefile(object):
|
|||
self.rules[i].write(out)
|
||||
|
||||
class Rule(object):
|
||||
def __init__(self, name, deps = None, cmds = None):
|
||||
def __init__(self, name, deps=None, cmds=None):
|
||||
self.name = name
|
||||
self.deps, self.cmds = set(), []
|
||||
self.add(deps, cmds)
|
||||
|
||||
def add(self, deps = None, cmds = None):
|
||||
def add(self, deps=None, cmds=None):
|
||||
if deps is not None:
|
||||
self.deps.update(deps)
|
||||
if cmds is not None:
|
||||
|
@ -59,6 +61,7 @@ class Makefile(object):
|
|||
else:
|
||||
out.write('%s:%s\n' % (self.name, deps_string))
|
||||
|
||||
|
||||
class MakeFlags(dict):
|
||||
def __repr__(self):
|
||||
repr = super(flags, self).__repr__()
|
||||
|
@ -70,12 +73,13 @@ class MakeFlags(dict):
|
|||
def copy(self):
|
||||
return self.__class__(super(MakeFlags, self).copy())
|
||||
|
||||
|
||||
class Gencontrol(object):
|
||||
makefile_targets = ('binary-arch', 'build', 'setup', 'source')
|
||||
|
||||
def __init__(self, config, templates, version = Version):
|
||||
def __init__(self, config, templates, version=Version):
|
||||
self.config, self.templates = config, templates
|
||||
self.changelog = Changelog(version = version)
|
||||
self.changelog = Changelog(version=version)
|
||||
|
||||
def __call__(self):
|
||||
packages = PackagesList()
|
||||
|
@ -93,7 +97,7 @@ class Gencontrol(object):
|
|||
packages['source'] = self.process_package(source)
|
||||
|
||||
def do_main(self, packages, makefile):
|
||||
config_entry = self.config['base',]
|
||||
config_entry = self.config['base', ]
|
||||
vars = self.vars.copy()
|
||||
|
||||
makeflags = MakeFlags()
|
||||
|
@ -108,13 +112,13 @@ class Gencontrol(object):
|
|||
pass
|
||||
|
||||
def do_main_makefile(self, makefile, makeflags, extra):
|
||||
makefile.add('binary-indep', cmds = ["$(MAKE) -f debian/rules.real binary-indep %s" % makeflags])
|
||||
makefile.add('binary-indep', cmds=["$(MAKE) -f debian/rules.real binary-indep %s" % makeflags])
|
||||
|
||||
def do_main_packages(self, packages, vars, makeflags, extra):
|
||||
pass
|
||||
|
||||
def do_main_recurse(self, packages, makefile, vars, makeflags, extra):
|
||||
for arch in iter(self.config['base',]['arches']):
|
||||
for arch in iter(self.config['base', ]['arches']):
|
||||
self.do_arch(packages, makefile, arch, vars.copy(), makeflags.copy(), extra)
|
||||
|
||||
def do_extra(self, packages, makefile):
|
||||
|
@ -136,11 +140,11 @@ class Gencontrol(object):
|
|||
cmds = []
|
||||
for i in extra_arches[arch]:
|
||||
tmp = []
|
||||
if i.has_key('X-Version-Overwrite-Epoch'):
|
||||
if 'X-Version-Overwrite-Epoch' in i:
|
||||
tmp.append("-v1:%s" % self.version['source'])
|
||||
cmds.append("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-p%s' GENCONTROL_ARGS='%s'" % (i['Package'], ' '.join(tmp)))
|
||||
makefile.add('binary-arch_%s' % arch ['binary-arch_%s_extra' % arch])
|
||||
makefile.add("binary-arch_%s_extra" % arch, cmds = cmds)
|
||||
makefile.add('binary-arch_%s' % arch['binary-arch_%s_extra' % arch])
|
||||
makefile.add("binary-arch_%s_extra" % arch, cmds=cmds)
|
||||
|
||||
def do_arch(self, packages, makefile, arch, vars, makeflags, extra):
|
||||
vars['arch'] = arch
|
||||
|
@ -218,7 +222,7 @@ class Gencontrol(object):
|
|||
('kernel-arch', 'KERNEL_ARCH'),
|
||||
('localversion', 'LOCALVERSION'),
|
||||
):
|
||||
if vars.has_key(i[0]):
|
||||
if i[0] in vars:
|
||||
makeflags[i[1]] = vars[i[0]]
|
||||
|
||||
def do_flavour_makefile(self, makefile, arch, featureset, flavour, makeflags, extra):
|
||||
|
@ -269,8 +273,10 @@ class Gencontrol(object):
|
|||
def substitute(self, s, vars):
|
||||
if isinstance(s, (list, tuple)):
|
||||
return [self.substitute(i, vars) for i in s]
|
||||
|
||||
def subst(match):
|
||||
return vars[match.group(1)]
|
||||
|
||||
return re.sub(r'@([-_a-z]+)@', subst, s)
|
||||
|
||||
def write(self, packages, makefile):
|
||||
|
@ -295,5 +301,3 @@ class Gencontrol(object):
|
|||
for key, value in entry.iteritems():
|
||||
f.write("%s: %s\n" % (key, value))
|
||||
f.write('\n')
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ __all__ = (
|
|||
"KconfigFile",
|
||||
)
|
||||
|
||||
|
||||
class EntryString(object):
|
||||
__slots__ = "name", "value"
|
||||
|
||||
|
@ -16,6 +17,7 @@ class EntryString(object):
|
|||
def __str__(self):
|
||||
return "CONFIG_%s=%s" % (self.name, self.value)
|
||||
|
||||
|
||||
class EntryTristate(object):
|
||||
__slots__ = "name", "value"
|
||||
|
||||
|
@ -23,7 +25,7 @@ class EntryTristate(object):
|
|||
VALUE_YES = 1
|
||||
VALUE_MOD = 2
|
||||
|
||||
def __init__(self, name, value = None):
|
||||
def __init__(self, name, value=None):
|
||||
self.name = name
|
||||
if value == 'n' or value is None:
|
||||
self.value = self.VALUE_NO
|
||||
|
@ -41,6 +43,7 @@ class EntryTristate(object):
|
|||
elif self.value == self.VALUE_MOD:
|
||||
return "%s=m" % conf
|
||||
|
||||
|
||||
class KconfigFile(SortedDict):
|
||||
def __str__(self):
|
||||
ret = []
|
||||
|
@ -54,7 +57,7 @@ class KconfigFile(SortedDict):
|
|||
if line.startswith("CONFIG_"):
|
||||
i = line.find('=')
|
||||
option = line[7:i]
|
||||
value = line[i+1:]
|
||||
value = line[i + 1:]
|
||||
self.set(option, value)
|
||||
elif line.startswith("# CONFIG_"):
|
||||
option = line[9:-11]
|
||||
|
@ -62,7 +65,7 @@ class KconfigFile(SortedDict):
|
|||
elif line.startswith("#") or not line:
|
||||
pass
|
||||
else:
|
||||
raise RuntimeError, "Can't recognize %s" % line
|
||||
raise RuntimeError("Can't recognize %s" % line)
|
||||
|
||||
def set(self, key, value):
|
||||
if value in ('y', 'm', 'n'):
|
||||
|
@ -74,4 +77,3 @@ class KconfigFile(SortedDict):
|
|||
def str_iter(self):
|
||||
for key, value in self.iteritems():
|
||||
yield str(value)
|
||||
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
import glob, os, shutil
|
||||
import glob
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
class Operation(object):
|
||||
def __init__(self, name, data):
|
||||
self.name, self.data = name, data
|
||||
|
||||
def __call__(self, dir = '.', reverse = False):
|
||||
def __call__(self, dir='.', reverse=False):
|
||||
try:
|
||||
if not reverse:
|
||||
self.do(dir)
|
||||
|
@ -28,6 +31,7 @@ class Operation(object):
|
|||
def do_reverse(self, dir):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class OperationPatch(Operation):
|
||||
def __init__(self, name, fopen, data):
|
||||
super(OperationPatch, self).__init__(name, data)
|
||||
|
@ -46,18 +50,21 @@ class OperationPatch(Operation):
|
|||
def patch_pop(self, dir):
|
||||
self._call(dir, '-R')
|
||||
|
||||
|
||||
class OperationPatchPush(OperationPatch):
|
||||
operation = '+'
|
||||
|
||||
do = OperationPatch.patch_push
|
||||
do_reverse = OperationPatch.patch_pop
|
||||
|
||||
|
||||
class OperationPatchPop(OperationPatch):
|
||||
operation = '-'
|
||||
|
||||
do = OperationPatch.patch_pop
|
||||
do_reverse = OperationPatch.patch_push
|
||||
|
||||
|
||||
class SubOperation(Operation):
|
||||
def _log(self, result):
|
||||
if result:
|
||||
|
@ -66,6 +73,7 @@ class SubOperation(Operation):
|
|||
s = "FAIL"
|
||||
print """ %-10s %-4s %s""" % ('(%s)' % self.operation, s, self.name)
|
||||
|
||||
|
||||
class SubOperationFilesRemove(SubOperation):
|
||||
operation = "remove"
|
||||
|
||||
|
@ -77,6 +85,7 @@ class SubOperationFilesRemove(SubOperation):
|
|||
else:
|
||||
os.unlink(n)
|
||||
|
||||
|
||||
class SubOperationFilesUnifdef(SubOperation):
|
||||
operation = "unifdef"
|
||||
|
||||
|
@ -94,6 +103,7 @@ class SubOperationFilesUnifdef(SubOperation):
|
|||
f1.write(data)
|
||||
f1.close()
|
||||
|
||||
|
||||
class OperationFiles(Operation):
|
||||
operation = 'X'
|
||||
|
||||
|
@ -126,7 +136,8 @@ class OperationFiles(Operation):
|
|||
|
||||
def do(self, dir):
|
||||
for i in self.ops:
|
||||
i(dir = dir)
|
||||
i(dir=dir)
|
||||
|
||||
|
||||
class PatchSeries(list):
|
||||
operations = {
|
||||
|
@ -166,20 +177,21 @@ class PatchSeries(list):
|
|||
|
||||
self.append(self.operations[operation](filename, fopen, data))
|
||||
|
||||
def __call__(self, cond = bool, dir = '.', reverse = False):
|
||||
def __call__(self, cond=bool, dir='.', reverse=False):
|
||||
if not reverse:
|
||||
l = self
|
||||
else:
|
||||
l = self[::-1]
|
||||
for i in l:
|
||||
if cond(i):
|
||||
i(dir = dir, reverse = reverse)
|
||||
i(dir=dir, reverse=reverse)
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s object for %s>' % (self.__class__.__name__, self.name)
|
||||
|
||||
|
||||
class PatchSeriesList(list):
|
||||
def __call__(self, cond = bool, reverse = False):
|
||||
def __call__(self, cond=bool, reverse=False):
|
||||
if not reverse:
|
||||
l = self
|
||||
else:
|
||||
|
@ -189,7 +201,7 @@ class PatchSeriesList(list):
|
|||
print "--> Try to unapply %s." % i.name
|
||||
else:
|
||||
print "--> Try to apply %s." % i.name
|
||||
i(cond = cond, reverse = reverse)
|
||||
i(cond=cond, reverse=reverse)
|
||||
if reverse:
|
||||
print "--> %s fully unapplied." % i.name
|
||||
else:
|
||||
|
@ -205,4 +217,3 @@ class PatchSeriesList(list):
|
|||
except IOError:
|
||||
pass
|
||||
return ret
|
||||
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import re, os, textwrap
|
||||
import os
|
||||
import re
|
||||
import textwrap
|
||||
|
||||
_marker = object
|
||||
|
||||
|
||||
class SortedDict(dict):
|
||||
__slots__ = '_list',
|
||||
|
||||
def __init__(self, entries = None):
|
||||
def __init__(self, entries=None):
|
||||
super(SortedDict, self).__init__()
|
||||
self._list = []
|
||||
if entries is not None:
|
||||
|
@ -35,8 +38,9 @@ class SortedDict(dict):
|
|||
for i in iter(self._list):
|
||||
yield self[i]
|
||||
|
||||
|
||||
class Templates(object):
|
||||
def __init__(self, dirs = ["debian/templates"]):
|
||||
def __init__(self, dirs=["debian/templates"]):
|
||||
self.dirs = dirs
|
||||
|
||||
self._cache = {}
|
||||
|
@ -67,6 +71,7 @@ class Templates(object):
|
|||
return default
|
||||
return value
|
||||
|
||||
|
||||
def read_control(f):
|
||||
from .debian import Package
|
||||
|
||||
|
@ -96,7 +101,7 @@ def read_control(f):
|
|||
if i < 0:
|
||||
raise ValueError("Not a header, not a continuation: ``%s''" % line)
|
||||
last = line[:i]
|
||||
lines = [line[i+1:].lstrip()]
|
||||
lines = [line[i + 1:].lstrip()]
|
||||
if last:
|
||||
e[last] = '\n'.join(lines)
|
||||
if e:
|
||||
|
@ -104,8 +109,8 @@ def read_control(f):
|
|||
|
||||
return entries
|
||||
|
||||
|
||||
class TextWrapper(textwrap.TextWrapper):
|
||||
wordsep_re = re.compile(
|
||||
r'(\s+|' # any whitespace
|
||||
r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash
|
||||
|
||||
|
|
Loading…
Reference in New Issue