A Python binding to the Wandbox API.
Project description
Wandbox API for Python
Wandbox is a social compilation service.
This project is a Pythonic binding to the Wandbox API, and CLI command.
Installation
pip install wandbox-api
CLI
for Languages
Bash | C | C# | C++ | CPP |
Crystal | D | Elixir | Erlang | Go |
Groovy | Haskell | Java | JavaScript | Julia |
Lazy K | Lisp | Lua | Nim | OCaml |
OpenSSL | Pascal | Perl | PHP | Pony |
Python | R | Ruby | Rust | Scala |
SQL | Swift | TypeScript | Vim script | Zig |
wandbox
usage: wandbox [-h] [-v] [-l LANGUAGE] [-c COMPILER] [-x OPTIONS] [-r RUNTIME_OPTIONS] [-n] [-s] [--encoding ENCODING]
[--no-default] [--stdin STDIN] [--retry-wait SECONDS] [--retry COUNT]
{list,compilers,versions,lang,option,permlink,run,template,run-template,user,help} ...
positional arguments:
{list,compilers,versions,lang,option,permlink,run,help}
list show list api response. see `list -h`
compilers show support compilers. see `compilers -h`
versions show support compilers. see `versions -h`
lang show support languages. see `lang -h`
option show compiler options. see `option -h`
version show compiler version from version-command. see `version -h`
permlink get permlink. see `permlink -h`
run build and run command. see `run +h`
template get wandbox template code. see `template -h`
run-template run wandbox template code. see `run-template +h`
user get wandbox user info. see `user -h`
help show subcommand help. see `help -h`
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-l LANGUAGE, --language LANGUAGE
specify language
-c COMPILER, --compiler COMPILER
specify compiler
-x OPTIONS, --options OPTIONS
used options for a compiler
-r RUNTIME_OPTIONS, --runtime-options RUNTIME_OPTIONS
runtime options
-n, --dryrun dryrun
-V, --verbose verbose log
-s, --save generate permanent link.
--encoding ENCODING set encoding
--no-head ignore head compiler version (at auto setup)
--no-default no set default options
--stdin STDIN set stdin
--retry-wait SECONDS wait time for retry when HTTPError occurs
--retry COUNT number of retries when HTTPError occurs
Bash
Source files required for runtime are automatically added to the file list.
- wandbox-bash
Bash Example
wandbox-bash run sample.sh
C
Include files required for compilation are automatically added to the file list.
- wandbox-cc
(wandbox -l C) - wandbox-gcc
(wandbox -l C -c gcc-*-c) - wandbox-clang
(wandbox -l C -c clang-*-c)
C Example
wandbox-gcc run sample.c test.c
CXX="wandbox-gcc run" make
C#
- wandbox-cs
(wandbox -l C#)
C# Example
wandbox-cs run sample.cs test.cs
C++
Include files required for compilation are automatically added to the file list.
- wandbox-cxx
(wandbox -l C++) - wandbox-g++
(wandbox -l C++ -c gcc-*) - wandbox-clang++
(wandbox -l C++ -c clang-*)
usage: wandbox-cxx [-h] [-v] [-c COMPILER] [-x OPTIONS] [-r RUNTIME_OPTIONS] [-n] [-s] [--encoding ENCODING]
[--no-default] [--stdin STDIN] [--retry-wait SECONDS] [--retry COUNT] [--std VERSION]
[--boost VERSION] [--no-warning] [--optimize] [--cpp-pedantic PEDANTIC] [--cpp-verbose] [--sprout] [--msgpack]
{list,compilers,versions,lang,option,permlink,run,template,run-template,user,help} ...
positional arguments:
{list,compilers,versions,lang,option,permlink,run,help}
list show list api response. see `list -h`
compilers show support compilers. see `compilers -h`
versions show support compilers. see `versions -h`
lang show support languages. see `lang -h`
option show compiler options. see `option -h`
version show compiler version from version-command. see `version -h`
permlink get permlink. see `permlink -h`
run build and run command. see `run +h`
template get wandbox template code. see `template -h`
run-template run wandbox template code. see `run-template +h`
user get wandbox user info. see `user -h`
help show subcommand help. see `help -h`
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-c COMPILER, --compiler COMPILER
specify compiler
-x OPTIONS, --options OPTIONS
used options for a compiler
-r RUNTIME_OPTIONS, --runtime-options RUNTIME_OPTIONS
runtime options
-n, --dryrun dryrun
-V, --verbose verbose log
-s, --save generate permanent link.
--encoding ENCODING set encoding
--no-head ignore head compiler version (at auto setup)
--no-default no set default options
--stdin STDIN set stdin
--retry-wait SECONDS wait time for retry when HTTPError occurs
--retry COUNT number of retries when HTTPError occurs
--std VERSION set --std options
--boost VERSION set boost options version X.XX or nothing
--no-warning disable warning option
--optimize use optimization
--cpp-pedantic PEDANTIC
use cpp-pedantic
--cpp-verbose use cpp-verbose
--sprout use sprout
--msgpack use msgpack
C++ Example
wandbox-cxx -c gcc-head run main.cpp -DWANDBOX
CXX="wandbox-g++ run" make
CPP
Include files required for compilation are automatically added to the file list.
- wandbox-CPP
(wandbox -l CPP) - wandbox-gcc-PP
(wandbox -l CPP -c gcc-*-pp) - wandbox-clang-PP
(wandbox -l CPP -c clang-*-pp)
CPP Example
wandbox-clang-PP run -CC -nostdinc -E -P sample.cpp test.cpp
Crystal
Import modules required for compilation are automatically added to the file list.
- wandbox-crystal
(wandbox -l Crystal)
Crystal Example
wandbox-crystal run sample.cr
D
- wandbox-dmd
(wandbox -l D -c dmd-*) - wandbox-ldmd2
(wandbox -l D -c ldc-*) - wandbox-dub
D Example
wandbox-dmd run sample.d test2.d packages/test.d
wandbox-dub run
Elixir
- wandbox-elixir
(wandbox -l Elixir) - wandbox-mix (Experimental)
Elixir Example
wandbox-elixir run sample.exs
wandbox-mix run test
Erlang
- wandbox-erlc
(wandbox -l Erlang)
Erlang Example
wandbox-erlc run prog.erl
Go
- wandbox-go
(wandbox -l Go)
Go Example
wandbox-go run sample.go
Groovy
- wandbox-groovy
(wandbox -l Groovy)
Groovy Example
wandbox-groovy run -cp . sample.groovy
Haskell
- wandbox-ghc
(wandbox -l Haskell) - wandbox-stack
Note: wandbox-ghc/wandbox-stack add -dynamic compiler option. (output file size workarround.)
Haskell Example
wandbox-ghc run sample.hs
wandbox-stack run
Java
- wandbox-java
(wandbox -l Java)
Java Example
wandbox-java run sample.java test.java
JavaScript
Import files/modules required for runtime are automatically added to the file list.
- wandbox-js
(wandbox -l JavaScript) - wandbox-node
(wandbox -l JavaScript-c nodejs-*) - wandbox-spidermonkey
(wandbox -l JavaScript -c spidermonkey-*)
JavaScript Example
wandbox-node run --experimental-modules sample.js
Julia
- wandbox-julia
(wandbox -l Julia)
Julia Example
wandbox-julia run sample.jl
Lazy K
- wandbox-lazyk
(wandbox -l "Lazy K")
Lazy K Example
wandbox-lazyk run sample.lazy
Lisp
- wandbox-sbcl
(wandbox -l Lisp) - wandbox-clisp
(wandbox -l Lisp -c clisp-*)
Lisp Example
wandbox-sbcl run sample.lisp
Lua
Import files/modules required for compilation are automatically added to the file list.
- wandbox-lua
(wandbox -l Lua) - wandbox-luajit
(wandbox -l Lua -c luajit-*)
Lua Example
wandbox-lua run sample.lua
Nim
Import modules/.c required for compilation are automatically added to the file list.
- wandbox-nim
(wandbox -l Nim)
Nim Example
wandbox-nim run sample.nim
OCaml
- wandbox-ocamlopt
(wandbox -l OCaml) - wandbox-ocaml
(wandbox -l OCaml)
OCaml Example
wandbox-ocamlopt run sample.ml
OpenSSL
Even just having wandbox would be enough.
- wandbox-ssl
OpenSSL Example
wandbox-ssl genrsa -out test.key 2048
wandbox-ssl rsa -in test.key -pubout -out test.key.pub
Pascal
Include files required for runtime are automatically added to the file list.
- wandbox-fpc
(wandbox -l Pascal)
Pascal Example
wandbox-fpc run sample.pas
Perl
Require files/modules required for runtime are automatically added to the file list.
- wandbox-perl
(wandbox -l Perl)
Perl Example
wandbox-perl run sample.pl
PHP
Require/Include files required for runtime are automatically added to the file list.
- wandbox-php
(wandbox -l PHP)
PHP Example
wandbox-php run sample.php
Pony
Build directory files are automatically added to the file list.
- wandbox-ponyc
(wandbox -l Pony)
Pony Example
wandbox-ponyc run ./sample ./sample2
wandbox-ponyc builds ./sample and ./sample2, Then execute ./sample2
Python
Import files/modules required for runtime are automatically added to the file list.
- wandbox-python
(wandbox -l Python) - wandbox-python2
(wandbox -l Python -c cpython-2.7-*) - wandbox-python3
(wandbox -l Python -c cpython-*) - wandbox-pypy
(wandbox -l Python -c pypy-*) - wandbox-pypy2
(wandbox -l Python -c pypy-2*) - wandbox-pypy3
(wandbox -l Python -c pypy-3*)
Python Example
wandbox-python3 run sample.py
wandbox-python supports setup.py
wandbox-python -c cpython-head -r test run setup.py
If you open a file, add the file
wandbox-python -c cpython-head -r test run setup.py README.md
R
Source files are automatically added to the file list.
- wandbox-rscript
(wandbox -l R)
R Example
wandbox-rscript run sample.R
Ruby
Require files required for runtime are automatically added to the file list.
- wandbox-ruby
(wandbox -l Ruby) - wandbox-mruby
(wandbox -l Ruby -c mruby-*)
Ruby Example
wandbox-ruby run sample.rb
Rust
Module files required for runtime are automatically added to the file list.
- wandbox-rustc
(wandbox -l Rust) - wandbox-cargo
Rust Example
wandbox-rustc run sample.rs
wandbox-cargo run
Scala
- wandbox-scalac
(wandbox -l Scala)
Scala Example
wandbox-scalac run *.scala
SQL
- wandbox-sqlite
(wandbox -l SQL) - wandbox-sqlite3
(wandbox -l SQL)
SQL Example
wandbox-sqlite3 run SELECT 'Hello, Wandbox!';
Swift
- wandbox-swift
(wandbox -l Swift)
Swift Example
wandbox-swift run main.swift
TypeScript
Import files/modules required for compilation are automatically added to the file list.
- wandbox-tsc
(wandbox -l TypeScript)
TypeScript Example
wandbox-tsc run --module es2015 sample.ts
Vim script
- wandbox-vim
(wandbox -l "Vim script")
Vim script Example
wandbox-vim run -X -N -u NONE -i NONE -V1 -e -s -S sample.vim +qall!
Zig
Import files required for compilation are automatically added to the file list.
- wandbox-zig
(wandbox -l Zig)
Zig Example
wandbox-zig run main.zig