{ "info": { "author": "patarapolw", "author_email": "patarapolw@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# excelschema\n\nExcel records' parser and schema viewing and validating tools.\n\n## Installation\n\nMethod 1:\n\n```\n$ pip install excelschema\n```\n\nMethod 2:\n- Clone the project from GitHub\n- `poetry install`\n\n## Usage\n\nTo read an Excel file, you may also need to install [`pyexcel`](https://github.com/pyexcel/pyexcel) and [`pyexcel-xlsx`](https://github.com/pyexcel/pyexcel-xlsx) as well.\n\n```python\n>>> from excelschema import SchemaParser\n>>> import pyexcel\n>>> sp = SchemaParser(records=pyexcel.get_records(file_name='foo.xlsx', sheet_name='bar'))\n>>> sp.schema\n{\n 'record_id': ,\n 'modified': ,\n 'data': \n}\n```\n\nValidating records and convert it to a usable one.\n\n```python\n>>> sp.ensure_one({'record_id': ' 12', 'data': 567})\n{'record_id', 12, 'data': '567'}\n```\n\nSetting constraints\n\n```python\n>>> from excelschema import Constraint\n>>> sp.update_schema({\n... 'user_id': Constraint(type_=int, unique=True, not_null=True)\n... })\n```\n\nIt is also possible to create an custom schema without an Excel\n\n```python\n>>> sp = SchemaParser(schema={\n... 'record_id': Constraint(type_=int, unique=True, not_null=True),\n... 'modified': datetime\n... })\n```\n\n## Bonus functions\n\nCleaning dirty Excel records\n\n```python\n>>> from excelschema import parse_record\n>>> parse_record({'foo': ' 1', 'bar': ' - ', 'baz': ' '})\n{'foo', 1}\n```\n\n\n## Related projects\n\n- https://github.com/patarapolw/tinydb-constraint\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/patarapolw/excelschema", "keywords": "excel", "license": "", "maintainer": "patarapolw", "maintainer_email": "patarapolw@gmail.com", "name": "excelschema", "package_url": "https://pypi.org/project/excelschema/", "platform": "", "project_url": "https://pypi.org/project/excelschema/", "project_urls": { "Homepage": "https://github.com/patarapolw/excelschema" }, "release_url": "https://pypi.org/project/excelschema/0.1.2.4/", "requires_dist": [ "python-dateutil (>=2.7,<3.0)" ], "requires_python": "", "summary": "Excel records' parser and schema viewing and validating tools.", "version": "0.1.2.4" }, "last_serial": 4332685, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "69ad57a8996119aef2457c81e8b10caf", "sha256": "82785f1c0a589e6eb7ccd7f155aad108ef59379ab55c01edf9c13331299362a5" }, "downloads": -1, "filename": "excelschema-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "69ad57a8996119aef2457c81e8b10caf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11008, "upload_time": "2018-10-02T10:48:09", "url": "https://files.pythonhosted.org/packages/d7/5f/48a780ae2f972cd04a2f979678ca444c11340f51eb6164e4d760ce01f2e4/excelschema-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41e716f4b78001061d309770a3d371aa", "sha256": "b57ae1c2febf7a0098b775ceff85534bb469d37112eb7309b95fb4f744b5cfd1" }, "downloads": -1, "filename": "excelschema-0.1.0.tar.gz", "has_sig": false, "md5_digest": "41e716f4b78001061d309770a3d371aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4387, "upload_time": "2018-10-02T10:48:11", "url": "https://files.pythonhosted.org/packages/4c/7e/7776e62c7d524a3f9f1ea54d9e1ed527b62166fa0c3da4549fc49060768a/excelschema-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f656d1d868c8d36c32cec13e3c43f343", "sha256": "97763556ebffabc2117f3def660e98d74dd7711807753dd1d3207d377403f377" }, "downloads": -1, "filename": "excelschema-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f656d1d868c8d36c32cec13e3c43f343", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11192, "upload_time": "2018-10-02T11:48:16", "url": "https://files.pythonhosted.org/packages/d8/dc/80e5cd76eef32f7fc3f533b285a54dbfb4697b682da8aa51e89d03709840/excelschema-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "591dd8937402d771baeb0542bfd59883", "sha256": "aeff7f475f7ff2858c6b55ec5f33b1c66b6a6c9f356a84820d722af696b82ccc" }, "downloads": -1, "filename": "excelschema-0.1.1.tar.gz", "has_sig": false, "md5_digest": "591dd8937402d771baeb0542bfd59883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4411, "upload_time": "2018-10-02T11:48:18", "url": "https://files.pythonhosted.org/packages/53/c9/fd12998370ebc5e47a83cc148fb062a5f09e7e643db96630ba33e9b05cbc/excelschema-0.1.1.tar.gz" } ], "0.1.2.4": [ { "comment_text": "", "digests": { "md5": "f98200107cbb36968c463a491ddb0162", "sha256": "bac9a183f9fac7666f061229b84e4a48ed8093865c8dee6f0810a54ac7ed7f94" }, "downloads": -1, "filename": "excelschema-0.1.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f98200107cbb36968c463a491ddb0162", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11795, "upload_time": "2018-10-02T14:11:07", "url": "https://files.pythonhosted.org/packages/c9/47/7a5dbb47e59c4d8b14b93de2051fad0945bd6fe7191320399eb7b294c3a2/excelschema-0.1.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b327ce7af70037509bca0c4360daedd", "sha256": "252032b935c06dce76064f2928a01a0aaf1c7eb19aade1e5de2ebd297731c2a9" }, "downloads": -1, "filename": "excelschema-0.1.2.4.tar.gz", "has_sig": false, "md5_digest": "3b327ce7af70037509bca0c4360daedd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4699, "upload_time": "2018-10-02T14:11:09", "url": "https://files.pythonhosted.org/packages/93/82/84a42191599b7110f44ce7968bb0323bd937a9abb672a791951acd6db4f3/excelschema-0.1.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f98200107cbb36968c463a491ddb0162", "sha256": "bac9a183f9fac7666f061229b84e4a48ed8093865c8dee6f0810a54ac7ed7f94" }, "downloads": -1, "filename": "excelschema-0.1.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f98200107cbb36968c463a491ddb0162", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11795, "upload_time": "2018-10-02T14:11:07", "url": "https://files.pythonhosted.org/packages/c9/47/7a5dbb47e59c4d8b14b93de2051fad0945bd6fe7191320399eb7b294c3a2/excelschema-0.1.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b327ce7af70037509bca0c4360daedd", "sha256": "252032b935c06dce76064f2928a01a0aaf1c7eb19aade1e5de2ebd297731c2a9" }, "downloads": -1, "filename": "excelschema-0.1.2.4.tar.gz", "has_sig": false, "md5_digest": "3b327ce7af70037509bca0c4360daedd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4699, "upload_time": "2018-10-02T14:11:09", "url": "https://files.pythonhosted.org/packages/93/82/84a42191599b7110f44ce7968bb0323bd937a9abb672a791951acd6db4f3/excelschema-0.1.2.4.tar.gz" } ] }