Skip to main content

A Python Helper CLI for Competitive Programming

Project description

FastSnake

Python Package Pypi License Platforms Python Version

Tired of having to copy-paste your library code into every solution you write? FastSnake is a command-line tool that allows you to easily create, expand, run and test Python solutions for competitive programming problems.

This project provides useful CLI tools for competitive programming, such as algorithms and data structures, and tools for Codeforces and AtCoder platforms. But you will have to write your own code and library for the problems you want to solve.

Installing FastSnake:

$ pip install FastSnake

Use one of the commands below to check if the installation was successful.

$ fastsnake -v

or

$ python3 -m fastsnake -v

Basic Usage:

Starting a contest from Codeforces...

$ fastsnake codeforces -sc <contest_id>

Note: The contest ID can be found at contest URL https://codeforces.com/contest/<id>

Once you have written your solution, test it.

$ fastsnake test <problem>

You can also create your own generator, at test_generators folder, to bruteforce your solution.

$ fastsnake test <problem> -g <n_tests>

Note: By default, FastSnake will analyze the output with case sensitivity. However, you can enable case-insensitive analysis by using the --case-insensitive flag.

Starting a Custom Contest

Use the command below to start your own contest.

$ fastsnake start-custom-contest <n_problems>

Algorithms and Structures

FastSnake provides some algorithms and structures that can be injected to your final solution. See the sample below:

Python Solution:

from fastsnake.algorithms.min_coins import *

coins = []

for x in input().split():
    coins.append(int(x))

value = int(input())

result = min_coins(coins, value)
print(result)

Use the argument --list <algorithms | structures | external> to see all algorithms and structures provided by FastSnake.

Injecting the algorithm to the final solution...

$ fastsnake compile main.py

Check out the code of the generated Python module.

Testing and Compiling

You may test and compile your solution using the command below:

$ fastsnake test <problem> -c

If the solution was accepted at all test cases, it will be compiled.

Adding External Modules

You may also add your own modules to the external package of fastsnake.

$ fastsnake add-external <path | url> --name <module_name> [--url]

For downloading the module from web, use the flag --url.

Step Counter

The --step-counter flag of the command test can be used to count the approximate number of steps executed by your solution.

By default, it analyzes the entire code, but you can set a starting point by adding the following comment on the line:

# [START STEP COUNTER]
...

Note: The step counter only analyzes the code that has been required for testing. This means that if you don't compile your code before testing using the --compile-before flag, it won't consider fastsnake algorithms and structures.

More Information

Use the following command for more information about FastSnake CLI:

$ fastsnake -h

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

fastsnake-1.4.11.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

fastsnake-1.4.11-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file fastsnake-1.4.11.tar.gz.

File metadata

  • Download URL: fastsnake-1.4.11.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.6

File hashes

Hashes for fastsnake-1.4.11.tar.gz
Algorithm Hash digest
SHA256 45b9dad2bfcef0f8811e09acb923f6d4f7ce5ae60bf9819ac2ff535790a4fff8
MD5 eccb3fd0aa305be6696fd518d282519d
BLAKE2b-256 f0c1a3c1300916237aa3d61886c1530fa46b6b1652791719d242fdf32bee6987

See more details on using hashes here.

File details

Details for the file fastsnake-1.4.11-py3-none-any.whl.

File metadata

  • Download URL: fastsnake-1.4.11-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.6

File hashes

Hashes for fastsnake-1.4.11-py3-none-any.whl
Algorithm Hash digest
SHA256 eacc421a029c16e1e3588d358ee86745ee99358d158c749c0952365efa78d6e2
MD5 5e672f063243b91aebf1282182759f94
BLAKE2b-256 3ecc67cd9d586384127b711a6eddd035c3f95e48e288acf1adf4e0a9f21e2c1e

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