{ "info": { "author": "Alexander Klimenko", "author_email": "alex@erix.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development" ], "description": "Django Permanent\n================\n\nYet another approach to provide soft (logical) delete or masking (thrashing) django models instead of deleting them physically from db.\n\n.. image:: https://api.travis-ci.org/meteozond/django-permanent.svg?branch=master\n\nModels\n================\n\nTo create a non-deletable model just inherit it from ``PermanentModel``:\n\n.. code-block:: python\n\n class MyModel(PermanentModel):\n pass\n\nIt automatically changes delete behaviour to hide objects instead of deleting them:\n\n.. code-block:: python\n\n >>> a = MyModel.objects.create(pk=1)\n >>> b = MyModel.objects.create(pk=2)\n >>> MyModel.objects.count()\n 2\n >>> a.delete()\n >>> MyModel.objects.count()\n 1\n\nTo recover a deleted object just call its ``restore`` method:\n\n.. code-block:: python\n\n >>> a.restore()\n >>> MyModel.objects.count()\n 2\n\nUse the ``force`` kwarg to enforce physical deletion:\n\n.. code-block:: python\n\n >>> a.delete(force=True) # Will act as the default django delete\n >>> MyModel._base_manager.count()\n 0\n\nIf you need to restore a deleted object instead of re-creating the same one use the ``restore_on_create`` attribute:\n\n.. code-block:: python\n\n class MyModel(PermanentModel):\n class Permanent:\n restore_on_create = True\n\nIn this case ``QuerySet`` provides check existence of same attribute objects and restores them if they've been deleted, creating new ones if not.\n\nManagers\n========\n\nIt changes the default model manager to ignore deleted objects, adding a ``deleted_objects`` manager to see them instead:\n\n.. code-block:: python\n\n >>> MyModel.objects.count()\n 2\n >>> a.delete()\n >>> MyModel.objects.count()\n 1\n >>> MyModel.deleted_objects.count()\n 1\n >>> MyModel.all_objects.count()\n 2\n >>> MyModel._base_manager.count()\n 2\n\nQuerySet\n========\n\nThe ``QuerySet.delete`` method will act as the default django delete, with one exception - objects of models subclassing ``PermanentModel`` will be marked as deleted; the rest will be deleted physically:\n\n.. code-block:: python\n\n >>> MyModel.objects.all().delete()\n\nYou can still force django query set physical deletion:\n\n.. code-block:: python\n\n >>> MyModel.objects.all().delete(force=True)\n\nUsing custom querysets\n======================\n\n1. Inherit your query set from ``PermanentQuerySet``:\n\n .. code-block:: python\n\n class ServerFileQuerySet(PermanentQuerySet)\n pass\n\n2. Wrap ``PermanentQuerySet`` or ``DeletedQuerySet`` in you model manager declaration:\n\n .. code-block:: python\n\n class MyModel(PermanentModel)\n objects = MultiPassThroughManager(ServerFileQuerySet, NonDeletedQuerySet)\n deleted_objects = MultiPassThroughManager(ServerFileQuerySet, DeletedQuerySet)\n all_objects = MultiPassThroughManager(ServerFileQuerySet, PermanentQuerySet)\n\nMethod ``get_restore_or_create``\n================================\n\n1. Check for existence of the object.\n2. Restore it if it was deleted.\n3. Create a new one, if it was never created.\n\nField name\n==========\n\nThe default field named is 'removed', but you can override it with the PERMANENT_FIELD variable in settings.py:\n\n.. code-block:: python\n\n PERMANENT_FIELD = 'deleted'\n\nRequirements\n============\n\n- Django 1.7+\n- Python 2.7, 3.4+", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/meteozond/django-permanent", "keywords": "django,delete,undelete,safedelete,remove,restore,softdelete,logicaldelete,trash", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-permanent", "package_url": "https://pypi.org/project/django-permanent/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-permanent/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/meteozond/django-permanent" }, "release_url": "https://pypi.org/project/django-permanent/1.1.6/", "requires_dist": null, "requires_python": null, "summary": "Yet another approach to provide soft (logical) delete or masking (thrashing) django models instead of deleting them physically from db.", "version": "1.1.6" }, "last_serial": 2851248, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "56f6bb09a4abea462aeba352f59939ee", "sha256": "cf04b62b15c59607e38a7e6befaded0fe22cbc2e383a8dc221f323a723191f20" }, "downloads": -1, "filename": "django-permanent-0.0.1.tar.gz", "has_sig": false, "md5_digest": "56f6bb09a4abea462aeba352f59939ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3546, "upload_time": "2013-08-02T06:28:42", "url": "https://files.pythonhosted.org/packages/d8/21/9585c6ebfcc0c98bb956eb3e40ee2aa6d2301003ebd458c2795e9e3de38e/django-permanent-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "ca391f8a8aff04b3b9140916ff87716a", "sha256": "f2948afcbb6c960a78064f0bf2139f9917b1cd05ae1d9cd4583d8085defd51bb" }, "downloads": -1, "filename": "django-permanent-0.0.2.tar.gz", "has_sig": false, "md5_digest": "ca391f8a8aff04b3b9140916ff87716a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3563, "upload_time": "2013-08-02T08:15:13", "url": "https://files.pythonhosted.org/packages/d8/e6/2617fd0835eabfb5f7dc286523c6031ae44a31d7e34d3b928766cc151c77/django-permanent-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "162698c13ff75678c84a7b9da79df0f7", "sha256": "9acf065d4f360d4f13793c86cd79e314e9f2690099362a10da0d33784abe5cef" }, "downloads": -1, "filename": "django-permanent-0.1.0.tar.gz", "has_sig": false, "md5_digest": "162698c13ff75678c84a7b9da79df0f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3701, "upload_time": "2013-09-25T11:11:27", "url": "https://files.pythonhosted.org/packages/63/50/c11901b889c39df651e43324698b25502a3e87c4766b1121ac35441fb752/django-permanent-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ccd726cb41e957225995b646db5ca367", "sha256": "5e5b2fa47f7be70e4fe0c6b28812486fb27e27883f5e84f7180350f05f38b6a2" }, "downloads": -1, "filename": "django-permanent-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ccd726cb41e957225995b646db5ca367", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3835, "upload_time": "2013-09-25T15:52:05", "url": "https://files.pythonhosted.org/packages/bd/c0/8da319e5ea0181ea7525074492c2f3e0258d62f34df78be9bed1ce229eb4/django-permanent-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "fb3fbbddc7401e14edc7dbf68aa9fcad", "sha256": "e3c5a9f9446b0972f41e56ab40830a50b3e7398cc589937b8e4e9dd3bfc1efce" }, "downloads": -1, "filename": "django-permanent-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fb3fbbddc7401e14edc7dbf68aa9fcad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3839, "upload_time": "2013-10-02T14:24:33", "url": "https://files.pythonhosted.org/packages/65/0e/e54a90e26d80e567baa1caae83ff70a07438d45195e830eea77b952e4de6/django-permanent-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6208693b1deea7cd8c50a5f2e2b337f5", "sha256": "5fb38ccd1c9900c136cc420a44ace610bc4f51382e67cd25fe4e6aea5acaaed0" }, "downloads": -1, "filename": "django-permanent-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6208693b1deea7cd8c50a5f2e2b337f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3816, "upload_time": "2013-12-13T13:39:26", "url": "https://files.pythonhosted.org/packages/3d/92/2b609e1ca3e9da9b58053075cc59ab43c0469082327815e9c909acfddea8/django-permanent-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3424f986ce6403881ddbe1a7967d2a48", "sha256": "eac9f038fbef5e3a10bf41ce4efe5adc82a038e9bc7e337a84473c6bd8af8ac7" }, "downloads": -1, "filename": "django-permanent-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3424f986ce6403881ddbe1a7967d2a48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3831, "upload_time": "2014-01-15T12:50:21", "url": "https://files.pythonhosted.org/packages/3a/d1/95b6934d65a2b3d5892c7265f4ff5bf342d910ad610b8b18996775445b0b/django-permanent-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "76f51fb73997e858ce9fce02830bc6ab", "sha256": "243dcc6ecd00df3525dae16692415828d2a556a1f4e98b97231b992cddcad590" }, "downloads": -1, "filename": "django-permanent-0.1.5.tar.gz", "has_sig": false, "md5_digest": "76f51fb73997e858ce9fce02830bc6ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4823, "upload_time": "2014-06-19T07:33:53", "url": "https://files.pythonhosted.org/packages/59/7b/dcb1e488c64e601db79a4cca4119b56121149a3ff559b63dc861d8166fd6/django-permanent-0.1.5.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b95f58148474b65b3ba988d318eb57ab", "sha256": "5ba1283a08d8d17ed5dcb858e06795052e81406d01928278e0434732f2ccd430" }, "downloads": -1, "filename": "django-permanent-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b95f58148474b65b3ba988d318eb57ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4450, "upload_time": "2014-02-03T07:31:15", "url": "https://files.pythonhosted.org/packages/ad/d9/0a1bb8cec2593c027e8541f41ca3766d9c0a77c9596b907782f5aaf1ea80/django-permanent-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "973cd890517d259d8e9c9477d039bc6a", "sha256": "49d9a2b42df330b6b28e843b523dc51fa593ade1e669f05340d09b6452f4ee51" }, "downloads": -1, "filename": "django-permanent-1.0.1.tar.gz", "has_sig": false, "md5_digest": "973cd890517d259d8e9c9477d039bc6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4616, "upload_time": "2014-02-03T12:30:12", "url": "https://files.pythonhosted.org/packages/28/81/10761d201e67fa06bdcc5fe8dcdfb90fca6eddc29726cb866848ce518408/django-permanent-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "cb915f43c79252e2b59ad1165e463274", "sha256": "59825a13d4ad9be6d48247e788608e6dc038b7ea37892b6d5170d7562112be88" }, "downloads": -1, "filename": "django-permanent-1.0.10.tar.gz", "has_sig": false, "md5_digest": "cb915f43c79252e2b59ad1165e463274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7900, "upload_time": "2015-04-03T08:35:31", "url": "https://files.pythonhosted.org/packages/2c/69/d174e0e1a7bfb8012e3ab9afea67ff1b222853d56db5b4b49b9ddebd25fc/django-permanent-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "7c058d2fd5a0d4a19dabc7abcaf922f4", "sha256": "5b615183aeb92926925dff1e10f38537a5e45ac92909a54bc1140f342f945177" }, "downloads": -1, "filename": "django-permanent-1.0.11.tar.gz", "has_sig": false, "md5_digest": "7c058d2fd5a0d4a19dabc7abcaf922f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8197, "upload_time": "2015-05-29T10:20:53", "url": "https://files.pythonhosted.org/packages/b6/36/6dd5458de6f8fb78c8a78b0d8231e19c9cde3e9b41e0ea54d72790eabe9d/django-permanent-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "04001e0d0b4608aabff40a0091347167", "sha256": "8e433f0946634942a4cfd17e734c75da90d4ad5d775c509c8806ac336a2bc071" }, "downloads": -1, "filename": "django-permanent-1.0.12.tar.gz", "has_sig": false, "md5_digest": "04001e0d0b4608aabff40a0091347167", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8410, "upload_time": "2015-11-27T08:52:40", "url": "https://files.pythonhosted.org/packages/1b/15/f7c7ce67ff35ffdb029c73d3e8a27a151d8bf7f0d516c2e758e00f781973/django-permanent-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "7130279c05520199c2a61d3a7776fa3c", "sha256": "f5752e80751ee7e4fac2d10b11aa5180afc828ef1904e7f23e94434f8b53de67" }, "downloads": -1, "filename": "django-permanent-1.0.13.tar.gz", "has_sig": false, "md5_digest": "7130279c05520199c2a61d3a7776fa3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8570, "upload_time": "2016-03-22T10:58:21", "url": "https://files.pythonhosted.org/packages/2c/f3/2d876dbfaa5e5a2eb0b76a286c0a1ead804bcbdf8999dc58b09d2f78332c/django-permanent-1.0.13.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "55d32c53504c0dc71c145a726a1337c1", "sha256": "80b14e54b349c4ea8b0191bf85b99c3ca50b1d40305c733227479018c6c26174" }, "downloads": -1, "filename": "django-permanent-1.0.2.tar.gz", "has_sig": false, "md5_digest": "55d32c53504c0dc71c145a726a1337c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4770, "upload_time": "2014-02-05T10:14:31", "url": "https://files.pythonhosted.org/packages/3c/a4/7abaa8e6184e84f58d90839f95d60cb79d3516b258f958cedbfa74ae7669/django-permanent-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "afe387da613804e0f5981322b38799a6", "sha256": "e2c0498291a0891aa4febc019e9b0f05ae57c0630c69e87cb38e584de91cff76" }, "downloads": -1, "filename": "django-permanent-1.0.3.tar.gz", "has_sig": false, "md5_digest": "afe387da613804e0f5981322b38799a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7312, "upload_time": "2015-03-17T11:32:05", "url": "https://files.pythonhosted.org/packages/f4/0c/302a3ef122cd84e2a3fa9cd2aa2e711111e1c2d93e565e08b4ed3c7c6995/django-permanent-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "e1604ae7c404e3bdd1990d1b572e99aa", "sha256": "9ce2a21ac89d929218cb1847cdd79dd0972d2a5b9960011ca576f3841d27431a" }, "downloads": -1, "filename": "django-permanent-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e1604ae7c404e3bdd1990d1b572e99aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6974, "upload_time": "2015-03-18T10:50:37", "url": "https://files.pythonhosted.org/packages/18/d8/b107660776c7e6bb11db7f2306046dbc70f3c97bf958038d8d911dbd6f38/django-permanent-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "0e16c7bcd8e431d860376a6faabdfd91", "sha256": "2592899c5d212a81c5ad7a69d0d1162c722eebd4cab51a414e8d8a92a539bd5f" }, "downloads": -1, "filename": "django-permanent-1.0.5.tar.gz", "has_sig": false, "md5_digest": "0e16c7bcd8e431d860376a6faabdfd91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7456, "upload_time": "2015-03-23T09:26:18", "url": "https://files.pythonhosted.org/packages/2f/bc/c6a97fdc183dae7fde9ad5b36200d3aad156b5ae3af608d716ec9331a6ec/django-permanent-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "b36a50f7054828fd91f7926c56e7d72f", "sha256": "6a3e14b7f7e06f83913e19be258dd5a4b5ecc75740f4934b64e2103acc63b60a" }, "downloads": -1, "filename": "django-permanent-1.0.6.tar.gz", "has_sig": false, "md5_digest": "b36a50f7054828fd91f7926c56e7d72f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7515, "upload_time": "2015-03-24T06:35:32", "url": "https://files.pythonhosted.org/packages/e6/dc/bdf47911b7974c45c58f889a09fa693a4404275ba4c375a491a581642ec1/django-permanent-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "8991dee7eeb38db435a80e82aa1767e5", "sha256": "5fe5ae2e20e405679038c74f7f148903312941c1ebf3487119a81a636e64ed18" }, "downloads": -1, "filename": "django-permanent-1.0.7.tar.gz", "has_sig": false, "md5_digest": "8991dee7eeb38db435a80e82aa1767e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7595, "upload_time": "2015-03-24T07:38:19", "url": "https://files.pythonhosted.org/packages/f7/46/e32aab6210cc0756f3ca1f69823e0c1d7238110e8185d3e7e569c08dc266/django-permanent-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "624c0cec9f04ce95d59c08531e35c9e7", "sha256": "bcc9f7945ae009d05bb8a7f3b83baf856b76b980479337246442d0a214c0ea55" }, "downloads": -1, "filename": "django-permanent-1.0.8.tar.gz", "has_sig": false, "md5_digest": "624c0cec9f04ce95d59c08531e35c9e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8141, "upload_time": "2015-03-27T11:09:15", "url": "https://files.pythonhosted.org/packages/9b/6a/28c8541f368bac8882e4a7de8125859094b5f407813ed52ef2dd96b6e62f/django-permanent-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "7dd1ca07afc6b20c65965ce742e260c3", "sha256": "8480c444742867e9647b0910439f04d1095474fd3f40e08f166741f7c5a4945e" }, "downloads": -1, "filename": "django-permanent-1.0.9.tar.gz", "has_sig": false, "md5_digest": "7dd1ca07afc6b20c65965ce742e260c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8315, "upload_time": "2015-04-02T14:23:17", "url": "https://files.pythonhosted.org/packages/76/01/379ede32f3840e0e61320dc8308d3037dd55849c3b62b522d5f2b67c3019/django-permanent-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "54766c9b67e923b224c81451c0681ccf", "sha256": "2069551b3fa774b2bb762eb75e31390acf51089ff78d4894471ef7bf00256925" }, "downloads": -1, "filename": "django-permanent-1.1.0.tar.gz", "has_sig": false, "md5_digest": "54766c9b67e923b224c81451c0681ccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8565, "upload_time": "2016-03-22T10:59:13", "url": "https://files.pythonhosted.org/packages/87/e7/30d993d9c0d4aa9604af90566c92c162f2f5106af12915d84142e58f5bb4/django-permanent-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "25fbd07571980b4af07cf4317d24b73b", "sha256": "14e374ca88602dbfbf5d338720ba8732db887026673c853073d03ffeda17a698" }, "downloads": -1, "filename": "django-permanent-1.1.1.tar.gz", "has_sig": false, "md5_digest": "25fbd07571980b4af07cf4317d24b73b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8617, "upload_time": "2016-03-22T13:20:51", "url": "https://files.pythonhosted.org/packages/56/c4/03199be55c6dac307be9c4b1ef2799e00a8fe346e239b3d5200147a80f63/django-permanent-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "11e822add2183600946dbf3d66978997", "sha256": "7fd347ab160637f5ce01e33f08f5a644914dadd9bd319e807d044a21b063e0e8" }, "downloads": -1, "filename": "django-permanent-1.1.2.tar.gz", "has_sig": false, "md5_digest": "11e822add2183600946dbf3d66978997", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8641, "upload_time": "2016-03-30T07:41:29", "url": "https://files.pythonhosted.org/packages/99/b5/54e5a9329b277fe04c62e8decc56b8f048c52977552eaf3c5d76fc5616bb/django-permanent-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "dbb00cd7167f1d4df2b229275f80910d", "sha256": "94e0acc6f583244996daa465e5d675cab60a2b77f03b468592e726d2aa8a4364" }, "downloads": -1, "filename": "django-permanent-1.1.3.tar.gz", "has_sig": false, "md5_digest": "dbb00cd7167f1d4df2b229275f80910d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8804, "upload_time": "2016-09-07T10:38:47", "url": "https://files.pythonhosted.org/packages/0f/fd/a6a8e8bf5111e3f34f19120a9eaef5243b94d232163a16ef60444a4bedae/django-permanent-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "b76359857791af54a553d092561506d6", "sha256": "b828f1a1a867637d29c643edfdb8911daa29f02822b1f53309ec99cf9b91b474" }, "downloads": -1, "filename": "django-permanent-1.1.4.tar.gz", "has_sig": false, "md5_digest": "b76359857791af54a553d092561506d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8819, "upload_time": "2016-09-15T10:47:01", "url": "https://files.pythonhosted.org/packages/cb/56/c4559f5faa57033bbf85ac45922ff21db62241745f99f0e9785ca493a50e/django-permanent-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "2f2bf9d8a0c6be93ca215b8f0ca037e6", "sha256": "d76395ac88ea3ce2060162abb0fffcb061ae4a21d20969df7a9b2fe11a359cad" }, "downloads": -1, "filename": "django-permanent-1.1.5.tar.gz", "has_sig": false, "md5_digest": "2f2bf9d8a0c6be93ca215b8f0ca037e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8857, "upload_time": "2017-03-02T13:19:25", "url": "https://files.pythonhosted.org/packages/5b/ce/4b5be5c63e77b43ada7d811211dba211e46b501698b0bbd43c34a8329d91/django-permanent-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "eaddd3fdb4e2d01a59772c33d5497b99", "sha256": "c613b99755f4dbeed5615be2bb15ae0fdf80860338ae9ac83e96f8e834ffc355" }, "downloads": -1, "filename": "django-permanent-1.1.6.tar.gz", "has_sig": false, "md5_digest": "eaddd3fdb4e2d01a59772c33d5497b99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9027, "upload_time": "2017-05-04T13:22:57", "url": "https://files.pythonhosted.org/packages/1a/57/13f7ec04c05f0f32441af7ac9d96b014e7c1d094fbd6307d2614e6462ca7/django-permanent-1.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eaddd3fdb4e2d01a59772c33d5497b99", "sha256": "c613b99755f4dbeed5615be2bb15ae0fdf80860338ae9ac83e96f8e834ffc355" }, "downloads": -1, "filename": "django-permanent-1.1.6.tar.gz", "has_sig": false, "md5_digest": "eaddd3fdb4e2d01a59772c33d5497b99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9027, "upload_time": "2017-05-04T13:22:57", "url": "https://files.pythonhosted.org/packages/1a/57/13f7ec04c05f0f32441af7ac9d96b014e7c1d094fbd6307d2614e6462ca7/django-permanent-1.1.6.tar.gz" } ] }