Bump pylint version to one that supports python3.7

The listed revision no longer supports python2, but afaik, we are
always running under python3 for those tests anyway.

Change-Id: Iba94d73eeb65fb21f5d098afe0fbe4348dbea850
This commit is contained in:
Doug Wiegley 2019-02-19 23:47:33 -07:00 committed by Slawek Kaplonski
parent f74731d136
commit 7e208c3014
8 changed files with 36 additions and 23 deletions

View File

@ -85,7 +85,14 @@ disable=
too-many-nested-blocks, too-many-nested-blocks,
too-many-public-methods, too-many-public-methods,
too-many-return-statements, too-many-return-statements,
too-many-statements too-many-statements,
# new for python3 version of pylint
chained-comparison,
consider-using-dict-comprehension,
consider-using-in,
consider-using-set-comprehension,
unnecessary-pass,
useless-object-inheritance
[BASIC] [BASIC]
# Variable names can be 1 to 31 characters long, with lowercase and underscores # Variable names can be 1 to 31 characters long, with lowercase and underscores

View File

@ -2,7 +2,7 @@ alabaster==0.7.10
alembic==0.8.10 alembic==0.8.10
amqp==2.1.1 amqp==2.1.1
appdirs==1.3.0 appdirs==1.3.0
astroid==1.6.5 astroid==2.1.0
Babel==2.3.4 Babel==2.3.4
bandit==1.1.0 bandit==1.1.0
bashate==0.5.1 bashate==0.5.1
@ -103,7 +103,7 @@ pycparser==2.18
pyflakes==0.8.1 pyflakes==0.8.1
Pygments==2.2.0 Pygments==2.2.0
pyinotify==0.9.6 pyinotify==0.9.6
pylint==1.9.2 pylint==2.2.0
PyMySQL==0.7.6 PyMySQL==0.7.6
pyparsing==2.1.0 pyparsing==2.1.0
pyperclip==1.5.27 pyperclip==1.5.27

View File

@ -108,6 +108,8 @@ class DvrLocalRouter(dvr_router_base.DvrRouterBase):
def floating_ip_added_dist(self, fip, fip_cidr): def floating_ip_added_dist(self, fip, fip_cidr):
"""Add floating IP to respective namespace based on agent mode.""" """Add floating IP to respective namespace based on agent mode."""
if fip.get(lib_constants.DVR_SNAT_BOUND): if fip.get(lib_constants.DVR_SNAT_BOUND):
# TODO(dougwig) - remove this disable when fixing bug #1816874
# pylint: disable=assignment-from-no-return
floating_ip_status = self.add_centralized_floatingip(fip, fip_cidr) floating_ip_status = self.add_centralized_floatingip(fip, fip_cidr)
return floating_ip_status return floating_ip_status
if not self._check_if_floatingip_bound_to_host(fip): if not self._check_if_floatingip_bound_to_host(fip):

View File

@ -377,6 +377,8 @@ class RouterInfo(object):
fip.get('host') == self.host): fip.get('host') == self.host):
LOG.debug("Floating IP is migrating from centralized " LOG.debug("Floating IP is migrating from centralized "
"to distributed: %s", fip) "to distributed: %s", fip)
# TODO(dougwig) - remove this disable when fixing bug #1816874
# pylint: disable=assignment-from-no-return
fip_statuses[fip['id']] = self.migrate_centralized_floating_ip( fip_statuses[fip['id']] = self.migrate_centralized_floating_ip(
fip, interface_name, device) fip, interface_name, device)
elif fip_statuses[fip['id']] == fip['status']: elif fip_statuses[fip['id']] == fip['status']:

View File

@ -417,7 +417,7 @@ class NeutronDbPluginV2(db_base_plugin_common.DbBasePluginCommon,
item.target_tenant == '*'): item.target_tenant == '*'):
entry = item entry = item
break break
setattr(network, 'shared', True if entry else False) setattr(network, 'shared', bool(entry))
self._validate_shared_update(context, id, network, n) self._validate_shared_update(context, id, network, n)
update_shared = n.pop('shared') update_shared = n.pop('shared')
if update_shared and not entry: if update_shared and not entry:

View File

@ -61,7 +61,7 @@ class Quotasv2_detail(api_extensions.ExtensionDescriptor):
# Ensure new extension is not loaded with old conf driver. # Ensure new extension is not loaded with old conf driver.
extensions.register_custom_supported_check( extensions.register_custom_supported_check(
ALIAS, lambda: True if QUOTA_DRIVER == DB_QUOTA_DRIVER else False, ALIAS, lambda: QUOTA_DRIVER == DB_QUOTA_DRIVER,
plugin_agnostic=True) plugin_agnostic=True)
@classmethod @classmethod

