hac - Helper for Algorithm Competitions
Project description
hac is extensible and configurable command-line tool for algorithm competitions. It:
prepares directory structures and source files,
prepares runner files (scripts used to test solutions),
downloads test-cases.
Install
Recommended to install as non-root:
$ pip install --upgrade --user hac
Usage
Example 1
A) For problems “A”, “B” and “C” from Codeforces contest #527 prepare:
source file from cpp highest priority template (has lowest X among cpp.X language templates),
runner from sh.5 template (interpolated for cpp language template),
test-cases downloaded from Codeforces.
$ hac -lcpp -rsh.5 codeforces/527 a b c
With default configuration all of the next lines do same as the one above:
$ hac -lcpp.5 -rsh.5 prep http://codeforces.com/527/A B C
$ hac prep codeforces.com/527 B 1 c
$ hac -d2 CODEFORCES/527 1 2 3
$ hac forc/527 a b c
B) Write solution for problem “B” and test it on test-cases:
$ cd 527/B
$ # ... modify B.cpp
$ ./B.cpp.sh -e # test solution on test-cases
$ ./B.cpp.sh -c # clean generated outputs
C) Debug solution for problem “B” on 2nd test-case:
$ ./B.cpp.sh -d 2
Example 2
Display general information about hac:
$ hac --help
$ hac --version
Display information about hac and selected site/problems:
$ hac -v show codeforces/527 # verbose
$ hac -V show codeforces/527 # terse
Support
Sites:
Site \ Fetching problems from |
Contest |
Archive |
---|---|---|
YES |
NO |
|
YES |
||
PARTIAL |
||
NO |
NO |
Runner/language combinations:
C |
C++ |
Python |
Java |
Pascal |
|
---|---|---|---|---|---|
POSIX shell |
sh.5 / c.5 |
sh.5 / cpp.5 |
sh.5 / py.5 |
sh.5 / java.5 |
sh.5 / pas.5 |
Configuration
User specific configuration should be placed in ~/.config/hac directory by default (to change configuration directory you need to set HAC_CONFIG_DIR environment variable).
In order to configure hac according to your preferences:
copy default configuration files in a temporary directory,
$ HAC_CONFIG_DIR=~/temp_config hac --copy-config
customize interesting files in ~/temp_config,
move only customized files to ~/.config/hac, e.g.
$ mkdir -p ~/.config/hac
$ cp ~/temp_config/hacrc ~/.config/hacrc
remove temporary directory.
$ rm -r ~/temp_config
This approach is desirable because only configuration files that differ from the default ones should be present in configuration directory, thereby effectively overshadowing the default configuration.
Additional
For more information about hac please see User manual
For information about contributions please check Contributing chapter from User manual.
Change Log
Please see CHANGELOG.
Licence
Please see LICENSE.
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
Built Distribution
File details
Details for the file hac-1.0.5.tar.gz
.
File metadata
- Download URL: hac-1.0.5.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df596b999975a30988f40245b343ecf3c5a53b445beef5f0328e38faa84218f5 |
|
MD5 | 0e17894c9df755a337202c6352466ef6 |
|
BLAKE2b-256 | 9777c5e280720061ffee05ec134738afc39f0904747174100b145f3d0377f0cc |
File details
Details for the file hac-1.0.5-py2.py3-none-any.whl
.
File metadata
- Download URL: hac-1.0.5-py2.py3-none-any.whl
- Upload date:
- Size: 42.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ef4f62c11f4bf0d40e8d3da255e90024be0f5270972faaca9493910b81981e9 |
|
MD5 | 6036ff10175c915df1a4cff5e0f25056 |
|
BLAKE2b-256 | dc614c4bf7425575152485fbe9d13d273a7a36e13697ef4d9f728eea0de566ab |