Skip to main content

Check if a program only uses a subset of the Python language.

Project description

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. 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 installation instructions, and use the M269 technical forum or the tutor forum to report issues and ask questions.

Otherwise, follow the instructions on how to install, use and configure allowed. If you need help, post your query in the Q & A discussion forum.

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.
  • If you require a new feature, please suggest it in the ideas discussion forum.
  • If you spot an error in the code or documentation, please check if it has been reported, before creating a new issue.
  • If you want to contribute code or documentation that addresses an open issue, please read first our code contribution guide. 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. The text is licensed under a Creative Commons Attribution 4.0 International Licence.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allowed-1.5.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

allowed-1.5.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file allowed-1.5.0.tar.gz.

File metadata

  • Download URL: allowed-1.5.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.11 Darwin/22.6.0

File hashes

Hashes for allowed-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6959e2894d6759fc5b1564195d0909cc24875acbdb48e2bf293e18e956aa9b5b
MD5 bf1458065d1397348a6c454b393fe51b
BLAKE2b-256 8b90976a6d3bd3ee17d9c0b6d16bd3e6e8defcd11df59b1650590e630b7c105a

See more details on using hashes here.

File details

Details for the file allowed-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: allowed-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.11 Darwin/22.6.0

File hashes

Hashes for allowed-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b03fe1535454defc0eac4f84f984ca2ea9bbd5fdbbaba87a55c5a4cbaef1b7ed
MD5 c5f84d50907dad129b42a9dd576fc07d
BLAKE2b-256 93d7e93575d60d1c8c62a2457a70d2cfdff66a34e4e0dbe0d8c6d35c065edae9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page