Filters on kwargs for find_object
This commit is contained in:
parent
6591785a10
commit
74b99c4a8d
5 changed files with 18 additions and 11 deletions
|
|
@ -56,7 +56,7 @@ class DresdenWetterBackend(BaseBackend, ICapGauge):
|
|||
|
||||
def iter_sensors(self, gauge, pattern=None):
|
||||
if not isinstance(gauge, Gauge):
|
||||
gauge = find_object(self.iter_gauges(), gauge, error=SensorNotFound)
|
||||
gauge = find_object(self.iter_gauges(), id=gauge, error=SensorNotFound)
|
||||
if pattern is None:
|
||||
for sensor in gauge.sensors:
|
||||
yield sensor
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ class INGBackend(BaseBackend, ICapBank, ICapBill):
|
|||
return self.browser.get_accounts_list()
|
||||
|
||||
def get_account(self, _id):
|
||||
return find_object(self.browser.get_accounts_list(), _id, error=AccountNotFound)
|
||||
return find_object(self.browser.get_accounts_list(), id=_id, error=AccountNotFound)
|
||||
|
||||
def iter_history(self, account):
|
||||
if not isinstance(account, Account):
|
||||
|
|
@ -100,11 +100,11 @@ class INGBackend(BaseBackend, ICapBank, ICapBill):
|
|||
return self.browser.get_subscriptions()
|
||||
|
||||
def get_subscription(self, _id):
|
||||
return find_object(self.browser.get_subscriptions(), _id, error=SubscriptionNotFound)
|
||||
return find_object(self.browser.get_subscriptions(), id=_id, error=SubscriptionNotFound)
|
||||
|
||||
def get_bill(self, id):
|
||||
subscription = self.get_subscription(id.split('-')[0])
|
||||
return find_object(self.browser.get_bills(subscription), id, error=BillNotFound)
|
||||
def get_bill(self, _id):
|
||||
subscription = self.get_subscription(_id.split('-')[0])
|
||||
return find_object(self.browser.get_bills(subscription), id=_id, error=BillNotFound)
|
||||
|
||||
def iter_bills(self, subscription):
|
||||
if not isinstance(subscription, Subscription):
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class PoivyBackend(BaseBackend, ICapBill):
|
|||
return self.browser.get_subscription_list()
|
||||
|
||||
def get_subscription(self, _id):
|
||||
return find_object(self.iter_subscription(), _id, error=SubscriptionNotFound)
|
||||
return find_object(self.iter_subscription(), id=_id, error=SubscriptionNotFound)
|
||||
|
||||
def iter_bills_history(self, subscription):
|
||||
# Try if we have a real subscription before to load the history
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class SachsenLevelBackend(BaseBackend, ICapGauge):
|
|||
|
||||
def iter_sensors(self, gauge, pattern=None):
|
||||
if not isinstance(gauge, Gauge):
|
||||
gauge = find_object(self.browser.get_rivers_list(), gauge, error=SensorNotFound)
|
||||
gauge = find_object(self.browser.get_rivers_list(), id=gauge, error=SensorNotFound)
|
||||
if pattern is None:
|
||||
for sensor in gauge.sensors:
|
||||
yield sensor
|
||||
|
|
|
|||
|
|
@ -46,13 +46,20 @@ def empty(value):
|
|||
return True
|
||||
return False
|
||||
|
||||
def find_object(mylist, _id, error=None):
|
||||
def find_object(mylist, error=None, **kwargs):
|
||||
"""
|
||||
Very simple tools to return an object with the matching _id
|
||||
Very simple tools to return an object with the matching parameters in
|
||||
kwargs.
|
||||
"""
|
||||
for a in mylist:
|
||||
if a.id == _id:
|
||||
found = True
|
||||
for key, value in kwargs.iteritems():
|
||||
if getattr(a, key) != value:
|
||||
found = False
|
||||
break
|
||||
if found:
|
||||
return a
|
||||
|
||||
if error is not None:
|
||||
raise error()
|
||||
return None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue