Files

60 lines
1.6 KiB
Nix

{
lib,
buildPythonPackage,
coverage,
fetchFromGitHub,
hatchling,
lifx-emulator-core,
pytest-asyncio,
pytest-benchmark,
pytest-cov-stub,
pytest-retry,
pytest-timeout,
pytestCheckHook,
}:
buildPythonPackage (finalAttrs: {
pname = "lifx-async";
version = "7.8.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Djelibeybi";
repo = "lifx-async";
tag = "v${finalAttrs.version}";
hash = "sha256-GZZy58gRrR+D8plarDibdYyzBq68tz50RMRW/d9Pxm0=";
};
build-system = [ hatchling ];
__darwinAllowLocalNetworking = true;
nativeCheckInputs = [
coverage # undocumented, indirect dependency of pytest-cov
lifx-emulator-core
pytest-asyncio
pytest-benchmark
pytest-cov-stub
pytest-retry
pytest-timeout
pytestCheckHook
];
disabledTestPaths = [
# those tests require ruff formatter
"tests/test_products/test_product_generator.py::TestFormatGeneratedFiles::test_formats_generated_file_in_place"
"tests/test_protocol/test_protocol_generator.py::TestFormatGeneratedFiles::test_formats_generated_file_in_place"
"tests/test_theme/test_theme_generator.py::TestMainAtomicWrite::test_success_replaces_target_and_leaves_no_stray_file"
"tests/test_theme/test_theme_generator.py::TestMainAtomicWrite::test_generated_module_is_world_readable_under_any_umask"
];
pythonImportsCheck = [ "lifx" ];
meta = {
description = "Modern, type-safe, async Python library for controlling LIFX lights";
homepage = "https://github.com/Djelibeybi/lifx-async/";
license = lib.licenses.upl;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
};
})