Skip to main content

A cross-platform command line utility for bootstrapping and running code with tests

Project description

Code Faster

Cross-platform command line utility for bootstrapping online codes (especially codeforces) and running with automatic testing.

Index


Uses

This package installs two commands:

  • cfetch

    This will fetches the code from given url.

    usage: cfetch [-h] [-l {cpp,java,py}] [-d DIR] url
    positional arguments:
    url                   url of the code
    
    optional arguments:
    -h, --help                    show this help message and exit
    -l, --language {cpp,java,py}  default is cpp
    -d, --dir DIR             if given then uses this dir and language flag will be ignored.
    

    If dir is provided (language flag will be ignored) then it'll copy the contents of your sample dir into the created one. Using this you can use your own template for any language whatsoever. However, runner will still work only on supported languages.

    example:

    cfetch http://codeforces.com/problemset/problem/1/A
    

    This will create a folder named CF1-A in the current directory with sample test cases and main.cpp file.

  • crun This will run the file and if there are test cases present in the file's directory it will run them too.

    crun <file-path> [args]
    

    Where args are compiler args for compiled languages like c++ and java.

    example:

    crun CF1-A\main.cpp
    

    This will create a folder for binaries in the file's directory with the output of sample tests. It will also generates the test report.

    You can manually create more test files. Supported formats are:

    Input Output
    .i.txt .o.txt
    .i .o
    .input .output

Example

First we will fetch a problem from codeforces.com

> cfetch http://codeforces.com/problemset/problem/1/A
CF1-A created
test_1 created
main.cpp created

Now we will try to run it with our sample generated code.

> crun CF1-A\main.cpp
g++  -o CF1-A\bin\main.exe CF1-A\main.cpp
========================================
test_1 FAILED
---------------------------------------- [output]
6
---------------------------------------- [answer]
4
========================================
:( 0/1 passed.

Now fix the main.cpp file to solve the problem.

int main() {
    using namespace std;

    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, m, a;
    cin >> n >> m >> a;

    int r = ((n + a - 1) / a) * ((m + a - 1) / a);
    cout << r << '\n';
}
> crun CF1-A\main.cpp
g++  -o CF1-A\bin\main.exe CF1-A\main.cpp
========================================
test_1 PASSED
========================================
:) 1/1 passed.

Installing

You can install from pypi.

pip install code-faster -U

Or, you can install directly from the repository using pip.

pip install git+https://github.com/rahulsrma26/code_faster

Setting up with VSCode

You can set keyboard shortcuts to any editor basically. There are plenty of extensions in VSCode that can do that but for demonstration we will be using Code Runner

For code-runner, edit settings.json file in .vscode folder.

{
    "code-runner.fileDirectoryAsCwd": true,
    "code-runner.runInTerminal": true,
    "code-runner.saveFileBeforeRun": true,
    "code-runner.executorMap": {
        "cpp": "crun $fileName",
        "java": "crun $fileName",
        "python": "crun $fileName"
    }
}

Now to run a file just open it and press control+option+n (on mac) or control+alt+n (on pc).

Note: If you are using conda environments and if it's not added to the path environments (or bash). Then crun may be unaccessible in the terminal by default. So, you either need to activate it in the terminal, or you need to update the shell args.

"terminal.integrated.shellArgs.windows": ["/K", "<conda-install-path>/Scripts/activate && conda activate <your-env>"]

For linux you can change terminal.integrated.shellArgs.linux and for mac change terminal.integrated.shellArgs.osx

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

code_faster-0.4.1.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

code_faster-0.4.1-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file code_faster-0.4.1.tar.gz.

File metadata

  • Download URL: code_faster-0.4.1.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2.post20191203 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for code_faster-0.4.1.tar.gz
Algorithm Hash digest
SHA256 7e3515ff86c962f63594a0a7729a864de7b49c9422ccda28b81f5e4d29473324
MD5 8e61072b03b17f310548fcccea103dde
BLAKE2b-256 365bb8401116f2b0e2ddab1f1173761c922b93c7c901095ac035c801068a0b01

See more details on using hashes here.

File details

Details for the file code_faster-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: code_faster-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2.post20191203 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for code_faster-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb62005c162337dfe88a3fc6443dfeef68bfbb0d65e1d3d694c57df86b723e8a
MD5 f837c978254a024bd437c44ec2a773dd
BLAKE2b-256 8fcdacfadc6c6762252a450da718027d20f6a561c312bce85177bc2ef6d02a6b

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