99
1010
1111def get_client (flavor : Flavor = Flavor .CE ) -> Client :
12+ """Resolve client from API keys from environment or default to preview client.
13+
14+ Parameters
15+ ----------
16+ flavor : Flavor
17+ Flavor of Judge0 Client.
18+
19+ Returns
20+ -------
21+ Client
22+ An object of base type Client and the specified flavor.
23+ """
1224 from . import _get_implicit_client
1325
1426 if isinstance (flavor , Flavor ):
@@ -26,23 +38,40 @@ def _resolve_client(
2638) -> Client :
2739 """Resolve a client from flavor or submission(s) arguments.
2840
41+ Parameters
42+ ----------
43+ client : Client or Flavor, optional
44+ A Client object or flavor of client. Returns the client if not None.
45+ submissions: Submission or Submissions, optional
46+ Submission(s) used to determine the suitable client.
47+
48+ Returns
49+ -------
50+ Client
51+ An object of base type Client.
52+
2953 Raises
3054 ------
3155 ClientResolutionError
32- Raised if client resolution fails.
56+ If there is no implemented client that supports all the languages specified
57+ in the submissions.
3358 """
3459 # User explicitly passed a client.
3560 if isinstance (client , Client ):
3661 return client
3762
63+ # NOTE: At the moment, we do not support the option to check if explicit
64+ # flavor of a client supports the submissions, i.e. submissions argument is
65+ # ignored if flavor argument is provided.
66+
3867 if isinstance (client , Flavor ):
3968 return get_client (client )
4069
4170 if client is None and isinstance (submissions , Iterable ) and len (submissions ) == 0 :
4271 raise ValueError ("Client cannot be determined from empty submissions." )
4372
4473 # client is None and we have to determine a flavor of the client from the
45- # submissions and the languages.
74+ # the submission's languages.
4675 if isinstance (submissions , Submission ):
4776 submissions = [submissions ]
4877
@@ -65,18 +94,17 @@ def _resolve_client(
6594
6695def create_submissions (
6796 * ,
68- client : Optional [Client ] = None ,
97+ client : Optional [Union [ Client , Flavor ] ] = None ,
6998 submissions : Optional [Union [Submission , Submissions ]] = None ,
7099) -> Union [Submission , Submissions ]:
71- """Create submissions to a client.
100+ """Universal function for creating submissions to the client.
72101
73102 Parameters
74103 ----------
75- client : Client, optional
76- A Client where submissions should be created. If None, will try to
77- be automatically resolved.
78- submissions: Submission, Submissions
79- A submission or submissions to create.
104+ client : Client or Flavor, optional
105+ A client or client flavor where submissions should be created.
106+ submissions: Submission or Submissions, optional
107+ Submission(s) to create.
80108
81109 Raises
82110 ------
@@ -102,19 +130,20 @@ def create_submissions(
102130
103131def get_submissions (
104132 * ,
105- client : Optional [Client ] = None ,
133+ client : Optional [Union [ Client , Flavor ] ] = None ,
106134 submissions : Optional [Union [Submission , Submissions ]] = None ,
107135 fields : Optional [Union [str , Iterable [str ]]] = None ,
108136) -> Union [Submission , Submissions ]:
109- """Create submissions to a client.
137+ """Get submission (status) from a client.
110138
111139 Parameters
112140 ----------
113- client : Client, optional
114- A Client where submissions should be created. If None, will try to
115- be automatically resolved.
116- submissions: Submission, Submissions
117- A submission or submissions to create.
141+ client : Client or Flavor, optional
142+ A client or client flavor where submissions should be checked.
143+ submissions : Submission or Submissions, optional
144+ Submission(s) to update.
145+ fields : str or sequence of str, optional
146+ Submission attributes that need to be updated. Defaults to all attributes.
118147
119148 Raises
120149 ------
@@ -144,10 +173,26 @@ def get_submissions(
144173
145174def wait (
146175 * ,
147- client : Optional [Client ] = None ,
176+ client : Optional [Union [ Client , Flavor ] ] = None ,
148177 submissions : Optional [Union [Submission , Submissions ]] = None ,
149178 retry_strategy : Optional [RetryStrategy ] = None ,
150179) -> Union [Submission , Submissions ]:
180+ """Wait for all the submissions to finish.
181+
182+ Parameters
183+ ----------
184+ client : Client or Flavor, optional
185+ A client or client flavor where submissions should be checked.
186+ submissions : Submission or Submissions
187+ Submission(s) to wait for.
188+ retry_strategy : RetryStrategy, optional
189+ A retry strategy.
190+
191+ Raises
192+ ------
193+ ClientResolutionError
194+ Raised if client resolution fails.
195+ """
151196 client = _resolve_client (client , submissions )
152197
153198 if retry_strategy is None :
@@ -189,9 +234,9 @@ def create_submissions_from_test_cases(
189234 submissions : Union [Submission , Submissions ],
190235 test_cases : Optional [Union [TestCaseType , TestCases ]] = None ,
191236) -> Union [Submission , list [Submission ]]:
192- """Create submissions from the ( submission, test_case) pairs.
237+ """Create submissions from the submission and test case pairs.
193238
194- This function always returns a deep copy so make sure you are using the
239+ Function always returns a deep copy so make sure you are using the
195240 returned submission(s).
196241
197242 Parameters
@@ -335,7 +380,7 @@ def sync_execute(
335380 A client where submissions should be created. If None, will try to be
336381 resolved.
337382 submissions : Submission or Submissions, optional
338- Submission or submissions for execution.
383+ Submission(s) for execution.
339384 source_code: str, optional
340385 A source code of a program.
341386 test_cases: TestCaseType or TestCases, optional
0 commit comments