{ "info": { "author": "Casper Weiss Bang", "author_email": "master@thecdk.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "Module helps with generating field sets and fields for usage in the architecture\naSTEP-2019 (At Aalborg Uversity). This can be used for any service written in flask, to make sure you don't \ncreate too much duplicate code. it's strongly inspired by Django. \n## Supported versions\nPython >=3.5\n\n## Example\nCreate an instance of `FieldSet` which handles the different fields \nboth visualized in the `/fields/` endpoint as well as verified with `/render/`\n\nAn example with with basis in fields could be:\n\n```python\nfrom astep_form_utils import FieldSet, StringField, FloatField\nfrom flask import Flask, jsonify\n\napp = Flask(__name__, static_url_path=\"\")\n\n@app.route(\"/fields\")\ndef fields():\n field_set = FieldSet(\n StringField(\"my_name\", label=\"Input Your Name:\"),\n FloatField(\"my_age\", label=\"Input Your Age:\")\n )\n return jsonify(field_set.as_form_fields())\n```\n\nwhich will return json as follows: \n```json\n[\n {\n \"label\": \"Input Your Name:\",\n \"name\": \"my_name\",\n \"type\": \"input\"\n },\n {\n \"label\": \"Input Your Age:\",\n \"name\": \"my_age\",\n \"type\": \"input-number\"\n }\n]\n```\n\nYou can also use enums:\n\n```python\nfrom astep_form_utils import FieldSet, EnumField\nfrom enum import Enum\n\nclass MyModel(Enum):\n PRETTY_MODEL = auto()\n UGLY_MODEL = auto()\n\nfield_set = FieldSet(\n EnumField(\"my_string\", MyModel, label=\"Pick a model\")\n)\n```\n'\n\nYou can use a fieldset in your `/render/` endpoint as well, to validate data:\n\n\n```python\nfrom astep_form_utils import FieldSet, StringField, FloatField, is_data_empty\nfrom flask import Flask, jsonify, request\n\napp = Flask(__name__, static_url_path=\"\")\n\n@app.route(\"/render\")\ndef render():\n field_set = FieldSet(\n StringField(\"my_name\", label=\"Input Your Name:\"),\n FloatField(\"my_age\", label=\"Input Your Age:\")\n )\n\n\n if is_data_empty(request):\n return jsonify({'chart_type':'text', 'content':'Supply data please!'})\n\n if field_set.is_valid(request):\n my_name = field_set.cleaned_data['my_name']\n my_age = field_set.cleaned_data['my_age']\n\n return jsonify({\n 'chart_type':'text',\n 'content':f'Hello my name is {my_name} and i am {my_age} years old.'\n })\n```\n\nTo make it more DRY and reuse the FieldSet definition, you can utilize the factory\nfunction `field_set_factory`, to reuse the same definition like this:\n\n```python\n\nfrom astep_form_utils import StringField, FloatField, \\\n is_data_empty, field_set_factory\nfrom flask import Flask, jsonify, request\n\napp = Flask(__name__, static_url_path=\"\")\n# returns a method that creates a FieldSet with the two fields\nFIELD_SET_FACTORY = field_set_factory(\n StringField(\"my_name\", label=\"Input Your Name:\"),\n FloatField(\"my_age\", label=\"Input Your Age:\")\n)\n@app.route(\"/render\")\ndef render():\n # Creates a fieldset with the defined fields\n field_set = FIELD_SET_FACTORY()\n\n if is_data_empty(request):\n return jsonify({'chart_type':'text', 'content':'Supply data please!'})\n\n if field_set.is_valid(request):\n my_name = field_set.cleaned_data['my_name']\n my_age = field_set.cleaned_data['my_age']\n\n return jsonify({\n 'chart_type':'text',\n 'content':f'Hello my name is {my_name} and i am {my_age} years old.'\n })\n\n raise NotImplementedError()\n\n@app.route(\"/fields\")\ndef fields():\n field_set = FIELD_SET_FACTORY() \n return jsonify(field_set.as_form_fields())\n```\n\nA complete solution can be found in the\nimplementation of the [chart type test](https://daisy-git.cs.aau.dk/aSTEP-2019/charttypetest/)\nmicroservice. \n\n\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://daisy-git.cs.aau.dk/aSTEP-2019/python_form_utils", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "astep-forms-utils", "package_url": "https://pypi.org/project/astep-forms-utils/", "platform": "", "project_url": "https://pypi.org/project/astep-forms-utils/", "project_urls": { "Homepage": "https://daisy-git.cs.aau.dk/aSTEP-2019/python_form_utils" }, "release_url": "https://pypi.org/project/astep-forms-utils/0.2.7/", "requires_dist": null, "requires_python": "", "summary": "A package for utilities regarding the aSTEP 2019 rendering architecture", "version": "0.2.7" }, "last_serial": 5302202, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "935379b0fb45a700cfeaf0e5a1a7fb30", "sha256": "0a8305254576184d86d9546eccc65fb655759c31bbe5f75569b9f9e561e82cce" }, "downloads": -1, "filename": "astep_forms_utils-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "935379b0fb45a700cfeaf0e5a1a7fb30", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11354, "upload_time": "2019-05-02T07:07:21", "url": "https://files.pythonhosted.org/packages/5a/6a/7496236fbfe82081c51939af17d33269ec325c8252a5f1cef1cedad8afc4/astep_forms_utils-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cf85fe0a17877ea35be4afbce2e8b7bb", "sha256": "4d82223948a1c500c55e25e3b570253835ccc838defdee99d40cbf01171f5a7b" }, "downloads": -1, "filename": "astep_forms_utils-0.1.tar.gz", "has_sig": false, "md5_digest": "cf85fe0a17877ea35be4afbce2e8b7bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4952, "upload_time": "2019-05-02T07:07:23", "url": "https://files.pythonhosted.org/packages/1d/93/705b560c378d8c69b1cdf9691cb78f600d43ac86f5f4ebe2d17fd2e4b0ff/astep_forms_utils-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5afa5d17852e6eb66800fd3754b30cd1", "sha256": "b25aa626b635c4443166f0f5560b26bdd61cab8f648e6b89a50da86b0842927e" }, "downloads": -1, "filename": "astep_forms_utils-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5afa5d17852e6eb66800fd3754b30cd1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12336, "upload_time": "2019-05-02T08:59:05", "url": "https://files.pythonhosted.org/packages/3b/f0/5214c3c8dbc638d10397688d2233cff0253774c8fd449b7d64553f5b35e4/astep_forms_utils-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20193be8349c91da4941f94c705a75b0", "sha256": "1a1137fe5d54afd5e3dfcff4f337dc709281d8e62a6d9f63d13df5ae9417ba9e" }, "downloads": -1, "filename": "astep_forms_utils-0.2.tar.gz", "has_sig": false, "md5_digest": "20193be8349c91da4941f94c705a75b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6107, "upload_time": "2019-05-02T08:59:07", "url": "https://files.pythonhosted.org/packages/c2/f1/a2fef38e487a8b05eb3000974f36a7227e0721d213c90c9c25011ede0270/astep_forms_utils-0.2.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "d1b9cb54769f15126b03d65a208abefc", "sha256": "34597bc30a8d009a00857cb17abb6a1df87e4b8e39c83c4a34c0c0bef1a36052" }, "downloads": -1, "filename": "astep_forms_utils-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d1b9cb54769f15126b03d65a208abefc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12426, "upload_time": "2019-05-03T09:19:20", "url": "https://files.pythonhosted.org/packages/6b/ef/77bb6e26bb8d2c2f3708268a9a8e58189747e5018c779d329e3803376302/astep_forms_utils-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a30c63a7e4374f4957f761d474ea2ed2", "sha256": "55441c7368d2417b3f3cafa7b98a88cb6b3946b9355a2ab8e0928201d2a02f01" }, "downloads": -1, "filename": "astep_forms_utils-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a30c63a7e4374f4957f761d474ea2ed2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6165, "upload_time": "2019-05-03T09:19:24", "url": "https://files.pythonhosted.org/packages/17/fb/73ff679d8d87b2cb86e69f05e5232d9a2d2e90c69f5aa3501a91fd5603c4/astep_forms_utils-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "30f2fdb2c776214d8b69291968e89ad3", "sha256": "2675dcfc173d8d60721a34acfa382b638a46193d6fa4ef3ada325bb4d243dd0b" }, "downloads": -1, "filename": "astep_forms_utils-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "30f2fdb2c776214d8b69291968e89ad3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12410, "upload_time": "2019-05-03T09:36:54", "url": "https://files.pythonhosted.org/packages/1e/47/03523ad1482c3c6e3aac15ace9fed66f4b19c93fae9a08d3fdb471399344/astep_forms_utils-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4aad365e08732fb90d0796c9061b8934", "sha256": "9588d75f79408b84e56102317279dcdf5249033298b86b4e4a350c79ca5d2fe5" }, "downloads": -1, "filename": "astep_forms_utils-0.2.3.tar.gz", "has_sig": false, "md5_digest": "4aad365e08732fb90d0796c9061b8934", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6155, "upload_time": "2019-05-03T09:36:55", "url": "https://files.pythonhosted.org/packages/c9/48/8b992d1ecd252858cfc44704c0bb9ed8c9a6389d75db758361cb021e8853/astep_forms_utils-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "86bc5335be5639c3a72f288944e9a178", "sha256": "ca388afae76f3db947bac4555c173b4f7095aafac22eb9de5b37e454479ee124" }, "downloads": -1, "filename": "astep_forms_utils-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "86bc5335be5639c3a72f288944e9a178", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12457, "upload_time": "2019-05-03T11:07:09", "url": "https://files.pythonhosted.org/packages/b1/d5/a7b9e333e1ea0600fe23c4a6af21ae5fc06d18b4e12aca48cb512a9b092b/astep_forms_utils-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "899ed7d3301ca9dc5d04a5b703d6453c", "sha256": "e3751a374b29e5837085d64fd22f6e7d0ffd4775f4d1a6984830b1b6b673acd8" }, "downloads": -1, "filename": "astep_forms_utils-0.2.4.tar.gz", "has_sig": false, "md5_digest": "899ed7d3301ca9dc5d04a5b703d6453c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6202, "upload_time": "2019-05-03T11:07:10", "url": "https://files.pythonhosted.org/packages/3f/7b/c662c18e335dfc952c6dd3076d3d0596214725a150584ec60830d2fdeef1/astep_forms_utils-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "d5c027547d39ceb2dc62a90c66bb3a68", "sha256": "29e31943c6467bf7915f454fffea70e88ce577d8eeb7daf7ed5a03dbde1be16b" }, "downloads": -1, "filename": "astep_forms_utils-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d5c027547d39ceb2dc62a90c66bb3a68", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12462, "upload_time": "2019-05-03T12:35:08", "url": "https://files.pythonhosted.org/packages/16/8b/385f0267d405ef55a3fb792883f28236d1baccc5976ce69881bfdffcb138/astep_forms_utils-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae3d7d54006597895e470f99ca1b4c92", "sha256": "34bf70f99fdcc425869a380eeeeabae5f1b0118e79aaf8c234bf5c7617337617" }, "downloads": -1, "filename": "astep_forms_utils-0.2.5.tar.gz", "has_sig": false, "md5_digest": "ae3d7d54006597895e470f99ca1b4c92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6204, "upload_time": "2019-05-03T12:35:09", "url": "https://files.pythonhosted.org/packages/3f/dd/50b86a6f0af54a4786a4681589e81a93af791f96d8bdff30a5f8c18af306/astep_forms_utils-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "db0dd0761b1b591e859e49344ec385b7", "sha256": "fe788d29ec381e9698fca68d15dedc59a67774feef2e64e446ca5b525f9fa202" }, "downloads": -1, "filename": "astep_forms_utils-0.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "db0dd0761b1b591e859e49344ec385b7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12534, "upload_time": "2019-05-22T10:49:03", "url": "https://files.pythonhosted.org/packages/52/1d/414d5b7afb77d8a2403e41af676036225fef26436d99b5b7baffff20dc2b/astep_forms_utils-0.2.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f464d3ed29e1ac372d7f99398816f160", "sha256": "1f153364c967753be086113e739868442744e0b28ca2fd764887b2f35924be1b" }, "downloads": -1, "filename": "astep_forms_utils-0.2.6.tar.gz", "has_sig": false, "md5_digest": "f464d3ed29e1ac372d7f99398816f160", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6276, "upload_time": "2019-05-22T10:49:04", "url": "https://files.pythonhosted.org/packages/9e/35/a3746a1ab2e6761a4eb105ce1fb1f3e19671e9c1cdc0a1f563e96d365025/astep_forms_utils-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "78decf96bc24f12806b1e3bb833f31ca", "sha256": "d83b52d09fbc2905dec195aefa50f20f2972ae01258a79985c4b507d4f5870cf" }, "downloads": -1, "filename": "astep_forms_utils-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "78decf96bc24f12806b1e3bb833f31ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12539, "upload_time": "2019-05-22T11:09:50", "url": "https://files.pythonhosted.org/packages/af/f5/e7c7690aa4add7bf844e27adef9f28cf8deb09c060472d89db000364cc93/astep_forms_utils-0.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50f0b5e3a6ad5d2d552203f3caa8a7b0", "sha256": "13fa966bb763de56b94cb8c4326d1cbea6fcb58f4906a8d11058761b20e8bc9d" }, "downloads": -1, "filename": "astep_forms_utils-0.2.7.tar.gz", "has_sig": false, "md5_digest": "50f0b5e3a6ad5d2d552203f3caa8a7b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6287, "upload_time": "2019-05-22T11:09:52", "url": "https://files.pythonhosted.org/packages/74/6f/607c4cde59c37b9361489745be198a34ee1fbc523c367f2ea28daeb9c54b/astep_forms_utils-0.2.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "78decf96bc24f12806b1e3bb833f31ca", "sha256": "d83b52d09fbc2905dec195aefa50f20f2972ae01258a79985c4b507d4f5870cf" }, "downloads": -1, "filename": "astep_forms_utils-0.2.7-py3-none-any.whl", "has_sig": false, "md5_digest": "78decf96bc24f12806b1e3bb833f31ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12539, "upload_time": "2019-05-22T11:09:50", "url": "https://files.pythonhosted.org/packages/af/f5/e7c7690aa4add7bf844e27adef9f28cf8deb09c060472d89db000364cc93/astep_forms_utils-0.2.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "50f0b5e3a6ad5d2d552203f3caa8a7b0", "sha256": "13fa966bb763de56b94cb8c4326d1cbea6fcb58f4906a8d11058761b20e8bc9d" }, "downloads": -1, "filename": "astep_forms_utils-0.2.7.tar.gz", "has_sig": false, "md5_digest": "50f0b5e3a6ad5d2d552203f3caa8a7b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6287, "upload_time": "2019-05-22T11:09:52", "url": "https://files.pythonhosted.org/packages/74/6f/607c4cde59c37b9361489745be198a34ee1fbc523c367f2ea28daeb9c54b/astep_forms_utils-0.2.7.tar.gz" } ] }