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ć <filipk.dosilovic@gmail.com>
1 parent f0b5d2b commit 78277ea

File tree

4 files changed

+288
-25
lines changed

4 files changed

+288
-25
lines changed

pyproject.toml

Lines changed: 11 additions & 1 deletion
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

Lines changed: 64 additions & 5 deletions
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

Lines changed: 68 additions & 8 deletions
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

Lines changed: 145 additions & 11 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy