fleet-python 0.2.101__tar.gz → 0.2.102__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.101/fleet_python.egg-info → fleet_python-0.2.102}/PKG-INFO +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/__init__.py +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/__init__.py +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/base.py +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/sqlite.py +10 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/base.py +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/sqlite.py +10 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102/fleet_python.egg-info}/PKG-INFO +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/pyproject.toml +1 -1
- {fleet_python-0.2.101 → fleet_python-0.2.102}/LICENSE +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/README.md +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/diff_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/dsl_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/exampleResume.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_account.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_action_log.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_mcp_anthropic.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_mcp_openai.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_sync.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_task.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_verifier.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/export_tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/fetch_tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/gemini_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/import_tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/iterate_verifiers.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/json_tasks_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/nova_act_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/openai_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/openai_simple_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/query_builder_example.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/quickstart.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/test_cdp_logging.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/env/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/env/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/exceptions.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/global_client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/base.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/models.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/api.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/base.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/browser.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/mcp.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/bundler.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/verifier.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/Dockerfile +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/agent.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp/main.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/main.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/tools.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/requirements.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/start.sh +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/orchestrator.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/types.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/utils.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/cli.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/config.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/env/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/env/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/eval/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/eval/uploader.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/exceptions.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/global_client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/base.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/client.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/models.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/models.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/proxy.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/whitelist.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/api.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/base.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/browser.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/mcp.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/tasks.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/types.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/http_logging.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/logging.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/playwright.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/bundler.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/code.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/db.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/decorator.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/parse.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/sql_differ.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/verifier.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/SOURCES.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/dependency_links.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/entry_points.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/requires.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/top_level.txt +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/scripts/fix_sync_imports.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/scripts/unasync.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/setup.cfg +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/__init__.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_app_method.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_expect_exactly.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_expect_only.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_instance_dispatch.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_sqlite_resource_dual_mode.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_sqlite_shared_memory_behavior.py +0 -0
- {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_verifier_from_string.py +0 -0
|
@@ -1733,6 +1733,11 @@ class AsyncSnapshotDiff:
|
|
|
1733
1733
|
|
|
1734
1734
|
async def expect_only(self, allowed_changes: List[Dict[str, Any]]):
|
|
1735
1735
|
"""Ensure only specified changes occurred."""
|
|
1736
|
+
# Normalize pk values: convert lists to tuples for hashability and consistency
|
|
1737
|
+
for change in allowed_changes:
|
|
1738
|
+
if "pk" in change and isinstance(change["pk"], list):
|
|
1739
|
+
change["pk"] = tuple(change["pk"])
|
|
1740
|
+
|
|
1736
1741
|
# Special case: empty allowed_changes means no changes should have occurred
|
|
1737
1742
|
if not allowed_changes:
|
|
1738
1743
|
return await self._expect_no_changes()
|
|
@@ -1751,6 +1756,11 @@ class AsyncSnapshotDiff:
|
|
|
1751
1756
|
This version supports field-level specifications for added/removed rows,
|
|
1752
1757
|
allowing users to specify expected field values instead of just whole-row specs.
|
|
1753
1758
|
"""
|
|
1759
|
+
# Normalize pk values: convert lists to tuples for hashability and consistency
|
|
1760
|
+
for change in allowed_changes:
|
|
1761
|
+
if "pk" in change and isinstance(change["pk"], list):
|
|
1762
|
+
change["pk"] = tuple(change["pk"])
|
|
1763
|
+
|
|
1754
1764
|
# Special case: empty allowed_changes means no changes should have occurred
|
|
1755
1765
|
if not allowed_changes:
|
|
1756
1766
|
return await self._expect_no_changes()
|
|
@@ -1781,6 +1781,11 @@ class SyncSnapshotDiff:
|
|
|
1781
1781
|
|
|
1782
1782
|
def expect_only(self, allowed_changes: List[Dict[str, Any]]):
|
|
1783
1783
|
"""Ensure only specified changes occurred."""
|
|
1784
|
+
# Normalize pk values: convert lists to tuples for hashability and consistency
|
|
1785
|
+
for change in allowed_changes:
|
|
1786
|
+
if "pk" in change and isinstance(change["pk"], list):
|
|
1787
|
+
change["pk"] = tuple(change["pk"])
|
|
1788
|
+
|
|
1784
1789
|
# Special case: empty allowed_changes means no changes should have occurred
|
|
1785
1790
|
if not allowed_changes:
|
|
1786
1791
|
return self._expect_no_changes()
|
|
@@ -1799,6 +1804,11 @@ class SyncSnapshotDiff:
|
|
|
1799
1804
|
This version supports field-level specifications for added/removed rows,
|
|
1800
1805
|
allowing users to specify expected field values instead of just whole-row specs.
|
|
1801
1806
|
"""
|
|
1807
|
+
# Normalize pk values: convert lists to tuples for hashability and consistency
|
|
1808
|
+
for change in allowed_changes:
|
|
1809
|
+
if "pk" in change and isinstance(change["pk"], list):
|
|
1810
|
+
change["pk"] = tuple(change["pk"])
|
|
1811
|
+
|
|
1802
1812
|
# Special case: empty allowed_changes means no changes should have occurred
|
|
1803
1813
|
if not allowed_changes:
|
|
1804
1814
|
return self._expect_no_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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|