fleet-python 0.2.56__py3-none-any.whl → 0.2.58__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 CHANGED
@@ -14,6 +14,13 @@ def main():
14
14
  help="Optional project key to filter tasks",
15
15
  default=None,
16
16
  )
17
+ parser.add_argument(
18
+ "--task-keys",
19
+ "-t",
20
+ nargs="+",
21
+ help="Optional list of task keys to export (space-separated)",
22
+ default=None,
23
+ )
17
24
  parser.add_argument(
18
25
  "--output",
19
26
  "-o",
@@ -23,6 +30,12 @@ def main():
23
30
 
24
31
  args = parser.parse_args()
25
32
 
33
+ # Validate that only one filter is specified
34
+ if args.project_key and args.task_keys:
35
+ parser.error(
36
+ "Cannot specify both --project-key and --task-keys. Use one or neither."
37
+ )
38
+
26
39
  # Get account info
27
40
  account = fleet.env.account()
28
41
  print(f"Exporting from team: {account.team_name}")
@@ -31,6 +44,11 @@ def main():
31
44
  if args.project_key:
32
45
  print(f"Loading tasks from project: {args.project_key}")
33
46
  tasks = fleet.load_tasks(project_key=args.project_key)
47
+ elif args.task_keys:
48
+ print(
49
+ f"Loading {len(args.task_keys)} specific task(s): {', '.join(args.task_keys)}"
50
+ )
51
+ tasks = fleet.load_tasks(keys=args.task_keys)
34
52
  else:
35
53
  print("Loading all tasks")
36
54
  tasks = fleet.load_tasks()
fleet/_async/client.py CHANGED
@@ -333,9 +333,26 @@ class AsyncFleet:
333
333
  ) -> Task:
334
334
  verifier = None
335
335
  verifier_code = task_json.get("verifier_func") or task_json.get("verifier_code")
336
+ verifier_sha = task_json.get("verifier_sha", "")
337
+
338
+ # Check if verifier is a nested object with code inside
339
+ if not verifier_code and "verifier" in task_json:
340
+ verifier_obj = task_json["verifier"]
341
+ if isinstance(verifier_obj, dict):
342
+ verifier_code = verifier_obj.get("code")
343
+ # Also extract sha256 from nested verifier if not found at top level
344
+ if not verifier_sha:
345
+ verifier_sha = verifier_obj.get("sha256", "")
336
346
 
337
347
  # Try to find verifier_id in multiple locations
338
348
  verifier_id = task_json.get("verifier_id")
349
+
350
+ # Check nested verifier object for verifier_id
351
+ if not verifier_id and "verifier" in task_json:
352
+ verifier_obj = task_json["verifier"]
353
+ if isinstance(verifier_obj, dict):
354
+ verifier_id = verifier_obj.get("verifier_id")
355
+
339
356
  if (
340
357
  not verifier_id
341
358
  and "metadata" in task_json
@@ -355,7 +372,7 @@ class AsyncFleet:
355
372
  verifier_id=verifier_id,
356
373
  verifier_key=task_json.get("key", task_json.get("id")),
357
374
  verifier_code=verifier_code,
358
- verifier_sha=task_json.get("verifier_sha", ""),
375
+ verifier_sha=verifier_sha,
359
376
  )
360
377
  except Exception as e:
361
378
  error_msg = f"Failed to create verifier {task_json.get('key', task_json.get('id'))}: {e}"
@@ -377,6 +394,8 @@ class AsyncFleet:
377
394
  env_variables=task_json.get("env_variables", {}),
378
395
  verifier_func=verifier_code, # Set verifier code
379
396
  verifier=verifier, # Use created verifier or None
397
+ verifier_id=verifier_id, # Set verifier_id so _rebuild_verifier works
398
+ verifier_sha=verifier_sha, # Set verifier_sha
380
399
  metadata=task_json.get("metadata", {}), # Default empty metadata
381
400
  )
382
401
  return task
