1 from typing
import Callable
5 def _set_default_if_not_callable(self
, attr_name
: str, callback
: Callable
, default
: Callable
):
6 cb
= callback
if callable(callback
) else default
7 setattr(self
, attr_name
, cb
)
9 def set_quest_callback(self
, callback
: Callable
): # Required call from initiator (CLI, GUI)
10 self
._set
_default
_if
_not
_callable
('quest', callback
, self
.quest
)
12 def set_chapter_progress_callback(self
, callback
: Callable
): # Required call from initiator (CLI, GUI)
13 self
._set
_default
_if
_not
_callable
('chapter_progress', callback
, self
.progress
)
15 def set_global_progress_callback(self
, callback
: Callable
): # Required call from initiator (CLI, GUI)
16 self
._set
_default
_if
_not
_callable
('global_progress', callback
, self
.progress
)
18 def set_log_callback(self
, callback
: Callable
): # Required call from initiator (CLI, GUI)
19 self
._set
_default
_if
_not
_callable
('log', callback
, self
.progress
)
21 def set_quest_password_callback(self
, callback
: Callable
): # Required call from iterator (CLI, GUI)
22 self
._set
_default
_if
_not
_callable
('quest_password', callback
, self
.progress
)
24 def quest(self
, *args
, **kwargs
):
27 def quest_password(self
, *args
, **kwargs
):
30 def progress(self
, *args
, **kwargs
):
33 def log(self
, *args
, **kwargs
):
36 def book_meta(self
) -> dict: