{ "info": { "author": "cs91chris", "author_email": "cs91chris@voidbrain.me", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Flask-AutoCRUD\n==============\n\nInspired by: `sandman2 `__\n\nbased on: `sqlalchemy-filters `__\n`Flask-ResponseBuilder `__\n`Flask-ErrorsHandler `__\n\nAutomatically generate a RESTful APIs for CRUD operation and advanced search on a database.\nIf a list of ``Model`` is not provided, all tables are affected, instead you can customize:\n\n- resource name\n- fields name\n- resource url\n- allowed methods\n- hidden fields\n\n\nFeatures\n~~~~~~~~\n\n- HATEOAS support\n- conditional requests via ETag header\n- full range of CRUD operations\n- filtering, sorting and pagination\n- customizable responses via query string\n- custom FETCH method for advanced search\n- JSON and XML response based on Accept header\n- export to csv available\n- meta resource description\n- cli tool to run autocrud on a database\n\nQuickstart\n~~~~~~~~~~\n\nInstall ``flask_autocrud`` using ``pip``:\n\n::\n\n\t$ pip install Flask-AutoCRUD\n\n\n.. _section-1:\n\nExample usage\n^^^^^^^^^^^^^\n\n.. code:: python\n\n from flask import Flask\n\n from flask_autocrud import AutoCrud\n from flask_sqlalchemy import SQLAlchemy\n\n\n app = Flask(__name__)\n app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite+pysqlite:///db.sqlite3'\n app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False\n app.config['AUTOCRUD_METADATA_ENABLED'] = True\n\n db = SQLAlchemy(app)\n AutoCrud(app, db)\n\n app.run(debug=True)\n\nGo to http://127.0.0.1:5000/resources and see all available resources with its\nendpoint. NOTE: you must set SQLALCHEMY_DATABASE_URI with your database.\n\nIf you want to see an example use with Flask-Admin see in example folder.\n\n.. _section-2:\n\nFiltering and Sorting\n^^^^^^^^^^^^^^^^^^^^^\n\nAdd filters as query string parameters, they are used in AND. NOTE: At this time OR operator are not implemented.\n\nYou can use entity fields as parameter with the following placeholders:\n\n- null value: ``null``\n- in operator: list separated by ``;``\n- not operator: ``!`` means: not equal, not null, not in\n- comparators: ``__gt__`` (grater), ``__lt__`` (lesser), ``__gte__`` (grater-equal), ``__lte__`` (lesser-equal)\n- like operator: ``%`` for example: %%test%, %test% or %%test\n NOTE first % are not used in expression, it only indicated that value must be used with like operator.\n\n\nOther parameters:\n\n- Use ``_fields`` parameter to get only the fields listed as value, separated by ``;``.\n- Use ``_limit`` and ``_page`` parameters for pagination.\n- Sorting is implemented with ``_sort`` parameter. The value is a list of field separated by `;`\n You can prepend ``-`` to reverse order.\n- Use ``_export`` parameter to export data into csv format.\n- Use ``_extended`` in order to fetch data of related resources.\n- Use ``_as_table`` in order to flatten nested dict useful if you want render response as table\n\nExample requests:\n\n- ``/invoice?InvoiceId=(35;344)``\n\n- ``/invoice?Total=__lte__10&sort=Total``\n\n- ``/invoice?fields=BillingCountry;Total;InvoiceId&InvoiceId=!355;344&sort=-InvoiceId``\n\n- ``/invoice?fields=Total;InvoiceId&BillingPostalCode=!null&BillingCountry=%%ermany``\n\n- ``/invoice?fields=Total;InvoiceDate;InvoiceId;CustomerId&page=2&limit=10``\n\n- ``/invoice?InvoiceDate=(2009-01-01;2009-02-01 00:00:00)``\n\n\nExample FETCH:\n\n.. code:: bash\n\n curl --request FETCH \\\n --url http://127.0.0.1:5000/customer \\\n --header 'content-type: application/json' \\\n --data '{\n \"fields\": [\n \"Address\",\n \"City\"\n ],\n \"related\": {\n \"Employee\": [\n \"FirstName\",\n \"LastName\"\n ],\n \"Invoice\": [\n \"*\"\n ]\n },\n \"filters\": [\n {\n \"model\": \"Customer\",\n \"field\": \"SupportRepId\",\n \"op\": \"==\",\n \"value\": 5\n },\n {\n \"model\": \"Invoice\",\n \"field\": \"Total\",\n \"op\": \">\",\n \"value\": 6\n }\n ],\n \"sorting\": [\n {\n \"model\": \"Invoice\",\n \"field\": \"Total\",\n \"direction\": \"asc\"\n },\n {\n \"model\": \"Customer\",\n \"field\": \"Address\",\n \"direction\": \"desc\"\n }\n ]\n }'\n\n.. _section-3:\n\nAutoCRUD cli\n^^^^^^^^^^^^\n\nYou can use autocrud as a standalone application configurable via yaml file.\nSome options could be given via cli see: ``autocrud -h``,\nbut if configuration file is given these options will be ignored.\n\nIf ``gunicorn`` is installed on your system it will be chosen as wsgi http server\notherwise the default Flask builtin simple server will be used.\nUnder windows you can install ``waitress``.\n\nConfiguration file contains 2 principal macro section:\n\n- app: every configuration under it will be passed to Flask config object\n- wsgi: every configuration under it will be passed to the chosen wsgi\n\n\nFor example:\n\n.. code:: yaml\n\n\tapp:\n\t SQLALCHEMY_DATABASE_URI: sqlite+pysqlite:///examples/db.sqlite3\n\t SQLALCHEMY_TRACK_MODIFICATIONS: false\n\twsgi:\n\t bind: localhost:5000\n\t workers: 1\n\t threads: 1\n\n\n.. _section-4:\n\nConfiguration\n^^^^^^^^^^^^^\n\n1. ``AUTOCRUD_METADATA_ENABLED``: *(default: True)* enable metadata endpoint for a resource\n2. ``AUTOCRUD_METADATA_URL``: *(default: '/meta)* added at the end of url resource\n3. ``AUTOCRUD_READ_ONLY``: *(default: False)* enable only http GET method\n4. ``AUTOCRUD_BASE_URL``: *(default: '')* prefix url for resources\n5. ``AUTOCRUD_RESOURCES_URL``: *(default: '/resources')* url for all available resources\n6. ``AUTOCRUD_RESOURCES_URL_ENABLED``: *(default: True)* enable route for resources list\n7. ``AUTOCRUD_SUBDOMAIN``: *(default: None)* bind autocrud endpoints to a subdomain\n8. ``AUTOCRUD_MAX_QUERY_LIMIT``: *(default 1000)* max query limit, 0 means no limit\n9. ``AUTOCRUD_FETCH_ENABLED``: *(default True)* enable or disable FETCH method\n10. ``AUTOCRUD_QUERY_STRING_FILTERS_ENABLED``: *(default True)* enable or disable filters in querystring\n11. ``AUTOCRUD_EXPORT_ENABLED``: *(default True)* enable or disable export to csv\n12. ``AUTOCRUD_DATABASE_SCHEMA``: *(default None)* database schema to consider\n13. ``AUTOCRUD_CONDITIONAL_REQUEST_ENABLED``: *(default True)* allow conditional request\n\nLicense MIT\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cs91chris/flask_autocrud/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Flask-AutoCRUD", "package_url": "https://pypi.org/project/Flask-AutoCRUD/", "platform": "any", "project_url": "https://pypi.org/project/Flask-AutoCRUD/", "project_urls": { "Homepage": "https://github.com/cs91chris/flask_autocrud/" }, "release_url": "https://pypi.org/project/Flask-AutoCRUD/2.1.0/", "requires_dist": [ "werkzeug (==0.15)", "Flask (==1.0.*)", "Flask-SQLAlchemy (==2.4.0)", "Flask-ResponseBuilder (==2.0.*)", "Flask-ErrorsHandler (==2.2.*)", "sqlalchemy-filters (==0.10.0)", "colander (==1.7.0)", "PyYAML (==5.1)" ], "requires_python": "", "summary": "Automatically generated a RESTful API services for CRUD operation and queries on database", "version": "2.1.0" }, "last_serial": 5407165, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "99ec5c671f58610c9dfb36276b92510a", "sha256": "bc69a3ed392374956e75d69ead94ca290e6da9ddcfb391d1974c0594769bdc4e" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "99ec5c671f58610c9dfb36276b92510a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7921, "upload_time": "2019-01-07T23:25:38", "url": "https://files.pythonhosted.org/packages/34/fa/d5de14f9e1e4c0cf6231fd7a673613a830bf8d4acabb41968c52e911c30b/Flask_AutoCRUD-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bce0028d50d5a7990213867a90e7f28f", "sha256": "b44550518149c6bfd2d83a2c3cc5b6cb12df27b40df0fcfae79fbc7424a5b817" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.0.tar.gz", "has_sig": false, "md5_digest": "bce0028d50d5a7990213867a90e7f28f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5877, "upload_time": "2019-01-07T23:25:40", "url": "https://files.pythonhosted.org/packages/59/a6/b431ed82a360f8ebf546973a0892e67311394239b369e81b5582377d53de/Flask-AutoCRUD-1.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "ca1c611456a95a01330cb23130c33751", "sha256": "e97e7655990e741b74731027bc2f5bcdcdc77fabc4e8701f927665a73f4580f2" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ca1c611456a95a01330cb23130c33751", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8141, "upload_time": "2019-04-07T01:47:50", "url": "https://files.pythonhosted.org/packages/be/e2/7a19e7b321c0a965eb529ec7273598e66587d71ae9117904d4e5ba28a2c7/Flask_AutoCRUD-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9952cc96f55040c31b2f6147a633b856", "sha256": "4135a256f4bfbf077fff2d152a254e34ba43ef455e361562cd97bd80a708aa9e" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.1.0.tar.gz", "has_sig": false, "md5_digest": "9952cc96f55040c31b2f6147a633b856", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6111, "upload_time": "2019-04-07T01:47:51", "url": "https://files.pythonhosted.org/packages/76/e9/43361556ae85527bcf32e394093f2f6a50c59ca7684956a1e56cc322903a/Flask-AutoCRUD-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "867d36098b7158af921188fac0c0a76e", "sha256": "a1455e82eff084247a74eb1bc9dd8443bf10fabb31f3418a9b228bc6cbb3cb40" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "867d36098b7158af921188fac0c0a76e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8643, "upload_time": "2019-04-11T23:44:23", "url": "https://files.pythonhosted.org/packages/65/4e/23895613f3e388ecfcd0939cd8cd01f54cb7a80642977ec4d4998941ec9e/Flask_AutoCRUD-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37492661a4017ea2030a8fd2ce5b8773", "sha256": "3afeeaa8e718862b7c450533de50e20c50149323d9784acbc2976511e3dca6e9" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.1.1.tar.gz", "has_sig": false, "md5_digest": "37492661a4017ea2030a8fd2ce5b8773", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6695, "upload_time": "2019-04-11T23:44:25", "url": "https://files.pythonhosted.org/packages/e4/e8/06b887ff42c26dfb646cf25622c615ede925ce0e1698b69fba7d85d6de5c/Flask-AutoCRUD-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "daa07cb3cb904493c89f0ab49c893e21", "sha256": "80cb09c156a03f14dea678ab5c7af5279e13456fbc69ab53ada939bb1cf23457" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "daa07cb3cb904493c89f0ab49c893e21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9836, "upload_time": "2019-04-13T00:13:01", "url": "https://files.pythonhosted.org/packages/71/c5/ac5e5584c2bd600a493e63a5042ad3e36a9f4f0523bebd6128d900a0577a/Flask_AutoCRUD-1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ff8926a275f23e68ba961b63e688e7d", "sha256": "4c02c2d7e73f44e9c86cc7215d8b6a4a93645e4d15f57cbb2c29276f251c2b6f" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.1.2.tar.gz", "has_sig": false, "md5_digest": "5ff8926a275f23e68ba961b63e688e7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7252, "upload_time": "2019-04-13T00:13:02", "url": "https://files.pythonhosted.org/packages/4d/4e/b7104f8f120b9dfefac454cb0f46b7c81ed65e1ae4d51ec7146b4cb6973a/Flask-AutoCRUD-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "7674be572a80c4e38433d289b964ceb8", "sha256": "0edd3f12b3b93b33e3a2dbdf832da41e01b83b9931dd82f653e63efd715c8d7e" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7674be572a80c4e38433d289b964ceb8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10397, "upload_time": "2019-04-13T20:57:27", "url": "https://files.pythonhosted.org/packages/1c/cc/7dc2898ac6fb4263a3bae5b31c13abb6fea90181c86a1c06404173426f1b/Flask_AutoCRUD-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a5bbe0f2828c1a786b9cbc176dc97e23", "sha256": "73b343b92a6eeebbc2008cadf79ae1490cbe9c130e3404c6c0b28242d155b184" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.1.3.tar.gz", "has_sig": false, "md5_digest": "a5bbe0f2828c1a786b9cbc176dc97e23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7650, "upload_time": "2019-04-13T20:57:28", "url": "https://files.pythonhosted.org/packages/79/9a/3c8cb06728791e68f6efc2a38f58649cdb13ddf524301b051d8e12056e72/Flask-AutoCRUD-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "c5142eddb6738d9f1191099c18e8f4fa", "sha256": "5aef3c59cf8bf823529b580d7d47bbdc8484bf4fd5ba9a5c1cf9a89f4cd00979" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c5142eddb6738d9f1191099c18e8f4fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11351, "upload_time": "2019-04-16T23:25:27", "url": "https://files.pythonhosted.org/packages/29/a3/8a144dfd77f0c9f7d3fbe56c57e18820b8e5550837fbabad438cc6f6dcf8/Flask_AutoCRUD-1.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "979b1b0426e5c71d52523f74a80b8ea4", "sha256": "eb85b7cfe07319dbc8c9779974aee4b6e73ed003f4a284960d2d3e16bed68f44" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.1.4.tar.gz", "has_sig": false, "md5_digest": "979b1b0426e5c71d52523f74a80b8ea4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8240, "upload_time": "2019-04-16T23:25:29", "url": "https://files.pythonhosted.org/packages/98/21/5e914ca248c3fbbe8cb27822a521fa0092a18ed9812213a0825de0b05ae3/Flask-AutoCRUD-1.1.4.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "8fd141555f1192b3d2e4842c58200aff", "sha256": "2c2f17bcd4bdc7d2d6841b7f4cc26e4356beaf6bdd1360fbbfde5efb4d6ff8a7" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8fd141555f1192b3d2e4842c58200aff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13096, "upload_time": "2019-04-28T00:02:48", "url": "https://files.pythonhosted.org/packages/70/44/e806a4eec609a359addc6458acad673235494775fb55c8a803197a9644eb/Flask_AutoCRUD-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3b091e61316e959555b206ba289d50f", "sha256": "8bf3f9202f221ea8958f8b74e4cadb9c9ef65918588f2ec2e231ed494e6b03ca" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a3b091e61316e959555b206ba289d50f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9988, "upload_time": "2019-04-28T00:02:52", "url": "https://files.pythonhosted.org/packages/e0/7f/2ca4c2b4c6ebfa5e8f6f4ddf43663a9365a68708857a62bd237766ba5b64/Flask-AutoCRUD-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "22b05582f5c09eeef9ce35a87328e99b", "sha256": "9107b505c71bf0c9c3aea108da40842579875399b2f924b0c0c058c5ca1d393c" }, "downloads": -1, "filename": "Flask_AutoCRUD-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "22b05582f5c09eeef9ce35a87328e99b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13303, "upload_time": "2019-04-28T21:34:04", "url": "https://files.pythonhosted.org/packages/8b/b8/8123bd0f5d41590d108a88553ed0f3446db8d491a8491f07b5834f3ef439/Flask_AutoCRUD-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c27fd63db22d44ab4187f61707e0fc3", "sha256": "3980ba46f5a9335d4998581be402159781a139c2a16f636775eee4965c8d5241" }, "downloads": -1, "filename": "Flask-AutoCRUD-1.2.1.tar.gz", "has_sig": false, "md5_digest": "7c27fd63db22d44ab4187f61707e0fc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10185, "upload_time": "2019-04-28T21:34:07", "url": "https://files.pythonhosted.org/packages/28/d9/37b4985df47760f0dbfd1e7fcbf4aa2bbc2004bda2f209cde8964ee09ad5/Flask-AutoCRUD-1.2.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "1e38968e6f758c9a4d2fb0dd5262214e", "sha256": "add5ff5da204aeca47bce826a203f8e754011b4f7179bb9c690c10a68988dce8" }, "downloads": -1, "filename": "Flask_AutoCRUD-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1e38968e6f758c9a4d2fb0dd5262214e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22030, "upload_time": "2019-05-20T23:08:25", "url": "https://files.pythonhosted.org/packages/4f/86/31ae07e6f93c2d0b1d4a8feb3fc6664a3ce61a897d683a26d2b10ff62b07/Flask_AutoCRUD-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb1aa1f6ccf996068dcd9bd8d9b7c6b3", "sha256": "74f949b52cdc486d12d19bbf301c41cac825e99416e3523d8602b7556310532a" }, "downloads": -1, "filename": "Flask-AutoCRUD-2.0.0.tar.gz", "has_sig": false, "md5_digest": "eb1aa1f6ccf996068dcd9bd8d9b7c6b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16802, "upload_time": "2019-05-20T23:08:27", "url": "https://files.pythonhosted.org/packages/36/bc/384cf6715fa6f08547c23eb06bb6df18f9a672ce78f9cf047def7d784dca/Flask-AutoCRUD-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "f0563dd5d5b55302dc67cd9bf884dea1", "sha256": "e481b613dd13f5e604b0077772bb93401256afb039df843379ae2021a137e5ea" }, "downloads": -1, "filename": "Flask_AutoCRUD-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f0563dd5d5b55302dc67cd9bf884dea1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25758, "upload_time": "2019-05-28T23:04:17", "url": "https://files.pythonhosted.org/packages/cd/4d/fcd5debe6b40de5b4b70269755a922071e486ac8ca33db70fd4ab07e7861/Flask_AutoCRUD-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c441d99f4a5b13f49b44cb9a1aa0baa", "sha256": "149216f2d8e2e5c51647550dc4c30b3ec781a5497ca786f42fa0c483ab0f92a8" }, "downloads": -1, "filename": "Flask-AutoCRUD-2.0.1.tar.gz", "has_sig": false, "md5_digest": "0c441d99f4a5b13f49b44cb9a1aa0baa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17457, "upload_time": "2019-05-28T23:04:19", "url": "https://files.pythonhosted.org/packages/32/0c/7b2ac5d69cee782402d9c713d525c8ab048c7482cde405f36f0d1629e4af/Flask-AutoCRUD-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "e7b9be9ebc202763ec34441e6952426f", "sha256": "95e5cfa4b20a209da0018a10ac6b74a816bcb110f6cb016acc427316179e9cd3" }, "downloads": -1, "filename": "Flask_AutoCRUD-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e7b9be9ebc202763ec34441e6952426f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28694, "upload_time": "2019-06-16T18:26:30", "url": "https://files.pythonhosted.org/packages/4f/8d/b162d0e02fcb0d470c1b12aea986be638676670fe56618984fc2e99b8704/Flask_AutoCRUD-2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "940dbd563a461b38ad1953f2a6b7db13", "sha256": "6d47248a2dbf5f379d0adfd0503c136a10ace61eb0556b9182b9444c5b091570" }, "downloads": -1, "filename": "Flask-AutoCRUD-2.1.0.tar.gz", "has_sig": false, "md5_digest": "940dbd563a461b38ad1953f2a6b7db13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19164, "upload_time": "2019-06-16T18:26:32", "url": "https://files.pythonhosted.org/packages/fb/d0/90eed5310e00ea9ffb767df5eb3e3d17d7d14b3c1aef11232f3ff82fa234/Flask-AutoCRUD-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7b9be9ebc202763ec34441e6952426f", "sha256": "95e5cfa4b20a209da0018a10ac6b74a816bcb110f6cb016acc427316179e9cd3" }, "downloads": -1, "filename": "Flask_AutoCRUD-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e7b9be9ebc202763ec34441e6952426f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28694, "upload_time": "2019-06-16T18:26:30", "url": "https://files.pythonhosted.org/packages/4f/8d/b162d0e02fcb0d470c1b12aea986be638676670fe56618984fc2e99b8704/Flask_AutoCRUD-2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "940dbd563a461b38ad1953f2a6b7db13", "sha256": "6d47248a2dbf5f379d0adfd0503c136a10ace61eb0556b9182b9444c5b091570" }, "downloads": -1, "filename": "Flask-AutoCRUD-2.1.0.tar.gz", "has_sig": false, "md5_digest": "940dbd563a461b38ad1953f2a6b7db13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19164, "upload_time": "2019-06-16T18:26:32", "url": "https://files.pythonhosted.org/packages/fb/d0/90eed5310e00ea9ffb767df5eb3e3d17d7d14b3c1aef11232f3ff82fa234/Flask-AutoCRUD-2.1.0.tar.gz" } ] }