@@ -28,33 +28,24 @@ def resolve_client(
28
28
if isinstance (submissions , Submission ):
29
29
submissions = [submissions ]
30
30
31
- # TODO: Move to async_execute and sync_execute.
32
- if submissions is not None and len (submissions ) == 0 :
33
- raise ValueError ("Client cannot be determined from empty submissions argument." )
34
-
35
- if submissions is None :
36
- raise ValueError (
37
- "Client cannot be determined from unprovided submissions argument."
38
- )
39
-
40
31
# Check which client supports all languages from the provided submissions.
41
32
languages = [submission .language_id for submission in submissions ]
42
33
43
34
if JUDGE0_IMPLICIT_CE_CLIENT is not None :
44
35
if all (
45
- [
36
+ (
46
37
JUDGE0_IMPLICIT_CE_CLIENT .is_language_supported (lang )
47
38
for lang in languages
48
- ]
39
+ )
49
40
):
50
41
return JUDGE0_IMPLICIT_CE_CLIENT
51
42
52
43
if JUDGE0_IMPLICIT_EXTRA_CE_CLIENT is not None :
53
44
if all (
54
- [
45
+ (
55
46
JUDGE0_IMPLICIT_EXTRA_CE_CLIENT .is_language_supported (lang )
56
47
for lang in languages
57
- ]
48
+ )
58
49
):
59
50
return JUDGE0_IMPLICIT_EXTRA_CE_CLIENT
60
51
@@ -105,6 +96,17 @@ def async_execute(
105
96
client : Optional [Union [Client , Flavor ]] = None ,
106
97
submissions : Optional [Union [Submission , list [Submission ]]] = None ,
107
98
) -> Union [Submission , list [Submission ]]:
99
+ # Check the edge cases if client is not provided.
100
+ if client is None :
101
+ if submissions is None :
102
+ raise ValueError (
103
+ "Client cannot be determined from None submissions argument."
104
+ )
105
+ if isinstance (submissions , list ) and len (submissions ) == 0 :
106
+ raise ValueError (
107
+ "Client cannot be determined from the empty submissions argument."
108
+ )
109
+
108
110
client = resolve_client (client , submissions = submissions )
109
111
110
112
if isinstance (submissions , (list , tuple )):
@@ -116,8 +118,19 @@ def async_execute(
116
118
def sync_execute (
117
119
* ,
118
120
client : Optional [Union [Client , Flavor ]] = None ,
119
- submissions : Union [Submission , list [Submission ], None ] = None ,
121
+ submissions : Optional [ Union [Submission , list [Submission ]] ] = None ,
120
122
) -> Union [Submission , list [Submission ]]:
123
+ # Check the edge cases if client is not provided.
124
+ if client is None :
125
+ if submissions is None :
126
+ raise ValueError (
127
+ "Client cannot be determined from None submissions argument."
128
+ )
129
+ if isinstance (submissions , list ) and len (submissions ) == 0 :
130
+ raise ValueError (
131
+ "Client cannot be determined from the empty submissions argument."
132
+ )
133
+
121
134
client = resolve_client (client , submissions = submissions )
122
135
submissions = async_execute (client = client , submissions = submissions )
123
136
return wait (client , submissions )
0 commit comments