Skip to main content

FastSnake

Python Package Pypi License Platforms Python Version Downloads

FastSnake is a command-line tool that allows you to easily create, expand, run, and test Python / C++ solutions for competitive programming problems, besides automatically downloading test cases from the best contest platforms.

This project provides useful CLI tools for competitive programming, such as test case generators, algorithms and data structures, tools for platforms Codeforces and AtCoder, and other features that assist you during the development and testing of solutions.

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.

Support for C++ Language

You may use C++ language to solve contests by using the flag --cpp when starting a contest.

However, some features available in the Python language won't yet be available for C++.

More Information

Use the following command for more information about FastSnake CLI:

$ fastsnake -h

Metadata

Release files for FastSnake 1.5.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for FastSnake 1.5.7
File Size Uploaded
fastsnake-1.5.7.tar.gz 31.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for FastSnake 1.5.7
File Interpreter ABI Platform
fastsnake-1.5.7-py3-none-any.whl Python 3 none any Details

Total release size: 63.4 kB

Release files / fastsnake-1.5.7.tar.gz

Download URL fastsnake-1.5.7.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bee18cd80a7cb48e0c4cbee2eeb5c5126ce078bc492ef2e1da87a2ff077bf289
BLAKE2b-256 checksum
How to use checksums
51862c6fe3ceaea4337b347e0acbfc8247175eed52d479dd07a5429e9cd48252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.6

Release files / fastsnake-1.5.7-py3-none-any.whl

Download URL fastsnake-1.5.7-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f3ea2cc8ac5afea6c37716a13b32d7a6e907c9655c52c287502d3215d999d7d
BLAKE2b-256 checksum
How to use checksums
0c8ecc9aa2e5c1a24e3924772a546730109394dd42e99b7fa02c98b8cbf3de82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.5.7 This release

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.25

2 release files

1.4.24

2 release files

1.4.23

2 release files

1.4.22

2 release files

1.4.21

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.13

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page