Skip to content

Commit e1c77df

Browse files
committed
Add all default clients.
1 parent 7521e3e commit e1c77df

File tree

12 files changed

+520
-164
lines changed

12 files changed

+520
-164
lines changed

Pipfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
[[source]]
2+
url = "https://pypi.org/simple"
3+
verify_ssl = true
4+
name = "pypi"
5+
6+
[packages]
7+
requests = "==2.32.3"
8+
9+
[dev-packages]
10+
ufmt = "==2.7.3"
11+
pre-commit = "==3.8.0"
12+
pytest = "==8.3.3"
13+
python-dotenv = "==1.0.1"
14+
15+
[requires]
16+
python_version = "3.9"
17+
python_full_version = "3.9.20"

examples/atd_clients.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import os
2+
3+
import judge0
4+
from dotenv import load_dotenv
5+
6+
load_dotenv()
7+
8+
api_key = os.getenv("ATD_API_KEY")
9+
10+
client_ce = judge0.ATDJudge0CE(api_key=api_key)
11+
print(client_ce.get_about())
12+
print(client_ce.get_config_info())
13+
print(client_ce.get_statuses())
14+
print(client_ce.get_languages())
15+
print(client_ce.get_language(language_id=42))
16+
17+
client_extra_ce = judge0.ATDJudge0ExtraCE(api_key=api_key)
18+
print(client_extra_ce.get_about())
19+
print(client_extra_ce.get_config_info())
20+
print(client_extra_ce.get_statuses())
21+
print(client_extra_ce.get_languages())
22+
print(client_extra_ce.get_language(language_id=24))

examples/atd_submission.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import os
2+
import time
3+
4+
import judge0
5+
6+
from dotenv import load_dotenv
7+
8+
load_dotenv()
9+
10+
api_key = os.getenv("ATD_API_KEY")
11+
12+
13+
def run_example(client_class, language_id):
14+
client = client_class(api_key=api_key)
15+
submission = judge0.SingleFileSubmission(
16+
source_code="print(f'Hello Judge0')",
17+
language_id=language_id,
18+
expected_output="Hello Judge0",
19+
)
20+
21+
client.create_submission(submission)
22+
time.sleep(1)
23+
client.get_submission(submission)
24+
25+
print(f"{submission.status=}")
26+
print(f"{submission.stdout=}")
27+
28+
29+
def main():
30+
run_example(judge0.ATDJudge0CE, 100)
31+
run_example(judge0.ATDJudge0ExtraCE, 25)
32+
33+
34+
if __name__ == "__main__":
35+
main()

examples/rapid_clients.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import os
2+
3+
import judge0
4+
from dotenv import load_dotenv
5+
6+
load_dotenv()
7+
8+
api_key = os.getenv("RAPID_API_KEY")
9+
10+
client_ce = judge0.RapidJudge0CE(api_key=api_key)
11+
print(client_ce.get_about())
12+
print(client_ce.get_config_info())
13+
print(client_ce.get_statuses())
14+
print(client_ce.get_languages())
15+
print(client_ce.get_language(language_id=42))
16+
17+
client_extra_ce = judge0.RapidJudge0ExtraCE(api_key=api_key)
18+
print(client_extra_ce.get_about())
19+
print(client_extra_ce.get_config_info())
20+
print(client_extra_ce.get_statuses())
21+
print(client_extra_ce.get_languages())
22+
print(client_extra_ce.get_language(language_id=24))

examples/rapid_submission.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import os
2+
import time
3+
4+
import judge0
5+
6+
from dotenv import load_dotenv
7+
8+
load_dotenv()
9+
10+
api_key = os.getenv("RAPID_API_KEY")
11+
12+
13+
def run_example(client_class, language_id):
14+
client = client_class(api_key=api_key)
15+
submission = judge0.SingleFileSubmission(
16+
source_code="print(f'Hello Judge0')",
17+
language_id=language_id,
18+
expected_output="Hello Judge0",
19+
)
20+
21+
client.create_submission(submission)
22+
time.sleep(1)
23+
client.get_submission(submission)
24+
25+
print(f"{submission.status=}")
26+
print(f"{submission.stdout=}")
27+
28+
29+
def main():
30+
run_example(judge0.RapidJudge0CE, 100)
31+
run_example(judge0.RapidJudge0ExtraCE, 25)
32+
33+
34+
if __name__ == "__main__":
35+
main()

