Skip to main content

hac - Helper for Algorithm Competitions

Project description

License PyPI Version PyPI Monthly downloads PyPI Supported Python versions Linux Build status Code Quality

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

Codeforces.com

YES

NO

Rosalind

YES

Sphere online judge

PARTIAL

Codechef

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:

  1. copy default configuration files in a temporary directory,

$ HAC_CONFIG_DIR=~/temp_config hac --copy-config
  1. customize interesting files in ~/temp_config,

  2. move only customized files to ~/.config/hac, e.g.

$ mkdir -p ~/.config/hac
$ cp ~/temp_config/hacrc ~/.config/hacrc
  1. 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

hac-1.0.5.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

hac-1.0.5-py2.py3-none-any.whl (42.3 kB view details)

Uploaded Python 2 Python 3

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

Hashes for hac-1.0.5.tar.gz
Algorithm Hash digest
SHA256 df596b999975a30988f40245b343ecf3c5a53b445beef5f0328e38faa84218f5
MD5 0e17894c9df755a337202c6352466ef6
BLAKE2b-256 9777c5e280720061ffee05ec134738afc39f0904747174100b145f3d0377f0cc

See more details on using hashes here.

File details

Details for the file hac-1.0.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hac-1.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7ef4f62c11f4bf0d40e8d3da255e90024be0f5270972faaca9493910b81981e9
MD5 6036ff10175c915df1a4cff5e0f25056
BLAKE2b-256 dc614c4bf7425575152485fbe9d13d273a7a36e13697ef4d9f728eea0de566ab

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