diff --git a/pkgs/development/python-modules/asynccmd/default.nix b/pkgs/development/python-modules/asynccmd/default.nix new file mode 100644 index 000000000000..623424047429 --- /dev/null +++ b/pkgs/development/python-modules/asynccmd/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, fetchpatch +, pythonOlder +}: + +buildPythonPackage rec { + pname = "asynccmd"; + version = "0.2.4"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "valentinmk"; + repo = pname; + rev = version; + sha256 = "02sa0k0zgwv0y8k00pd1yh4x7k7xqhdikk2c0avpih1204lcw26h"; + }; + + patches = [ + # Deprecation of asyncio.Task.all_tasks(), https://github.com/valentinmk/asynccmd/pull/2 + (fetchpatch { + name = "deprecation-python-38.patch"; + url = "https://github.com/valentinmk/asynccmd/commit/12afa60ac07db17e96755e266061f2c88cb545ff.patch"; + sha256 = "0l6sk93gj51qqrpw01a8iiyz14k6dd2z68vr9l9w9vx76l8725yf"; + }) + ]; + + # Tests are outdated + doCheck = false; + + pythonImportsCheck = [ "asynccmd" ]; + + meta = with lib; { + description = "Asyncio implementation of Cmd Python library"; + homepage = "https://github.com/valentinmk/asynccmd"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyspcwebgw/default.nix b/pkgs/development/python-modules/pyspcwebgw/default.nix new file mode 100644 index 000000000000..8c901f17747a --- /dev/null +++ b/pkgs/development/python-modules/pyspcwebgw/default.nix @@ -0,0 +1,46 @@ +{ lib +, aiohttp +, aioresponses +, asynccmd +, buildPythonPackage +, fetchFromGitHub +, pytest-asyncio +, pytestCheckHook +, pythonOlder +, requests +}: + +buildPythonPackage rec { + pname = "pyspcwebgw"; + version = "0.5.0"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "mbrrg"; + repo = pname; + rev = "v${version}"; + sha256 = "0pc25myjc2adqcx2lbns9kw0gy17x1qjgicmfj46n6fn0c786p9v"; + }; + + propagatedBuildInputs = [ + asynccmd + aiohttp + ]; + + checkInputs = [ + aioresponses + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ "pyspcwebgw" ]; + + meta = with lib; { + description = "Python module for the SPC Web Gateway REST API"; + homepage = "https://github.com/mbrrg/pyspcwebgw"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 74cc9b1a635e..d9246b8eccd5 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -806,7 +806,7 @@ "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp "soundtouch" = ps: with ps; [ aiohttp-cors ifaddr libsoundtouch zeroconf ]; "spaceapi" = ps: with ps; [ aiohttp-cors ]; - "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw + "spc" = ps: with ps; [ pyspcwebgw ]; "speedtestdotnet" = ps: with ps; [ speedtest-cli ]; "spider" = ps: with ps; [ spiderpy ]; "splunk" = ps: with ps; [ ]; # missing inputs: hass_splunk diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 11133abeb472..dc1799146145 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -632,6 +632,7 @@ in with py.pkgs; buildPythonApplication rec { # "sonos" "soundtouch" "spaceapi" + "spc" "speedtestdotnet" "spider" "spotify" diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 17be093677b5..d2ceb7b7eca7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -619,6 +619,8 @@ in { async-lru = callPackage ../development/python-modules/async-lru { }; + asynccmd = callPackage ../development/python-modules/asynccmd { }; + asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { }; asyncio-mqtt = callPackage ../development/python-modules/asyncio_mqtt { }; @@ -6907,6 +6909,8 @@ in { pysparse = callPackage ../development/python-modules/pysparse { }; + pyspcwebgw = callPackage ../development/python-modules/pyspcwebgw { }; + pyspf = callPackage ../development/python-modules/pyspf { }; pyspice = callPackage ../development/python-modules/pyspice { };