Merge pull request #199610 from NixOS/home-assistant

This commit is contained in:
Martin Weinelt
2022-11-05 13:56:17 +01:00
committed by GitHub
42 changed files with 454 additions and 196 deletions
@@ -433,6 +433,8 @@ in {
componentsUsingBluetooth = [
# Components that require the AF_BLUETOOTH address family
"august"
"august_ble"
"airthings_ble"
"bluemaestro"
"bluetooth"
"bluetooth_le_tracker"
@@ -445,15 +447,19 @@ in {
"govee_ble"
"homekit_controller"
"inkbird"
"keymitt_ble"
"led_ble"
"melnor"
"moat"
"oralb"
"qingping"
"sensorpro"
"sensorpush"
"snooz"
"switchbot"
"thermobeacon"
"thermopro"
"tilt_ble"
"xiaomi_ble"
"yalexs_ble"
];
@@ -3,6 +3,7 @@
, aiocoap
, bleak
, bleak-retry-connector
, chacha20poly1305
, chacha20poly1305-reuseable
, commentjson
, cryptography
@@ -17,7 +18,7 @@
buildPythonPackage rec {
pname = "aiohomekit";
version = "2.0.2";
version = "2.2.14";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
owner = "Jc2k";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-pZEZHhsU/1tEX1VOFQ8b+ERJ8tU1pzRJMRYD28nfTb0=";
hash = "sha256-0O8fax25vabItFnUD9N7C4gyMSKPHqHSgzJXJjp5dGw=";
};
nativeBuildInputs = [
@@ -37,6 +38,7 @@ buildPythonPackage rec {
aiocoap
bleak
bleak-retry-connector
chacha20poly1305
chacha20poly1305-reuseable
commentjson
cryptography
@@ -0,0 +1,58 @@
{ lib
, fetchFromGitHub
, buildPythonPackage
, pythonOlder
, aiolifx
, poetry-core
, pytest-asyncio
, pytestCheckHook
, async-timeout
, typer
}:
buildPythonPackage rec {
pname = "aiolifx-themes";
version = "0.2.0";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "Djelibeybi";
repo = "aiolifx-themes";
rev = "v${version}";
hash = "sha256:17498vdg8i20hk4i8hzc67qaj206ik3s1zn1k70plsjr9zlgs6vz";
};
prePatch = ''
# Don't run coverage, or depend on typer for no reason.
substituteInPlace pyproject.toml \
--replace " --cov=aiolifx_themes --cov-report=term-missing:skip-covered" "" \
--replace "typer = " "# unused: typer = "
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiolifx
];
checkInputs = [
async-timeout
pytestCheckHook
pytest-asyncio
];
pythonImportsCheck = [
"aiolifx_themes"
];
meta = with lib; {
description = "Color themes for LIFX lights running on aiolifx";
homepage = "https://github.com/Djelibeybi/aiolifx-themes";
license = licenses.mit;
maintainers = with maintainers; [ lukegb ];
};
}
@@ -2,7 +2,9 @@
, aiohttp
, aresponses
, buildPythonPackage
, ciso8601
, fetchFromGitHub
, orjson
, pytest-asyncio
, pytestCheckHook
, pythonOlder
@@ -10,7 +12,7 @@
buildPythonPackage rec {
pname = "aiopyarr";
version = "22.9.0";
version = "22.10.0";
format = "setuptools";
disabled = pythonOlder "3.9";
@@ -19,11 +21,13 @@ buildPythonPackage rec {
owner = "tkdrob";
repo = pname;
rev = version;
hash = "sha256-nJjqpk4GcgXJhFZd4E3vSmyNP+RkOASEd4Ipemx6cAc=";
hash = "sha256-FpBKhxFFMG5WgQ3TCAcg1P+cGVGU7LiJ+Zr4kL2Nl88=";
};
propagatedBuildInputs = [
aiohttp
ciso8601
orjson
];
checkInputs = [
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "aioshelly";
version = "3.0.0";
version = "4.1.2";
format = "setuptools";
disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-Id4qg7uSvpjXpEx0/EvSMvFxgkR78/NOoOmmwngj7Qw=";
hash = "sha256-0BxbcWA2Kdk1xTSKN/dH9LJc3yI60kmyMCrK77tqyNE=";
};
propagatedBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "aiounifi";
version = "40";
version = "41";
disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-PJ3AIoqu0cUs8IZqY9O2e+GuPd4vjLn9VruKyPxVe4A=";
hash = "sha256-rBluo4080m9jFnquXaQY/Cntp7wHToY16aNFhzrQJs8=";
};
propagatedBuildInputs = [
@@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "av";
version = "9.2.0";
version = "10.0.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "mikeboers";
repo = "PyAV";
rev = "v${version}";
hash = "sha256-I7j+EzpvgKCNY8TbcaHsaWtetyvmno6YYhQTer2+Ds0=";
hash = "sha256-XcHP8RwC2iwD64Jc7SS+t9OxjFTsz3FbrnjMgJnN7Ak=";
};
nativeBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "bleak-retry-connector";
version = "2.1.3";
version = "2.8.2";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-fEdyo6QBmHWgl5o/ZIu/HM8GWp5t88awhb+7SPWngf0=";
hash = "sha256-u/7gEY1HsOc2JqGmq/kS46wcA0p8B7D08vrOHWIuFyY=";
};
postPatch = ''
@@ -5,6 +5,7 @@
, dbus-fast
, fetchFromGitHub
, poetry-core
, pytest-asyncio
, pytestCheckHook
, pythonOlder
, typing-extensions
@@ -12,16 +13,16 @@
buildPythonPackage rec {
pname = "bleak";
version = "0.18.1";
version = "0.19.1";
format = "pyproject";
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "hbldh";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-2/jJ2C2TudwCAshDBLUQjNMbYa2j4XfW8bXmeWrAyrA=";
hash = "sha256-WNFAN8xE0ULo4fQnPFJJsc/HtrVo1ClxsvxrrhJjvI0=";
};
nativeBuildInputs = [
@@ -35,6 +36,7 @@ buildPythonPackage rec {
];
checkInputs = [
pytest-asyncio
pytestCheckHook
];
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "bluetooth-data-tools";
version = "0.1.2";
version = "0.2.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-AobkHODtWun2TPxb6yR/ieYyeIndTG0KmxTY81fQHCA=";
hash = "sha256-5FOFN2B35dTYuZhO09HZ/sNkY5X16bICP+qWzmrua5o=";
};
nativeBuildInputs = [
@@ -1,69 +0,0 @@
{ lib
, aiohttp
, aresponses
, buildPythonPackage
, fetchFromGitHub
, mypy
, packaging
, poetry-core
, pydantic
, pytest-asyncio
, pytest-mock
, pytestCheckHook
, pythonOlder
, setuptools
, yarl
}:
buildPythonPackage rec {
pname = "bsblan";
version = "0.5.6";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "liudger";
repo = "python-bsblan";
rev = "refs/tags/v${version}";
hash = "sha256-eTKexiuomlTryy2bD2w9Pzhb4R9C3OIbLNX+7h/5l+c=";
};
nativeBuildInputs = [
poetry-core
setuptools
];
propagatedBuildInputs = [
aiohttp
packaging
pydantic
yarl
];
checkInputs = [
aresponses
mypy
pytest-asyncio
pytest-mock
pytestCheckHook
];
postPatch = ''
# Upstream doesn't set a version for the pyproject.toml
substituteInPlace pyproject.toml \
--replace 'version = "0.0.0"' 'version = "${version}"' \
--replace "--cov" ""
'';
pythonImportsCheck = [
"bsblan"
];
meta = with lib; {
description = "Python client for BSB-Lan";
homepage = "https://github.com/liudger/python-bsblan";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "bthome-ble";
version = "1.2.2";
version = "2.1.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-2/2ODlHqQOl4LHUb2fyQpmsBYnoz0Rvc9lLEfZTKijA=";
hash = "sha256-4vk9uaG/9n3lNEWAergW9kFN2/Ta/KSax0rK9tVxAfw=";
};
nativeBuildInputs = [
@@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "dbus-fast";
version = "1.29.1";
version = "1.64.0";
format = "pyproject";
disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-GqL6PZlqFi5Es8VYeqeTsXX6j5fol2JzcosFtVCQn60=";
hash = "sha256-y/H4TYCicn6Gvv+F4ogqhNWK2mZxEVNGCY4pJAfjq9s=";
};
nativeBuildInputs = [
@@ -78,6 +78,14 @@ buildPythonPackage rec {
"test_standard_interfaces"
"test_tcp_connection_with_forwarding"
"test_unexpected_disconnect"
# NameError: name '_cast_uint32_native' is not defined
"test_unmarshall_bluez_interfaces_added_message"
"test_unmarshall_bluez_interfaces_removed_message"
"test_unmarshall_bluez_message"
"test_unmarshall_bluez_properties_changed_with_service_data"
"test_unmarshall_can_resume"
"test_unmarshalling_with_table"
"test_ay_buffer"
];
meta = with lib; {
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "fjaraskupan";
version = "2.1.0";
version = "2.2.0";
format = "setuptools";
disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "elupus";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-Vt2THMB4m0YCLdfEnAokwS0oJfcgp3fmZMUDhTrekZY=";
hash = "sha256-0tNLwYckWF9GjhniEkiO+A+xDsUriUsMFZxG/FmUfps=";
};
propagatedBuildInputs = [
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "freebox-api";
version = "1.0.0";
version = "1.0.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "hacf-fr";
repo = pname;
rev = "v${version}";
hash = "sha256-y78PzSivB+IJ9hrN3ZRhDBo7kI7M6uleTPkF6slO6So=";
rev = "refs/tags/v${version}";
hash = "sha256-60hIv35nNxXPFZy/JvG1O/ZkSMk65XDojUYP1QyfwXY=";
};
nativeBuildInputs = [
@@ -1,18 +1,20 @@
{ lib
, buildPythonPackage
, pythonOlder
, fetchFromGitHub
, aiohttp
, pydantic
, buildPythonPackage
, fetchFromGitHub
, freezegun
, ical
, pydantic
, pytest-aiohttp
, pytest-asyncio
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "gcal-sync";
version = "2.1.0";
version = "3.0.0";
format = "setuptools";
disabled = pythonOlder "3.9";
@@ -20,11 +22,12 @@ buildPythonPackage rec {
owner = "allenporter";
repo = "gcal_sync";
rev = "refs/tags/${version}";
hash = "sha256-FKrZPiN4rSk5iFhGAXVuKhEeekOnPxdFslP4SMUrQIE=";
hash = "sha256-xRmNV06gMdPPHcvgJTvxPZBUi1BbFTnwZpzXLBluBYo=";
};
propagatedBuildInputs = [
aiohttp
ical
pydantic
];
@@ -35,12 +38,15 @@ buildPythonPackage rec {
pytestCheckHook
];
pythonImportsCheck = [ "gcal_sync" ];
pythonImportsCheck = [
"gcal_sync"
];
meta = {
description = "Python library for syncing Google Calendar to local storage";
meta = with lib; {
description = "Library for syncing Google Calendar to local storage";
homepage = "https://github.com/allenporter/gcal_sync";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dotlambda ];
changelog = "https://github.com/allenporter/gcal_sync/releases/tag/${version}";
license = licenses.asl20;
maintainers = with maintainers; [ dotlambda ];
};
}
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "home-assistant-bluetooth";
version = "1.5.1";
version = "1.6.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
owner = "home-assistant-libs";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-//e+Kb85TBAC9/mHz/T/Dm/pNjbj0488/L/NeS1RMqY=";
hash = "sha256-6w940Yn0WgVC0Rn9OX40+6hO4maPSC7VrT3ARD8CIjQ=";
};
postPatch = ''
@@ -1,7 +1,9 @@
{ lib
, aiohttp
, buildPythonPackage
, fetchFromGitHub
, home-assistant-bluetooth
, mac-vendor-lookup
, poetry-core
, pytestCheckHook
, pythonOlder
@@ -9,7 +11,7 @@
buildPythonPackage rec {
pname = "ibeacon-ble";
version = "0.7.4";
version = "1.0.1";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -18,26 +20,28 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-B+ftS/oNCECjCqB396K5iCl0aeJSBGVXshlvZ1kvEuo=";
hash = "sha256-iYgGflM0IpSIMNgPpJAFAl9FYoMfRinM3sP6VRcBSMc=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=ibeacon_ble --cov-report=term-missing:skip-covered" ""
'';
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
aiohttp
home-assistant-bluetooth
mac-vendor-lookup
];
checkInputs = [
pytestCheckHook
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=ibeacon_ble --cov-report=term-missing:skip-covered" ""
'';
pythonImportsCheck = [
"ibeacon_ble"
];
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "led-ble";
version = "0.10.1";
version = "1.0.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "v${version}";
hash = "sha256-GyVj9g4tqPaR5Gd8N76TtkldaAATnEBsSs/F+2iQqGM=";
hash = "sha256-XAb/tJPUe/sNvcU7t63inMPBIz+AREioWXBuQa/c9T0=";
};
postPatch = ''
@@ -0,0 +1,41 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, aiofiles
, aiohttp
}:
buildPythonPackage rec {
pname = "mac-vendor-lookup";
version = "0.1.12";
format = "setuptools";
src = fetchFromGitHub {
owner = "bauerj";
repo = "mac_vendor_lookup";
rev = "5b57faac0c5a701a7e18085e331853397b68c07c";
hash = "sha256-F/aiMs+J4bAesr6mKy+tYVjAjZ3l9vyHxV7zaaB6KbA=";
};
postPatch = ''
sed -i '/mac-vendors.txt/d' setup.py
'';
propagatedBuildInputs = [
aiofiles
aiohttp
];
doCheck = false; # no tests
pythonImportsCheck = [
"mac_vendor_lookup"
];
meta = with lib; {
description = "Find the vendor for a given MAC address";
homepage = "https://github.com/bauerj/mac_vendor_lookup";
license = licenses.asl20;
maintainers = with maintainers; [ hexa ];
};
}
@@ -0,0 +1,55 @@
{ lib
, bluetooth-data-tools
, bluetooth-sensor-state-data
, buildPythonPackage
, fetchFromGitHub
, home-assistant-bluetooth
, poetry-core
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "oralb-ble";
version = "0.10.1";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-Iuu44H8fCbJysoSJLBtlJ1XE5Ad2caWihj3UZytWK3o=";
};
nativeBuildInputs = [
poetry-core
];
propagatedBuildInputs = [
bluetooth-data-tools
bluetooth-sensor-state-data
home-assistant-bluetooth
];
checkInputs = [
pytestCheckHook
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace " --cov=oralb_ble --cov-report=term-missing:skip-covered" ""
'';
pythonImportsCheck = [
"oralb_ble"
];
meta = with lib; {
description = "Library for Oral B BLE devices";
homepage = "https://github.com/Bluetooth-Devices/oralb-ble";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
};
}
@@ -16,7 +16,7 @@
buildPythonPackage rec {
pname = "pyatmo";
version = "7.2.0";
version = "7.3.0";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
owner = "jabesq";
repo = "pyatmo";
rev = "refs/tags/v${version}";
sha256 = "sha256-5RlYTgxWm6BM/V2+1IF/rje5dNirN7PJs0eSiYeOpOQ=";
sha256 = "sha256-3NgAsXMdt4FsE30oxeTfunpP2e+iqLFZkhMJbc5jVGw=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pydaikin";
version = "2.7.2";
version = "2.8.0";
format = "setuptools";
disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "mustang51";
repo = pname;
rev = "v${version}";
hash = "sha256-IONmzrCW/5nAEa7GlWMZsnweQWTSUwV4HwhXww6/9ig=";
hash = "sha256-AZDwoq4lCThzwHI0WCzrV9Il2MHp0LKxWg/dscGw0q0=";
};
propagatedBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pydeconz";
version = "104";
version = "105";
format = "setuptools";
disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "Kane610";
repo = "deconz";
rev = "refs/tags/v${version}";
hash = "sha256-bG2dhWa+KnSsigmOHE4wShaS56M9z6vqrFNek3PLbic=";
hash = "sha256-8GQJ4PCl8te3sovC5FwWoaQnXIRR27b7gPwfmyPRVBE=";
};
propagatedBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "pylutron-caseta";
version = "0.17.0";
version = "0.17.1";
format = "pyproject";
disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "gurumitts";
repo = pname;
rev = "v${version}";
hash = "sha256-8keKhwbvqIMxbfmd9GGF7uacOyvqb8G/ifq+pr4Z700=";
hash = "sha256-W3OfYNVendYOrwN/WGeAkNAnZctvlssZ3Bvp5caPZao=";
};
nativeBuildInputs = [
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "pyrmvtransport";
version = "0.3.2";
version = "0.3.3";
format = "pyproject";
disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "cgtobi";
repo = pname;
rev = "v${version}";
sha256 = "0m74m3dhxmbv10hsvs7cpshzs3pg66va5lyq94i5j1nxrl9i7spb";
sha256 = "sha256-nFxGEyO+wyRzPayjjv8WNIJ+XIWbVn0dyyjQKHiyr40=";
};
nativeBuildInputs = [
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "pysma";
version = "0.6.12";
version = "0.7.2";
format = "setuptools";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-uxMxqx5qbahMvTm3akiOTODhKLNVhHzBAUsOcZo/35I=";
sha256 = "sha256-hIrdT0b9XKw1UoPZtQQ7IaW+HV8wuA9Rwoo8XYdGyw8=";
};
propagatedBuildInputs = [
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "pyswitchbot";
version = "0.19.15";
version = "0.20.2";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
owner = "Danielhiversen";
repo = "pySwitchbot";
rev = "refs/tags/${version}";
hash = "sha256-iWd67JEnlI60mvd5hhMPRooZ3VECTt+M9UFvXWdJVPg=";
hash = "sha256-GNjyDkqhOP9sq2qoAZCdSrUNte3FynVxhy9RSUn9j/c=";
};
propagatedBuildInputs = [
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "sensor-state-data";
version = "2.9.1";
version = "2.10.1";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-bBLBDdwVUCh8VA/6w/5DmJNvayaWHNIe1kRhnOQ2Llc=";
hash = "sha256-pCo9CMX+CQBFuK5rbMHsxQEdBHvp1EZA7A9Ykm68NCw=";
};
nativeBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "subarulink";
version = "0.5.0";
version = "0.6.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "G-Two";
repo = pname;
rev = "v${version}";
hash = "sha256-q+a+OFFMAGl8KQi+KZ8h21+Pj0XEqP9ZIJii2PCgD6E=";
hash = "sha256-esZ+nIHIXKfilb8dBFbAbQQFI6fFRUcoFVCPdnqGXYw=";
};
propagatedBuildInputs = [
@@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "xknx";
version = "1.1.0";
version = "1.2.0";
format = "setuptools";
disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "XKNX";
repo = pname;
rev = "refs/tags/${version}";
sha256 = "sha256-Nam6TnjTAt5oV+IQ+6cS8L0/j/lp+x9adRHUTs69GA0=";
hash = "sha256-IHZvmVloBSLcK3GZV9urFeqRxOG76O9O/3ZDNTz4wjQ=";
};
propagatedBuildInputs = [
@@ -41,6 +41,8 @@ buildPythonPackage rec {
disabledTests = [
# Test requires network access
"test_scan_timeout"
"test_start_secure_routing_knx_keys"
"test_start_secure_routing_manual"
];
meta = with lib; {
@@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "yalexs-ble";
version = "1.9.2";
version = "1.9.5";
format = "pyproject";
disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "bdraco";
repo = pname;
rev = "v${version}";
hash = "sha256-ypZ0VDGgQcwlMS1POW+lvTlmd02P7bPR2Qo0lDyBYUw=";
hash = "sha256-cU4aeJlRBwxQm6a/rqpO2HVZfz/vfEo4P5x+BjKqqeo=";
};
nativeBuildInputs = [
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "zha-quirks";
version = "0.0.83";
version = "0.0.84";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zha-device-handlers";
rev = "refs/tags/${version}";
hash = "sha256-N+DSaPohwkMJ+YjbnUi7k8GQ+YFd6Ng8n0yesEnOnRA=";
hash = "sha256-x8DOUQjjOlLaIhsLLbGNEE+MYBcMD+VsmcCDU0XxxcE=";
};
propagatedBuildInputs = [
@@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "zigpy-zigate";
version = "0.10.2";
version = "0.10.3";
format = "setuptools";
disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zigpy-zigate";
rev = "refs/tags/v${version}";
hash = "sha256-Vb87G+R4SvAhCF3h/U5Q4/avxPgfIjklWdWGaiIWGhk=";
hash = "sha256-zO20ySRO9XFcDB8TkUJW2MxkhDIBpHp9Z24gupssOaY=";
};
propagatedBuildInputs = [
@@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "zigpy";
version = "0.51.3";
version = "0.51.5";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "zigpy";
repo = "zigpy";
rev = "refs/tags/${version}";
hash = "sha256-IfYWuJfmQtJnVANyiBE3AurhucqZ8qzYXBV3jprS5qw=";
hash = "sha256-6OSP23lEdl15IjSqGYLCW5+F6rki+rzmXm82QRzabwU=";
};
propagatedBuildInputs = [
@@ -2,8 +2,10 @@
# Do not edit!
{
version = "2022.10.5";
version = "2022.11.1";
components = {
"3_day_blinds" = ps: with ps; [
];
"abode" = ps: with ps; [
abodepy
];
@@ -51,6 +53,21 @@
"airthings" = ps: with ps; [
airthings-cloud
];
"airthings_ble" = ps: with ps; [
aiohttp-cors
airthings-ble
bleak-retry-connector
bleak
bluetooth-adapters
bluetooth-auto-recovery
dbus-fast
fnvhash
home-assistant-frontend
pillow
pyserial
pyudev
sqlalchemy
];
"airtouch4" = ps: with ps; [
airtouch4pyapi
];
@@ -98,6 +115,8 @@
amcrest
ha-ffmpeg
];
"amp_motorization" = ps: with ps; [
];
"ampio" = ps: with ps; [
asmog
];
@@ -203,6 +222,8 @@
yalexs-ble
yalexs
];
"august_ble" = ps: with ps; [
];
"aurora" = ps: with ps; [
auroranoaa
];
@@ -281,6 +302,10 @@
"blinksticklight" = ps: with ps; [
BlinkStick
];
"bliss_automation" = ps: with ps; [
];
"bloc_blinds" = ps: with ps; [
];
"blockchain" = ps: with ps; [
]; # missing inputs: python-blockchain-api
"bloomsky" = ps: with ps; [
@@ -352,6 +377,8 @@
"braviatv" = ps: with ps; [
pybravia
];
"brel_home" = ps: with ps; [
];
"broadlink" = ps: with ps; [
broadlink
];
@@ -367,7 +394,9 @@
brunt
];
"bsblan" = ps: with ps; [
bsblan
python-bsblan
];
"bswitch" = ps: with ps; [
];
"bt_home_hub_5" = ps: with ps; [
]; # missing inputs: bthomehub5-devicelist
@@ -388,6 +417,10 @@
pyudev
sqlalchemy
];
"bticino" = ps: with ps; [
];
"bubendorff" = ps: with ps; [
];
"buienradar" = ps: with ps; [
buienradar
];
@@ -499,6 +532,8 @@
];
"cover" = ps: with ps; [
];
"cozytouch" = ps: with ps; [
];
"cppm_tracker" = ps: with ps; [
]; # missing inputs: clearpasspy
"cpuspeed" = ps: with ps; [
@@ -517,6 +552,8 @@
];
"currencylayer" = ps: with ps; [
];
"dacia" = ps: with ps; [
];
"daikin" = ps: with ps; [
pydaikin
];
@@ -616,6 +653,10 @@
"dialogflow" = ps: with ps; [
aiohttp-cors
];
"diaz" = ps: with ps; [
];
"digital_loggers" = ps: with ps; [
];
"digital_ocean" = ps: with ps; [
digital-ocean
];
@@ -668,6 +709,8 @@
aiohttp-cors
doorbirdpy
];
"dooya" = ps: with ps; [
];
"dovado" = ps: with ps; [
]; # missing inputs: dovado
"downloader" = ps: with ps; [
@@ -944,6 +987,8 @@
"flexit" = ps: with ps; [
pymodbus
];
"flexom" = ps: with ps; [
];
"flic" = ps: with ps; [
pyflic
];
@@ -1038,12 +1083,15 @@
"garages_amsterdam" = ps: with ps; [
garages-amsterdam
];
"gaviota" = ps: with ps; [
];
"gc100" = ps: with ps; [
]; # missing inputs: python-gc100
"gdacs" = ps: with ps; [
aio-georss-gdacs
];
"generic" = ps: with ps; [
aiohttp-cors
av
pillow
];
@@ -1210,6 +1258,8 @@
pillow
sqlalchemy
];
"havana_shade" = ps: with ps; [
];
"haveibeenpwned" = ps: with ps; [
];
"hddtemp" = ps: with ps; [
@@ -1219,12 +1269,16 @@
];
"heatmiser" = ps: with ps; [
]; # missing inputs: heatmiserV3
"heiwa" = ps: with ps; [
];
"heos" = ps: with ps; [
pyheos
];
"here_travel_time" = ps: with ps; [
herepy
];
"hi_kumo" = ps: with ps; [
];
"hikvision" = ps: with ps; [
]; # missing inputs: pyhik
"hikvisioncam" = ps: with ps; [
@@ -1340,12 +1394,15 @@
aiohue
];
"huisbaasje" = ps: with ps; [
]; # missing inputs: energyflip-client
energyflip-client
];
"humidifier" = ps: with ps; [
];
"hunterdouglas_powerview" = ps: with ps; [
aiopvapi
];
"hurrican_shutters_wholesale" = ps: with ps; [
];
"hvv_departures" = ps: with ps; [
pygti
];
@@ -1442,6 +1499,8 @@
];
"input_text" = ps: with ps; [
];
"inspired_shades" = ps: with ps; [
];
"insteon" = ps: with ps; [
aiohttp-cors
fnvhash
@@ -1491,6 +1550,8 @@
"islamic_prayer_times" = ps: with ps; [
prayer-times-calculator
];
"ismartwindow" = ps: with ps; [
];
"iss" = ps: with ps; [
]; # missing inputs: pyiss
"isy994" = ps: with ps; [
@@ -1640,6 +1701,8 @@
pyudev
sqlalchemy
];
"legrand" = ps: with ps; [
];
"lg_netcast" = ps: with ps; [
pylgnetcast
];
@@ -1656,6 +1719,7 @@
aiohttp-cors
aiolifx
aiolifx-effects
aiolifx-themes
ifaddr
];
"lifx_cloud" = ps: with ps; [
@@ -1736,6 +1800,8 @@
"lutron_caseta" = ps: with ps; [
pylutron-caseta
];
"luxaflex" = ps: with ps; [
];
"lw12wifi" = ps: with ps; [
]; # missing inputs: lw12
"lyric" = ps: with ps; [
@@ -1764,6 +1830,10 @@
pillow
sqlalchemy
];
"marantz" = ps: with ps; [
];
"martec" = ps: with ps; [
];
"marytts" = ps: with ps; [
]; # missing inputs: speak2mary
"mastodon" = ps: with ps; [
@@ -2043,6 +2113,8 @@
"nexia" = ps: with ps; [
nexia
];
"nexity" = ps: with ps; [
];
"nextbus" = ps: with ps; [
py-nextbusnext
];
@@ -2076,8 +2148,9 @@
aiohttp-cors
getmac
ifaddr
mac-vendor-lookup
netmap
]; # missing inputs: mac-vendor-lookup
];
"nmbs" = ps: with ps; [
]; # missing inputs: pyrail
"no_ip" = ps: with ps; [
@@ -2115,6 +2188,8 @@
"nut" = ps: with ps; [
pynut2
];
"nutrichef" = ps: with ps; [
];
"nws" = ps: with ps; [
pynws
];
@@ -2216,6 +2291,21 @@
"opple" = ps: with ps; [
pyoppleio
];
"oralb" = ps: with ps; [
aiohttp-cors
bleak-retry-connector
bleak
bluetooth-adapters
bluetooth-auto-recovery
dbus-fast
fnvhash
home-assistant-frontend
oralb-ble
pillow
pyserial
pyudev
sqlalchemy
];
"oru" = ps: with ps; [
]; # missing inputs: oru
"orvibo" = ps: with ps; [
@@ -2265,6 +2355,8 @@
pillow
sqlalchemy
];
"pcs_lighting" = ps: with ps; [
];
"peco" = ps: with ps; [
peco
];
@@ -2468,6 +2560,8 @@
];
"raspyrfm" = ps: with ps; [
]; # missing inputs: raspyrfm-client
"raven_rock_mfg" = ps: with ps; [
];
"rdw" = ps: with ps; [
vehicle
];
@@ -2508,6 +2602,8 @@
];
"rest_command" = ps: with ps; [
];
"rexel" = ps: with ps; [
];
"rflink" = ps: with ps; [
rflink
];
@@ -2535,6 +2631,8 @@
"rmvtransport" = ps: with ps; [
pyrmvtransport
];
"roborock" = ps: with ps; [
];
"rocketchat" = ps: with ps; [
]; # missing inputs: rocketchat-API
"roku" = ps: with ps; [
@@ -2616,6 +2714,8 @@
lxml
xmltodict
];
"screenaway" = ps: with ps; [
];
"screenlogic" = ps: with ps; [
screenlogicpy
];
@@ -2647,6 +2747,8 @@
fnvhash
sqlalchemy
];
"sensorblue" = ps: with ps; [
];
"sensorpro" = ps: with ps; [
aiohttp-cors
bleak-retry-connector
@@ -2704,6 +2806,7 @@
"shell_command" = ps: with ps; [
];
"shelly" = ps: with ps; [
aiohttp-cors
aioshelly
];
"shiftr" = ps: with ps; [
@@ -2732,6 +2835,8 @@
"simplisafe" = ps: with ps; [
simplisafe-python
];
"simply_automated" = ps: with ps; [
];
"simulated" = ps: with ps; [
];
"sinch" = ps: with ps; [
@@ -2770,9 +2875,15 @@
aiohttp-cors
pysmappee
];
"smart_blinds" = ps: with ps; [
];
"smart_home" = ps: with ps; [
];
"smart_meter_texas" = ps: with ps; [
smart-meter-texas
];
"smarther" = ps: with ps; [
];
"smartthings" = ps: with ps; [
pyturbojpeg
aiohttp-cors
@@ -2803,6 +2914,21 @@
"snmp" = ps: with ps; [
pysnmplib
];
"snooz" = ps: with ps; [
aiohttp-cors
bleak-retry-connector
bleak
bluetooth-adapters
bluetooth-auto-recovery
dbus-fast
fnvhash
home-assistant-frontend
pillow
pyserial
pysnooz
pyudev
sqlalchemy
];
"solaredge" = ps: with ps; [
solaredge
stringcase
@@ -2818,6 +2944,8 @@
"soma" = ps: with ps; [
pysoma
];
"somfy" = ps: with ps; [
];
"somfy_mylink" = ps: with ps; [
somfy-mylink-synergy
];
@@ -2967,6 +3095,8 @@
];
"switchmate" = ps: with ps; [
]; # missing inputs: pySwitchmate
"symfonisk" = ps: with ps; [
];
"syncthing" = ps: with ps; [
aiosyncthing
];
@@ -3073,6 +3203,8 @@
sqlalchemy
thermobeacon-ble
];
"thermoplus" = ps: with ps; [
];
"thermopro" = ps: with ps; [
aiohttp-cors
bleak-retry-connector
@@ -3243,6 +3375,8 @@
"ukraine_alarm" = ps: with ps; [
uasiren
];
"ultraloq" = ps: with ps; [
];
"unifi" = ps: with ps; [
aiounifi
];
@@ -3277,6 +3411,8 @@
ifaddr
zeroconf
];
"uprise_smart_shades" = ps: with ps; [
];
"uptime" = ps: with ps; [
];
"uptimerobot" = ps: with ps; [
@@ -3557,6 +3693,7 @@
py-zabbix
];
"zamg" = ps: with ps; [
zamg
];
"zengge" = ps: with ps; [
bluepy
@@ -3630,6 +3767,7 @@
"airly"
"airnow"
"airthings"
"airthings_ble"
"airtouch4"
"airvisual"
"airzone"
@@ -3695,6 +3833,7 @@
"canary"
"cast"
"cert_expiry"
"clicksend_tts"
"climate"
"cloud"
"cloudflare"
@@ -3871,6 +4010,7 @@
"http"
"huawei_lte"
"hue"
"huisbaasje"
"humidifier"
"hunterdouglas_powerview"
"hvv_departures"
@@ -4005,6 +4145,7 @@
"nextdns"
"nightscout"
"nina"
"nmap_tracker"
"no_ip"
"nobo_hub"
"notify"
@@ -4033,6 +4174,7 @@
"openuv"
"openweathermap"
"opnsense"
"oralb"
"overkiz"
"ovo_energy"
"owntracks"
@@ -4145,6 +4287,7 @@
"smtp"
"snips"
"snmp"
"snooz"
"solaredge"
"solarlog"
"solax"
@@ -4297,6 +4440,7 @@
"yeelight"
"yolink"
"youless"
"zamg"
"zeroconf"
"zerproc"
"zha"
+15 -33
View File
@@ -41,26 +41,15 @@ let
};
});
bsblan = super.bsblan.overridePythonAttrs (oldAttrs: rec {
version = "0.5.0";
postPatch = null;
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ super.cattrs ];
gcal-sync = super.gcal-sync.overridePythonAttrs (oldAttrs: rec {
version = "2.2.3";
src = fetchFromGitHub {
owner = "liudger";
repo = "python-bsblan";
rev = "v.${version}";
hash = "sha256-yzlHcIb5QlG+jAgEtKlAcY7rESiUY7nD1YwqK63wgcg=";
};
});
blebox-uniapi = super.blebox-uniapi.overridePythonAttrs (oldAttrs: rec {
version = "2.0.2";
src = fetchFromGitHub {
owner = "blebox";
repo = "blebox_uniapi";
rev = "refs/tags/v${version}";
hash = "sha256-0Yiooy7YSUFjqqcyH2fPQ6AWuR0EJxfRRZTw/6JGcMA=";
owner = "allenporter";
repo = "gcal_sync";
rev = "refs/tags/${version}";
hash = "sha256-5PoKdJBrNhPfcDxmprc/1jX7weIs7HSxFzzvjKOjGbY=";
};
doCheck = false; # requires aiohttp>=1.0.0
});
gridnet = super.gridnet.overridePythonAttrs (oldAttrs: rec {
@@ -84,16 +73,6 @@ let
};
});
iaqualink = super.iaqualink.overridePythonAttrs (oldAttrs: rec {
version = "0.4.1";
src = fetchFromGitHub {
owner = "flz";
repo = "iaqualink-py";
rev = "v${version}";
hash = "sha256-GDJwPBEU7cteAdYj7eo5tAo0G8AVcQR7KSxLNLhU/XU=";
};
});
# pytest-aiohttp>0.3.0 breaks home-assistant tests
pytest-aiohttp = super.pytest-aiohttp.overridePythonAttrs (oldAttrs: rec {
version = "0.3.0";
@@ -115,9 +94,6 @@ let
aioopenexchangerates = super.aioopenexchangerates.overridePythonAttrs (oldAttrs: {
doCheck = false; # requires aiohttp>=1.0.0
});
gcal-sync = super.gcal-sync.overridePythonAttrs (oldAttrs: {
doCheck = false; # requires aiohttp>=1.0.0
});
hass-nabucasa = super.hass-nabucasa.overridePythonAttrs (oldAttrs: {
doCheck = false; # requires aiohttp>=1.0.0
});
@@ -161,6 +137,12 @@ let
};
});
pydaikin = super.pydaikin.overridePythonAttrs (oldAttrs: rec {
disabledTests = [
"test_power_sensors"
];
});
pydeconz = super.pydeconz.overridePythonAttrs (oldAttrs: rec {
doCheck = false; # requires pytest-aiohttp>=1.0.0
});
@@ -254,7 +236,7 @@ let
extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs);
# Don't forget to run parse-requirements.py after updating
hassVersion = "2022.10.5";
hassVersion = "2022.11.1";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
@@ -272,7 +254,7 @@ in python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = version;
hash = "sha256-y2X6tiR3TLbQ1tYUUuu8D0i5j+P0FnDWJ1mSlGPwIuY=";
hash = "sha256-2zpNrkRYsmJEq+4L0J6wJodmda5r8NWgYVtYwAHKSps=";
};
# leave this in, so users don't have to constantly update their downstream patch handling
+2 -2
View File
@@ -4,7 +4,7 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
version = "20221010.0";
version = "20221102.1";
format = "wheel";
src = fetchPypi {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
sha256 = "sha256-TyaEnXHnaFk+V06BjeblYv6VnXsmYCc/7mYicJsBEY8=";
sha256 = "sha256-HAFJxrBI6wB1XMe+71tF/bijuQAoyAw8LBQbfv+Vqco=";
};
# there is nothing to strip in this package
@@ -168,8 +168,8 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional
return None
def get_pkg_version(package: str, packages: Dict[str, Dict[str, str]]) -> Optional[str]:
pkg = packages.get(f"{PKG_SET}.{package}", None)
def get_pkg_version(attr_path: str, packages: Dict[str, Dict[str, str]]) -> Optional[str]:
pkg = packages.get(attr_path, None)
if not pkg:
return None
return pkg["version"]
@@ -198,12 +198,14 @@ def main() -> None:
extras = name[name.find("[")+1:name.find("]")].split(",")
name = name[:name.find("[")]
attr_path = name_to_attr_path(name, packages)
if our_version := get_pkg_version(name, packages):
if Version.parse(our_version) < Version.parse(required_version):
outdated[name] = {
'wanted': required_version,
'current': our_version
}
if attr_path:
if our_version := get_pkg_version(attr_path, packages):
attr_name = attr_path.split(".")[-1]
if Version.parse(our_version) < Version.parse(required_version):
outdated[attr_name] = {
'wanted': required_version,
'current': our_version
}
if attr_path is not None:
# Add attribute path without "python3Packages." prefix
pname = attr_path[len(PKG_SET + "."):]
+8 -2
View File
@@ -47,6 +47,10 @@ let
# bytearrray mismatch
"test_rfy_cover"
];
zha = [
# 'manual_pick_radio_type' == 'choose_serial_port'
"test_options_flow_migration_reset_old_adapter"
];
};
extraPytestFlagsArray = {
@@ -62,6 +66,10 @@ let
# Flaky: AssertionError: assert '0.0' == '12.0'
"--deselect tests/components/history_stats/test_sensor.py::test_end_time_with_microseconds_zeroed"
];
modem_callerid = [
# aioserial mock produces wrong state
"--deselect tests/components/modem_callerid/test_init.py::test_setup_entry"
];
skybell = [
# Sandbox network limitations: Cannot connect to host cloud.myskybell.com:443
"--deselect tests/components/skybell/test_config_flow.py::test_flow_user_unknown_error"
@@ -106,8 +114,6 @@ in lib.listToAttrs (map (component: lib.nameValuePair component (
meta = old.meta // {
broken = lib.elem component [
"modem_callerid"
"subaru"
];
# upstream only tests on Linux, so do we.
platforms = lib.platforms.linux;
+1
View File
@@ -41,6 +41,7 @@ mapAliases ({
Babel = babel; # added 2022-05-06
bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
bsblan = python-bsblan; # added 2022-11-04
bt_proximity = bt-proximity; # added 2021-07-02
carrot = throw "carrot has been removed, as its development was discontinued in 2012"; # added 2022-01-18
class-registry = phx-class-registry; # added 2021-10-05
+6 -2
View File
@@ -238,6 +238,8 @@ self: super: with self; {
aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
aiolifx-themes = callPackage ../development/python-modules/aiolifx-themes { };
aiolimiter = callPackage ../development/python-modules/aiolimiter { };
aiolip = callPackage ../development/python-modules/aiolip { };
@@ -1394,8 +1396,6 @@ self: super: with self; {
bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
bsblan = callPackage ../development/python-modules/bsblan { };
bson = callPackage ../development/python-modules/bson { };
bsuite = callPackage ../development/python-modules/bsuite { };
@@ -5433,6 +5433,8 @@ self: super: with self; {
mac_alias = callPackage ../development/python-modules/mac_alias { };
mac-vendor-lookup = callPackage ../development/python-modules/mac-vendor-lookup { };
macfsevents = callPackage ../development/python-modules/macfsevents {
inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
};
@@ -6488,6 +6490,8 @@ self: super: with self; {
opuslib = callPackage ../development/python-modules/opuslib { };
oralb-ble = callPackage ../development/python-modules/oralb-ble { };
orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
ordered-set = callPackage ../development/python-modules/ordered-set { };