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 flask 35 zstandard 36 ] 37 ++ lib.optionals (!isPyPy) [ brotli ] 38 ++ lib.optionals isPyPy [ brotlicffi ]; 39 40 nativeCheckInputs = [ 41 pytestCheckHook 42 flask-caching 43 ]; 44 45 pythonImportsCheck = [ "flask_compress" ]; 46 47 postPatch = '' 48 substituteInPlace pyproject.toml \ 49 --replace-fail "setuptools_scm[toml]<8" "setuptools_scm" 50 ''; 51 52 meta = { 53 description = "Compress responses in your Flask app with gzip, deflate or brotli"; 54 homepage = "https://github.com/colour-science/flask-compress"; 55 changelog = "https://github.com/colour-science/flask-compress/blob/v${version}/CHANGELOG.md"; 56 license = lib.licenses.mit; 57 maintainers = with lib.maintainers; [ nickcao ]; 58 }; 59}