Skip to content
/ tyora Public

CLI to interact with the mooc.fi instance of CSES

License

Notifications You must be signed in to change notification settings

madeddie/tyora

Repository files navigation

Tyora: mooc.fi CSES exercise task CLI

PyPI - Version Python Version from PEP 621 TOML GitHub Actions Workflow Status GitHub License

This script interacts with the mooc.fi instance of the CSES (https://cses.fi) website to perform various actions such as logging in, retrieving exercise lists, and submitting solutions. It provides a convenient way to view and submit tasks.

Features

  • Login: Log in to your CSES account using username and password.
  • Retrieve Exercise Lists: Get a list of exercises available on the CSES platform.
  • Submit Solutions: Submit your solutions to specific exercises on the platform.

Installation

pip install tyora

Usage

The script can be used from the command line. The following commands are available:

  • tyora login: Stores your mooc.fi username and password and tests if we can log in with them.
  • tyora list: Retrieves and displays a list of exercises available on the CSES platform.
  • tyora show <exercise_id>: Displays the details of a specific exercise.
  • tyora submit <exercise_id> <path_to_solution_file>: Submits a solution to a specific exercise.

Origin of name

The name "tyora" is derived from Finnish words: "työ" meaning "work" and "pyörä" meaning "wheel". Anyway, pyora was already taken, so I went with tyora... ;)

Contributing

Contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.

Rye

This project uses Rye to manage dependencies, formatting, linting and packaging. Install it using the instructions on the Rye website, then run rye sync in the root of the project to install the necessary tools.

How to use Rye

Reading the documentation is probably a good idea, but in short:

  • rye sync installs the necessary tools.
  • rye format formats the code.
  • rye lint lints the code.

pre-commit

We use pre-commit to run the linters before each commit. To install it, run rye sync and rye run pre-commit install. This is not strictly required, but it'll make your life easier by catching issues before the github actions deny your PR.

License

This project is licensed under the MIT License - see the LICENSE file for details.