fleet-python 0.2.36__py3-none-any.whl → 0.2.38__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fleet-python might be problematic. Click here for more details.
- fleet/_async/tasks.py +8 -1
- fleet/tasks.py +43 -4
- {fleet_python-0.2.36.dist-info → fleet_python-0.2.38.dist-info}/METADATA +1 -1
- {fleet_python-0.2.36.dist-info → fleet_python-0.2.38.dist-info}/RECORD +7 -7
- {fleet_python-0.2.36.dist-info → fleet_python-0.2.38.dist-info}/WHEEL +0 -0
- {fleet_python-0.2.36.dist-info → fleet_python-0.2.38.dist-info}/licenses/LICENSE +0 -0
- {fleet_python-0.2.36.dist-info → fleet_python-0.2.38.dist-info}/top_level.txt +0 -0
fleet/_async/tasks.py
CHANGED
|
@@ -145,9 +145,16 @@ def verifier_from_string(
|
|
|
145
145
|
try:
|
|
146
146
|
import inspect
|
|
147
147
|
from .verifiers import verifier, AsyncVerifierFunction
|
|
148
|
+
from fleet.verifiers.code import TASK_SUCCESSFUL_SCORE, TASK_FAILED_SCORE
|
|
149
|
+
from fleet.verifiers.db import IgnoreConfig
|
|
148
150
|
|
|
149
151
|
# Create a local namespace for executing the code
|
|
150
|
-
local_namespace = {
|
|
152
|
+
local_namespace = {
|
|
153
|
+
'TASK_SUCCESSFUL_SCORE': TASK_SUCCESSFUL_SCORE,
|
|
154
|
+
'TASK_FAILED_SCORE': TASK_FAILED_SCORE,
|
|
155
|
+
'IgnoreConfig': IgnoreConfig,
|
|
156
|
+
'Environment': object # Add Environment type if needed
|
|
157
|
+
}
|
|
151
158
|
|
|
152
159
|
# Execute the verifier code in the namespace
|
|
153
160
|
exec(verifier_func, globals(), local_namespace)
|
fleet/tasks.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import re
|
|
6
|
+
import asyncio
|
|
6
7
|
from datetime import datetime
|
|
7
8
|
from typing import Any, Dict, Optional, List
|
|
8
9
|
from uuid import UUID
|
|
@@ -73,7 +74,12 @@ class Task(BaseModel):
|
|
|
73
74
|
if self.verifier:
|
|
74
75
|
import inspect
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
# Check if verifier has remote method (for decorated verifiers)
|
|
78
|
+
if hasattr(self.verifier, 'remote'):
|
|
79
|
+
result = self.verifier.remote(env, *args, **kwargs)
|
|
80
|
+
else:
|
|
81
|
+
# For verifiers created from string, call directly
|
|
82
|
+
result = self.verifier(env, *args, **kwargs)
|
|
77
83
|
|
|
78
84
|
# If the result is a coroutine, we need to run it
|
|
79
85
|
if inspect.iscoroutine(result):
|
|
@@ -144,12 +150,23 @@ def verifier_from_string(
|
|
|
144
150
|
try:
|
|
145
151
|
import inspect
|
|
146
152
|
from .verifiers import verifier, SyncVerifierFunction
|
|
153
|
+
from .verifiers.code import TASK_SUCCESSFUL_SCORE, TASK_FAILED_SCORE
|
|
154
|
+
from .verifiers.db import IgnoreConfig
|
|
155
|
+
|
|
156
|
+
# Create a globals namespace with all required imports
|
|
157
|
+
exec_globals = globals().copy()
|
|
158
|
+
exec_globals.update({
|
|
159
|
+
'TASK_SUCCESSFUL_SCORE': TASK_SUCCESSFUL_SCORE,
|
|
160
|
+
'TASK_FAILED_SCORE': TASK_FAILED_SCORE,
|
|
161
|
+
'IgnoreConfig': IgnoreConfig,
|
|
162
|
+
'Environment': object # Add Environment type if needed
|
|
163
|
+
})
|
|
147
164
|
|
|
148
165
|
# Create a local namespace for executing the code
|
|
149
166
|
local_namespace = {}
|
|
150
167
|
|
|
151
168
|
# Execute the verifier code in the namespace
|
|
152
|
-
exec(verifier_func,
|
|
169
|
+
exec(verifier_func, exec_globals, local_namespace)
|
|
153
170
|
|
|
154
171
|
# Find the function that was defined
|
|
155
172
|
func_obj = None
|
|
@@ -161,8 +178,30 @@ def verifier_from_string(
|
|
|
161
178
|
if func_obj is None:
|
|
162
179
|
raise ValueError("No function found in verifier code")
|
|
163
180
|
|
|
164
|
-
# Create
|
|
165
|
-
|
|
181
|
+
# Create a wrapper function that provides the necessary globals
|
|
182
|
+
def wrapped_verifier(env, *args, **kwargs):
|
|
183
|
+
# Set up globals for the function execution
|
|
184
|
+
func_globals = func_obj.__globals__.copy() if hasattr(func_obj, '__globals__') else {}
|
|
185
|
+
func_globals.update({
|
|
186
|
+
'TASK_SUCCESSFUL_SCORE': TASK_SUCCESSFUL_SCORE,
|
|
187
|
+
'TASK_FAILED_SCORE': TASK_FAILED_SCORE,
|
|
188
|
+
'IgnoreConfig': IgnoreConfig
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
# Create a new function with the updated globals
|
|
192
|
+
import types
|
|
193
|
+
new_func = types.FunctionType(
|
|
194
|
+
func_obj.__code__,
|
|
195
|
+
func_globals,
|
|
196
|
+
func_obj.__name__,
|
|
197
|
+
func_obj.__defaults__,
|
|
198
|
+
func_obj.__closure__
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
return new_func(env, *args, **kwargs)
|
|
202
|
+
|
|
203
|
+
# Create an AsyncVerifierFunction instance with the wrapped function
|
|
204
|
+
verifier_instance = SyncVerifierFunction(wrapped_verifier, verifier_key, verifier_id)
|
|
166
205
|
|
|
167
206
|
# Store additional metadata
|
|
168
207
|
verifier_instance._verifier_code = verifier_func
|
|
@@ -26,7 +26,7 @@ fleet/config.py,sha256=uY02ZKxVoXqVDta-0IMWaYJeE1CTXF_fA9NI6QUutmU,319
|
|
|
26
26
|
fleet/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
|
|
27
27
|
fleet/global_client.py,sha256=frrDAFNM2ywN0JHLtlm9qbE1dQpnQJsavJpb7xSR_bU,1072
|
|
28
28
|
fleet/models.py,sha256=9tDjgcgKPMnf-R_MDh-Ocp_UMbyJ8tJyjb15XqU0N94,12454
|
|
29
|
-
fleet/tasks.py,sha256=
|
|
29
|
+
fleet/tasks.py,sha256=PcqwRktjR7o7surwWCgDScFp6PMl2YguJSs8VgZYs0g,8968
|
|
30
30
|
fleet/types.py,sha256=L4Y82xICf1tzyCLqhLYUgEoaIIS5h9T05TyFNHSWs3s,652
|
|
31
31
|
fleet/_async/__init__.py,sha256=lrnDD6N9p0Oqpi_djxTnxh8I5F7nA7KNn0khciGmgpg,6747
|
|
32
32
|
fleet/_async/base.py,sha256=oisVTQsx0M_yTmyQJc3oij63uKZ97MHz-xYFsWXxQE8,9202
|
|
@@ -34,7 +34,7 @@ fleet/_async/client.py,sha256=WNaBwHJWRrOyYB79_qujdKkRMPmhpSucHbfTic9uc6A,22335
|
|
|
34
34
|
fleet/_async/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
|
|
35
35
|
fleet/_async/global_client.py,sha256=4WskpLHbsDEgWW7hXMD09W-brkp4euy8w2ZJ88594rQ,1103
|
|
36
36
|
fleet/_async/models.py,sha256=9tDjgcgKPMnf-R_MDh-Ocp_UMbyJ8tJyjb15XqU0N94,12454
|
|
37
|
-
fleet/_async/tasks.py,sha256=
|
|
37
|
+
fleet/_async/tasks.py,sha256=pY01ImjiX0CPWfTy0HcOUjLSeqzItigOhWUAAAiSj6M,7685
|
|
38
38
|
fleet/_async/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
fleet/_async/env/client.py,sha256=9GOSkEWNncwTtiZNaJ2vNGrFCPutyan9lBNhD87dAzQ,1059
|
|
40
40
|
fleet/_async/instance/__init__.py,sha256=PtmJq8J8bh0SOQ2V55QURz5GJfobozwtQoqhaOk3_tI,515
|
|
@@ -67,10 +67,10 @@ fleet/verifiers/decorator.py,sha256=nAP3O8szXu7md_kpwpz91hGSUNEVLYjwZQZTkQlV1DM,
|
|
|
67
67
|
fleet/verifiers/parse.py,sha256=0bAbj9VvT__yU4ZVREUK-Tn9dukh9LCpmfVsgj1DfP4,8508
|
|
68
68
|
fleet/verifiers/sql_differ.py,sha256=dmiGCFXVMEMbAX519OjhVqgA8ZvhnvdmC1BVpL7QCF0,6490
|
|
69
69
|
fleet/verifiers/verifier.py,sha256=53oBWAf0yy3bZmZx9eH9AWIf65H7OP2UUm0YwWCL6Mc,14286
|
|
70
|
-
fleet_python-0.2.
|
|
70
|
+
fleet_python-0.2.38.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
71
71
|
scripts/fix_sync_imports.py,sha256=X9fWLTpiPGkSHsjyQUDepOJkxOqw1DPj7nd8wFlFqLQ,8368
|
|
72
72
|
scripts/unasync.py,sha256=vWVQxRWX8SRZO5cmzEhpvnG_REhCWXpidIGIpWmEcvI,696
|
|
73
|
-
fleet_python-0.2.
|
|
74
|
-
fleet_python-0.2.
|
|
75
|
-
fleet_python-0.2.
|
|
76
|
-
fleet_python-0.2.
|
|
73
|
+
fleet_python-0.2.38.dist-info/METADATA,sha256=72nH4_f7klXmhxV8TGFNHBSejrFWJFxMJHoYq75RhBc,3354
|
|
74
|
+
fleet_python-0.2.38.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
75
|
+
fleet_python-0.2.38.dist-info/top_level.txt,sha256=_3DSmTohvSDf3AIP_BYfGzhwO1ECFwuzg83X-wHCx3Y,23
|
|
76
|
+
fleet_python-0.2.38.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|