Courses often use a restricted subset of a programming language and its library,
to reduce cognitive load, focus on concepts, simplify marking, etc.
`allowed` is a program that checks if your code files and Jupyter notebooks only
use the Python constructs that were taught.
`allowed` enables instructors to check in advance their examples, exercises and assessment
for inadvertent use of constructs that weren't taught. It also allows students
and instructors to check submitted code against the taught constructs.
To do its job, `allowed` requires a short file that lists which constructs were
introduced in which 'unit' of the course. That file can be used as a reference
document to onboard new tutors and to discuss the design of the course, e.g.
to check if important constructs are missing or if some units are overloaded.
Like all static analysis tools, `allowed` isn't perfect and will never be.
There may be false positives (code reported to be a violation, but isn't)
and false negatives (code that uses disallowed constructs but isn't reported).
To refer to `allowed` in a publication, please cite
> Michel Wermelinger.
> [_Checking Conformance to a Subset of the Python Language_](https://oro.open.ac.uk/88862).
> Proceedings of the Conference on Innovation and Technology in
> Computer Science Education (ITiCSE), vol. 2, pp. 573–574. ACM, 2023.
## Instructions
If you're an M269 student or tutor, follow the
[M269 software](https://dsa-ou.github.io/m269-installer) installation instructions,
and use the M269 technical forum or the tutor forum to report issues and ask questions.
Otherwise, follow the [instructions](https://dsa-ou.github.io/allowed/docs/installation.html)
on how to install, use and configure `allowed`.
If you need help, post your query in the
[Q & A discussion forum](https://github.com/dsa-ou/allowed/discussions/categories/q-a).
## Contributing
Any help to improve `allowed` is welcome and appreciated.
- If you use `allowed`, please share your experience and tips in the
[show & tell forum](https://github.com/dsa-ou/allowed/discussions/categories/show-and-tell).
- If you require a new feature, please suggest it in the
[ideas discussion forum](https://github.com/dsa-ou/allowed/discussions/categories/ideas).
- If you spot an error in the code or documentation, please check if it
[has been reported](https://github.com/dsa-ou/allowed/issues), before creating a new issue.
- If you want to contribute code or documentation that addresses
an [open issue](https://github.com/dsa-ou/allowed/issues),
please read first our [code contribution guide](https://dsa-ou.github.io/allowed/docs/contribution.html).
Your contribution will become available under the terms below.
## Licences
The code and text in this repository are
Copyright © 2023 by The Open University, UK.
The code is licensed under a [BSD 3-clause licence](https://github.com/dsa-ou/allowed/blob/main/LICENCE.MD).
The text is licensed under a
[Creative Commons Attribution 4.0 International Licence](http://creativecommons.org/licenses/by/4.0).
Raw data
{
"_id": null,
"home_page": "https://dsa-ou.github.io/allowed",
"name": "allowed",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "education",
"author": "Michel Wermelinger",
"author_email": "michel.wermelinger@open.ac.uk",
"download_url": "https://files.pythonhosted.org/packages/fe/d4/04e07a8e0383a097cda0db78550776e5b18cb40eef110a2173fb03d2db23/allowed-1.5.1.tar.gz",
"platform": null,
"description": "Courses often use a restricted subset of a programming language and its library,\nto reduce cognitive load, focus on concepts, simplify marking, etc.\n\n`allowed` is a program that checks if your code files and Jupyter notebooks only\nuse the Python constructs that were taught.\n\n`allowed` enables instructors to check in advance their examples, exercises and assessment\nfor inadvertent use of constructs that weren't taught. It also allows students\nand instructors to check submitted code against the taught constructs.\nTo do its job, `allowed` requires a short file that lists which constructs were\nintroduced in which 'unit' of the course. That file can be used as a reference\ndocument to onboard new tutors and to discuss the design of the course, e.g.\nto check if important constructs are missing or if some units are overloaded.\n\nLike all static analysis tools, `allowed` isn't perfect and will never be.\nThere may be false positives (code reported to be a violation, but isn't)\nand false negatives (code that uses disallowed constructs but isn't reported).\n\nTo refer to `allowed` in a publication, please cite\n> Michel Wermelinger.\n> [_Checking Conformance to a Subset of the Python Language_](https://oro.open.ac.uk/88862).\n> Proceedings of the Conference on Innovation and Technology in\n> Computer Science Education (ITiCSE), vol. 2, pp. 573\u2013574. ACM, 2023.\n\n## Instructions\n\nIf you're an M269 student or tutor, follow the\n[M269 software](https://dsa-ou.github.io/m269-installer) installation instructions,\nand use the M269 technical forum or the tutor forum to report issues and ask questions.\n\nOtherwise, follow the [instructions](https://dsa-ou.github.io/allowed/docs/installation.html)\non how to install, use and configure `allowed`.\nIf you need help, post your query in the\n[Q & A discussion forum](https://github.com/dsa-ou/allowed/discussions/categories/q-a).\n\n## Contributing\n\nAny help to improve `allowed` is welcome and appreciated.\n\n- If you use `allowed`, please share your experience and tips in the\n [show & tell forum](https://github.com/dsa-ou/allowed/discussions/categories/show-and-tell).\n- If you require a new feature, please suggest it in the\n [ideas discussion forum](https://github.com/dsa-ou/allowed/discussions/categories/ideas).\n- If you spot an error in the code or documentation, please check if it\n [has been reported](https://github.com/dsa-ou/allowed/issues), before creating a new issue.\n- If you want to contribute code or documentation that addresses\n an [open issue](https://github.com/dsa-ou/allowed/issues),\n please read first our [code contribution guide](https://dsa-ou.github.io/allowed/docs/contribution.html).\n Your contribution will become available under the terms below.\n\n## Licences\n\nThe code and text in this repository are\nCopyright \u00a9 2023 by The Open University, UK.\nThe code is licensed under a [BSD 3-clause licence](https://github.com/dsa-ou/allowed/blob/main/LICENCE.MD).\nThe text is licensed under a\n[Creative Commons Attribution 4.0 International Licence](http://creativecommons.org/licenses/by/4.0).\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Check if a program only uses a subset of the Python language.",
"version": "1.5.1",
"project_urls": {
"Changelog": "https://github.com/dsa-ou/allowed/blob/main/CHANGELOG.md",
"Homepage": "https://dsa-ou.github.io/allowed",
"Repository": "https://github.com/dsa-ou/allowed"
},
"split_keywords": [
"education"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e807265be3acced642e8250700b78f1a63e29e2e309d030b27e3c98f9dc09399",
"md5": "f1fbe1351e914d68969ca3ff141dc1e0",
"sha256": "3ff64c94da4f02de57c62a2083b1757237091943eaab0884c98e5c661940dd0f"
},
"downloads": -1,
"filename": "allowed-1.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f1fbe1351e914d68969ca3ff141dc1e0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 12445,
"upload_time": "2024-09-10T11:54:12",
"upload_time_iso_8601": "2024-09-10T11:54:12.585438Z",
"url": "https://files.pythonhosted.org/packages/e8/07/265be3acced642e8250700b78f1a63e29e2e309d030b27e3c98f9dc09399/allowed-1.5.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fed404e07a8e0383a097cda0db78550776e5b18cb40eef110a2173fb03d2db23",
"md5": "11bfb86b45513986d3de0f701f9abd4b",
"sha256": "27fc7163e6c31bc35d88eff6a0a948832bbc8fafd3b31da118dc990ccd973050"
},
"downloads": -1,
"filename": "allowed-1.5.1.tar.gz",
"has_sig": false,
"md5_digest": "11bfb86b45513986d3de0f701f9abd4b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 12256,
"upload_time": "2024-09-10T11:54:13",
"upload_time_iso_8601": "2024-09-10T11:54:13.636039Z",
"url": "https://files.pythonhosted.org/packages/fe/d4/04e07a8e0383a097cda0db78550776e5b18cb40eef110a2173fb03d2db23/allowed-1.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-10 11:54:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dsa-ou",
"github_project": "allowed",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "allowed"
}