diff --git a/pkgs/development/python-modules/dsnap/default.nix b/pkgs/development/python-modules/dsnap/default.nix new file mode 100644 index 000000000000..0525f4d86119 --- /dev/null +++ b/pkgs/development/python-modules/dsnap/default.nix @@ -0,0 +1,69 @@ +{ lib +, aws-sam-cli +, boto3 +, buildPythonPackage +, cfn-lint +, fetchFromGitHub +, mock +, moto +, mypy-boto3-ebs +, poetry-core +, pytestCheckHook +, pythonOlder +, typer +, urllib3 +}: + +buildPythonPackage rec { + pname = "dsnap"; + version = "1.0.0"; + format = "pyproject"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "RhinoSecurityLabs"; + repo = "dsnap"; + rev = "refs/tags/v${version}"; + hash = "sha256-yKch+tKjFhvZfzloazMH378dkERF8gnZEX1Som+d670="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + boto3 + urllib3 + ]; + + passthru.optional-dependencies = { + cli = [ + typer + ]; + scannerd = [ + aws-sam-cli + cfn-lint + ]; + }; + + nativeCheckInputs = [ + mock + moto + mypy-boto3-ebs + pytestCheckHook + ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); + + pythonImportsCheck = [ + "dsnap" + ]; + + meta = with lib; { + description = "Utility for downloading and mounting EBS snapshots using the EBS Direct API's"; + homepage = "https://github.com/RhinoSecurityLabs/dsnap"; + changelog = "https://github.com/RhinoSecurityLabs/dsnap/releases/tag/v${version}"; + license = licenses.bsd3; + maintainers = with maintainers; [ fab ]; + }; +} + diff --git a/pkgs/development/python-modules/mypy-boto3-ebs/default.nix b/pkgs/development/python-modules/mypy-boto3-ebs/default.nix new file mode 100644 index 000000000000..228ceab3134d --- /dev/null +++ b/pkgs/development/python-modules/mypy-boto3-ebs/default.nix @@ -0,0 +1,39 @@ +{ lib +, boto3 +, buildPythonPackage +, fetchPypi +, pythonOlder +, typing-extensions +}: + +buildPythonPackage rec { + pname = "mypy-boto3-ebs"; + version = "1.26.0"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-w15SM5F1IFtX4qDrMv5B7PItaTnXOOABg0aUU24onBk="; + }; + + propagatedBuildInputs = [ + boto3 + typing-extensions + ]; + + # Project has no tests + doCheck = false; + + pythonImportsCheck = [ + "mypy_boto3_ebs" + ]; + + meta = with lib; { + description = "Type annotations for boto3.s3"; + homepage = "https://github.com/youtype/mypy_boto3_builder"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3ddc92209bc2..9ff769f317c1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3005,6 +3005,8 @@ self: super: with self; { dsmr-parser = callPackage ../development/python-modules/dsmr-parser { }; + dsnap = callPackage ../development/python-modules/dsnap { }; + dtlssocket = callPackage ../development/python-modules/dtlssocket { }; dtschema = callPackage ../development/python-modules/dtschema { }; @@ -6494,6 +6496,8 @@ self: super: with self; { mypy-boto3-builder = callPackage ../development/python-modules/mypy-boto3-builder { }; + mypy-boto3-ebs = callPackage ../development/python-modules/mypy-boto3-ebs { }; + mypy-boto3-s3 = callPackage ../development/python-modules/mypy-boto3-s3 { }; mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };