{ "info": { "author": "oldcai", "author_email": "oldcai.com@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Database", "Topic :: Internet :: WWW/HTTP" ], "description": "## Introduce\nFor performance critical fields and models, and don't want to lose the convenience of getting them like attributes.\n\nYou can adding user page view by `user.statistics.visits += 1` and get the value by `user.statistics.visits.value\n`\n\n## Backends\n\n- redis\n- ssdb\n\n## Install\n`pip install django-in-memory-models`\n\n\n## Example\n\n```\nfrom in_memory.ssdb.fields import SSDBSortedIntegerField as IntegerField\n# from in_memory.redis.fields import RedisSortedIntegerField as IntegerField\n\n\n# InMemoryModel do not create tables when migrating.\n# You can add fields to django.db.models.Model directly.\nclass AccountStatistics(InMemoryModel):\n user = InMemoryOneToOneKey(User, related_name='statistics')\n total_subscription = IntegerField(default=0)\n\n @classmethod\n def get_by_user(cls, pk):\n instance = cls(user_id=pk)\n return instance\n\n def __str__(self):\n return '' % self.user\n\ns = User.objects.first().statistics\ns.total_subscription.reset()\nprint(s.total_subscription.value)\ns.total_subscription += 1\nprint(s.total_subscription.value)\ns.total_subscription = 200\nprint(s.total_subscription.value)\ntop_users = s.total_subscription.top(1)\nprint(top_users)\ntop_user = top_users[0]\nprint(top_user)\nprint(top_user.user)\nprint(top_user.total_subscription.value)\n```\n\nOutput\n\n```\n0\n1\n200\n[>]\n\noldcai\n200\n```\n\n## TODO\n\n- Django system cache backend\n\n\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/oldcai/django-in-memory-models", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-in-memory-models", "package_url": "https://pypi.org/project/django-in-memory-models/", "platform": "", "project_url": "https://pypi.org/project/django-in-memory-models/", "project_urls": { "Homepage": "https://github.com/oldcai/django-in-memory-models" }, "release_url": "https://pypi.org/project/django-in-memory-models/1.0.5/", "requires_dist": [ "Django" ], "requires_python": "", "summary": "In memory models for Django, store in memory, query with instance.attribute", "version": "1.0.5" }, "last_serial": 3298017, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "15d6ecfada3106e567702ce3e07d304a", "sha256": "15567ace26677e33e67319ca6d9dc321a9acb6c1015db76587d136a7a9b3ce27" }, "downloads": -1, "filename": "django_in_memory_models-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "15d6ecfada3106e567702ce3e07d304a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3049, "upload_time": "2017-10-22T20:19:03", "url": "https://files.pythonhosted.org/packages/c1/a9/372295c40c2c4ff00481ac1c457c0fb0c3ac35e4419d94aa391324f7ebd9/django_in_memory_models-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d35e839139dc3f91727e613611639276", "sha256": "1a6de66fc6878364b69910a122fef46e15c7155500b68358e089bf4625575dcf" }, "downloads": -1, "filename": "django-in-memory-models-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d35e839139dc3f91727e613611639276", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2318, "upload_time": "2017-10-22T20:19:04", "url": "https://files.pythonhosted.org/packages/2a/fb/ffed74f5f486647c8e6885c22d9017375ba2096edca900101993d472bc23/django-in-memory-models-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "fcfae7b6e7ec3953090df81adeb4023e", "sha256": "ea91cd333fc5fb8158568b5d95152e7909168105eb16228d583f4d942ca02601" }, "downloads": -1, "filename": "django_in_memory_models-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fcfae7b6e7ec3953090df81adeb4023e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3470, "upload_time": "2017-10-22T21:08:39", "url": "https://files.pythonhosted.org/packages/b6/70/78b99fb76b9ca7b80d56b831370d91b8ed3fb776f669166d153589a3df99/django_in_memory_models-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "749fabdfda4c193ea71d75d0abb39e3c", "sha256": "5578d5374bb1eca711da7d25f846b1c5a236146518acd7669fe0fd807666c745" }, "downloads": -1, "filename": "django-in-memory-models-1.0.2.tar.gz", "has_sig": false, "md5_digest": "749fabdfda4c193ea71d75d0abb39e3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2540, "upload_time": "2017-10-22T21:08:40", "url": "https://files.pythonhosted.org/packages/87/cd/94fd47516f2c69e12b4b1044e6892ba7f851cb1b869ed4260453463dbac2/django-in-memory-models-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "924e47adb4e6ed98d01af38cc62a7934", "sha256": "57ef979e29f10459955b20204b6ce866bdcffab8269503c92ba97fe5bfe7f1c4" }, "downloads": -1, "filename": "django_in_memory_models-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "924e47adb4e6ed98d01af38cc62a7934", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3700, "upload_time": "2017-10-23T06:28:05", "url": "https://files.pythonhosted.org/packages/2d/92/6d0069f549e0e0f125b13c462b920fbe83b18a6286bcea4eeb2fdbadb5e4/django_in_memory_models-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "91d64b1ff79ebc3d019b7fa37f0d9d36", "sha256": "80be44aee4caa73a1cb4bbecf2275c864e766d3286eb051a07d9aa25aae5c9a8" }, "downloads": -1, "filename": "django-in-memory-models-1.0.3.tar.gz", "has_sig": false, "md5_digest": "91d64b1ff79ebc3d019b7fa37f0d9d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2649, "upload_time": "2017-10-23T06:28:07", "url": "https://files.pythonhosted.org/packages/80/e3/69a7ed9c9bb9f61793a2e7b259fc317273ed5cea5fd5e62922c5c73b26cc/django-in-memory-models-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "06e1e664a88d5730834966ba3327f08e", "sha256": "121e06e682d502798fb15c485daf3213216b5e67c5a113eabdecb60e2424d2c1" }, "downloads": -1, "filename": "django_in_memory_models-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "06e1e664a88d5730834966ba3327f08e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16107, "upload_time": "2017-10-23T06:36:31", "url": "https://files.pythonhosted.org/packages/aa/fe/120518207c2e972c5ba35393bc025a3bb3c07b059aaf8ffde529aa4fcb10/django_in_memory_models-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29365a2bbe99ff61588429e0e300011d", "sha256": "e3480d055d8fde9eb73417508337828b5ed00706aa2b355d90b317ccf4d69745" }, "downloads": -1, "filename": "django-in-memory-models-1.0.4.tar.gz", "has_sig": false, "md5_digest": "29365a2bbe99ff61588429e0e300011d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10905, "upload_time": "2017-10-23T06:36:33", "url": "https://files.pythonhosted.org/packages/70/7f/b8ee6ff766347f7d43e9c7be4837937ae62e81a31b4e8bf93347ae93323f/django-in-memory-models-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "ae4a86ac696f22ae6549001a247641f8", "sha256": "80de4360f7706bbffb8cd813f9b81107fdf976bca460cbf13f4604e88042f665" }, "downloads": -1, "filename": "django_in_memory_models-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ae4a86ac696f22ae6549001a247641f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17313, "upload_time": "2017-11-01T18:43:41", "url": "https://files.pythonhosted.org/packages/42/56/2ec13d1e0f1b073913c756659c44c87f53b38f52fd917e0ce471c2d1510b/django_in_memory_models-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "535a089647afa10696886a93151ff61e", "sha256": "9773909a6e84341761969773c17011a5e88f13574d2e6999b07bdb6b421a8dcc" }, "downloads": -1, "filename": "django-in-memory-models-1.0.5.tar.gz", "has_sig": false, "md5_digest": "535a089647afa10696886a93151ff61e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12075, "upload_time": "2017-11-01T18:43:43", "url": "https://files.pythonhosted.org/packages/48/7e/d8a508e99f6ac2b66ef0ee548134c5a718acd9c8d07243f9234082a29641/django-in-memory-models-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ae4a86ac696f22ae6549001a247641f8", "sha256": "80de4360f7706bbffb8cd813f9b81107fdf976bca460cbf13f4604e88042f665" }, "downloads": -1, "filename": "django_in_memory_models-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ae4a86ac696f22ae6549001a247641f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17313, "upload_time": "2017-11-01T18:43:41", "url": "https://files.pythonhosted.org/packages/42/56/2ec13d1e0f1b073913c756659c44c87f53b38f52fd917e0ce471c2d1510b/django_in_memory_models-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "535a089647afa10696886a93151ff61e", "sha256": "9773909a6e84341761969773c17011a5e88f13574d2e6999b07bdb6b421a8dcc" }, "downloads": -1, "filename": "django-in-memory-models-1.0.5.tar.gz", "has_sig": false, "md5_digest": "535a089647afa10696886a93151ff61e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12075, "upload_time": "2017-11-01T18:43:43", "url": "https://files.pythonhosted.org/packages/48/7e/d8a508e99f6ac2b66ef0ee548134c5a718acd9c8d07243f9234082a29641/django-in-memory-models-1.0.5.tar.gz" } ] }