CLI tool for creating sio2 task packages
Project description
sinol-make
sinol-make
is a CLI tool for creating and verifying problem packages
for sio2
with features such as:
- measuring time and memory in the same deterministic way as sio2,
- running the solutions in parallel,
- keeping a git-friendly report of solutions' scores,
- catching mistakes in the problem packages as early as possible,
- and more.
Contents
Why?
The purpose of the tool is to make it easier to create good problem packages
for official competitions, which requires collaboration with other people
and using a multitude of "good practices" recommendations.
While there are several excellent CLI tools for creating tests and solutions,
they lack some built-in mechanisms for verifying packages and finding mistakes
before uploading the package to the judge system.
As sinol-make was created specifically for the sio2 problem packages,
by default it downloads and uses sio2's deterministic mechanism of measuring
solutions' runtime, called oiejq
.
Installation
It's possible to directly install sinol-make through Python's package manager pip, which usually is installed alongside Python:
pip3 install sinol-make
As oiejq
works only on Linux-based operating systems,
we do not recommend using operating systems such as Windows or macOS.
Nevertheless sinol-make
supports those operating systems,
though there are additional installation steps required to use
other tools for measuring time (which are non-deterministic and produce reports different from sio2):
- Windows (WSL):
apt install time timeout
- macOS:
brew install gnu-time coreutils
Usage
The availabe commands (see sinol-make --help
) are:
sinol-make run
-- Runs selected solutions (by default all solutions) on selected tests (by default all tests) with a given number of CPUs. Measures the solutions' time with oiejq, unless specified otherwise. After running the solutions, it compares the solutions' scores with the ones saved in config.yml. Runsinol-make run --help
to see available flags.
Reporting bugs and contributing code
- Want to report a bug or request a feature? Open an issue.
- Want to help us build
sinol-make
? Create a Pull Request and we will gladly review it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sinol_make-1.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cbb880ba459dbfe14e7f0b8c940aa080848023934b3ca0d73b8a58d665ae264 |
|
MD5 | e095a4ea6aa4ceb3d0419fb57a12ad1a |
|
BLAKE2b-256 | ccc7f590da460eb7c0be03b44f7f8f27f5557e4086386f8b19afaed31067bfb7 |