1{ 2 lib, 3 fetchFromGitHub, 4 buildPythonPackage, 5 isPyPy, 6 setuptools, 7 setuptools-scm, 8 flask, 9 flask-caching, 10 zstandard, 11 brotli, 12 brotlicffi, 13 pytestCheckHook, 14}: 15 16buildPythonPackage rec { 17 version = "1.17"; 18 pname = "flask-compress"; 19 pyproject = true; 20 21 src = fetchFromGitHub { 22 owner = "colour-science"; 23 repo = "flask-compress"; 24 tag = "v${version}"; 25 hash = "sha256-87fjJxaS7eJbOkSUljnhqFIeahoS4L2tAOhmv4ryVUM="; 26 }; 27 28 build-system = [ 29 setuptools 30 setuptools-scm 31 ]; 32 33 dependencies = 34 [ 35 flask 36 zstandard 37 ] 38 ++ lib.optionals (!isPyPy) [ brotli ] 39 ++ lib.optionals isPyPy [ brotlicffi ]; 40 41 nativeCheckInputs = [ 42 pytestCheckHook 43 flask-caching 44 ]; 45 46 pythonImportsCheck = [ "flask_compress" ]; 47 48 postPatch = '' 49 substituteInPlace pyproject.toml \ 50 --replace-fail "setuptools_scm[toml]<8" "setuptools_scm" 51 ''; 52 53 meta = { 54 description = "Compress responses in your Flask app with gzip, deflate or brotli"; 55 homepage = "https://github.com/colour-science/flask-compress"; 56 changelog = "https://github.com/colour-science/flask-compress/blob/v${version}/CHANGELOG.md"; 57 license = lib.licenses.mit; 58 maintainers = with lib.maintainers; [ nickcao ]; 59 }; 60}