{ lib , blinker , buildPythonPackage , cryptography , fetchFromGitHub , mock , pyjwt , pytestCheckHook , pythonOlder , setuptools # for passthru.tests , django-allauth , django-oauth-toolkit , google-auth-oauthlib , requests-oauthlib }: buildPythonPackage rec { pname = "oauthlib"; version = "3.2.2"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "oauthlib"; repo = "oauthlib"; rev = "v${version}"; hash = "sha256-KADS1pEaLYi86LEt2VVuz8FVTBANzxC8EeQLgGMxuBU="; }; nativeBuildInputs = [ setuptools ]; passthru.optional-dependencies = { rsa = [ cryptography ]; signedtoken = [ cryptography pyjwt ]; signals = [ blinker ]; }; nativeCheckInputs = [ mock pytestCheckHook ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies); pythonImportsCheck = [ "oauthlib" ]; passthru.tests = { inherit django-allauth django-oauth-toolkit google-auth-oauthlib requests-oauthlib; }; meta = with lib; { changelog = "https://github.com/oauthlib/oauthlib/blob/${src.rev}/CHANGELOG.rst"; description = "Generic, spec-compliant, thorough implementation of the OAuth request-signing logic"; homepage = "https://github.com/oauthlib/oauthlib"; license = licenses.bsd3; maintainers = with maintainers; [ prikhi ]; }; }