examples/sulu_clients.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55

66
load_dotenv()
77

8-
sulu_auth_token = os.getenv("SULU_API_KEY")
8+
api_key = os.getenv("SULU_API_KEY")
99

10-
client_ce = judge0.SuluCEClient(auth_token=sulu_auth_token)
10+
client_ce = judge0.SuluJudge0CE(api_key=api_key)
1111
print(client_ce.get_about())
1212
print(client_ce.get_config_info())
1313
print(client_ce.get_statuses())
1414
print(client_ce.get_languages())
15-
print(client_ce.get_languages(language_id=42))
15+
print(client_ce.get_language(language_id=42))
1616

17-
client_extra_ce = judge0.SuluExtraCEClient(auth_token=sulu_auth_token)
17+
client_extra_ce = judge0.SuluJudge0ExtraCE(api_key=api_key)
1818
print(client_extra_ce.get_about())
1919
print(client_extra_ce.get_config_info())
2020
print(client_extra_ce.get_statuses())
2121
print(client_extra_ce.get_languages())
22-
print(client_extra_ce.get_languages(language_id=24))
22+
print(client_extra_ce.get_language(language_id=24))

examples/sulu_submission.py

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,29 @@
77

88
load_dotenv()
99

10-
sulu_auth_token = os.getenv("SULU_API_KEY")
11-
12-
client_ce = judge0.SuluCEClient(auth_token=sulu_auth_token)
13-
submission = judge0.SingleFileSubmission(
14-
source_code=b"print(f'Hello Judge0')",
15-
language_id=100,
16-
expected_output=b"Hello Judge0",
17-
)
18-
submission.submit(client_ce)
19-
time.sleep(1)
20-
submission.check(client_ce)
21-
22-
print(submission.status)
23-
print(submission.stdout)
10+
api_key = os.getenv("SULU_API_KEY")
11+
12+
13+
def run_example(client_class, language_id):
14+
client = client_class(api_key=api_key)
15+
submission = judge0.SingleFileSubmission(
16+
source_code="print(f'Hello Judge0')",
17+
language_id=language_id,
18+
expected_output="Hello Judge0",
19+
)
20+
21+
client.create_submission(submission)
22+
time.sleep(1)
23+
client.get_submission(submission)
24+
25+
print(f"{submission.status=}")
26+
print(f"{submission.stdout=}")
27+
28+
29+
def main():
30+
run_example(judge0.SuluJudge0CE, 100)
31+
run_example(judge0.SuluJudge0ExtraCE, 25)
32+
33+
34+
if __name__ == "__main__":
35+
main()

src/judge0/__init__.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1-
from .clients import SuluCEClient, SuluExtraCEClient
1+
from .clients import (
2+
ATDJudge0CE,
3+
ATDJudge0ExtraCE,
4+
Client,
5+
RapidJudge0CE,
6+
RapidJudge0ExtraCE,
7+
SuluJudge0CE,
8+
SuluJudge0ExtraCE,
9+
)
10+
211
from .submission import MultiFileSubmission, SingleFileSubmission, Submission
312

413
__all__ = [
5-
SuluCEClient,
6-
SuluExtraCEClient,
14+
ATDJudge0CE,
15+
ATDJudge0ExtraCE,
16+
Client,
17+
RapidJudge0CE,
18+
RapidJudge0ExtraCE,
19+
SuluJudge0CE,
20+
SuluJudge0ExtraCE,
721
Submission,
822
SingleFileSubmission,
923
MultiFileSubmission,

0 commit comments

Comments
 (0)