Skip to main content

A command-line tool for Kattis

Project description

Kattis-CLI

Kattis CLI - download, test and submit Kattis problems using CLI. Inspired by the official Kattis CLI: https://github.com/Kattis/kattis-cli

Tests PyPI version PyPI - Downloads PyPI - License

Requirements

  • Python 3.8+ (PyPy preferred as Kattis uses PyPy to run your Python3 solutions)
  • Kattis account

Windows

  • Use Command Line or PowerShell
  • Make sure python is in your PATH
    • Install Python from Windows Store
  • if you get codec error while running kattis-cli, run the following command in Command Prompt:
python --version
chcp 65001

Installation

If you've Python version 3.8 or higher, you can skip creating virtual environment. If you wish to create a virtual environment, see intructions below.

Create and activate virtual environment using venv

Create and activate virtual environment using conda

Install Kattis-cli

  • activate virtual environment if you've created one for kattis-cli
  • run the following command in Command Prompt or PowerShell
pip install kattis-cli
python -m pip install kattis-cli
kattis --version
  • on Windows add the path shown in the output of the above command to your PATH environment variable

Update/Upgrade Kattis-CLI

  • remove or rename .kattis-cli.toml file in your home directory
  • activate virtual environment if you've created one for kattis-cli
kattis --version
pip install kattis-cli --upgrade
python -m pip install kattis-cli --upgrade
  • on Windows add the path shown in the output of the above command to your PATH environment variable

Kattis configuration

  • run the following command and enter your Kattis credentials
  • this will create a .kattisrc file in your home directory
kattis setup

Usage

kattis <command> [options]
kattis --help

Commands

Download a problem sample files and it's metadata

Problem id

kattis get <problem_id>

Get problem id from URL

Display problem metadata

cd <problem_id>
kattis info

Problem info

Test a solution locally

Test

  • currently the following languages have been tested: Python 3, C++, NodeJS, C, Java
  • make sure CLI compilers are in your PATH
  • make sure python3 files have first line shebang: !/usr/bin/env python3
    • or have extensions .py3
  • update the .kattis-cli.toml file in your home directory to add more languages
  • see kattis_cli/.kattis-cli.toml file for example.
cd <problem_id>
kattis test # for exact comparion of answers (string and int)
kattis test -a 6 # Answer accepted upto 6 decimal places of accuracy

Testing floating point results

  • for floating point ouput, problem provides the tolerance or accuracy upto certain decimal points
  • one can use -a <N> switch after kattis test command to provide the decimal places of accuracy
  • e.g., the following command checks for accuracy upto 6 decimal points or absolute error upto $10^-6$
kattis test -a 6

Submit a problem

  • make sure you've configured kattis-cli
kattis setup
  • see live results right on the terminal
cd <problem_id>
kattis submit

Result

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. Adding support for more languages is highly appreciated.

Using this Repo

  • clone this repo
  • create virtual environment with pypy 3.8 or higher
  • using conda the following command creates kattis virtual environment with pypy3.8

Using conda and virtual environment

conda create -c conda-forge -n kattis pypy python=3.8
conda activate kattis
  • install dependencies
pip install -r requirements.txt
  • run the following command to install kattis-cli from this repo on Mac/Linux
make
./build.sh
pip install dist/kattis_cli-x.x.x-py3-none-any.whl --force-reinstall  

Using Docker

  • clone this repo
  • run the following command to build and run the Dockerfile provided in this repo
  • if using Windows, run the following command in git-bash Terminal
bash run.sh

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

kattis_cli-1.0.3.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

kattis_cli-1.0.3-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file kattis_cli-1.0.3.tar.gz.

File metadata

  • Download URL: kattis_cli-1.0.3.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 PyPy/7.3.11 Darwin/23.6.0

File hashes

Hashes for kattis_cli-1.0.3.tar.gz
Algorithm Hash digest
SHA256 46a1598aeee87194916a6fcdc8c01da524a7f60fd557050734a6bae50f227d6f
MD5 092e7359b100217b30c1b89a0ebf4884
BLAKE2b-256 ae1b45c127a92b8afcd3bf2e216a210cd371a0deb3d9534bd73a96a3163764d3

See more details on using hashes here.

File details

Details for the file kattis_cli-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: kattis_cli-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 PyPy/7.3.11 Darwin/23.6.0

File hashes

Hashes for kattis_cli-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3811c1c70723655d7051d37b58fa2ab0784c1b82ff39c770770816832b8d7b74
MD5 2140c1e9a36fedd03177824626229ad1
BLAKE2b-256 f2ac9378f6a4ec8785f64987f1c06fa29dfdacea8c191c4c3a1a88055905cae4

See more details on using hashes here.

Supported by

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