pythonwhat
Verify Python code submissions and auto-generate meaningful feedback messages. Originally developed for Python exercises on DataCamp for so-called Submission Correctness Tests, but can also be used independently.
- New to teaching on DataCamp? Check out https://instructor-support.datacamp.com
- To learn what SCTs are and how they work, visit this article specifically.
- For a complete overview of all functionality inside pythonwhat and articles about what to use when, consult https://pythonwhat.readthedocs.io.
Installation
# latest stable version from PyPi
pip install pythonwhat
# latest development version from GitHub
pip install git+https://github.com/datacamp/pythonwhat
Demo
To experiment locally, you can use setup_state() and write SCTs interactively.
The code throws an error when the underlying checks fail.
# make all checking functions available
from pythonwhat.test_exercise import prep_context
_, ctxt = prep_context()
globals().update(ctxt)
# initialize state with student and solution submission
from pythonwhat.test_exercise import setup_state
setup_state(stu_code = "x = 5", sol_code = "x = 4")
Ex().check_object('x')
# No error: x is defined in both student and solution process
Ex().check_object('x').has_equal_value()
# TestFail: Did you correctly define the variable `x`? Expected `4`, but got `5`.
# Debugging state
Ex()._state # access state object
dir(Ex()._state) # list all elements available in the state object
Ex()._state.student_code # access student_code of state object
To learn how to include an SCT in a DataCamp course, visit https://instructor-support.datacamp.com.
Run tests
pyenv local 3.12.7
pip3.12 install -r requirements-test.txt
pip3.12 install -e .
pytest
Contributing
Bugs? Questions? Suggestions? Create an issue, or contact us!
License
Metadata
Release files for pythonwhat 2.30.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pythonwhat-2.30.1.tar.gz | 106.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pythonwhat-2.30.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 191.9 kB
Release files / pythonwhat-2.30.1.tar.gz
| Download URL | pythonwhat-2.30.1.tar.gz |
|---|---|
| Size | 106.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
802c20d0057f077bbc295140c1ed0045909487578831d2eea0a756ba14b02d80
|
|
BLAKE2b-256 checksum How to use checksums |
ce089b0527c336e532963d9f97d41598ee00dad7e94414850f373c6805c6b98e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.22
|
Release files / pythonwhat-2.30.1-py3-none-any.whl
| Download URL | pythonwhat-2.30.1-py3-none-any.whl |
|---|---|
| Size | 85.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e141aaed630898009ae351ca80ea2f79fe159ec5dec6ec8cf8766005a1ef234
|
|
BLAKE2b-256 checksum How to use checksums |
440844eddff11fcd9430f6c238af32f11df0ccf09e02a4789cc77815c4228aab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.22
|