Black
This commit is contained in:
parent
da05dfe708
commit
4de97abc3a
2676 changed files with 163166 additions and 140084 deletions
|
@ -9,37 +9,40 @@ import homeassistant.helpers.config_validation as cv
|
|||
from homeassistant.util import Throttle
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.helpers.event import track_time_interval
|
||||
from homeassistant.const import (CONF_NAME, CONF_ID, CONF_URL, CONF_CURRENCY)
|
||||
from homeassistant.const import CONF_NAME, CONF_ID, CONF_URL, CONF_CURRENCY
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
CONF_ITEMS = 'items'
|
||||
CONF_ITEMS = "items"
|
||||
|
||||
ICON = 'mdi:coin'
|
||||
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=2*60*60) # 2h
|
||||
MIN_TIME_BETWEEN_CURRENCY_UPDATES = timedelta(seconds=12*60*60) # 12h
|
||||
ICON = "mdi:coin"
|
||||
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=2 * 60 * 60) # 2h
|
||||
MIN_TIME_BETWEEN_CURRENCY_UPDATES = timedelta(seconds=12 * 60 * 60) # 12h
|
||||
|
||||
|
||||
_ITEM_SCHEMA = vol.All(
|
||||
vol.Schema({
|
||||
vol.Exclusive(CONF_URL, 'XOR'): cv.string,
|
||||
vol.Exclusive(CONF_ID, 'XOR'): cv.string,
|
||||
vol.Optional(CONF_NAME): cv.string,
|
||||
vol.Optional(CONF_CURRENCY): cv.string
|
||||
}), cv.has_at_least_one_key(CONF_URL, CONF_ID)
|
||||
vol.Schema(
|
||||
{
|
||||
vol.Exclusive(CONF_URL, "XOR"): cv.string,
|
||||
vol.Exclusive(CONF_ID, "XOR"): cv.string,
|
||||
vol.Optional(CONF_NAME): cv.string,
|
||||
vol.Optional(CONF_CURRENCY): cv.string,
|
||||
}
|
||||
),
|
||||
cv.has_at_least_one_key(CONF_URL, CONF_ID),
|
||||
)
|
||||
|
||||
_ITEMS_SCHEMA = vol.Schema([_ITEM_SCHEMA])
|
||||
|
||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({
|
||||
vol.Required(CONF_ITEMS): _ITEMS_SCHEMA,
|
||||
vol.Required(CONF_CURRENCY): cv.string,
|
||||
})
|
||||
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
{vol.Required(CONF_ITEMS): _ITEMS_SCHEMA, vol.Required(CONF_CURRENCY): cv.string}
|
||||
)
|
||||
|
||||
|
||||
def setup_platform(hass, config, add_entities, discovery_info=None):
|
||||
"""Set up the Gearbest sensor."""
|
||||
from gearbest_parser import CurrencyConverter
|
||||
|
||||
currency = config.get(CONF_CURRENCY)
|
||||
|
||||
sensors = []
|
||||
|
@ -58,9 +61,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
|
|||
"""Update currency list."""
|
||||
converter.update()
|
||||
|
||||
track_time_interval(hass,
|
||||
currency_update,
|
||||
MIN_TIME_BETWEEN_CURRENCY_UPDATES)
|
||||
track_time_interval(hass, currency_update, MIN_TIME_BETWEEN_CURRENCY_UPDATES)
|
||||
|
||||
add_entities(sensors, True)
|
||||
|
||||
|
@ -75,9 +76,9 @@ class GearbestSensor(Entity):
|
|||
self._name = item.get(CONF_NAME)
|
||||
self._parser = GearbestParser()
|
||||
self._parser.set_currency_converter(converter)
|
||||
self._item = self._parser.load(item.get(CONF_ID),
|
||||
item.get(CONF_URL),
|
||||
item.get(CONF_CURRENCY, currency))
|
||||
self._item = self._parser.load(
|
||||
item.get(CONF_ID), item.get(CONF_URL), item.get(CONF_CURRENCY, currency)
|
||||
)
|
||||
if self._item is None:
|
||||
raise ValueError("id and url could not be resolved")
|
||||
|
||||
|
@ -109,10 +110,12 @@ class GearbestSensor(Entity):
|
|||
@property
|
||||
def device_state_attributes(self):
|
||||
"""Return the state attributes."""
|
||||
attrs = {'name': self._item.name,
|
||||
'description': self._item.description,
|
||||
'currency': self._item.currency,
|
||||
'url': self._item.url}
|
||||
attrs = {
|
||||
"name": self._item.name,
|
||||
"description": self._item.description,
|
||||
"currency": self._item.currency,
|
||||
"url": self._item.url,
|
||||
}
|
||||
return attrs
|
||||
|
||||
@Throttle(MIN_TIME_BETWEEN_UPDATES)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue