From 4f7e032bb4cda4b14bb38d2b26a24629f1abd028 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 23 Sep 2013 00:20:21 -0700 Subject: [PATCH] Reverting a previous change to ensure a parameter is a list --- homeassistant/StateMachine.py | 6 +++--- homeassistant/observer/Timer.py | 8 ++++---- homeassistant/util.py | 3 +++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/homeassistant/StateMachine.py b/homeassistant/StateMachine.py index 3ed8d1f776b..522cb434b66 100644 --- a/homeassistant/StateMachine.py +++ b/homeassistant/StateMachine.py @@ -3,7 +3,7 @@ from threading import RLock from datetime import datetime from homeassistant.EventBus import Event -from homeassistant.util import matcher +from homeassistant.util import ensure_list, matcher EVENT_STATE_CHANGED = "state_changed" @@ -55,8 +55,8 @@ class StateMachine(object): def track_state_change(eventbus, category, from_state, to_state, action): """ Helper method to track specific state changes. """ - from_state = list(from_state) - to_state = list(to_state) + from_state = ensure_list(from_state) + to_state = ensure_list(to_state) def listener(event): assert isinstance(event, Event), "event needs to be of Event type" diff --git a/homeassistant/observer/Timer.py b/homeassistant/observer/Timer.py index 5273dfc9c55..3aa5c3c9f69 100644 --- a/homeassistant/observer/Timer.py +++ b/homeassistant/observer/Timer.py @@ -4,7 +4,7 @@ import threading import time from homeassistant.EventBus import Event -from homeassistant.util import matcher +from homeassistant.util import ensure_list, matcher TIME_INTERVAL = 10 # seconds @@ -53,9 +53,9 @@ class Timer(threading.Thread): def track_time_change(eventbus, action, year='*', month='*', day='*', hour='*', minute='*', second='*', point_in_time=None, listen_once=False): - year, month, day = list(year), list(month), list(day) - hour, minute, second = list(hour), list(minute), list(second) - + year, month, day = ensure_list(year), ensure_list(month), ensure_list(day) + hour, minute, second = ensure_list(hour), ensure_list(minute), ensure_list(second) + def listener(event): assert isinstance(event, Event), "event needs to be of Event type" diff --git a/homeassistant/util.py b/homeassistant/util.py index e1db519b150..de5ccf46f4c 100644 --- a/homeassistant/util.py +++ b/homeassistant/util.py @@ -1,3 +1,6 @@ +def ensure_list(parameter): + return parameter if isinstance(parameter, list) else [parameter] + def matcher(subject, pattern): """ Returns True if subject matches the pattern. Pattern is either a list of allowed subjects or a '*'. """