...
Code Block | ||
---|---|---|
| ||
{ "event": "dissemination", "request": { "class": "od", "date": "20191112", "destination": "FOO", "domain": "g", "expver": "0001", "step": "001", "stream": "enfo", "time": "18" }, "location": "https://xxx.ecmwf.int/xxx/xxx.xx" } |
Here an example file of a listener command triggering a bash script executing a MARS request.
Aviso as a Python API
Aviso can be used as a Python API. This is intended for users that want to integrate Aviso in a bigger workflow written in Python or that simply have their trigger defined as a Python function. Below an example of a python script that defines a function to be executed once a notification is received, creates a listener that references to this function trigger and finally passes it to aviso to execute.
...
Code Block | ||
---|---|---|
| ||
from pyaviso import NotificationManager # define function to be called def do_something(notification): print(f"Notification for step {notification['request']['step']} received") # now do something useful with it ... # define the trigger trigger = {"type": "function", "function": do_something} # create a event listener request that uses that trigger request = {"stream": "enfo", "date": 20190810, "time": 0} listener = {"event": "mars", "request": request, "triggers": [trigger]} listeners = {"listeners": [listener]} # run it aviso = NotificationManager() aviso.listen(listeners=listeners) |
Here an example file of a Python script running Aviso and executing a MARS request after a notification is received.
Dealing with historical notifications
...