We have no httptools packaged yet. --- uvicorn-0.39.0/pyproject.toml.orig +++ uvicorn-0.39.0/pyproject.toml @@ -41,7 +41,6 @@ [project.optional-dependencies] standard = [ "colorama>=0.4; sys_platform == 'win32'", - "httptools>=0.6.3", "python-dotenv>=0.13", "PyYAML>=5.1", "websockets>=10.4", --- uvicorn-0.39.0/tests/test_server.py.orig +++ uvicorn-0.39.0/tests/test_server.py @@ -21,7 +21,6 @@ from uvicorn.config import Config from uvicorn.protocols.http.flow_control import HIGH_WATER_LIMIT from uvicorn.protocols.http.h11_impl import H11Protocol -from uvicorn.protocols.http.httptools_impl import HttpToolsProtocol pytestmark = pytest.mark.anyio @@ -89,7 +88,7 @@ async def test_request_than_limit_max_requests_warn_log( - unused_tcp_port: int, http_protocol_cls: type[H11Protocol | HttpToolsProtocol], caplog: pytest.LogCaptureFixture + unused_tcp_port: int, http_protocol_cls: H11Protocol, caplog: pytest.LogCaptureFixture ): caplog.set_level(logging.WARNING, logger="uvicorn.error") config = Config(app=app, limit_max_requests=1, port=unused_tcp_port, http=http_protocol_cls) @@ -102,7 +101,7 @@ @contextlib.asynccontextmanager -async def server(*, app: ASGIApplication, port: int, http_protocol_cls: type[H11Protocol | HttpToolsProtocol]): +async def server(*, app: ASGIApplication, port: int, http_protocol_cls: H11Protocol): config = Config(app=app, port=port, loop="asyncio", http=http_protocol_cls) server = Server(config=config) task = asyncio.create_task(server.serve()) @@ -132,7 +131,7 @@ async def test_no_contextvars_pollution_asyncio( - http_protocol_cls: type[H11Protocol | HttpToolsProtocol], unused_tcp_port: int + http_protocol_cls: H11Protocol, unused_tcp_port: int ): """Non-regression test for https://github.com/encode/uvicorn/issues/2167.""" default_contextvars = {c.name for c in contextvars.copy_context().keys()}