diff --git a/pkgs/development/python-modules/mock-ssh-server/default.nix b/pkgs/development/python-modules/mock-ssh-server/default.nix new file mode 100644 index 000000000000..46608965c1c1 --- /dev/null +++ b/pkgs/development/python-modules/mock-ssh-server/default.nix @@ -0,0 +1,40 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, paramiko +, pythonOlder +}: + +buildPythonPackage rec { + pname = "mock-ssh-server"; + version = "0.9.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "carletes"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-yJd+WDidW5ouofytAKTlSiZhIQg2cLs8BvEp15qwtjo="; + }; + + propagatedBuildInputs = [ + paramiko + ]; + + # Tests are running into a timeout on Hydra, they work locally + doCheck = false; + + pythonImportsCheck = [ + "mockssh" + ]; + + meta = with lib; { + description = "Python mock SSH server for testing purposes"; + homepage = "https://github.com/carletes/mock-ssh-server"; + changelog = "https://github.com/carletes/mock-ssh-server/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/sshfs/default.nix b/pkgs/development/python-modules/sshfs/default.nix new file mode 100644 index 000000000000..763541221d0a --- /dev/null +++ b/pkgs/development/python-modules/sshfs/default.nix @@ -0,0 +1,53 @@ +{ lib +, asyncssh +, bcrypt +, buildPythonPackage +, fetchFromGitHub +, fsspec +, mock-ssh-server +, pytest-asyncio +, pytestCheckHook +, setuptools-scm +}: + +buildPythonPackage rec { + pname = "sshfs"; + version = "2023.1.0"; + + src = fetchFromGitHub { + owner = "fsspec"; + repo = pname; + rev = "refs/tags/${version}"; + hash = "sha256-TETxjBI4T8dgmtCtx/lq2LIIwyFsAMWY6xdm7+Qsjb0="; + }; + + SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + asyncssh + bcrypt + fsspec + ]; + + nativeCheckInputs = [ + mock-ssh-server + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ + "sshfs" + ]; + + meta = with lib; { + description = "SSH/SFTP implementation for fsspec"; + homepage = "https://github.com/fsspec/sshfs/"; + changelog = "https://github.com/fsspec/sshfs/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ melling ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e39f39cae322..979731d96349 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6081,6 +6081,8 @@ self: super: with self; { mock-services = callPackage ../development/python-modules/mock-services { }; + mock-ssh-server = callPackage ../development/python-modules/mock-ssh-server { }; + mockupdb = callPackage ../development/python-modules/mockupdb { }; modeled = callPackage ../development/python-modules/modeled { }; @@ -11180,6 +11182,8 @@ self: super: with self; { ssh-mitm = callPackage ../development/python-modules/ssh-mitm { }; + sshfs = callPackage ../development/python-modules/sshfs { }; + sshpubkeys = callPackage ../development/python-modules/sshpubkeys { }; sshtunnel = callPackage ../development/python-modules/sshtunnel { };