Skip to content

Commit c604f8e

Browse files
authored
fix: zstandard not installed (#4375)
1 parent f95ce3b commit c604f8e

File tree

1 file changed

+6
-15
lines changed

1 file changed

+6
-15
lines changed

litestar/middleware/compression/middleware.py

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@
77
from litestar.enums import CompressionEncoding, ScopeType
88
from litestar.middleware.base import AbstractMiddleware
99
from litestar.middleware.compression.gzip_facade import GzipCompression
10-
from litestar.middleware.compression.zstd_facade import ZstdCompression
1110
from litestar.utils.empty import value_or_default
1211
from litestar.utils.scope.state import ScopeState
1312

1413
if TYPE_CHECKING:
1514
from litestar.config.compression import CompressionConfig
16-
from litestar.middleware.compression.facade import CompressionFacade
1715
from litestar.types import (
1816
ASGIApp,
1917
HTTPResponseStartEvent,
@@ -83,17 +81,6 @@ async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
8381

8482
await self.app(scope, receive, send)
8583

86-
def get_facade_cls(
87-
self,
88-
compression_encoding: Literal[CompressionEncoding.BROTLI, CompressionEncoding.GZIP, CompressionEncoding.ZSTD]
89-
| str,
90-
) -> type[CompressionFacade]:
91-
if compression_encoding == CompressionEncoding.GZIP:
92-
return GzipCompression
93-
if compression_encoding == CompressionEncoding.ZSTD:
94-
return ZstdCompression
95-
return self.config.compression_facade
96-
9784
def create_compression_send_wrapper(
9885
self,
9986
send: Send,
@@ -115,8 +102,12 @@ def create_compression_send_wrapper(
115102

116103
# We can't use `self.config.compression_facade` directly if the compression is `gzip` since
117104
# it may be being used as a fallback.
118-
facade_cls: type[CompressionFacade] = self.get_facade_cls(compression_encoding)
119-
facade = facade_cls(buffer=bytes_buffer, compression_encoding=compression_encoding, config=self.config)
105+
if compression_encoding == CompressionEncoding.GZIP:
106+
facade = GzipCompression(buffer=bytes_buffer, compression_encoding=compression_encoding, config=self.config)
107+
else:
108+
facade = self.config.compression_facade( # type: ignore[assignment]
109+
buffer=bytes_buffer, compression_encoding=compression_encoding, config=self.config
110+
)
120111

121112
initial_message: HTTPResponseStartEvent | None = None
122113
started = False

0 commit comments

Comments
 (0)