Web arguments validation is a significant part of the success of any API application.
In Python apps, I used Webargs as it supports many frameworks. And, I preferred Flask. When the era of Python3 started, I switched to Sanic, as it was always looking for me like the async version of Flask :)
Webargs never supported Sanic, and the module's author Steven Loria didn't want to add another framework to the support list (I understand him). However, he assisted me in doing this externally. So, I've created Webargs-Sanic to have Webargs / Marshmallow support.
Supporting external tests in Webargs, watching for changes in Sanic and Marshmallow: integration is never easy.
Because of many microservices working on different Python and Sanic versions, I have supported all Sanic versions(from 0.8.3 to 21.6.x) for the last years; for example, here is the Webargs-Sanic test report in Travis.
Sometimes you need to switch/jump to another version but get difficulties, so try to fix it quickly and make mistakes. For example, this happened to me when I released Webargs-Sanic v2.1.1 with the support of Sanic 21.x.
I was always sure that this module was not very popular. :)
The number of emails and requests caused by incorrect dependency changed my opinion, so I would like to ask for an excuse for the problems. On another side, these Engineers will start to freeze versions in requirements ;)
Finally, I've fixed many minor issues, prepared for future support for Sanic 21.9.x, and cleaned up the handling exceptions part of the module. Feel free to check Webargs-Sanic v2.2.0 in PyPI.
TODO: Add support of Python 3.10 that was released a couple of weeks ago. Supporting different versions of Sanic is becoming harder. Possibly I need to make a final decision about a Webargs-Sanic version jump to 3.x with support of Sanic 21.x+ from it. I did this already with stopping on 1.5 because of Webargs changes; now the time of Sanic came.
Integration of few modules you don't influence on is never easy :)