You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: add ASGI server support for async functions
- Add uvicorn and uvicorn-worker to async optional dependencies
- Refactor gunicorn.py with BaseGunicornApplication for shared config
- Add UvicornApplication class for ASGI apps
- Add StarletteApplication in asgi.py for development mode
- Update HTTPServer to auto-detect Flask (WSGI) vs other (ASGI) apps
- Add --gateway CLI flag to choose between wsgi and asgi
- Update test_http.py to use Flask instance in tests
* fix: apply black and isort formatting to source files
* test: add comprehensive tests for ASGI server support
- Add tests for HTTPServer ASGI/WSGI auto-detection
- Add tests for StarletteApplication and UvicornApplication
- Add tests for CLI --gateway flag functionality
- Add integration tests for async functions with ASGI
- Ensure 100% code coverage for new ASGI features
- Apply black and isort formatting to test files
* fix: skip async test files on Python 3.7
* fix: exclude async code from Python 3.7 coverage
* fix: Install uvicorn on windows.
* fix: unable to use reload in starlette.
* fix: add missing endpoint parameter to Route constructors in ASGI
* feat: add async conformance tests with ASGI gateway
* fix: set UvicornWorker class before parent init and update tests
* fix: update asgi tests to remove reload option
* feat: add async-specific conformance tests for ASGI mode
* fix: apply black formatting to async files
* fix: disable validateMapping for CloudEvent tests in ASGI mode
ASGI mode does not support automatic conversion from legacy events to CloudEvents, so validateMapping must be false for CloudEvent conformance tests.
* fix: avoid mutating options dict in Gunicorn applications
Create a copy of the options dict before modifying it to prevent side effects when the same options dict is reused elsewhere. This could cause issues with timeout tests.
* fix: add pragma comments for Python 3.7 coverage and fix options handling
- Add pragma: no cover comments for ASGI-specific code paths that won't execute in Python 3.7
- Fix options dict handling to use consistent variable names to avoid confusion
* fix: revert to separate GunicornApplication and UvicornApplication classes
Remove the BaseGunicornApplication abstraction as it was causing issues with the timeout mechanism. Each class now independently extends gunicorn.app.base.BaseApplication, which is cleaner and avoids the problems we were seeing with shared state and options handling.
* refactor: restore GunicornApplication to match main branch
Remove unnecessary changes to GunicornApplication class, keeping only
the UvicornApplication addition for ASGI support.
* chore: Untrack uv.lock
* chore: rename confirmance test (asgi) github workflow
* chore: cleanup .gitignore.
* chore: clean up unncessary comments.
0 commit comments