nixpkgs/pkgs/development/python-modules/hbmqtt/default.nix

42 lines
1.1 KiB
Nix

{ lib, buildPythonPackage, fetchPypi, isPy3k, pythonAtLeast, setuptools
, transitions, websockets, passlib, docopt, pyyaml, nose }:
buildPythonPackage rec {
pname = "hbmqtt";
version = "0.9.6";
# https://github.com/beerfactory/hbmqtt/issues/223
disabled = !isPy3k || pythonAtLeast "3.9";
src = fetchPypi {
inherit pname version;
sha256 = "1n9c8yj11npiq9qxivwmfhib1qkjpcyw42a7q0w641bdrz3x6r37";
};
propagatedBuildInputs = [
transitions websockets passlib docopt pyyaml setuptools
];
postPatch = ''
# https://github.com/beerfactory/hbmqtt/pull/241
substituteInPlace hbmqtt/adapters.py \
--replace "websockets.protocol" "websockets.legacy.protocol"
# test tries to bind same port multiple times and fails
rm tests/test_client.py
'';
checkInputs = [ nose ];
checkPhase = ''
nosetests -e test_connect_tcp
'';
meta = with lib; {
homepage = "https://github.com/beerfactory/hbmqtt";
description = "MQTT client/broker using Python asynchronous I/O";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
};
}