My use case is as follows (shown in the mock-up code below). Upon exiting Prodigy in the command-line, I would like to do some things in on_exit
. However, the things that need to be done in on_exit
depend on two arguments which are generated dynamically dependent on the specific session and annotation project an annotator is in, so I can't hard code them. However, the current setup below will yield an error because the arguments are not passed to the on_exit
function when it gets returned by custom_textcat_manual()
. So I wonder if it is possible to pass those arguments into on_exit
.
@prodigy.recipe('custom-textcat-manual',
dataset=("Dataset to save answers to", "positional", None, str),
source=("Data to annotate (file path or '-' to read from standard input)", "positional", None, str),
label=("Comma-separated label(s) to annotate or text file with one label per line", "option", "l", get_labels),
view_id=("Annotation interface", "option", "v", str),
exclusive=("Treat classes as mutually exclusive (if not set, an example can have multiple correct classes)", "flag", "E", bool)
)
def custom_textcat_manual(dataset, source, label, view_id="text", exclusive=False):
if not label:
msg.fail("textcat.manual requires at least one --label", exits=1)
labels = label
print("LABELS", labels)
stream = get_stream(source, rehash = True, dedup = True, input_key="text")
'''
Some code to get argument1 and argument2
'''
def on_exit(controller, argument1, argument2):
'''
Do some stuff with argument1 and argument2
'''
return {"dataset": dataset,
"view_id": view_id,
"stream": stream,
"on_exit": on_exit,
"config": { "labels": labels}}