Make pylint happy

New pylint throw some more warnings.
This commit is contained in:
Marek Marczykowski-Górecki 2017-04-21 15:43:46 +02:00
parent 0ada6d0b64
commit fa72679b47
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724
20 changed files with 43 additions and 62 deletions

View File

@ -480,7 +480,7 @@ class VMCollection(object):
# if not self[netvm_qid].is_netvm(): # if not self[netvm_qid].is_netvm():
# return set([]) # return set([])
while len(new_vms) > 0: while new_vms:
cur_vm = new_vms.pop() cur_vm = new_vms.pop()
for vm in cur_vm.connected_vms: for vm in cur_vm.connected_vms:
if vm in dependent_vms: if vm in dependent_vms:

View File

@ -216,8 +216,7 @@ class DeviceCollection(object):
if dev: if dev:
assert len(dev) == 1 assert len(dev) == 1
return dev[0] return dev[0]
else: return UnknownDevice(self._vm, ident)
return UnknownDevice(self._vm, ident)
class DeviceManager(dict): class DeviceManager(dict):

View File

@ -406,8 +406,7 @@ class Firewall(object):
def _translate_action(key): def _translate_action(key):
if xml_root.get(key, policy_v1) == 'allow': if xml_root.get(key, policy_v1) == 'allow':
return Action.accept return Action.accept
else: return Action.drop
return Action.drop
self.rules.append(Rule(None, self.rules.append(Rule(None,
action=_translate_action('dns'), action=_translate_action('dns'),

View File

@ -55,8 +55,7 @@ class Element(object):
if wrap: if wrap:
return ''.join(self.schema.wrapper.fill(p) + '\n\n' return ''.join(self.schema.wrapper.fill(p) + '\n\n'
for p in textwrap.dedent(xml.text.strip('\n')).split('\n\n')) for p in textwrap.dedent(xml.text.strip('\n')).split('\n\n'))
else: return ' '.join(xml.text.strip().split())
return ' '.join(xml.text.strip().split())
def get_data_type(self, xml=None): def get_data_type(self, xml=None):
@ -93,7 +92,7 @@ class Element(object):
for xml in self.xml.xpath('''./rng:attribute | for xml in self.xml.xpath('''./rng:attribute |
./rng:optional/rng:attribute | ./rng:optional/rng:attribute |
./rng:choice/rng:attribute''', namespaces=self.nsmap): ./rng:choice/rng:attribute''', namespaces=self.nsmap):
required = xml.getparent() == self.xml and 'yes' or 'no' required = 'yes' if xml.getparent() == self.xml else 'no'
yield (xml, required) yield (xml, required)
@ -212,6 +211,6 @@ Quick example, worth thousands lines of specification:
if __name__ == '__main__': if __name__ == '__main__':
main(*sys.argv[1:]) main(*sys.argv[1:]) # pylint: disable=no-value-for-parameter
# vim: ts=4 sw=4 et # vim: ts=4 sw=4 et

View File

@ -446,8 +446,7 @@ class Storage(object):
"You need to pass a Volume or pool name as str" "You need to pass a Volume or pool name as str"
if isinstance(volume, Volume): if isinstance(volume, Volume):
return self.pools[volume.name] return self.pools[volume.name]
else: return self.vm.app.pools[volume]
return self.vm.app.pools[volume]
def commit(self): def commit(self):
''' Makes changes to an 'origin' volume persistent ''' ''' Makes changes to an 'origin' volume persistent '''
@ -476,8 +475,7 @@ class Storage(object):
"You need to pass a Volume or pool name as str" "You need to pass a Volume or pool name as str"
if isinstance(volume, Volume): if isinstance(volume, Volume):
return self.pools[volume.name].export(volume) return self.pools[volume.name].export(volume)
else: return self.pools[volume].export(self.vm.volumes[volume])
return self.pools[volume].export(self.vm.volumes[volume])
class Pool(object): class Pool(object):

View File

@ -378,10 +378,9 @@ class FileVolume(qubes.storage.Volume):
if not os.path.exists(old_revision): if not os.path.exists(old_revision):
return {} return {}
else: seconds = os.path.getctime(old_revision)
seconds = os.path.getctime(old_revision) iso_date = qubes.storage.isodate(seconds).split('.', 1)[0]
iso_date = qubes.storage.isodate(seconds).split('.', 1)[0] return {iso_date: old_revision}
return {iso_date: old_revision}
@property @property
def usage(self): def usage(self):

View File

@ -401,8 +401,7 @@ class ThinVolume(qubes.storage.Volume):
return qubes.devices.BlockDevice( return qubes.devices.BlockDevice(
'/dev/' + self._vid_snap, self.name, self.script, '/dev/' + self._vid_snap, self.name, self.script,
self.rw, self.domain, self.devtype) self.rw, self.domain, self.devtype)
else: return super(ThinVolume, self).block_device()
return super(ThinVolume, self).block_device()
@property @property
def usage(self): # lvm thin usage always returns at least the same usage as def usage(self): # lvm thin usage always returns at least the same usage as

View File

@ -38,10 +38,9 @@ class TarSparseInfo(tarfile.TarInfo):
@property @property
def realsize(self): def realsize(self):
if len(self.sparsemap): if self.sparsemap:
return self.sparsemap[-1][0] + self.sparsemap[-1][1] return self.sparsemap[-1][0] + self.sparsemap[-1][1]
else: return self.size
return self.size
def sparse_header_chunk(self, index): def sparse_header_chunk(self, index):
if index < len(self.sparsemap): if index < len(self.sparsemap):
@ -49,8 +48,7 @@ class TarSparseInfo(tarfile.TarInfo):
tarfile.itn(self.sparsemap[index][0], 12, tarfile.GNU_FORMAT), tarfile.itn(self.sparsemap[index][0], 12, tarfile.GNU_FORMAT),
tarfile.itn(self.sparsemap[index][1], 12, tarfile.GNU_FORMAT), tarfile.itn(self.sparsemap[index][1], 12, tarfile.GNU_FORMAT),
]) ])
else: return b'\0' * 12 * 2
return b'\0' * 12 * 2
def get_gnu_header(self): def get_gnu_header(self):
'''Part placed in 'prefix' field of posix header''' '''Part placed in 'prefix' field of posix header'''
@ -81,8 +79,7 @@ class TarSparseInfo(tarfile.TarInfo):
header_buf = super(TarSparseInfo, self).tobuf(format, encoding, errors) header_buf = super(TarSparseInfo, self).tobuf(format, encoding, errors)
if len(self.sparsemap) > 4: if len(self.sparsemap) > 4:
return header_buf + b''.join(self.create_ext_sparse_headers()) return header_buf + b''.join(self.create_ext_sparse_headers())
else: return header_buf
return header_buf
def create_ext_sparse_headers(self): def create_ext_sparse_headers(self):
for ext_hdr in range(4, len(self.sparsemap), 21): for ext_hdr in range(4, len(self.sparsemap), 21):

View File

@ -258,7 +258,7 @@ class VolumeAction(QubesAction):
pool = app.pools[pool_name] pool = app.pools[pool_name]
volume = [v for v in pool.volumes if v.vid == vid] volume = [v for v in pool.volumes if v.vid == vid]
assert volume > 1, 'Duplicate vids in pool %s' % pool_name assert volume > 1, 'Duplicate vids in pool %s' % pool_name
if len(volume) == 0: if not volume:
parser.error_runtime( parser.error_runtime(
'no volume with id {!r} pool: {!r}'.format(vid, 'no volume with id {!r} pool: {!r}'.format(vid,
pool_name)) pool_name))
@ -353,6 +353,7 @@ class QubesArgumentParser(argparse.ArgumentParser):
self.set_defaults(verbose=1, quiet=0) self.set_defaults(verbose=1, quiet=0)
def parse_args(self, *args, **kwargs): def parse_args(self, *args, **kwargs):
# pylint: disable=arguments-differ
namespace = super(QubesArgumentParser, self).parse_args(*args, **kwargs) namespace = super(QubesArgumentParser, self).parse_args(*args, **kwargs)
if self._want_app and not self._want_app_no_instance: if self._want_app and not self._want_app_no_instance:
@ -433,7 +434,7 @@ class AliasedSubParsersAction(argparse._SubParsersAction):
# source https://gist.github.com/sampsyo/471779 # source https://gist.github.com/sampsyo/471779
# pylint: disable=protected-access,too-few-public-methods # pylint: disable=protected-access,too-few-public-methods
class _AliasedPseudoAction(argparse.Action): class _AliasedPseudoAction(argparse.Action):
# pylint: disable=redefined-builtin # pylint: disable=redefined-builtin,arguments-differ
def __init__(self, name, aliases, help): def __init__(self, name, aliases, help):
dest = name dest = name
if aliases: if aliases:
@ -442,8 +443,7 @@ class AliasedSubParsersAction(argparse._SubParsersAction):
sup.__init__(option_strings=[], dest=dest, help=help) sup.__init__(option_strings=[], dest=dest, help=help)
def __call__(self, **kwargs): def __call__(self, **kwargs):
super(AliasedSubParsersAction._AliasedPseudoAction, self).__call__( pass
**kwargs)
def add_parser(self, name, **kwargs): def add_parser(self, name, **kwargs):
if 'aliases' in kwargs: if 'aliases' in kwargs:

View File

