From e06e699c84a18b121935cbd2410d3c3725236faf Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 29 Aug 2020 00:59:50 +0200 Subject: [PATCH] home-assistant: fix list spacing in component packages --- .../home-assistant/component-packages.nix | 544 +++++++++--------- .../home-assistant/parse-requirements.py | 7 +- 2 files changed, 276 insertions(+), 275 deletions(-) diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index a392c30b21cf..4a6989989aeb 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -6,7 +6,7 @@ components = { "abode" = ps: with ps; [ ]; # missing inputs: abodepy "accuweather" = ps: with ps; [ ]; # missing inputs: accuweather - "acer_projector" = ps: with ps; [ pyserial]; + "acer_projector" = ps: with ps; [ pyserial ]; "acmeda" = ps: with ps; [ ]; # missing inputs: aiopulse "actiontec" = ps: with ps; [ ]; "adguard" = ps: with ps; [ ]; # missing inputs: adguardhome @@ -15,39 +15,39 @@ "agent_dvr" = ps: with ps; [ ]; # missing inputs: agent-py "air_quality" = ps: with ps; [ ]; "airly" = ps: with ps; [ ]; # missing inputs: airly - "airvisual" = ps: with ps; [ pyairvisual]; + "airvisual" = ps: with ps; [ pyairvisual ]; "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect "alarm_control_panel" = ps: with ps; [ ]; "alarmdecoder" = ps: with ps; [ ]; # missing inputs: adext "alert" = ps: with ps; [ ]; - "alexa" = ps: with ps; [ aiohttp-cors]; - "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond + "alexa" = ps: with ps; [ aiohttp-cors ]; + "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage - "amazon_polly" = ps: with ps; [ boto3]; - "ambiclimate" = ps: with ps; [ aiohttp-cors]; # missing inputs: ambiclimate + "amazon_polly" = ps: with ps; [ boto3 ]; + "ambiclimate" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ambiclimate "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient - "amcrest" = ps: with ps; [ ha-ffmpeg]; # missing inputs: amcrest + "amcrest" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: amcrest "ampio" = ps: with ps; [ ]; # missing inputs: asmog "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam "androidtv" = ps: with ps; [ ]; # missing inputs: adb-shell[async] androidtv[async] pure-python-adb "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant "anthemav" = ps: with ps; [ ]; # missing inputs: anthemav - "apache_kafka" = ps: with ps; [ aiokafka]; + "apache_kafka" = ps: with ps; [ aiokafka ]; "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess - "api" = ps: with ps; [ aiohttp-cors]; + "api" = ps: with ps; [ aiohttp-cors ]; "apns" = ps: with ps; [ ]; # missing inputs: apns2 - "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf]; - "apprise" = ps: with ps; [ apprise]; + "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ]; + "apprise" = ps: with ps; [ apprise ]; "aprs" = ps: with ps; [ ]; # missing inputs: aprslib geopy "aqualogic" = ps: with ps; [ ]; # missing inputs: aqualogic "aquostv" = ps: with ps; [ ]; # missing inputs: sharp_aquos_rc "arcam_fmj" = ps: with ps; [ ]; # missing inputs: arcam-fmj "arduino" = ps: with ps; [ ]; # missing inputs: PyMata "arest" = ps: with ps; [ ]; - "arlo" = ps: with ps; [ ha-ffmpeg]; # missing inputs: pyarlo + "arlo" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: pyarlo "arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg - "aruba" = ps: with ps; [ pexpect]; - "arwn" = ps: with ps; [ aiohttp-cors paho-mqtt]; + "aruba" = ps: with ps; [ pexpect ]; + "arwn" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "asterisk_cdr" = ps: with ps; [ ]; # missing inputs: asterisk_mbox "asterisk_mbox" = ps: with ps; [ ]; # missing inputs: asterisk_mbox "asuswrt" = ps: with ps; [ ]; # missing inputs: aioasuswrt @@ -57,17 +57,17 @@ "august" = ps: with ps; [ ]; # missing inputs: py-august "aurora" = ps: with ps; [ ]; "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy - "auth" = ps: with ps; [ aiohttp-cors]; - "automation" = ps: with ps; [ aiohttp-cors]; + "auth" = ps: with ps; [ aiohttp-cors ]; + "automation" = ps: with ps; [ aiohttp-cors ]; "avea" = ps: with ps; [ ]; # missing inputs: avea "avion" = ps: with ps; [ ]; # missing inputs: avion - "avri" = ps: with ps; [ pycountry]; # missing inputs: avri-api + "avri" = ps: with ps; [ pycountry ]; # missing inputs: avri-api "awair" = ps: with ps; [ ]; # missing inputs: python_awair "aws" = ps: with ps; [ ]; # missing inputs: aiobotocore - "axis" = ps: with ps; [ aiohttp-cors paho-mqtt]; # missing inputs: axis + "axis" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: axis "azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops "azure_event_hub" = ps: with ps; [ ]; # missing inputs: azure-eventhub - "azure_service_bus" = ps: with ps; [ azure-servicebus]; + "azure_service_bus" = ps: with ps; [ azure-servicebus ]; "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip "bayesian" = ps: with ps; [ ]; "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO @@ -80,22 +80,22 @@ "blackbird" = ps: with ps; [ ]; # missing inputs: pyblackbird "blebox" = ps: with ps; [ ]; # missing inputs: blebox_uniapi "blink" = ps: with ps; [ ]; # missing inputs: blinkpy - "blinksticklight" = ps: with ps; [ BlinkStick]; + "blinksticklight" = ps: with ps; [ BlinkStick ]; "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api "bloomsky" = ps: with ps; [ ]; - "bluesound" = ps: with ps; [ xmltodict]; + "bluesound" = ps: with ps; [ xmltodict ]; "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL] - "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez + "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; # missing inputs: pybluez "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280 "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop "bond" = ps: with ps; [ ]; # missing inputs: bond-api - "braviatv" = ps: with ps; [ bravia-tv]; - "broadlink" = ps: with ps; [ broadlink]; - "brother" = ps: with ps; [ brother]; + "braviatv" = ps: with ps; [ bravia-tv ]; + "broadlink" = ps: with ps; [ broadlink ]; + "brother" = ps: with ps; [ brother ]; "brottsplatskartan" = ps: with ps; [ ]; # missing inputs: brottsplatskartan "browser" = ps: with ps; [ ]; "brunt" = ps: with ps; [ ]; # missing inputs: brunt @@ -103,15 +103,15 @@ "bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist "bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist "buienradar" = ps: with ps; [ ]; # missing inputs: buienradar - "caldav" = ps: with ps; [ caldav]; - "calendar" = ps: with ps; [ aiohttp-cors]; - "camera" = ps: with ps; [ aiohttp-cors]; - "canary" = ps: with ps; [ ha-ffmpeg]; # missing inputs: py-canary - "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa PyChromecast zeroconf]; + "caldav" = ps: with ps; [ caldav ]; + "calendar" = ps: with ps; [ aiohttp-cors ]; + "camera" = ps: with ps; [ aiohttp-cors ]; + "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary + "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa PyChromecast zeroconf ]; "cert_expiry" = ps: with ps; [ ]; "channels" = ps: with ps; [ ]; # missing inputs: pychannels "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook - "cisco_ios" = ps: with ps; [ pexpect]; + "cisco_ios" = ps: with ps; [ pexpect ]; "cisco_mobility_express" = ps: with ps; [ ]; # missing inputs: ciscomobilityexpress "cisco_webex_teams" = ps: with ps; [ ]; # missing inputs: webexteamssdk "citybikes" = ps: with ps; [ ]; @@ -120,44 +120,44 @@ "clicksend" = ps: with ps; [ ]; "clicksend_tts" = ps: with ps; [ ]; "climate" = ps: with ps; [ ]; - "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa]; + "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; "cloudflare" = ps: with ps; [ ]; # missing inputs: pycfdns "cmus" = ps: with ps; [ ]; # missing inputs: pycmus "co2signal" = ps: with ps; [ ]; # missing inputs: co2signal "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase - "coinmarketcap" = ps: with ps; [ coinmarketcap]; + "coinmarketcap" = ps: with ps; [ coinmarketcap ]; "comed_hourly_pricing" = ps: with ps; [ ]; "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect "command_line" = ps: with ps; [ ]; "concord232" = ps: with ps; [ ]; # missing inputs: concord232 - "config" = ps: with ps; [ aiohttp-cors]; + "config" = ps: with ps; [ aiohttp-cors ]; "configurator" = ps: with ps; [ ]; "control4" = ps: with ps; [ ]; # missing inputs: pyControl4 - "conversation" = ps: with ps; [ aiohttp-cors]; + "conversation" = ps: with ps; [ aiohttp-cors ]; "coolmaster" = ps: with ps; [ ]; # missing inputs: pycoolmasternet "coronavirus" = ps: with ps; [ ]; # missing inputs: coronavirus "counter" = ps: with ps; [ ]; "cover" = ps: with ps; [ ]; "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy - "cpuspeed" = ps: with ps; [ py-cpuinfo]; + "cpuspeed" = ps: with ps; [ py-cpuinfo ]; "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports - "cups" = ps: with ps; [ pycups]; + "cups" = ps: with ps; [ pycups ]; "currencylayer" = ps: with ps; [ ]; "daikin" = ps: with ps; [ ]; # missing inputs: pydaikin "danfoss_air" = ps: with ps; [ ]; # missing inputs: pydanfossair - "darksky" = ps: with ps; [ python-forecastio]; - "datadog" = ps: with ps; [ datadog]; + "darksky" = ps: with ps; [ python-forecastio ]; + "datadog" = ps: with ps; [ datadog ]; "ddwrt" = ps: with ps; [ ]; - "debugpy" = ps: with ps; [ debugpy]; + "debugpy" = ps: with ps; [ debugpy ]; "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz - "decora" = ps: with ps; [ bluepy]; # missing inputs: decora + "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi - "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco sqlalchemy zeroconf]; # missing inputs: home-assistant-frontend + "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco sqlalchemy zeroconf ]; # missing inputs: home-assistant-frontend "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn - "deluge" = ps: with ps; [ deluge-client]; - "demo" = ps: with ps; [ aiohttp-cors]; + "deluge" = ps: with ps; [ deluge-client ]; + "demo" = ps: with ps; [ aiohttp-cors ]; "denon" = ps: with ps; [ ]; - "denonavr" = ps: with ps; [ denonavr getmac]; + "denonavr" = ps: with ps; [ denonavr getmac ]; "derivative" = ps: with ps; [ ]; "deutsche_bahn" = ps: with ps; [ ]; # missing inputs: schiene "device_automation" = ps: with ps; [ ]; @@ -166,40 +166,40 @@ "devolo_home_control" = ps: with ps; [ ]; # missing inputs: devolo-home-control-api "dexcom" = ps: with ps; [ ]; # missing inputs: pydexcom "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT - "dialogflow" = ps: with ps; [ aiohttp-cors]; - "digital_ocean" = ps: with ps; [ digital-ocean]; + "dialogflow" = ps: with ps; [ aiohttp-cors ]; + "digital_ocean" = ps: with ps; [ digital-ocean ]; "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower "directv" = ps: with ps; [ ]; # missing inputs: directv - "discogs" = ps: with ps; [ discogs_client]; - "discord" = ps: with ps; [ discordpy]; - "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; - "dlib_face_detect" = ps: with ps; [ face_recognition]; - "dlib_face_identify" = ps: with ps; [ face_recognition]; + "discogs" = ps: with ps; [ discogs_client ]; + "discord" = ps: with ps; [ discordpy ]; + "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; + "dlib_face_detect" = ps: with ps; [ face_recognition ]; + "dlib_face_identify" = ps: with ps; [ face_recognition ]; "dlink" = ps: with ps; [ ]; # missing inputs: pyW215 - "dlna_dmr" = ps: with ps; [ async-upnp-client]; - "dnsip" = ps: with ps; [ aiodns]; - "dominos" = ps: with ps; [ aiohttp-cors]; # missing inputs: pizzapi - "doods" = ps: with ps; [ pillow]; # missing inputs: pydoods - "doorbird" = ps: with ps; [ aiohttp-cors]; # missing inputs: doorbirdpy + "dlna_dmr" = ps: with ps; [ async-upnp-client ]; + "dnsip" = ps: with ps; [ aiodns ]; + "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi + "doods" = ps: with ps; [ pillow ]; # missing inputs: pydoods + "doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy "dovado" = ps: with ps; [ ]; # missing inputs: dovado "downloader" = ps: with ps; [ ]; "dsmr" = ps: with ps; [ ]; # missing inputs: dsmr_parser - "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt]; + "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ]; "dte_energy_bridge" = ps: with ps; [ ]; "dublin_bus_transport" = ps: with ps; [ ]; "duckdns" = ps: with ps; [ ]; "dunehd" = ps: with ps; [ ]; # missing inputs: pdunehd - "dwd_weather_warnings" = ps: with ps; [ jsonpath xmltodict]; + "dwd_weather_warnings" = ps: with ps; [ jsonpath xmltodict ]; "dweet" = ps: with ps; [ ]; # missing inputs: dweepy "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices - "dyson" = ps: with ps; [ aiohttp-cors zeroconf]; # missing inputs: libpurecool + "dyson" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: libpurecool "ebox" = ps: with ps; [ ]; # missing inputs: pyebox "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy "ecoal_boiler" = ps: with ps; [ ]; # missing inputs: ecoaliface "ecobee" = ps: with ps; [ ]; # missing inputs: python-ecobee-api "econet" = ps: with ps; [ ]; # missing inputs: pyeconet "ecovacs" = ps: with ps; [ ]; # missing inputs: sucks - "eddystone_temperature" = ps: with ps; [ construct]; # missing inputs: beacontools[scan] + "eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools[scan] "edimax" = ps: with ps; [ ]; # missing inputs: pyedimax "edl21" = ps: with ps; [ ]; # missing inputs: pysml "ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox @@ -213,9 +213,9 @@ "emby" = ps: with ps; [ ]; # missing inputs: pyemby "emoncms" = ps: with ps; [ ]; "emoncms_history" = ps: with ps; [ ]; - "emulated_hue" = ps: with ps; [ aiohttp-cors]; + "emulated_hue" = ps: with ps; [ aiohttp-cors ]; "emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku - "enigma2" = ps: with ps; [ openwebifpy]; + "enigma2" = ps: with ps; [ openwebifpy ]; "enocean" = ps: with ps; [ ]; # missing inputs: enocean "enphase_envoy" = ps: with ps; [ ]; # missing inputs: envoy_reader "entur_public_transport" = ps: with ps; [ ]; # missing inputs: enturclient @@ -225,8 +225,8 @@ "ephember" = ps: with ps; [ ]; # missing inputs: pyephember "epson" = ps: with ps; [ ]; # missing inputs: epson-projector "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter - "eq3btsmart" = ps: with ps; [ construct]; # missing inputs: python-eq3bt - "esphome" = ps: with ps; [ aioesphomeapi]; + "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt + "esphome" = ps: with ps; [ aioesphomeapi ]; "essent" = ps: with ps; [ ]; # missing inputs: PyEssent "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api "eufy" = ps: with ps; [ ]; # missing inputs: lakeside @@ -240,17 +240,17 @@ "fan" = ps: with ps; [ ]; "fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom "feedreader" = ps: with ps; [ ]; # missing inputs: feedparser-homeassistant - "ffmpeg" = ps: with ps; [ ha-ffmpeg]; - "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg]; - "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg]; + "ffmpeg" = ps: with ps; [ ha-ffmpeg ]; + "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ]; + "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ]; "fibaro" = ps: with ps; [ ]; # missing inputs: fiblary3 "fido" = ps: with ps; [ ]; # missing inputs: pyfido "file" = ps: with ps; [ ]; "filesize" = ps: with ps; [ ]; - "filter" = ps: with ps; [ aiohttp-cors sqlalchemy]; - "fints" = ps: with ps; [ fints]; + "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "fints" = ps: with ps; [ fints ]; "firmata" = ps: with ps; [ ]; # missing inputs: pymata-express - "fitbit" = ps: with ps; [ aiohttp-cors fitbit]; + "fitbit" = ps: with ps; [ aiohttp-cors fitbit ]; "fixer" = ps: with ps; [ ]; # missing inputs: fixerio "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist "flexit" = ps: with ps; [ ]; # missing inputs: pyflexit pymodbus @@ -260,23 +260,23 @@ "flume" = ps: with ps; [ ]; # missing inputs: pyflume "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou "flux" = ps: with ps; [ ]; - "flux_led" = ps: with ps; [ flux-led]; + "flux_led" = ps: with ps; [ flux-led ]; "folder" = ps: with ps; [ ]; - "folder_watcher" = ps: with ps; [ watchdog]; + "folder_watcher" = ps: with ps; [ watchdog ]; "foobot" = ps: with ps; [ ]; # missing inputs: foobot_async "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java "fortios" = ps: with ps; [ ]; # missing inputs: fortiosapi "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam - "foursquare" = ps: with ps; [ aiohttp-cors]; + "foursquare" = ps: with ps; [ aiohttp-cors ]; "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms - "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: aiofreepybox + "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox "freedns" = ps: with ps; [ ]; - "fritz" = ps: with ps; [ fritzconnection]; - "fritzbox" = ps: with ps; [ pyfritzhome]; - "fritzbox_callmonitor" = ps: with ps; [ fritzconnection]; - "fritzbox_netmonitor" = ps: with ps; [ fritzconnection]; + "fritz" = ps: with ps; [ fritzconnection ]; + "fritzbox" = ps: with ps; [ pyfritzhome ]; + "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ]; + "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ]; "fronius" = ps: with ps; [ ]; # missing inputs: pyfronius - "frontend" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend + "frontend" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend "frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi "futurenow" = ps: with ps; [ ]; # missing inputs: pyfnip "garadget" = ps: with ps; [ ]; @@ -290,29 +290,29 @@ "geo_json_events" = ps: with ps; [ ]; # missing inputs: geojson_client "geo_location" = ps: with ps; [ ]; "geo_rss_events" = ps: with ps; [ ]; # missing inputs: georss_generic_client - "geofency" = ps: with ps; [ aiohttp-cors]; + "geofency" = ps: with ps; [ aiohttp-cors ]; "geonetnz_quakes" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_quakes "geonetnz_volcano" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_volcano "gios" = ps: with ps; [ ]; # missing inputs: gios - "github" = ps: with ps; [ PyGithub]; - "gitlab_ci" = ps: with ps; [ python-gitlab]; + "github" = ps: with ps; [ PyGithub ]; + "gitlab_ci" = ps: with ps; [ python-gitlab ]; "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy "glances" = ps: with ps; [ ]; # missing inputs: glances_api "gntp" = ps: with ps; [ ]; # missing inputs: gntp "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher "gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api - "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client]; - "google_assistant" = ps: with ps; [ aiohttp-cors]; - "google_cloud" = ps: with ps; [ google_cloud_texttospeech]; + "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ]; + "google_assistant" = ps: with ps; [ aiohttp-cors ]; + "google_cloud" = ps: with ps; [ google_cloud_texttospeech ]; "google_domains" = ps: with ps; [ ]; "google_maps" = ps: with ps; [ ]; # missing inputs: locationsharinglib - "google_pubsub" = ps: with ps; [ google_cloud_pubsub]; - "google_translate" = ps: with ps; [ gtts-token]; + "google_pubsub" = ps: with ps; [ google_cloud_pubsub ]; + "google_translate" = ps: with ps; [ gtts-token ]; "google_travel_time" = ps: with ps; [ ]; # missing inputs: googlemaps "google_wifi" = ps: with ps; [ ]; - "gpmdp" = ps: with ps; [ websocket_client]; + "gpmdp" = ps: with ps; [ websocket_client ]; "gpsd" = ps: with ps; [ ]; # missing inputs: gps3 - "gpslogger" = ps: with ps; [ aiohttp-cors]; + "gpslogger" = ps: with ps; [ aiohttp-cors ]; "graphite" = ps: with ps; [ ]; "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality @@ -325,8 +325,8 @@ "habitica" = ps: with ps; [ ]; # missing inputs: habitipy "hangouts" = ps: with ps; [ ]; # missing inputs: hangups "harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr - "harmony" = ps: with ps; [ aioharmony]; - "hassio" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend + "harmony" = ps: with ps; [ aioharmony ]; + "hassio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend "haveibeenpwned" = ps: with ps; [ ]; "hddtemp" = ps: with ps; [ ]; "hdmi_cec" = ps: with ps; [ ]; # missing inputs: pyCEC @@ -336,27 +336,27 @@ "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik "hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision "hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1 - "history" = ps: with ps; [ aiohttp-cors sqlalchemy]; - "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy]; + "history" = ps: with ps; [ aiohttp-cors sqlalchemy ]; + "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ]; "hitron_coda" = ps: with ps; [ ]; "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16 - "home_connect" = ps: with ps; [ aiohttp-cors]; # missing inputs: homeconnect + "home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect "homeassistant" = ps: with ps; [ ]; - "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg zeroconf]; # missing inputs: PyTurboJPEG base36 fnvhash - "homekit_controller" = ps: with ps; [ aiohttp-cors zeroconf]; # missing inputs: aiohomekit[IP] - "homematic" = ps: with ps; [ pyhomematic]; + "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg zeroconf ]; # missing inputs: PyTurboJPEG base36 fnvhash + "homekit_controller" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: aiohomekit[IP] + "homematic" = ps: with ps; [ pyhomematic ]; "homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks "honeywell" = ps: with ps; [ ]; # missing inputs: somecomfort "horizon" = ps: with ps; [ ]; # missing inputs: horimote "hp_ilo" = ps: with ps; [ ]; # missing inputs: python-hpilo - "html5" = ps: with ps; [ aiohttp-cors pywebpush]; - "http" = ps: with ps; [ aiohttp-cors]; + "html5" = ps: with ps; [ aiohttp-cors pywebpush ]; + "http" = ps: with ps; [ aiohttp-cors ]; "htu21d" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi - "huawei_lte" = ps: with ps; [ getmac stringcase]; # missing inputs: huawei-lte-api url-normalize + "huawei_lte" = ps: with ps; [ getmac stringcase ]; # missing inputs: huawei-lte-api url-normalize "huawei_router" = ps: with ps; [ ]; - "hue" = ps: with ps; [ aiohue]; + "hue" = ps: with ps; [ aiohue ]; "humidifier" = ps: with ps; [ ]; "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti @@ -365,17 +365,17 @@ "ialarm" = ps: with ps; [ ]; # missing inputs: pyialarm "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter "iaqualink" = ps: with ps; [ ]; # missing inputs: iaqualink - "icloud" = ps: with ps; [ pyicloud]; + "icloud" = ps: with ps; [ pyicloud ]; "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py - "ifttt" = ps: with ps; [ aiohttp-cors pyfttt]; + "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ]; "iglo" = ps: with ps; [ ]; # missing inputs: iglo "ign_sismologia" = ps: with ps; [ ]; # missing inputs: georss_ign_sismologia_client - "ihc" = ps: with ps; [ defusedxml]; # missing inputs: ihcsdk - "image_processing" = ps: with ps; [ aiohttp-cors]; + "ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk + "image_processing" = ps: with ps; [ aiohttp-cors ]; "imap" = ps: with ps; [ ]; # missing inputs: aioimaplib "imap_email_content" = ps: with ps; [ ]; "incomfort" = ps: with ps; [ ]; # missing inputs: incomfort-client - "influxdb" = ps: with ps; [ influxdb-client influxdb]; + "influxdb" = ps: with ps; [ influxdb-client influxdb ]; "input_boolean" = ps: with ps; [ ]; "input_datetime" = ps: with ps; [ ]; "input_number" = ps: with ps; [ ]; @@ -383,15 +383,15 @@ "input_text" = ps: with ps; [ ]; "insteon" = ps: with ps; [ ]; # missing inputs: pyinsteon "integration" = ps: with ps; [ ]; - "intent" = ps: with ps; [ aiohttp-cors]; + "intent" = ps: with ps; [ aiohttp-cors ]; "intent_script" = ps: with ps; [ ]; "intesishome" = ps: with ps; [ ]; # missing inputs: pyintesishome - "ios" = ps: with ps; [ aiohttp-cors zeroconf]; + "ios" = ps: with ps; [ aiohttp-cors zeroconf ]; "iota" = ps: with ps; [ ]; # missing inputs: pyota "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3 "ipma" = ps: with ps; [ ]; # missing inputs: pyipma - "ipp" = ps: with ps; [ pyipp]; - "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia + "ipp" = ps: with ps; [ pyipp ]; + "iqvia" = ps: with ps; [ numpy ]; # missing inputs: pyiqvia "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator "iss" = ps: with ps; [ ]; # missing inputs: pyiss @@ -406,92 +406,92 @@ "kankun" = ps: with ps; [ ]; "keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact "keenetic_ndms2" = ps: with ps; [ ]; # missing inputs: ndms2_client - "kef" = ps: with ps; [ getmac]; # missing inputs: aiokef + "kef" = ps: with ps; [ getmac ]; # missing inputs: aiokef "keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput - "keyboard_remote" = ps: with ps; [ evdev]; # missing inputs: aionotify + "keyboard_remote" = ps: with ps; [ evdev ]; # missing inputs: aionotify "kira" = ps: with ps; [ ]; # missing inputs: pykira "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client "knx" = ps: with ps; [ ]; # missing inputs: xknx - "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket]; - "konnected" = ps: with ps; [ aiohttp-cors]; # missing inputs: konnected + "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ]; + "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected "kwb" = ps: with ps; [ ]; # missing inputs: pykwb "lacrosse" = ps: with ps; [ ]; # missing inputs: pylacrosse "lametric" = ps: with ps; [ ]; # missing inputs: lmnotify "lannouncer" = ps: with ps; [ ]; - "lastfm" = ps: with ps; [ pylast]; + "lastfm" = ps: with ps; [ pylast ]; "launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches "lcn" = ps: with ps; [ ]; # missing inputs: pypck "lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast-homeassistant "lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal "life360" = ps: with ps; [ ]; # missing inputs: life360 - "lifx" = ps: with ps; [ aiolifx aiolifx-effects]; + "lifx" = ps: with ps; [ aiolifx aiolifx-effects ]; "lifx_cloud" = ps: with ps; [ ]; "lifx_legacy" = ps: with ps; [ ]; # missing inputs: liffylights "light" = ps: with ps; [ ]; "lightwave" = ps: with ps; [ ]; # missing inputs: lightwave - "limitlessled" = ps: with ps; [ limitlessled]; + "limitlessled" = ps: with ps; [ limitlessled ]; "linksys_smart" = ps: with ps; [ ]; - "linode" = ps: with ps; [ linode-api]; - "linux_battery" = ps: with ps; [ batinfo]; + "linode" = ps: with ps; [ linode-api ]; + "linux_battery" = ps: with ps; [ batinfo ]; "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet "llamalab_automate" = ps: with ps; [ ]; "local_file" = ps: with ps; [ ]; "local_ip" = ps: with ps; [ ]; - "locative" = ps: with ps; [ aiohttp-cors]; + "locative" = ps: with ps; [ aiohttp-cors ]; "lock" = ps: with ps; [ ]; - "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend + "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ]; # missing inputs: home-assistant-frontend "logentries" = ps: with ps; [ ]; "logger" = ps: with ps; [ ]; - "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg]; # missing inputs: logi_circle + "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle "london_air" = ps: with ps; [ ]; "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy "lovelace" = ps: with ps; [ ]; - "luci" = ps: with ps; [ openwrt-luci-rpc]; - "luftdaten" = ps: with ps; [ luftdaten]; + "luci" = ps: with ps; [ openwrt-luci-rpc ]; + "luftdaten" = ps: with ps; [ luftdaten ]; "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy "lutron" = ps: with ps; [ ]; # missing inputs: pylutron "lutron_caseta" = ps: with ps; [ ]; # missing inputs: pylutron-caseta "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12 "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed - "mailbox" = ps: with ps; [ aiohttp-cors]; - "mailgun" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymailgunner + "mailbox" = ps: with ps; [ aiohttp-cors ]; + "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner "manual" = ps: with ps; [ ]; - "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt]; - "map" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend + "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ]; + "map" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend "marytts" = ps: with ps; [ ]; # missing inputs: speak2mary "mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py - "matrix" = ps: with ps; [ matrix-client]; + "matrix" = ps: with ps; [ matrix-client ]; "maxcube" = ps: with ps; [ ]; # missing inputs: maxcube-api "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-blinka adafruit-circuitpython-mcp230xx - "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light]; - "media_player" = ps: with ps; [ aiohttp-cors]; + "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ]; + "media_player" = ps: with ps; [ aiohttp-cors ]; "mediaroom" = ps: with ps; [ ]; # missing inputs: pymediaroom "melcloud" = ps: with ps; [ ]; # missing inputs: pymelcloud "melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate - "meraki" = ps: with ps; [ aiohttp-cors]; + "meraki" = ps: with ps; [ aiohttp-cors ]; "message_bird" = ps: with ps; [ ]; # missing inputs: messagebird - "met" = ps: with ps; [ pymetno]; + "met" = ps: with ps; [ pymetno ]; "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api "meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint "mfi" = ps: with ps; [ ]; # missing inputs: mficlient "mhz19" = ps: with ps; [ ]; # missing inputs: pmsensor "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts - "microsoft_face" = ps: with ps; [ aiohttp-cors]; - "microsoft_face_detect" = ps: with ps; [ aiohttp-cors]; - "microsoft_face_identify" = ps: with ps; [ aiohttp-cors]; - "miflora" = ps: with ps; [ bluepy]; # missing inputs: miflora + "microsoft_face" = ps: with ps; [ aiohttp-cors ]; + "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ]; + "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ]; + "miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros "mill" = ps: with ps; [ ]; # missing inputs: millheater "min_max" = ps: with ps; [ ]; - "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus - "minio" = ps: with ps; [ minio]; + "minecraft_server" = ps: with ps; [ aiodns getmac ]; # missing inputs: mcstatus + "minio" = ps: with ps; [ minio ]; "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt "mjpeg" = ps: with ps; [ ]; - "mobile_app" = ps: with ps; [ pynacl aiohttp-cors emoji hass-nabucasa]; + "mobile_app" = ps: with ps; [ pynacl aiohttp-cors emoji hass-nabucasa ]; "mochad" = ps: with ps; [ ]; # missing inputs: pymochad "modbus" = ps: with ps; [ ]; # missing inputs: pymodbus "modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem @@ -499,34 +499,34 @@ "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice "moon" = ps: with ps; [ ]; "mpchc" = ps: with ps; [ ]; - "mpd" = ps: with ps; [ mpd2]; - "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt]; - "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt]; - "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]; + "mpd" = ps: with ps; [ mpd2 ]; + "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ]; + "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ]; + "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 - "mvglive" = ps: with ps; [ PyMVGLive]; + "mvglive" = ps: with ps; [ PyMVGLive ]; "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi "myq" = ps: with ps; [ ]; # missing inputs: pymyq - "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt]; # missing inputs: pymysensors - "mystrom" = ps: with ps; [ aiohttp-cors]; # missing inputs: python-mystrom + "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: pymysensors + "mystrom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: python-mystrom "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns "n26" = ps: with ps; [ ]; # missing inputs: n26 "nad" = ps: with ps; [ ]; # missing inputs: nad_receiver - "namecheapdns" = ps: with ps; [ defusedxml]; - "nanoleaf" = ps: with ps; [ pynanoleaf]; - "neato" = ps: with ps; [ pybotvac]; + "namecheapdns" = ps: with ps; [ defusedxml ]; + "nanoleaf" = ps: with ps; [ pynanoleaf ]; + "neato" = ps: with ps; [ pybotvac ]; "nederlandse_spoorwegen" = ps: with ps; [ ]; # missing inputs: nsapi "nello" = ps: with ps; [ ]; # missing inputs: pynello "ness_alarm" = ps: with ps; [ ]; # missing inputs: nessclient "nest" = ps: with ps; [ ]; # missing inputs: python-nest - "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo]; + "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo ]; "netdata" = ps: with ps; [ ]; # missing inputs: netdata "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt - "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio + "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio "nexia" = ps: with ps; [ ]; # missing inputs: nexia "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext @@ -535,11 +535,11 @@ "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control "nilu" = ps: with ps; [ ]; # missing inputs: niluclient "nissan_leaf" = ps: with ps; [ ]; # missing inputs: pycarwings2 - "nmap_tracker" = ps: with ps; [ getmac]; # missing inputs: python-nmap + "nmap_tracker" = ps: with ps; [ getmac ]; # missing inputs: python-nmap "nmbs" = ps: with ps; [ ]; # missing inputs: pyrail "no_ip" = ps: with ps; [ ]; "noaa_tides" = ps: with ps; [ ]; # missing inputs: py_noaa - "norway_air" = ps: with ps; [ pymetno]; + "norway_air" = ps: with ps; [ pymetno ]; "notify" = ps: with ps; [ ]; "notify_events" = ps: with ps; [ ]; # missing inputs: notify-events "notion" = ps: with ps; [ ]; # missing inputs: aionotion @@ -555,17 +555,17 @@ "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics "obihai" = ps: with ps; [ ]; # missing inputs: pyobihai - "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; + "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat - "ohmconnect" = ps: with ps; [ defusedxml]; + "ohmconnect" = ps: with ps; [ defusedxml ]; "ombi" = ps: with ps; [ ]; # missing inputs: pyombi - "onboarding" = ps: with ps; [ aiohttp-cors]; + "onboarding" = ps: with ps; [ aiohttp-cors ]; "onewire" = ps: with ps; [ ]; # missing inputs: pyownet - "onkyo" = ps: with ps; [ onkyo-eiscp]; - "onvif" = ps: with ps; [ ha-ffmpeg]; # missing inputs: WSDiscovery onvif-zeep-async + "onkyo" = ps: with ps; [ onkyo-eiscp ]; + "onvif" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: WSDiscovery onvif-zeep-async "openalpr_cloud" = ps: with ps; [ ]; "openalpr_local" = ps: with ps; [ ]; - "opencv" = ps: with ps; [ numpy]; # missing inputs: opencv-python-headless + "opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi "openexchangerates" = ps: with ps; [ ]; @@ -576,22 +576,22 @@ "opensky" = ps: with ps; [ ]; "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw "openuv" = ps: with ps; [ ]; # missing inputs: pyopenuv - "openweathermap" = ps: with ps; [ pyowm]; + "openweathermap" = ps: with ps; [ pyowm ]; "opnsense" = ps: with ps; [ ]; # missing inputs: pyopnsense "opple" = ps: with ps; [ ]; # missing inputs: pyoppleio "orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO "oru" = ps: with ps; [ ]; # missing inputs: oru "orvibo" = ps: with ps; [ ]; # missing inputs: orvibo "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify - "otp" = ps: with ps; [ pyotp]; + "otp" = ps: with ps; [ pyotp ]; "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy - "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt]; - "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt]; # missing inputs: python-openzwave-mqtt + "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ]; + "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: python-openzwave-mqtt "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera - "pandora" = ps: with ps; [ pexpect]; - "panel_custom" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend - "panel_iframe" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend + "pandora" = ps: with ps; [ pexpect ]; + "panel_custom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend + "panel_iframe" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend "pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a "pencom" = ps: with ps; [ ]; # missing inputs: pencompy "persistent_notification" = ps: with ps; [ ]; @@ -605,41 +605,41 @@ "ping" = ps: with ps; [ ]; "pioneer" = ps: with ps; [ ]; "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2 - "plaato" = ps: with ps; [ aiohttp-cors]; - "plant" = ps: with ps; [ sqlalchemy]; - "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos]; + "plaato" = ps: with ps; [ aiohttp-cors ]; + "plant" = ps: with ps; [ sqlalchemy ]; + "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ]; "plugwise" = ps: with ps; [ ]; # missing inputs: Plugwise_Smile "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts - "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint + "point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint "poolsense" = ps: with ps; [ ]; # missing inputs: poolsense "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix - "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client]; + "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ]; "prowl" = ps: with ps; [ ]; "proximity" = ps: with ps; [ ]; "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer - "proxy" = ps: with ps; [ pillow]; + "proxy" = ps: with ps; [ pillow ]; "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen "ptvsd" = ps: with ps; [ ]; # missing inputs: ptvsd - "pulseaudio_loopback" = ps: with ps; [ pulsectl]; - "push" = ps: with ps; [ aiohttp-cors]; - "pushbullet" = ps: with ps; [ pushbullet]; - "pushover" = ps: with ps; [ pushover-complete]; + "pulseaudio_loopback" = ps: with ps; [ pulsectl ]; + "push" = ps: with ps; [ aiohttp-cors ]; + "pushbullet" = ps: with ps; [ pushbullet ]; + "pushover" = ps: with ps; [ pushover-complete ]; "pushsafer" = ps: with ps; [ ]; - "pvoutput" = ps: with ps; [ jsonpath xmltodict]; + "pvoutput" = ps: with ps; [ jsonpath xmltodict ]; "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc "pyload" = ps: with ps; [ ]; - "python_script" = ps: with ps; [ restrictedpython]; + "python_script" = ps: with ps; [ restrictedpython ]; "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent "qld_bushfire" = ps: with ps; [ ]; # missing inputs: georss_qld_bushfire_alert_client "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats - "qrcode" = ps: with ps; [ pillow]; # missing inputs: pyzbar + "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway "qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch - "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: rachiopy + "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: rachiopy "radarr" = ps: with ps; [ ]; "radiotherm" = ps: with ps; [ ]; # missing inputs: radiotherm "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird @@ -650,66 +650,66 @@ "raspihats" = ps: with ps; [ ]; # missing inputs: raspihats smbus-cffi "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client "recollect_waste" = ps: with ps; [ ]; # missing inputs: recollect-waste - "recorder" = ps: with ps; [ sqlalchemy]; + "recorder" = ps: with ps; [ sqlalchemy ]; "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch - "reddit" = ps: with ps; [ praw]; + "reddit" = ps: with ps; [ praw ]; "rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl - "remember_the_milk" = ps: with ps; [ httplib2]; # missing inputs: RtmAPI + "remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI "remote" = ps: with ps; [ ]; "remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier - "rest" = ps: with ps; [ jsonpath xmltodict]; + "rest" = ps: with ps; [ jsonpath xmltodict ]; "rest_command" = ps: with ps; [ ]; "rflink" = ps: with ps; [ ]; # missing inputs: rflink "rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx - "ring" = ps: with ps; [ ha-ffmpeg]; # missing inputs: ring_doorbell + "ring" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: ring_doorbell "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api - "rmvtransport" = ps: with ps; [ PyRMVtransport]; + "rmvtransport" = ps: with ps; [ PyRMVtransport ]; "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API "roku" = ps: with ps; [ ]; # missing inputs: rokuecp "roomba" = ps: with ps; [ ]; # missing inputs: roombapy - "route53" = ps: with ps; [ boto3]; + "route53" = ps: with ps; [ boto3 ]; "rova" = ps: with ps; [ ]; # missing inputs: rova "rpi_camera" = ps: with ps; [ ]; "rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO "rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled "rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio "rpi_rf" = ps: with ps; [ ]; # missing inputs: rpi-rf - "rss_feed_template" = ps: with ps; [ aiohttp-cors]; + "rss_feed_template" = ps: with ps; [ aiohttp-cors ]; "rtorrent" = ps: with ps; [ ]; "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound - "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: pysabnzbd - "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: home-assistant-frontend + "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd + "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: home-assistant-frontend "saj" = ps: with ps; [ ]; # missing inputs: pysaj "salt" = ps: with ps; [ ]; # missing inputs: saltbox - "samsungtv" = ps: with ps; [ samsungctl samsungtvws]; + "samsungtv" = ps: with ps; [ samsungctl samsungtvws ]; "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra "scene" = ps: with ps; [ ]; "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter - "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict]; + "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ]; "script" = ps: with ps; [ ]; "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate - "search" = ps: with ps; [ aiohttp-cors]; - "season" = ps: with ps; [ ephem]; + "search" = ps: with ps; [ aiohttp-cors ]; + "season" = ps: with ps; [ ephem ]; "sendgrid" = ps: with ps; [ ]; # missing inputs: sendgrid "sense" = ps: with ps; [ ]; # missing inputs: sense_energy "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo "sensor" = ps: with ps; [ ]; - "sentry" = ps: with ps; [ sentry-sdk]; - "serial" = ps: with ps; [ pyserial-asyncio]; + "sentry" = ps: with ps; [ sentry-sdk ]; + "serial" = ps: with ps; [ pyserial-asyncio ]; "serial_pm" = ps: with ps; [ ]; # missing inputs: pmsensor "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2 - "seven_segments" = ps: with ps; [ pillow]; + "seven_segments" = ps: with ps; [ pillow ]; "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track "shell_command" = ps: with ps; [ ]; - "shiftr" = ps: with ps; [ paho-mqtt]; - "shodan" = ps: with ps; [ shodan]; - "shopping_list" = ps: with ps; [ aiohttp-cors]; + "shiftr" = ps: with ps; [ paho-mqtt ]; + "shodan" = ps: with ps; [ shodan ]; + "shopping_list" = ps: with ps; [ aiohttp-cors ]; "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31 "sigfox" = ps: with ps; [ ]; - "sighthound" = ps: with ps; [ pillow]; # missing inputs: simplehound + "sighthound" = ps: with ps; [ pillow ]; # missing inputs: simplehound "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi "simplepush" = ps: with ps; [ ]; # missing inputs: simplepush "simplisafe" = ps: with ps; [ ]; # missing inputs: simplisafe-python @@ -723,51 +723,51 @@ "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq "slide" = ps: with ps; [ ]; # missing inputs: goslide-api "sma" = ps: with ps; [ ]; # missing inputs: pysma - "smappee" = ps: with ps; [ aiohttp-cors]; # missing inputs: pysmappee + "smappee" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pysmappee "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab - "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: pysmartapp pysmartthings + "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg "sms" = ps: with ps; [ ]; # missing inputs: python-gammu "smtp" = ps: with ps; [ ]; - "snapcast" = ps: with ps; [ snapcast]; - "snips" = ps: with ps; [ aiohttp-cors paho-mqtt]; - "snmp" = ps: with ps; [ pysnmp]; + "snapcast" = ps: with ps; [ snapcast ]; + "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ]; + "snmp" = ps: with ps; [ pysnmp ]; "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api "socialblade" = ps: with ps; [ ]; # missing inputs: socialbladeclient - "solaredge" = ps: with ps; [ stringcase]; # missing inputs: solaredge + "solaredge" = ps: with ps; [ stringcase ]; # missing inputs: solaredge "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local "solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher "solax" = ps: with ps; [ ]; # missing inputs: solax "soma" = ps: with ps; [ ]; # missing inputs: pysoma - "somfy" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymfy + "somfy" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymfy "somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy "sonarr" = ps: with ps; [ ]; # missing inputs: sonarr "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal - "sonos" = ps: with ps; [ pysonos]; + "sonos" = ps: with ps; [ pysonos ]; "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp - "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf]; - "spaceapi" = ps: with ps; [ aiohttp-cors]; + "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ]; + "spaceapi" = ps: with ps; [ aiohttp-cors ]; "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw - "speedtestdotnet" = ps: with ps; [ speedtest-cli]; + "speedtestdotnet" = ps: with ps; [ speedtest-cli ]; "spider" = ps: with ps; [ ]; # missing inputs: spiderpy "splunk" = ps: with ps; [ ]; "spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime - "spotify" = ps: with ps; [ aiohttp-cors spotipy]; - "sql" = ps: with ps; [ sqlalchemy]; + "spotify" = ps: with ps; [ aiohttp-cors spotipy ]; + "sql" = ps: with ps; [ sqlalchemy ]; "squeezebox" = ps: with ps; [ ]; # missing inputs: pysqueezebox - "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf]; + "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ]; "starline" = ps: with ps; [ ]; # missing inputs: starline "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank - "startca" = ps: with ps; [ xmltodict]; - "statistics" = ps: with ps; [ sqlalchemy]; - "statsd" = ps: with ps; [ statsd]; + "startca" = ps: with ps; [ xmltodict ]; + "statistics" = ps: with ps; [ sqlalchemy ]; + "statsd" = ps: with ps; [ statsd ]; "steam_online" = ps: with ps; [ ]; # missing inputs: steamodd "stiebel_eltron" = ps: with ps; [ ]; # missing inputs: pymodbus pystiebeleltron "stookalert" = ps: with ps; [ ]; # missing inputs: stookalert - "stream" = ps: with ps; [ aiohttp-cors av]; + "stream" = ps: with ps; [ aiohttp-cors av ]; "streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater - "stt" = ps: with ps; [ aiohttp-cors]; + "stt" = ps: with ps; [ aiohttp-cors ]; "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez "sun" = ps: with ps; [ ]; "supervisord" = ps: with ps; [ ]; @@ -786,9 +786,9 @@ "synology_dsm" = ps: with ps; [ ]; # missing inputs: python-synology "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm "syslog" = ps: with ps; [ ]; - "system_health" = ps: with ps; [ aiohttp-cors]; - "system_log" = ps: with ps; [ aiohttp-cors]; - "systemmonitor" = ps: with ps; [ psutil]; + "system_health" = ps: with ps; [ aiohttp-cors ]; + "system_log" = ps: with ps; [ aiohttp-cors ]; + "systemmonitor" = ps: with ps; [ psutil ]; "tado" = ps: with ps; [ ]; # missing inputs: python-tado "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility @@ -796,19 +796,19 @@ "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff "tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli "tcp" = ps: with ps; [ ]; - "ted5000" = ps: with ps; [ xmltodict]; + "ted5000" = ps: with ps; [ xmltodict ]; "teksavvy" = ps: with ps; [ ]; - "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot]; - "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot]; + "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ]; + "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ]; "tellduslive" = ps: with ps; [ ]; # missing inputs: tellduslive "tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py "telnet" = ps: with ps; [ ]; "temper" = ps: with ps; [ ]; # missing inputs: temperusb "template" = ps: with ps; [ ]; - "tensorflow" = ps: with ps; [ numpy pillow protobuf]; # missing inputs: pycocotools tensorflow tf-models-official tf-slim + "tensorflow" = ps: with ps; [ numpy pillow protobuf ]; # missing inputs: pycocotools tensorflow tf-models-official tf-slim "tesla" = ps: with ps; [ ]; # missing inputs: teslajsonpy "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac - "thermoworks_smoke" = ps: with ps; [ stringcase]; # missing inputs: thermoworks_smoke + "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke "thethingsnetwork" = ps: with ps; [ ]; "thingspeak" = ps: with ps; [ ]; # missing inputs: thingspeak "thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner @@ -821,51 +821,51 @@ "timer" = ps: with ps; [ ]; "tmb" = ps: with ps; [ ]; # missing inputs: tmb "tod" = ps: with ps; [ ]; - "todoist" = ps: with ps; [ todoist]; + "todoist" = ps: with ps; [ todoist ]; "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2 "tomato" = ps: with ps; [ ]; - "toon" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: toonapi - "torque" = ps: with ps; [ aiohttp-cors]; + "toon" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: toonapi + "torque" = ps: with ps; [ aiohttp-cors ]; "totalconnect" = ps: with ps; [ ]; # missing inputs: total_connect_client "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline - "tplink" = ps: with ps; [ pyhs100]; + "tplink" = ps: with ps; [ pyhs100 ]; "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected - "traccar" = ps: with ps; [ aiohttp-cors stringcase]; # missing inputs: pytraccar + "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 - "transmission" = ps: with ps; [ transmissionrpc]; + "transmission" = ps: with ps; [ transmissionrpc ]; "transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy - "trend" = ps: with ps; [ numpy]; - "tts" = ps: with ps; [ aiohttp-cors mutagen]; + "trend" = ps: with ps; [ numpy ]; + "tts" = ps: with ps; [ aiohttp-cors mutagen ]; "tuya" = ps: with ps; [ ]; # missing inputs: tuyaha "twentemilieu" = ps: with ps; [ ]; # missing inputs: twentemilieu - "twilio" = ps: with ps; [ aiohttp-cors twilio]; - "twilio_call" = ps: with ps; [ aiohttp-cors twilio]; - "twilio_sms" = ps: with ps; [ aiohttp-cors twilio]; + "twilio" = ps: with ps; [ aiohttp-cors twilio ]; + "twilio_call" = ps: with ps; [ aiohttp-cors twilio ]; + "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ]; "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI "ubee" = ps: with ps; [ ]; # missing inputs: pyubee "ubus" = ps: with ps; [ ]; "ue_smart_radio" = ps: with ps; [ ]; "uk_transport" = ps: with ps; [ ]; - "unifi" = ps: with ps; [ aiounifi]; - "unifi_direct" = ps: with ps; [ pexpect]; + "unifi" = ps: with ps; [ aiounifi ]; + "unifi_direct" = ps: with ps; [ pexpect ]; "unifiled" = ps: with ps; [ ]; # missing inputs: unifiled "universal" = ps: with ps; [ ]; "upb" = ps: with ps; [ ]; # missing inputs: upb_lib "upc_connect" = ps: with ps; [ ]; # missing inputs: connect-box "upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api - "updater" = ps: with ps; [ distro]; - "upnp" = ps: with ps; [ async-upnp-client]; + "updater" = ps: with ps; [ distro ]; + "upnp" = ps: with ps; [ async-upnp-client ]; "uptime" = ps: with ps; [ ]; "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot "uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus "usgs_earthquakes_feed" = ps: with ps; [ ]; # missing inputs: geojson_client "utility_meter" = ps: with ps; [ ]; - "uvc" = ps: with ps; [ uvcclient]; + "uvc" = ps: with ps; [ uvcclient ]; "vacuum" = ps: with ps; [ ]; "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp @@ -873,43 +873,43 @@ "velux" = ps: with ps; [ ]; # missing inputs: pyvlx "venstar" = ps: with ps; [ ]; # missing inputs: venstarcolortouch "vera" = ps: with ps; [ ]; # missing inputs: pyvera - "verisure" = ps: with ps; [ jsonpath]; # missing inputs: vsure + "verisure" = ps: with ps; [ jsonpath ]; # missing inputs: vsure "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense - "version" = ps: with ps; [ pyhaversion]; + "version" = ps: with ps; [ pyhaversion ]; "vesync" = ps: with ps; [ ]; # missing inputs: pyvesync "viaggiatreno" = ps: with ps; [ ]; "vicare" = ps: with ps; [ ]; # missing inputs: PyViCare "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek "vizio" = ps: with ps; [ ]; # missing inputs: pyvizio - "vlc" = ps: with ps; [ python-vlc]; + "vlc" = ps: with ps; [ python-vlc ]; "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc "voicerss" = ps: with ps; [ ]; "volkszaehler" = ps: with ps; [ ]; # missing inputs: volkszaehler "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio "volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall - "vultr" = ps: with ps; [ vultr]; + "vultr" = ps: with ps; [ vultr ]; "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32 - "wake_on_lan" = ps: with ps; [ wakeonlan]; + "wake_on_lan" = ps: with ps; [ wakeonlan ]; "waqi" = ps: with ps; [ ]; # missing inputs: waqiasync "water_heater" = ps: with ps; [ ]; "waterfurnace" = ps: with ps; [ ]; # missing inputs: waterfurnace "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf "watson_tts" = ps: with ps; [ ]; # missing inputs: ibm-watson - "waze_travel_time" = ps: with ps; [ WazeRouteCalculator]; + "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ]; "weather" = ps: with ps; [ ]; - "webhook" = ps: with ps; [ aiohttp-cors]; + "webhook" = ps: with ps; [ aiohttp-cors ]; "webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv - "websocket_api" = ps: with ps; [ aiohttp-cors]; + "websocket_api" = ps: with ps; [ aiohttp-cors ]; "wemo" = ps: with ps; [ ]; # missing inputs: pywemo "whois" = ps: with ps; [ ]; # missing inputs: python-whois "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi - "wink" = ps: with ps; [ aiohttp-cors]; # missing inputs: pubnubsub-handler python-wink + "wink" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pubnubsub-handler python-wink "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy - "withings" = ps: with ps; [ aiohttp-cors]; # missing inputs: withings-api + "withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api "wled" = ps: with ps; [ ]; # missing inputs: wled "wolflink" = ps: with ps; [ ]; # missing inputs: wolf_smartset - "workday" = ps: with ps; [ holidays]; + "workday" = ps: with ps; [ holidays ]; "worldclock" = ps: with ps; [ ]; "worldtidesinfo" = ps: with ps; [ ]; "worxlandroid" = ps: with ps; [ ]; @@ -920,33 +920,33 @@ "xbox_live" = ps: with ps; [ ]; # missing inputs: xboxapi "xeoma" = ps: with ps; [ ]; # missing inputs: pyxeoma "xfinity" = ps: with ps; [ ]; # missing inputs: xfinity-gateway - "xiaomi" = ps: with ps; [ ha-ffmpeg]; - "xiaomi_aqara" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: PyXiaomiGateway - "xiaomi_miio" = ps: with ps; [ construct python-miio]; + "xiaomi" = ps: with ps; [ ha-ffmpeg ]; + "xiaomi_aqara" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: PyXiaomiGateway + "xiaomi_miio" = ps: with ps; [ construct python-miio ]; "xiaomi_tv" = ps: with ps; [ ]; # missing inputs: pymitv - "xmpp" = ps: with ps; [ slixmpp]; + "xmpp" = ps: with ps; [ slixmpp ]; "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client "yale_smart_alarm" = ps: with ps; [ ]; # missing inputs: yalesmartalarmclient - "yamaha" = ps: with ps; [ rxv]; + "yamaha" = ps: with ps; [ rxv ]; "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps "yandextts" = ps: with ps; [ ]; - "yeelight" = ps: with ps; [ aiohttp-cors netdisco zeroconf]; # missing inputs: yeelight + "yeelight" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: yeelight "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS - "yi" = ps: with ps; [ aioftp ha-ffmpeg]; - "yr" = ps: with ps; [ xmltodict]; + "yi" = ps: with ps; [ aioftp ha-ffmpeg ]; + "yr" = ps: with ps; [ xmltodict ]; "zabbix" = ps: with ps; [ ]; # missing inputs: pyzabbix "zamg" = ps: with ps; [ ]; "zengge" = ps: with ps; [ ]; # missing inputs: zengge - "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf]; + "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ]; "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc - "zestimate" = ps: with ps; [ xmltodict]; - "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy]; + "zestimate" = ps: with ps; [ xmltodict ]; + "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy ]; "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl "zone" = ps: with ps; [ ]; - "zoneminder" = ps: with ps; [ zm-py]; - "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher]; + "zoneminder" = ps: with ps; [ zm-py ]; + "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ]; }; } diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py index 502ea7d6c1e3..4fa4b8a48ee4 100755 --- a/pkgs/servers/home-assistant/parse-requirements.py +++ b/pkgs/servers/home-assistant/parse-requirements.py @@ -177,9 +177,10 @@ def main() -> None: f.write(" components = {\n") for component, deps in build_inputs.items(): available, missing = deps - f.write(f' "{component}" = ps: with ps; [ ') - f.write(" ".join(available)) - f.write("];") + f.write(f' "{component}" = ps: with ps; [') + if available: + f.write(" " + " ".join(available)) + f.write(" ];") if len(missing) > 0: f.write(f" # missing inputs: {' '.join(missing)}") f.write("\n")