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.
Files changed (116) hide show
  1. {fleet_python-0.2.94/fleet_python.egg-info → fleet_python-0.2.95}/PKG-INFO +1 -1
  2. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/__init__.py +1 -1
  3. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/__init__.py +1 -1
  4. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/base.py +1 -1
  5. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/sqlite.py +29 -3
  6. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/base.py +1 -1
  7. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/sqlite.py +29 -3
  8. {fleet_python-0.2.94 → fleet_python-0.2.95/fleet_python.egg-info}/PKG-INFO +1 -1
  9. {fleet_python-0.2.94 → fleet_python-0.2.95}/pyproject.toml +1 -1
  10. {fleet_python-0.2.94 → fleet_python-0.2.95}/LICENSE +0 -0
  11. {fleet_python-0.2.94 → fleet_python-0.2.95}/README.md +0 -0
  12. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/diff_example.py +0 -0
  13. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/dsl_example.py +0 -0
  14. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example.py +0 -0
  15. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/exampleResume.py +0 -0
  16. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_account.py +0 -0
  17. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_action_log.py +0 -0
  18. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_client.py +0 -0
  19. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_mcp_anthropic.py +0 -0
  20. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_mcp_openai.py +0 -0
  21. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_sync.py +0 -0
  22. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_task.py +0 -0
  23. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_tasks.py +0 -0
  24. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/example_verifier.py +0 -0
  25. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/export_tasks.py +0 -0
  26. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/fetch_tasks.py +0 -0
  27. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/gemini_example.py +0 -0
  28. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/import_tasks.py +0 -0
  29. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/iterate_verifiers.py +0 -0
  30. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/json_tasks_example.py +0 -0
  31. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/nova_act_example.py +0 -0
  32. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/openai_example.py +0 -0
  33. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/openai_simple_example.py +0 -0
  34. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/query_builder_example.py +0 -0
  35. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/quickstart.py +0 -0
  36. {fleet_python-0.2.94 → fleet_python-0.2.95}/examples/test_cdp_logging.py +0 -0
  37. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/client.py +0 -0
  38. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/env/__init__.py +0 -0
  39. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/env/client.py +0 -0
  40. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/exceptions.py +0 -0
  41. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/global_client.py +0 -0
  42. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/__init__.py +0 -0
  43. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/base.py +0 -0
  44. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/instance/client.py +0 -0
  45. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/models.py +0 -0
  46. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/__init__.py +0 -0
  47. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/base.py +0 -0
  48. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/browser.py +0 -0
  49. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/resources/mcp.py +0 -0
  50. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/tasks.py +0 -0
  51. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/__init__.py +0 -0
  52. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/bundler.py +0 -0
  53. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/_async/verifiers/verifier.py +0 -0
  54. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/__init__.py +0 -0
  55. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/Dockerfile +0 -0
  56. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/__init__.py +0 -0
  57. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/agent.py +0 -0
  58. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp/main.py +0 -0
  59. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/__init__.py +0 -0
  60. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/main.py +0 -0
  61. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/mcp_server/tools.py +0 -0
  62. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/requirements.txt +0 -0
  63. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/gemini_cua/start.sh +0 -0
  64. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/orchestrator.py +0 -0
  65. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/types.py +0 -0
  66. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/agent/utils.py +0 -0
  67. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/cli.py +0 -0
  68. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/client.py +0 -0
  69. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/config.py +0 -0
  70. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/env/__init__.py +0 -0
  71. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/env/client.py +0 -0
  72. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/eval/__init__.py +0 -0
  73. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/eval/uploader.py +0 -0
  74. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/exceptions.py +0 -0
  75. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/global_client.py +0 -0
  76. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/__init__.py +0 -0
  77. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/base.py +0 -0
  78. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/client.py +0 -0
  79. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/instance/models.py +0 -0
  80. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/models.py +0 -0
  81. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/__init__.py +0 -0
  82. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/proxy.py +0 -0
  83. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/proxy/whitelist.py +0 -0
  84. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/__init__.py +0 -0
  85. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/base.py +0 -0
  86. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/browser.py +0 -0
  87. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/resources/mcp.py +0 -0
  88. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/tasks.py +0 -0
  89. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/types.py +0 -0
  90. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/__init__.py +0 -0
  91. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/http_logging.py +0 -0
  92. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/logging.py +0 -0
  93. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/utils/playwright.py +0 -0
  94. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/__init__.py +0 -0
  95. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/bundler.py +0 -0
  96. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/code.py +0 -0
  97. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/db.py +0 -0
  98. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/decorator.py +0 -0
  99. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/parse.py +0 -0
  100. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/sql_differ.py +0 -0
  101. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet/verifiers/verifier.py +0 -0
  102. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/SOURCES.txt +0 -0
  103. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/dependency_links.txt +0 -0
  104. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/entry_points.txt +0 -0
  105. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/requires.txt +0 -0
  106. {fleet_python-0.2.94 → fleet_python-0.2.95}/fleet_python.egg-info/top_level.txt +0 -0
  107. {fleet_python-0.2.94 → fleet_python-0.2.95}/scripts/fix_sync_imports.py +0 -0
  108. {fleet_python-0.2.94 → fleet_python-0.2.95}/scripts/unasync.py +0 -0
  109. {fleet_python-0.2.94 → fleet_python-0.2.95}/setup.cfg +0 -0
  110. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/__init__.py +0 -0
  111. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_app_method.py +0 -0
  112. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_expect_only.py +0 -0
  113. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_instance_dispatch.py +0 -0
  114. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_sqlite_resource_dual_mode.py +0 -0
  115. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_sqlite_shared_memory_behavior.py +0 -0
  116. {fleet_python-0.2.94 → fleet_python-0.2.95}/tests/test_verifier_from_string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.94
