supervaizer 0.10.0__py3-none-any.whl → 0.10.3__py3-none-any.whl
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/__version__.py +1 -1
- supervaizer/deploy/commands/plan.py +1 -1
- supervaizer/deploy/commands/up.py +2 -2
- supervaizer/deploy/docker.py +21 -14
- supervaizer/deploy/utils.py +12 -1
- {supervaizer-0.10.0.dist-info → supervaizer-0.10.3.dist-info}/METADATA +25 -24
- {supervaizer-0.10.0.dist-info → supervaizer-0.10.3.dist-info}/RECORD +10 -10
- {supervaizer-0.10.0.dist-info → supervaizer-0.10.3.dist-info}/WHEEL +0 -0
- {supervaizer-0.10.0.dist-info → supervaizer-0.10.3.dist-info}/entry_points.txt +0 -0
- {supervaizer-0.10.0.dist-info → supervaizer-0.10.3.dist-info}/licenses/LICENSE.md +0 -0
supervaizer/__version__.py
CHANGED
|
@@ -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
|
|
supervaizer/deploy/docker.py
CHANGED
|
@@ -11,12 +11,9 @@ This module handles Docker-related operations for deployment.
|
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
import os
|
|
14
|
-
import subprocess
|
|
15
14
|
from pathlib import Path
|
|
16
15
|
from typing import Optional
|
|
17
16
|
|
|
18
|
-
from docker import DockerClient
|
|
19
|
-
from docker.errors import APIError, BuildError, DockerException
|
|
20
17
|
from rich.console import Console
|
|
21
18
|
|
|
22
19
|
from supervaizer.common import log
|
|
@@ -85,6 +82,14 @@ class DockerManager:
|
|
|
85
82
|
"""Initialize Docker manager."""
|
|
86
83
|
self.client = None
|
|
87
84
|
if require_docker:
|
|
85
|
+
try:
|
|
86
|
+
from docker import DockerClient
|
|
87
|
+
from docker.errors import DockerException
|
|
88
|
+
except ImportError:
|
|
89
|
+
raise RuntimeError(
|
|
90
|
+
"Docker package not installed. Install with: pip install supervaizer[deploy]"
|
|
91
|
+
) from None
|
|
92
|
+
|
|
88
93
|
try:
|
|
89
94
|
self.client = DockerClient.from_env()
|
|
90
95
|
self.client.ping() # Test connection
|
|
@@ -220,6 +225,8 @@ class DockerManager:
|
|
|
220
225
|
build_args: Optional[dict] = None,
|
|
221
226
|
) -> str:
|
|
222
227
|
"""Build Docker image and return the image ID."""
|
|
228
|
+
from docker.errors import APIError, BuildError, DockerException
|
|
229
|
+
|
|
223
230
|
if self.client is None:
|
|
224
231
|
raise RuntimeError(
|
|
225
232
|
"Docker client not available. Initialize DockerManager with require_docker=True"
|
|
@@ -296,6 +303,8 @@ class DockerManager:
|
|
|
296
303
|
|
|
297
304
|
def tag_image(self, source_tag: str, target_tag: str) -> None:
|
|
298
305
|
"""Tag a Docker image."""
|
|
306
|
+
from docker.errors import DockerException
|
|
307
|
+
|
|
299
308
|
if self.client is None:
|
|
300
309
|
raise RuntimeError(
|
|
301
310
|
"Docker client not available. Initialize DockerManager with require_docker=True"
|
|
@@ -311,6 +320,8 @@ class DockerManager:
|
|
|
311
320
|
|
|
312
321
|
def push_image(self, tag: str) -> None:
|
|
313
322
|
"""Push Docker image to registry."""
|
|
323
|
+
from docker.errors import DockerException
|
|
324
|
+
|
|
314
325
|
if self.client is None:
|
|
315
326
|
raise RuntimeError(
|
|
316
327
|
"Docker client not available. Initialize DockerManager with require_docker=True"
|
|
@@ -335,6 +346,8 @@ class DockerManager:
|
|
|
335
346
|
|
|
336
347
|
def get_image_digest(self, tag: str) -> Optional[str]:
|
|
337
348
|
"""Get the digest of a Docker image."""
|
|
349
|
+
from docker.errors import DockerException
|
|
350
|
+
|
|
338
351
|
if self.client is None:
|
|
339
352
|
raise RuntimeError(
|
|
340
353
|
"Docker client not available. Initialize DockerManager with require_docker=True"
|
|
@@ -352,19 +365,13 @@ class DockerManager:
|
|
|
352
365
|
def ensure_docker_running() -> bool:
|
|
353
366
|
"""Check if Docker is running and accessible."""
|
|
354
367
|
try:
|
|
368
|
+
from docker import DockerClient
|
|
369
|
+
from docker.errors import DockerException
|
|
370
|
+
|
|
355
371
|
client = DockerClient.from_env()
|
|
356
372
|
client.ping()
|
|
357
373
|
return True
|
|
374
|
+
except ImportError:
|
|
375
|
+
return False
|
|
358
376
|
except DockerException:
|
|
359
377
|
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"
|
supervaizer/deploy/utils.py
CHANGED
|
@@ -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"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: supervaizer
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.3
|
|
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
|
|
@@ -14,46 +14,47 @@ Classifier: Intended Audience :: Developers
|
|
|
14
14
|
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
18
|
Requires-Python: >=3.12
|
|
18
19
|
Requires-Dist: art>=6.5
|
|
19
|
-
Requires-Dist: cryptography>=46.0.
|
|
20
|
+
Requires-Dist: cryptography>=46.0.3
|
|
20
21
|
Requires-Dist: demjson3>=3.0.6
|
|
21
|
-
Requires-Dist: deprecated>=1.
|
|
22
|
-
Requires-Dist: fastapi>=0.
|
|
22
|
+
Requires-Dist: deprecated>=1.3.1
|
|
23
|
+
Requires-Dist: fastapi>=0.128.0
|
|
23
24
|
Requires-Dist: httpx>=0.28.1
|
|
24
25
|
Requires-Dist: jinja2>=3.1.6
|
|
25
26
|
Requires-Dist: loguru>=0.7.3
|
|
26
|
-
Requires-Dist: orjson>=3.11.
|
|
27
|
-
Requires-Dist: packaging>=
|
|
28
|
-
Requires-Dist:
|
|
27
|
+
Requires-Dist: orjson>=3.11.5
|
|
28
|
+
Requires-Dist: packaging>=26.0
|
|
29
|
+
Requires-Dist: psutil>=7.2.1
|
|
30
|
+
Requires-Dist: pydantic>=2.12.5
|
|
29
31
|
Requires-Dist: python-slugify>=8.0.4
|
|
30
32
|
Requires-Dist: pyyaml>=6.0.3
|
|
31
|
-
Requires-Dist: rich>=14.1
|
|
33
|
+
Requires-Dist: rich>=14.3.1
|
|
32
34
|
Requires-Dist: shortuuid>=1.0.13
|
|
33
|
-
Requires-Dist: sse-starlette>=3.0
|
|
35
|
+
Requires-Dist: sse-starlette>=3.2.0
|
|
34
36
|
Requires-Dist: tinydb>=4.8.1
|
|
35
|
-
Requires-Dist: typer>=0.
|
|
36
|
-
Requires-Dist: uvicorn>=0.
|
|
37
|
+
Requires-Dist: typer>=0.21.1
|
|
38
|
+
Requires-Dist: uvicorn>=0.40.0
|
|
37
39
|
Provides-Extra: deploy
|
|
38
|
-
Requires-Dist: boto3>=1.
|
|
40
|
+
Requires-Dist: boto3>=1.42.30; extra == 'deploy'
|
|
39
41
|
Requires-Dist: docker>=7.0.0; extra == 'deploy'
|
|
40
|
-
Requires-Dist: google-cloud-artifact-registry>=1.
|
|
41
|
-
Requires-Dist: google-cloud-run>=0.
|
|
42
|
-
Requires-Dist: google-cloud-secret-manager>=2.
|
|
43
|
-
Requires-Dist: psutil>=7.1.0; extra == 'deploy'
|
|
42
|
+
Requires-Dist: google-cloud-artifact-registry>=1.19.0; extra == 'deploy'
|
|
43
|
+
Requires-Dist: google-cloud-run>=0.15.0; extra == 'deploy'
|
|
44
|
+
Requires-Dist: google-cloud-secret-manager>=2.26.0; extra == 'deploy'
|
|
44
45
|
Provides-Extra: dev
|
|
45
|
-
Requires-Dist: hatch>=1.
|
|
46
|
-
Requires-Dist: jsonschema>=4.
|
|
47
|
-
Requires-Dist: mypy>=1.
|
|
48
|
-
Requires-Dist: pre-commit>=
|
|
49
|
-
Requires-Dist: pytest-asyncio>=1.
|
|
46
|
+
Requires-Dist: hatch>=1.16.3; extra == 'dev'
|
|
47
|
+
Requires-Dist: jsonschema>=4.26.0; extra == 'dev'
|
|
48
|
+
Requires-Dist: mypy>=1.19.1; extra == 'dev'
|
|
49
|
+
Requires-Dist: pre-commit>=4.5.1; extra == 'dev'
|
|
50
|
+
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
|
|
50
51
|
Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
|
|
51
52
|
Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
|
|
52
53
|
Requires-Dist: pytest-sugar>=1.1.1; extra == 'dev'
|
|
53
|
-
Requires-Dist: pytest>=8.
|
|
54
|
+
Requires-Dist: pytest>=8.5.0; extra == 'dev'
|
|
54
55
|
Requires-Dist: respx>=0.22.0; extra == 'dev'
|
|
55
|
-
Requires-Dist: ruff>=0.
|
|
56
|
-
Requires-Dist: types-deprecated>=1.
|
|
56
|
+
Requires-Dist: ruff>=0.14.14; extra == 'dev'
|
|
57
|
+
Requires-Dist: types-deprecated>=1.3.1; extra == 'dev'
|
|
57
58
|
Requires-Dist: types-python-slugify>=8.0.2.20240310; extra == 'dev'
|
|
58
59
|
Description-Content-Type: text/markdown
|
|
59
60
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
supervaizer/__init__.py,sha256=eBbGjduMBH-FDjcGlSqeR4Kf4uo60Cf1DrRur8VGkJo,2341
|
|
2
|
-
supervaizer/__version__.py,sha256=
|
|
2
|
+
supervaizer/__version__.py,sha256=opyEmLJVOqn64wDoz2fUdph_cVyLWP_l3F7Ohivnbpk,348
|
|
3
3
|
supervaizer/account.py,sha256=-K1pd590Lp2TncZ2jn442kBLxnm482G3WnQavVFxZ1s,11102
|
|
4
4
|
supervaizer/account_service.py,sha256=z4lw8qp8XvCrU6Ndf4VHRnQwY_071410ts5_7E8YDAs,3046
|
|
5
5
|
supervaizer/agent.py,sha256=Clenvdr_v-lV7_v6YCcevp8dj5JUNvpTWrBZBYM82lg,36509
|
|
@@ -39,18 +39,18 @@ supervaizer/admin/templates/server_status_cards.html,sha256=yJ36hkfgQpscYkiaodFD
|
|
|
39
39
|
supervaizer/admin/templates/supervaize_instructions.html,sha256=LTLla1xgIeLpFf7bond_lxH5qdQQ2ak52Fd7hqChi1I,10225
|
|
40
40
|
supervaizer/deploy/__init__.py,sha256=DvngGQu8tS_Yz5FU4kKCvPpod11IGCtZWkUNeB5aVHI,557
|
|
41
41
|
supervaizer/deploy/cli.py,sha256=pFsQjbALSkKiZ2_OGzNZJzX_vrshGyAzdf1jGShGztk,9841
|
|
42
|
-
supervaizer/deploy/docker.py,sha256=
|
|
42
|
+
supervaizer/deploy/docker.py,sha256=FLMKHOnbnjMFTcULdRdgwKJwT-q8JtVwbN1iSemh21w,13810
|
|
43
43
|
supervaizer/deploy/driver_factory.py,sha256=Qm6DYVUfV3mlRHUglk5YlslGg6JYZ754uKeoiyxXw10,1487
|
|
44
44
|
supervaizer/deploy/health.py,sha256=vh4SMOxy43QXi1fanQjWfWqoGTy_z1VXwwfy4Fq2bHg,13764
|
|
45
45
|
supervaizer/deploy/state.py,sha256=DOpHOoU3IuaI2StE6G0LqzA1HiSDiqz2WDu2xexOYvc,7734
|
|
46
|
-
supervaizer/deploy/utils.py,sha256=
|
|
46
|
+
supervaizer/deploy/utils.py,sha256=YkhMz1bniTm0v3G4xpjMDgPr-n4keekz6wVesSRvTnU,1722
|
|
47
47
|
supervaizer/deploy/commands/__init__.py,sha256=uhdQpJ2Hly2YkkSBXKvGy77eyU0tIhNWD59C1x_6DPQ,365
|
|
48
48
|
supervaizer/deploy/commands/clean.py,sha256=zm76hmGTSSFAZdcQhVvn71secT4sE5IQqBM0zTDYC_g,9588
|
|
49
49
|
supervaizer/deploy/commands/down.py,sha256=Vo2Dw71BiTGSMCsjWNoq_oB_oecdV4oDnQ2LwIrv7oo,3929
|
|
50
50
|
supervaizer/deploy/commands/local.py,sha256=Ds2ECuyPeumA-G0OSoQmN0VM8iZ4CNqacWMSzy0r30k,16229
|
|
51
|
-
supervaizer/deploy/commands/plan.py,sha256
|
|
51
|
+
supervaizer/deploy/commands/plan.py,sha256=TjtEFGWlQrgyWvT4B7Ly8097jM--nQnkYCLaO65eNq0,5260
|
|
52
52
|
supervaizer/deploy/commands/status.py,sha256=sgHg0J8qJIuNYaCTlkMUggJ9Q4Cq1W5N-EvZXG9Iif0,5816
|
|
53
|
-
supervaizer/deploy/commands/up.py,sha256=
|
|
53
|
+
supervaizer/deploy/commands/up.py,sha256=5jmNB-n-TqLMVYRgs6KZ2VCt7DKGDwFukwzShtW3o2s,9292
|
|
54
54
|
supervaizer/deploy/drivers/__init__.py,sha256=NOHsmNYea7ARfuAhbuP4CC87BtMfKKDyC-Uz5sh2PHI,974
|
|
55
55
|
supervaizer/deploy/drivers/aws_app_runner.py,sha256=rABJOyjUSJUKFCOTWV92SNLaJK4oKpEmaljHcnQO3G0,22170
|
|
56
56
|
supervaizer/deploy/drivers/base.py,sha256=2MPsw6tgXBILCeHnYXuZtBYFQriwy41Iib8iQPLbDFQ,5267
|
|
@@ -69,8 +69,8 @@ supervaizer/protocol/a2a/routes.py,sha256=rkQTNBD1NTYimKCb8iOk4bVf9ldDP1LqHfOsyh
|
|
|
69
69
|
supervaizer/utils/__init__.py,sha256=fd0NFwN_cen3QPms2SOnuz4jcetay3f_31dit2As7EA,458
|
|
70
70
|
supervaizer/utils/version_check.py,sha256=-tsOURpHVh0LNTbpQsyJDJENKszC-NzXDSO_EToEQPE,1893
|
|
71
71
|
supervaizer/py.typed,sha256=bHhvLx7c6MqrzXVPbdK3qAOcSxzp4wDtTx4QifMC2EY,74
|
|
72
|
-
supervaizer-0.10.
|
|
73
|
-
supervaizer-0.10.
|
|
74
|
-
supervaizer-0.10.
|
|
75
|
-
supervaizer-0.10.
|
|
76
|
-
supervaizer-0.10.
|
|
72
|
+
supervaizer-0.10.3.dist-info/METADATA,sha256=TTjIjX8FamivrCcl9rQoLGDkoXxWUcFy9huVDgBN-5w,12648
|
|
73
|
+
supervaizer-0.10.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
74
|
+
supervaizer-0.10.3.dist-info/entry_points.txt,sha256=vL_IBR_AeEI2u2-6YL4PY9k2Mar4-gprG8-UxERWjmg,52
|
|
75
|
+
supervaizer-0.10.3.dist-info/licenses/LICENSE.md,sha256=dmdnt1vfpxNPr8Lt0BnxKE5uzUwK3CWTthTUStgOXjY,15327
|
|
76
|
+
supervaizer-0.10.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|