Skip to main content

A tool that creates a programming contest folder structure

Project description

RoundCreator

Create a folder structure for programming contest problems. It is intended to work in Python 3 and in Linux environment, but that does not mean that it cannot work on other platforms such as Windows or MacOS.

Installation

If you have cloned this repo, you can type python setup.py install --user. This will install a package called "RoundCreator" and will create a "RoundCreator" terminal command.

General overview

RoundCreator accepts some command line arguments and then does some stuff. Its arguments (and its default values) are:

  • --name Contest name. Its default value is "myContest"
  • --amount Number of problems. Its default value is 5
  • --single Type it if you want a single problem. It will place the source and scripts in the contest folder. Overrides --amount
  • --author Your name
  • --command Shell command to execute after creating the folder structure. Will be execute inside the contest folder. Its default value is chmod 777 * -R

A simple example

Let's suppose that you are competing in a contest called "hardContest" which has two problems (a and b), then, the following command:
RoundCreator --name hardContest --amount 2

Will create the following folder structure:

$ tree hardContest/
hardContest/
├── a
│   ├── compile.sh
│   └── main.cc
└── b
    ├── compile.sh
    └── main.cc

2 directories, 4 files

And, given that the default command changes the permissions of the whole folder structure, you should expect to see something similar to this when listing the files:

$ ls -ltRa
.:
total 16
drwxrwxr-x 4 sergiorgs sergiorgs 4096 Aug  8 10:22 .
drwxrwxr-x 3 sergiorgs sergiorgs 4096 Aug  8 10:22 ..
drwxrwxrwx 2 sergiorgs sergiorgs 4096 Aug  8 10:22 a
drwxrwxrwx 2 sergiorgs sergiorgs 4096 Aug  8 10:22 b

./a:
total 16
drwxrwxrwx 2 sergiorgs sergiorgs 4096 Aug  8 10:22 .
drwxrwxr-x 4 sergiorgs sergiorgs 4096 Aug  8 10:22 ..
-rwxrwxrwx 1 sergiorgs sergiorgs  236 Aug  8 10:22 compile.sh
-rwxrwxrwx 1 sergiorgs sergiorgs  342 Aug  8 10:22 main.cc

./b:
total 16
drwxrwxrwx 2 sergiorgs sergiorgs 4096 Aug  8 10:22 .
drwxrwxr-x 4 sergiorgs sergiorgs 4096 Aug  8 10:22 ..
-rwxrwxrwx 1 sergiorgs sergiorgs  236 Aug  8 10:22 compile.sh
-rwxrwxrwx 1 sergiorgs sergiorgs  342 Aug  8 10:22 main.cc

Templates

The code templates are the following:

C++ source code

/*
    Template by RoundCreator
    https://github.com/srgrr/RoundCreator
    
    Author: ##AUTHOR##
*/
#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
using vi = vector<int>;
using vvi = vector<vi>;
using vll = vector<ll>;
using vvll = vector<vll>;

int main() {
  ios_base::sync_with_stdio(0); cin.tie(0);
  
}

Compile script

g++ main.cc -Wall -Wextra -pedantic -std=c++14 -O2 -Wshadow -Wformat=2 -Wfloat-equal -Wconversion -Wlogical-op -Wcast-qual -Wcast-align -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2 -fsanitize=address -fstack-protector

Running on Windows

Since RoundCreator is written in Python you should expect it to work in Windows too. However, there are two unadressed issues:

  • The compile script will have the sh extension
  • The --command flag defaults to a linux command These two issues can be addressed by using some sort of unix terminal in windows instead of cmd.exe

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

RoundCreator-2.1.0.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file RoundCreator-2.1.0.tar.gz.

File metadata

  • Download URL: RoundCreator-2.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.15+

File hashes

Hashes for RoundCreator-2.1.0.tar.gz
Algorithm Hash digest
SHA256 f26f71aa4d0d3905fd15bf24445ce0a4c9c7d5400c805a5113e882167afb020c
MD5 f6dc1fe178499aebbe7e71225206ecf1
BLAKE2b-256 6403c9143d85ee942a5fcad76f945514331397b0a2c6a64daeb194be3e955fda

See more details on using hashes here.

Supported by

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