{ "info": { "author": "Canonical Online Services", "author_email": "online-services@lists.canonical.com", "bugtrack_url": null, "classifiers": [], "description": "==========\nacceptable\n==========\n\nAcceptable is python tool to annotate and capture the metadata around your\npython web API. This metadata can be used for validation, documentation,\ntesting and linting of your API code.\n\nIt works standalone, or can be hooked into Flask (beta support for Django) web\napps for richer integration.\n\n\nDesign Goals:\n-------------\n\n- Tightly couple code, metadata, and documentation to reduce drift and increase DRY.\n\n- Validation of JSON input and output\n\n- Provide tools for developers to make safe changes to APIs\n\n- Make it easy to generate API documentation.\n\n- Tools for generating testing doubles from the API metadata.\n\n\nUsage\n-----\n\nAnd example, for flask::\n\n from acceptable import AcceptableService\n\n service = AcceptableService('example')\n\n foo_api = service.api('foo', '/foo', introduced_at=1, methods=['POST'])\n foo_api.request_schema = \n foo_api.response_schema = \n foo_api.changelog(3, 'Changed other thing')\n foo_api.changelog(2, 'Changed something')\n\n @foo_api\n def view():\n ...\n\nYou can use this metadata to bind the URL to a flask app::\n\n from acceptable import get_metadata()\n app = Flask(__name__)\n get_metadata().bind_all(app)\n\nYou can now generate API metadata like so::\n\n acceptable metadata your.import.path > api.json\n\nThis metadata can now be used to generate documentation, and provide API linting.\n\n\nDjango\n------\n\nNote: Django support is very limited at the minute, and is mainly for documentation.\n\nMarking up the APIs themselves is a little different::\n\n from acceptable import AcceptableService\n\n service = AcceptableService('example')\n\n # url is looked up from name, like reverse()\n foo_api = service.django_api('app:foo', introduced_at=1)\n foo_api.django_form = SomeForm\n foo_api.changelog(3, 'Changed other thing)\n foo_api.changelog(2, 'Changed something')\n\n @foo_api.handler\n class MyHandler(BaseHandler):\n allowed_methods=['POST']\n ...\n\nAcceptable will generate a JSON schema representation of the form for documentation.\n\nTo generate API metadata, you should add 'acceptable' to INSTALLED_APPS. This\nwill provide an 'acceptable' management command::\n\n\n ./manage.py acceptable metadata > api.json # generate metadata\n\nAnd also::\n\n ./manage.py acceptable api-version api.json # inspect the current version\n\n\n\nDocumentation (beta)\n--------------------\n\nOne of the goals of acceptable is to use the metadata about your API to build documentation.\n\nOnce you have your metadata in JSON format, as above, you can transform that into markdown documentation::\n\n acceptable render api.json --name 'My Service'\n\nYou can do this in a single step::\n\n acceptable metadata path/to/files*.py | acceptable render --name 'My Service'\n\nThis markdown is designed to rendered to html by\n`documentation-builder `::\n\n documentation-builder --base-directory docs\n\nIncludable Makefile\n-------------------\n\n*If you are using make files to automate your build you might find this useful.*\n\nThe acceptable package contains a make file fragment that can be included to\ngive you the following targets:\n\n- ``api-lint`` - Checks backward compatibility and version numbers;\n- ``api-update-metadata`` - Check like ``api-lint`` then update the saved metadata;\n- ``api-version`` - Print the saved metadata and current API version;\n- ``api-docs-markdown`` - Generates markdown documentation.\n\nThe make file has variables for the following which you can override if\nneeded:\n\n- ``ACCEPTABLE_ENV`` - The virtual environment with acceptable installed, it defaults to ``$(ENV)``.\n- ``ACCEPTABLE_METADATA`` - The saved metadata filename, it defaults to ``api.json``;\n- ``ACCEPTABLE_DOCS`` - The directory ``api-docs-markdown`` will generate documentation under, it defaults to ``docs``.\n\nYou will need to create a saved metadata manually the first time using\n``acceptable metadata`` command and saving it to the value of ``ACCEPTABLE_METADATA``.\n\nThe make file assumes the following variables:\n\n- ``ACCEPTABLE_MODULES`` is a space separated list of modules containing acceptable annotated services;\n- ``ACCEPTABLE_SERVICE_TITLE`` is the title of the service used by ``api-docs-markdown``.\n\n``ACCEPTABLE_SERVICE_TITLE`` should not be quoted e.g.::\n\n ACCEPTABLE_SERVICE_TITLE := Title of the Service\n\nTo include the file you'll need to get its path, if the above variables and\nconditions exist you can put this in your make file::\n\n include $(shell $(ENV)/bin/python -c 'import pkg_resources; print(pkg_resources.resource_filename(\"acceptable\", \"make/Makefile.acceptable\"))' 2> /dev/null)\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/canonical-ols/acceptable", "keywords": "", "license": "LGPLv3", "maintainer": "", "maintainer_email": "", "name": "acceptable", "package_url": "https://pypi.org/project/acceptable/", "platform": "", "project_url": "https://pypi.org/project/acceptable/", "project_urls": { "Homepage": "https://github.com/canonical-ols/acceptable" }, "release_url": "https://pypi.org/project/acceptable/0.27/", "requires_dist": [ "future", "jinja2", "jsonschema", "pyyaml", "django (<2.1,>=1.11) ; extra == 'django'", "Flask (<1.0) ; extra == 'flask'" ], "requires_python": "", "summary": "API version negotiation for flask-based web services.", "version": "0.27" }, "last_serial": 5821303, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7b4b46a890501ef2cfcc06c6769a7a8c", "sha256": "cb8df69031beed3fb2845f073d681dca80d019eaa424643494e63dfa0b9c2f20" }, "downloads": -1, "filename": "acceptable-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7b4b46a890501ef2cfcc06c6769a7a8c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1839, "upload_time": "2017-01-26T05:37:27", "url": "https://files.pythonhosted.org/packages/c1/a0/24189024d0e3f08e50d1ef38c4142fc1a6c0248896dbc0cebf3e8a11da36/acceptable-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc6f4e2ad01bfe5d77b03fd2879017b6", "sha256": "136b977aadd667a5d1c3cd769d2eb0219f4ee022898f339eb929aeafc614a0df" }, "downloads": -1, "filename": "acceptable-0.1.tar.gz", "has_sig": false, "md5_digest": "cc6f4e2ad01bfe5d77b03fd2879017b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1121, "upload_time": "2017-01-26T05:37:28", "url": "https://files.pythonhosted.org/packages/d9/2a/b3dbf41e0ef5dfd1511cc1a081e45a11ea395edba04cbc0d624f7bfa849f/acceptable-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "d798399ae396fde508a319f9465cbd16", "sha256": "ff00cca469a1b4424ad36e9cdbdf89c00a9538f9a833950757371d212a794679" }, "downloads": -1, "filename": "acceptable-0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "d798399ae396fde508a319f9465cbd16", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13474, "upload_time": "2017-11-09T18:53:27", "url": "https://files.pythonhosted.org/packages/96/e6/5957148400c72b2d2b002834bf3ffed025ec1b488b40375687d260fb51f5/acceptable-0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5621ac14b3c57a95645551abf93fd06", "sha256": "2d89b0c8f82acdebafe85ea8b764d82cc0eab3bef27cd1a0a0773692f197da54" }, "downloads": -1, "filename": "acceptable-0.10.tar.gz", "has_sig": false, "md5_digest": "d5621ac14b3c57a95645551abf93fd06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11025, "upload_time": "2017-11-09T18:53:29", "url": "https://files.pythonhosted.org/packages/4a/16/c4a9123ee1cb0a15a572247234cae6de662c660e5566a197c152a6ca8c78/acceptable-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "fe658f1c949d7c1a5ea71706f124772f", "sha256": "1e01e4be4af3fc4d48f3e348ba4a6fe80acfd594af0c9bf752aeee0447a56db0" }, "downloads": -1, "filename": "acceptable-0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "fe658f1c949d7c1a5ea71706f124772f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13494, "upload_time": "2018-03-13T10:59:31", "url": "https://files.pythonhosted.org/packages/29/67/b97da04211ab6f05114200d3dfa6781243b74775ce23679ca77433bdfaea/acceptable-0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd9a7b797d184ce4049412e760759e42", "sha256": "9e87d49eb429b3a311a84ac2d36520ec0df40e6b61de09a548efc92bcc0d93de" }, "downloads": -1, "filename": "acceptable-0.11.tar.gz", "has_sig": false, "md5_digest": "bd9a7b797d184ce4049412e760759e42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11274, "upload_time": "2018-03-13T10:59:33", "url": "https://files.pythonhosted.org/packages/8c/34/9ce62d90cace7f89dbf9f2482490bc00d0b648976565660d1d104365c948/acceptable-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "08cb95c13e544fa590c802446cb3a21e", "sha256": "90cb768fc4d3d3ff7fb7bcb1d250ce6b87557c20772d3bf3c16f7de9c7ff7d5e" }, "downloads": -1, "filename": "acceptable-0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "08cb95c13e544fa590c802446cb3a21e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18725, "upload_time": "2018-05-21T14:37:00", "url": "https://files.pythonhosted.org/packages/e8/57/ba0822b6cb4a856030a225a9c007c17bed83d5e44a9f72ece4c9b1cf963f/acceptable-0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c54228255127d3e0deb56f0eaa9eee85", "sha256": "0c6c5c599aa190dcb52cca821a8fc329f2152628897ef1e79f35d7b65dfc2bcb" }, "downloads": -1, "filename": "acceptable-0.12.tar.gz", "has_sig": false, "md5_digest": "c54228255127d3e0deb56f0eaa9eee85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14451, "upload_time": "2018-05-21T14:37:01", "url": "https://files.pythonhosted.org/packages/3f/75/b94a96df05eb6addbdf1a2085ecac25657e179af365368a4741ac4a773f7/acceptable-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "bccb63c7dc3747de160ed81af27b3298", "sha256": "a8f11c74f1dc6c986f34985ef5abc0d7be7a3aa78720e0e7ce2ec9fbb721bec1" }, "downloads": -1, "filename": "acceptable-0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "bccb63c7dc3747de160ed81af27b3298", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19537, "upload_time": "2018-05-23T16:33:16", "url": "https://files.pythonhosted.org/packages/7d/fb/bb0de857594defac2d41ecf17593a89909c6f80760eb73522ec0d88012d3/acceptable-0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc237960f42fc27059502647413f4cd5", "sha256": "fce9912929e0026c0cfdae55354033b5f446aaa243ced1cce38b11e422a63035" }, "downloads": -1, "filename": "acceptable-0.13.tar.gz", "has_sig": false, "md5_digest": "dc237960f42fc27059502647413f4cd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15444, "upload_time": "2018-05-23T16:33:17", "url": "https://files.pythonhosted.org/packages/e4/2f/631e9389af1dd54457be59da15cbe403e6762c309d44541b6c34d5f88036/acceptable-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "e3ef70a50a7d676ad9805d45c2ad0d74", "sha256": "6be42005815930b2ced46dfa5d9405a469092b70e2d56483039ade8159b21e3b" }, "downloads": -1, "filename": "acceptable-0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "e3ef70a50a7d676ad9805d45c2ad0d74", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19570, "upload_time": "2018-06-18T10:19:11", "url": "https://files.pythonhosted.org/packages/32/d3/439645171177e2f367c206d1c7f42f3268ba1a9e3504333a12dc0e59f3bc/acceptable-0.14-py3-none-any.whl" } ], "0.15": [ { "comment_text": "", "digests": { "md5": "09de6966bfc6c691fee6365988688467", "sha256": "cdb787f0bec24683e99a3b789996d6667e94f255f5328e7441b698258c6e6445" }, "downloads": -1, "filename": "acceptable-0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "09de6966bfc6c691fee6365988688467", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19941, "upload_time": "2018-07-02T11:36:31", "url": "https://files.pythonhosted.org/packages/f5/b9/38b0abde4a6465590363a820b19e7476357c5efb89467968678b46edecc2/acceptable-0.15-py3-none-any.whl" } ], "0.16": [ { "comment_text": "", "digests": { "md5": "d32b0f4fbd6fa895cf6b4ea1238d6db1", "sha256": "1f8cd5afb78f40f522fc44afcc8ecfe0b756833d6ba71bffad7b318af67c073f" }, "downloads": -1, "filename": "acceptable-0.16-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d32b0f4fbd6fa895cf6b4ea1238d6db1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22663, "upload_time": "2018-07-23T10:14:00", "url": "https://files.pythonhosted.org/packages/5f/d6/9159a5d5aa05fbba2cd2ace7dc052a19fcc1a7b099d05565baee35a498f4/acceptable-0.16-py2.py3-none-any.whl" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "8f0de6a5540560da7a02b773967f21a0", "sha256": "8c6c7da75f8eec597f52a514f51f7de36d907632f340b0e9a950ecf234fc85fb" }, "downloads": -1, "filename": "acceptable-0.18-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f0de6a5540560da7a02b773967f21a0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24478, "upload_time": "2018-08-21T13:29:34", "url": "https://files.pythonhosted.org/packages/d5/5f/36ae3a90b9329582a1fec28fd3d9cd5b0cacbb7da1678e000d4667bc06f2/acceptable-0.18-py2.py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5fb59f28534a9770b48ca63281e35050", "sha256": "36d75cb283c6087d60a6f1169aa47acce6823b7ddfe5763a986016e0e765dcd1" }, "downloads": -1, "filename": "acceptable-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5fb59f28534a9770b48ca63281e35050", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4600, "upload_time": "2017-01-26T20:41:28", "url": "https://files.pythonhosted.org/packages/56/b1/9779a2a725b8bb19ace8a2e645965dc456cfef8e67f4ab3b4f5031e650f9/acceptable-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2932f637ccd0625b57098838044c35ea", "sha256": "a1b7a48f31b4269a0bb053d20b05ed98bbd59db4512c8ec0c0e21c9d85ad51d2" }, "downloads": -1, "filename": "acceptable-0.2.tar.gz", "has_sig": false, "md5_digest": "2932f637ccd0625b57098838044c35ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3551, "upload_time": "2017-01-26T20:41:31", "url": "https://files.pythonhosted.org/packages/96/c2/1bd7104a7e5107e2426d53c173a0b24ef2b6cf6e04b3741c899a512a0a84/acceptable-0.2.tar.gz" } ], "0.20": [ { "comment_text": "", "digests": { "md5": "f03424f21e7034167e82e2b4d8058a1a", "sha256": "8feb1fe1372bd4932d9b336b222c3ab4e5b56932491bc2980eb09dc7cd0c9f7d" }, "downloads": -1, "filename": "acceptable-0.20-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f03424f21e7034167e82e2b4d8058a1a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29560, "upload_time": "2018-10-03T13:41:10", "url": "https://files.pythonhosted.org/packages/3e/f1/5ad3b1489b54ed84cf2848e48bf0181f173c4376bb6728b34d2dbaef6a08/acceptable-0.20-py2.py3-none-any.whl" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "3c99dd0dc484123245fc7f02764d6f8b", "sha256": "31481f68be8ad6fe19a4f056ec157d135be703ac6c3f841d920e0048817c9ee8" }, "downloads": -1, "filename": "acceptable-0.21.tar.gz", "has_sig": false, "md5_digest": "3c99dd0dc484123245fc7f02764d6f8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21446, "upload_time": "2019-02-18T16:39:00", "url": "https://files.pythonhosted.org/packages/e5/5a/c1a2b6d71b1525f681054044eeb0828a1ae0f39549fd0ab5595306c096e7/acceptable-0.21.tar.gz" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "47cdfc567f4e8e34c635c6cf0d61d370", "sha256": "1c8d24de47ed366d5f406c5108dc8804cd8d590d4e75fec8be1c88e4178fa374" }, "downloads": -1, "filename": "acceptable-0.22-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "47cdfc567f4e8e34c635c6cf0d61d370", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29564, "upload_time": "2019-03-20T16:37:08", "url": "https://files.pythonhosted.org/packages/de/c6/2b3747596cca06784f6c84b5aed2fbf95dd9bb3373af4fa5d96fc54ba844/acceptable-0.22-py2.py3-none-any.whl" } ], "0.23": [ { "comment_text": "", "digests": { "md5": "e7a7f11986e7b6c8e9bf3f890f201272", "sha256": "0d063187753da4015d991d5d04d702e8b9bfb0de50a32d8a05d8c1359242b77d" }, "downloads": -1, "filename": "acceptable-0.23-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7a7f11986e7b6c8e9bf3f890f201272", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29664, "upload_time": "2019-03-20T16:42:49", "url": "https://files.pythonhosted.org/packages/2f/9f/fe93edd49d92d5b2925b4b529330727816d23061bc1e2a00b4830353902d/acceptable-0.23-py2.py3-none-any.whl" } ], "0.25": [ { "comment_text": "", "digests": { "md5": "0a999d2af278b8c468d30b9d464331fc", "sha256": "759f656c10d1b4dfdb5b45b1b6225fa81a197d119bb1948e8d940d1ab1af7633" }, "downloads": -1, "filename": "acceptable-0.25-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0a999d2af278b8c468d30b9d464331fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36473, "upload_time": "2019-08-19T13:44:07", "url": "https://files.pythonhosted.org/packages/45/a3/2e45038bf4b299b64f0ad2653e114f0259cb199a690d21e4d830b6149b44/acceptable-0.25-py2.py3-none-any.whl" } ], "0.26": [ { "comment_text": "", "digests": { "md5": "1e38f13c2837bdffd455bea5f129ae69", "sha256": "5c6b18525dad6e42ae2e53b56243c34d10a2cc061bbe690ccbc3fa7337970814" }, "downloads": -1, "filename": "acceptable-0.26-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1e38f13c2837bdffd455bea5f129ae69", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37523, "upload_time": "2019-09-11T16:47:46", "url": "https://files.pythonhosted.org/packages/9f/d7/663069a89e1933f5d7ad2006a8a8855feda4edec088919909b356714ec31/acceptable-0.26-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daa7791234ae36dad2179e645c30220c", "sha256": "184325924ecbc6012fd5eca566d5fc9540836d066d90c2a0c25c4632f471757e" }, "downloads": -1, "filename": "acceptable-0.26.tar.gz", "has_sig": false, "md5_digest": "daa7791234ae36dad2179e645c30220c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28805, "upload_time": "2019-09-11T16:47:48", "url": "https://files.pythonhosted.org/packages/43/6c/4a34388860aca34b8c14717c3c1f9b5375aee8293a035fd1d43dabc9f6fd/acceptable-0.26.tar.gz" } ], "0.27": [ { "comment_text": "", "digests": { "md5": "b200775dcdb139fd0c40ae6a07513ad0", "sha256": "f2735cc318618d2246beeb8511ac8d7198ad13c5a15f7e62b4e8f3abb81783b6" }, "downloads": -1, "filename": "acceptable-0.27-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b200775dcdb139fd0c40ae6a07513ad0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37590, "upload_time": "2019-09-12T16:06:15", "url": "https://files.pythonhosted.org/packages/4a/f9/b6779e2b33f0550064e9537623e99f03d429e2157c96d4bc53ebe2eabcdc/acceptable-0.27-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "740955ca46298a35a3d62ed873832292", "sha256": "9e85055edc17c7ef15f3ae6108b1afbeec735b57b53c7f4acb468841327c4b03" }, "downloads": -1, "filename": "acceptable-0.27.tar.gz", "has_sig": false, "md5_digest": "740955ca46298a35a3d62ed873832292", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28975, "upload_time": "2019-09-12T16:06:17", "url": "https://files.pythonhosted.org/packages/7f/6e/ef020e7e3cac0f5a244e01ad086f73fd090da450c3cc559da59858b9e950/acceptable-0.27.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "49500a7115e9c6c6b92657c95d77b2ef", "sha256": "03d2115afa43d586a1490bcb9f0b333e9cfd4ef78a4c77037668ef8177916fe2" }, "downloads": -1, "filename": "acceptable-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "49500a7115e9c6c6b92657c95d77b2ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8191, "upload_time": "2017-01-27T01:43:27", "url": "https://files.pythonhosted.org/packages/3c/80/9f08be5291b57bcd5accf24d70f5ca9b7596411c83675f4e366e156b931d/acceptable-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b32ba4fa724752976047bd577e8d3638", "sha256": "b522f01b953c8edd62c1022c8ee392e74544266bd2277ac38bbb761187fc2c3c" }, "downloads": -1, "filename": "acceptable-0.3.tar.gz", "has_sig": false, "md5_digest": "b32ba4fa724752976047bd577e8d3638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6507, "upload_time": "2017-01-27T01:43:28", "url": "https://files.pythonhosted.org/packages/89/4a/409b8c1263ce6350a862b9602ca021478e23d0459302a359764ebc126ff6/acceptable-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "70f97e26565b3f56ce520276a7657bd3", "sha256": "4352af2b382db8e792cee51f6a1c4bde2e27446b5e2a287dae1ab3dc5f200bb9" }, "downloads": -1, "filename": "acceptable-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "70f97e26565b3f56ce520276a7657bd3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8342, "upload_time": "2017-03-05T19:54:38", "url": "https://files.pythonhosted.org/packages/4b/71/9f2f1c8a782a005225ead7b56d51f8a9b4d276da02a6797bb3efef6e8422/acceptable-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "541cd983860eefed59ebbbacdac6701e", "sha256": "cdd63af5127df7dbb43f16b9269928566de4305929286b9fe9b8066c1bedfb3d" }, "downloads": -1, "filename": "acceptable-0.4.tar.gz", "has_sig": false, "md5_digest": "541cd983860eefed59ebbbacdac6701e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6653, "upload_time": "2017-03-05T19:54:39", "url": "https://files.pythonhosted.org/packages/18/3c/ea0757882b372e7d687b24f87619418b9419cfe4a52c01dbbe7731fd451d/acceptable-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "7beceeec7a894a6f3383e67adbef5fe2", "sha256": "d91e722ffd1671dcced1d4b5fe29e19c12109cecbc542e222251cc6bf7b4d85b" }, "downloads": -1, "filename": "acceptable-0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7beceeec7a894a6f3383e67adbef5fe2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9362, "upload_time": "2017-04-05T04:09:17", "url": "https://files.pythonhosted.org/packages/54/50/650ad6b70ffc1ed471f03eaaaddf4994af7c84a3f155453838560d79af1a/acceptable-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb0def68e438600d34cd25b3c66970b3", "sha256": "040a5630d3e01d29ab35bfa231098f816db0b5eea86238e6a12d16e1bd831da7" }, "downloads": -1, "filename": "acceptable-0.5.tar.gz", "has_sig": false, "md5_digest": "eb0def68e438600d34cd25b3c66970b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7069, "upload_time": "2017-04-05T04:09:18", "url": "https://files.pythonhosted.org/packages/ce/be/fc752b1054cb3b2971b35da16a6bbd3f7d3bf6783b5cda7963a3122663b2/acceptable-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "b1b0a7dedc433c6d3529bc082d78cf31", "sha256": "0875a50e956d95182c31a7e357b9866928cb5ef7a39b0a600745da32c47034b8" }, "downloads": -1, "filename": "acceptable-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b1b0a7dedc433c6d3529bc082d78cf31", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12927, "upload_time": "2017-04-18T22:55:03", "url": "https://files.pythonhosted.org/packages/73/0e/15e23386dcc8fabc45610d363307bd596cbe8468c1ff6a4364eaf80ead72/acceptable-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd4c9a837aef4f9c457389dfaa08f602", "sha256": "635ef9597108f99750c4ec5fd34a6dacf7936aab7d1e36fa4436e58b78e7a1f2" }, "downloads": -1, "filename": "acceptable-0.6.tar.gz", "has_sig": false, "md5_digest": "dd4c9a837aef4f9c457389dfaa08f602", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9796, "upload_time": "2017-04-18T22:55:05", "url": "https://files.pythonhosted.org/packages/cc/20/f9576ac447affeee4b839846513072bce947418e49f1a067cf5cabdb954e/acceptable-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "b4c43911cbb382b6b34fee4b97546f74", "sha256": "800918db17a1f27578327e342d06f1c880334c1ebed6a6e4d6def68df4321c10" }, "downloads": -1, "filename": "acceptable-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4c43911cbb382b6b34fee4b97546f74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12964, "upload_time": "2017-04-19T22:32:43", "url": "https://files.pythonhosted.org/packages/52/ac/ab8f63caa96d4816a031606d757a7c90f69966c9c621d6f424282b18e1ad/acceptable-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "daf90df9031dec5f3c59448caea9078f", "sha256": "38222cac017d1c957fa8a6c82a11eac12efd3e57dd372a590764b2aa32bca922" }, "downloads": -1, "filename": "acceptable-0.7.tar.gz", "has_sig": false, "md5_digest": "daf90df9031dec5f3c59448caea9078f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9842, "upload_time": "2017-04-19T22:32:44", "url": "https://files.pythonhosted.org/packages/3c/ea/47c41cde5da75d52c6423ffabadd56879b73902c592ada2873fc2ceda257/acceptable-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "8db36d9ce6ae7377207fa1a0b3d20fe7", "sha256": "d844df66cfbf6ef42c3b4a0ec1d6961028cd62bfb62cf895a0f70955879d1688" }, "downloads": -1, "filename": "acceptable-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8db36d9ce6ae7377207fa1a0b3d20fe7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13000, "upload_time": "2017-04-19T23:48:34", "url": "https://files.pythonhosted.org/packages/a2/c9/6e99d92fb5b60355d3b08a7f904acf4eec27e056a6c6213f154000f257fc/acceptable-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50f1d3e961eb58e57e409d954c56afdf", "sha256": "c377558908d8f15af42d5e07f86dd9eed823f801527578af42f9de6181f34064" }, "downloads": -1, "filename": "acceptable-0.7.1.tar.gz", "has_sig": false, "md5_digest": "50f1d3e961eb58e57e409d954c56afdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9854, "upload_time": "2017-04-19T23:48:35", "url": "https://files.pythonhosted.org/packages/f7/b4/0825923d3dda71ab8311bbe38362f3fa3136da92269cd296bc6e46c50f35/acceptable-0.7.1.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "3d63bee2ca6b489545110d7560bb1321", "sha256": "579c70e69061fbbd8767947d0b64ab582c43c6e2618ea49723e84a157b6aa66d" }, "downloads": -1, "filename": "acceptable-0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d63bee2ca6b489545110d7560bb1321", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13081, "upload_time": "2017-04-25T03:26:33", "url": "https://files.pythonhosted.org/packages/6d/f0/be2d8eb22ff8e177c2b49169fd7f0dbd92ef7782acab325ab53498c05edd/acceptable-0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee6aaad563747b0e3fabb74b581905de", "sha256": "44b13913f10594df30d33379ccc3e5f68bdc17d58202f58d1555d9e224266e7b" }, "downloads": -1, "filename": "acceptable-0.8.tar.gz", "has_sig": false, "md5_digest": "ee6aaad563747b0e3fabb74b581905de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9929, "upload_time": "2017-04-25T03:26:35", "url": "https://files.pythonhosted.org/packages/25/98/7eddd1558bb201352fdfcc2fae287bb380eef571fa9694f2327282e8ed7b/acceptable-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "61fbcbc041c27204590effb3b2d4a49a", "sha256": "66fc9640212093b770beeb17d4e807a73f50a76214252c70fe60e72211a61153" }, "downloads": -1, "filename": "acceptable-0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "61fbcbc041c27204590effb3b2d4a49a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13249, "upload_time": "2017-06-27T05:30:04", "url": "https://files.pythonhosted.org/packages/2a/ad/49a1dcaa4f7213f44763a5fb811339af3fa3a25c9ac310ab7b3db8dc87bd/acceptable-0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c977b022959182ee5f68671bd6964165", "sha256": "538a7bab8dc43997aca2532f2ef1991b4ba118a362e85de1c1a36f1db0366893" }, "downloads": -1, "filename": "acceptable-0.9.tar.gz", "has_sig": false, "md5_digest": "c977b022959182ee5f68671bd6964165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10743, "upload_time": "2017-06-27T05:30:06", "url": "https://files.pythonhosted.org/packages/43/1a/3c0cb518f593b01301670b1113a02e434d57df985b96665643215089174d/acceptable-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b200775dcdb139fd0c40ae6a07513ad0", "sha256": "f2735cc318618d2246beeb8511ac8d7198ad13c5a15f7e62b4e8f3abb81783b6" }, "downloads": -1, "filename": "acceptable-0.27-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b200775dcdb139fd0c40ae6a07513ad0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37590, "upload_time": "2019-09-12T16:06:15", "url": "https://files.pythonhosted.org/packages/4a/f9/b6779e2b33f0550064e9537623e99f03d429e2157c96d4bc53ebe2eabcdc/acceptable-0.27-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "740955ca46298a35a3d62ed873832292", "sha256": "9e85055edc17c7ef15f3ae6108b1afbeec735b57b53c7f4acb468841327c4b03" }, "downloads": -1, "filename": "acceptable-0.27.tar.gz", "has_sig": false, "md5_digest": "740955ca46298a35a3d62ed873832292", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28975, "upload_time": "2019-09-12T16:06:17", "url": "https://files.pythonhosted.org/packages/7f/6e/ef020e7e3cac0f5a244e01ad086f73fd090da450c3cc559da59858b9e950/acceptable-0.27.tar.gz" } ] }