Skip to content

Commit 92f91bb

Browse files
committed
feat(ctrl): add enable_empty(v) method on controller entry
1 parent 2a60217 commit 92f91bb

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

trame_server/controller.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,12 @@ def __init__(self, controller, name, func=None):
322322
self.funcs = set()
323323
self.task_funcs = set()
324324
self.funcs_once = set()
325+
self.can_be_empty = False
325326

326327
def __call__(self, *args, **kwargs):
327328
if self.func is None and len(self.funcs) + len(self.task_funcs) == 0:
329+
if self.can_be_empty:
330+
return None
328331
raise FunctionNotImplementedError(self.name)
329332

330333
copy_list = list(self.funcs) + list(self.funcs_once)
@@ -441,6 +444,16 @@ def exists(self):
441444
return True
442445
return len(self.funcs) + len(self.task_funcs) > 0
443446

447+
def enable_empty(self, value=True):
448+
"""
449+
Enable entry to be empty.
450+
Useful for events when you don't know if someone will be listening.
451+
452+
:return: self so it can be used inline like a builder.
453+
"""
454+
self.can_be_empty = value
455+
return self
456+
444457
@property
445458
def hot_reload(self):
446459
return self.controller.__trame_hot_reload__

0 commit comments

Comments
 (0)