diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 5242ac05357..c7e83a95de8 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -80,6 +80,7 @@ ./hardware/video/displaylink.nix ./hardware/video/hidpi.nix ./hardware/video/nvidia.nix + ./hardware/video/switcheroo-control.nix ./hardware/video/uvcvideo/default.nix ./hardware/video/webcam/facetimehd.nix ./hardware/xpadneo.nix diff --git a/pkgs/development/python-modules/aioambient/default.nix b/pkgs/development/python-modules/aioambient/default.nix new file mode 100644 index 00000000000..cd47d7f0879 --- /dev/null +++ b/pkgs/development/python-modules/aioambient/default.nix @@ -0,0 +1,57 @@ +{ lib +, aiohttp +, aresponses +, asynctest +, buildPythonPackage +, fetchFromGitHub +, poetry-core +, pytest-asyncio +, pytest-cov +, pytestCheckHook +, python-engineio +, python-socketio +, pythonOlder +, websockets +}: + +buildPythonPackage rec { + pname = "aioambient"; + version = "1.2.3"; + format = "pyproject"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "bachya"; + repo = pname; + rev = version; + sha256 = "1jg93rjn1gxc66qmipw4z1c09l8hgfsydacjgkfjq7vg547lragp"; + }; + + nativeBuildInputs = [ poetry-core ]; + + propagatedBuildInputs = [ + aiohttp + python-engineio + python-socketio + websockets + ]; + + checkInputs = [ + aresponses + asynctest + pytest-asyncio + pytest-cov + pytestCheckHook + ]; + + # Ignore the examples directory as the files are prefixed with test_ + pytestFlagsArray = [ "--ignore examples/" ]; + pythonImportsCheck = [ "aioambient" ]; + + meta = with lib; { + description = "Python library for the Ambient Weather API"; + homepage = "https://github.com/bachya/aioambient"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix index c694c15f557..9a57b1574ac 100644 --- a/pkgs/development/python-modules/fontparts/default.nix +++ b/pkgs/development/python-modules/fontparts/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "fontParts"; - version = "0.9.7"; + version = "0.9.9"; src = fetchPypi { inherit pname version; - sha256 = "183y1y11bqd4ky4anyv40qbvsm6i90gnydqzrjg7syspjsqvfqgy"; + sha256 = "1iz04kpxgc5fx2rl4585hr1vp4cdajqbddlskkhlmzkn9hvz528i"; extension = "zip"; }; @@ -28,7 +28,9 @@ buildPythonPackage rec { ]; checkPhase = '' + runHook preCheck ${python.interpreter} Lib/fontParts/fontshell/test.py + runHook postCheck ''; checkInputs = [ pytest ]; diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix index 93cbc22b7cd..786250ce9e1 100644 --- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix +++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "google-cloud-bigtable"; - version = "1.6.1"; + version = "1.7.0"; src = fetchPypi { inherit pname version; - sha256 = "ace4ff7c6e00fb7d86963503615db85336b6484339f5774bd8c589df224772a8"; + sha256 = "90bd53a19c33c34101b8567c82a6dc0386af4118d70e1ad69b49375358a21aa6"; }; checkInputs = [ pytest mock ]; diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix index b6f78e5cf8f..94cef6d07f1 100644 --- a/pkgs/development/python-modules/humanize/default.nix +++ b/pkgs/development/python-modules/humanize/default.nix @@ -2,8 +2,10 @@ , buildPythonPackage , fetchPypi , isPy27 -, mock , setuptools_scm +, setuptools +, pytestCheckHook +, freezegun }: buildPythonPackage rec { @@ -17,16 +19,14 @@ buildPythonPackage rec { }; nativeBuildInputs = [ setuptools_scm ]; - checkInputs = [ mock ]; - - doCheck = false; + propagatedBuildInputs = [ setuptools ]; + checkInputs = [ pytestCheckHook freezegun ]; meta = with lib; { description = "Python humanize utilities"; homepage = "https://github.com/jmoiron/humanize"; license = licenses.mit; - maintainers = with maintainers; [ ]; - platforms = platforms.unix; + maintainers = with maintainers; [ rmcgibbo ]; }; } diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix index b6e6f47b64b..3f30da8da9b 100644 --- a/pkgs/development/python-modules/josepy/default.nix +++ b/pkgs/development/python-modules/josepy/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "josepy"; - version = "1.6.0"; + version = "1.7.0"; src = fetchPypi { inherit pname version; - sha256 = "0aab1c3ceffe045e7fd5bcfe7685e27e9d2758518d9ba7116b5de34087e70bf5"; + sha256 = "d265414fa16d7a8b7a1d1833b4ebb19a22bd0deae5d44413cf9040fd8491d85a"; }; postPatch = '' diff --git a/pkgs/development/python-modules/proxmoxer/default.nix b/pkgs/development/python-modules/proxmoxer/default.nix new file mode 100644 index 00000000000..cdbec22bc1f --- /dev/null +++ b/pkgs/development/python-modules/proxmoxer/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, mock +, nose +, paramiko +, pytestCheckHook +, pythonOlder +, requests +}: + +buildPythonPackage rec { + pname = "proxmoxer"; + version = "1.1.1"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "09fz8zbxjaly9zqksvq6cqp66plbsyjsmndy4g25ryys45siz1ny"; + }; + + propagatedBuildInputs = [ + paramiko + requests + ]; + + checkInputs = [ + mock + nose + pytestCheckHook + ]; + + # Tests require openssh_wrapper which is outdated and not available + pytestFlagsArray = [ "tests/paramiko_tests.py" ]; + pythonImportsCheck = [ "proxmoxer" ]; + + meta = with lib; { + description = "Python wrapper for Proxmox API v2"; + homepage = "https://github.com/proxmoxer/proxmoxer"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pydaikin/default.nix b/pkgs/development/python-modules/pydaikin/default.nix new file mode 100644 index 00000000000..209ef3dbc23 --- /dev/null +++ b/pkgs/development/python-modules/pydaikin/default.nix @@ -0,0 +1,45 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromBitbucket +, freezegun +, netifaces +, pytest-aiohttp +, pytestCheckHook +, pythonOlder +, urllib3 +}: + +buildPythonPackage rec { + pname = "pydaikin"; + version = "2.4.1"; + disabled = pythonOlder "3.6"; + + src = fetchFromBitbucket { + owner = "mustang51"; + repo = pname; + rev = "v${version}"; + sha256 = "1624adp4lqd1n9flnf0wqrcibml2nd19ga3fmxzjg4x5z6767bs3"; + }; + + propagatedBuildInputs = [ + aiohttp + netifaces + urllib3 + ]; + + checkInputs = [ + freezegun + pytest-aiohttp + pytestCheckHook + ]; + + pythonImportsCheck = [ "pydaikin" ]; + + meta = with lib; { + description = "Python Daikin HVAC appliances interface"; + homepage = "https://bitbucket.org/mustang51/pydaikin"; + license = with licenses; [ gpl3Only ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pymsteams/default.nix b/pkgs/development/python-modules/pymsteams/default.nix new file mode 100644 index 00000000000..a475d074efd --- /dev/null +++ b/pkgs/development/python-modules/pymsteams/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, requests +}: + +buildPythonPackage rec { + pname = "pymsteams"; + version = "0.1.14"; + + src = fetchFromGitHub { + owner = "rveachkc"; + repo = pname; + rev = version; + sha256 = "19gnsjzf3kwcwp2rwa30zpqjqgxb9plgcsx7fqbmxnrxgw99fyqx"; + }; + + propagatedBuildInputs = [ requests ]; + + # Tests require network access + doCheck = false; + pythonImportsCheck = [ "pymsteams" ]; + + meta = with lib; { + description = "Python module to interact with Microsoft Teams"; + homepage = "https://github.com/rveachkc/pymsteams"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix new file mode 100644 index 00000000000..b9df9d36d41 --- /dev/null +++ b/pkgs/development/python-modules/pyrisco/default.nix @@ -0,0 +1,32 @@ +{ lib +, aiohttp +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyrisco"; + version = "0.3.1"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "OnFreund"; + repo = pname; + rev = "v${version}"; + sha256 = "1im29h4rxnp98aqzgzjj5i8jv2h5zw9c5yx8xxzl4cmr3yila9zw"; + }; + + propagatedBuildInputs = [ aiohttp ]; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "pyrisco" ]; + + meta = with lib; { + description = "Python interface to Risco alarm systems through Risco Cloud"; + homepage = "https://github.com/OnFreund/pyrisco"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pytrafikverket/default.nix b/pkgs/development/python-modules/pytrafikverket/default.nix new file mode 100644 index 00000000000..0a65a960fb7 --- /dev/null +++ b/pkgs/development/python-modules/pytrafikverket/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchPypi +, aiohttp +, async-timeout +, lxml +}: + +buildPythonPackage rec { + pname = "pytrafikverket"; + version = "0.1.6.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "0hrjsw53ixgmhsiszdrzzh0wma705nrhq8npzacsyaf43r29zvqy"; + }; + + propagatedBuildInputs = [ + aiohttp + async-timeout + lxml + ]; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "pytrafikverket" ]; + + meta = with lib; { + description = "Python library to manage Etekcity Devices and Levoit Air Purifier"; + homepage = "https://github.com/endor-force/pytrafikverket"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/radiotherm/default.nix b/pkgs/development/python-modules/radiotherm/default.nix new file mode 100644 index 00000000000..9cefe8839c1 --- /dev/null +++ b/pkgs/development/python-modules/radiotherm/default.nix @@ -0,0 +1,34 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, mock +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "radiotherm"; + version = "2.1.0"; + disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "mhrivnak"; + repo = pname; + rev = version; + sha256 = "0p37pc7l2malmjfkdlh4q2cfa6dqpsk1rah2j2xil0pj57ai6bks"; + }; + + checkInputs = [ + mock + pytestCheckHook + ]; + + pythonImportsCheck = [ "radiotherm" ]; + + meta = with lib; { + description = "Python library for Wifi Radiothermostat"; + homepage = "https://github.com/mhrivnak/radiotherm"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/surepy/default.nix b/pkgs/development/python-modules/surepy/default.nix new file mode 100644 index 00000000000..dd071b5cf08 --- /dev/null +++ b/pkgs/development/python-modules/surepy/default.nix @@ -0,0 +1,61 @@ +{ lib +, aiodns +, aiohttp +, async-timeout +, brotlipy +, buildPythonPackage +, cchardet +, click +, colorama +, fetchFromGitHub +, halo +, poetry-core +, pythonOlder +, requests +, rich +}: + +buildPythonPackage rec { + pname = "surepy"; + version = "0.5.0"; + format = "pyproject"; + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "benleb"; + repo = pname; + rev = "v${version}"; + sha256 = "1adsnjya142bxdhfxqsi2qa35ylvdcibigs1wafjlxazlxs3mg0j"; + }; + + nativeBuildInputs = [ poetry-core ]; + + propagatedBuildInputs = [ + aiodns + aiohttp + async-timeout + brotlipy + cchardet + click + colorama + halo + requests + rich + ]; + + postPatch = '' + # halo is out-dated, https://github.com/benleb/surepy/pull/7 + substituteInPlace pyproject.toml --replace "^0.0.30" "^0.0.31" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "surepy" ]; + + meta = with lib; { + description = "Python library to interact with the Sure Petcare API"; + homepage = "https://github.com/benleb/surepy"; + 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 40779f4bc19..9416978efe7 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -27,7 +27,7 @@ "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage "amazon_polly" = ps: with ps; [ boto3 ]; "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ]; - "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient + "ambient_station" = ps: with ps; [ aioambient ]; "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ]; "ampio" = ps: with ps; [ ]; # missing inputs: asmog "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam @@ -145,7 +145,7 @@ "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports "cups" = ps: with ps; [ pycups ]; "currencylayer" = ps: with ps; [ ]; - "daikin" = ps: with ps; [ ]; # missing inputs: pydaikin + "daikin" = ps: with ps; [ pydaikin ]; "danfoss_air" = ps: with ps; [ ]; # missing inputs: pydanfossair "darksky" = ps: with ps; [ python-forecastio ]; "datadog" = ps: with ps; [ datadog ]; @@ -518,7 +518,7 @@ "mqtt_json" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ]; - "msteams" = ps: with ps; [ ]; # missing inputs: pymsteams + "msteams" = ps: with ps; [ pymsteams ]; "mvglive" = ps: with ps; [ PyMVGLive ]; "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi @@ -637,7 +637,7 @@ "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ]; "prowl" = ps: with ps; [ ]; "proximity" = ps: with ps; [ ]; - "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer + "proxmoxve" = ps: with ps; [ proxmoxer ]; "proxy" = ps: with ps; [ pillow ]; "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen "pulseaudio_loopback" = ps: with ps; [ pulsectl ]; @@ -658,7 +658,7 @@ "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa rachiopy ]; "radarr" = ps: with ps; [ ]; - "radiotherm" = ps: with ps; [ ]; # missing inputs: radiotherm + "radiotherm" = ps: with ps; [ radiotherm ]; "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird "raincloud" = ps: with ps; [ ]; # missing inputs: raincloudy "rainforest_eagle" = ps: with ps; [ ]; # missing inputs: eagle200_reader uEagle @@ -681,7 +681,7 @@ "rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx "ring" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: ring_doorbell "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api - "risco" = ps: with ps; [ ]; # missing inputs: pyrisco + "risco" = ps: with ps; [ pyrisco ]; "rmvtransport" = ps: with ps; [ PyRMVtransport ]; "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API "roku" = ps: with ps; [ ]; # missing inputs: rokuecp @@ -796,7 +796,7 @@ "sun" = ps: with ps; [ ]; "supervisord" = ps: with ps; [ ]; "supla" = ps: with ps; [ ]; # missing inputs: asyncpysupla - "surepetcare" = ps: with ps; [ ]; # missing inputs: surepy + "surepetcare" = ps: with ps; [ surepy ]; "swiss_hydrological_data" = ps: with ps; [ swisshydrodata ]; "swiss_public_transport" = ps: with ps; [ python-opendata-transport ]; "swisscom" = ps: with ps; [ ]; @@ -858,8 +858,8 @@ "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr "tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async] - "trafikverket_train" = ps: with ps; [ ]; # missing inputs: pytrafikverket - "trafikverket_weatherstation" = ps: with ps; [ ]; # missing inputs: pytrafikverket + "trafikverket_train" = ps: with ps; [ pytrafikverket ]; + "trafikverket_weatherstation" = ps: with ps; [ pytrafikverket ]; "transmission" = ps: with ps; [ transmissionrpc ]; "transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d564ac1d2f0..1e97ef5ab31 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -202,6 +202,8 @@ in { agent-py = callPackage ../development/python-modules/agent-py { }; + aioambient = callPackage ../development/python-modules/aioambient { }; + aioamqp = callPackage ../development/python-modules/aioamqp { }; ailment = callPackage ../development/python-modules/ailment { }; @@ -5122,6 +5124,8 @@ in { prox-tv = callPackage ../development/python-modules/prox-tv { }; + proxmoxer = callPackage ../development/python-modules/proxmoxer { }; + psautohint = callPackage ../development/python-modules/psautohint { }; psd-tools = callPackage ../development/python-modules/psd-tools { }; @@ -5347,6 +5351,8 @@ in { pycxx = callPackage ../development/python-modules/pycxx { }; + pydaikin = callPackage ../development/python-modules/pydaikin { }; + pydantic = callPackage ../development/python-modules/pydantic { }; pydbus = callPackage ../development/python-modules/pydbus { }; @@ -5675,6 +5681,8 @@ in { pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04 + pymsteams = callPackage ../development/python-modules/pymsteams { }; + py-multibase = callPackage ../development/python-modules/py-multibase { }; py-multicodec = callPackage ../development/python-modules/py-multicodec { }; @@ -5885,6 +5893,8 @@ in { pyres = callPackage ../development/python-modules/pyres { }; + pyrisco = callPackage ../development/python-modules/pyrisco { }; + pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { }; PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { }; @@ -6494,6 +6504,8 @@ in { pytorchWithoutCuda = self.pytorch.override { cudaSupport = false; }; + pytrafikverket = callPackage ../development/python-modules/pytrafikverket { }; + pytrends = callPackage ../development/python-modules/pytrends { }; pytricia = callPackage ../development/python-modules/pytricia { }; @@ -6678,6 +6690,8 @@ in { radio_beam = callPackage ../development/python-modules/radio_beam { }; + radiotherm = callPackage ../development/python-modules/radiotherm { }; + radish-bdd = callPackage ../development/python-modules/radish-bdd { }; rainbowstream = callPackage ../development/python-modules/rainbowstream { }; @@ -7578,6 +7592,8 @@ in { sure = callPackage ../development/python-modules/sure { }; + surepy = callPackage ../development/python-modules/surepy { }; + survey = callPackage ../development/python-modules/survey { }; suseapi = callPackage ../development/python-modules/suseapi { };