Skip to content

Commit 78277ea

Browse files
Add all LanguageAliases.
* Add all language aliases * Add all language alliases to dunder init. --------- Co-authored-by: Filip Karlo Došilović <[email protected]>
1 parent f0b5d2b commit 78277ea

File tree

4 files changed

+288
-25
lines changed

4 files changed

+288
-25
lines changed

pyproject.toml

+11-1
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,15 @@ docs = ["sphinx==7.4.7"]
4949

5050
[tool.flake8]
5151
docstring-convention = "numpy"
52-
extend-ignore = ["D205", "D400", "D105", "D100", "D101", "D102", "D103", "F821"]
52+
extend-ignore = [
53+
'D100',
54+
'D101',
55+
'D102',
56+
'D103',
57+
'D104',
58+
'D105',
59+
'D205',
60+
'D400',
61+
'F821',
62+
]
5363
max-line-length = 88

src/judge0/__init__.py

+64-5
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,70 @@ def _get_implicit_client(flavor: Flavor) -> Client:
113113
CE = Flavor.CE
114114
EXTRA_CE = Flavor.EXTRA_CE
115115

116-
# TODO: Let's use getattr and setattr for this language ALIASES and raise an
117-
# exception if a value already exists.
118-
PYTHON = LanguageAlias.PYTHON
116+
ASSEMBLY = LanguageAlias.ASSEMBLY
117+
BASH = LanguageAlias.BASH
118+
BASIC = LanguageAlias.BASIC
119+
BOSQUE = LanguageAlias.BOSQUE
120+
C = LanguageAlias.C
121+
C3 = LanguageAlias.C3
122+
CLOJURE = LanguageAlias.CLOJURE
123+
COBOL = LanguageAlias.COBOL
124+
COMMON_LISP = LanguageAlias.COMMON_LISP
119125
CPP = LanguageAlias.CPP
120-
JAVA = LanguageAlias.JAVA
121-
CPP_GCC = LanguageAlias.CPP_GCC
122126
CPP_CLANG = LanguageAlias.CPP_CLANG
127+
CPP_GCC = LanguageAlias.CPP_GCC
128+
CPP_TEST = LanguageAlias.CPP_TEST
129+
CPP_TEST_CLANG = LanguageAlias.CPP_TEST_CLANG
130+
CPP_TEST_GCC = LanguageAlias.CPP_TEST_GCC
131+
CSHARP = LanguageAlias.CSHARP
132+
CSHARP_DOTNET = LanguageAlias.CSHARP_DOTNET
133+
CSHARP_MONO = LanguageAlias.CSHARP_MONO
134+
CSHARP_TEST = LanguageAlias.CSHARP_TEST
135+
C_CLANG = LanguageAlias.C_CLANG
136+
C_GCC = LanguageAlias.C_GCC
137+
D = LanguageAlias.D
138+
DART = LanguageAlias.DART
139+
ELIXIR = LanguageAlias.ELIXIR
140+
ERLANG = LanguageAlias.ERLANG
141+
EXECUTABLE = LanguageAlias.EXECUTABLE
142+
FORTRAN = LanguageAlias.FORTRAN
143+
FSHARP = LanguageAlias.FSHARP
144+
GO = LanguageAlias.GO
145+
GROOVY = LanguageAlias.GROOVY
146+
HASKELL = LanguageAlias.HASKELL
147+
JAVA = LanguageAlias.JAVA
148+
JAVAFX = LanguageAlias.JAVAFX
149+
JAVASCRIPT = LanguageAlias.JAVASCRIPT
150+
JAVA_JDK = LanguageAlias.JAVA_JDK
151+
JAVA_OPENJDK = LanguageAlias.JAVA_OPENJDK
152+
JAVA_TEST = LanguageAlias.JAVA_TEST
153+
KOTLIN = LanguageAlias.KOTLIN
154+
LUA = LanguageAlias.LUA
155+
MPI_C = LanguageAlias.MPI_C
156+
MPI_CPP = LanguageAlias.MPI_CPP
157+
MPI_PYTHON = LanguageAlias.MPI_PYTHON
158+
MULTI_FILE = LanguageAlias.MULTI_FILE
159+
NIM = LanguageAlias.NIM
160+
OBJECTIVE_C = LanguageAlias.OBJECTIVE_C
161+
OCAML = LanguageAlias.OCAML
162+
OCTAVE = LanguageAlias.OCTAVE
163+
PASCAL = LanguageAlias.PASCAL
164+
PERL = LanguageAlias.PERL
165+
PHP = LanguageAlias.PHP
166+
PLAIN_TEXT = LanguageAlias.PLAIN_TEXT
167+
PROLOG = LanguageAlias.PROLOG
168+
PYTHON = LanguageAlias.PYTHON
169+
PYTHON2 = LanguageAlias.PYTHON2
170+
PYTHON2_PYPY = LanguageAlias.PYTHON2_PYPY
171+
PYTHON3 = LanguageAlias.PYTHON3
172+
PYTHON3_PYPY = LanguageAlias.PYTHON3_PYPY
123173
PYTHON_FOR_ML = LanguageAlias.PYTHON_FOR_ML
174+
PYTHON_PYPY = LanguageAlias.PYTHON_PYPY
175+
R = LanguageAlias.R
176+
RUBY = LanguageAlias.RUBY
177+
RUST = LanguageAlias.RUST
178+
SCALA = LanguageAlias.SCALA
179+
SQLITE = LanguageAlias.SQLITE
180+
SWIFT = LanguageAlias.SWIFT
181+
TYPESCRIPT = LanguageAlias.TYPESCRIPT
182+
VISUAL_BASIC = LanguageAlias.VISUAL_BASIC

