{ lib, buildPythonPackage, fetchFromGitHub, # build-system setuptools, # dependencies gevent, twisted, tornado, # tests nose2, mock, }: buildPythonPackage rec { pname = "pika"; version = "1.3.2"; format = "pyproject"; src = fetchFromGitHub { owner = "pika"; repo = "pika"; rev = "refs/tags/${version}"; hash = "sha256-60Z+y3YXazUghfnOy4e7HzM18iju5m5OEt4I3Wg6ty4="; }; nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ gevent tornado twisted ]; nativeCheckInputs = [ nose2 mock ]; postPatch = '' # don't stop at first test failure # don't run acceptance tests because they access the network # don't report test coverage substituteInPlace nose2.cfg \ --replace "stop = 1" "stop = 0" \ --replace "tests=tests/unit,tests/acceptance" "tests=tests/unit" \ --replace "with-coverage = 1" "with-coverage = 0" ''; doCheck = false; # tests require rabbitmq instance, unsure how to skip checkPhase = '' runHook preCheck PIKA_TEST_TLS=true nose2 -v runHook postCheck ''; meta = with lib; { changelog = "https://github.com/pika/pika/releases/tag/${version}"; description = "Pure-Python implementation of the AMQP 0-9-1 protocol"; downloadPage = "https://github.com/pika/pika"; homepage = "https://pika.readthedocs.org"; license = licenses.bsd3; maintainers = [ ]; }; }