Upgrade pylint to 2.0.1 (#15683)
* Upgrade pylint to 2.0.1 * Pylint 2 bad-whitespace fix * Pylint 2 possibly-unused-variable fixes * Pylint 2 try-except-raise fixes * Disable pylint fixme for todoist for now https://github.com/PyCQA/pylint/pull/2320 * Disable pylint 2 useless-return for now https://github.com/PyCQA/pylint/issues/2300 * Disable pylint 2 invalid-name for type variables for now https://github.com/PyCQA/pylint/issues/1290 * Disable pylint 2 not-an-iterable for now https://github.com/PyCQA/pylint/issues/2311 * Pylint 2 unsubscriptable-object workarounds * Disable intentional pylint 2 assignment-from-nones * Disable pylint 2 unsupported-membership-test apparent false positives * Disable pylint 2 assignment-from-no-return apparent false positives * Disable pylint 2 comparison-with-callable false positives https://github.com/PyCQA/pylint/issues/2306pull/15689/head
parent
9fb8bc8991
commit
eee9b50b70
homeassistant
components
calendar
light
media_player
helpers
|
@ -45,7 +45,7 @@ NOTIFICATION_AUTH_TITLE = 'Apple TV Authentication'
|
|||
NOTIFICATION_SCAN_ID = 'apple_tv_scan_notification'
|
||||
NOTIFICATION_SCAN_TITLE = 'Apple TV Scan'
|
||||
|
||||
T = TypeVar('T')
|
||||
T = TypeVar('T') # pylint: disable=invalid-name
|
||||
|
||||
|
||||
# This version of ensure_list interprets an empty dict as no value
|
||||
|
|
|
@ -26,6 +26,9 @@ CONF_PROJECT_DUE_DATE = 'due_date_days'
|
|||
CONF_PROJECT_LABEL_WHITELIST = 'labels'
|
||||
CONF_PROJECT_WHITELIST = 'include_projects'
|
||||
|
||||
# https://github.com/PyCQA/pylint/pull/2320
|
||||
# pylint: disable=fixme
|
||||
|
||||
# Calendar Platform: Does this calendar event last all day?
|
||||
ALL_DAY = 'all_day'
|
||||
# Attribute: All tasks in this project
|
||||
|
|
|
@ -439,6 +439,7 @@ class Profiles:
|
|||
@classmethod
|
||||
def get_default(cls, entity_id):
|
||||
"""Return the default turn-on profile for the given light."""
|
||||
# pylint: disable=unsupported-membership-test
|
||||
name = entity_id + ".default"
|
||||
if name in cls._all:
|
||||
return name
|
||||
|
|
|
@ -216,12 +216,8 @@ class BluesoundPlayer(MediaPlayerDevice):
|
|||
async def force_update_sync_status(
|
||||
self, on_updated_cb=None, raise_timeout=False):
|
||||
"""Update the internal status."""
|
||||
resp = None
|
||||
try:
|
||||
resp = await self.send_bluesound_command(
|
||||
'SyncStatus', raise_timeout, raise_timeout)
|
||||
except Exception:
|
||||
raise
|
||||
resp = await self.send_bluesound_command(
|
||||
'SyncStatus', raise_timeout, raise_timeout)
|
||||
|
||||
if not resp:
|
||||
return None
|
||||
|
|
|
@ -253,9 +253,11 @@ class PandoraMediaPlayer(MediaPlayerDevice):
|
|||
_LOGGER.warning("On unexpected station list page")
|
||||
self._pianobar.sendcontrol('m') # press enter
|
||||
self._pianobar.sendcontrol('m') # do it again b/c an 'i' got in
|
||||
# pylint: disable=assignment-from-none
|
||||
response = self.update_playing_status()
|
||||
elif match_idx == 3:
|
||||
_LOGGER.debug("Received new playlist list")
|
||||
# pylint: disable=assignment-from-none
|
||||
response = self.update_playing_status()
|
||||
else:
|
||||
response = self._pianobar.before.decode('utf-8')
|
||||
|
|
|
@ -186,19 +186,14 @@ class CityBikesNetwork:
|
|||
networks = yield from async_citybikes_request(
|
||||
hass, NETWORKS_URI, NETWORKS_RESPONSE_SCHEMA)
|
||||
cls.NETWORKS_LIST = networks[ATTR_NETWORKS_LIST]
|
||||
networks_list = cls.NETWORKS_LIST
|
||||
network = networks_list[0]
|
||||
result = network[ATTR_ID]
|
||||
minimum_dist = location.distance(
|
||||
latitude, longitude,
|
||||
network[ATTR_LOCATION][ATTR_LATITUDE],
|
||||
network[ATTR_LOCATION][ATTR_LONGITUDE])
|
||||
for network in networks_list[1:]:
|
||||
result = None
|
||||
minimum_dist = None
|
||||
for network in cls.NETWORKS_LIST:
|
||||
network_latitude = network[ATTR_LOCATION][ATTR_LATITUDE]
|
||||
network_longitude = network[ATTR_LOCATION][ATTR_LONGITUDE]
|
||||
dist = location.distance(
|
||||
latitude, longitude, network_latitude, network_longitude)
|
||||
if dist < minimum_dist:
|
||||
if minimum_dist is None or dist < minimum_dist:
|
||||
minimum_dist = dist
|
||||
result = network[ATTR_ID]
|
||||
|
||||
|
|
|
@ -173,8 +173,4 @@ class NZBGetAPI:
|
|||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||
def update(self):
|
||||
"""Update cached response."""
|
||||
try:
|
||||
self.status = self.post('status')['result']
|
||||
except requests.exceptions.ConnectionError:
|
||||
# failed to update status - exception already logged in self.post
|
||||
raise
|
||||
self.status = self.post('status')['result']
|
||||
|
|
|
@ -162,8 +162,4 @@ class PyLoadAPI:
|
|||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||
def update(self):
|
||||
"""Update cached response."""
|
||||
try:
|
||||
self.status = self.post('speed')
|
||||
except requests.exceptions.ConnectionError:
|
||||
# Failed to update status - exception already logged in self.post
|
||||
raise
|
||||
self.status = self.post('speed')
|
||||
|
|
|
@ -49,9 +49,11 @@ from homeassistant.util.unit_system import UnitSystem, METRIC_SYSTEM # NOQA
|
|||
if TYPE_CHECKING:
|
||||
from homeassistant.config_entries import ConfigEntries # noqa
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
T = TypeVar('T')
|
||||
CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable)
|
||||
CALLBACK_TYPE = Callable[[], None]
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
DOMAIN = 'homeassistant'
|
||||
|
||||
|
|
|
@ -63,7 +63,8 @@ async def async_handle(hass, platform, intent_type, slots=None,
|
|||
intent_type, err)
|
||||
raise InvalidSlotInfo(
|
||||
'Received invalid slot info for {}'.format(intent_type)) from err
|
||||
except IntentHandleError:
|
||||
# https://github.com/PyCQA/pylint/issues/2284
|
||||
except IntentHandleError: # pylint: disable=try-except-raise
|
||||
raise
|
||||
except Exception as err:
|
||||
raise IntentUnexpectedError(
|
||||
|
|
|
@ -27,7 +27,7 @@ from homeassistant.util import OrderedSet
|
|||
if TYPE_CHECKING:
|
||||
from homeassistant.core import HomeAssistant # NOQA
|
||||
|
||||
CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable)
|
||||
CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable) # noqa pylint: disable=invalid-name
|
||||
|
||||
PREPARED = False
|
||||
|
||||
|
|
|
@ -163,13 +163,13 @@ def check(config_dir, secrets=False):
|
|||
'secret_cache': None,
|
||||
}
|
||||
|
||||
# pylint: disable=unused-variable
|
||||
# pylint: disable=possibly-unused-variable
|
||||
def mock_load(filename):
|
||||
"""Mock hass.util.load_yaml to save config file names."""
|
||||
res['yaml_files'][filename] = True
|
||||
return MOCKS['load'][1](filename)
|
||||
|
||||
# pylint: disable=unused-variable
|
||||
# pylint: disable=possibly-unused-variable
|
||||
def mock_secrets(ldr, node):
|
||||
"""Mock _get_secrets."""
|
||||
try:
|
||||
|
|
|
@ -137,6 +137,7 @@ def run(script_args: List) -> int:
|
|||
override_measurement = args.override_measurement
|
||||
default_measurement = args.default_measurement
|
||||
|
||||
# pylint: disable=assignment-from-no-return
|
||||
query = session.query(func.count(models.Events.event_type)).filter(
|
||||
models.Events.event_type == 'state_changed')
|
||||
|
||||
|
|
|
@ -17,9 +17,11 @@ from typing import (Any, Optional, TypeVar, Callable, KeysView, Union, # noqa
|
|||
|
||||
from .dt import as_local, utcnow
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
T = TypeVar('T')
|
||||
U = TypeVar('U')
|
||||
ENUM_T = TypeVar('ENUM_T', bound=enum.Enum)
|
||||
# pylint: enable=invalid-name
|
||||
|
||||
RE_SANITIZE_FILENAME = re.compile(r'(~|\.\.|/|\\)')
|
||||
RE_SANITIZE_PATH = re.compile(r'(~|\.(\.)+)')
|
||||
|
@ -121,6 +123,9 @@ def get_random_string(length: int = 10) -> str:
|
|||
class OrderedEnum(enum.Enum):
|
||||
"""Taken from Python 3.4.0 docs."""
|
||||
|
||||
# https://github.com/PyCQA/pylint/issues/2306
|
||||
# pylint: disable=comparison-with-callable
|
||||
|
||||
def __ge__(self: ENUM_T, other: ENUM_T) -> bool:
|
||||
"""Return the greater than element."""
|
||||
if self.__class__ is other.__class__:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
"""Decorator utility functions."""
|
||||
from typing import Callable, TypeVar
|
||||
CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable)
|
||||
|
||||
CALLABLE_T = TypeVar('CALLABLE_T', bound=Callable) # noqa pylint: disable=invalid-name
|
||||
|
||||
|
||||
class Registry(dict):
|
||||
|
|
|
@ -98,7 +98,7 @@ def utc_from_timestamp(timestamp: float) -> dt.datetime:
|
|||
|
||||
|
||||
def start_of_local_day(dt_or_d:
|
||||
Union[dt.date, dt.datetime]=None) -> dt.datetime:
|
||||
Union[dt.date, dt.datetime] = None) -> dt.datetime:
|
||||
"""Return local datetime object of start of day from date or datetime."""
|
||||
if dt_or_d is None:
|
||||
date = now().date() # type: dt.date
|
||||
|
|
|
@ -24,8 +24,8 @@ _SECRET_NAMESPACE = 'homeassistant'
|
|||
SECRET_YAML = 'secrets.yaml'
|
||||
__SECRET_CACHE = {} # type: Dict[str, JSON_TYPE]
|
||||
|
||||
JSON_TYPE = Union[List, Dict, str]
|
||||
DICT_T = TypeVar('DICT_T', bound=Dict)
|
||||
JSON_TYPE = Union[List, Dict, str] # pylint: disable=invalid-name
|
||||
DICT_T = TypeVar('DICT_T', bound=Dict) # pylint: disable=invalid-name
|
||||
|
||||
|
||||
class NodeListClass(list):
|
||||
|
|
6
pylintrc
6
pylintrc
|
@ -11,6 +11,8 @@
|
|||
# too-few-* - same as too-many-*
|
||||
# abstract-method - with intro of async there are always methods missing
|
||||
# inconsistent-return-statements - doesn't handle raise
|
||||
# useless-return - https://github.com/PyCQA/pylint/issues/2300
|
||||
# not-an-iterable - https://github.com/PyCQA/pylint/issues/2311
|
||||
disable=
|
||||
abstract-class-little-used,
|
||||
abstract-method,
|
||||
|
@ -19,6 +21,7 @@ disable=
|
|||
global-statement,
|
||||
inconsistent-return-statements,
|
||||
locally-disabled,
|
||||
not-an-iterable,
|
||||
not-context-manager,
|
||||
redefined-variable-type,
|
||||
too-few-public-methods,
|
||||
|
@ -30,7 +33,8 @@ disable=
|
|||
too-many-public-methods,
|
||||
too-many-return-statements,
|
||||
too-many-statements,
|
||||
unused-argument
|
||||
unused-argument,
|
||||
useless-return
|
||||
|
||||
[REPORTS]
|
||||
reports=no
|
||||
|
|
|
@ -8,7 +8,7 @@ flake8==3.5
|
|||
mock-open==1.3.1
|
||||
mypy==0.620
|
||||
pydocstyle==1.1.1
|
||||
pylint==1.9.2
|
||||
pylint==2.0.1
|
||||
pytest-aiohttp==0.3.0
|
||||
pytest-cov==2.5.1
|
||||
pytest-sugar==0.9.1
|
||||
|
|
|
@ -9,7 +9,7 @@ flake8==3.5
|
|||
mock-open==1.3.1
|
||||
mypy==0.620
|
||||
pydocstyle==1.1.1
|
||||
pylint==1.9.2
|
||||
pylint==2.0.1
|
||||
pytest-aiohttp==0.3.0
|
||||
pytest-cov==2.5.1
|
||||
pytest-sugar==0.9.1
|
||||
|
|
Loading…
Reference in New Issue