supervaizer 0.10.0__tar.gz → 0.10.1__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 (76) hide show
  1. {supervaizer-0.10.0 → supervaizer-0.10.1}/PKG-INFO +2 -2
  2. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/__version__.py +1 -1
  3. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/plan.py +1 -1
  4. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/up.py +2 -2
  5. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/docker.py +21 -13
  6. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/utils.py +12 -1
  7. {supervaizer-0.10.0 → supervaizer-0.10.1}/.gitignore +0 -0
  8. {supervaizer-0.10.0 → supervaizer-0.10.1}/LICENSE.md +0 -0
  9. {supervaizer-0.10.0 → supervaizer-0.10.1}/README.md +0 -0
  10. {supervaizer-0.10.0 → supervaizer-0.10.1}/pyproject.toml +1 -1
  11. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/__init__.py +0 -0
  12. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/account.py +0 -0
  13. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/account_service.py +0 -0
  14. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/routes.py +0 -0
  15. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/static/js/job-start-form.js +0 -0
  16. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agent_detail.html +0 -0
  17. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agents.html +0 -0
  18. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agents_grid.html +0 -0
  19. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/base.html +0 -0
  20. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/case_detail.html +0 -0
  21. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/cases_list.html +0 -0
  22. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/cases_table.html +0 -0
  23. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/console.html +0 -0
  24. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/dashboard.html +0 -0
  25. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/job_detail.html +0 -0
  26. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/job_start_test.html +0 -0
  27. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/jobs_list.html +0 -0
  28. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/jobs_table.html +0 -0
  29. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/navigation.html +0 -0
  30. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/recent_activity.html +0 -0
  31. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/server.html +0 -0
  32. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/server_status_cards.html +0 -0
  33. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/supervaize_instructions.html +0 -0
  34. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/agent.py +0 -0
  35. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/case.py +0 -0
  36. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/cli.py +0 -0
  37. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/common.py +0 -0
  38. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/__init__.py +0 -0
  39. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/cli.py +0 -0
  40. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/__init__.py +0 -0
  41. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/clean.py +0 -0
  42. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/down.py +0 -0
  43. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/local.py +0 -0
  44. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/status.py +0 -0
  45. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/driver_factory.py +0 -0
  46. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/__init__.py +0 -0
  47. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/aws_app_runner.py +0 -0
  48. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/base.py +0 -0
  49. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/cloud_run.py +0 -0
  50. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/do_app_platform.py +0 -0
  51. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/health.py +0 -0
  52. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/state.py +0 -0
  53. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/Dockerfile.template +0 -0
  54. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/debug_env.py +0 -0
  55. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/docker-compose.yml.template +0 -0
  56. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/dockerignore.template +0 -0
  57. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/entrypoint.sh +0 -0
  58. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/event.py +0 -0
  59. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/examples/controller_template.py +0 -0
  60. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/instructions.py +0 -0
  61. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/job.py +0 -0
  62. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/job_service.py +0 -0
  63. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/lifecycle.py +0 -0
  64. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/parameter.py +0 -0
  65. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/__init__.py +0 -0
  66. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/__init__.py +0 -0
  67. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/model.py +0 -0
  68. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/routes.py +0 -0
  69. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/py.typed +0 -0
  70. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/routes.py +0 -0
  71. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/server.py +0 -0
  72. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/server_utils.py +0 -0
  73. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/storage.py +0 -0
  74. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/telemetry.py +0 -0
  75. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/utils/__init__.py +0 -0
  76. {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/utils/version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: supervaizer
3
- Version: 0.10.0
3
+ Version: 0.10.1
4
4
  Summary: Controller system for Supervaize
5
5
  Project-URL: Homepage, https://supervaize.com
6
6
  Project-URL: Repository, https://github.com/supervaize/supervaizer
@@ -25,6 +25,7 @@ Requires-Dist: jinja2>=3.1.6
25
25
  Requires-Dist: loguru>=0.7.3
26
26
  Requires-Dist: orjson>=3.11.3
27
27
  Requires-Dist: packaging>=24.0
28
+ Requires-Dist: psutil>=7.1.0
28
29
  Requires-Dist: pydantic>=2.12.0
29
30
  Requires-Dist: python-slugify>=8.0.4
30
31
  Requires-Dist: pyyaml>=6.0.3
@@ -40,7 +41,6 @@ Requires-Dist: docker>=7.0.0; extra == 'deploy'
40
41
  Requires-Dist: google-cloud-artifact-registry>=1.8.0; extra == 'deploy'
41
42
  Requires-Dist: google-cloud-run>=0.10.0; extra == 'deploy'
42
43
  Requires-Dist: google-cloud-secret-manager>=2.18.0; extra == 'deploy'
43
- Requires-Dist: psutil>=7.1.0; extra == 'deploy'
44
44
  Provides-Extra: dev
45
45
  Requires-Dist: hatch>=1.14.2; extra == 'dev'
46
46
  Requires-Dist: jsonschema>=4.25.1; extra == 'dev'
@@ -5,6 +5,6 @@
5
5
  # https://mozilla.org/MPL/2.0/.
6
6
 
7
7
 
8
- VERSION = "0.10.0"
8
+ VERSION = "0.10.1"
9
9
  API_VERSION = "v1"
10
10
  TELEMETRY_VERSION = "v1"
@@ -18,7 +18,7 @@ from rich.table import Table
18
18
 
19
19
  from supervaizer.common import log
20
20
  from supervaizer.deploy.driver_factory import create_driver, get_supported_platforms
21
- from supervaizer.deploy.docker import get_git_sha
21
+ from supervaizer.deploy.utils import get_git_sha
22
22
  from supervaizer.deploy.drivers.base import DeploymentPlan
23
23
 
24
24
  console = Console()
@@ -19,11 +19,11 @@ from rich.console import Console
19
19
  from rich.progress import Progress, SpinnerColumn, TextColumn
20
20
 
21
21
  from supervaizer.common import log
22
- from supervaizer.deploy.docker import DockerManager, get_git_sha, ensure_docker_running
22
+ from supervaizer.deploy.docker import DockerManager, ensure_docker_running
23
23
  from supervaizer.deploy.driver_factory import create_driver, get_supported_platforms
24
24
  from supervaizer.deploy.drivers.base import DeploymentResult
25
25
  from supervaizer.deploy.state import StateManager
26
- from supervaizer.deploy.utils import create_deployment_directory
26
+ from supervaizer.deploy.utils import create_deployment_directory, get_git_sha
27
27
 
28
28
  console = Console()
29
29
 
@@ -15,8 +15,6 @@ import subprocess
15
15
  from pathlib import Path
16
16
  from typing import Optional
17
17
 
18
- from docker import DockerClient
19
- from docker.errors import APIError, BuildError, DockerException
20
18
  from rich.console import Console
21
19
 
22
20
  from supervaizer.common import log
@@ -85,6 +83,14 @@ class DockerManager:
85
83
  """Initialize Docker manager."""
86
84
  self.client = None
87
85
  if require_docker:
86
+ try:
87
+ from docker import DockerClient
88
+ from docker.errors import DockerException
89
+ except ImportError:
90
+ raise RuntimeError(
91
+ "Docker package not installed. Install with: pip install supervaizer[deploy]"
92
+ ) from None
93
+
88
94
  try:
89
95
  self.client = DockerClient.from_env()
90
96
  self.client.ping() # Test connection
@@ -220,6 +226,8 @@ class DockerManager:
220
226
  build_args: Optional[dict] = None,
221
227
  ) -> str:
