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.
Files changed (119) hide show
  1. {fleet_python-0.2.101/fleet_python.egg-info → fleet_python-0.2.102}/PKG-INFO +1 -1
  2. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/__init__.py +1 -1
  3. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/__init__.py +1 -1
  4. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/base.py +1 -1
  5. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/sqlite.py +10 -0
  6. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/base.py +1 -1
  7. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/sqlite.py +10 -0
  8. {fleet_python-0.2.101 → fleet_python-0.2.102/fleet_python.egg-info}/PKG-INFO +1 -1
  9. {fleet_python-0.2.101 → fleet_python-0.2.102}/pyproject.toml +1 -1
  10. {fleet_python-0.2.101 → fleet_python-0.2.102}/LICENSE +0 -0
  11. {fleet_python-0.2.101 → fleet_python-0.2.102}/README.md +0 -0
  12. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/diff_example.py +0 -0
  13. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/dsl_example.py +0 -0
  14. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example.py +0 -0
  15. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/exampleResume.py +0 -0
  16. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_account.py +0 -0
  17. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_action_log.py +0 -0
  18. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_client.py +0 -0
  19. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_mcp_anthropic.py +0 -0
  20. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_mcp_openai.py +0 -0
  21. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_sync.py +0 -0
  22. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_task.py +0 -0
  23. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_tasks.py +0 -0
  24. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/example_verifier.py +0 -0
  25. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/export_tasks.py +0 -0
  26. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/fetch_tasks.py +0 -0
  27. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/gemini_example.py +0 -0
  28. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/import_tasks.py +0 -0
  29. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/iterate_verifiers.py +0 -0
  30. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/json_tasks_example.py +0 -0
  31. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/nova_act_example.py +0 -0
  32. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/openai_example.py +0 -0
  33. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/openai_simple_example.py +0 -0
  34. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/query_builder_example.py +0 -0
  35. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/quickstart.py +0 -0
  36. {fleet_python-0.2.101 → fleet_python-0.2.102}/examples/test_cdp_logging.py +0 -0
  37. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/client.py +0 -0
  38. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/env/__init__.py +0 -0
  39. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/env/client.py +0 -0
  40. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/exceptions.py +0 -0
  41. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/global_client.py +0 -0
  42. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/__init__.py +0 -0
  43. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/base.py +0 -0
  44. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/instance/client.py +0 -0
  45. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/models.py +0 -0
  46. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/__init__.py +0 -0
  47. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/api.py +0 -0
  48. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/base.py +0 -0
  49. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/browser.py +0 -0
  50. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/resources/mcp.py +0 -0
  51. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/tasks.py +0 -0
  52. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/__init__.py +0 -0
  53. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/bundler.py +0 -0
  54. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/_async/verifiers/verifier.py +0 -0
  55. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/__init__.py +0 -0
  56. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/Dockerfile +0 -0
  57. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/__init__.py +0 -0
  58. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/agent.py +0 -0
  59. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp/main.py +0 -0
  60. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/__init__.py +0 -0
  61. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/main.py +0 -0
  62. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/mcp_server/tools.py +0 -0
  63. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/requirements.txt +0 -0
  64. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/gemini_cua/start.sh +0 -0
  65. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/orchestrator.py +0 -0
  66. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/types.py +0 -0
  67. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/agent/utils.py +0 -0
  68. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/cli.py +0 -0
  69. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/client.py +0 -0
  70. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/config.py +0 -0
  71. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/env/__init__.py +0 -0
  72. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/env/client.py +0 -0
  73. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/eval/__init__.py +0 -0
  74. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/eval/uploader.py +0 -0
  75. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/exceptions.py +0 -0
  76. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/global_client.py +0 -0
  77. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/__init__.py +0 -0
  78. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/base.py +0 -0
  79. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/client.py +0 -0
  80. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/instance/models.py +0 -0
  81. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/models.py +0 -0
  82. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/__init__.py +0 -0
  83. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/proxy.py +0 -0
  84. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/proxy/whitelist.py +0 -0
  85. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/__init__.py +0 -0
  86. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/api.py +0 -0
  87. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/base.py +0 -0
  88. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/browser.py +0 -0
  89. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/resources/mcp.py +0 -0
  90. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/tasks.py +0 -0
  91. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/types.py +0 -0
  92. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/__init__.py +0 -0
  93. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/http_logging.py +0 -0
  94. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/logging.py +0 -0
  95. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/utils/playwright.py +0 -0
  96. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/__init__.py +0 -0
  97. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/bundler.py +0 -0
  98. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/code.py +0 -0
  99. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/db.py +0 -0
  100. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/decorator.py +0 -0
  101. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/parse.py +0 -0
  102. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/sql_differ.py +0 -0
  103. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet/verifiers/verifier.py +0 -0
  104. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/SOURCES.txt +0 -0
  105. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/dependency_links.txt +0 -0
  106. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/entry_points.txt +0 -0
  107. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/requires.txt +0 -0
  108. {fleet_python-0.2.101 → fleet_python-0.2.102}/fleet_python.egg-info/top_level.txt +0 -0
  109. {fleet_python-0.2.101 → fleet_python-0.2.102}/scripts/fix_sync_imports.py +0 -0
  110. {fleet_python-0.2.101 → fleet_python-0.2.102}/scripts/unasync.py +0 -0
  111. {fleet_python-0.2.101 → fleet_python-0.2.102}/setup.cfg +0 -0
  112. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/__init__.py +0 -0
  113. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_app_method.py +0 -0
  114. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_expect_exactly.py +0 -0
  115. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_expect_only.py +0 -0
  116. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_instance_dispatch.py +0 -0
  117. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_sqlite_resource_dual_mode.py +0 -0
  118. {fleet_python-0.2.101 → fleet_python-0.2.102}/tests/test_sqlite_shared_memory_behavior.py +0 -0
  119. {fleet_python-0.2.101 → fleet_python-0.2.102}/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.101
3
+ Version: 0.2.102
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.101"
76
+ __version__ = "0.2.102"
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.101"
47
+ __version__ = "0.2.102"
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.101"
29
+ __version__ = "0.2.102"
30
30
 
31
31
  logger = logging.getLogger(__name__)
32
32
 
@@ -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()
@@ -27,7 +27,7 @@ from .exceptions import (
27
27
  try:
28
28
  from . import __version__
29
29
  except ImportError:
30
- __version__ = "0.2.101"
30
+ __version__ = "0.2.102"
31
31
 
32
32
  logger = logging.getLogger(__name__)
33
33
 
@@ -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()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.101
3
+ Version: 0.2.102
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.101"
8
+ version = "0.2.102"
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