cf-code-submit
Submit code to codeforces from the command line, and other stuff (display solves for each problem, display standings).
In order to save the huge number of seconds needed to reach for the mouse during codeforces contests, I needed to be able to submit from the command line. There are many tools to do this for codeforces contests but I was unable to find an existing tool that allowed submissions to the codeforces gym for virtual contests, so I made this.
After being able to submit from the command line, I noticed that I was wasting too much time staring at the standings on codeforces. Now I waste less time (hopefully) by staring at the standings in the terminal.
Then I realized I would rather not navigate codeforces in my browser because looking for my mouse is a hassle, so now I can look at the number of solves for each problem in the terminal as well.
NEW
Add autocomplete while writing the command (double TAB).
Setup (Linux)
- Install from pip.
sudo pip install cf_submit
Uses
Submissions
conorgymto set default contest or gym ID. Example:cf con 844orcf gym 101482gconto set default group and contest ID. Example:cf gcon dyEemqw7jN 233642extto set default file extension. Will be used when no file extension is given. (cf submit a)submitto submit code. Will try to guess problem. Batch submit allowed. Example:cf submitorcf submit a.cpp--probor-pto specify problem. Example:cf submit code.cpp -p 844a--watchor-wto Watch the status of submission after submitting it. Example:cf submit a.cpp -p 844a -wpeekto look at status of the last submission. Example:cf peekwatchto watch the status of the last submission if-wwas not used. Example:cf watchloginto store login info (username and password), will prompt you to enter password. Example:cf loginorcf login <your handle>infoto show stored handle and contest id. Example:cf infotimeto show time left in contestopento open the selected problem in the browser
Examples: cf submit code.cpp -p844a -w
Parse problem samples
parseto import selected problem samples data
Examples: cf parse -p 1108a or cf parse -p a
Test solution
testto test the selected source code with the imported tests data
Examples: cf test main.cpp, you should specify the version for python (use -l py2|py3)
Print Standings
standingsorstto look at friends' standings. Example:cf standings--contestor-cto specify the ID of the contest to look at. Example:cf standings -c 844--groupto specify the ID of the group to look at. Example:cf standings --group dyEemqw7jN--verboseor-vto print standings with more info. Example:cf standings -v--topor-tto look top contestants. Defaults to top 50 if-tis not included, top 10 if--topis included but no number is given. Example:cf standings -t 20--allor-ato look at all contestants instead of only friends. Example:cf standings --all--sortor-sto merge the solves of different rows belonging to the same handle. Will not merge two correct submissions on different rows. Example:cf standings -s
Examples: cf st -v -t7 or cf standings -c844 -v -a
Print Problem Stats
problemsorpbto look at the number of solves for each unsolved problem in a contest. Example:cf problems--contestor-cto specify the ID of the contest. Example:cf problems -c 844--groupto specify the ID of the group. Example:cf problems --group dyEemqw7jN--verboseor-vto show solved problems as well. Example:cf problems -v--sortor-sto sort problems by: number ofsolves, orindex(id). Default sort is by number of solves (you do not need to use--sort). Example:cf problems -s id
Exmaples: cf pb -v -s id or cf problems -c100187 -v
Hack
hackto begin the hack proccess.--probor-pto specify problem.--numberor-nto specify the number of tests to try.
Exmaples: cf hack generator.cpp checker.cpp bruteforce.cpp --prob a
Note
This script uses python3
Metadata
Release files for cf-submit 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cf_submit-1.4.0.tar.gz | 120.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cf_submit-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 245.8 kB
Release files / cf_submit-1.4.0.tar.gz
| Download URL | cf_submit-1.4.0.tar.gz |
|---|---|
| Size | 120.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e2a8dcabe7602cf46727588844e00e92ce48e3e9d5d15d9907ae6cb7630f0f3
|
|
BLAKE2b-256 checksum How to use checksums |
f0b62d788a6ebd1c8bafbf4d573e160bf277fedbca351d95f3be1396584d089f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.22.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10
|
Release files / cf_submit-1.4.0-py3-none-any.whl
| Download URL | cf_submit-1.4.0-py3-none-any.whl |
|---|---|
| Size | 125.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
805ab05fc2921bc39a34a5cd8416e9e98f61e573a9affc9ac3c39d166e802d20
|
|
BLAKE2b-256 checksum How to use checksums |
5228e970a3d0c05c30c76e0b66f52a5df0bb807409da6dc42fccb8055ba1dedf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.22.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/18.0.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.10
|