@ -42,6 +42,7 @@ class QubesDaemonProtocol(asyncio.Protocol):
self.untrusted_buffer.close() self.untrusted_buffer.close()
def data_received(self, untrusted_data): def data_received(self, untrusted_data):
# pylint: disable=arguments-differ
print('data_received(untrusted_data={!r})'.format(untrusted_data)) print('data_received(untrusted_data={!r})'.format(untrusted_data))
if self.len_untrusted_buffer + len(untrusted_data) > self.buffer_size: if self.len_untrusted_buffer + len(untrusted_data) > self.buffer_size:
self.app.log.warning('request too long') self.app.log.warning('request too long')

View File

@ -204,7 +204,6 @@ def main(args=None):
"and (if encrypted) decrypt the backup: ") "and (if encrypted) decrypt the backup: ")
encoding = sys.stdin.encoding or locale.getpreferredencoding() encoding = sys.stdin.encoding or locale.getpreferredencoding()
# pylint: disable=redefined-variable-type
passphrase = passphrase.decode(encoding) passphrase = passphrase.decode(encoding)
args.app.log.info("Checking backup content...") args.app.log.info("Checking backup content...")

View File

@ -38,6 +38,7 @@ parser.add_argument("--template", action="store_true", dest="template",
def print_msg(domains, what_single, what_plural): def print_msg(domains, what_single, what_plural):
# pylint: disable=len-as-condition
if len(domains) == 0: if len(domains) == 0:
print("None of given VM {!s}".format(what_single)) print("None of given VM {!s}".format(what_single))
elif len(domains) == 1: elif len(domains) == 1:

View File

@ -309,8 +309,7 @@ class StatusColumn(Column):
if ret is not None: if ret is not None:
if getattr(vm, 'hvm', False): if getattr(vm, 'hvm', False):
return ret.upper() return ret.upper()
else: return ret
return ret
@flag(2) @flag(2)
@ -478,8 +477,7 @@ class Table(object):
'''Format single table row (all columns for one domain).''' '''Format single table row (all columns for one domain).'''
if self.raw_data: if self.raw_data:
return '|'.join(col.format(vm) for col in self.columns) return '|'.join(col.format(vm) for col in self.columns)
else: return ''.join(col.cell(vm) for col in self.columns)
return ''.join(col.cell(vm) for col in self.columns)
def write_table(self, stream=sys.stdout): def write_table(self, stream=sys.stdout):

View File

@ -84,7 +84,7 @@ def list_pools(app):
''' Prints out all known pools and their drivers ''' ''' Prints out all known pools and their drivers '''
result = [('NAME', 'DRIVER')] result = [('NAME', 'DRIVER')]
for pool in app.pools.values(): for pool in app.pools.values():
if len(pool.volumes) == 0 and issubclass( if not pool.volumes and issubclass(
pool.__class__, qubes.storage.domain.DomainPool): pool.__class__, qubes.storage.domain.DomainPool):
# skip empty DomainPools # skip empty DomainPools
continue continue

View File

@ -111,22 +111,19 @@ def parse_size(size):
def mbytes_to_kmg(size): def mbytes_to_kmg(size):
if size > 1024: if size > 1024:
return "%d GiB" % (size / 1024) return "%d GiB" % (size / 1024)
else: return "%d MiB" % size
return "%d MiB" % size
def kbytes_to_kmg(size): def kbytes_to_kmg(size):
if size > 1024: if size > 1024:
return mbytes_to_kmg(size / 1024) return mbytes_to_kmg(size / 1024)
else: return "%d KiB" % size
return "%d KiB" % size
def bytes_to_kmg(size): def bytes_to_kmg(size):
if size > 1024: if size > 1024:
return kbytes_to_kmg(size / 1024) return kbytes_to_kmg(size / 1024)
else: return "%d B" % size
return "%d B" % size
def size_to_human(size): def size_to_human(size):
@ -137,8 +134,7 @@ def size_to_human(size):
return str(round(size / 1024.0, 1)) + ' KiB' return str(round(size / 1024.0, 1)) + ' KiB'
elif size < 1024 * 1024 * 1024: elif size < 1024 * 1024 * 1024:
return str(round(size / (1024.0 * 1024), 1)) + ' MiB' return str(round(size / (1024.0 * 1024), 1)) + ' MiB'
else: return str(round(size / (1024.0 * 1024 * 1024), 1)) + ' GiB'
return str(round(size / (1024.0 * 1024 * 1024), 1)) + ' GiB'
def urandom(size): def urandom(size):

View File

@ -132,7 +132,7 @@ class AdminVM(qubes.vm.qubesvm.QubesVM):
.. seealso: .. seealso:
:py:meth:`qubes.vm.qubesvm.QubesVM.start` :py:meth:`qubes.vm.qubesvm.QubesVM.start`
''' # pylint: disable=unused-argument ''' # pylint: disable=unused-argument,arguments-differ
raise qubes.exc.QubesVMError(self, 'Cannot start Dom0 fake domain!') raise qubes.exc.QubesVMError(self, 'Cannot start Dom0 fake domain!')
def suspend(self): def suspend(self):

View File

@ -49,8 +49,7 @@ def _default_ip(self):
return None return None
if self.netvm is not None: if self.netvm is not None:
return self.netvm.get_ip_for_vm(self) # pylint: disable=no-member return self.netvm.get_ip_for_vm(self) # pylint: disable=no-member
else: return self.get_ip_for_vm(self)
return self.get_ip_for_vm(self)
def _setter_ip(self, prop, value): def _setter_ip(self, prop, value):
@ -173,8 +172,7 @@ class NetVMMixin(qubes.events.Emitter):
'10.139.1.1', '10.139.1.1',
'10.139.1.2', '10.139.1.2',
) )
else: return None
return None
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self._firewall = None self._firewall = None

