Middleware
Los middleware son un poderoso mecanismo que se ejecuta en secuencia antes del command handler permitiendo interceptar el comando y los argumentos ya resueltos.
from datetime import datetime
from typing import Any, Dict
from aiocli.commander import Application, run_app
from aiocli.commander_app import Command, CommandArgument
def info_middleware(cmd: Command, args: Dict[str, Any]) -> None:
print(f'Command: {cmd.name} Arguments: {args}')
app = Application(middleware=[info_middleware])
@app.middleware()
async def time_middleware() -> None:
print(f'Time: {datetime.now()}')
@app.command(name='greet:to', positionals=[CommandArgument(name_or_flags='--name')])
async def handle_greeting(name: str) -> int:
print(f'Hello {name}')
return 0
if __name__ == '__main__':
run_app(app, argv=['greet:to', '--name', 'middleware!'])