Skip to content

Commit 731cae3

Browse files
committed
update
1 parent 03d12a2 commit 731cae3

3 files changed

Lines changed: 33 additions & 29 deletions

File tree

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name='talkops',
5-
version='1.3.4',
5+
version='1.4.0',
66
author='PicoUX',
77
description="TalkOps SDK",
88
long_description=open('README.md',encoding='utf-8').read(),

talkops/event_bus.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import socket
66

77
class EventBus:
8-
def __init__(self, use_state, use_config):
8+
def __init__(self, use_state, use_config, set_enabled):
99
self._use_state = use_state
1010
self._use_config = use_config
11+
self._set_enabled = set_enabled
1112
self._last_event_state: str | None = None
1213
self._client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
1314
self._client.setblocking(False)
@@ -48,6 +49,30 @@ async def _publish_state_periodically(self):
4849

4950
async def _on_event(self, event):
5051
config = self._use_config()
52+
if event['type'] == 'boot':
53+
self._set_enabled(event['enabled'])
54+
for name, value in event['parameters'].items():
55+
for parameter in config['parameters']:
56+
if parameter.name != name:
57+
continue
58+
if isinstance(value, str):
59+
parameter.set_value(value)
60+
else:
61+
parameter.set_value("")
62+
asyncio.create_task(self._publish_state())
63+
if event['type'] == 'enable':
64+
self._set_enabled(True)
65+
if event['type'] == 'disable':
66+
self._set_enabled(False)
67+
ready = True
68+
for parameter in config['parameters']:
69+
if parameter.is_optional:
70+
continue
71+
if parameter.has_value:
72+
continue
73+
ready = False
74+
if not ready:
75+
return
5176
if event['type'] == 'function_call':
5277
for function in config['functions']:
5378
if function.__name__ != event['name']:
@@ -64,25 +89,6 @@ async def _on_event(self, event):
6489
return
6590
print(f'Function {function.__name__} not found.', file=sys.stderr)
6691
return
67-
if event['type'] == 'boot':
68-
for name, value in event['parameters'].items():
69-
for parameter in config['parameters']:
70-
if parameter.name != name:
71-
continue
72-
if isinstance(value, str):
73-
parameter.set_value(value)
74-
else:
75-
parameter.set_value("")
76-
ready = True
77-
for parameter in config['parameters']:
78-
if parameter.is_optional:
79-
continue
80-
if parameter.has_value:
81-
continue
82-
ready = False
83-
asyncio.create_task(self._publish_state())
84-
if not ready:
85-
return
8692
if event['type'] in config['callbacks']:
8793
callback = config['callbacks'][event['type']]
8894
arguments_list = [event['args'].get(name) for name in callback.__code__.co_varnames]

talkops/extension.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def __init__(self):
1515
self._callbacks = {}
1616
self._category = None
1717
self._demo = False
18+
self._enabled = False
1819
self._event_bus = None
1920
self._features = []
2021
self._functions = []
@@ -24,7 +25,6 @@ def __init__(self):
2425
self._instructions = None
2526
self._name = None
2627
self._parameters = []
27-
self._software_version = None
2828
self._started = False
2929
self._website = None
3030

@@ -47,7 +47,6 @@ async def _setup(self):
4747
'name': 'python',
4848
'version': version('talkops'),
4949
},
50-
'softwareVersion': self._software_version,
5150
'website': self._website,
5251
}
5352
)
@@ -64,17 +63,20 @@ async def _setup(self):
6463
'name': 'python',
6564
'version': version('talkops'),
6665
},
67-
'softwareVersion': self._software_version,
6866
'functionSchemas': self._function_schemas,
6967
},
7068
lambda: {
7169
'callbacks': self._callbacks,
7270
'functions': self._functions,
7371
'parameters': self._parameters,
74-
}
72+
},
73+
self._set_enabled
7574
)
7675
await asyncio.gather(self._event_bus.start())
7776

77+
def _set_enabled(self, enabled):
78+
self._enabled = enabled
79+
7880
def start(self):
7981
if self._started:
8082
return
@@ -123,10 +125,6 @@ def set_website(self, website):
123125
self._website = website
124126
return self
125127

126-
def set_software_version(self, software_version):
127-
self._software_version = software_version
128-
return self
129-
130128
def set_category(self, category):
131129
if category not in self._get_categories():
132130
raise ValueError(f'category must be one of the following strings: {", ".join(self._get_categories())}')

0 commit comments

Comments
 (0)