Skip to main content

Codeforces CLI that makes writing contests more efficient.

Project description

Codeforces Toolbox

Downloads Version PyPI License PyPI

This tool is a CLI (Command Line Interface) that makes writing Codeforces contests more efficient.

Features

  • Create files based on the specified template. These files will be named appropriately for the contest, for example 1000A, 1000B1, 1000B2, 1000C.
  • Download sample test from Codeforces.
  • Compile solution and test it.
  • Submit solution
  • Wait for the verdict

Supported languages: C++, C, Python, Java, Kotlin, Rust, C#, Go.

Settings configuration

cft config

Choose one of the following (type an integer):
  1. change the template file
  2. change username and password
  3. change programming language
  4. set compile command
  5. set run command

then you can just type an integer (1-5) and change your template file, username and password, language, run or compilation command.

See the FAQ at the bottom of this page.

Creating structure for a contest

cft race 1234 creates the following directory structure (provided that your programming language is C++):

1234/
  1234A.cpp
  1234B.cpp
  1234C.cpp
  1234D.cpp
  1234E.cpp
  1234F.cpp
  1234G.cpp

files 1234X.cpp are created by copying the previously specified template file.

It is recommended that you then change the current working directory (cd 1234) to operate more smoothly later.

You can also enter a task name (e.g. cft race 1234X) instead of a contest name, in which case a single file will be created.

Testing solution

cft test 1234A compiles your solution, downloads (if not yet downloaded) example test and checks if it passes.

If your current working directory is some/path/1234 you can type just cft test A.

If your answer uses floating point numbers you can determine what error will be acceptable by using -p or --precision flag.

cft test 1495A -p 1e-9
cft test 1495A --precision 1e-9

Submitting solution

cft submit 1234A submits solution and returns judgement verdict.

If your current working directory is some/path/1234 you can type just cft submit A.

Installation

Please first install Python 3.7 or higher from python.org. During installation, you should check the option 'Add Python to PATH'.

Then just copy and paste in your terminal this:

pip install codeforces-toolbox

If you want to upgrade the package, you can do this by:

pip install --upgrade codeforces-toolbox

The program will automatically check if there is a new version and try to install it if you run cft without any arguments or cft config.

If pip command is not found you can use pip3 install codeforces-toolbox or python3 -m pip install codeforces-toolbox.

Contribution & bugs

If you want to contribute to the project, fork this repository and open a new PR. If you have any questions or suggestions, email me (you can find my email address at my profile page) or create an issue.

FAQ

My favorite language is not supported!

Well, that is not a question, nevertheless I encourage you to create an issue in the repository.

Compile command, run command – what is this?

Compile command is the command you would use to compile your solution. For example: in C++ it can be g++ -Wall, in Java javac, in Kotlin kotlinc-native, in Rust rustc, in C# csc, in Go go build. Note that Python does not have a corresponding compiler because it is an interpreted language.

Run command is the command you would use to run your solution. If you are using a language that compiles to machine code that your operating system can run, you don't need this command. Otherwise, if you are using Python this can be python, python3, py, pypy. In the case of Java, it is probably java.

I assume that your compiler/interpreter is added to the PATH environment variable. If it is not, add it, or provide an absolute path, e.g. C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe instead of just python.

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

codeforces-toolbox-1.7.0.tar.gz (12.5 kB view details)

Uploaded Source

File details

Details for the file codeforces-toolbox-1.7.0.tar.gz.

File metadata

  • Download URL: codeforces-toolbox-1.7.0.tar.gz
  • Upload date:
  • Size: 12.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for codeforces-toolbox-1.7.0.tar.gz
Algorithm Hash digest
SHA256 e5760eabc69a444b7389f9b41058e3b11d1e75bb5904723d34177b1071bd22e4
MD5 123dfbcf96b01f8de20b7facd97e87c6
BLAKE2b-256 66049b091d73114f23436b2f486464cc1be672cc097a7562e48cb8358886a0ff

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