fleet-python 0.2.94__tar.gz → 0.2.95__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.
- {fleet_python-0.2.94/fleet_python.egg-info → fleet_python-0.2.95}/PKG-INFO +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/__init__.py +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/__init__.py +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/base.py +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/sqlite.py +29 -3
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/base.py +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/sqlite.py +29 -3
- {fleet_python-0.2.94 → fleet_python-0.2.95/fleet_python.egg-info}/PKG-INFO +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/pyproject.toml +1 -1
- {fleet_python-0.2.94 → fleet_python-0.2.95}/LICENSE +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/README.md +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/diff_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/dsl_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/exampleResume.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_account.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_action_log.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_mcp_anthropic.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_mcp_openai.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_sync.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_task.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_verifier.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/export_tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/fetch_tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/gemini_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/import_tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/iterate_verifiers.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/json_tasks_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/nova_act_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/openai_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/openai_simple_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/query_builder_example.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/quickstart.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/test_cdp_logging.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/env/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/env/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/exceptions.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/global_client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/base.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/models.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/base.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/browser.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/mcp.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/bundler.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/verifier.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/Dockerfile +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/agent.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp/main.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/main.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/tools.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/requirements.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/start.sh +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/orchestrator.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/types.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/utils.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/cli.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/config.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/env/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/env/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/eval/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/eval/uploader.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/exceptions.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/global_client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/base.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/client.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/models.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/models.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/proxy.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/whitelist.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/base.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/browser.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/mcp.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/tasks.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/types.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/http_logging.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/logging.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/playwright.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/bundler.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/code.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/db.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/decorator.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/parse.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/sql_differ.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/verifier.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/SOURCES.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/dependency_links.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/entry_points.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/requires.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/top_level.txt +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/scripts/fix_sync_imports.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/scripts/unasync.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/setup.cfg +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/__init__.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_app_method.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_expect_only.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_instance_dispatch.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_sqlite_resource_dual_mode.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_sqlite_shared_memory_behavior.py +0 -0
- {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_verifier_from_string.py +0 -0
|
@@ -1417,9 +1417,35 @@ class AsyncSnapshotDiff:
|
|
|
1417
1417
|
This version supports field-level specifications for added/removed rows,
|
|
1418
1418
|
allowing users to specify expected field values instead of just whole-row specs.
|
|
1419
1419
|
"""
|
|
1420
|
-
|
|
1421
|
-
if not
|
|
1422
|
-
|
|
1420
|
+
resource = self.after.resource
|
|
1421
|
+
if resource.client is not None and resource._mode == "http":
|
|
1422
|
+
api_diff = None
|
|
1423
|
+
try:
|
|
1424
|
+
payload = {}
|
|
1425
|
+
if self.ignore_config:
|
|
1426
|
+
payload["ignore_config"] = {
|
|
1427
|
+
"tables": list(self.ignore_config.tables),
|
|
1428
|
+
"fields": list(self.ignore_config.fields),
|
|
1429
|
+
"table_fields": {
|
|
1430
|
+
table: list(fields) for table, fields in self.ignore_config.table_fields.items()
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
response = await resource.client.request(
|
|
1434
|
+
"POST",
|
|
1435
|
+
"/diff/structured",
|
|
1436
|
+
json=payload,
|
|
1437
|
+
)
|
|
1438
|
+
result = response.json()
|
|
1439
|
+
if result.get("success") and "diff" in result:
|
|
1440
|
+
api_diff = result["diff"]
|
|
1441
|
+
except Exception as e:
|
|
1442
|
+
# Fall back to local diff if API call fails
|
|
1443
|
+
print(f"Warning: Failed to fetch structured diff from API: {e}")
|
|
1444
|
+
print("Falling back to local diff computation...")
|
|
1445
|
+
|
|
1446
|
+
# Validate outside try block so AssertionError propagates
|
|
1447
|
+
if api_diff is not None:
|
|
1448
|
+
return await self._validate_diff_against_allowed_changes(api_diff, allowed_changes)
|
|
1423
1449
|
|
|
1424
1450
|
# Fall back to full diff for v2 (no targeted optimization yet)
|
|
1425
1451
|
diff = await self._collect()
|
|
@@ -1439,9 +1439,35 @@ class SyncSnapshotDiff:
|
|
|
1439
1439
|
This version supports field-level specifications for added/removed rows,
|
|
1440
1440
|
allowing users to specify expected field values instead of just whole-row specs.
|
|
1441
1441
|
"""
|
|
1442
|
-
|
|
1443
|
-
if not
|
|
1444
|
-
|
|
1442
|
+
resource = self.after.resource
|
|
1443
|
+
if resource.client is not None and resource._mode == "http":
|
|
1444
|
+
api_diff = None
|
|
1445
|
+
try:
|
|
1446
|
+
payload = {}
|
|
1447
|
+
if self.ignore_config:
|
|
1448
|
+
payload["ignore_config"] = {
|
|
1449
|
+
"tables": list(self.ignore_config.tables),
|
|
1450
|
+
"fields": list(self.ignore_config.fields),
|
|
1451
|
+
"table_fields": {
|
|
1452
|
+
table: list(fields) for table, fields in self.ignore_config.table_fields.items()
|
|
1453
|
+
}
|
|
1454
|
+
}
|
|
1455
|
+
response = resource.client.request(
|
|
1456
|
+
"POST",
|
|
1457
|
+
"/diff/structured",
|
|
1458
|
+
json=payload,
|
|
1459
|
+
)
|
|
1460
|
+
result = response.json()
|
|
1461
|
+
if result.get("success") and "diff" in result:
|
|
1462
|
+
api_diff = result["diff"]
|
|
1463
|
+
except Exception as e:
|
|
1464
|
+
# Fall back to local diff if API call fails
|
|
1465
|
+
print(f"Warning: Failed to fetch structured diff from API: {e}")
|
|
1466
|
+
print("Falling back to local diff computation...")
|
|
1467
|
+
|
|
1468
|
+
# Validate outside try block so AssertionError propagates
|
|
1469
|
+
if api_diff is not None:
|
|
1470
|
+
return self._validate_diff_against_allowed_changes(api_diff, allowed_changes)
|
|
1445
1471
|
|
|
1446
1472
|
# Fall back to full diff for v2 (no targeted optimization yet)
|
|
1447
1473
|
diff = self._collect()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|