Welcome to dockerjudge’s documentation!¶
Badges¶
Service |
Status |
---|---|
Azure Pipelines |
|
Code Climate |
|
FOSSA |
|
GitHub Actions |
|
GitLab CI/CD |
|
Read the Docs |
|
Travis CI |
|
Project links¶
Installation¶
Docker¶
To run dockerjudge
, Docker Engine is required.
Install using the convenience script (for servers)¶
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
See Install Docker Engine | Docker Documentation for more information.
Package dockerjudge
¶
From the Python Package Index (PyPI)¶
Via Easy install (deprecated)¶
easy_install dockerjudge
From source on GitHub¶
HTTPS: https://github.com/wxh06/dockerjudge.git
SSH: git@github.com:wxh06/dockerjudge.git
git clone https://github.com/wxh06/dockerjudge.git
cd dockerjudge
make pip && make # python3 -m pip install -Ur requirements.txt && python3 setup.py build
sudo make install # python3 setup.py install
dockerjudge
- Main¶
dockerjudge - A Docker Based Online Judge Engine
Judge¶
-
dockerjudge.
judge
(processor, source, tests, config=None, client=<docker.client.DockerClient object>)¶ Main function
- Parameters
processor (
dockerjudge.processor.Processor
, list or tuple) – Programming language processorsource (str) – Source code
tests (list) – Test cases
config (dict) –
Configuration
Key
Description
Default
Value type
callback
compile
Compilation callback
None
function
judge
Callback after judging
demux
compile
Return stdout and stderr of compiler separately
False
bool
iofilename
in
Input filename
stdin
str
out
Output filename
stdout
limit
time
Time limit
1
int or float
network
Network enabled
False
bool
threads
Thread limit
None
int
client (docker.client.DockerClient) – Docker client
- Returns
Result
- Return type
list
Key
Value type
Description
0
list
Result of each test case
1
byte
Compiler output
Tese case
Key
Value type
Description
0
Status code
1
tuple
stdout and stderr
2
float
Time used
dockerjudge.processor
- Processors¶
Available built-in processors¶
Processors
Processor |
Language(s) * |
Required Docker image |
---|---|---|
Shell |
||
|
||
|
||
Go |
||
|
||
Node.js |
||
Java |
||
PHP |
||
Python |
||
Python |
||
Ruby |
||
Swift |
- *
Emboldened language by default.
-
class
dockerjudge.processor.
Bash
(version=None)¶ Bash is the GNU Project’s Bourne Again SHell
- Parameters
version (str, int or float) – Tag name of Docker image bash
-
class
dockerjudge.processor.
Clang
(language=None, version=None, filenames=None, options=None)¶ Clang C Language Family Frontend for LLVM
- Parameters
language (
dockerjudge.processor.Clang.Language
or str) – Programming panguage (C
/c orC++
/cpp
), C++ by defaultversion (str, int or float) – Tag name of Docker image clangbuiltlinux/ubuntu
filenames (dict) – Filenames of source code and binary file, C++ default:
{'src': 'a.cpp', 'bin': None}
options (list or str) – Compiler options
-
class
dockerjudge.processor.Clang.
Language
(value)¶ Programming language, C (
c
) or C++ (cpp
)- C
Clang.Language.c
,Clang.Language['c']
orClang.Language('C')
- C++
Clang.Language.cpp
,Clang.Language['cpp']
orClang.Language('C++')
-
class
dockerjudge.processor.
GCC
(language=None, version=None, filenames=None, options=None)¶ GNU project C, C++ and Go compiler
- Parameters
language (
dockerjudge.processor.GCC.Language
or str) – Programming panguage (C
/c
,C++
/cpp
orGo
/go
), C++ by defaultversion (str, int or float) – Tag name of Docker image gcc
filenames (dict) – Filenames of source code and binary file, C++ default:
{'src': 'a.cpp', 'bin': None}
options (list or str) – Compiler options
-
class
dockerjudge.processor.GCC.
Language
(value)¶ Programming language, C (
c
), C++ (cpp
) or Go (go
)- C
GCC.Language.c
,GCC.Language['c']
orGCC.Language('C')
- C++
GCC.Language.cpp
,GCC.Language['cpp']
orGCC.Language('C++')
- Go
GCC.Language.go
,GCC.Language['go']
orGCC.Language('Go')
-
class
dockerjudge.processor.
Go
(version=None, filenames=None, options=None)¶ The Go Programming Language
- Parameters
version (str, int or float) – Tag name of Docker image golang
filenames (dict) – Filenames of source code and binary file, default:
{'src': 'main.go', 'bin': None}
-
class
dockerjudge.processor.
Mono
(language=None, version=None)¶ Mono is a software platform designed to allow developers to easily create cross platform applications part of the .NET Foundation.
Sponsored by Microsoft, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
- Parameters
language (
dockerjudge.processor.Mono.Language
or str) – Programming panguage (Visual Basic
/vb
orC#
/csharp
), C# by defaultversion (str, int or float) – Tag name of Docker image mono
-
class
dockerjudge.processor.Mono.
Language
(value)¶ Programming language, Visual Basic (
vb
) or C# (csharp
)- Visual Basic
GCC.Language.vb
,GCC.Language['vb']
orGCC.Language('Visual Basic')
- C#
GCC.Language.csharp
,GCC.Language['csharp']
orGCC.Language('C#')
-
class
dockerjudge.processor.
Node
(version=None)¶ Node.js®
-
class
dockerjudge.processor.
OpenJDK
(version=None)¶ Open Java Development Kit
-
class
dockerjudge.processor.
PHP
(version=None)¶
-
class
dockerjudge.processor.
PyPy
(version=None)¶
-
class
dockerjudge.processor.
Python
(version=None)¶ CPython
-
class
dockerjudge.processor.
Ruby
(version=None)¶
-
class
dockerjudge.processor.
Swift
(version=None)¶
Customize¶
-
class
dockerjudge.processor.
Processor
¶ Defines the operations of a multi-version programming language processor
Data
Type
image
str
workdir
PurePosixPath
or strsource
str
before_compile
str or list
compile
str or list
after_compile
str or list
before_judge
str or list
judge
str
after_judge
str or list
dockerjudge.status
- Statuses¶
The collection of judge statuses
-
class
dockerjudge.status.
Status
(value)¶ Enumeration of judge statuses
Name
Value
AC
Accepted
WA
Wrong Answer
ONF
Output Not Found
RE
Runtime Error
TLE
Time Limit Exceeded
UE
Unknown Error
CE
Compilation Error