fleet-python 0.2.35__tar.gz → 0.2.36__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.

Potentially problematic release.


This version of fleet-python might be problematic. Click here for more details.

Files changed (81) hide show
  1. {fleet_python-0.2.35 → fleet_python-0.2.36}/PKG-INFO +1 -1
  2. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/__init__.py +4 -3
  3. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/client.py +3 -3
  4. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/env/client.py +3 -3
  5. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/client.py +3 -3
  6. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/env/client.py +3 -3
  7. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet_python.egg-info/PKG-INFO +1 -1
  8. {fleet_python-0.2.35 → fleet_python-0.2.36}/pyproject.toml +1 -1
  9. {fleet_python-0.2.35 → fleet_python-0.2.36}/scripts/fix_sync_imports.py +16 -1
  10. {fleet_python-0.2.35 → fleet_python-0.2.36}/LICENSE +0 -0
  11. {fleet_python-0.2.35 → fleet_python-0.2.36}/README.md +0 -0
  12. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/diff_example.py +0 -0
  13. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/dsl_example.py +0 -0
  14. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example.py +0 -0
  15. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/exampleResume.py +0 -0
  16. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_account.py +0 -0
  17. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_action_log.py +0 -0
  18. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_client.py +0 -0
  19. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_mcp_anthropic.py +0 -0
  20. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_mcp_openai.py +0 -0
  21. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_sync.py +0 -0
  22. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_task.py +0 -0
  23. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_tasks.py +0 -0
  24. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/example_verifier.py +0 -0
  25. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/gemini_example.py +0 -0
  26. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/json_tasks_example.py +0 -0
  27. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/nova_act_example.py +0 -0
  28. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/openai_example.py +0 -0
  29. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/openai_simple_example.py +0 -0
  30. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/query_builder_example.py +0 -0
  31. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/quickstart.py +0 -0
  32. {fleet_python-0.2.35 → fleet_python-0.2.36}/examples/test_cdp_logging.py +0 -0
  33. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/__init__.py +0 -0
  34. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/base.py +0 -0
  35. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/env/__init__.py +0 -0
  36. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/exceptions.py +0 -0
  37. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/global_client.py +0 -0
  38. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/instance/__init__.py +0 -0
  39. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/instance/base.py +0 -0
  40. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/instance/client.py +0 -0
  41. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/models.py +0 -0
  42. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/resources/__init__.py +0 -0
  43. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/resources/base.py +0 -0
  44. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/resources/browser.py +0 -0
  45. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/resources/mcp.py +0 -0
  46. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/resources/sqlite.py +0 -0
  47. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/tasks.py +0 -0
  48. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/verifiers/__init__.py +0 -0
  49. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/verifiers/bundler.py +0 -0
  50. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/_async/verifiers/verifier.py +0 -0
  51. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/base.py +0 -0
  52. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/config.py +0 -0
  53. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/env/__init__.py +0 -0
  54. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/exceptions.py +0 -0
  55. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/global_client.py +0 -0
  56. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/instance/__init__.py +0 -0
  57. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/instance/base.py +0 -0
  58. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/instance/client.py +0 -0
  59. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/instance/models.py +0 -0
  60. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/models.py +0 -0
  61. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/resources/__init__.py +0 -0
  62. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/resources/base.py +0 -0
  63. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/resources/browser.py +0 -0
  64. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/resources/mcp.py +0 -0
  65. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/resources/sqlite.py +0 -0
  66. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/tasks.py +0 -0
  67. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/types.py +0 -0
  68. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/__init__.py +0 -0
  69. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/bundler.py +0 -0
  70. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/code.py +0 -0
  71. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/db.py +0 -0
  72. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/decorator.py +0 -0
  73. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/parse.py +0 -0
  74. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/sql_differ.py +0 -0
  75. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet/verifiers/verifier.py +0 -0
  76. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet_python.egg-info/SOURCES.txt +0 -0
  77. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet_python.egg-info/dependency_links.txt +0 -0
  78. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet_python.egg-info/requires.txt +0 -0
  79. {fleet_python-0.2.35 → fleet_python-0.2.36}/fleet_python.egg-info/top_level.txt +0 -0
  80. {fleet_python-0.2.35 → fleet_python-0.2.36}/scripts/unasync.py +0 -0
  81. {fleet_python-0.2.35 → fleet_python-0.2.36}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.35
3
+ Version: 0.2.36
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -14,7 +14,7 @@
14
14
 
15
15
  """Fleet Python SDK - Async Environment-based AI agent interactions."""
16
16
 
17
- from typing import Optional, List
17
+ from typing import Optional, List, Dict, Any
18
18
 
19
19
  from ..exceptions import (
20
20
  FleetError,
@@ -108,13 +108,14 @@ async def environment(env_key: str) -> Environment:
108
108
  return await _async_global_client.get_client().environment(env_key)
109
109
 
110
110
 
111
- async def make(env_key: str, region: Optional[str] = None) -> AsyncEnv:
111
+ async def make(env_key: str, region: Optional[str] = None, env_variables: Optional[Dict[str, Any]] = None) -> AsyncEnv:
112
112
  """Create a new environment instance.
113
113
 
114
114
  Example:
115
115
  env = await fleet.make("fira")
116
+ env_with_vars = await fleet.make("fira", env_variables={"LOGGED_IN_NAME": "Alice"})
116
117
  """
117
- return await _async_global_client.get_client().make(env_key, region)
118
+ return await _async_global_client.get_client().make(env_key, region, env_variables)
118
119
 
119
120
 
120
121
  async def make_for_task(task: Task) -> AsyncEnv:
@@ -20,7 +20,7 @@ import httpx
20
20
  import json
21
21
  import logging
22
22
  import os
23
- from typing import List, Optional, Dict, TYPE_CHECKING
23
+ from typing import List, Optional, Dict, Any, TYPE_CHECKING
24
24
 
25
25
  from .base import EnvironmentBase, AsyncWrapper
26
26
  from ..models import (
@@ -196,7 +196,7 @@ class AsyncFleet:
196
196
  response = await self.client.request("GET", f"/v1/env/{env_key}")
197
197
  return EnvironmentModel(**response.json())
198
198
 
199
- async def make(self, env_key: str, region: Optional[str] = None) -> AsyncEnv:
199
+ async def make(self, env_key: str, region: Optional[str] = None, env_variables: Optional[Dict[str, Any]] = None) -> AsyncEnv:
200
200
  if ":" in env_key:
201
201
  env_key_part, version = env_key.split(":", 1)
202
202
  if (
@@ -210,7 +210,7 @@ class AsyncFleet:
210
210
  version = None
211
211
 
212
212
  request = InstanceRequest(
213
- env_key=env_key_part, version=version, region=region, created_from="sdk"
213
+ env_key=env_key_part, version=version, region=region, env_variables=env_variables, created_from="sdk"
214
214
  )
215
215
  region_base_url = REGION_BASE_URL.get(region)
216
216
  response = await self.client.request(
@@ -1,10 +1,10 @@
1
1
  from ..client import AsyncFleet, AsyncEnv, Task
2
2
  from ...models import Environment as EnvironmentModel, AccountResponse
3
- from typing import List, Optional
3
+ from typing import List, Optional, Dict, Any
4
4
 
5
5
 
6
- async def make_async(env_key: str, region: Optional[str] = None) -> AsyncEnv:
7
- return await AsyncFleet().make(env_key, region=region)
6
+ async def make_async(env_key: str, region: Optional[str] = None, env_variables: Optional[Dict[str, Any]] = None) -> AsyncEnv:
7
+ return await AsyncFleet().make(env_key, region=region, env_variables=env_variables)
8
8
 
9
9
 
10
10
  async def make_for_task_async(task: Task) -> AsyncEnv:
@@ -20,7 +20,7 @@ import httpx
20
20
  import json
21
21
  import logging
22
22
  import os
23
- from typing import List, Optional, Dict, TYPE_CHECKING
23
+ from typing import List, Optional, Dict, Any, TYPE_CHECKING
24
24
 
25
25
  from .base import EnvironmentBase, SyncWrapper
26
26
  from .models import (
@@ -196,7 +196,7 @@ class Fleet:
196
196
  response = self.client.request("GET", f"/v1/env/{env_key}")
197
197
  return EnvironmentModel(**response.json())
198
198
 
199
- def make(self, env_key: str, region: Optional[str] = None) -> SyncEnv:
199
+ def make(self, env_key: str, region: Optional[str] = None, env_variables: Optional[Dict[str, Any]] = None) -> SyncEnv:
200
200
  if ":" in env_key:
201
201
  env_key_part, version = env_key.split(":", 1)
202
202
  if (
@@ -210,7 +210,7 @@ class Fleet:
210
210
  version = None
211
211
 
212
212
  request = InstanceRequest(
213
- env_key=env_key_part, version=version, region=region, created_from="sdk"
213
+ env_key=env_key_part, version=version, region=region, env_variables=env_variables, created_from="sdk"
214
214
  )
215
215
  region_base_url = REGION_BASE_URL.get(region)
216
216
  response = self.client.request(
@@ -1,10 +1,10 @@
1
1
  from ..client import Fleet, SyncEnv, Task
2
2
  from ..models import Environment as EnvironmentModel, AccountResponse
3
- from typing import List, Optional
3
+ from typing import List, Optional, Dict, Any
4
4
 
5
5
 
6
- def make(env_key: str, region: Optional[str] = None) -> SyncEnv:
7
- return Fleet().make(env_key, region=region)
6
+ def make(env_key: str, region: Optional[str] = None, env_variables: Optional[Dict[str, Any]] = None) -> SyncEnv:
7
+ return Fleet().make(env_key, region=region, env_variables=env_variables)
8
8
 
9
9
 
10
10
  def make_for_task_async(task: Task) -> SyncEnv:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.35
3
+ Version: 0.2.36
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fleet-python"
7
- version = "0.2.35"
7
+ version = "0.2.36"
8
8
  description = "Python SDK for Fleet environments"
9
9
  authors = [
10
10
  {name = "Fleet AI", email = "nic@fleet.so"},
@@ -76,10 +76,25 @@ def fix_file(filepath: Path) -> bool:
76
76
  )
77
77
 
78
78
  # Fix imports in top-level fleet files
79
- if rel_path.parts[0] in ["base.py", "client.py"] and len(rel_path.parts) == 1:
79
+ if rel_path.parts[0] in ["base.py", "client.py", "global_client.py"] and len(rel_path.parts) == 1:
80
80
  # Top-level files should use . for fleet level imports
81
81
  content = content.replace("from ..models import", "from .models import")
82
82
  content = content.replace("from ..config import", "from .config import")
83
+ content = content.replace("from ..tasks import", "from .tasks import")
84
+
85
+ # Fix sync client error messages and imports
86
+ if rel_path.parts[0] == "client.py":
87
+ content = content.replace("Expected AsyncVerifierFunction but got", "Expected SyncVerifierFunction but got")
88
+ content = content.replace("# Ensure we return an AsyncVerifierFunction", "# Ensure we return a SyncVerifierFunction")
89
+ content = content.replace("from .verifiers.verifier import SyncVerifierFunction", "from .verifiers import SyncVerifierFunction")
90
+
91
+ # Remove the type check entirely since it's causing import issues
92
+ content = re.sub(
93
+ r'\s*# Ensure we return a SyncVerifierFunction\s*\n\s*if not isinstance\(verifier_func, SyncVerifierFunction\):\s*\n\s*raise TypeError\(\s*f"Expected SyncVerifierFunction but got \{type\(verifier_func\)\.__name__\}"\s*\)\s*\n\s*',
94
+ '',
95
+ content,
96
+ flags=re.MULTILINE
97
+ )
83
98
 
84
99
  # Fix __init__.py imports - the class is called SyncEnv, not Environment
85
100
  if rel_path.parts[0] == "__init__.py" and len(rel_path.parts) == 1:
File without changes
File without changes
File without changes