Skip to content

Commit 4b88795

Browse files
committed
Update base types docs. Add scroll to top button in docs.
1 parent b97d171 commit 4b88795

File tree

4 files changed

+61
-7
lines changed

4 files changed

+61
-7
lines changed

docs/source/api/types.rst

+38-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,43 @@
11
Types Module
22
============
33

4-
.. automodule:: judge0.base_types
4+
Types
5+
-----
6+
7+
.. autoclass:: judge0.base_types.Config
8+
:members:
9+
:member-order: bysource
10+
11+
.. autoclass:: judge0.base_types.Encodable
12+
:members:
13+
14+
.. autoclass:: judge0.base_types.Flavor
15+
:members:
16+
:member-order: bysource
17+
18+
.. autoclass:: judge0.base_types.Language
19+
:members:
20+
:member-order: bysource
21+
22+
.. autoclass:: judge0.base_types.LanguageAlias
523
:members:
24+
:member-order: bysource
625

26+
.. autoclass:: judge0.base_types.Status
27+
:members:
28+
:member-order: bysource
29+
30+
.. autoclass:: judge0.base_types.TestCase
31+
:members:
32+
:member-order: bysource
33+
34+
Type aliases
35+
------------
36+
37+
.. autoclass:: judge0.base_types.TestCaseType
38+
:members:
39+
:member-order: bysource
40+
41+
.. autoclass:: judge0.base_types.TestCases
42+
:members:
43+
:member-order: bysource

docs/source/conf.py

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
3636

3737
html_theme = "sphinxawesome_theme"
38+
html_theme_options = {
39+
"show_scrolltop": True,
40+
}
3841
html_show_sphinx = False
3942
html_sidebars = {
4043
"**": [

src/judge0/base_types.py

+17-3
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, auto
4+
from enum import auto, IntEnum
55
from typing import Optional, Protocol, runtime_checkable, Sequence, Union
66

77
from pydantic import BaseModel
@@ -14,14 +14,27 @@
1414

1515
@dataclass(frozen=True)
1616
class TestCase:
17+
"""Dataclass for test case."""
18+
1719
input: Optional[str] = None
1820
expected_output: Optional[str] = None
1921

2022
@classmethod
2123
def from_record(
2224
cls, test_case: Union[TestCaseType, None]
2325
) -> Union["TestCase", None]:
24-
"""Create a TestCase from built-in types."""
26+
"""Create a TestCase from built-in types.
27+
28+
Parameters
29+
----------
30+
test_case: :obj:`TestCaseType` or None
31+
Test case data.
32+
33+
Returns
34+
-------
35+
TestCase or None
36+
Created TestCase object or None if test_case is None.
37+
"""
2538
if isinstance(test_case, (tuple, list)):
2639
test_case = {
2740
field: value
@@ -42,7 +55,7 @@ def from_record(
4255

4356

4457
@runtime_checkable
45-
class Encodeable(Protocol):
58+
class Encodable(Protocol):
4659
def encode(self) -> bytes:
4760
"""Serialize the object to bytes."""
4861
...
@@ -59,6 +72,7 @@ class Language(BaseModel):
5972

6073
class LanguageAlias(IntEnum):
6174
"""Language enumeration."""
75+
6276
ASSEMBLY = auto()
6377
BASH = auto()
6478
BASIC = auto()

src/judge0/common.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
from itertools import islice
33
from typing import Union
44

5-
from judge0.base_types import Encodeable
5+
from judge0.base_types import Encodable
66

77

8-
def encode(content: Union[bytes, str, Encodeable]) -> str:
8+
def encode(content: Union[bytes, str, Encodable]) -> str:
99
"""Encode content to base64 string."""
1010
if isinstance(content, bytes):
1111
return b64encode(content).decode()
1212
if isinstance(content, str):
1313
return b64encode(content.encode()).decode()
14-
if isinstance(content, Encodeable):
14+
if isinstance(content, Encodable):
1515
return b64encode(content.encode()).decode()
1616
raise ValueError(f"Unsupported type. Expected bytes or str, got {type(content)}!")
1717

0 commit comments

Comments
 (0)