{ "info": { "author": "Ddumba Kenneth", "author_email": "kjdumba@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "[![Build Status](https://travis-ci.org/kenneth051/drf-history.svg?branch=develop)](https://travis-ci.org/kenneth051/drf-history) [![Coverage Status](https://coveralls.io/repos/github/kenneth051/django-track-actions/badge.svg?branch=develop)](https://coveralls.io/github/kenneth051/django-track-actions?branch=develop) [![Maintainability](https://api.codeclimate.com/v1/badges/fc8a5a15c480d2ad117d/maintainability)](https://codeclimate.com/github/kenneth051/django-track-actions/maintainability) [![Downloads](https://pepy.tech/badge/drf-history)](https://pepy.tech/project/drf-history) [![Downloads](https://pepy.tech/badge/drf-history/month)](https://pepy.tech/project/drf-history/month) [![Downloads](https://pepy.tech/badge/drf-history/week)](https://pepy.tech/project/drf-history/week) [![PyPI version](https://badge.fury.io/py/drf-history.svg)](https://badge.fury.io/py/drf-history)\n\n\n**DRF-HISTORY**\n---------------------------------\n\n\ndrf-history is a simple django rest framework app to track actions performed in a django app and to also gets the current request.\nThe actions being tracked are **POST**, **DELETE**, **PUT** and **PATCH**\n\nData being captured is \n-----------------------\n| Data | Description|\n| --- | --- |\n| user | The current loggedin user making the request|\n| request data(body) | Data being sent (POST, PATCH and PUT)|\n| response data | response data after the request is complete |\n| table_name | name of the model the request is affecting |\n| instance_id | The id of the created, updated or deleted model instance |\n| method | The request method i.e POST, DELETE, PUT or PATCH |\n| created_at | Date time object for when the request is being carried out |\n| path | path the request is coming from |\n| | |\n\n\nQuick start\n-------------\n\n1. Add `track_actions` to your INSTALLED_APPS setting\n\n INSTALLED_APPS = [\n ...,\n 'track_actions',\n ]\n\n\n2. Add `track_actions.requestMiddleware.RequestMiddleware` in settings under middlewares\n\n MIDDLEWARE = [\n ... ,\n 'track_actions.requestMiddleware.RequestMiddleware',\n ]\n\n\n3. Run `python manage.py migrate track_actions` to create the History model.\n\n `python manage.py migrate track_actions`\n \n\nAfter this every POST, UPDATE and DELETE action will be recorded in your database under the history model.\n\n**To prevent sensitive fields from being saved**\n\nFor example `passwords`.\n\nYou will have to create a yaml file called `drf_history.yaml` on the root of your django project.\nIn this file add the following. \n\n`fields_to_exclude: [\"password\",\"another key here\"]`\n\nYou can then add all sensitve fields in the list separated by commas. These fields will be removed from the saved request data. This will apply to all tables.\n\nThis is only for data sent in the request. \n\n\n**To get the current request**\n\nTo get the current request in progress anywhere in the application.\n\n1. Import the relevant class.\n\n from track_actions.requestMiddleware import RequestMiddleware\n\n\n2 Get the current request object.\n \n current_request = RequestMiddleware.get_request_data()[1]\n\n\n**To access the get history endpoint**\n\n1. In your project's url file\n\n\n `import track_actions` \n\n2. Register the url in the urlpattern \n\n `path('track_actions/', include('track_actions.urls'))`\n\n3. visit the url in the browser or on postman\n\n `http://127.0.0.1:8000/track_actions/history/`\n \nyou should be able to see all the recorded history if you have `admin` priveleges and you are authenticated.\n\n\n**Alternatively**\n\nYou can create your own endpoint to view all history from the History model by importing it in your views or serializers.\n\n `from track_actions.models import History`\n\n\n**NOTE**\n\nThis package will only work if you have a user in a request and a user model in your database.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kenneth051/drf-history", "keywords": "djangorestframework drf history django audit tracking", "license": "", "maintainer": "", "maintainer_email": "", "name": "drf-history", "package_url": "https://pypi.org/project/drf-history/", "platform": "", "project_url": "https://pypi.org/project/drf-history/", "project_urls": { "Homepage": "https://github.com/kenneth051/drf-history" }, "release_url": "https://pypi.org/project/drf-history/1.0.1/", "requires_dist": [ "pyyaml" ], "requires_python": "", "summary": "A simple Django app to track create,update and delete actions.", "version": "1.0.1", "yanked": false, "yanked_reason": null }, "last_serial": 10756695, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0085e64c628c3caa242c14d496230a15", "sha256": "91e53c404e185371b9371515ecc3f378fa167b44f5130be1acf5eca8dddb9e19" }, "downloads": -1, "filename": "drf_history-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0085e64c628c3caa242c14d496230a15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7978, "upload_time": "2019-10-28T13:13:01", "upload_time_iso_8601": "2019-10-28T13:13:01.298613Z", "url": "https://files.pythonhosted.org/packages/fc/08/4cf38718373bf364f58449e8c6d96972feabc43679b3aa6dba0f3fff858d/drf_history-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "de9cff1bfa1fcf1c6be0625d333cd250", "sha256": "0216e0248df024b2d6770c51b140def12184ff2967a8ece82d99fce510e94025" }, "downloads": -1, "filename": "drf-history-0.0.1.tar.gz", "has_sig": false, "md5_digest": "de9cff1bfa1fcf1c6be0625d333cd250", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5580, "upload_time": "2019-10-28T13:13:04", "upload_time_iso_8601": "2019-10-28T13:13:04.758779Z", "url": "https://files.pythonhosted.org/packages/08/bb/9b285a8fdc1a0f03a81a5b6e986295e7b9a817288dea20528b22778d23c6/drf-history-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "db7364a0aa6d963be70b0d0a79cdeda3", "sha256": "295af8a3b6afdb8a9528782751008cee54e3fccf34161137515f7e254d44b5bc" }, "downloads": -1, "filename": "drf_history-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "db7364a0aa6d963be70b0d0a79cdeda3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7975, "upload_time": "2019-10-28T13:29:01", "upload_time_iso_8601": "2019-10-28T13:29:01.266940Z", "url": "https://files.pythonhosted.org/packages/8b/79/9374a61d45863dc6e11cb862a0f3244a6dc7cbc54206bdc797a42b9b33d6/drf_history-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "75c3d7b7cec89dc07734f62bf17c29ee", "sha256": "d4bbdf6e5919cbe19eaa5c30ddc787f7d2250747f5cbd03e303031df95977784" }, "downloads": -1, "filename": "drf-history-0.0.2.tar.gz", "has_sig": false, "md5_digest": "75c3d7b7cec89dc07734f62bf17c29ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5577, "upload_time": "2019-10-28T13:29:02", "upload_time_iso_8601": "2019-10-28T13:29:02.711467Z", "url": "https://files.pythonhosted.org/packages/3b/0b/52bab174a417b860cfcec03086459abd7f0542dd90898d81b0dd5894c2f7/drf-history-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "e34a577e482cd5ce113726a0d34c9e52", "sha256": "d70b0a89f44c887a64254364acd8d19a7df964f6f8a5b9b3d377b829f25bf9e0" }, "downloads": -1, "filename": "drf_history-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e34a577e482cd5ce113726a0d34c9e52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7991, "upload_time": "2019-10-28T14:19:54", "upload_time_iso_8601": "2019-10-28T14:19:54.885133Z", "url": "https://files.pythonhosted.org/packages/fe/b5/2ceeef9ee884952a83226a37e5e75c8b006918b2f0a30c9128978fda8645/drf_history-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "167315f04f39e04fbedd8eec4a2a9f30", "sha256": "ea94abf098189fb94706cf492ccba7e2fef22ddba355aab110255e74a070bccc" }, "downloads": -1, "filename": "drf-history-0.0.3.tar.gz", "has_sig": false, "md5_digest": "167315f04f39e04fbedd8eec4a2a9f30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5593, "upload_time": "2019-10-28T14:19:56", "upload_time_iso_8601": "2019-10-28T14:19:56.314457Z", "url": "https://files.pythonhosted.org/packages/34/e9/4acf3c44de263f1e4ede1d8159800a0c0f12ae6f3e66b9af6b33d7e524ef/drf-history-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "5b07823349f4dc698d8fd6393c694926", "sha256": "fa749e5d31f595d77dbea4662dbb313274f97ce3ddca4ef815058bf6830abf35" }, "downloads": -1, "filename": "drf_history-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5b07823349f4dc698d8fd6393c694926", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7958, "upload_time": "2019-10-29T08:12:21", "upload_time_iso_8601": "2019-10-29T08:12:21.062780Z", "url": "https://files.pythonhosted.org/packages/a4/54/47e200b75336ce1f9eafa4f4c501e879f907cf648d02166ad48c2824d7ff/drf_history-0.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ee7385e889a0264f428d0d15fa7aa1d3", "sha256": "dc9a261162d14463920fe30640095046da1e9a2240f7fef962823c1c10965f7b" }, "downloads": -1, "filename": "drf-history-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ee7385e889a0264f428d0d15fa7aa1d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5570, "upload_time": "2019-10-29T08:12:22", "upload_time_iso_8601": "2019-10-29T08:12:22.440544Z", "url": "https://files.pythonhosted.org/packages/f2/fe/9af8531fa8c1b694339bb7aa9b073fe9006539910b7d42d6219558b3ed7e/drf-history-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "bc4bac76788a44ca1a5dd5540b96937e", "sha256": "d36b135a24e9161fb999899978d29fe76b00a1873133f01bd9ca7ba5a35689ee" }, "downloads": -1, "filename": "drf_history-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "bc4bac76788a44ca1a5dd5540b96937e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7988, "upload_time": "2019-12-20T10:33:53", "upload_time_iso_8601": "2019-12-20T10:33:53.529335Z", "url": "https://files.pythonhosted.org/packages/ff/83/6e97c94fb61981de03e987d2db2ad65f3a300323741e2520150329f6b53c/drf_history-0.0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "826677e6e8da9b23820a3e85d343ecc4", "sha256": "b46211f0a9c6ab580fec24da997bfc3a596cd1df225cc65dfd28efa95dafa8d3" }, "downloads": -1, "filename": "drf-history-0.0.5.tar.gz", "has_sig": false, "md5_digest": "826677e6e8da9b23820a3e85d343ecc4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5604, "upload_time": "2019-12-20T10:33:54", "upload_time_iso_8601": "2019-12-20T10:33:54.924360Z", "url": "https://files.pythonhosted.org/packages/dc/03/178d59a430231c3ca6afa55416db073f0b4daf58992a4278ea5f64701c72/drf-history-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "330a171044516ea4f8c5ccdd07451f5c", "sha256": "25c4d3ff13d0691361d4842edb668a28f0110c0a661b4c85f404a989c508248f" }, "downloads": -1, "filename": "drf_history-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "330a171044516ea4f8c5ccdd07451f5c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8040, "upload_time": "2019-12-21T17:37:05", "upload_time_iso_8601": "2019-12-21T17:37:05.892636Z", "url": "https://files.pythonhosted.org/packages/c6/ea/970e3ce3a69121e9613d2d5e8c32aaacb4d81d40345f1e3a3e3fa4357173/drf_history-0.0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d8c4099a57e004fbab554da2c6237e00", "sha256": "66e9ed62734bcddc7d7406ebc79bd0644d8700b3c3f5a3c9cd64ac76ad786b62" }, "downloads": -1, "filename": "drf-history-0.0.6.tar.gz", "has_sig": false, "md5_digest": "d8c4099a57e004fbab554da2c6237e00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5616, "upload_time": "2019-12-21T17:37:09", "upload_time_iso_8601": "2019-12-21T17:37:09.602747Z", "url": "https://files.pythonhosted.org/packages/8e/65/50eb4992fdf7a5fccd23349aa5de946daa2d85efd549316aeff7456a5779/drf-history-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "034fb3fb396952112e66144f5c988275", "sha256": "ce9276c14aa38b6766d76ebf69903f17e483da517452d888072cbed18c754bc6" }, "downloads": -1, "filename": "drf_history-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "034fb3fb396952112e66144f5c988275", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8674, "upload_time": "2019-12-25T12:29:14", "upload_time_iso_8601": "2019-12-25T12:29:14.325302Z", "url": "https://files.pythonhosted.org/packages/05/e4/14f91f16e6c49664c567104f646fb09a651058dd98bcb315fca91c2f787d/drf_history-0.0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "22620a845810da524a524d282f89a239", "sha256": "990d47790562f3a7fbd77116c7f55117b466b3061531bf92786991e7abfdb3b7" }, "downloads": -1, "filename": "drf-history-0.0.7.tar.gz", "has_sig": false, "md5_digest": "22620a845810da524a524d282f89a239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6423, "upload_time": "2019-12-25T12:29:16", "upload_time_iso_8601": "2019-12-25T12:29:16.588626Z", "url": "https://files.pythonhosted.org/packages/3c/47/d1b2bb13252ceae20d6acb3bfaa262ba549a8e98487c27b5ba57f594809a/drf-history-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "c61e1a60ee10778ea0612927c9594358", "sha256": "229b9503fd80273a0e6ab11e27b01ebda376a1b6d2b092b1db41a205663f7101" }, "downloads": -1, "filename": "drf_history-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c61e1a60ee10778ea0612927c9594358", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8730, "upload_time": "2020-04-24T10:05:35", "upload_time_iso_8601": "2020-04-24T10:05:35.587475Z", "url": "https://files.pythonhosted.org/packages/b7/81/d68df06343812bec9f241c32f8a81b5c6f37c4be257fc8982f43f7e5ea14/drf_history-0.0.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "67b5a0e6c64a455fe6749fefed6ccae8", "sha256": "62c5edfc9bcdeca3398858728d9d9acfc08aeeafc0b889df5ccebf1ed30cad5f" }, "downloads": -1, "filename": "drf-history-0.0.8.tar.gz", "has_sig": false, "md5_digest": "67b5a0e6c64a455fe6749fefed6ccae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6488, "upload_time": "2020-04-24T10:05:37", "upload_time_iso_8601": "2020-04-24T10:05:37.658793Z", "url": "https://files.pythonhosted.org/packages/5a/9d/30a72dc6269f0877dcf05381d552ac2333927ed0c4248c6e04f042333d8a/drf-history-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "27194c00de6916c6add17c53a6ead33c", "sha256": "bff1a9db6cefb34d4f65b7957badb6bbcad45d3556e626d9d66bc86f5dbbf613" }, "downloads": -1, "filename": "drf_history-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "27194c00de6916c6add17c53a6ead33c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8810, "upload_time": "2020-10-04T12:05:57", "upload_time_iso_8601": "2020-10-04T12:05:57.696886Z", "url": "https://files.pythonhosted.org/packages/d8/67/c41d9a70e5058cf9f15d1216aac1c342a42e671e5d44ca198dbcac0100ff/drf_history-0.0.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "63d56a909671d87efdb9437df25da27a", "sha256": "bff9364453a802ae98ad83be99b66a99b2851ffd5be16667891986c77375da9c" }, "downloads": -1, "filename": "drf-history-0.0.9.tar.gz", "has_sig": false, "md5_digest": "63d56a909671d87efdb9437df25da27a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6565, "upload_time": "2020-10-04T12:05:59", "upload_time_iso_8601": "2020-10-04T12:05:59.074527Z", "url": "https://files.pythonhosted.org/packages/46/2e/accd92972278e60d5d77cb86ce47871df0a9fbb408514910bdc8c09a5dbc/drf-history-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "1205626a9406a98bbfd365547721252e", "sha256": "1d9cb34a6a4f39673c2b00b5c1dc1fef004000f67e205ab9d75a94cf0542ea7a" }, "downloads": -1, "filename": "drf_history-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1205626a9406a98bbfd365547721252e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9252, "upload_time": "2021-04-06T23:55:52", "upload_time_iso_8601": "2021-04-06T23:55:52.777995Z", "url": "https://files.pythonhosted.org/packages/f0/b0/ec300e9ccea5e110346a68354aebeb22e19f9a3b76138c9f28d47ca8c156/drf_history-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "af14b6965428374ba3992821b93ec79a", "sha256": "a9051cbf6217b79841b4cbfb308401e19001cbe7e530114cd86639a729c62120" }, "downloads": -1, "filename": "drf-history-1.0.0.tar.gz", "has_sig": false, "md5_digest": "af14b6965428374ba3992821b93ec79a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7150, "upload_time": "2021-04-06T23:55:54", "upload_time_iso_8601": "2021-04-06T23:55:54.668188Z", "url": "https://files.pythonhosted.org/packages/38/38/3796e90f25553e328dba1faaa4334992e6e13a53d284ab885c68c39425f1/drf-history-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "657d72a483df347a186270dc209c8c65", "sha256": "6015167c1facc6fbf4123b7aa7681440cfb24de2e4a7f88f47ca956993b84140" }, "downloads": -1, "filename": "drf_history-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "657d72a483df347a186270dc209c8c65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9291, "upload_time": "2021-06-27T18:08:58", "upload_time_iso_8601": "2021-06-27T18:08:58.435421Z", "url": "https://files.pythonhosted.org/packages/98/fe/2e294c0259190109c77485ac2bd685cdd53a996a5c2d0f34976341a2ceb8/drf_history-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f57e405203bbeddf202dcd2e6b30182e", "sha256": "73d71b3cf3135f25bd3e7964324e41cc94039b1549f7f68fedcdbf5782d13937" }, "downloads": -1, "filename": "drf-history-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f57e405203bbeddf202dcd2e6b30182e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6643, "upload_time": "2021-06-27T18:09:01", "upload_time_iso_8601": "2021-06-27T18:09:01.085963Z", "url": "https://files.pythonhosted.org/packages/cc/76/8d53fa707416f77e7c5b30ade158485a1c2be0205e11118b4e9e9fb89c64/drf-history-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "657d72a483df347a186270dc209c8c65", "sha256": "6015167c1facc6fbf4123b7aa7681440cfb24de2e4a7f88f47ca956993b84140" }, "downloads": -1, "filename": "drf_history-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "657d72a483df347a186270dc209c8c65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9291, "upload_time": "2021-06-27T18:08:58", "upload_time_iso_8601": "2021-06-27T18:08:58.435421Z", "url": "https://files.pythonhosted.org/packages/98/fe/2e294c0259190109c77485ac2bd685cdd53a996a5c2d0f34976341a2ceb8/drf_history-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f57e405203bbeddf202dcd2e6b30182e", "sha256": "73d71b3cf3135f25bd3e7964324e41cc94039b1549f7f68fedcdbf5782d13937" }, "downloads": -1, "filename": "drf-history-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f57e405203bbeddf202dcd2e6b30182e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6643, "upload_time": "2021-06-27T18:09:01", "upload_time_iso_8601": "2021-06-27T18:09:01.085963Z", "url": "https://files.pythonhosted.org/packages/cc/76/8d53fa707416f77e7c5b30ade158485a1c2be0205e11118b4e9e9fb89c64/drf-history-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }