fleet-python 0.2.60__tar.gz → 0.2.61__tar.gz

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.

Files changed (83) hide show
  1. {fleet_python-0.2.60 → fleet_python-0.2.61}/PKG-INFO +1 -1
  2. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/export_tasks.py +19 -2
  3. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/client.py +6 -0
  4. {fleet_python-0.2.60/fleet → fleet_python-0.2.61/fleet/_async}/models.py +5 -4
  5. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/tasks.py +6 -0
  6. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/client.py +6 -0
  7. {fleet_python-0.2.60/fleet/_async → fleet_python-0.2.61/fleet}/models.py +12 -1
  8. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/tasks.py +6 -0
  9. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet_python.egg-info/PKG-INFO +1 -1
  10. {fleet_python-0.2.60 → fleet_python-0.2.61}/pyproject.toml +1 -1
  11. {fleet_python-0.2.60 → fleet_python-0.2.61}/LICENSE +0 -0
  12. {fleet_python-0.2.60 → fleet_python-0.2.61}/README.md +0 -0
  13. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/diff_example.py +0 -0
  14. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/dsl_example.py +0 -0
  15. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example.py +0 -0
  16. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/exampleResume.py +0 -0
  17. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_account.py +0 -0
  18. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_action_log.py +0 -0
  19. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_client.py +0 -0
  20. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_mcp_anthropic.py +0 -0
  21. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_mcp_openai.py +0 -0
  22. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_sync.py +0 -0
  23. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_task.py +0 -0
  24. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_tasks.py +0 -0
  25. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/example_verifier.py +0 -0
  26. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/gemini_example.py +0 -0
  27. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/import_tasks.py +0 -0
  28. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/json_tasks_example.py +0 -0
  29. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/nova_act_example.py +0 -0
  30. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/openai_example.py +0 -0
  31. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/openai_simple_example.py +0 -0
  32. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/query_builder_example.py +0 -0
  33. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/quickstart.py +0 -0
  34. {fleet_python-0.2.60 → fleet_python-0.2.61}/examples/test_cdp_logging.py +0 -0
  35. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/__init__.py +0 -0
  36. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/__init__.py +0 -0
  37. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/base.py +0 -0
  38. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/env/__init__.py +0 -0
  39. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/env/client.py +0 -0
  40. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/exceptions.py +0 -0
  41. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/global_client.py +0 -0
  42. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/instance/__init__.py +0 -0
  43. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/instance/base.py +0 -0
  44. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/instance/client.py +0 -0
  45. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/resources/__init__.py +0 -0
  46. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/resources/base.py +0 -0
  47. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/resources/browser.py +0 -0
  48. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/resources/mcp.py +0 -0
  49. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/resources/sqlite.py +0 -0
  50. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/verifiers/__init__.py +0 -0
  51. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/verifiers/bundler.py +0 -0
  52. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/_async/verifiers/verifier.py +0 -0
  53. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/base.py +0 -0
  54. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/config.py +0 -0
  55. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/env/__init__.py +0 -0
  56. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/env/client.py +0 -0
  57. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/exceptions.py +0 -0
  58. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/global_client.py +0 -0
  59. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/instance/__init__.py +0 -0
  60. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/instance/base.py +0 -0
  61. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/instance/client.py +0 -0
  62. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/instance/models.py +0 -0
  63. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/resources/__init__.py +0 -0
  64. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/resources/base.py +0 -0
  65. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/resources/browser.py +0 -0
  66. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/resources/mcp.py +0 -0
  67. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/resources/sqlite.py +0 -0
  68. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/types.py +0 -0
  69. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/__init__.py +0 -0
  70. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/bundler.py +0 -0
  71. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/code.py +0 -0
  72. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/db.py +0 -0
  73. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/decorator.py +0 -0
  74. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/parse.py +0 -0
  75. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/sql_differ.py +0 -0
  76. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet/verifiers/verifier.py +0 -0
  77. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet_python.egg-info/SOURCES.txt +0 -0
  78. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet_python.egg-info/dependency_links.txt +0 -0
  79. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet_python.egg-info/requires.txt +0 -0
  80. {fleet_python-0.2.60 → fleet_python-0.2.61}/fleet_python.egg-info/top_level.txt +0 -0
  81. {fleet_python-0.2.60 → fleet_python-0.2.61}/scripts/fix_sync_imports.py +0 -0
  82. {fleet_python-0.2.60 → fleet_python-0.2.61}/scripts/unasync.py +0 -0
  83. {fleet_python-0.2.60 → fleet_python-0.2.61}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.60
3
+ Version: 0.2.61
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -21,6 +21,12 @@ def main():
21
21
  help="Optional list of task keys to export (space-separated)",
22
22
  default=None,
23
23
  )
24
+ parser.add_argument(
25
+ "--task-project-key",
26
+ "-tpk",
27
+ help="Optional task project key to filter tasks",
28
+ default=None,
29
+ )
24
30
  parser.add_argument(
25
31
  "--output",
26
32
  "-o",
@@ -31,9 +37,17 @@ def main():
31
37
  args = parser.parse_args()
32
38
 
33
39
  # Validate that only one filter is specified
34
- if args.project_key and args.task_keys:
40
+ filters_specified = sum(
41
+ [
42
+ args.project_key is not None,
43
+ args.task_keys is not None,
44
+ args.task_project_key is not None,
45
+ ]
46
+ )
47
+
48
+ if filters_specified > 1:
35
49
  parser.error(
36
- "Cannot specify both --project-key and --task-keys. Use one or neither."
50
+ "Cannot specify multiple filters. Use only one of --project-key, --task-keys, or --task-project-key."
37
51
  )
38
52
 
39
53
  # Get account info
@@ -49,6 +63,9 @@ def main():
49
63
  f"Loading {len(args.task_keys)} specific task(s): {', '.join(args.task_keys)}"
50
64
  )
51
65
  tasks = fleet.load_tasks(keys=args.task_keys)
66
+ elif args.task_project_key:
67
+ print(f"Loading tasks from task project: {args.task_project_key}")
68
+ tasks = fleet.load_tasks(task_project_key=args.task_project_key)
52
69
  else:
53
70
  print("Loading all tasks")
54
71
  tasks = fleet.load_tasks()
@@ -397,6 +397,7 @@ class AsyncFleet:
397
397
  verifier_id=verifier_id, # Set verifier_id so _rebuild_verifier works
398
398
  verifier_sha=verifier_sha, # Set verifier_sha
399
399
  metadata=task_json.get("metadata", {}), # Default empty metadata
400
+ output_json_schema=task_json.get("output_json_schema"), # JSON schema for output
400
401
  )
401
402
  return task
402
403
 
@@ -407,6 +408,7 @@ class AsyncFleet:
407
408
  version: Optional[str] = None,
408
409
  team_id: Optional[str] = None,
409
410
  project_key: Optional[str] = None,
411
+ task_project_key: Optional[str] = None,
410
412
  data_id: Optional[str] = None,
411
413
  data_version: Optional[str] = None,
412
414
  ) -> List[Task]:
@@ -418,6 +420,7 @@ class AsyncFleet:
418
420
  version: Optional version to filter tasks by (client-side filter)
419
421
  team_id: Optional team_id to filter by (admin only)
420
422
  project_key: Optional project key to filter tasks by
423
+ task_project_key: Optional task project key to filter tasks by
421
424
  data_id: Optional data identifier to filter tasks by
422
425
  data_version: Optional data version to filter tasks by
423
426
 
@@ -433,6 +436,8 @@ class AsyncFleet:
433
436
  params["team_id"] = team_id
434
437
  if project_key is not None:
435
438
  params["project_key"] = project_key
439
+ if task_project_key is not None:
440
+ params["task_project_key"] = task_project_key
436
441
  if data_id is not None:
437
442
  params["data_id"] = data_id
438
443
  if data_version is not None:
@@ -547,6 +552,7 @@ class AsyncFleet:
547
552
  verifier_func=verifier_func, # Set verifier code
548
553
  verifier=verifier, # Use created verifier or None
549
554
  metadata={}, # Default empty metadata
555
+ output_json_schema=getattr(task_response, "output_json_schema", None), # Get output_json_schema if available
550
556
  )
551
557
  tasks.append(task)
552
558
 
@@ -55,9 +55,7 @@ class Instance(BaseModel):
55
55
 
56
56
  class InstanceRequest(BaseModel):
57
57
  env_key: str = Field(..., title="Env Key")
58
- env_version: Optional[str] = Field(None, title="Env Version")
59
- data_key: Optional[str] = Field(None, title="Data Key")
60
- data_version: Optional[str] = Field(None, title="Data Version")
58
+ version: Optional[str] = Field(None, title="Version")
61
59
  region: Optional[str] = Field("us-west-1", title="Region")
62
60
  seed: Optional[int] = Field(None, title="Seed")
63
61
  timestamp: Optional[int] = Field(None, title="Timestamp")
@@ -67,7 +65,6 @@ class InstanceRequest(BaseModel):
67
65
  task_id: Optional[str] = Field(None, title="Task Id")
68
66
  force_pull: Optional[bool] = Field(None, title="Force Pull")
69
67
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
70
- image_type: Optional[str] = Field(None, title="Image Type")
71
68
  created_from: Optional[str] = Field(None, title="Created From")
72
69
 
73
70
 
@@ -157,6 +154,7 @@ class TaskRequest(BaseModel):
157
154
  verifier_id: Optional[str] = Field(None, title="Verifier Id")
158
155
  version: Optional[str] = Field(None, title="Version")
159
156
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
157
+ output_json_schema: Optional[Dict[str, Any]] = Field(None, title="Output Json Schema")
160
158
 
161
159
 
162
160
  class TaskUpdateRequest(BaseModel):
@@ -183,8 +181,11 @@ class TaskResponse(BaseModel):
183
181
  verifier_id: Optional[str] = Field(None, title="Verifier Id")
184
182
  verifier_func: Optional[str] = Field(None, title="Verifier Func")
185
183
  version: Optional[str] = Field(None, title="Version")
184
+ data_id: Optional[str] = Field(None, title="Data Id")
185
+ data_version: Optional[str] = Field(None, title="Data Version")
186
186
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
187
187
  verifier: Optional[VerifierData] = Field(None, title="Verifier")
188
+ output_json_schema: Optional[Dict[str, Any]] = Field(None, title="Output Json Schema")
188
189
 
189
190
 
190
191
  class ValidationError(BaseModel):
@@ -38,6 +38,9 @@ class Task(BaseModel):
38
38
  metadata: Optional[Dict[str, Any]] = Field(
39
39
  default_factory=dict, description="Additional task metadata"
40
40
  )
41
+ output_json_schema: Optional[Dict[str, Any]] = Field(
42
+ None, description="JSON schema for expected output format"
43
+ )
41
44
 
42
45
  @validator("key")
43
46
  def validate_key_format(cls, v):
@@ -329,6 +332,7 @@ async def load_tasks(
329
332
  version: Optional[str] = None,
330
333
  team_id: Optional[str] = None,
331
334
  project_key: Optional[str] = None,
335
+ task_project_key: Optional[str] = None,
332
336
  data_id: Optional[str] = None,
333
337
  data_version: Optional[str] = None,
334
338
  ) -> List[Task]:
@@ -340,6 +344,7 @@ async def load_tasks(
340
344
  version: Optional version to filter tasks by
341
345
  team_id: Optional team_id to filter by (admin only)
342
346
  project_key: Optional project key to filter tasks by
347
+ task_project_key: Optional task project key to filter tasks by
343
348
  data_id: Optional data identifier to filter tasks by
344
349
  data_version: Optional data version to filter tasks by
345
350
 
@@ -359,6 +364,7 @@ async def load_tasks(
359
364
  version=version,
360
365
  team_id=team_id,
361
366
  project_key=project_key,
367
+ task_project_key=task_project_key,
362
368
  data_id=data_id,
363
369
  data_version=data_version,
364
370
  )
@@ -395,6 +395,7 @@ class Fleet:
395
395
  verifier_id=verifier_id, # Set verifier_id so _rebuild_verifier works
396
396
  verifier_sha=verifier_sha, # Set verifier_sha
397
397
  metadata=task_json.get("metadata", {}), # Default empty metadata
398
+ output_json_schema=task_json.get("output_json_schema"), # JSON schema for output
398
399
  )
399
400
  return task
400
401
 
@@ -405,6 +406,7 @@ class Fleet:
405
406
  version: Optional[str] = None,
406
407
  team_id: Optional[str] = None,
407
408
  project_key: Optional[str] = None,
409
+ task_project_key: Optional[str] = None,
408
410
  data_id: Optional[str] = None,
409
411
  data_version: Optional[str] = None,
410
412
  ) -> List[Task]:
@@ -416,6 +418,7 @@ class Fleet:
416
418
  version: Optional version to filter tasks by (client-side filter)
417
419
  team_id: Optional team_id to filter by (admin only)
418
420
  project_key: Optional project key to filter tasks by
421
+ task_project_key: Optional task project key to filter tasks by
419
422
  data_id: Optional data identifier to filter tasks by
420
423
  data_version: Optional data version to filter tasks by
421
424
 
@@ -431,6 +434,8 @@ class Fleet:
431
434
  params["team_id"] = team_id
432
435
  if project_key is not None:
433
436
  params["project_key"] = project_key
437
+ if task_project_key is not None:
438
+ params["task_project_key"] = task_project_key
434
439
  if data_id is not None:
435
440
  params["data_id"] = data_id
436
441
  if data_version is not None:
