diff --git a/pkgs/development/python-modules/linode-api4/default.nix b/pkgs/development/python-modules/linode-api4/default.nix new file mode 100644 index 000000000000..153d1d207cf8 --- /dev/null +++ b/pkgs/development/python-modules/linode-api4/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + deprecated, + fetchFromGitHub, + httpretty, + mock, + nix-update-script, + polling, + pytestCheckHook, + requests, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "linode-api4"; + version = "5.45.0"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "linode"; + repo = "linode_api4-python"; + tag = "v${finalAttrs.version}"; + hash = "sha256-0FLF/LkU8SaR3itgMISbqOxmd4UZkGlTT3VDpmuv+QQ="; + }; + + build-system = [ setuptools ]; + + dependencies = [ + deprecated + polling + requests + ]; + + nativeCheckInputs = [ + httpretty + mock + pytestCheckHook + ]; + + pythonImportsCheck = [ "linode_api4" ]; + + disabledTestPaths = [ + # Tests require an API token + "test/integration/" + ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Official Python bindings for the Linode API"; + homepage = "https://github.com/linode/linode_api4-python"; + changelog = "https://github.com/linode/linode_api4-python/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ fab ]; + }; +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 33955e74f2dc..e6b1042ae8ec 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -9274,6 +9274,8 @@ self: super: with self; { linode-api = callPackage ../development/python-modules/linode-api { }; + linode-api4 = callPackage ../development/python-modules/linode-api4 { }; + linode-metadata = callPackage ../development/python-modules/linode-metadata { }; linuxdoc = callPackage ../development/python-modules/linuxdoc { };