Atualizando para 0.18.0
Atualizando para 0.18.0#
Changelog: 0.18.0
Nessa versão mudamos a forma como decorators de handlers HTTP são escritos. Essa forma é incompatível com a forma anterior. A migração é simples e resolve também um conflito grave no uso de múltiplos decorators em um mesmo handler.
Se antes você tinha um handler escrito dessa forma:
def my_handler_decorator(handler):
async def _wrapper(wrapper: RequestWrapper):
# Código principal do decorator vem aqui
return await call_http_handler(wrapper.http_request, handler)
return _wrapper
Agora ele deve ser escrito dess forma:
from asyncowker.decorators import wraps
def my_handler_decorator(handler):
@wraps(handler)
async def _wrapper(wrapper: RequestWrapper):
# Código principal do decorator vem aqui
return await call_http_handler(wrapper.http_request, handler)
return _wrapper
Repare que a migração envolve apenas adicionar um decorator asyncworker.decorators.wraps()
em volta da inner function retornada pelo seu decorator.
Com essa modificação, agora é possivel ter múltiplos decorators que dependem da assinatura original (como é o casdo do asyncworker.http.decorators.parse_path()
) aplicados ao handler mesmo tempo.