{ lib, buildPythonPackage, fetchFromGitHub, cryptography, cython, poetry-core, pytest-codspeed, pytest-cov-stub, pytestCheckHook, setuptools, }: buildPythonPackage rec { pname = "bluetooth-data-tools"; version = "1.28.4"; pyproject = true; src = fetchFromGitHub { owner = "Bluetooth-Devices"; repo = "bluetooth-data-tools"; tag = "v${version}"; hash = "sha256-IAGlM1B/PAPyaBIfHG3RScn8odboZMg3YmQJSfoyKR4="; }; # The project can build both an optimized cython version and an unoptimized # python version. This ensures we fail if we build the wrong one. env.REQUIRE_CYTHON = 1; build-system = [ cython poetry-core setuptools ]; dependencies = [ cryptography ]; nativeCheckInputs = [ pytest-codspeed pytest-cov-stub pytestCheckHook ]; pythonImportsCheck = [ "bluetooth_data_tools" ]; meta = { description = "Library for converting bluetooth data and packets"; homepage = "https://github.com/Bluetooth-Devices/bluetooth-data-tools"; changelog = "https://github.com/Bluetooth-Devices/bluetooth-data-tools/blob/${src.tag}/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; }