src/judge0/base_types.py

+68-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import copy
22

33
from dataclasses import dataclass
4-
from enum import IntEnum
4+
from enum import IntEnum, auto
55
from typing import Optional, Protocol, runtime_checkable, Sequence, Union
66

77
from pydantic import BaseModel
@@ -59,13 +59,73 @@ class Language(BaseModel):
5959

6060
class LanguageAlias(IntEnum):
6161
"""Language enumeration."""
62-
63-
PYTHON = 0
64-
CPP = 1
65-
JAVA = 2
66-
CPP_GCC = 3
67-
CPP_CLANG = 4
68-
PYTHON_FOR_ML = 5
62+
ASSEMBLY = auto()
63+
BASH = auto()
64+
BASIC = auto()
65+
BOSQUE = auto()
66+
C = auto()
67+
C3 = auto()
68+
CLOJURE = auto()
69+
COBOL = auto()
70+
COMMON_LISP = auto()
71+
CPP = auto()
72+
CPP_CLANG = auto()
73+
CPP_GCC = auto()
74+
CPP_TEST = auto()
75+
CPP_TEST_CLANG = auto()
76+
CPP_TEST_GCC = auto()
77+
CSHARP = auto()
78+
CSHARP_DOTNET = auto()
79+
CSHARP_MONO = auto()
80+
CSHARP_TEST = auto()
81+
C_CLANG = auto()
82+
C_GCC = auto()
83+
D = auto()
84+
DART = auto()
85+
ELIXIR = auto()
86+
ERLANG = auto()
87+
EXECUTABLE = auto()
88+
FORTRAN = auto()
89+
FSHARP = auto()
90+
GO = auto()
91+
GROOVY = auto()
92+
HASKELL = auto()
93+
JAVA = auto()
94+
JAVAFX = auto()
95+
JAVASCRIPT = auto()
96+
JAVA_JDK = auto()
97+
JAVA_OPENJDK = auto()
98+
JAVA_TEST = auto()
99+
KOTLIN = auto()
100+
LUA = auto()
101+
MPI_C = auto()
102+
MPI_CPP = auto()
103+
MPI_PYTHON = auto()
104+
MULTI_FILE = auto()
105+
NIM = auto()
106+
OBJECTIVE_C = auto()
107+
OCAML = auto()
108+
OCTAVE = auto()
109+
PASCAL = auto()
110+
PERL = auto()
111+
PHP = auto()
112+
PLAIN_TEXT = auto()
113+
PROLOG = auto()
114+
PYTHON = auto()
115+
PYTHON2 = auto()
116+
PYTHON2_PYPY = auto()
117+
PYTHON3 = auto()
118+
PYTHON3_PYPY = auto()
119+
PYTHON_FOR_ML = auto()
120+
PYTHON_PYPY = auto()
121+
R = auto()
122+
RUBY = auto()
123+
RUST = auto()
124+
SCALA = auto()
125+
SQLITE = auto()
126+
SWIFT = auto()
127+
TYPESCRIPT = auto()
128+
VISUAL_BASIC = auto()
69129

70130

71131
class Flavor(IntEnum):

src/judge0/data.py

+145-11
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,165 @@
22

