Metadata-Version: 2.5
Name: ikompete
Version: 0.3.0
Summary: Command-line client for the iKompete competition platform
Project-URL: Homepage, https://ikompete.dsrs.illinois.edu
Project-URL: Documentation, https://github.com/GiesDSRS/ikompete-cli/blob/main/docs/usage.md
Project-URL: Repository, https://github.com/GiesDSRS/ikompete-cli
Project-URL: Issues, https://github.com/GiesDSRS/ikompete-cli/issues
Author: Gies Data Science Research Services, University of Illinois
License-Expression: MIT
License-File: LICENSE
Keywords: cli,competitions,data-science,education,hackathon,ikompete,leaderboard,machine-learning,submissions
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: rich>=13
Requires-Dist: tomli>=2; python_version < '3.11'
Requires-Dist: typer>=0.12
Description-Content-Type: text/markdown

# ikompete

[![PyPI](https://img.shields.io/pypi/v/ikompete)](https://pypi.org/project/ikompete/)
[![Python](https://img.shields.io/pypi/pyversions/ikompete)](https://pypi.org/project/ikompete/)
[![License: MIT](https://img.shields.io/pypi/l/ikompete)](https://github.com/GiesDSRS/ikompete-cli/blob/main/LICENSE)

Command-line client for the [iKompete](https://ikompete.dsrs.illinois.edu) competition
platform: log in, see your competitions, pull a starter kit, then validate and submit
from your terminal.

```
 _ _                       _
(_) |_____ _ __  _ __  ___| |_ ___
| | / / _ \ '  \| '_ \/ -_)  _/ -_)
|_|_\_\___/_|_|_| .__/\___|\__\___|
                |_|
```

## Install

Python 3.10 or later:

```
pip install ikompete        # or: pipx install ikompete
```

## Quick start

```
ikompete login              # approve a one-time code in your browser
ikompete competitions       # your competitions, then open ones (Kit column)
ikompete pull 12            # download competition 12's starter kit
cd my-competition           # edit the file the kit tells you to
ikompete validate           # check it locally and with the server (no quota used)
ikompete submit             # upload it as your next version
ikompete run                # graded by the job runner: state, score, why it failed
```

## Commands

| Command | What it does |
|---|---|
| `login` / `logout` | Log in with a pairing code in your browser; log out and revoke the session. |
| `status` | Show the logged-in user, server and session expiry. |
| `profile` | Show your account. |
| `competitions` | List the competitions you joined, then the open ones. |
| `pull ID [DEST]` | Download a competition's starter kit. |
| `validate [PATH]` | Check a submission without using an attempt. |
| `submit [PATH]` | Validate, then upload a submission. |
| `run [ID]` | Latest run of your submission (job-runner competitions): state, score, reason. |
| `logs [ID]` | Print (or `--output FILE`) the log of your latest finished run. |

Every command accepts `--json` for scripts and `--api-url` to pick a server.

## Documentation

- [Usage](https://github.com/GiesDSRS/ikompete-cli/blob/main/docs/usage.md): login, starter kits, validate and submit, JSON output,
  configuration, exit codes and credentials.
- [Creating a competition kit](https://github.com/GiesDSRS/ikompete-cli/blob/main/docs/creating-a-competition-kit.md): for hosts.
- [Development and releasing](https://github.com/GiesDSRS/ikompete-cli/blob/main/docs/development.md).

## License

MIT. See [LICENSE](https://github.com/GiesDSRS/ikompete-cli/blob/main/LICENSE).
