{ "info": { "author": "Ali-Akber Saifee", "author_email": "ali@indydevs.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: OS Independent", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. |travis-ci| image:: https://secure.travis-ci.org/alisaifee/djlimiter.png?branch=master\n :target: https://travis-ci.org/#!/alisaifee/djlimiter?branch=master\n.. |coveralls| image:: https://coveralls.io/repos/alisaifee/djlimiter/badge.png?branch=master\n :target: https://coveralls.io/r/alisaifee/djlimiter?branch=master\n.. |pypi| image:: https://img.shields.io/pypi/v/djlimiter.svg?style=flat-square\n :target: https://pypi.python.org/pypi/djlimiter/\n.. |license| image:: https://img.shields.io/pypi/l/djlimiter.svg?style=flat-square\n :target: https://pypi.python.org/pypi/djlimiter\n\n*********\ndjlimiter\n*********\n|travis-ci| |coveralls| |pypi| |license|\n\ndjlimiter provides rate limiting features to django via a middleware.\n\nQuickstart\n===========\n\nAdd the rate limiter to your django projects' `settings.py` and enable a global rate limit for all\nviews in your project:\n\n.. code-block:: python\n\n MIDDLEWARE_CLASSES += (\"djlimiter.Limiter\",)\n RATELIMIT_GLOBAL = \"10/second\"\n\n\nIf you only want to enable rate limits to certain endpoints, leave out the `RATELIMIT_GLOBAL` setting and\nuse the decorator approach instead in the respective view function:\n\n\n.. code-block:: python\n\n @limit(\"10/second\")\n def index(request):\n ...\n\n\n\nFor detailed documentation visit `Read the docs `_\n\n\n\n.. :changelog:\n\nChangelog\n---------\n\n0.2 2015-12-20\n==============\n* Django 1.8/1.9 compatibility\n\n0.1.1 2015-01-09\n================\n* Bug Fix: remove duplicate hits when rate limits are stacked.\n* Bug Fix: multiple rate limits returned by dynamic limits weren't respected.\n* Documentation tweaks.\n\n0.1.0 2015-01-09\n================\n* first release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://djlimiter.readthedocs.org", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "djlimiter", "package_url": "https://pypi.org/project/djlimiter/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/djlimiter/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://djlimiter.readthedocs.org" }, "release_url": "https://pypi.org/project/djlimiter/0.2/", "requires_dist": null, "requires_python": null, "summary": "Rate limiting for django applications", "version": "0.2" }, "last_serial": 1870553, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ecf2a5a74454031c8c4d2a3a3ccb3d92", "sha256": "3887188aaee4af96e253b41364181d2ed050f16ba8f568a4d77cb8717c90457d" }, "downloads": -1, "filename": "djlimiter-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "ecf2a5a74454031c8c4d2a3a3ccb3d92", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17799, "upload_time": "2015-01-08T21:14:10", "url": "https://files.pythonhosted.org/packages/89/76/ae1976e38f3051afaf18b88d4a3437543723d3ac7902be58d4e66f8335bc/djlimiter-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "dfb8e46c5aeae6ffd70752f0f288dfcf", "sha256": "2a818a720804891ec4c21edf8372304049a1a593f8374da41d5ad422587e2290" }, "downloads": -1, "filename": "djlimiter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "dfb8e46c5aeae6ffd70752f0f288dfcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19716, "upload_time": "2015-01-08T21:14:06", "url": "https://files.pythonhosted.org/packages/84/45/06caf1b33e4502ff51a4c2e84dd799950b28d0e818cda2c81774eb58535e/djlimiter-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "13ec4e9414544f2ecc779b68aca1f712", "sha256": "06ecc9b6db2d7d4bd94c3e99f1ef6599e9f24f409a90c2f4f8a3b9418b8abe48" }, "downloads": -1, "filename": "djlimiter-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "13ec4e9414544f2ecc779b68aca1f712", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 18062, "upload_time": "2015-01-09T08:10:01", "url": "https://files.pythonhosted.org/packages/0c/21/00151ba750d38dcce650f63bc23212aa0f034c74baf474a7acedea09f67c/djlimiter-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "004191982f3acc5d29299668b3e292f7", "sha256": "c57157118b018d7d968d80540c6d946e92c1fb4434fd60205b75260f78acc334" }, "downloads": -1, "filename": "djlimiter-0.1.1.tar.gz", "has_sig": false, "md5_digest": "004191982f3acc5d29299668b3e292f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20172, "upload_time": "2015-01-09T08:09:53", "url": "https://files.pythonhosted.org/packages/d9/22/f886248621cbb8f23386906053a79f140de590b9bf18001c69924007a07c/djlimiter-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "d1f362aeb72929d85fbe971d96ec0f67", "sha256": "89a5cdab1ba9046c5ffd983a5ec949acaf0d428a96b7525b0ce1fe596728a724" }, "downloads": -1, "filename": "djlimiter-0.2-py2.7.egg", "has_sig": false, "md5_digest": "d1f362aeb72929d85fbe971d96ec0f67", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17503, "upload_time": "2015-12-20T01:26:32", "url": "https://files.pythonhosted.org/packages/33/1b/eb12d0bc8c44c92c58351b46fbc156722d67fe5dfa0ce0eb749cdbfad94e/djlimiter-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "919ed26e4ac3ed3742be6e8d587cc971", "sha256": "4fdc5759c94d5def466932e67650e66cd6985eea95dd7f3cd77e84e19b49163f" }, "downloads": -1, "filename": "djlimiter-0.2.tar.gz", "has_sig": false, "md5_digest": "919ed26e4ac3ed3742be6e8d587cc971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19655, "upload_time": "2015-12-20T01:26:18", "url": "https://files.pythonhosted.org/packages/e5/49/7b521fb3d8b7dc240f71080da874e62f9afb97216a19fc6dea02e692e6f7/djlimiter-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1f362aeb72929d85fbe971d96ec0f67", "sha256": "89a5cdab1ba9046c5ffd983a5ec949acaf0d428a96b7525b0ce1fe596728a724" }, "downloads": -1, "filename": "djlimiter-0.2-py2.7.egg", "has_sig": false, "md5_digest": "d1f362aeb72929d85fbe971d96ec0f67", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 17503, "upload_time": "2015-12-20T01:26:32", "url": "https://files.pythonhosted.org/packages/33/1b/eb12d0bc8c44c92c58351b46fbc156722d67fe5dfa0ce0eb749cdbfad94e/djlimiter-0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "919ed26e4ac3ed3742be6e8d587cc971", "sha256": "4fdc5759c94d5def466932e67650e66cd6985eea95dd7f3cd77e84e19b49163f" }, "downloads": -1, "filename": "djlimiter-0.2.tar.gz", "has_sig": false, "md5_digest": "919ed26e4ac3ed3742be6e8d587cc971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19655, "upload_time": "2015-12-20T01:26:18", "url": "https://files.pythonhosted.org/packages/e5/49/7b521fb3d8b7dc240f71080da874e62f9afb97216a19fc6dea02e692e6f7/djlimiter-0.2.tar.gz" } ] }