[Component] Refactor to remove hasattr usage

Functions are defined in the class now

https://github.com/deluge-torrent/deluge/pull/221#discussion_r228275050
This commit is contained in:
DjLegolas 2023-03-05 15:40:50 +00:00 committed by Calum Lind
parent e90f6c7eef
commit 0745c0eff8
No known key found for this signature in database
GPG Key ID: 90597A687B836BA3

View File

@ -59,7 +59,7 @@ class Component:
Deluge core.
**update()** - This method is called every 1 second by default while the
Componented is in a *Started* state. The interval can be
Component is in a *Started* state. The interval can be
specified during instantiation. The update() timer can be
paused by instructing the :class:`ComponentRegistry` to pause
this Component.
@ -83,7 +83,7 @@ class Component:
**Stopping** - The Component has had it's stop method called, but it hasn't
fully stopped yet.
**Paused** - The Component has had it's update timer stopped, but will
**Paused** - The Component has had its update timer stopped, but will
still be considered in a Started state.
"""
@ -111,7 +111,6 @@ class Component:
_ComponentRegistry.deregister(self)
def _component_start_timer(self):
if hasattr(self, 'update'):
self._component_timer = LoopingCall(self.update)
self._component_timer.start(self._component_interval)
@ -129,13 +128,10 @@ class Component:
return fail(result)
if self._component_state == 'Stopped':
if hasattr(self, 'start'):
self._component_state = 'Starting'
d = deferLater(reactor, 0, self.start)
d.addCallbacks(on_start, on_start_fail)
self._component_starting_deferred = d
else:
d = maybeDeferred(on_start, None)
elif self._component_state == 'Starting':
return self._component_starting_deferred
elif self._component_state == 'Started':
@ -165,14 +161,11 @@ class Component:
return result
if self._component_state != 'Stopped' and self._component_state != 'Stopping':
if hasattr(self, 'stop'):
self._component_state = 'Stopping'
d = maybeDeferred(self.stop)
d.addCallback(on_stop)
d.addErrback(on_stop_fail)
self._component_stopping_deferred = d
else:
d = maybeDeferred(on_stop, None)
if self._component_state == 'Stopping':
return self._component_stopping_deferred
@ -222,9 +215,7 @@ class Component:
def _component_shutdown(self):
def on_stop(result):
if hasattr(self, 'shutdown'):
return maybeDeferred(self.shutdown)
return succeed(None)
d = self._component_stop()
d.addCallback(on_stop)