Skip to content

Commit

Permalink
Upgrade pylint to 2.0.1 (home-assistant#15683)
Browse files Browse the repository at this point in the history
* 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

pylint-dev/pylint#2320

* Disable pylint 2 useless-return for now

pylint-dev/pylint#2300

* Disable pylint 2 invalid-name for type variables for now

pylint-dev/pylint#1290

* Disable pylint 2 not-an-iterable for now

pylint-dev/pylint#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

pylint-dev/pylint#2306
  • Loading branch information
scop authored and Jacob Mansfield committed Sep 4, 2018
1 parent df32230 commit a4c34da
Show file tree
Hide file tree
Showing 20 changed files with 40 additions and 37 deletions.
2 changes: 1 addition & 1 deletion homeassistant/components/apple_tv.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
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
Expand Down
3 changes: 3 additions & 0 deletions homeassistant/components/calendar/todoist.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
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
Expand Down
1 change: 1 addition & 0 deletions homeassistant/components/light/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,7 @@ def get(cls, name):
@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
Expand Down
8 changes: 2 additions & 6 deletions homeassistant/components/media_player/bluesound.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,12 +216,8 @@ def _try_get_index(string, search_string):
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
Expand Down
2 changes: 2 additions & 0 deletions homeassistant/components/media_player/pandora.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,9 +253,11 @@ def _query_for_playing_status(self):
_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')
Expand Down
13 changes: 4 additions & 9 deletions homeassistant/components/sensor/citybikes.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,19 +186,14 @@ def get_closest_network_id(cls, hass, latitude, longitude):
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]

Expand Down
6 changes: 1 addition & 5 deletions homeassistant/components/sensor/nzbget.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,4 @@ def post(self, method, params=None):
@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']
6 changes: 1 addition & 5 deletions homeassistant/components/sensor/pyload.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,4 @@ def post(self, method, params=None):
@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')
2 changes: 2 additions & 0 deletions homeassistant/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,11 @@
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'

Expand Down
3 changes: 2 additions & 1 deletion homeassistant/helpers/intent.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
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

Expand Down
4 changes: 2 additions & 2 deletions homeassistant/scripts/check_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions homeassistant/scripts/influxdb_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')

Expand Down
5 changes: 5 additions & 0 deletions homeassistant/util/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@

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'(~|\.(\.)+)')
Expand Down Expand Up @@ -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__:
Expand Down
3 changes: 2 additions & 1 deletion homeassistant/util/decorator.py
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/util/dt.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/util/yaml.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
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):
Expand Down
6 changes: 5 additions & 1 deletion pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion requirements_test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion requirements_test_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a4c34da

Please sign in to comment.