fleet/client.py CHANGED
@@ -331,9 +331,26 @@ class Fleet:
331
331
  ) -> Task:
332
332
  verifier = None
333
333
  verifier_code = task_json.get("verifier_func") or task_json.get("verifier_code")
334
+ verifier_sha = task_json.get("verifier_sha", "")
335
+
336
+ # Check if verifier is a nested object with code inside
337
+ if not verifier_code and "verifier" in task_json:
338
+ verifier_obj = task_json["verifier"]
339
+ if isinstance(verifier_obj, dict):
340
+ verifier_code = verifier_obj.get("code")
341
+ # Also extract sha256 from nested verifier if not found at top level
342
+ if not verifier_sha:
343
+ verifier_sha = verifier_obj.get("sha256", "")
334
344
 
335
345
  # Try to find verifier_id in multiple locations
336
346
  verifier_id = task_json.get("verifier_id")
347
+
348
+ # Check nested verifier object for verifier_id
349
+ if not verifier_id and "verifier" in task_json:
350
+ verifier_obj = task_json["verifier"]
351
+ if isinstance(verifier_obj, dict):
352
+ verifier_id = verifier_obj.get("verifier_id")
353
+
337
354
  if (
338
355
  not verifier_id
339
356
  and "metadata" in task_json
@@ -353,7 +370,7 @@ class Fleet:
353
370
  verifier_id=verifier_id,
354
371
  verifier_key=task_json.get("key", task_json.get("id")),
355
372
  verifier_code=verifier_code,
356
- verifier_sha=task_json.get("verifier_sha", ""),
373
+ verifier_sha=verifier_sha,
357
374
  )
358
375
  except Exception as e:
359
376
  error_msg = f"Failed to create verifier {task_json.get('key', task_json.get('id'))}: {e}"
@@ -375,6 +392,8 @@ class Fleet:
375
392
  env_variables=task_json.get("env_variables", {}),
376
393
  verifier_func=verifier_code, # Set verifier code
377
394
  verifier=verifier, # Use created verifier or None
395
+ verifier_id=verifier_id, # Set verifier_id so _rebuild_verifier works
396
+ verifier_sha=verifier_sha, # Set verifier_sha
378
397
  metadata=task_json.get("metadata", {}), # Default empty metadata
379
398
  )
380
399
  return task
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.56
3
+ Version: 0.2.58
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -11,7 +11,7 @@ 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
+ examples/export_tasks.py,sha256=e5CaHga_1IV2W7PGPjQjOZtMrLAhoPNt74V6qRY99EE,2700
15
15
  examples/gemini_example.py,sha256=qj9WDazQTYNiRHNeUg9Tjkp33lJMwbx8gDfpFe1sDQo,16180
16
16
  examples/import_tasks.py,sha256=pb60dOXnOn-G1INQxV1wujeHmmY2oWz9Ddj9SbMm1pk,3139
17
17
  examples/json_tasks_example.py,sha256=CYPESGGtOo0fmsDdLidujTfsE4QlJHw7rOhyVqPJ_Ls,5329
@@ -23,7 +23,7 @@ examples/quickstart.py,sha256=1VT39IRRhemsJgxi0O0gprdpcw7HB4pYO97GAYagIcg,3788
23
23
  examples/test_cdp_logging.py,sha256=AkCwQCgOTQEI8w3v0knWK_4eXMph7L9x07wj9yIYM10,2836
24
24
  fleet/__init__.py,sha256=fwIcuaJPPdLMdKPsazfz4EAPeJchl9MBN4nxs0YlOjw,4117
25
25
  fleet/base.py,sha256=bc-340sTpq_DJs7yQ9d2pDWnmJFmA1SwDB9Lagvqtb4,9182
26
- fleet/client.py,sha256=0RwFXBdiBSK7ziTrUe2uzhHX14MxuboIQhMCoRMC300,30315
26
+ fleet/client.py,sha256=gvJYF1Y3hG4DHM0PPuCHVbID-aSVK_oIT84aAY8lhQU,31244
27
27
  fleet/config.py,sha256=uY02ZKxVoXqVDta-0IMWaYJeE1CTXF_fA9NI6QUutmU,319
