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