···11-diff --git a/kitty_tests/ssh.py b/kitty_tests/ssh.py
22-index 1f424146..57620334 100644
33---- a/kitty_tests/ssh.py
44-+++ b/kitty_tests/ssh.py
55-@@ -197,7 +197,7 @@ def test_ssh_login_shell_detection(self):
66- expected_login_shell = pwd.getpwuid(os.geteuid()).pw_shell
77- for m in methods:
88- for sh in self.all_possible_sh:
99-- if 'python' in sh:
1010-+ if 'python' in sh or '/sbin/nologin' in expected_login_shell:
1111- continue
1212- with self.subTest(sh=sh, method=m), tempfile.TemporaryDirectory() as tdir:
1313- pty = self.check_bootstrap(sh, tdir, test_script=f'{m}; echo "$login_shell"; exit 0', SHELL_INTEGRATION_VALUE='')
···11+{ lib
22+, buildPythonPackage
33+, fetchPypi
44+, numpy
55+}:
66+77+buildPythonPackage rec {
88+ pname = "isosurfaces";
99+ version = "0.1.0";
1010+1111+ src = fetchPypi {
1212+ inherit pname version;
1313+ sha256 = "fa1b44e5e59d2f429add49289ab89e36f8dcda49b7badd99e0beea273be331f4";
1414+ };
1515+1616+ propagatedBuildInputs = [ numpy ];
1717+1818+ # no tests defined upstream
1919+ doCheck = false;
2020+2121+ pythonImportsCheck = [ "isosurfaces" ];
2222+2323+ meta = with lib; {
2424+ homepage = "https://github.com/jared-hughes/isosurfaces";
2525+ description = "Construct isolines/isosurfaces of a 2D/3D scalar field defined by a function";
2626+ longDescription = ''
2727+ Construct isolines/isosurfaces of a 2D/3D scalar field defined by a
2828+ function, i.e. curves over which f(x,y)=0 or surfaces over which
2929+ f(x,y,z)=0. Most similar libraries use marching squares or similar over a
3030+ uniform grid, but this uses a quadtree to avoid wasting time sampling
3131+ many far from the implicit surface.
3232+ '';
3333+ license = licenses.mit;
3434+ maintainers = with maintainers; [ friedelino ];
3535+ };
3636+}