major version bump due to dependency change.

now packaged with poetry.
added to pypi.

major version bump due to dependency change.

interface reworked to match the remote-api interface.

readme updated with changes to installation

pre-commit hook temporarily removed
This commit is contained in:
onyx-and-iris
2022-06-16 16:10:06 +01:00
parent 933d182f60
commit b9db01c8f4
35 changed files with 1800 additions and 1251 deletions

39
vban_cmd/subject.py Normal file
View File

@@ -0,0 +1,39 @@
class Subject:
"""Adds support for observers"""
def __init__(self):
"""list of current observers"""
self._observers = list()
@property
def observers(self) -> list:
"""returns the current observers"""
return self._observers
def notify(self, modifier=None, data=None):
"""run callbacks on update"""
[o.on_update(modifier, data) for o in self._observers]
def add(self, observer):
"""adds an observer to _observers"""
if observer not in self._observers:
self._observers.append(observer)
else:
print(f"Failed to add: {observer}")
def remove(self, observer):
"""removes an observer from _observers"""
try:
self._observers.remove(observer)
except ValueError:
print(f"Failed to remove: {observer}")
def clear(self):
"""clears the _observers list"""
self._observers.clear()