Skip to content

datacamp/pythonwhat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f0bfbe3 · Dec 30, 2024
Sep 9, 2024
Jan 31, 2024
Dec 30, 2024
Sep 11, 2024
Apr 20, 2018
May 18, 2018
Jul 31, 2019
Sep 16, 2021
Dec 19, 2017
Mar 25, 2019
Dec 13, 2016
Sep 9, 2024
Sep 16, 2021
Sep 9, 2024
Sep 11, 2024
Sep 9, 2024
Mar 25, 2019

Repository files navigation

pythonwhat

Build Status PyPI version Documentation Status FOSSA Status

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.

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.9.6
pip3.9 install -r requirements-test.txt
pip3.9 install -e .
pytest

Contributing

Bugs? Questions? Suggestions? Create an issue, or contact us!

License

FOSSA Status