33
LANGUAGE_TO_LANGUAGE_ID = {
44
"1.13.1": {
5-
LanguageAlias.PYTHON: 71,
6-
LanguageAlias.CPP: 54,
7-
LanguageAlias.JAVA: 62,
8-
LanguageAlias.CPP_GCC: 54,
5+
LanguageAlias.ASSEMBLY: 45,
6+
LanguageAlias.BASH: 46,
7+
LanguageAlias.BASIC: 47,
8+
LanguageAlias.C: 50,
9+
LanguageAlias.CLOJURE: 86,
10+
LanguageAlias.COBOL: 77,
11+
LanguageAlias.COMMON_LISP: 55,
12+
LanguageAlias.CPP: 52,
913
LanguageAlias.CPP_CLANG: 76,
14+
LanguageAlias.CPP_GCC: 52,
15+
LanguageAlias.CSHARP: 51,
16+
LanguageAlias.CSHARP_MONO: 51,
17+
LanguageAlias.C_CLANG: 75,
18+
LanguageAlias.C_GCC: 50,
19+
LanguageAlias.D: 56,
20+
LanguageAlias.ELIXIR: 57,
21+
LanguageAlias.ERLANG: 58,
22+
LanguageAlias.EXECUTABLE: 44,
23+
LanguageAlias.FORTRAN: 59,
24+
LanguageAlias.FSHARP: 87,
25+
LanguageAlias.GO: 60,
26+
LanguageAlias.GROOVY: 88,
27+
LanguageAlias.HASKELL: 61,
28+
LanguageAlias.JAVA: 62,
29+
LanguageAlias.JAVASCRIPT: 63,
30+
LanguageAlias.JAVA_OPENJDK: 62,
31+
LanguageAlias.KOTLIN: 78,
32+
LanguageAlias.LUA: 64,
33+
LanguageAlias.MULTI_FILE: 89,
34+
LanguageAlias.OBJECTIVE_C: 79,
35+
LanguageAlias.OCAML: 65,
36+
LanguageAlias.OCTAVE: 66,
37+
LanguageAlias.PASCAL: 67,
38+
LanguageAlias.PERL: 85,
39+
LanguageAlias.PHP: 68,
40+
LanguageAlias.PLAIN_TEXT: 43,
41+
LanguageAlias.PROLOG: 69,
42+
LanguageAlias.PYTHON: 71,
43+
LanguageAlias.PYTHON2: 70,
44+
LanguageAlias.PYTHON3: 71,
45+
LanguageAlias.R: 80,
46+
LanguageAlias.RUBY: 72,
47+
LanguageAlias.RUST: 73,
48+
LanguageAlias.SCALA: 81,
49+
LanguageAlias.SQLITE: 82,
50+
LanguageAlias.SWIFT: 83,
51+
LanguageAlias.TYPESCRIPT: 74,
52+
LanguageAlias.VISUAL_BASIC: 84,
1053
},
1154
"1.13.1-extra": {
12-
LanguageAlias.PYTHON: 10,
55+
LanguageAlias.BOSQUE: 11,
56+
LanguageAlias.C: 1,
57+
LanguageAlias.C3: 3,
1358
LanguageAlias.CPP: 2,
14-
LanguageAlias.JAVA: 4,
1559
LanguageAlias.CPP_CLANG: 2,
60+
LanguageAlias.CPP_TEST: 12,
61+
LanguageAlias.CPP_TEST_CLANG: 15,
62+
LanguageAlias.CPP_TEST_GCC: 12,
63+
LanguageAlias.CSHARP: 22,
64+
LanguageAlias.CSHARP_MONO: 22,
65+
LanguageAlias.CSHARP_DOTNET: 21,
66+
LanguageAlias.CSHARP_TEST: 23,
67+
LanguageAlias.C_CLANG: 1,
68+
LanguageAlias.FSHARP: 24,
69+
LanguageAlias.JAVA: 4,
70+
LanguageAlias.JAVA_OPENJDK: 4,
71+
LanguageAlias.JAVA_TEST: 5,
72+
LanguageAlias.MPI_C: 6,
73+
LanguageAlias.MPI_CPP: 7,
74+
LanguageAlias.MPI_PYTHON: 8,
75+
LanguageAlias.MULTI_FILE: 89,
76+
LanguageAlias.NIM: 9,
77+
LanguageAlias.PYTHON: 10,
78+
LanguageAlias.PYTHON3: 10,
1679
LanguageAlias.PYTHON_FOR_ML: 10,
80+
LanguageAlias.VISUAL_BASIC: 20,
1781
},
1882
"1.14.0": {
19-
LanguageAlias.PYTHON: 100,
83+
LanguageAlias.ASSEMBLY: 45,
84+
LanguageAlias.BASH: 46,
85+
LanguageAlias.BASIC: 47,
86+
LanguageAlias.C: 103,
87+
LanguageAlias.CLOJURE: 86,
88+
LanguageAlias.COBOL: 77,
89+
LanguageAlias.COMMON_LISP: 55,
2090
LanguageAlias.CPP: 105,
21-
LanguageAlias.JAVA: 91,
22-
LanguageAlias.CPP_GCC: 105,
2391
LanguageAlias.CPP_CLANG: 76,
92+
LanguageAlias.CPP_GCC: 105,
93+
LanguageAlias.CSHARP: 51,
94+
LanguageAlias.CSHARP_MONO: 51,
95+
LanguageAlias.C_CLANG: 104,
96+
LanguageAlias.C_GCC: 103,
97+
LanguageAlias.D: 56,
98+
LanguageAlias.DART: 90,
99+
LanguageAlias.ELIXIR: 57,
100+
LanguageAlias.ERLANG: 58,
101+
LanguageAlias.EXECUTABLE: 44,
102+
LanguageAlias.FORTRAN: 59,
103+
LanguageAlias.FSHARP: 87,
104+
LanguageAlias.GO: 95,
105+
LanguageAlias.GROOVY: 88,
106+
LanguageAlias.HASKELL: 61,
107+
LanguageAlias.JAVA: 62,
108+
LanguageAlias.JAVAFX: 96,
109+
LanguageAlias.JAVASCRIPT: 102,
110+
LanguageAlias.JAVA_JDK: 91,
111+
LanguageAlias.JAVA_OPENJDK: 62,
112+
LanguageAlias.KOTLIN: 78,
113+
LanguageAlias.LUA: 64,
114+
LanguageAlias.MULTI_FILE: 89,
115+
LanguageAlias.OBJECTIVE_C: 79,
116+
LanguageAlias.OCAML: 65,
117+
LanguageAlias.OCTAVE: 66,
118+
LanguageAlias.PASCAL: 67,
119+
LanguageAlias.PERL: 85,
120+
LanguageAlias.PHP: 98,
121+
LanguageAlias.PLAIN_TEXT: 43,
122+
LanguageAlias.PROLOG: 69,
123+
LanguageAlias.PYTHON: 100,
124+
LanguageAlias.PYTHON2: 70,
125+
LanguageAlias.PYTHON3: 100,
126+
LanguageAlias.R: 99,
127+
LanguageAlias.RUBY: 72,
128+
LanguageAlias.RUST: 73,
129+
LanguageAlias.SCALA: 81,
130+
LanguageAlias.SQLITE: 82,
131+
LanguageAlias.SWIFT: 83,
132+
LanguageAlias.TYPESCRIPT: 101,
133+
LanguageAlias.VISUAL_BASIC: 84,
24134
},
25135
"1.14.0-extra": {
26-
LanguageAlias.PYTHON: 25,
136+
LanguageAlias.BOSQUE: 11,
137+
LanguageAlias.C: 1,
138+
LanguageAlias.C3: 3,
27139
LanguageAlias.CPP: 2,
28-
LanguageAlias.JAVA: 4,
29140
LanguageAlias.CPP_CLANG: 2,
141+
LanguageAlias.CPP_TEST: 12,
142+
LanguageAlias.CPP_TEST_CLANG: 15,
143+
LanguageAlias.CPP_TEST_GCC: 12,
144+
LanguageAlias.CSHARP: 29,
145+
LanguageAlias.CSHARP_MONO: 22,
146+
LanguageAlias.CSHARP_DOTNET: 29,
147+
LanguageAlias.CSHARP_TEST: 23,
148+
LanguageAlias.C_CLANG: 1,
149+
LanguageAlias.FSHARP: 24,
150+
LanguageAlias.JAVA: 4,
151+
LanguageAlias.JAVA_OPENJDK: 4,
152+
LanguageAlias.JAVA_TEST: 5,
153+
LanguageAlias.MPI_C: 6,
154+
LanguageAlias.MPI_CPP: 7,
155+
LanguageAlias.MPI_PYTHON: 8,
156+
LanguageAlias.MULTI_FILE: 89,
157+
LanguageAlias.NIM: 9,
158+
LanguageAlias.PYTHON: 25,
159+
LanguageAlias.PYTHON2: 26,
160+
LanguageAlias.PYTHON2_PYPY: 26,
161+
LanguageAlias.PYTHON3: 25,
162+
LanguageAlias.PYTHON3_PYPY: 28,
30163
LanguageAlias.PYTHON_FOR_ML: 25,
164+
LanguageAlias.VISUAL_BASIC: 20,
31165
},
32166
}

0 commit comments

Comments
 (0)