222
228
  """Build Docker image and return the image ID."""
229
+ from docker.errors import APIError, BuildError, DockerException
230
+
223
231
  if self.client is None:
224
232
  raise RuntimeError(
225
233
  "Docker client not available. Initialize DockerManager with require_docker=True"
@@ -296,6 +304,8 @@ class DockerManager:
296
304
 
297
305
  def tag_image(self, source_tag: str, target_tag: str) -> None:
298
306
  """Tag a Docker image."""
307
+ from docker.errors import DockerException
308
+
299
309
  if self.client is None:
300
310
  raise RuntimeError(
301
311
  "Docker client not available. Initialize DockerManager with require_docker=True"
@@ -311,6 +321,8 @@ class DockerManager:
311
321
 
312
322
  def push_image(self, tag: str) -> None:
313
323
  """Push Docker image to registry."""
324
+ from docker.errors import DockerException
325
+
314
326
  if self.client is None:
315
327
  raise RuntimeError(
316
328
  "Docker client not available. Initialize DockerManager with require_docker=True"
@@ -335,6 +347,8 @@ class DockerManager:
335
347
 
336
348
  def get_image_digest(self, tag: str) -> Optional[str]:
337
349
  """Get the digest of a Docker image."""
350
+ from docker.errors import DockerException
351
+
338
352
  if self.client is None:
339
353
  raise RuntimeError(
340
354
  "Docker client not available. Initialize DockerManager with require_docker=True"
@@ -352,19 +366,13 @@ class DockerManager:
352
366
  def ensure_docker_running() -> bool:
353
367
  """Check if Docker is running and accessible."""
354
368
  try:
369
+ from docker import DockerClient
370
+ from docker.errors import DockerException
371
+
355
372
  client = DockerClient.from_env()
356
373
  client.ping()
357
374
  return True
375
+ except ImportError:
376
+ return False
358
377
  except DockerException:
359
378
  return False
360
-
361
-
362
- def get_git_sha() -> str:
363
- """Get the current git SHA for tagging."""
364
- try:
365
- result = subprocess.run(
366
- ["git", "rev-parse", "HEAD"], capture_output=True, text=True, check=True
367
- )
368
- return result.stdout.strip()[:8] # Use short SHA
369
- except (subprocess.CalledProcessError, FileNotFoundError):
370
- return "latest"
@@ -10,9 +10,9 @@ Deployment State Management
10
10
  This module handles deployment state persistence and management.
11
11
  """
12
12
 
13
+ import subprocess
13
14
  from pathlib import Path
14
15
 
15
-
16
16
  from supervaizer.common import log
17
17
 
18
18
 
@@ -39,3 +39,14 @@ def create_deployment_directory(project_root: Path) -> Path:
39
39
  log.info(f"Created .gitignore with {gitignore_entry}")
40
40
 
41
41
  return deployment_dir
42
+
43
+
44
+ def get_git_sha() -> str:
45
+ """Get the current git SHA for tagging."""
46
+ try:
47
+ result = subprocess.run(
48
+ ["git", "rev-parse", "HEAD"], capture_output=True, text=True, check=True
49
+ )
50
+ return result.stdout.strip()[:8] # Use short SHA
51
+ except (subprocess.CalledProcessError, FileNotFoundError):
52
+ return "latest"
File without changes
File without changes
File without changes
@@ -17,6 +17,7 @@ dependencies = [
17
17
  "loguru>=0.7.3",
18
18
  "orjson>=3.11.3",
19
19
  "packaging>=24.0",
20
+ "psutil>=7.1.0",
20
21
  "pydantic>=2.12.0",
21
22
  "python-slugify>=8.0.4",
22
23
  "pyyaml>=6.0.3",
@@ -53,7 +54,6 @@ deploy = [
53
54
  "google-cloud-artifact-registry>=1.8.0",
54
55
  "google-cloud-run>=0.10.0",
55
56
  "google-cloud-secret-manager>=2.18.0",
56
- "psutil>=7.1.0",
57
57
  ]
58
58
  dev = [
59
59
  "hatch>=1.14.2",