fleet-python 0.2.54__py3-none-any.whl → 0.2.55__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.
- examples/export_tasks.py +76 -0
- examples/import_tasks.py +89 -3
- fleet/_async/client.py +21 -0
- fleet/_async/tasks.py +19 -0
- fleet/client.py +21 -0
- fleet/tasks.py +22 -3
- {fleet_python-0.2.54.dist-info → fleet_python-0.2.55.dist-info}/METADATA +1 -1
- {fleet_python-0.2.54.dist-info → fleet_python-0.2.55.dist-info}/RECORD +11 -10
- {fleet_python-0.2.54.dist-info → fleet_python-0.2.55.dist-info}/WHEEL +0 -0
- {fleet_python-0.2.54.dist-info → fleet_python-0.2.55.dist-info}/licenses/LICENSE +0 -0
- {fleet_python-0.2.54.dist-info → fleet_python-0.2.55.dist-info}/top_level.txt +0 -0
examples/export_tasks.py
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import json
|
|
3
|
+
import fleet
|
|
4
|
+
from dotenv import load_dotenv
|
|
5
|
+
|
|
6
|
+
load_dotenv()
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def main():
|
|
10
|
+
parser = argparse.ArgumentParser(description="Export tasks to a JSON file")
|
|
11
|
+
parser.add_argument(
|
|
12
|
+
"--project-key",
|
|
13
|
+
"-p",
|
|
14
|
+
help="Optional project key to filter tasks",
|
|
15
|
+
default=None,
|
|
16
|
+
)
|
|
17
|
+
parser.add_argument(
|
|
18
|
+
"--output",
|
|
19
|
+
"-o",
|
|
20
|
+
help="Output JSON filename (defaults to {team_id}.json)",
|
|
21
|
+
default=None,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
args = parser.parse_args()
|
|
25
|
+
|
|
26
|
+
# Get account info
|
|
27
|
+
account = fleet.env.account()
|
|
28
|
+
print(f"Exporting from team: {account.team_name}")
|
|
29
|
+
|
|
30
|
+
# Load tasks
|
|
31
|
+
if args.project_key:
|
|
32
|
+
print(f"Loading tasks from project: {args.project_key}")
|
|
33
|
+
tasks = fleet.load_tasks(project_key=args.project_key)
|
|
34
|
+
else:
|
|
35
|
+
print("Loading all tasks")
|
|
36
|
+
tasks = fleet.load_tasks()
|
|
37
|
+
|
|
38
|
+
print(f"\nFound {len(tasks)} task(s)")
|
|
39
|
+
|
|
40
|
+
# Validate that all tasks have verifier_func
|
|
41
|
+
print("Validating tasks have verifier_func...")
|
|
42
|
+
missing_verifier = []
|
|
43
|
+
for task in tasks:
|
|
44
|
+
if not task.verifier_func:
|
|
45
|
+
missing_verifier.append(task.key)
|
|
46
|
+
|
|
47
|
+
if missing_verifier:
|
|
48
|
+
print(f"\n✗ Error: {len(missing_verifier)} task(s) missing verifier_func:")
|
|
49
|
+
for key in missing_verifier[:10]: # Show first 10
|
|
50
|
+
print(f" - {key}")
|
|
51
|
+
if len(missing_verifier) > 10:
|
|
52
|
+
print(f" ... and {len(missing_verifier) - 10} more")
|
|
53
|
+
raise ValueError(
|
|
54
|
+
"All tasks must have a verifier_func. Cannot export tasks without verifiers."
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
print("✓ All tasks have verifier_func")
|
|
58
|
+
|
|
59
|
+
# Determine output filename
|
|
60
|
+
output_file = args.output or f"{account.team_id}.json"
|
|
61
|
+
|
|
62
|
+
# Export to JSON
|
|
63
|
+
print(f"\nExporting to: {output_file}")
|
|
64
|
+
with open(output_file, "w", encoding="utf-8") as f:
|
|
65
|
+
json.dump(
|
|
66
|
+
[task.model_dump() for task in tasks],
|
|
67
|
+
f,
|
|
68
|
+
indent=2,
|
|
69
|
+
ensure_ascii=False,
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
print(f"✓ Successfully exported {len(tasks)} task(s) to {output_file}")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
if __name__ == "__main__":
|
|
76
|
+
main()
|
examples/import_tasks.py
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
+
import argparse
|
|
3
|
+
import json
|
|
4
|
+
import sys
|
|
2
5
|
import fleet
|
|
3
6
|
from dotenv import load_dotenv
|
|
4
7
|
|
|
@@ -6,10 +9,93 @@ load_dotenv()
|
|
|
6
9
|
|
|
7
10
|
|
|
8
11
|
async def main():
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
parser = argparse.ArgumentParser(description="Import tasks from a JSON file")
|
|
13
|
+
parser.add_argument("json_file", help="Path to the JSON file containing tasks")
|
|
14
|
+
parser.add_argument(
|
|
15
|
+
"--project-key",
|
|
16
|
+
"-p",
|
|
17
|
+
help="Optional project key to associate with the tasks",
|
|
18
|
+
default=None,
|
|
12
19
|
)
|
|
20
|
+
parser.add_argument(
|
|
21
|
+
"--yes",
|
|
22
|
+
"-y",
|
|
23
|
+
action="store_true",
|
|
24
|
+
help="Skip confirmation prompt and import automatically",
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
args = parser.parse_args()
|
|
28
|
+
|
|
29
|
+
# Load and parse the JSON file
|
|
30
|
+
try:
|
|
31
|
+
with open(args.json_file, "r", encoding="utf-8") as f:
|
|
32
|
+
tasks_data = json.load(f)
|
|
33
|
+
except FileNotFoundError:
|
|
34
|
+
print(f"Error: File '{args.json_file}' not found")
|
|
35
|
+
sys.exit(1)
|
|
36
|
+
except json.JSONDecodeError as e:
|
|
37
|
+
print(f"Error: Invalid JSON in '{args.json_file}': {e}")
|
|
38
|
+
sys.exit(1)
|
|
39
|
+
|
|
40
|
+
# Extract task information and validate verifier_func
|
|
41
|
+
task_count = len(tasks_data)
|
|
42
|
+
task_keys = []
|
|
43
|
+
missing_verifier = []
|
|
44
|
+
for task_data in tasks_data:
|
|
45
|
+
task_key = task_data.get("key") or task_data.get("id")
|
|
46
|
+
if task_key:
|
|
47
|
+
task_keys.append(task_key)
|
|
48
|
+
else:
|
|
49
|
+
task_keys.append("(no key)")
|
|
50
|
+
|
|
51
|
+
# Check for verifier_func
|
|
52
|
+
verifier_code = task_data.get("verifier_func") or task_data.get("verifier_code")
|
|
53
|
+
if not verifier_code:
|
|
54
|
+
missing_verifier.append(task_key or "(no key)")
|
|
55
|
+
|
|
56
|
+
# Validate all tasks have verifier_func
|
|
57
|
+
if missing_verifier:
|
|
58
|
+
print(f"✗ Error: {len(missing_verifier)} task(s) missing verifier_func:")
|
|
59
|
+
for key in missing_verifier[:10]: # Show first 10
|
|
60
|
+
print(f" - {key}")
|
|
61
|
+
if len(missing_verifier) > 10:
|
|
62
|
+
print(f" ... and {len(missing_verifier) - 10} more")
|
|
63
|
+
print("\nAll tasks must have a verifier_func to be imported.")
|
|
64
|
+
sys.exit(1)
|
|
65
|
+
|
|
66
|
+
# Get account info
|
|
67
|
+
account = await fleet.env.account_async()
|
|
68
|
+
|
|
69
|
+
# Print summary
|
|
70
|
+
print(f"Importing to team: {account.team_name}")
|
|
71
|
+
print(f"\nFound {task_count} task(s) in '{args.json_file}':")
|
|
72
|
+
print("\nTask keys:")
|
|
73
|
+
for i, key in enumerate(task_keys, 1):
|
|
74
|
+
print(f" {i}. {key}")
|
|
75
|
+
|
|
76
|
+
if args.project_key:
|
|
77
|
+
print(f"\nProject key: {args.project_key}")
|
|
78
|
+
else:
|
|
79
|
+
print("\nProject key: (none)")
|
|
80
|
+
|
|
81
|
+
# Confirmation prompt (unless --yes flag is provided)
|
|
82
|
+
if not args.yes:
|
|
83
|
+
print("\n" + "=" * 60)
|
|
84
|
+
response = input("Type 'YES' to proceed with import: ")
|
|
85
|
+
if response != "YES":
|
|
86
|
+
print("Import cancelled.")
|
|
87
|
+
sys.exit(0)
|
|
88
|
+
|
|
89
|
+
# Import tasks
|
|
90
|
+
print("\nImporting tasks...")
|
|
91
|
+
try:
|
|
92
|
+
results = await fleet.import_tasks_async(
|
|
93
|
+
args.json_file, project_key=args.project_key
|
|
94
|
+
)
|
|
95
|
+
print(f"\n✓ Successfully imported {len(results)} task(s)")
|
|
96
|
+
except Exception as e:
|
|
97
|
+
print(f"\n✗ Error importing tasks: {e}")
|
|
98
|
+
sys.exit(1)
|
|
13
99
|
|
|
14
100
|
|
|
15
101
|
if __name__ == "__main__":
|
fleet/_async/client.py
CHANGED
|
@@ -372,6 +372,8 @@ class AsyncFleet:
|
|
|
372
372
|
), # Use env_id or fallback to env_key
|
|
373
373
|
created_at=task_json.get("created_at"),
|
|
374
374
|
version=task_json.get("version"),
|
|
375
|
+
data_id=task_json.get("data_id"),
|
|
376
|
+
data_version=task_json.get("data_version"),
|
|
375
377
|
env_variables=task_json.get("env_variables", {}),
|
|
376
378
|
verifier_func=verifier_code, # Set verifier code
|
|
377
379
|
verifier=verifier, # Use created verifier or None
|
|
@@ -386,6 +388,8 @@ class AsyncFleet:
|
|
|
386
388
|
version: Optional[str] = None,
|
|
387
389
|
team_id: Optional[str] = None,
|
|
388
390
|
project_key: Optional[str] = None,
|
|
391
|
+
data_id: Optional[str] = None,
|
|
392
|
+
data_version: Optional[str] = None,
|
|
389
393
|
) -> List[Task]:
|
|
390
394
|
"""Load tasks for the authenticated team, with optional filtering.
|
|
391
395
|
|
|
@@ -394,6 +398,9 @@ class AsyncFleet:
|
|
|
394
398
|
keys: Optional list of task keys to filter by
|
|
395
399
|
version: Optional version to filter tasks by (client-side filter)
|
|
396
400
|
team_id: Optional team_id to filter by (admin only)
|
|
401
|
+
project_key: Optional project key to filter tasks by
|
|
402
|
+
data_id: Optional data identifier to filter tasks by
|
|
403
|
+
data_version: Optional data version to filter tasks by
|
|
397
404
|
|
|
398
405
|
Returns:
|
|
399
406
|
List[Task] containing Task objects
|
|
@@ -407,6 +414,10 @@ class AsyncFleet:
|
|
|
407
414
|
params["team_id"] = team_id
|
|
408
415
|
if project_key is not None:
|
|
409
416
|
params["project_key"] = project_key
|
|
417
|
+
if data_id is not None:
|
|
418
|
+
params["data_id"] = data_id
|
|
419
|
+
if data_version is not None:
|
|
420
|
+
params["data_version"] = data_version
|
|
410
421
|
|
|
411
422
|
response = await self.client.request("GET", "/v1/tasks", params=params)
|
|
412
423
|
task_list_response = TaskListResponse(**response.json())
|
|
@@ -511,6 +522,8 @@ class AsyncFleet:
|
|
|
511
522
|
env_id=task_response.environment_id, # Map environment_id -> env_id
|
|
512
523
|
created_at=task_response.created_at,
|
|
513
524
|
version=task_response.version,
|
|
525
|
+
data_id=getattr(task_response, "data_id", None), # Get data_id if available
|
|
526
|
+
data_version=getattr(task_response, "data_version", None), # Get data_version if available
|
|
514
527
|
env_variables=task_response.env_variables or {},
|
|
515
528
|
verifier_func=verifier_func, # Set verifier code
|
|
516
529
|
verifier=verifier, # Use created verifier or None
|
|
@@ -521,6 +534,14 @@ class AsyncFleet:
|
|
|
521
534
|
# Apply client-side filtering for version if specified
|
|
522
535
|
if version is not None:
|
|
523
536
|
tasks = [task for task in tasks if task.version == version]
|
|
537
|
+
|
|
538
|
+
# Apply client-side filtering for data_id if specified
|
|
539
|
+
if data_id is not None:
|
|
540
|
+
tasks = [task for task in tasks if task.data_id == data_id]
|
|
541
|
+
|
|
542
|
+
# Apply client-side filtering for data_version if specified
|
|
543
|
+
if data_version is not None:
|
|
544
|
+
tasks = [task for task in tasks if task.data_version == data_version]
|
|
524
545
|
|
|
525
546
|
return tasks
|
|
526
547
|
|
fleet/_async/tasks.py
CHANGED
|
@@ -25,6 +25,8 @@ class Task(BaseModel):
|
|
|
25
25
|
)
|
|
26
26
|
created_at: Optional[datetime] = Field(None, description="Task creation timestamp")
|
|
27
27
|
version: Optional[str] = Field(None, description="Task version")
|
|
28
|
+
data_id: Optional[str] = Field(None, description="Data identifier")
|
|
29
|
+
data_version: Optional[str] = Field(None, description="Data version")
|
|
28
30
|
verifier_func: Optional[str] = Field(None, description="Verifier function code")
|
|
29
31
|
verifier: Optional[Any] = Field(
|
|
30
32
|
None,
|
|
@@ -58,6 +60,15 @@ class Task(BaseModel):
|
|
|
58
60
|
return f"{self.env_id}:{self.version}"
|
|
59
61
|
return self.env_id
|
|
60
62
|
|
|
63
|
+
@property
|
|
64
|
+
def data_key(self) -> Optional[str]:
|
|
65
|
+
"""Get the data key combining data_id and data_version."""
|
|
66
|
+
if self.data_id and self.data_version:
|
|
67
|
+
return f"{self.data_id}:{self.data_version}"
|
|
68
|
+
elif self.data_id:
|
|
69
|
+
return self.data_id
|
|
70
|
+
return None
|
|
71
|
+
|
|
61
72
|
class Config:
|
|
62
73
|
"""Pydantic model configuration."""
|
|
63
74
|
|
|
@@ -282,6 +293,8 @@ async def load_tasks(
|
|
|
282
293
|
version: Optional[str] = None,
|
|
283
294
|
team_id: Optional[str] = None,
|
|
284
295
|
project_key: Optional[str] = None,
|
|
296
|
+
data_id: Optional[str] = None,
|
|
297
|
+
data_version: Optional[str] = None,
|
|
285
298
|
) -> List[Task]:
|
|
286
299
|
"""Convenience function to load tasks with optional filtering.
|
|
287
300
|
|
|
@@ -290,11 +303,15 @@ async def load_tasks(
|
|
|
290
303
|
keys: Optional list of task keys to filter by
|
|
291
304
|
version: Optional version to filter tasks by
|
|
292
305
|
team_id: Optional team_id to filter by (admin only)
|
|
306
|
+
project_key: Optional project key to filter tasks by
|
|
307
|
+
data_id: Optional data identifier to filter tasks by
|
|
308
|
+
data_version: Optional data version to filter tasks by
|
|
293
309
|
|
|
294
310
|
Examples:
|
|
295
311
|
tasks = await fleet.load_tasks(env_key="fira")
|
|
296
312
|
tasks = await fleet.load_tasks(keys=["task1", "task2"])
|
|
297
313
|
tasks = await fleet.load_tasks(env_key="fira", version="v1.0")
|
|
314
|
+
tasks = await fleet.load_tasks(data_id="my-data", data_version="v1.0")
|
|
298
315
|
"""
|
|
299
316
|
# Use the global client by default so users can pre-configure it once
|
|
300
317
|
from .global_client import get_client
|
|
@@ -306,6 +323,8 @@ async def load_tasks(
|
|
|
306
323
|
version=version,
|
|
307
324
|
team_id=team_id,
|
|
308
325
|
project_key=project_key,
|
|
326
|
+
data_id=data_id,
|
|
327
|
+
data_version=data_version,
|
|
309
328
|
)
|
|
310
329
|
|
|
311
330
|
|
fleet/client.py
CHANGED
|
@@ -370,6 +370,8 @@ class Fleet:
|
|
|
370
370
|
), # Use env_id or fallback to env_key
|
|
371
371
|
created_at=task_json.get("created_at"),
|
|
372
372
|
version=task_json.get("version"),
|
|
373
|
+
data_id=task_json.get("data_id"),
|
|
374
|
+
data_version=task_json.get("data_version"),
|
|
373
375
|
env_variables=task_json.get("env_variables", {}),
|
|
374
376
|
verifier_func=verifier_code, # Set verifier code
|
|
375
377
|
verifier=verifier, # Use created verifier or None
|
|
@@ -384,6 +386,8 @@ class Fleet:
|
|
|
384
386
|
version: Optional[str] = None,
|
|
385
387
|
team_id: Optional[str] = None,
|
|
386
388
|
project_key: Optional[str] = None,
|
|
389
|
+
data_id: Optional[str] = None,
|
|
390
|
+
data_version: Optional[str] = None,
|
|
387
391
|
) -> List[Task]:
|
|
388
392
|
"""Load tasks for the authenticated team, with optional filtering.
|
|
389
393
|
|
|
@@ -392,6 +396,9 @@ class Fleet:
|
|
|
392
396
|
keys: Optional list of task keys to filter by
|
|
393
397
|
version: Optional version to filter tasks by (client-side filter)
|
|
394
398
|
team_id: Optional team_id to filter by (admin only)
|
|
399
|
+
project_key: Optional project key to filter tasks by
|
|
400
|
+
data_id: Optional data identifier to filter tasks by
|
|
401
|
+
data_version: Optional data version to filter tasks by
|
|
395
402
|
|
|
396
403
|
Returns:
|
|
397
404
|
List[Task] containing Task objects
|
|
@@ -405,6 +412,10 @@ class Fleet:
|
|
|
405
412
|
params["team_id"] = team_id
|
|
406
413
|
if project_key is not None:
|
|
407
414
|
params["project_key"] = project_key
|
|
415
|
+
if data_id is not None:
|
|
416
|
+
params["data_id"] = data_id
|
|
417
|
+
if data_version is not None:
|
|
418
|
+
params["data_version"] = data_version
|
|
408
419
|
|
|
409
420
|
response = self.client.request("GET", "/v1/tasks", params=params)
|
|
410
421
|
task_list_response = TaskListResponse(**response.json())
|
|
@@ -517,6 +528,8 @@ class Fleet:
|
|
|
517
528
|
env_id=task_response.environment_id, # Map environment_id -> env_id
|
|
518
529
|
created_at=task_response.created_at,
|
|
519
530
|
version=task_response.version,
|
|
531
|
+
data_id=getattr(task_response, "data_id", None), # Get data_id if available
|
|
532
|
+
data_version=getattr(task_response, "data_version", None), # Get data_version if available
|
|
520
533
|
env_variables=task_response.env_variables or {},
|
|
521
534
|
verifier_func=verifier_func, # Set verifier code
|
|
522
535
|
verifier=verifier, # Use created verifier or None
|
|
@@ -527,6 +540,14 @@ class Fleet:
|
|
|
527
540
|
# Apply client-side filtering for version if specified
|
|
528
541
|
if version is not None:
|
|
529
542
|
tasks = [task for task in tasks if task.version == version]
|
|
543
|
+
|
|
544
|
+
# Apply client-side filtering for data_id if specified
|
|
545
|
+
if data_id is not None:
|
|
546
|
+
tasks = [task for task in tasks if task.data_id == data_id]
|
|
547
|
+
|
|
548
|
+
# Apply client-side filtering for data_version if specified
|
|
549
|
+
if data_version is not None:
|
|
550
|
+
tasks = [task for task in tasks if task.data_version == data_version]
|
|
530
551
|
|
|
531
552
|
return tasks
|
|
532
553
|
|
fleet/tasks.py
CHANGED
|
@@ -26,6 +26,8 @@ class Task(BaseModel):
|
|
|
26
26
|
)
|
|
27
27
|
created_at: Optional[datetime] = Field(None, description="Task creation timestamp")
|
|
28
28
|
version: Optional[str] = Field(None, description="Task version")
|
|
29
|
+
data_id: Optional[str] = Field(None, description="Data identifier")
|
|
30
|
+
data_version: Optional[str] = Field(None, description="Data version")
|
|
29
31
|
verifier_func: Optional[str] = Field(None, description="Verifier function code")
|
|
30
32
|
verifier: Optional[Any] = Field(
|
|
31
33
|
None,
|
|
@@ -59,6 +61,15 @@ class Task(BaseModel):
|
|
|
59
61
|
return f"{self.env_id}:{self.version}"
|
|
60
62
|
return self.env_id
|
|
61
63
|
|
|
64
|
+
@property
|
|
65
|
+
def data_key(self) -> Optional[str]:
|
|
66
|
+
"""Get the data key combining data_id and data_version."""
|
|
67
|
+
if self.data_id and self.data_version:
|
|
68
|
+
return f"{self.data_id}:{self.data_version}"
|
|
69
|
+
elif self.data_id:
|
|
70
|
+
return self.data_id
|
|
71
|
+
return None
|
|
72
|
+
|
|
62
73
|
class Config:
|
|
63
74
|
"""Pydantic model configuration."""
|
|
64
75
|
|
|
@@ -285,6 +296,8 @@ def load_tasks(
|
|
|
285
296
|
version: Optional[str] = None,
|
|
286
297
|
team_id: Optional[str] = None,
|
|
287
298
|
project_key: Optional[str] = None,
|
|
299
|
+
data_id: Optional[str] = None,
|
|
300
|
+
data_version: Optional[str] = None,
|
|
288
301
|
) -> List[Task]:
|
|
289
302
|
"""Convenience function to load tasks with optional filtering.
|
|
290
303
|
|
|
@@ -293,11 +306,15 @@ def load_tasks(
|
|
|
293
306
|
keys: Optional list of task keys to filter by
|
|
294
307
|
version: Optional version to filter tasks by
|
|
295
308
|
team_id: Optional team_id to filter by (admin only)
|
|
309
|
+
project_key: Optional project key to filter tasks by
|
|
310
|
+
data_id: Optional data identifier to filter tasks by
|
|
311
|
+
data_version: Optional data version to filter tasks by
|
|
296
312
|
|
|
297
313
|
Examples:
|
|
298
|
-
tasks =
|
|
299
|
-
tasks =
|
|
300
|
-
tasks =
|
|
314
|
+
tasks = fleet.load_tasks(env_key="fira")
|
|
315
|
+
tasks = fleet.load_tasks(keys=["task1", "task2"])
|
|
316
|
+
tasks = fleet.load_tasks(env_key="fira", version="v1.0")
|
|
317
|
+
tasks = fleet.load_tasks(data_id="my-data", data_version="v1.0")
|
|
301
318
|
"""
|
|
302
319
|
# Use the global client by default so users can pre-configure it once
|
|
303
320
|
from .global_client import get_client
|
|
@@ -309,6 +326,8 @@ def load_tasks(
|
|
|
309
326
|
version=version,
|
|
310
327
|
team_id=team_id,
|
|
311
328
|
project_key=project_key,
|
|
329
|
+
data_id=data_id,
|
|
330
|
+
data_version=data_version,
|
|
312
331
|
)
|
|
313
332
|
|
|
314
333
|
|
|
@@ -11,8 +11,9 @@ examples/example_sync.py,sha256=EkuWmUzB1ZsBJQk6ZRflB793rKsuRHeSg5HJZHVhBB0,975
|
|
|
11
11
|
examples/example_task.py,sha256=dhG6STAkNsTdHs9cO1RFH9WfuvRmq5bRC211hTeFrk8,7088
|
|
12
12
|
examples/example_tasks.py,sha256=xTL8UWVAuolSX6swskfrAcmDrLIzn45dJ7YPWCwoEBU,514
|
|
13
13
|
examples/example_verifier.py,sha256=0vwNITIG3m4CkSPwIxNXcGx9TqrxEsCGqK2A8keKZMM,2392
|
|
14
|
+
examples/export_tasks.py,sha256=BSRmsGIIk34QYanB8rPlaFbmn3MBxaf7TyFVrbsdPeU,2114
|
|
14
15
|
examples/gemini_example.py,sha256=qj9WDazQTYNiRHNeUg9Tjkp33lJMwbx8gDfpFe1sDQo,16180
|
|
15
|
-
examples/import_tasks.py,sha256=
|
|
16
|
+
examples/import_tasks.py,sha256=pb60dOXnOn-G1INQxV1wujeHmmY2oWz9Ddj9SbMm1pk,3139
|
|
16
17
|
examples/json_tasks_example.py,sha256=CYPESGGtOo0fmsDdLidujTfsE4QlJHw7rOhyVqPJ_Ls,5329
|
|
17
18
|
examples/nova_act_example.py,sha256=rH23Lp74Okf0rn8ynMdWjK2aviEf5NLPH4k_53Pyxho,831
|
|
18
19
|
examples/openai_example.py,sha256=dEWERrTEP5xBiGkLkQjBQGd2NqoxX6gcW6XteBPsWFQ,8231
|
|
@@ -22,20 +23,20 @@ examples/quickstart.py,sha256=1VT39IRRhemsJgxi0O0gprdpcw7HB4pYO97GAYagIcg,3788
|
|
|
22
23
|
examples/test_cdp_logging.py,sha256=AkCwQCgOTQEI8w3v0knWK_4eXMph7L9x07wj9yIYM10,2836
|
|
23
24
|
fleet/__init__.py,sha256=fwIcuaJPPdLMdKPsazfz4EAPeJchl9MBN4nxs0YlOjw,4117
|
|
24
25
|
fleet/base.py,sha256=bc-340sTpq_DJs7yQ9d2pDWnmJFmA1SwDB9Lagvqtb4,9182
|
|
25
|
-
fleet/client.py,sha256=
|
|
26
|
+
fleet/client.py,sha256=0RwFXBdiBSK7ziTrUe2uzhHX14MxuboIQhMCoRMC300,30315
|
|
26
27
|
fleet/config.py,sha256=uY02ZKxVoXqVDta-0IMWaYJeE1CTXF_fA9NI6QUutmU,319
|
|
27
28
|
fleet/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
|
|
28
29
|
fleet/global_client.py,sha256=frrDAFNM2ywN0JHLtlm9qbE1dQpnQJsavJpb7xSR_bU,1072
|
|
29
30
|
fleet/models.py,sha256=d9eish0KO3t4VCNu8h8Q_6K1Xj-crYo5Fejtle0Ur28,13056
|
|
30
|
-
fleet/tasks.py,sha256=
|
|
31
|
+
fleet/tasks.py,sha256=nNGyeGgWvluzSatd_AHqj9nk8jJ5dgCySPODCaySJ8M,14487
|
|
31
32
|
fleet/types.py,sha256=L4Y82xICf1tzyCLqhLYUgEoaIIS5h9T05TyFNHSWs3s,652
|
|
32
33
|
fleet/_async/__init__.py,sha256=ruGtdMl9BRQRsJygNszPT89ZbMy6AYv1mmeYoB--r60,7557
|
|
33
34
|
fleet/_async/base.py,sha256=oisVTQsx0M_yTmyQJc3oij63uKZ97MHz-xYFsWXxQE8,9202
|
|
34
|
-
fleet/_async/client.py,sha256=
|
|
35
|
+
fleet/_async/client.py,sha256=uiYufTUAG3o_nseflp_DxW8yLe8JnprIxCwjZ4CsqoI,30751
|
|
35
36
|
fleet/_async/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
|
|
36
37
|
fleet/_async/global_client.py,sha256=4WskpLHbsDEgWW7hXMD09W-brkp4euy8w2ZJ88594rQ,1103
|
|
37
38
|
fleet/_async/models.py,sha256=GX-sRciZDenW2O7Qx9w_ftOkJyE4ph1-92WMq6lynHE,12856
|
|
38
|
-
fleet/_async/tasks.py,sha256=
|
|
39
|
+
fleet/_async/tasks.py,sha256=6EzoIuU-LuL-m716_ACV4oO3fNO_3Y1mAzrQ6MZDdwc,14441
|
|
39
40
|
fleet/_async/env/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
41
|
fleet/_async/env/client.py,sha256=C5WG5Ir_McXaFPZNdkQjj0w4V7xMIcw3QyVP5g-3kVk,1237
|
|
41
42
|
fleet/_async/instance/__init__.py,sha256=PtmJq8J8bh0SOQ2V55QURz5GJfobozwtQoqhaOk3_tI,515
|
|
@@ -68,10 +69,10 @@ fleet/verifiers/decorator.py,sha256=nAP3O8szXu7md_kpwpz91hGSUNEVLYjwZQZTkQlV1DM,
|
|
|
68
69
|
fleet/verifiers/parse.py,sha256=qz9AfJrTbjlg-LU-lE8Ciqi7Yt2a8-cs17FdpjTLhMk,8550
|
|
69
70
|
fleet/verifiers/sql_differ.py,sha256=TqTLWyK3uOyLbitT6HYzYEzuSFC39wcyhgk3rcm__k8,6525
|
|
70
71
|
fleet/verifiers/verifier.py,sha256=_lcxXVm8e0xRrK2gNJy9up7pW1zOkPRY5n5lQ85S8jg,14197
|
|
71
|
-
fleet_python-0.2.
|
|
72
|
+
fleet_python-0.2.55.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
72
73
|
scripts/fix_sync_imports.py,sha256=X9fWLTpiPGkSHsjyQUDepOJkxOqw1DPj7nd8wFlFqLQ,8368
|
|
73
74
|
scripts/unasync.py,sha256=vWVQxRWX8SRZO5cmzEhpvnG_REhCWXpidIGIpWmEcvI,696
|
|
74
|
-
fleet_python-0.2.
|
|
75
|
-
fleet_python-0.2.
|
|
76
|
-
fleet_python-0.2.
|
|
77
|
-
fleet_python-0.2.
|
|
75
|
+
fleet_python-0.2.55.dist-info/METADATA,sha256=XOtlVrz0SxTxmvmv_EMP4UOhd-T7RJzXaHtPC9vCtzs,3304
|
|
76
|
+
fleet_python-0.2.55.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
+
fleet_python-0.2.55.dist-info/top_level.txt,sha256=_3DSmTohvSDf3AIP_BYfGzhwO1ECFwuzg83X-wHCx3Y,23
|
|
78
|
+
fleet_python-0.2.55.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|