22 buildPythonPackage rec {
23 pname = "flask-limiter";
27 disabled = pythonOlder "3.9";
29 src = fetchFromGitHub {
31 repo = "flask-limiter";
33 hash = "sha256-AfreBLyJDogXnxB5cIoT766VFiHIIoVKAoBIra6Q+xs=";
37 # flask-restful is unmaintained and breaks regularly, don't depend on it
38 substituteInPlace tests/test_views.py \
39 --replace-fail "import flask_restful" ""
42 build-system = [ setuptools ];
52 optional-dependencies = {
53 redis = limits.optional-dependencies.redis;
54 memcached = limits.optional-dependencies.memcached;
55 mongodb = limits.optional-dependencies.mongodb;
70 # flask-restful is unmaintained and breaks regularly
71 "test_flask_restful_resource"
73 # Requires running a docker instance
75 "test_constructor_arguments_over_config"
76 "test_custom_key_prefix"
77 "test_custom_key_prefix_with_headers"
78 "test_fallback_to_memory_backoff_check"
79 "test_fallback_to_memory_config"
80 "test_fallback_to_memory_with_global_override"
81 "test_redis_request_slower_than_fixed_window"
82 "test_redis_request_slower_than_moving_window"
83 "test_reset_unsupported"
86 "test_fallback_to_memory"
90 # requires running redis/memcached/mongodb
91 "tests/test_storage.py"
94 pythonImportsCheck = [ "flask_limiter" ];
97 description = "Rate limiting for flask applications";
98 homepage = "https://flask-limiter.readthedocs.org/";
99 changelog = "https://github.com/alisaifee/flask-limiter/blob/${version}/HISTORY.rst";
100 license = licenses.mit;