Puede una tarea de Python Fabric invocar otras tareas y respetar sus listas de hosts?

Tengo un fabfile como el siguiente:

@hosts('host1')
def host1_deploy():
    """Some logic that is specific to deploying to host1"""

@hosts('host2')
def host2_deploy():
    """Some logic that is specific to deploying to host2"""

def deploy():
    """"Deploy to both hosts, each using its own logic"""
    host1_deploy()
    host2_deploy()

Me gustaría hace

fab deploy

y que sea equivalente a

fab host1_deploy host2_deploy

En otras palabras, ejecute cada una de las subtareas y para cada una utilice la lista de hosts que especifica. Sin embargo, esto no funciona. En cambio, la tarea deploy () quiere su propia lista de hosts que propondrá a todas sus subtareas.

¿Hay alguna forma de actualizar la tarea deploy () aquí para que haga lo que quiero mientras deja las subtareas solas para que puedan ejecutarse individualmente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta