{ lib , aiohttp , aresponses , buildPythonPackage , fetchFromGitHub , fetchpatch , poetry-core , pytest-aiohttp , pytest-asyncio , pytestCheckHook , python-engineio , python-socketio , pythonOlder , websockets }: buildPythonPackage rec { pname = "aioambient"; version = "2023.08.0"; format = "pyproject"; disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "bachya"; repo = pname; rev = "refs/tags/${version}"; hash = "sha256-Y8I4iPvxcK98Olb3JURNK37MKggdhcweKvNBa0ZtG6I="; }; patches = [ # This patch removes references to setuptools and wheel that are no longer # necessary and changes poetry to poetry-core, so that we don't need to add # unnecessary nativeBuildInputs. # # https://github.com/bachya/aioambient/pull/295 # (fetchpatch { name = "clean-up-build-dependencies.patch"; url = "https://github.com/bachya/aioambient/commit/fa21a2e82678a231a73c8a1153032980926f4c35.patch"; hash = "sha256-RLRbHmaR2A8MNc96WHx0L8ccyygoBUaOulAuRJkFuUM="; }) ]; postPatch = '' substituteInPlace pyproject.toml \ --replace 'websockets = ">=11.0.1"' 'websockets = "*"' ''; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ aiohttp python-engineio python-socketio websockets ]; __darwinAllowLocalNetworking = true; nativeCheckInputs = [ aresponses pytest-aiohttp pytest-asyncio pytestCheckHook ]; # Ignore the examples directory as the files are prefixed with test_ disabledTestPaths = [ "examples/" ]; pythonImportsCheck = [ "aioambient" ]; meta = with lib; { description = "Python library for the Ambient Weather API"; homepage = "https://github.com/bachya/aioambient"; changelog = "https://github.com/bachya/aioambient/releases/tag/${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; }