1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 mock, 6 pyopenssl, 7 pytestCheckHook, 8 pythonOlder, 9 service-identity, 10 six, 11 twisted, 12 txi2p-tahoe, 13 txtorcon, 14}: 15 16buildPythonPackage rec { 17 pname = "foolscap"; 18 version = "23.3.0"; 19 20 disabled = pythonOlder "3.7"; 21 22 format = "setuptools"; 23 24 src = fetchPypi { 25 inherit pname version; 26 hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU="; 27 }; 28 29 propagatedBuildInputs = [ 30 six 31 twisted 32 pyopenssl 33 ] ++ twisted.optional-dependencies.tls; 34 35 passthru.optional-dependencies = { 36 i2p = [ txi2p-tahoe ]; 37 tor = [ txtorcon ]; 38 }; 39 40 nativeCheckInputs = [ 41 mock 42 pytestCheckHook 43 ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); 44 45 pythonImportsCheck = [ "foolscap" ]; 46 47 meta = with lib; { 48 description = "RPC protocol for Python that follows the distributed object-capability model"; 49 longDescription = '' 50 "Foolscap" is the name for the next-generation RPC protocol, intended to 51 replace Perspective Broker (part of Twisted). Foolscap is a protocol to 52 implement a distributed object-capabilities model in Python. 53 ''; 54 homepage = "https://github.com/warner/foolscap"; 55 license = licenses.mit; 56 maintainers = with maintainers; [ ]; 57 }; 58}