3
+ Version: 0.2.95
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -73,7 +73,7 @@ from . import env
73
73
  from . import global_client as _global_client
74
74
  from ._async import global_client as _async_global_client
75
75
 
76
- __version__ = "0.2.93"
76
+ __version__ = "0.2.95"
77
77
 
78
78
  __all__ = [
79
79
  # Core classes
@@ -44,7 +44,7 @@ from ..types import VerifierFunction
44
44
  from .. import env
45
45
  from . import global_client as _async_global_client
46
46
 
47
- __version__ = "0.2.93"
47
+ __version__ = "0.2.95"
48
48
 
49
49
  __all__ = [
50
50
  # Core classes
@@ -26,7 +26,7 @@ from .exceptions import (
26
26
  try:
27
27
  from .. import __version__
28
28
  except ImportError:
29
- __version__ = "0.2.93"
29
+ __version__ = "0.2.95"
30
30
 
31
31
  logger = logging.getLogger(__name__)
32
32
 
@@ -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
- # Special case: empty allowed_changes means no changes should have occurred
1421
- if not allowed_changes:
1422
- return await self._expect_no_changes()
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()
@@ -27,7 +27,7 @@ from .exceptions import (
27
27
  try:
28
28
  from . import __version__
29
29
  except ImportError:
30
- __version__ = "0.2.93"
30
+ __version__ = "0.2.95"
31
31
 
32
32
  logger = logging.getLogger(__name__)
33
33
 
@@ -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
- # Special case: empty allowed_changes means no changes should have occurred
1443
- if not allowed_changes:
1444
- return self._expect_no_changes()
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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.94
3
+ Version: 0.2.95
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "fleet-python"
7
7
 
8
- version = "0.2.94"
8
+ version = "0.2.95"
9
9
  description = "Python SDK for Fleet environments"
10
10
  authors = [
11
11
  {name = "Fleet AI", email = "nic@fleet.so"},
File without changes
File without changes
File without changes