View File

@ -427,6 +427,7 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
doc='Kernel used by this domain.') doc='Kernel used by this domain.')
# CORE2: swallowed uses_default_kernelopts # CORE2: swallowed uses_default_kernelopts
# pylint: disable=no-member
kernelopts = qubes.property('kernelopts', type=str, load_stage=4, kernelopts = qubes.property('kernelopts', type=str, load_stage=4,
default=(lambda self: qubes.config.defaults['kernelopts_pcidevs'] default=(lambda self: qubes.config.defaults['kernelopts_pcidevs']
if list(self.devices['pci'].attached(persistent=True)) if list(self.devices['pci'].attached(persistent=True))
@ -449,6 +450,8 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
ls_width=12, ls_width=12,
doc='FIXME') doc='FIXME')
# pylint: enable=no-member
# @property # @property
# def default_user(self): # def default_user(self):
# if self.template is not None: # if self.template is not None:
@ -1430,15 +1433,12 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
else: else:
if not self.is_fully_usable(): if not self.is_fully_usable():
return "Transient" return "Transient"
else: return "Running"
return "Running" return 'Halted'
else:
return 'Halted'
except libvirt.libvirtError as e: except libvirt.libvirtError as e:
if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN: if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
return 'Halted' return 'Halted'
else: raise
raise
assert False assert False
@ -1612,8 +1612,7 @@ class QubesVM(qubes.vm.mix.net.NetVMMixin, qubes.vm.BaseVM):
'/vm/{}/start_time'.format(self.uuid)) '/vm/{}/start_time'.format(self.uuid))
if start_time != '': if start_time != '':
return datetime.datetime.fromtimestamp(float(start_time)) return datetime.datetime.fromtimestamp(float(start_time))
else: return None
return None
def is_outdated(self): def is_outdated(self):
'''Check whether domain needs restart to update root image from \ '''Check whether domain needs restart to update root image from \

View File

@ -364,7 +364,7 @@ class PolicyAction(object):
self.target = target self.target = target
self.action = Action.allow self.action = Action.allow
else: else:
self.action = Action.deny # pylint: disable=redefined-variable-type self.action = Action.deny
raise AccessDenied( raise AccessDenied(
'denied by the user {}:{}'.format(self.rule.filename, 'denied by the user {}:{}'.format(self.rule.filename,
self.rule.lineno)) self.rule.lineno))
@ -569,7 +569,7 @@ class Policy(object):
else: else:
targets = list( targets = list(
self.collect_targets_for_ask(system_info, source)) self.collect_targets_for_ask(system_info, source))
if len(targets) == 0: if not targets:
raise AccessDenied( raise AccessDenied(
'policy define \'ask\' action at {}:{} but no target is ' 'policy define \'ask\' action at {}:{} but no target is '
'available to choose from'.format( 'available to choose from'.format(

View File

@ -119,7 +119,7 @@ class RPCConfirmationWindow:
partitioned = escaped.partition('.') partitioned = escaped.partition('.')
formatted = partitioned[0] + partitioned[1] formatted = partitioned[0] + partitioned[1]
if len(partitioned[2]) > 0: if partitioned[2]:
formatted += "<b>" + partitioned[2] + "</b>" formatted += "<b>" + partitioned[2] + "</b>"
else: else:
formatted = "<b>" + formatted + "</b>" formatted = "<b>" + formatted + "</b>"
@ -203,8 +203,7 @@ class RPCConfirmationWindow:
if self._confirmed: if self._confirmed:
return self._target_name return self._target_name
else: return False
return False
def confirm_rpc(entries_info, source, rpc_operation, targets_list, target=None): def confirm_rpc(entries_info, source, rpc_operation, targets_list, target=None):