{ lib, attrs, buildPythonPackage, bson, boto3, botocore, cattrs, fetchFromGitHub, itsdangerous, platformdirs, poetry-core, psutil, pymongo, pytestCheckHook, pytest-rerunfailures, pytest-xdist, pythonOlder, pyyaml, redis, requests, requests-mock, responses, rich, tenacity, time-machine, timeout-decorator, ujson, urllib3, url-normalize, }: buildPythonPackage rec { pname = "requests-cache"; version = "1.2.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "requests-cache"; repo = "requests-cache"; rev = "refs/tags/v${version}"; hash = "sha256-w1ptKi/MH3kGZxLMUNq/Gs6btGx+n2fG4nfQUXCXmiY="; }; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ attrs cattrs platformdirs requests urllib3 url-normalize ]; passthru.optional-dependencies = { dynamodb = [ boto3 botocore ]; mongodbo = [ pymongo ]; redis = [ redis ]; bson = [ bson ]; json = [ ujson ]; security = [ itsdangerous ]; yaml = [ pyyaml ]; }; nativeCheckInputs = [ psutil pytestCheckHook pytest-rerunfailures pytest-xdist requests-mock responses rich tenacity time-machine timeout-decorator ] ++ passthru.optional-dependencies.json ++ passthru.optional-dependencies.security; preCheck = '' export HOME=$(mktemp -d); ''; pytestFlagsArray = [ # Integration tests require local DBs "tests/unit" ]; disabledTests = [ # Tests are flaky in the sandbox "test_remove_expired_responses" # Tests that broke with urllib 2.0.5 "test_request_only_if_cached__stale_if_error__expired" "test_stale_if_error__error_code" ]; pythonImportsCheck = [ "requests_cache" ]; meta = with lib; { description = "Persistent cache for requests library"; homepage = "https://github.com/reclosedev/requests-cache"; changelog = "https://github.com/requests-cache/requests-cache/blob/v${version}/HISTORY.md"; license = licenses.bsd3; maintainers = with maintainers; [ fab ]; }; }