vantage6 5.0.0a38__py3-none-any.whl → 5.0.0a40__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.
Potentially problematic release.
This version of vantage6 might be problematic. Click here for more details.
- vantage6/cli/algorithm/generate_algorithm_json.py +2 -1
- vantage6/cli/common/decorator.py +4 -3
- vantage6/cli/common/new.py +3 -2
- vantage6/cli/common/stop.py +3 -2
- vantage6/cli/configuration_create.py +3 -2
- vantage6/cli/node/common/__init__.py +31 -6
- vantage6/cli/node/create_private_key.py +11 -10
- vantage6/cli/node/set_api_key.py +12 -6
- vantage6/cli/server/import_.py +85 -17
- vantage6/cli/template/node_config.j2 +1 -1
- {vantage6-5.0.0a38.dist-info → vantage6-5.0.0a40.dist-info}/METADATA +3 -3
- {vantage6-5.0.0a38.dist-info → vantage6-5.0.0a40.dist-info}/RECORD +14 -14
- {vantage6-5.0.0a38.dist-info → vantage6-5.0.0a40.dist-info}/WHEEL +0 -0
- {vantage6-5.0.0a38.dist-info → vantage6-5.0.0a40.dist-info}/entry_points.txt +0 -0
|
@@ -3,6 +3,7 @@ import inspect
|
|
|
3
3
|
import json
|
|
4
4
|
import os
|
|
5
5
|
import sys
|
|
6
|
+
from collections.abc import Callable
|
|
6
7
|
from inspect import getmembers, isfunction, ismodule, signature
|
|
7
8
|
from pathlib import Path
|
|
8
9
|
from types import ModuleType, UnionType
|
|
@@ -62,7 +63,7 @@ class FunctionArgumentType(StrEnumBase):
|
|
|
62
63
|
class Function:
|
|
63
64
|
"""Class to handle a function and its JSON representation"""
|
|
64
65
|
|
|
65
|
-
def __init__(self, func:
|
|
66
|
+
def __init__(self, func: Callable):
|
|
66
67
|
self.func = func
|
|
67
68
|
self.name = func.__name__
|
|
68
69
|
self.signature = signature(func)
|
vantage6/cli/common/decorator.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
1
2
|
from functools import wraps
|
|
2
3
|
from pathlib import Path
|
|
3
4
|
|
|
@@ -17,7 +18,7 @@ def click_insert_context(
|
|
|
17
18
|
include_system_folders: bool = False,
|
|
18
19
|
is_sandbox: bool = False,
|
|
19
20
|
sandbox_param: str | None = None,
|
|
20
|
-
) ->
|
|
21
|
+
) -> Callable:
|
|
21
22
|
"""
|
|
22
23
|
Supply the Click function with an additional context parameter. The context
|
|
23
24
|
is passed to the function as the first argument.
|
|
@@ -49,7 +50,7 @@ def click_insert_context(
|
|
|
49
50
|
>>> pass
|
|
50
51
|
"""
|
|
51
52
|
|
|
52
|
-
def protection_decorator(func:
|
|
53
|
+
def protection_decorator(func: Callable) -> Callable:
|
|
53
54
|
@click.option("-n", "--name", default=None, help="Name of the configuration.")
|
|
54
55
|
@click.option(
|
|
55
56
|
"-c",
|
|
@@ -73,7 +74,7 @@ def click_insert_context(
|
|
|
73
74
|
@wraps(func)
|
|
74
75
|
def decorator(
|
|
75
76
|
name: str, config: str, system_folders: bool, *args, **kwargs
|
|
76
|
-
) ->
|
|
77
|
+
) -> Callable:
|
|
77
78
|
"""
|
|
78
79
|
Decorator function that adds the context to the function.
|
|
79
80
|
|
vantage6/cli/common/new.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
1
2
|
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
from colorama import Fore, Style
|
|
@@ -13,7 +14,7 @@ from vantage6.cli.utils import check_config_name_allowed, prompt_config_name
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def new(
|
|
16
|
-
config_producing_func:
|
|
17
|
+
config_producing_func: Callable,
|
|
17
18
|
config_producing_func_args: tuple,
|
|
18
19
|
name: str,
|
|
19
20
|
system_folders: bool,
|
|
@@ -27,7 +28,7 @@ def new(
|
|
|
27
28
|
|
|
28
29
|
Parameters
|
|
29
30
|
----------
|
|
30
|
-
config_producing_func :
|
|
31
|
+
config_producing_func : Callable
|
|
31
32
|
Function to generate the configuration
|
|
32
33
|
config_producing_func_args : tuple
|
|
33
34
|
Arguments to pass to the config producing function
|
vantage6/cli/common/stop.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import subprocess
|
|
4
|
+
from collections.abc import Callable
|
|
4
5
|
|
|
5
6
|
from colorama import Fore, Style
|
|
6
7
|
|
|
@@ -19,7 +20,7 @@ from vantage6.cli.utils import validate_input_cmd_args
|
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
def execute_stop(
|
|
22
|
-
stop_function:
|
|
23
|
+
stop_function: Callable,
|
|
23
24
|
instance_type: InstanceType,
|
|
24
25
|
infra_component: InfraComponentName,
|
|
25
26
|
stop_all: bool,
|
|
@@ -35,7 +36,7 @@ def execute_stop(
|
|
|
35
36
|
|
|
36
37
|
Parameters
|
|
37
38
|
----------
|
|
38
|
-
stop_function :
|
|
39
|
+
stop_function : Callable
|
|
39
40
|
The function to stop the service.
|
|
40
41
|
instance_type : InstanceType
|
|
41
42
|
The instance type of the service.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
1
2
|
from pathlib import Path
|
|
2
3
|
|
|
3
4
|
import questionary as q
|
|
@@ -127,7 +128,7 @@ def _add_production_server_config(config: dict) -> dict:
|
|
|
127
128
|
|
|
128
129
|
|
|
129
130
|
def make_configuration(
|
|
130
|
-
config_producing_func:
|
|
131
|
+
config_producing_func: Callable,
|
|
131
132
|
config_producing_func_args: tuple,
|
|
132
133
|
type_: InstanceType,
|
|
133
134
|
instance_name: str,
|
|
@@ -139,7 +140,7 @@ def make_configuration(
|
|
|
139
140
|
|
|
140
141
|
Parameters
|
|
141
142
|
----------
|
|
142
|
-
config_producing_func :
|
|
143
|
+
config_producing_func : Callable
|
|
143
144
|
Function to generate the configuration
|
|
144
145
|
config_producing_func_args : tuple
|
|
145
146
|
Arguments to pass to the config producing function
|
|
@@ -12,6 +12,7 @@ from vantage6.common.globals import (
|
|
|
12
12
|
APPNAME,
|
|
13
13
|
HTTP_LOCALHOST,
|
|
14
14
|
InstanceType,
|
|
15
|
+
Ports,
|
|
15
16
|
RequiredNodeEnvVars,
|
|
16
17
|
)
|
|
17
18
|
|
|
@@ -21,6 +22,16 @@ from vantage6.cli.configuration_create import select_configuration_questionnaire
|
|
|
21
22
|
from vantage6.cli.context.node import NodeContext
|
|
22
23
|
|
|
23
24
|
|
|
25
|
+
def _convert_k8s_url_to_localhost(url: str) -> str:
|
|
26
|
+
"""
|
|
27
|
+
Convert a Kubernetes URL to a localhost URL.
|
|
28
|
+
"""
|
|
29
|
+
if "svc.cluster.local" in url:
|
|
30
|
+
port_and_api_path = url.split(":")[-1]
|
|
31
|
+
return f"{HTTP_LOCALHOST}:{port_and_api_path}"
|
|
32
|
+
return url
|
|
33
|
+
|
|
34
|
+
|
|
24
35
|
def create_client(ctx: NodeContext) -> UserClient:
|
|
25
36
|
"""
|
|
26
37
|
Create a client instance.
|
|
@@ -34,17 +45,31 @@ def create_client(ctx: NodeContext) -> UserClient:
|
|
|
34
45
|
UserClient
|
|
35
46
|
vantage6 client
|
|
36
47
|
"""
|
|
37
|
-
host = ctx.config["
|
|
48
|
+
host = ctx.config["node"]["server"]["url"]
|
|
49
|
+
port = ctx.config["node"]["server"]["port"]
|
|
50
|
+
api_path = ctx.config["node"]["server"]["path"]
|
|
38
51
|
# if the server is run locally, we need to use localhost here instead of
|
|
39
52
|
# the host address of docker
|
|
40
53
|
if host in ["http://host.docker.internal", "http://172.17.0.1"]:
|
|
41
54
|
host = HTTP_LOCALHOST
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
55
|
+
|
|
56
|
+
url = f"{host}:{port}{api_path}"
|
|
57
|
+
|
|
58
|
+
auth_url = ctx.config.get("node", {}).get("keycloakUrl", None) or os.environ.get(
|
|
59
|
+
RequiredNodeEnvVars.KEYCLOAK_URL.value
|
|
60
|
+
)
|
|
61
|
+
# append the port to the auth URL as it is not included in the config
|
|
62
|
+
auth_url = f"{auth_url}:{Ports.DEV_AUTH.value}"
|
|
63
|
+
|
|
64
|
+
# if the server is a Kubernetes address, we need to use localhost because here
|
|
65
|
+
# we are connecting from the CLI outside the cluster
|
|
66
|
+
url = _convert_k8s_url_to_localhost(url)
|
|
67
|
+
auth_url = _convert_k8s_url_to_localhost(auth_url)
|
|
68
|
+
|
|
69
|
+
info(f"Connecting to server at '{url}' using auth URL '{auth_url}'")
|
|
45
70
|
return UserClient(
|
|
46
|
-
server_url=
|
|
47
|
-
auth_url=
|
|
71
|
+
server_url=url,
|
|
72
|
+
auth_url=auth_url,
|
|
48
73
|
log_level="warn",
|
|
49
74
|
)
|
|
50
75
|
|
|
@@ -11,10 +11,12 @@ from vantage6.common import (
|
|
|
11
11
|
warning,
|
|
12
12
|
)
|
|
13
13
|
from vantage6.common.encryption import RSACryptor
|
|
14
|
+
from vantage6.common.globals import InstanceType
|
|
14
15
|
|
|
16
|
+
from vantage6.cli.configuration_create import select_configuration_questionnaire
|
|
15
17
|
from vantage6.cli.context.node import NodeContext
|
|
16
18
|
from vantage6.cli.globals import DEFAULT_NODE_SYSTEM_FOLDERS as N_FOL
|
|
17
|
-
from vantage6.cli.node.common import create_client_and_authenticate
|
|
19
|
+
from vantage6.cli.node.common import create_client_and_authenticate
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
@click.command()
|
|
@@ -80,12 +82,13 @@ def cli_node_create_private_key(
|
|
|
80
82
|
if config:
|
|
81
83
|
name = Path(config).stem
|
|
82
84
|
ctx = NodeContext(name, system_folders, config)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
elif not name:
|
|
86
|
+
try:
|
|
87
|
+
name = select_configuration_questionnaire(InstanceType.NODE, system_folders)
|
|
88
|
+
except Exception:
|
|
89
|
+
error("No configurations could be found!")
|
|
90
|
+
exit(1)
|
|
91
|
+
ctx = NodeContext(name, system_folders)
|
|
89
92
|
|
|
90
93
|
# Authenticate with the server to obtain organization name if it wasn't
|
|
91
94
|
# provided
|
|
@@ -138,9 +141,7 @@ def cli_node_create_private_key(
|
|
|
138
141
|
|
|
139
142
|
# update config file
|
|
140
143
|
info("Updating configuration")
|
|
141
|
-
|
|
142
|
-
# Fix when reimplementing this in v5
|
|
143
|
-
ctx.config["encryption"]["private_key"] = str(file_)
|
|
144
|
+
ctx.config["node"]["encryption"]["private_key"] = str(file_)
|
|
144
145
|
ctx.config_manager.put(ctx.config)
|
|
145
146
|
ctx.config_manager.save(ctx.config_file)
|
|
146
147
|
|
vantage6/cli/node/set_api_key.py
CHANGED
|
@@ -2,11 +2,14 @@ import click
|
|
|
2
2
|
import questionary as q
|
|
3
3
|
|
|
4
4
|
from vantage6.common import ensure_config_dir_writable, error, info
|
|
5
|
+
from vantage6.common.globals import InstanceType
|
|
5
6
|
|
|
6
|
-
from vantage6.cli.configuration_create import
|
|
7
|
+
from vantage6.cli.configuration_create import (
|
|
8
|
+
NodeConfigurationManager,
|
|
9
|
+
select_configuration_questionnaire,
|
|
10
|
+
)
|
|
7
11
|
from vantage6.cli.context.node import NodeContext
|
|
8
12
|
from vantage6.cli.globals import DEFAULT_NODE_SYSTEM_FOLDERS as N_FOL
|
|
9
|
-
from vantage6.cli.node.common import select_node
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
@click.command()
|
|
@@ -31,7 +34,12 @@ def cli_node_set_api_key(name: str, api_key: str, system_folders: bool) -> None:
|
|
|
31
34
|
Put a new API key into the node configuration file
|
|
32
35
|
"""
|
|
33
36
|
# select node name
|
|
34
|
-
|
|
37
|
+
if not name:
|
|
38
|
+
try:
|
|
39
|
+
name = select_configuration_questionnaire(InstanceType.NODE, system_folders)
|
|
40
|
+
except Exception:
|
|
41
|
+
error("No configurations could be found!")
|
|
42
|
+
exit(1)
|
|
35
43
|
|
|
36
44
|
# Check that we can write in the config folder
|
|
37
45
|
if not ensure_config_dir_writable(system_folders):
|
|
@@ -50,9 +58,7 @@ def cli_node_set_api_key(name: str, api_key: str, system_folders: bool) -> None:
|
|
|
50
58
|
conf_mgr = NodeConfigurationManager.from_file(ctx.config_file)
|
|
51
59
|
|
|
52
60
|
# set new api key, and save the file
|
|
53
|
-
ctx.config["
|
|
54
|
-
# TODO v5+ this probably messes up the current config as the template is used...
|
|
55
|
-
# Fix when reimplementing this in v5
|
|
61
|
+
ctx.config["node"]["apiKey"] = api_key
|
|
56
62
|
conf_mgr.put(ctx.config)
|
|
57
63
|
conf_mgr.save(ctx.config_file)
|
|
58
64
|
info(f"Your new API key has been uploaded to the config file {ctx.config_file}.")
|
vantage6/cli/server/import_.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import click
|
|
2
2
|
import requests
|
|
3
3
|
import yaml
|
|
4
|
+
from marshmallow import Schema, ValidationError, fields, post_load
|
|
4
5
|
|
|
5
6
|
from vantage6.common import error, info
|
|
6
7
|
from vantage6.common.globals import (
|
|
@@ -64,7 +65,8 @@ def cli_server_import(ctx: ServerContext, file: str, drop_all: bool) -> None:
|
|
|
64
65
|
info("Loading and validating import file")
|
|
65
66
|
with open(file, "r") as f:
|
|
66
67
|
import_data = yaml.safe_load(f)
|
|
67
|
-
|
|
68
|
+
|
|
69
|
+
_check_import_file(import_data)
|
|
68
70
|
|
|
69
71
|
client = UserClient(
|
|
70
72
|
server_url=f"{ctx.config['server']['baseUrl']}{ctx.config['server']['apiPath']}",
|
|
@@ -77,7 +79,9 @@ def cli_server_import(ctx: ServerContext, file: str, drop_all: bool) -> None:
|
|
|
77
79
|
info("Authenticate using admin credentials (opens browser for login)")
|
|
78
80
|
client.authenticate()
|
|
79
81
|
|
|
80
|
-
#
|
|
82
|
+
# Note: we do not validate that the user has the correct permissions to import data.
|
|
83
|
+
# As the user has access to the `v6 server import` command, they already have
|
|
84
|
+
# access to the server+database.
|
|
81
85
|
|
|
82
86
|
if drop_all:
|
|
83
87
|
info("Dropping all existing data")
|
|
@@ -91,11 +95,12 @@ def cli_server_import(ctx: ServerContext, file: str, drop_all: bool) -> None:
|
|
|
91
95
|
for organization in import_data["organizations"]:
|
|
92
96
|
org = client.organization.create(
|
|
93
97
|
name=organization["name"],
|
|
94
|
-
address1=organization
|
|
95
|
-
address2=organization
|
|
96
|
-
zipcode=organization
|
|
97
|
-
country=organization
|
|
98
|
-
domain=organization
|
|
98
|
+
address1=organization.get("address1", ""),
|
|
99
|
+
address2=organization.get("address2", ""),
|
|
100
|
+
zipcode=str(organization.get("zipcode", "")),
|
|
101
|
+
country=organization.get("country", ""),
|
|
102
|
+
domain=organization.get("domain", ""),
|
|
103
|
+
public_key=organization.get("public_key", ""),
|
|
99
104
|
)
|
|
100
105
|
organizations.append(org)
|
|
101
106
|
|
|
@@ -152,16 +157,79 @@ def _drop_all(client: UserClient) -> None:
|
|
|
152
157
|
info(f"Deleting collaboration {collaboration['name']}")
|
|
153
158
|
client.collaboration.delete(collaboration["id"], delete_dependents=True)
|
|
154
159
|
|
|
155
|
-
#
|
|
156
|
-
|
|
157
|
-
while users := [u for u in client.user.list()["data"] if u["username"] != "admin"]:
|
|
158
|
-
for user in users:
|
|
159
|
-
info(f"Deleting user {user['username']}")
|
|
160
|
-
client.user.delete(user["id"])
|
|
161
|
-
|
|
162
|
-
while orgs := [
|
|
163
|
-
o for o in client.organization.list()["data"] if o["name"] != "root"
|
|
164
|
-
]:
|
|
160
|
+
# remove all organizations but keep the root organization
|
|
161
|
+
while orgs := [o for o in client.organization.list()["data"] if o["id"] != 1]:
|
|
165
162
|
for org in orgs:
|
|
166
163
|
info(f"Deleting organization {org['name']}")
|
|
167
164
|
client.organization.delete(org["id"], delete_dependents=True)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class StrOrInt(fields.Field):
|
|
168
|
+
"""Field that can be a string or an integer"""
|
|
169
|
+
|
|
170
|
+
def _serialize(self, value, attr, obj, **kwargs):
|
|
171
|
+
if isinstance(value, str):
|
|
172
|
+
return value
|
|
173
|
+
elif isinstance(value, int):
|
|
174
|
+
return str(value)
|
|
175
|
+
else:
|
|
176
|
+
raise ValidationError("Value must be a string or an integer")
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class UserSchema(Schema):
|
|
180
|
+
username = fields.Str(required=True)
|
|
181
|
+
password = fields.Str(required=True)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class OrganizationSchema(Schema):
|
|
185
|
+
name = fields.Str(required=True)
|
|
186
|
+
address1 = fields.Str(missing="")
|
|
187
|
+
address2 = fields.Str(missing="")
|
|
188
|
+
zipcode = StrOrInt(missing="")
|
|
189
|
+
country = fields.Str(missing="")
|
|
190
|
+
domain = fields.Str(missing="")
|
|
191
|
+
public_key = fields.Str(missing="")
|
|
192
|
+
users = fields.List(fields.Nested(UserSchema), missing=[])
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class ParticipantSchema(Schema):
|
|
196
|
+
name = fields.Str(required=True)
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
class CollaborationSchema(Schema):
|
|
200
|
+
name = fields.Str(required=True)
|
|
201
|
+
participants = fields.List(fields.Nested(ParticipantSchema), required=True)
|
|
202
|
+
encrypted = fields.Bool(missing=False)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
class ImportDataSchema(Schema):
|
|
206
|
+
organizations = fields.List(fields.Nested(OrganizationSchema), missing=[])
|
|
207
|
+
collaborations = fields.List(fields.Nested(CollaborationSchema), missing=[])
|
|
208
|
+
|
|
209
|
+
@post_load
|
|
210
|
+
def validate_participants_exist(self, data, **kwargs):
|
|
211
|
+
"""Validate that all participants exist in organizations"""
|
|
212
|
+
org_names = {org["name"] for org in data.get("organizations", [])}
|
|
213
|
+
|
|
214
|
+
for collaboration in data.get("collaborations", []):
|
|
215
|
+
for participant in collaboration.get("participants", []):
|
|
216
|
+
if participant["name"] not in org_names:
|
|
217
|
+
raise ValidationError(
|
|
218
|
+
f"Participant {participant['name']} not found in organizations",
|
|
219
|
+
field_name="collaborations",
|
|
220
|
+
)
|
|
221
|
+
return data
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def _check_import_file(import_data: dict) -> dict:
|
|
225
|
+
"""
|
|
226
|
+
Validate import file using Marshmallow schemas.
|
|
227
|
+
Returns the validated and cleaned data.
|
|
228
|
+
"""
|
|
229
|
+
schema = ImportDataSchema()
|
|
230
|
+
try:
|
|
231
|
+
return schema.load(import_data)
|
|
232
|
+
except ValidationError as err:
|
|
233
|
+
# Handle validation errors gracefully
|
|
234
|
+
error(f"Validation error: {err.messages}")
|
|
235
|
+
exit(1)
|
|
@@ -90,7 +90,7 @@ node:
|
|
|
90
90
|
enabled: {{ node.encryption.enabled | default(false) }}
|
|
91
91
|
|
|
92
92
|
# Location to the private key file. Required if encryption is enabled.
|
|
93
|
-
{% if node.encryption.
|
|
93
|
+
{% if node.encryption.private_key is defined and node.encryption.private_key != '' %}
|
|
94
94
|
private_key: {{ node.encryption.private_key | default('/path/to/private_key.pem') }}
|
|
95
95
|
{% else %}
|
|
96
96
|
# private_key: /path/to/private_key.pem
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vantage6
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0a40
|
|
4
4
|
Summary: vantage6 command line interface
|
|
5
5
|
Author: Vantage6 Team
|
|
6
6
|
Maintainer-email: Frank Martin <f.martin@iknl.nl>, Bart van Beusekom <b.vanbeusekom@iknl.nl>
|
|
@@ -18,8 +18,8 @@ Requires-Dist: questionary==2.1.1
|
|
|
18
18
|
Requires-Dist: rich==13.5.2
|
|
19
19
|
Requires-Dist: schema==0.7.5
|
|
20
20
|
Requires-Dist: sqlalchemy==2.0.37
|
|
21
|
-
Requires-Dist: vantage6-client==5.0.
|
|
22
|
-
Requires-Dist: vantage6-common==5.0.
|
|
21
|
+
Requires-Dist: vantage6-client==5.0.0a40
|
|
22
|
+
Requires-Dist: vantage6-common==5.0.0a40
|
|
23
23
|
Provides-Extra: dev
|
|
24
24
|
Requires-Dist: black; extra == 'dev'
|
|
25
25
|
Requires-Dist: coverage==7.10.2; extra == 'dev'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
vantage6/cli/__init__.py,sha256=8KIgMPbZTNdkYlUrB8irpsUA7KdkFdLbNbMKixOP2dE,277
|
|
2
2
|
vantage6/cli/cli.py,sha256=uEazjKFMpVWP3rQ0FtHNcOg70qYTymoqPqc8dF5saKg,8591
|
|
3
3
|
vantage6/cli/config.py,sha256=vaHNrgJTaAeYLpxfsXOHkYmsI1gLSipkKzyEOPXF1w4,8258
|
|
4
|
-
vantage6/cli/configuration_create.py,sha256=
|
|
4
|
+
vantage6/cli/configuration_create.py,sha256=Q8qnfDZ7gVEPgIqZJNJl4nEqc13ZVJh9K3U-O4XRk_Y,7354
|
|
5
5
|
vantage6/cli/configuration_manager.py,sha256=zsk6dkdUA9zggUeFSkzXrNZ_XkxmQf26_oZsmLYYsu8,8096
|
|
6
6
|
vantage6/cli/globals.py,sha256=VBa49tjuy9KjeF1eKtZre5QSohnWvlI1hsHeDZNMblA,2738
|
|
7
7
|
vantage6/cli/utils.py,sha256=kq1Nv8SJPG5STII9DAcTSR4yCsZcoOvM8rygA5cWa28,5199
|
|
8
8
|
vantage6/cli/utils_kubernetes.py,sha256=zMdarsuWeeZdrDBTczIjC920HadM_5BcOnhOFXBHk0Q,8200
|
|
9
9
|
vantage6/cli/algorithm/create.py,sha256=kRT1BlBcb0fDaB2Q988WxtA6EyAZmOW5QoU2uhbwBIo,2075
|
|
10
|
-
vantage6/cli/algorithm/generate_algorithm_json.py,sha256=
|
|
10
|
+
vantage6/cli/algorithm/generate_algorithm_json.py,sha256=p22wKt3y3J6G8ZQZ7qy5aNe7KppXdY7au9MKsnRWwwU,19525
|
|
11
11
|
vantage6/cli/algorithm/update.py,sha256=oReCQaOQHfZe-o-zTLD2RyjzhwAaXRQkFHyZZ-JUb4s,1338
|
|
12
12
|
vantage6/cli/algostore/attach.py,sha256=GoB1pGLDndKGmzNt5jJCck3yH_cnXkNuPKxDNJ_MZz8,1299
|
|
13
13
|
vantage6/cli/algostore/files.py,sha256=oqjdGeoyUdCGfoSLbQA6r7GZtJtzSbXMyvojQ80xVCE,581
|
|
@@ -25,12 +25,12 @@ vantage6/cli/auth/remove.py,sha256=664X1gl77RrHpzJo1xYiAmZMw4K6muqhtytYk50iiWs,3
|
|
|
25
25
|
vantage6/cli/auth/start.py,sha256=cH5bYvectyliobd6ybpGYf9wI7FyML5-5HS3jsjIyu8,2805
|
|
26
26
|
vantage6/cli/auth/stop.py,sha256=oWy7jDZ45zEyqSzwJr5-T14vp01D1TTcTYWxjXNtJ_U,1882
|
|
27
27
|
vantage6/cli/common/attach.py,sha256=bw9-Q1JjKa_f8Q7-xI5lpI2WoUmlGKZSvULlGoSmnH8,3423
|
|
28
|
-
vantage6/cli/common/decorator.py,sha256=
|
|
28
|
+
vantage6/cli/common/decorator.py,sha256=N08qVbEokkV-XYLwEgEYRzjvgauiUdhIygBQqxR-XoM,4693
|
|
29
29
|
vantage6/cli/common/list.py,sha256=j2q6B4k7wX5UMJ0gkuMrkYPl5I3NmkVuV6eV70hM36I,2075
|
|
30
|
-
vantage6/cli/common/new.py,sha256=
|
|
30
|
+
vantage6/cli/common/new.py,sha256=_srwNExvphy2SImbeFhGxuSsarkztPxxYXMwGMBy7g8,3278
|
|
31
31
|
vantage6/cli/common/remove.py,sha256=q8YOihk5aClvPuw2cADulHrxeXv_0JhqpaNUVH1zhlQ,2206
|
|
32
32
|
vantage6/cli/common/start.py,sha256=kMDjL_sObSkx4TqhnukyD9Jb7vOGXJ9Bo0pJBcxpbsg,10095
|
|
33
|
-
vantage6/cli/common/stop.py,sha256=
|
|
33
|
+
vantage6/cli/common/stop.py,sha256=qIJ1COJWvQlbIpyMqh6ao2WKuXDqPBbU7-wF7IuOgQc,5614
|
|
34
34
|
vantage6/cli/common/utils.py,sha256=-XP-JslNpnveR37v4vwiCgdj4kXOMlluoPJRmNECtFk,11473
|
|
35
35
|
vantage6/cli/common/version.py,sha256=2XPeZm5NMYSqTGjHLUFcRFZZRhtDVLwytQjoDad3utU,2489
|
|
36
36
|
vantage6/cli/context/__init__.py,sha256=umHNotzJjd2TQCela7V8MTUwN4iAKDy8AR4s7ask5Ic,3135
|
|
@@ -45,17 +45,17 @@ vantage6/cli/dev/rebuild.py,sha256=3iMIqAxiwdZkx4Q0xQyqcWHvXUzOQT-9cyRuOiulwR8,1
|
|
|
45
45
|
vantage6/cli/dev/start.py,sha256=DzFtD_jQaVIIawfPdMwBLjY1E_YOokiWm27oanci8k4,1000
|
|
46
46
|
vantage6/cli/dev/stop.py,sha256=-yrLCadDfeLES9pFJz9yxm33XtzEXpdqvHvwakLQNEE,663
|
|
47
47
|
vantage6/cli/node/attach.py,sha256=xOTB_79pShvn6B4Ky1bZ3TI_F3gOkGS9huzbEE0DRYc,1217
|
|
48
|
-
vantage6/cli/node/create_private_key.py,sha256=
|
|
48
|
+
vantage6/cli/node/create_private_key.py,sha256=UTsoJ04OCVjubC8b7AZhxrLzdwG-wQ_63ROw5uruxqs,5229
|
|
49
49
|
vantage6/cli/node/files.py,sha256=y7WOGHCTE3DnmxgbweLcu51t0YLS9Jvl24zgCHKkQTQ,1003
|
|
50
50
|
vantage6/cli/node/list.py,sha256=cydU5tByy0bHWCApcaZ8Pl_2SEbiqkK-mjVhWeChiCc,361
|
|
51
51
|
vantage6/cli/node/new.py,sha256=XEVsnkI1UBngWwE96-KIOcs4zdPCuq3coTGHPNQxepQ,12717
|
|
52
52
|
vantage6/cli/node/remove.py,sha256=alInSH_3E-yJthQ8JrGaopvAZ7GgxuRBppnpC8BRTBU,1061
|
|
53
53
|
vantage6/cli/node/restart.py,sha256=hJWzyJjetfNe8YYkOt5ZEUE_t-LpvQOwUGcQH0pXfNQ,3122
|
|
54
|
-
vantage6/cli/node/set_api_key.py,sha256=
|
|
54
|
+
vantage6/cli/node/set_api_key.py,sha256=eLB-NVpvXROlGKPAMua6vBAs5l08-AkENWiTfOB82FM,2103
|
|
55
55
|
vantage6/cli/node/start.py,sha256=dn9wlDzq-XCV4ruMSTt0Nt01TOuJKZbXt3WJ3PPqZQY,4691
|
|
56
56
|
vantage6/cli/node/stop.py,sha256=9936hGZu8EuYFF2NZ2of8U33jc8hKRLc4bXFu1ImuLw,6814
|
|
57
57
|
vantage6/cli/node/version.py,sha256=vuQlq2SFWxHsA2_hqXtYK8c06mS2KqPCPU48F7-XXFU,4001
|
|
58
|
-
vantage6/cli/node/common/__init__.py,sha256=
|
|
58
|
+
vantage6/cli/node/common/__init__.py,sha256=B05W_dhjzhbk056xgxoGDDWlOM0YYGM6ZMslalR-nyw,3977
|
|
59
59
|
vantage6/cli/node/common/task_cleanup.py,sha256=bNa72P_gmGeQ3Z-Vl6Q7tKG8-deSAqk_02gvG--eHIY,4515
|
|
60
60
|
vantage6/cli/prometheus/monitoring_manager.py,sha256=I4iR_2i6EgLMR2dM2e4bOVbTyGN4jPPRDPKHd8_CbRk,4908
|
|
61
61
|
vantage6/cli/prometheus/prometheus.yml,sha256=Q4i9lVknITBodHUMgarRnEsXfXTNuSdI6a-9pW4YCoI,98
|
|
@@ -75,7 +75,7 @@ vantage6/cli/sandbox/populate/helpers/load_fixtures.py,sha256=PQpEo0Q5PyWwYDaenA
|
|
|
75
75
|
vantage6/cli/sandbox/populate/helpers/utils.py,sha256=5LSGZ-h7QtMB51IDzawXPIQFF7i2CIm6oYzEsdVKG4Y,1213
|
|
76
76
|
vantage6/cli/server/attach.py,sha256=FrSdpRLJeRKWt0VBifj8oPKZsLNDaKJaI2Hy0D2m3kY,1282
|
|
77
77
|
vantage6/cli/server/files.py,sha256=MsnLaY91F2m49mm_FpVboFrSsZiEsu175KioN1alZfk,568
|
|
78
|
-
vantage6/cli/server/import_.py,sha256=
|
|
78
|
+
vantage6/cli/server/import_.py,sha256=m7yjhXhGvL3dJ-8pEN0NMrE3CjMTcf0A0hEhJ5kTBIk,8276
|
|
79
79
|
vantage6/cli/server/list.py,sha256=m-g1k8pmScK_CdhKiVFrLIUZsPnPsHr5CrfHmmI6KJk,299
|
|
80
80
|
vantage6/cli/server/new.py,sha256=6KF07KMmdSQTSbXCxfAztVFb2M10uQdQjLmzCXnnfUo,3802
|
|
81
81
|
vantage6/cli/server/remove.py,sha256=dwylIP5uEUPTRP9bd6_7rWhyUoCJuYoe1Kon9WUV4tY,891
|
|
@@ -85,7 +85,7 @@ vantage6/cli/server/version.py,sha256=iVYem8Gye4dCChC70s_FTqiWi1AF4VQfvhebnh0jur
|
|
|
85
85
|
vantage6/cli/server/common/__init__.py,sha256=Frh_4V8ssoGy8rO3o7mRnlKkpOlNSjA5J6eReN1Yluo,1386
|
|
86
86
|
vantage6/cli/template/algo_store_config.j2,sha256=dlKiUzZ-zYGdFCBArMMRpXvoQFG7rYz4vmv6rCwp6fM,7470
|
|
87
87
|
vantage6/cli/template/auth_config.j2,sha256=mFNL7H3plnqN7kpptk2WPXPsnuGddCP_ktbzBZHi5ic,10866
|
|
88
|
-
vantage6/cli/template/node_config.j2,sha256=
|
|
88
|
+
vantage6/cli/template/node_config.j2,sha256=ZHx-PvjldyKLcE3e8V1K0k5LkDUaS1uZunvbQWfgA2E,13963
|
|
89
89
|
vantage6/cli/template/node_config_nonk8s.j2,sha256=mrS-YQwg_9i7zBKuEFG5pe3ZbHCLtl5hGgzk2etXTvo,783
|
|
90
90
|
vantage6/cli/template/server_config.j2,sha256=0uksEkCf4lRcBD39brOGdwoF_vCtieA-FjTiSUxNvo0,10195
|
|
91
91
|
vantage6/cli/test/client_script.py,sha256=AHQ4fhzbtD-VcJAm0rxUDteepXNa4Bef9SKWnzobTd0,4825
|
|
@@ -96,7 +96,7 @@ vantage6/cli/test/algo_test_scripts/algo_test_script.py,sha256=jfzXPmpL0HlE_eq1j
|
|
|
96
96
|
vantage6/cli/test/common/diagnostic_runner.py,sha256=jFFHqlj3v0WRpVEBa7Ovek3DL6RX6W5cQd9w5hWHtZA,6597
|
|
97
97
|
vantage6/cli/use/context.py,sha256=cTp9kwC4hhq4FkPz1wYAeYWUGK4054S19FxpZYLF7lM,1665
|
|
98
98
|
vantage6/cli/use/namespace.py,sha256=ev22EuixwW7ZWqhGo8SiSKgtGq4yy8gEXmMhR31khkE,1729
|
|
99
|
-
vantage6-5.0.
|
|
100
|
-
vantage6-5.0.
|
|
101
|
-
vantage6-5.0.
|
|
102
|
-
vantage6-5.0.
|
|
99
|
+
vantage6-5.0.0a40.dist-info/METADATA,sha256=fqvEBppeIDSNK1PfILwVHFAI_pboxwjq28EYSeyOAf8,1778
|
|
100
|
+
vantage6-5.0.0a40.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
101
|
+
vantage6-5.0.0a40.dist-info/entry_points.txt,sha256=RKVCMsD70s_Gp6If89uDlCphsZ9uLIOMt1gciv8EMDQ,53
|
|
102
|
+
vantage6-5.0.0a40.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|