@@ -553,6 +558,7 @@ class Fleet:
553
558
  verifier_func=verifier_func, # Set verifier code
554
559
  verifier=verifier, # Use created verifier or None
555
560
  metadata={}, # Default empty metadata
561
+ output_json_schema=getattr(task_response, "output_json_schema", None), # Get output_json_schema if available
556
562
  )
557
563
  tasks.append(task)
558
564
 
@@ -55,7 +55,9 @@ class Instance(BaseModel):
55
55
 
56
56
  class InstanceRequest(BaseModel):
57
57
  env_key: str = Field(..., title="Env Key")
58
- version: Optional[str] = Field(None, title="Version")
58
+ env_version: Optional[str] = Field(None, title="Env Version")
59
+ data_key: Optional[str] = Field(None, title="Data Key")
60
+ data_version: Optional[str] = Field(None, title="Data Version")
59
61
  region: Optional[str] = Field("us-west-1", title="Region")
60
62
  seed: Optional[int] = Field(None, title="Seed")
61
63
  timestamp: Optional[int] = Field(None, title="Timestamp")
@@ -65,6 +67,7 @@ class InstanceRequest(BaseModel):
65
67
  task_id: Optional[str] = Field(None, title="Task Id")
66
68
  force_pull: Optional[bool] = Field(None, title="Force Pull")
67
69
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
70
+ image_type: Optional[str] = Field(None, title="Image Type")
68
71
  created_from: Optional[str] = Field(None, title="Created From")
69
72
 
70
73
 
@@ -154,6 +157,9 @@ class TaskRequest(BaseModel):
154
157
  verifier_id: Optional[str] = Field(None, title="Verifier Id")
155
158
  version: Optional[str] = Field(None, title="Version")
156
159
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
160
+ output_json_schema: Optional[Dict[str, Any]] = Field(
161
+ None, title="Output Json Schema"
162
+ )
157
163
 
158
164
 
159
165
  class TaskUpdateRequest(BaseModel):
@@ -180,8 +186,13 @@ class TaskResponse(BaseModel):
180
186
  verifier_id: Optional[str] = Field(None, title="Verifier Id")
181
187
  verifier_func: Optional[str] = Field(None, title="Verifier Func")
182
188
  version: Optional[str] = Field(None, title="Version")
189
+ data_id: Optional[str] = Field(None, title="Data Id")
190
+ data_version: Optional[str] = Field(None, title="Data Version")
183
191
  env_variables: Optional[Dict[str, Any]] = Field(None, title="Env Variables")
184
192
  verifier: Optional[VerifierData] = Field(None, title="Verifier")
193
+ output_json_schema: Optional[Dict[str, Any]] = Field(
194
+ None, title="Output Json Schema"
195
+ )
185
196
 
186
197
 
187
198
  class ValidationError(BaseModel):
@@ -39,6 +39,9 @@ class Task(BaseModel):
39
39
  metadata: Optional[Dict[str, Any]] = Field(
40
40
  default_factory=dict, description="Additional task metadata"
41
41
  )
42
+ output_json_schema: Optional[Dict[str, Any]] = Field(
43
+ None, description="JSON schema for expected output format"
44
+ )
42
45
 
43
46
  @validator("key")
44
47
  def validate_key_format(cls, v):
@@ -330,6 +333,7 @@ def load_tasks(
330
333
  version: Optional[str] = None,
331
334
  team_id: Optional[str] = None,
332
335
  project_key: Optional[str] = None,
336
+ task_project_key: Optional[str] = None,
333
337
  data_id: Optional[str] = None,
334
338
  data_version: Optional[str] = None,
335
339
  ) -> List[Task]:
@@ -341,6 +345,7 @@ def load_tasks(
341
345
  version: Optional version to filter tasks by
342
346
  team_id: Optional team_id to filter by (admin only)
343
347
  project_key: Optional project key to filter tasks by
348
+ task_project_key: Optional task project key to filter tasks by
344
349
  data_id: Optional data identifier to filter tasks by
345
350
  data_version: Optional data version to filter tasks by
346
351
 
@@ -360,6 +365,7 @@ def load_tasks(
360
365
  version=version,
361
366
  team_id=team_id,
362
367
  project_key=project_key,
368
+ task_project_key=task_project_key,
363
369
  data_id=data_id,
364
370
  data_version=data_version,
365
371
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.60
3
+ Version: 0.2.61
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fleet-python"
7
- version = "0.2.60"
7
+ version = "0.2.61"
8
8
  description = "Python SDK for Fleet environments"
9
9
  authors = [
10
10
  {name = "Fleet AI", email = "nic@fleet.so"},
File without changes
File without changes
File without changes