{ "info": { "author": "Vincent Vankrunkelsven", "author_email": "vincent@datacamp.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# sheetwhat\n\n[![Build Status](https://travis-ci.org/datacamp/sheetwhat.svg?branch=master)](https://travis-ci.org/datacamp/sheetwhat)\n[![codecov](https://codecov.io/gh/datacamp/sheetwhat/branch/master/graph/badge.svg)](https://codecov.io/gh/datacamp/sheetwhat)\n[![PyPI version](https://badge.fury.io/py/sheetwhat.svg)](https://badge.fury.io/py/sheetwhat)\n[![Documentation Status](https://readthedocs.org/projects/sheetwhat/badge/?version=latest)](https://sheetwhat.readthedocs.io/en/latest/?badge=latest)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdatacamp%2Fsheetwhat.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdatacamp%2Fsheetwhat?ref=badge_shield)\n\n`sheetwhat` enables you to write Submission Correctness Tests (SCTs) for interactive Spreadsheet exercises on DataCamp.\n\n- If you are new to teaching on DataCamp, check out https://instructor-support.datacamp.com.\n- If you want to learn what SCTs are and how they work, visit [this article](https://instructor-support.datacamp.com/courses/course-development/submission-correctness-tests) specifically.\n- For a complete overview of all functionality inside `sheetwhat` and articles about what to use when, consult https://sheetwhat.readthedocs.io.\n\n## Installing\n\n```\npip install sheetwhat\n```\n\n## Demo\n\nSheetwhat is typically used in a web application, but you can also experiment with its functions on your local machine.\nSCT functions that fail will throw a `TestFail` error.\n\n```python\n# Setup: make all checking functions available\nfrom sheetwhat.sct_syntax import SCT_CTX\nglobals().update(SCT_CTX)\n\n# Setup: set up state with student data, solution data and SCT range\nfrom sheetwhat.State import State\nfrom protowhat.Reporter import Reporter\nEx.root_state = State(\n {'values': [[\"a\", \"a\"]], \"formulas\": [[\"=B1\"]]},\n {'values': [[\"b\", \"b\"]], \"formulas\": [[\"=B1\"]]},\n \"A1\",\n Reporter()\n)\n\n# Experiment interactively with SCTs\n# Passes, as formulas at A1 match\nEx().has_equal_formula()\n\n# Fails, as values at A1 do not match\nEx().has_equal_value()\n```\n\n## Testing\n\n```\npip install -r requirements.txt\npip install -e .\npytest\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdatacamp%2Fsheetwhat.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdatacamp%2Fsheetwhat?ref=badge_large)", "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/datacamp/sheetwhat", "keywords": "", "license": "", "maintainer": "Jeroen Hermans", "maintainer_email": "content-engineering@datacamp.com", "name": "sheetwhat", "package_url": "https://pypi.org/project/sheetwhat/", "platform": "", "project_url": "https://pypi.org/project/sheetwhat/", "project_urls": { "Homepage": "https://github.com/datacamp/sheetwhat" }, "release_url": "https://pypi.org/project/sheetwhat/0.5.3/", "requires_dist": null, "requires_python": "", "summary": "Submission correctness tests for spreadsheets", "version": "0.5.3" }, "last_serial": 5386548, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b0c2a6db2a7c96617687998fa8aa33d4", "sha256": "d1cc97f0e5884461dfdca8879caf52ad8473c4f8e2bd2f154c1daa788e77382a" }, "downloads": -1, "filename": "sheetwhat-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b0c2a6db2a7c96617687998fa8aa33d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5930, "upload_time": "2018-09-04T13:58:38", "url": "https://files.pythonhosted.org/packages/7d/2d/2fdfe049a0e21d101b2840e3004259e620900148e645719f4d7061c722f0/sheetwhat-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "43e6f3b7cb66d88d351feda5f050e97f", "sha256": "09f510f284a06d5479810980091773924436f4b7bf623879b516277eabfaf008" }, "downloads": -1, "filename": "sheetwhat-0.1.1.tar.gz", "has_sig": false, "md5_digest": "43e6f3b7cb66d88d351feda5f050e97f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6421, "upload_time": "2018-09-10T11:09:13", "url": "https://files.pythonhosted.org/packages/2f/35/76d00e464ec8a4a0cf612cb3e3dcd7b72fe8a2d62729cbf7793e66926649/sheetwhat-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "dc35e1f7865ba59eb4c94dab9cd0d6fd", "sha256": "c94a36388e2dfbadef6edd67f7ee8d9ca5e88a8fe75775254a26e47d1b61ba1d" }, "downloads": -1, "filename": "sheetwhat-0.1.2.tar.gz", "has_sig": false, "md5_digest": "dc35e1f7865ba59eb4c94dab9cd0d6fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6468, "upload_time": "2018-09-10T13:09:39", "url": "https://files.pythonhosted.org/packages/e2/69/19fb2a2f4637fce3635265a77ada37dc90749a6059cd485fe933e1c80a0b/sheetwhat-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f4d3494caf975c156cb364e0e5902055", "sha256": "2404cd353fe5cad3d2d629beff044b5af8e5d0133e305f4d89386a0e3dcb43c1" }, "downloads": -1, "filename": "sheetwhat-0.1.3.tar.gz", "has_sig": false, "md5_digest": "f4d3494caf975c156cb364e0e5902055", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6475, "upload_time": "2018-09-10T15:07:49", "url": "https://files.pythonhosted.org/packages/d5/db/fe1e7e5ae8112613c79381851c0c8f4f6fe3d51164dd4abdad2552d3fd08/sheetwhat-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ef8f88822fe11bb3a425f9f87130fb5d", "sha256": "24d7f0a439c08e6f7066a166f7e9d905568f3826eb295cba7033c9c34467ffaa" }, "downloads": -1, "filename": "sheetwhat-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ef8f88822fe11bb3a425f9f87130fb5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7493, "upload_time": "2018-11-26T12:26:25", "url": "https://files.pythonhosted.org/packages/b3/fd/5e2abd7fe39d50c682315198f3a5d288924ec10db5cfdc3c2fa170220f00/sheetwhat-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "a4c9bedd9a9356e3b5a10a63332e9456", "sha256": "2d6ad156b8c26e84c6e1e20c72c0645ace2fc01466e3dffbb9f9c0a4aaaf2e55" }, "downloads": -1, "filename": "sheetwhat-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a4c9bedd9a9356e3b5a10a63332e9456", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7700, "upload_time": "2018-11-26T14:39:01", "url": "https://files.pythonhosted.org/packages/63/a6/bbe1ce62907ea50253a9b9e89d5c7630e971cc3e1570bab9a50a97fe05a0/sheetwhat-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "c914255e145c5f7f2c624310c80913da", "sha256": "3c2617c5f8e99b87302ef00ac20069c00de7e9b691829f72ca858999a9ddc550" }, "downloads": -1, "filename": "sheetwhat-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c914255e145c5f7f2c624310c80913da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22291, "upload_time": "2018-12-20T12:38:38", "url": "https://files.pythonhosted.org/packages/b2/ee/5acc68bc178ccd01b2c547a69af0399f5ef8876f73dbddc313a1fceabf7e/sheetwhat-0.1.6.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "aee113800becd568c8a14fd7aef75094", "sha256": "a5d99cbd13e1316a9b8d0448e391a267fd5ddea5f60b5d256efc836216b8d4e5" }, "downloads": -1, "filename": "sheetwhat-0.1.8.tar.gz", "has_sig": false, "md5_digest": "aee113800becd568c8a14fd7aef75094", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22319, "upload_time": "2018-12-20T15:44:25", "url": "https://files.pythonhosted.org/packages/1a/c6/9ff5586c971492658a746f2cdcf54ac1cded6f1fa766e354a34f4beaa573/sheetwhat-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "e4ebe0ee4962902c4064726d11b05395", "sha256": "6816647237dc4ccbca42b6ea627e4c042cef5938b3b1978e355263a82d3b88ce" }, "downloads": -1, "filename": "sheetwhat-0.1.9.tar.gz", "has_sig": false, "md5_digest": "e4ebe0ee4962902c4064726d11b05395", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22974, "upload_time": "2018-12-27T10:37:13", "url": "https://files.pythonhosted.org/packages/52/8b/fc07d5e13e78332bfbe8ce99ef0dd86a3fcf04bf9aed016de96443e1b7ab/sheetwhat-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "14a35136eb1a172e58599f15ce23dab7", "sha256": "2eb552534b4d93990192c77b8abefa773881f87d08b41a74d28093667f9a631d" }, "downloads": -1, "filename": "sheetwhat-0.2.0.tar.gz", "has_sig": false, "md5_digest": "14a35136eb1a172e58599f15ce23dab7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23182, "upload_time": "2019-01-03T12:01:08", "url": "https://files.pythonhosted.org/packages/53/bc/28d3c0d721dc2093724b34274d19a01628a196054be303fa2b48c8cb533b/sheetwhat-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b7b4b98ece8f3cb02c25f6aa950d321c", "sha256": "a2c68f50eb0a7efa6b0ba4688df9343df26ce6c2ff4010fcd6f74bf2a42fed6f" }, "downloads": -1, "filename": "sheetwhat-0.3.0.tar.gz", "has_sig": false, "md5_digest": "b7b4b98ece8f3cb02c25f6aa950d321c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23628, "upload_time": "2019-02-12T08:44:18", "url": "https://files.pythonhosted.org/packages/bd/22/84c7d45da94e624b94732a0e4fe32078cfaea1402b13b8c0a59fc1bf0604/sheetwhat-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1728d5a1c4f610b5c8d301ba3e8431e9", "sha256": "2a0f07f817c566f60b25608f1495bd1d8394c5891bf705b168411bbf3142b235" }, "downloads": -1, "filename": "sheetwhat-0.4.0.tar.gz", "has_sig": false, "md5_digest": "1728d5a1c4f610b5c8d301ba3e8431e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23873, "upload_time": "2019-02-19T17:23:45", "url": "https://files.pythonhosted.org/packages/a9/93/b82463b0345542b2ec5422692b4c57ecbed69ae9ef7febe2086057a0d5bd/sheetwhat-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "9ddb09631cc355d06063335be1da8b71", "sha256": "434d1041ee8cff259fb480ca10079b31a60ac7d859a29348399469c3d3ffbae7" }, "downloads": -1, "filename": "sheetwhat-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9ddb09631cc355d06063335be1da8b71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23583, "upload_time": "2019-05-03T15:43:48", "url": "https://files.pythonhosted.org/packages/dc/dc/c0f2bdc9ad37f7f89737350af8c5a05f67bab1b380fdda883ddc579f27ed/sheetwhat-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "68000c2c36db0870eb9caa4804bebed6", "sha256": "cfe35a6c7405dfbbe0af88479baddea681463dc4649133d4806f4a3447f2d892" }, "downloads": -1, "filename": "sheetwhat-0.5.1.tar.gz", "has_sig": false, "md5_digest": "68000c2c36db0870eb9caa4804bebed6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23588, "upload_time": "2019-05-13T16:09:03", "url": "https://files.pythonhosted.org/packages/e0/cf/6401bfd65c690fea1077de3ed79125c987663ab045427440939743a68817/sheetwhat-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "6ff657a632544c7a60af5cd3e4e59f71", "sha256": "aa06b8880da910484ba723bb31145d005c32db8feda25df7e2200ad28a5fb13a" }, "downloads": -1, "filename": "sheetwhat-0.5.2.tar.gz", "has_sig": false, "md5_digest": "6ff657a632544c7a60af5cd3e4e59f71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23588, "upload_time": "2019-05-14T15:59:25", "url": "https://files.pythonhosted.org/packages/27/4d/19541a42da642fbd974cac08075545393f9214386fee013e06f1f41d295b/sheetwhat-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "4964c62c770596788e5109d370fa896c", "sha256": "1645f5c11395dbda2a2b15214a6ff46c56365f7a738e47dc876aa2dbbf446bbe" }, "downloads": -1, "filename": "sheetwhat-0.5.3.tar.gz", "has_sig": false, "md5_digest": "4964c62c770596788e5109d370fa896c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23665, "upload_time": "2019-06-11T13:23:22", "url": "https://files.pythonhosted.org/packages/c9/35/ca9105713d3eadecfb005c88925c81e844c583509a60854aa47735231f5a/sheetwhat-0.5.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4964c62c770596788e5109d370fa896c", "sha256": "1645f5c11395dbda2a2b15214a6ff46c56365f7a738e47dc876aa2dbbf446bbe" }, "downloads": -1, "filename": "sheetwhat-0.5.3.tar.gz", "has_sig": false, "md5_digest": "4964c62c770596788e5109d370fa896c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23665, "upload_time": "2019-06-11T13:23:22", "url": "https://files.pythonhosted.org/packages/c9/35/ca9105713d3eadecfb005c88925c81e844c583509a60854aa47735231f5a/sheetwhat-0.5.3.tar.gz" } ] }