From ce5e573f4b1e24548a99cee4dc155615c9ce5253 Mon Sep 17 00:00:00 2001 From: Marcelo Moreira de Mello Date: Sat, 30 Sep 2017 00:28:11 -0400 Subject: [PATCH] Refactored methods to don't override __init__ from RingGeneric --- ring_doorbell/__init__.py | 65 +++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/ring_doorbell/__init__.py b/ring_doorbell/__init__.py index 6ebdf537..744c3c8c 100644 --- a/ring_doorbell/__init__.py +++ b/ring_doorbell/__init__.py @@ -221,12 +221,12 @@ def __devices(self, device_type): for member in list((obj['description'] for obj in req)): lst.append(RingStickUpCam(self, member)) - if device_type == 'chime': + if device_type == 'chimes': req = self.query(url).get('chimes') for member in list((obj['description'] for obj in req)): lst.append(RingChime(self, member)) - if device_type == 'doorbell': + if device_type == 'doorbells': req = self.query(url).get('doorbots') for member in list((obj['description'] for obj in req)): lst.append(RingDoorBell(self, member)) @@ -243,7 +243,7 @@ def __devices(self, device_type): @property def chimes(self): """Return a list of RingDoorChime objects.""" - return self.__devices('chime') + return self.__devices('chimes') @property def stickup_cams(self): @@ -253,27 +253,35 @@ def stickup_cams(self): @property def doorbells(self): """Return a list of RingDoorBell objects.""" - return self.__devices('doorbell') + return self.__devices('doorbells') class RingGeneric(object): """Generic Implementation for Ring Chime/Doorbell.""" - def __init__(self): + def __init__(self, ring, name, shared=False): """Initialize Ring Generic.""" + self._ring = ring + self.debug = self._ring.debug + self.name = name + self.shared = shared self._attrs = None - self._ring = None - self.debug = None - self.family = None - self.name = None # alerts notifications self.alert_expires_at = None + # force update + self.update() + def __repr__(self): """Return __repr__.""" return "<{0}: {1}>".format(self.__class__.__name__, self.name) + @property + def family(self): + """Return Ring device family type.""" + return None + def update(self): """Refresh attributes.""" self._get_attrs() @@ -362,15 +370,10 @@ def timezone(self): class RingChime(RingGeneric): """Implementation for Ring Chime.""" - def __init__(self, ring, name): - """Initilize Ring chime object.""" - super(RingChime, self).__init__() - self._attrs = None - self._ring = ring - self.debug = self._ring.debug - self.family = 'chimes' - self.name = name - self.update() + @property + def family(self): + """Return Ring device family type.""" + return 'chimes' @property def volume(self): @@ -411,16 +414,10 @@ def test_sound(self, kind=KIND_DING): class RingDoorBell(RingGeneric): """Implementation for Ring Doorbell.""" - def __init__(self, ring, name, shared=False): - """Initilize Ring doorbell object.""" - super(RingDoorBell, self).__init__() - self._attrs = None - self._ring = ring - self.shared = shared - self.debug = self._ring.debug - self.family = 'doorbots' - self.name = name - self.update() + @property + def family(self): + """Return Ring device family type.""" + return 'doorbots' @property def battery_life(self): @@ -674,11 +671,7 @@ def connection_status(self): class RingStickUpCam(RingDoorBell): """Implementation for Ring RingStickUpCam.""" - def __init__(self, ring, name): - super(RingStickUpCam, self).__init__() - self._attrs = None - self._ring = ring - self.debug = self._ring.debug - self.family = 'stickup_cams' - self.name = name - self.update() + @property + def family(self): + """Return Ring device family type.""" + return 'stickup_cams'