{ "info": { "author": "Ryan Castner", "author_email": "castner.rr@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "=============================\ndjango-groups-cache\n=============================\n\n.. image:: https://badge.fury.io/py/django-groups-cache.svg\n :target: https://badge.fury.io/py/django-groups-cache\n\n.. image:: https://travis-ci.org/audiolion/django-groups-cache.svg?branch=master\n :target: https://travis-ci.org/audiolion/django-groups-cache\n\n.. image:: https://codecov.io/gh/audiolion/django-groups-cache/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/audiolion/django-groups-cache\n\nCaches the groups a user is in so requests don't have to make calls to the database to check group status.\n\nSupport\n-------\n\nCurrently supporting Django 1.8, 1.11, and 2.0 with Python 2.7/Python 3 where support for versions aligns with\nDjango's support. See the `tox.ini` file for specific Python and Django version pairings.\n\nDocumentation\n-------------\n\nThe full documentation is at https://django-groups-cache.readthedocs.io.\n\nQuickstart\n----------\n\nInstall django-groups-cache::\n\n pip install django-groups-cache\n\nAdd it to your `INSTALLED_APPS`:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n ...\n 'groups_cache.apps.GroupsCacheConfig',\n ...\n )\n\nAdd the middleware to your `MIDDLEWARE_CLASSES`:\n\n.. code-block:: python\n\n MIDDLEWARE_CLASSES = (\n 'django.contrib.sessions.middleware.SessionMiddleware',\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\n ...\n 'groups_cache.middleware.GroupsCacheMiddleware',\n )\n\nChecking in a Django Template if the user is in a group name:\n\n.. code-block:: python\n\n {% if \"admins\" in request.groups_cache %}\n Admin Panel\n {% endif %}\n\n # or use templatetag, note that templatetag is slower\n\n {% load has_group %}\n\n {% if request.user|has_group:\"admins\" %}\n Admin Panel\n {% endif %}\n\nTurn on caching:\n\n.. code-block:: python\n\n CACHES = {\n 'default': {\n 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',\n 'LOCATION': '127.0.0.1:11211',\n }\n }\n\nSee https://docs.djangoproject.com/en/1.10/topics/cache/#memcached for more details on setting\nup memcached.\n\nNote**\n\nUsing `django.core.cache.backends.locmem.LocMemCache` is not safe for production unless you are\nonly running a single process (and odds are you aren't).\n\nSee https://docs.djangoproject.com/en/1.10/topics/cache/#local-memory-caching for more details.\n\nFeatures\n--------\n\n* Adds `groups_cache` property to `request` object\n* Provides templatetag `has_group`\n* Invalidates cache on `User` or `Group` model changes and on m2m `groups` ManyToManyField changes\n* Fully tested with high coverage\n\n\nRunning Tests\n-------------\n\n::\n\n source /bin/activate\n (myenv) $ pip install tox\n (myenv) $ tox\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n\n\n\n\nHistory\n-------\n\n0.5.5 (2017-01-13)\n++++++++++++++++++\n\n* Bug fix for templatetag `has_group`\n* Tests added for 100% coverage of templatetag folder\n\n0.5.5 (2017-01-12)\n++++++++++++++++++\n\n* Omit urls.py from coverage report (not used but needed for django package)\n* Omit apps.py from coverage report (default apps file)\n\n0.5.4 (2017-01-12)\n++++++++++++++++++\n\n* Removal of py32/django1.8 support from Travis CI build\n\n0.5.3 (2017-01-12)\n++++++++++++++++++\n\n* Fixing .travis.yml file and CI builds\n\n0.5.2 (2017-01-12)\n++++++++++++++++++\n\n* Typo in README.rst\n\n0.5.1 (2017-01-12)\n++++++++++++++++++\n\n* Add codecov.io support\n* Documentation updates\n\n0.5.0 (2017-01-12)\n++++++++++++++++++\n\n* Add requirements.txt to tox.ini so tests can run\n* Fix broken compatibility with Django 1.8/1.9 due to backwards incompatible changes in 1.9/1.10 code\n\n0.4.0 (2017-01-12)\n++++++++++++++++++\n\n* Add test suite that generates 100% coverage\n* Fixed a bug found by test suite with cache not invalidating on the `groups` ManyToManyField changing\n\n0.3.1 (2017-01-11)\n++++++++++++++++++\n\n* Documentation updates\n\n0.3.0 (2017-01-11)\n++++++++++++++++++\n\n* First stable and working release on PyPI.\n\n0.1.0 (2017-01-11)\n++++++++++++++++++\n\n* First release on PyPI.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/audiolion/django-groups-cache", "keywords": "django-groups-cache", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-groups-cache", "package_url": "https://pypi.org/project/django-groups-cache/", "platform": "", "project_url": "https://pypi.org/project/django-groups-cache/", "project_urls": { "Homepage": "https://github.com/audiolion/django-groups-cache" }, "release_url": "https://pypi.org/project/django-groups-cache/1.0.2/", "requires_dist": null, "requires_python": "", "summary": "Caches the groups a user is in so requests don't have to make calls to the database to check group status.", "version": "1.0.2" }, "last_serial": 3466978, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "15032eb5ea056033acf678ac84b99031", "sha256": "9b09db9072b64c14b4a512ba1c649f7a3654c2f17860de3edd966c9b6cd34112" }, "downloads": -1, "filename": "django-groups-cache-0.1.1.tar.gz", "has_sig": false, "md5_digest": "15032eb5ea056033acf678ac84b99031", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6206, "upload_time": "2017-01-11T21:49:06", "url": "https://files.pythonhosted.org/packages/ec/d1/cb1427ba8f0472e41d829864f84da800d3486ea09ff450600acad51dddfd/django-groups-cache-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b60f59b165e60711a9b9337c1d4af953", "sha256": "1d19fc12256a41e7f3149fc6c1c76212e667c344b3b03677269fbbf888a6d5ab" }, "downloads": -1, "filename": "django-groups-cache-0.1.2.tar.gz", "has_sig": false, "md5_digest": "b60f59b165e60711a9b9337c1d4af953", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6299, "upload_time": "2017-01-11T21:56:26", "url": "https://files.pythonhosted.org/packages/ed/9d/734cae697a2ec836a23d3d3b835bd03fa5f38f8f0d6977bc63ff46c9b42b/django-groups-cache-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "df9f16eda8e2bdafe0c4a6ca56438c38", "sha256": "f60f0be1314909167bfd110ec9c9ae74d9bbf324f0a81135147ec6c99db89321" }, "downloads": -1, "filename": "django-groups-cache-0.1.3.tar.gz", "has_sig": false, "md5_digest": "df9f16eda8e2bdafe0c4a6ca56438c38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6295, "upload_time": "2017-01-11T22:01:36", "url": "https://files.pythonhosted.org/packages/e0/91/120b3d892c6f8d1d562a422152c875105fb6fca26103ccb47e07cb1ef5a1/django-groups-cache-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "d162a27d80152cefc332e3acda175c91", "sha256": "440122ca260b08b7debaaf7779e57d3ad76bb1fdda087b08a849d802de0e70cc" }, "downloads": -1, "filename": "django-groups-cache-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d162a27d80152cefc332e3acda175c91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6374, "upload_time": "2017-01-11T22:22:56", "url": "https://files.pythonhosted.org/packages/a7/0e/b3b84801bcf464fdd234890bdeff2085604a0a76d157e224e9df6866e30f/django-groups-cache-0.1.4.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b3a5bd599cd714649019ec825d8b19e9", "sha256": "b5deca5e840440720992465b3ac5cfdacab7a9d1c074942aa50f9e40669e7c33" }, "downloads": -1, "filename": "django-groups-cache-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b3a5bd599cd714649019ec825d8b19e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6942, "upload_time": "2017-01-12T04:51:12", "url": "https://files.pythonhosted.org/packages/a6/de/52feff27ef3a4330283169a1764acbc5ab355e3f10aeee292187bc19adb5/django-groups-cache-0.3.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9590ab80a117b27a357e99be5f48822e", "sha256": "ede08427251b7e9fd12b0f7659cf17f30fcd4c0ccc3e0bf0be8953f3a3c5a379" }, "downloads": -1, "filename": "django-groups-cache-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9590ab80a117b27a357e99be5f48822e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7947, "upload_time": "2017-01-13T05:10:06", "url": "https://files.pythonhosted.org/packages/fe/3d/2d50a5351323336b37ed008025233cf590cabe112f8a66aef44c2910c3ca/django-groups-cache-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ba4d92d5632b36989191c6a98e0245ee", "sha256": "349e03fc1371f7292f70682792d8d0d8f8731765e2dd8ffdfb4888d161238cec" }, "downloads": -1, "filename": "django_groups_cache-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba4d92d5632b36989191c6a98e0245ee", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10374, "upload_time": "2018-01-06T13:57:36", "url": "https://files.pythonhosted.org/packages/c1/d5/c72d95a2b649357c1f779a23dc6872494112aacb89fbafaf9d71cb3a3873/django_groups_cache-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dc51b97f7e1c2fe3d10dda198df5318", "sha256": "a5b8621c2e18f5067cdbb289f9a35616539a351794cc27dbc8b6bf8dd34ac856" }, "downloads": -1, "filename": "django-groups-cache-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4dc51b97f7e1c2fe3d10dda198df5318", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8121, "upload_time": "2018-01-06T13:57:35", "url": "https://files.pythonhosted.org/packages/c9/26/2c6fc2d80de0c1a84591e470edab2bc8d739bdfc68cc2d24d375ae195150/django-groups-cache-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ba4d92d5632b36989191c6a98e0245ee", "sha256": "349e03fc1371f7292f70682792d8d0d8f8731765e2dd8ffdfb4888d161238cec" }, "downloads": -1, "filename": "django_groups_cache-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba4d92d5632b36989191c6a98e0245ee", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10374, "upload_time": "2018-01-06T13:57:36", "url": "https://files.pythonhosted.org/packages/c1/d5/c72d95a2b649357c1f779a23dc6872494112aacb89fbafaf9d71cb3a3873/django_groups_cache-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dc51b97f7e1c2fe3d10dda198df5318", "sha256": "a5b8621c2e18f5067cdbb289f9a35616539a351794cc27dbc8b6bf8dd34ac856" }, "downloads": -1, "filename": "django-groups-cache-1.0.2.tar.gz", "has_sig": false, "md5_digest": "4dc51b97f7e1c2fe3d10dda198df5318", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8121, "upload_time": "2018-01-06T13:57:35", "url": "https://files.pythonhosted.org/packages/c9/26/2c6fc2d80de0c1a84591e470edab2bc8d739bdfc68cc2d24d375ae195150/django-groups-cache-1.0.2.tar.gz" } ] }