Skip to main content

GatorGrade executes GatorGrader checks!

Project description

GatorGrade: A Python Tool to Implement GatorGrader

GatorGrade is a Python tool that executes GatorGrader, an automatic grading tool that can be used to check assignments through user-created checks. GatorGrade is the newer Python-based version of GatorGradle.

Installing GatorGrade

GatorGrade requires Python 3.7 or later. To install GatorGrade, we recommend using the pipx Python application installer. Once you have pipx installed, you can install GatorGrade by running pipx install gatorgrade.

Using GatorGrade

To use GatorGrade to run GatorGrader checks for an assignment, the assignment must contain a gatorgrade.yml file that defines the GatorGrader checks. Instructors, for more information on configuring the gatorgrade.yml file, see the Configuring GatorGrader Checks section below.

To use GatorGrade to run GatorGrader checks, run the gatorgrade command within the assignment. This command will produce output that shows the passing (:heavy_check_mark:) or failing status (:x:) of each GatorGrader check as well as the overall percentage of passing checks. The following is the output of running GatorGrade on the GatorGrade Hello World assignment.

Running set up commands...
Installing dependencies from lock file

No dependencies to install or update
Setup complete!
Finished!

✔  Complete all TODOs
✔  Call the say_hello function
✔  Call the say_hello_color function
✘  Complete all TODOs
✘  Write at least 25 words in writing/reflection.md
✔  Pass pylint
✔  Have a total of 5 commits, 2 of which were created by you

-~-  FAILURES  -~-

✘  Complete all TODOs
   → Found 3 fragment(s) in the reflection.md or the output
✘  Write at least 25 words in writing/reflection.md
   → Found 3 word(s) in total of file reflection.md

        ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
        ┃ Passed 5/7 (71%) of checks for gatorgrade-hello-world! ┃
        ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Configuring GatorGrader Checks

Instructors can configure GatorGrader checks for an assignment by creating a gatorgrade.yml file. In this file, you can configure GatorGrader checks to run within a file context (i.e. for a specific file; MatchFileFragment is an example of a GatorGrader check that should be run within a file context) or in the global context (i.e. for the assignment in general; CountCommits is an example of a GatorGrader check that should be run in the global context).

To configure GatorGrader checks to run within a file context, specify the path to the file as a key (or nested keys) before specifying the GatorGrader checks. For each GatorGrader check, define a description to print in the output, the name of the check, and any options specific to the GatorGrader check.

- src:
    - hello_world.py:
        - description: Complete all TODOs
          check: MatchFileFragment
          options:
            fragment: TODO
            count: 0
        - description: Define a print statement
          check: MatchFileFragment
          options:
            fragment: print(
            count: 1

To configure GatorGrader checks to run in the global context, specify the GatorGrader checks at the top level of the gatorgrade.yml file (i.e. not nested within any path).

- description: Have a total of 8 commits, 5 of which were created by you
  check: CountCommits
  options:
    count: 8

Using GatorGrade to Generate A Boilerplate gatorgrade.yml File

For convenience, instructors can use GatorGrade to generate a boilerplate gatorgrade.yml file that contains files or folders given to the GatorGrade command.

To generate a gatorgrade.yml file, run gatorgrade generate <TARGET_PATH_LIST>, where <TARGET_PATH_LIST> is a list of relative paths to files or folders you want to include in the gatorgrade.yml file. These paths must correspond to existing files or folders in the current directory. Any given folders will be expanded to the files they contain. Please note that files and folders that start with __ or . and empty folders will be automatically ignored.

Contributing to GatorGrade

If you would like to contribute to GatorGrade, please refer to the GatorGrade Wiki for contributing guidelines.

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

gatorgrade-0.3.1.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gatorgrade-0.3.1-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file gatorgrade-0.3.1.tar.gz.

File metadata

  • Download URL: gatorgrade-0.3.1.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.7.13 Linux/5.15.0-1019-azure

File hashes

Hashes for gatorgrade-0.3.1.tar.gz
Algorithm Hash digest
SHA256 825a34b5f55e90d0e0a5b4b2a51b9f6511361416041f30e12dc5e664049a8995
MD5 fc23362d0bbb2afac0670538aeae8155
BLAKE2b-256 4d96b35f6ca5bf7fdbd9c94dba893fd91d4ecfbb286897b6b3cc112f75a19bf8

See more details on using hashes here.

File details

Details for the file gatorgrade-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: gatorgrade-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.7.13 Linux/5.15.0-1019-azure

File hashes

Hashes for gatorgrade-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e78510a4a5a6476b95e153815bdd8ef822b30965485613d31e3f526748b21e67
MD5 3c5e57bfb77f63a0929d87336e6a12bf
BLAKE2b-256 34f4ac05b5df4d2c39ecd1b6e9145aec94f615ff3fad30219627ccf6a1b81dec

See more details on using hashes here.

Supported by

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