diff --git a/pkgs/development/python-modules/manhole/default.nix b/pkgs/development/python-modules/manhole/default.nix new file mode 100644 index 000000000000..8c8c6bf35018 --- /dev/null +++ b/pkgs/development/python-modules/manhole/default.nix @@ -0,0 +1,44 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, pytest +, requests +, process-tests +}: + +buildPythonPackage rec { + pname = "manhole"; + version = "1.5.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "11ivy8qiv87jl2lc1ldhv9dc4jwf3hz7wysdfiagdcd9kkd48v8m"; + }; + + # test_help expects architecture-dependent Linux signal numbers. + # + # {test_locals,test_socket_path} fail to remove /tmp/manhole-socket + # on the x86_64-darwin builder. + doCheck = stdenv.isLinux; + + checkInputs = [ pytest requests process-tests ]; + checkPhase = '' + # Based on its tox.ini + export PYTHONUNBUFFERED=yes + export PYTHONPATH=.:tests:$PYTHONPATH + + # The tests use manhole-cli + export PATH="$PATH:$out/bin" + + # test_uwsgi fails with: + # http.client.RemoteDisconnected: Remote end closed connection without response + py.test -vv -k "not test_uwsgi" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/ionelmc/python-manhole; + description = "Debugging manhole for Python applications"; + license = licenses.bsd2; + maintainers = with maintainers; [ ivan ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 949103211ff8..4eab3845f3e8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -422,6 +422,8 @@ in { mail-parser = callPackage ../development/python-modules/mail-parser { }; + manhole = callPackage ../development/python-modules/manhole { }; + markerlib = callPackage ../development/python-modules/markerlib { }; matchpy = callPackage ../development/python-modules/matchpy { };