View File

@ -272,21 +272,21 @@ class RbacNeutronMetaclass(type):
""" """
@classmethod @classmethod
def _get_attribute(mcs, attribute_name, bases): def _get_attribute(cls, attribute_name, bases):
for b in bases: for b in bases:
attribute = getattr(b, attribute_name, None) attribute = getattr(b, attribute_name, None)
if attribute: if attribute:
return attribute return attribute
@classmethod @classmethod
def get_attribute(mcs, attribute_name, bases, dct): def get_attribute(cls, attribute_name, bases, dct):
return (dct.get(attribute_name, None) or return (dct.get(attribute_name, None) or
mcs._get_attribute(attribute_name, bases)) cls._get_attribute(attribute_name, bases))
@classmethod @classmethod
def update_synthetic_fields(mcs, bases, dct): def update_synthetic_fields(cls, bases, dct):
if not dct.get('synthetic_fields', None): if not dct.get('synthetic_fields', None):
synthetic_attr = mcs.get_attribute('synthetic_fields', bases, dct) synthetic_attr = cls.get_attribute('synthetic_fields', bases, dct)
dct['synthetic_fields'] = synthetic_attr or [] dct['synthetic_fields'] = synthetic_attr or []
if 'shared' in dct['synthetic_fields']: if 'shared' in dct['synthetic_fields']:
raise exceptions.ObjectActionError( raise exceptions.ObjectActionError(
@ -315,25 +315,25 @@ class RbacNeutronMetaclass(type):
return func return func
@classmethod @classmethod
def replace_class_methods_with_hooks(mcs, bases, dct): def replace_class_methods_with_hooks(cls, bases, dct):
methods_replacement_map = {'create': _create_hook, methods_replacement_map = {'create': _create_hook,
'update': _update_hook, 'update': _update_hook,
'to_dict': _to_dict_hook} 'to_dict': _to_dict_hook}
for orig_method_name, new_method in methods_replacement_map.items(): for orig_method_name, new_method in methods_replacement_map.items():
orig_method = mcs.get_attribute(orig_method_name, bases, dct) orig_method = cls.get_attribute(orig_method_name, bases, dct)
hook_method = mcs.get_replaced_method(orig_method, hook_method = cls.get_replaced_method(orig_method,
new_method) new_method)
dct[orig_method_name] = hook_method dct[orig_method_name] = hook_method
def __new__(mcs, name, bases, dct): def __new__(cls, name, bases, dct):
mcs.validate_existing_attrs(name, dct) cls.validate_existing_attrs(name, dct)
mcs.update_synthetic_fields(bases, dct) cls.update_synthetic_fields(bases, dct)
mcs.replace_class_methods_with_hooks(bases, dct) cls.replace_class_methods_with_hooks(bases, dct)
cls = type(name, (RbacNeutronDbObjectMixin,) + bases, dct) klass = type(name, (RbacNeutronDbObjectMixin,) + bases, dct)
cls.add_extra_filter_name('shared') klass.add_extra_filter_name('shared')
mcs.subscribe_to_rbac_events(cls) cls.subscribe_to_rbac_events(klass)
return cls return klass
NeutronRbacObject = with_metaclass(RbacNeutronMetaclass, base.NeutronDbObject) NeutronRbacObject = with_metaclass(RbacNeutronMetaclass, base.NeutronDbObject)

View File

@ -18,8 +18,10 @@ oslotest>=3.2.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0 stestr>=1.0.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0 reno>=2.5.0 # Apache-2.0
ddt>=1.0.1 # MIT ddt>=1.0.1 # MIT
astroid==1.6.5 # LGPLv2.1 astroid==1.6.5;python_version<"3.0" # LGPLv2.1
pylint==1.9.2 # GPLv2 astroid==2.1.0;python_version>="3.0" # LGPLv2.1
pylint==1.9.2;python_version<"3.0" # GPLv2
pylint==2.2.0;python_version>="3.0" # GPLv2
# Needed to run DB commands in virtualenvs # Needed to run DB commands in virtualenvs
PyMySQL>=0.7.6 # MIT License PyMySQL>=0.7.6 # MIT License
bashate>=0.5.1 # Apache-2.0 bashate>=0.5.1 # Apache-2.0