28
28
  fleet/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
29
29
  fleet/global_client.py,sha256=frrDAFNM2ywN0JHLtlm9qbE1dQpnQJsavJpb7xSR_bU,1072
@@ -32,7 +32,7 @@ fleet/tasks.py,sha256=PqOlJBM5b-qwto_nrOXzLvfLJ7B4fGq05Eg-0kDNFv8,15681
32
32
  fleet/types.py,sha256=L4Y82xICf1tzyCLqhLYUgEoaIIS5h9T05TyFNHSWs3s,652
33
33
  fleet/_async/__init__.py,sha256=ruGtdMl9BRQRsJygNszPT89ZbMy6AYv1mmeYoB--r60,7557
34
34
  fleet/_async/base.py,sha256=oisVTQsx0M_yTmyQJc3oij63uKZ97MHz-xYFsWXxQE8,9202
35
- fleet/_async/client.py,sha256=uiYufTUAG3o_nseflp_DxW8yLe8JnprIxCwjZ4CsqoI,30751
35
+ fleet/_async/client.py,sha256=NxYb4jVBLO3f3eL_1x7z-nkZusFHllFQdgUunUfCwSw,31680
36
36
  fleet/_async/exceptions.py,sha256=fUmPwWhnT8SR97lYsRq0kLHQHKtSh2eJS0VQ2caSzEI,5055
37
37
  fleet/_async/global_client.py,sha256=4WskpLHbsDEgWW7hXMD09W-brkp4euy8w2ZJ88594rQ,1103
38
38
  fleet/_async/models.py,sha256=GX-sRciZDenW2O7Qx9w_ftOkJyE4ph1-92WMq6lynHE,12856
@@ -69,10 +69,10 @@ fleet/verifiers/decorator.py,sha256=nAP3O8szXu7md_kpwpz91hGSUNEVLYjwZQZTkQlV1DM,
69
69
  fleet/verifiers/parse.py,sha256=qz9AfJrTbjlg-LU-lE8Ciqi7Yt2a8-cs17FdpjTLhMk,8550
70
70
  fleet/verifiers/sql_differ.py,sha256=TqTLWyK3uOyLbitT6HYzYEzuSFC39wcyhgk3rcm__k8,6525
71
71
  fleet/verifiers/verifier.py,sha256=_lcxXVm8e0xRrK2gNJy9up7pW1zOkPRY5n5lQ85S8jg,14197
72
- fleet_python-0.2.56.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
+ fleet_python-0.2.58.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
73
73
  scripts/fix_sync_imports.py,sha256=X9fWLTpiPGkSHsjyQUDepOJkxOqw1DPj7nd8wFlFqLQ,8368
74
74
  scripts/unasync.py,sha256=vWVQxRWX8SRZO5cmzEhpvnG_REhCWXpidIGIpWmEcvI,696
75
- fleet_python-0.2.56.dist-info/METADATA,sha256=i9F_dXu80Okx9Eic7EEMqaDVy_7L7cZNksRcC1KTCP4,3304
76
- fleet_python-0.2.56.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
- fleet_python-0.2.56.dist-info/top_level.txt,sha256=_3DSmTohvSDf3AIP_BYfGzhwO1ECFwuzg83X-wHCx3Y,23
78
- fleet_python-0.2.56.dist-info/RECORD,,
75
+ fleet_python-0.2.58.dist-info/METADATA,sha256=wMsd79uNixxkzRCfBNmI2xdVsEz4TeHA2ZFnl_wwos4,3304
76
+ fleet_python-0.2.58.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
77
+ fleet_python-0.2.58.dist-info/top_level.txt,sha256=_3DSmTohvSDf3AIP_BYfGzhwO1ECFwuzg83X-wHCx3Y,23
78
+ fleet_python-0.2.58.dist-info/RECORD,,