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.
- {supervaizer-0.10.0 → supervaizer-0.10.1}/PKG-INFO +2 -2
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/__version__.py +1 -1
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/plan.py +1 -1
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/up.py +2 -2
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/docker.py +21 -13
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/utils.py +12 -1
- {supervaizer-0.10.0 → supervaizer-0.10.1}/.gitignore +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/LICENSE.md +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/README.md +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/pyproject.toml +1 -1
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/account.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/account_service.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/routes.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/static/js/job-start-form.js +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agent_detail.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agents.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/agents_grid.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/base.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/case_detail.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/cases_list.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/cases_table.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/console.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/dashboard.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/job_detail.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/job_start_test.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/jobs_list.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/jobs_table.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/navigation.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/recent_activity.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/server.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/server_status_cards.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/supervaize_instructions.html +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/agent.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/case.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/cli.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/common.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/cli.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/clean.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/down.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/local.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/commands/status.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/driver_factory.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/aws_app_runner.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/base.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/cloud_run.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/drivers/do_app_platform.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/health.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/state.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/Dockerfile.template +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/debug_env.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/docker-compose.yml.template +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/dockerignore.template +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/entrypoint.sh +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/event.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/examples/controller_template.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/instructions.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/job.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/job_service.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/lifecycle.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/parameter.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/__init__.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/model.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/protocol/a2a/routes.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/py.typed +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/routes.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/server.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/server_utils.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/storage.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/telemetry.py +0 -0
- {supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/utils/__init__.py +0 -0
- {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.
|
|
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'
|
|
@@ -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.
|
|
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,
|
|
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",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/job_start_test.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/recent_activity.html
RENAMED
|
File without changes
|
|
File without changes
|
{supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/admin/templates/server_status_cards.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/Dockerfile.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervaizer-0.10.0 → supervaizer-0.10.1}/src/supervaizer/deploy/templates/dockerignore.template
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|