fleet-python 0.2.22__tar.gz → 0.2.24__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 (74) hide show
  1. {fleet_python-0.2.22 → fleet_python-0.2.24}/PKG-INFO +1 -1
  2. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/__init__.py +2 -2
  3. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/client.py +10 -0
  4. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/env/client.py +5 -1
  5. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/models.py +1 -1
  6. {fleet_python-0.2.22/fleet → fleet_python-0.2.24/fleet/_async}/tasks.py +2 -2
  7. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/client.py +10 -0
  8. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/env/__init__.py +4 -1
  9. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/env/client.py +5 -1
  10. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/models.py +9 -1
  11. {fleet_python-0.2.22/fleet/_async → fleet_python-0.2.24/fleet}/tasks.py +2 -2
  12. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet_python.egg-info/PKG-INFO +1 -1
  13. {fleet_python-0.2.22 → fleet_python-0.2.24}/pyproject.toml +1 -1
  14. {fleet_python-0.2.22 → fleet_python-0.2.24}/scripts/fix_sync_imports.py +6 -0
  15. {fleet_python-0.2.22 → fleet_python-0.2.24}/LICENSE +0 -0
  16. {fleet_python-0.2.22 → fleet_python-0.2.24}/README.md +0 -0
  17. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/diff_example.py +0 -0
  18. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/dsl_example.py +0 -0
  19. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example.py +0 -0
  20. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_action_log.py +0 -0
  21. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_client.py +0 -0
  22. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_mcp_anthropic.py +0 -0
  23. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_mcp_openai.py +0 -0
  24. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_sync.py +0 -0
  25. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_task.py +0 -0
  26. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/example_verifier.py +0 -0
  27. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/gemini_example.py +0 -0
  28. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/json_tasks_example.py +0 -0
  29. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/nova_act_example.py +0 -0
  30. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/openai_example.py +0 -0
  31. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/openai_simple_example.py +0 -0
  32. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/query_builder_example.py +0 -0
  33. {fleet_python-0.2.22 → fleet_python-0.2.24}/examples/quickstart.py +0 -0
  34. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/__init__.py +0 -0
  35. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/base.py +0 -0
  36. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/env/__init__.py +0 -0
  37. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/exceptions.py +0 -0
  38. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/instance/__init__.py +0 -0
  39. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/instance/base.py +0 -0
  40. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/instance/client.py +0 -0
  41. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/resources/__init__.py +0 -0
  42. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/resources/base.py +0 -0
  43. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/resources/browser.py +0 -0
  44. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/resources/sqlite.py +0 -0
  45. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/verifiers/__init__.py +0 -0
  46. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/verifiers/bundler.py +0 -0
  47. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/_async/verifiers/verifier.py +0 -0
  48. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/base.py +0 -0
  49. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/config.py +0 -0
  50. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/exceptions.py +0 -0
  51. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/instance/__init__.py +0 -0
  52. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/instance/base.py +0 -0
  53. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/instance/client.py +0 -0
  54. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/instance/models.py +0 -0
  55. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/resources/__init__.py +0 -0
  56. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/resources/base.py +0 -0
  57. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/resources/browser.py +0 -0
  58. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/resources/mcp.py +0 -0
  59. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/resources/sqlite.py +0 -0
  60. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/types.py +0 -0
  61. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/__init__.py +0 -0
  62. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/bundler.py +0 -0
  63. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/code.py +0 -0
  64. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/db.py +0 -0
  65. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/decorator.py +0 -0
  66. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/parse.py +0 -0
  67. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/sql_differ.py +0 -0
  68. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet/verifiers/verifier.py +0 -0
  69. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet_python.egg-info/SOURCES.txt +0 -0
  70. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet_python.egg-info/dependency_links.txt +0 -0
  71. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet_python.egg-info/requires.txt +0 -0
  72. {fleet_python-0.2.22 → fleet_python-0.2.24}/fleet_python.egg-info/top_level.txt +0 -0
  73. {fleet_python-0.2.22 → fleet_python-0.2.24}/scripts/unasync.py +0 -0
  74. {fleet_python-0.2.22 → fleet_python-0.2.24}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.22
3
+ Version: 0.2.24
4
4
  Summary: Python SDK for Fleet environments
5
5
  Author-email: Fleet AI <nic@fleet.so>
6
6
  License: Apache-2.0
@@ -22,7 +22,7 @@ from .exceptions import (
22
22
  FleetInstanceLimitError,
23
23
  FleetConfigurationError,
24
24
  )
25
- from .client import Fleet, Environment
25
+ from .client import Fleet, SyncEnv
26
26
  from ._async.client import AsyncFleet, AsyncEnv
27
27
  from .models import InstanceResponse
28
28
  from .instance.models import Resource, ResetResponse
@@ -58,7 +58,7 @@ __version__ = "0.1.0"
58
58
  __all__ = [
59
59
  # Core classes
60
60
  "Fleet",
61
- "Environment",
61
+ "SyncEnv",
62
62
  "AsyncFleet",
63
63
  "AsyncEnv",
64
64
  # Models
@@ -29,6 +29,7 @@ from ..models import (
29
29
  VerifiersCheckResponse,
30
30
  VerifiersExecuteResponse,
31
31
  TaskListResponse,
32
+ AccountResponse,
32
33
  )
33
34
  from .tasks import Task
34
35
 
@@ -268,6 +269,15 @@ class AsyncFleet:
268
269
 
269
270
  return tasks
270
271
 
272
+ async def account(self) -> AccountResponse:
273
+ """Get account information including instance limits and usage.
274
+
275
+ Returns:
276
+ AccountResponse containing team_id, team_name, instance_limit, and instance_count
277
+ """
278
+ response = await self.client.request("GET", "/v1/account")
279
+ return AccountResponse(**response.json())
280
+
271
281
 
272
282
  # Shared
273
283
  async def _delete_instance(client: AsyncWrapper, instance_id: str) -> InstanceResponse:
@@ -1,5 +1,5 @@
1
1
  from ..client import AsyncFleet, AsyncEnv
2
- from ...models import Environment as EnvironmentModel
2
+ from ...models import Environment as EnvironmentModel, AccountResponse
3
3
  from typing import List, Optional
4
4
 
5
5
 
@@ -23,3 +23,7 @@ async def list_instances_async(
23
23
 
24
24
  async def get_async(instance_id: str) -> AsyncEnv:
25
25
  return await AsyncFleet().instance(instance_id)
26
+
27
+
28
+ async def account_async() -> AccountResponse:
29
+ return await AsyncFleet().account()
@@ -317,5 +317,5 @@ class InstanceResponse(BaseModel):
317
317
  team_id: str = Field(..., title='Team Id')
318
318
  region: str = Field(..., title='Region')
319
319
  env_variables: Optional[Dict[str, Any]] = Field(None, title='Env Variables')
320
- urls: InstanceURLs
320
+ urls: Optional[InstanceURLs] = Field(None, title='Urls')
321
321
  health: Optional[bool] = Field(None, title='Health')
@@ -10,7 +10,7 @@ from uuid import UUID
10
10
  from pydantic import BaseModel, Field, validator
11
11
 
12
12
  # Import the shared VerifierFunction type that works for both async and sync
13
- from ..types import VerifierFunction
13
+ from fleet.types import VerifierFunction
14
14
 
15
15
 
16
16
  class Task(BaseModel):
@@ -41,4 +41,4 @@ class Task(BaseModel):
41
41
  datetime: lambda v: v.isoformat(),
42
42
  }
43
43
  # Allow arbitrary types for the verifier field
44
- arbitrary_types_allowed = True
44
+ arbitrary_types_allowed = True
@@ -29,6 +29,7 @@ from .models import (
29
29
  VerifiersCheckResponse,
30
30
  VerifiersExecuteResponse,
31
31
  TaskListResponse,
32
+ AccountResponse,
32
33
  )
33
34
  from .tasks import Task
34
35
 
@@ -268,6 +269,15 @@ class Fleet:
268
269
 
269
270
  return tasks
270
271
 
272
+ def account(self) -> AccountResponse:
273
+ """Get account information including instance limits and usage.
274
+
275
+ Returns:
276
+ AccountResponse containing team_id, team_name, instance_limit, and instance_count
277
+ """
278
+ response = self.client.request("GET", "/v1/account")
279
+ return AccountResponse(**response.json())
280
+
271
281
 
272
282
  # Shared
273
283
  def _delete_instance(client: SyncWrapper, instance_id: str) -> InstanceResponse:
@@ -1,6 +1,6 @@
1
1
  """Fleet env module - convenience functions for environment management."""
2
2
 
3
- from .client import make, list_envs, list_regions, get, list_instances
3
+ from .client import make, list_envs, list_regions, get, list_instances, account
4
4
 
5
5
  # Import async versions from _async
6
6
  from .._async.env.client import (
@@ -9,6 +9,7 @@ from .._async.env.client import (
9
9
  list_regions_async,
10
10
  get_async,
11
11
  list_instances_async,
12
+ account_async,
12
13
  )
13
14
 
14
15
  __all__ = [
@@ -22,4 +23,6 @@ __all__ = [
22
23
  "list_regions_async",
23
24
  "list_instances_async",
24
25
  "get_async",
26
+ "account",
27
+ "account_async",
25
28
  ]
@@ -1,5 +1,5 @@
1
1
  from ..client import Fleet, SyncEnv
2
- from ..models import Environment as EnvironmentModel
2
+ from ..models import Environment as EnvironmentModel, AccountResponse
3
3
  from typing import List, Optional
4
4
 
5
5
 
@@ -23,3 +23,7 @@ def list_instances(
23
23
 
24
24
  def get(instance_id: str) -> SyncEnv:
25
25
  return Fleet().instance(instance_id)
26
+
27
+
28
+ def account() -> AccountResponse:
29
+ return Fleet().account()
@@ -305,6 +305,14 @@ class TaskListResponse(BaseModel):
305
305
  total: int = Field(..., title='Total')
306
306
 
307
307
 
308
+ class AccountResponse(BaseModel):
309
+ """Response model for account information."""
310
+ team_id: str = Field(..., title='Team Id')
311
+ team_name: str = Field(..., title='Team Name')
312
+ instance_limit: int = Field(..., title='Instance Limit')
313
+ instance_count: int = Field(..., title='Instance Count')
314
+
315
+
308
316
  class InstanceResponse(BaseModel):
309
317
  instance_id: str = Field(..., title='Instance Id')
310
318
  env_key: str = Field(..., title='Env Key')
@@ -317,5 +325,5 @@ class InstanceResponse(BaseModel):
317
325
  team_id: str = Field(..., title='Team Id')
318
326
  region: str = Field(..., title='Region')
319
327
  env_variables: Optional[Dict[str, Any]] = Field(None, title='Env Variables')
320
- urls: InstanceURLs
328
+ urls: Optional[InstanceURLs] = Field(None, title='Urls')
321
329
  health: Optional[bool] = Field(None, title='Health')
@@ -10,7 +10,7 @@ from uuid import UUID
10
10
  from pydantic import BaseModel, Field, validator
11
11
 
12
12
  # Import the shared VerifierFunction type that works for both async and sync
13
- from ..types import VerifierFunction
13
+ from fleet.types import VerifierFunction
14
14
 
15
15
 
16
16
  class Task(BaseModel):
@@ -41,4 +41,4 @@ class Task(BaseModel):
41
41
  datetime: lambda v: v.isoformat(),
42
42
  }
43
43
  # Allow arbitrary types for the verifier field
44
- arbitrary_types_allowed = True
44
+ arbitrary_types_allowed = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fleet-python
3
- Version: 0.2.22
3
+ Version: 0.2.24
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.22"
7
+ version = "0.2.24"
8
8
  description = "Python SDK for Fleet environments"
9
9
  authors = [
10
10
  {name = "Fleet AI", email = "nic@fleet.so"},
@@ -50,6 +50,12 @@ def fix_file(filepath: Path) -> bool:
50
50
  content = content.replace('from ..models import', 'from .models import')
51
51
  content = content.replace('from ..config import', 'from .config import')
52
52
 
53
+ # Fix __init__.py imports - the class is called SyncEnv, not Environment
54
+ if rel_path.parts[0] == '__init__.py' and len(rel_path.parts) == 1:
55
+ content = content.replace('from .client import Fleet, Environment', 'from .client import Fleet, SyncEnv')
56
+ content = content.replace('"Environment",', '"SyncEnv",')
57
+ content = content.replace("'Environment',", "'SyncEnv',")
58
+
53
59
  # Fix playwright imports for sync version
54
60
  if 'playwright' in str(filepath):
55
61
  # Fix the import statement
File without changes
File without changes
File without changes