TMC course and assignment creation helper
Project description
TMC Course creation helper
tmc-course
helps with managing (python-based) TestMyCode courses by allowing you to initialize, update and test them.
Installing
pip install tmc-course
Usage
usage: tmc-course [-h] [--version] [--quiet | --debug] ACTION ...
Helper for building TestMyCode python programming courses
positional arguments:
ACTION
init Initialize a new course, part or assignment
test Test a new course, part or assignment
update Update TMC-python-runner embedded in assignments
options:
-h, --help show this help message and exit
--version show program's version number and exit
--quiet, -q Only output warning
--debug, -d Output debugging information
tmc-course init
- Initialize new courses, parts and assignments
Run the init
command to initialize a new course, part of assignment from a project skeleton that contains the files required by TMC to function correctly.
Initialize new course
usage: tmc-course init course [-h] path [path ...]
positional arguments:
path Path(s) of the new course(s)
options:
-h, --help show this help message and exit
Initialize new part
Parts are collections of assignments
usage: tmc-course init part [-h] path [path ...]
positional arguments:
path Path(s) of the new part(s)
options:
-h, --help show this help message and exit
Initialize new assignment
Assignments are initialized in either English (-e
) or Finnish (-f
). The freshly initialized assignments are built with a skeleton structure which showcases the use of tests and points, and contains the additional files required by TMC.
usage: tmc-course init assignment [-h] (-e | -f) path [path ...]
positional arguments:
path Path(s) of the new assignment(s)
options:
-h, --help show this help message and exit
-e, --english Use English language templates
-f, --finnish Use Finnish language templates
tmc-course update
Update TMC files
The update
command updates the files required by TMC for all assignments
usage: tmc-course update [-h] path
positional arguments:
path Course root directory
options:
-h, --help show this help message and exit
tmc-course test
Run tests for the course
Use the test
command to run the tests for a course, part or assignment the same way the TMC server would run them. This verifies your model solutions pass the tests.
usage: tmc-course test [-h] [--details] path [path ...]
positional arguments:
path Path(s) to test (course, part or assignment)
options:
-h, --help show this help message and exit
--details Show more details about test results
By default, detailed information is only shown about assignments that fail
their tests. Use --details
to show additional help.
As a pre-commit
hook
tmc-course
can be used as a pre-commit
hook. When set up correctly, tmc-course test
is ran for the repository on commit.
To use tmc-course
as a pre-commit
hook, add the the following config:
- repo: https://github.com/ljleppan/tmc-course
rev: v1.0.0b6
hooks:
- id: tmc-course
Development
Installing
pip install .[dev]
pre-commit install
Pre-commit hooks
The repo comes set up for a combination of mypy
, black
, flake8
and isort
. These are all set up as pre-commit
hooks. Assuming you run pre-commit install
as shown above, these will automatically run whenever you attempt to commit code into git. I suggest running mypy
using --strict
.
Tox and tests
Run tox
to manually run all pre-commit hooks and tests. Tests fail if test coverage goes below 80 %.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tmc-course-1.0.0b6.tar.gz
.
File metadata
- Download URL: tmc-course-1.0.0b6.tar.gz
- Upload date:
- Size: 138.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28d5f6ac241d91a8062808974ef2000475f575f084e44b5703bceb75a76d3d2d |
|
MD5 | 6e51eb859530e48b22615d56155f361c |
|
BLAKE2b-256 | 445151c0122b2178deace615aefb9f77834763ff03c6edf18bfa5969cbe3efdf |
File details
Details for the file tmc_course-1.0.0b6-py3-none-any.whl
.
File metadata
- Download URL: tmc_course-1.0.0b6-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7899a1c8b322c3346325dd49cef13a46b95c8af3ee2e1fcf6d9ef022fc01139f |
|
MD5 | 4bf7747669def1ed4a9e052c04b0828c |
|
BLAKE2b-256 | cb64ef65b55d18d6e0c205c378b85794aad68b3e065d54e3b54f25cf85098f80 |