1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 brotli,
7 brotlicffi,
8 starlette,
9 zstandard,
10 pytestCheckHook,
11 httpx,
12 trio,
13}:
14
15buildPythonPackage rec {
16 pname = "starlette-compress";
17 version = "1.6.1";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "Zaczero";
22 repo = "starlette-compress";
23 tag = version;
24 hash = "sha256-JRg0WeMVTYnSh2an+/duSXzAigbjbCZ9NUsSNpXlFg8=";
25 };
26
27 build-system = [ hatchling ];
28
29 dependencies = [
30 brotli
31 brotlicffi
32 starlette
33 zstandard
34 ];
35
36 checkInputs = [
37 httpx
38 trio
39 ];
40
41 nativeCheckInputs = [
42 pytestCheckHook
43 ];
44
45 pythonImportsCheck = [ "starlette_compress" ];
46
47 meta = {
48 description = "Compression middleware for Starlette - supporting ZStd, Brotli, and GZip";
49 homepage = "https://pypi.org/p/starlette-compress";
50 license = lib.licenses.bsd0;
51 maintainers = with lib.maintainers; [
52 wrvsrx
53 Zaczero
54 ];
55 };
56}