Module Interface
This grader can load specified tests in a desired loaction that match a specified pattern then run them against source code in another module. The results are collected in CSV format with configurable overrides for each test. Test runs can also change based on a custom submission name (e.g. student name). If grading the submission fails, it will fallback to grading a sepcified template submission directory. It can load a config file that can rename the submission directory to a custom label and can assign weights to individual tests. The help output for the grader is below:
usage: grader [-h] [--submission SUBMISSION] [--tests TESTS] [--test-pattern TEST_PATTERN] [--output OUTPUT] [--log LOG] [--config CONFIG] path
positional arguments:
path Path of the module to grade. Defaults to ./
optional arguments:
-h, --help show this help message and exit
--submission SUBMISSION
Submission name to grade.
--tests TESTS Path of tests to run. Defaults to ./
--test-pattern TEST_PATTERN
Test name pattern to match. Defaults to "test*.py"
--output OUTPUT Output file for scores. Defaults to stdout.
--log LOG Log file to use. Defaults to stdout.
--config CONFIG Config file to use.
Tests Discovery
Tests to run can be located anywhere using a combination of the --tests and --test-pattern args. By default, they are searched for under the current directory and match the test*.py pattern. Tests are discovered using the unittest module.
Grader Config
The grader config can be specified with the --config arg. It is a json file that can specify what happens when a certain test runs or when a certain submission is graded. Individual test configs should be under the "tests" map and the key should be of the form: testFunction (test_filename.TestCaseName). Inividual submission configs should be under the "submissions" map and match the name of the submission. An example format is below:
{
"tests": {
"testSimple1 (test_simple.TestSimpleTestCase)": {
"name": "Simple Test 1",
"weight": 2
}
},
"submissions": {
"submission_name": {
"name": "custom label here"
}
}
}
Metadata
Release files for grader-purdueece 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| grader-purdueece-0.0.3.tar.gz | 4.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grader_purdueece-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.5 kB
Release files / grader-purdueece-0.0.3.tar.gz
| Download URL | grader-purdueece-0.0.3.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4314b8d3e8cd8e34753bd7bcb840c0acc9e63c4c3a6bfa506ce9697cd7956b8
|
|
BLAKE2b-256 checksum How to use checksums |
7dd55f339e50b4793713c8806a5763c952eb7608b760cd69bfb3ef00efe0ebb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / grader_purdueece-0.0.3-py3-none-any.whl
| Download URL | grader_purdueece-0.0.3-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21fe20fddf26ec41960585a75205595c4c10f7b9869f00aadfb4da94553a89cc
|
|
BLAKE2b-256 checksum How to use checksums |
a1dfdc5d5a512331a3fc702f46c4900557f4cec196bbaaa4ffe26f5026d3adde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Security for grader-purdueece 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.