Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 6 # build-system 7 setuptools, 8 9 # tests 10 objgraph, 11 psutil, 12 python, 13 unittestCheckHook, 14}: 15 16let 17 greenlet = buildPythonPackage rec { 18 pname = "greenlet"; 19 version = "3.0.3"; 20 pyproject = true; 21 22 src = fetchPypi { 23 inherit pname version; 24 hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE="; 25 }; 26 27 patches = [ 28 # https://github.com/python-greenlet/greenlet/pull/396 29 ./python-3.13-compat.patch 30 ]; 31 32 nativeBuildInputs = [ setuptools ]; 33 34 # tests in passthru, infinite recursion via objgraph/graphviz 35 doCheck = false; 36 37 nativeCheckInputs = [ 38 objgraph 39 psutil 40 unittestCheckHook 41 ]; 42 43 preCheck = '' 44 pushd ${placeholder "out"}/${python.sitePackages} 45 ''; 46 47 unittestFlagsArray = [ "greenlet.tests" ]; 48 49 postCheck = '' 50 popd 51 ''; 52 53 passthru.tests.pytest = greenlet.overridePythonAttrs (_: { 54 doCheck = true; 55 }); 56 57 meta = with lib; { 58 changelog = "https://github.com/python-greenlet/greenlet/blob/${version}/CHANGES.rst"; 59 homepage = "https://github.com/python-greenlet/greenlet"; 60 description = "Module for lightweight in-process concurrent programming"; 61 license = with licenses; [ 62 psfl # src/greenlet/slp_platformselect.h & files in src/greenlet/platform/ directory 63 mit 64 ]; 65 }; 66 }; 67in 68greenlet