synapse-sdk 1.0.0a5__tar.gz → 1.0.0a7__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 synapse-sdk might be problematic. Click here for more details.
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/pyproject.toml +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/backend/dataset.py +1 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/base.py +24 -38
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +1 -1
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +3 -0
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +5 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/export/actions/export.py +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/import/actions/import.py +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +2 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/actions/test.py +2 -2
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/actions/train.py +17 -13
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +1 -1
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +3 -0
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +3 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +1 -1
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +3 -0
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +3 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/enums.py +5 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/models.py +32 -3
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +1 -0
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +1 -1
- synapse_sdk-1.0.0a7/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +1 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/utils.py +2 -2
- synapse_sdk-1.0.0a7/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/utils/storage.py +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/SOURCES.txt +9 -0
- synapse_sdk-1.0.0a5/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/.gitignore +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/LICENSE +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/README.md +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/requirements.txt +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/setup.cfg +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/cli/create_plugin.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/base.py +1 -1
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/export → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/data_validation/templates/plugin}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/export/actions → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/export}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/import → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/export/actions}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/import/actions → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/import}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/neural_net → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/import/actions}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/neural_net/actions → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/neural_net}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/neural_net/templates/plugin → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/neural_net/actions}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/post_annotation → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/neural_net/templates/plugin}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/post_annotation/actions → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/post_annotation}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/pre_annotation → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/post_annotation/actions}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/categories/pre_annotation/actions → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/post_annotation/templates/plugin}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5/synapse_sdk/utils → synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation/actions}/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/cli/publish.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/cli/run.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/utils/file.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk.egg-info/top_level.txt +0 -0
|
@@ -38,7 +38,7 @@ synapse = 'synapse_sdk.cli:cli'
|
|
|
38
38
|
line-length = 120
|
|
39
39
|
|
|
40
40
|
[tool.ruff.lint]
|
|
41
|
-
select = ['E', 'F', 'Q']
|
|
41
|
+
select = ['E', 'F', 'I', 'Q']
|
|
42
42
|
ignore = ['W191', 'E111', 'E114', 'E117', 'D206', 'D300', 'Q000', 'Q001', 'Q002', 'Q003', 'COM812', 'COM819', 'ISC001', 'ISC002']
|
|
43
43
|
|
|
44
44
|
[tool.ruff.lint.pydocstyle]
|
|
@@ -8,11 +8,9 @@ import ray
|
|
|
8
8
|
import requests
|
|
9
9
|
from ray.dashboard.modules.job.sdk import JobSubmissionClient
|
|
10
10
|
|
|
11
|
-
from synapse_sdk.clients.backend import BackendClient
|
|
12
|
-
from synapse_sdk.loggers import ConsoleLogger, BackendLogger
|
|
13
11
|
from synapse_sdk.plugins.enums import RunMethod
|
|
14
|
-
from synapse_sdk.plugins.models import PluginRelease
|
|
15
|
-
from synapse_sdk.plugins.upload import
|
|
12
|
+
from synapse_sdk.plugins.models import PluginRelease, Run
|
|
13
|
+
from synapse_sdk.plugins.upload import archive_and_upload, build_and_upload, download_and_upload
|
|
16
14
|
from synapse_sdk.utils.module_loading import import_string
|
|
17
15
|
|
|
18
16
|
|
|
@@ -25,8 +23,9 @@ class Action:
|
|
|
25
23
|
plugin_release = None
|
|
26
24
|
config = None
|
|
27
25
|
client = None
|
|
28
|
-
logger = None
|
|
29
26
|
debug = False
|
|
27
|
+
run_class = Run
|
|
28
|
+
run = None
|
|
30
29
|
|
|
31
30
|
default_envs = [
|
|
32
31
|
'RAY_DASHBOARD_URL',
|
|
@@ -48,7 +47,7 @@ class Action:
|
|
|
48
47
|
self.direct = direct
|
|
49
48
|
self.debug = debug
|
|
50
49
|
self.envs = {**envs, **self.get_default_envs()} if envs else self.get_default_envs()
|
|
51
|
-
self.
|
|
50
|
+
self.run = self.get_run()
|
|
52
51
|
|
|
53
52
|
@cached_property
|
|
54
53
|
def entrypoint(self):
|
|
@@ -84,16 +83,13 @@ class Action:
|
|
|
84
83
|
self.envs['SYNAPSE_DEBUG_MODULES'] = ','.join(debug_modules)
|
|
85
84
|
return debug_modules
|
|
86
85
|
|
|
87
|
-
def
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
self.logger = BackendLogger(client, self.job_id)
|
|
95
|
-
else:
|
|
96
|
-
self.logger = ConsoleLogger()
|
|
86
|
+
def get_run(self):
|
|
87
|
+
context = {
|
|
88
|
+
'params': self.params,
|
|
89
|
+
'envs': self.envs,
|
|
90
|
+
'debug': self.debug,
|
|
91
|
+
}
|
|
92
|
+
return self.run_class(self.job_id, context)
|
|
97
93
|
|
|
98
94
|
def get_default_envs(self):
|
|
99
95
|
return {env: os.environ[env] for env in self.default_envs if env in os.environ}
|
|
@@ -105,7 +101,7 @@ class Action:
|
|
|
105
101
|
}
|
|
106
102
|
|
|
107
103
|
if self.debug:
|
|
108
|
-
runtime_env['pip']
|
|
104
|
+
runtime_env['pip'] += self.debug_modules
|
|
109
105
|
|
|
110
106
|
# 맨 마지막에 진행되어야 함
|
|
111
107
|
runtime_env['env_vars'] = self.envs
|
|
@@ -114,18 +110,20 @@ class Action:
|
|
|
114
110
|
pprint(runtime_env)
|
|
115
111
|
return runtime_env
|
|
116
112
|
|
|
117
|
-
def run(self):
|
|
118
|
-
return self.entrypoint(self, **self.params)
|
|
119
|
-
|
|
120
113
|
def run_action(self):
|
|
121
114
|
if self.direct:
|
|
122
115
|
if self.method == RunMethod.RESTAPI:
|
|
123
|
-
return self.
|
|
116
|
+
return self.start_by_restapi()
|
|
124
117
|
else:
|
|
125
|
-
return self.
|
|
126
|
-
return getattr(self, f'
|
|
118
|
+
return self.start()
|
|
119
|
+
return getattr(self, f'start_by_{self.method.value}')()
|
|
120
|
+
|
|
121
|
+
def start(self):
|
|
122
|
+
if self.method == RunMethod.JOB:
|
|
123
|
+
return self.entrypoint(self.run, **self.params)
|
|
124
|
+
return self.entrypoint(**self.params)
|
|
127
125
|
|
|
128
|
-
def
|
|
126
|
+
def start_by_task(self):
|
|
129
127
|
@ray.remote(runtime_env=self.get_runtime_env())
|
|
130
128
|
def run_task(category, action, *args, **kwargs):
|
|
131
129
|
from synapse_sdk.plugins.utils import get_action_class
|
|
@@ -149,7 +147,7 @@ class Action:
|
|
|
149
147
|
kwargs['direct'] = True
|
|
150
148
|
return ray.get(run_task.remote(self.category.value, self.name, *args, **kwargs))
|
|
151
149
|
|
|
152
|
-
def
|
|
150
|
+
def start_by_job(self):
|
|
153
151
|
main_options = []
|
|
154
152
|
options = ['run', '--direct']
|
|
155
153
|
arguments = [self.name, f'{json.dumps(json.dumps(self.params))}']
|
|
@@ -169,7 +167,7 @@ class Action:
|
|
|
169
167
|
runtime_env=self.get_runtime_env(),
|
|
170
168
|
)
|
|
171
169
|
|
|
172
|
-
def
|
|
170
|
+
def start_by_restapi(self):
|
|
173
171
|
path = self.params.pop('path', '')
|
|
174
172
|
method = self.params.pop('method')
|
|
175
173
|
|
|
@@ -177,15 +175,3 @@ class Action:
|
|
|
177
175
|
response = getattr(requests, method)(url, **self.params)
|
|
178
176
|
# TODO ok response가 아닌 경우 대응하기
|
|
179
177
|
return response.json()
|
|
180
|
-
|
|
181
|
-
def set_progress(self, current, total, category=''):
|
|
182
|
-
self.logger.set_progress(current, total, category)
|
|
183
|
-
|
|
184
|
-
def log(self, action, data):
|
|
185
|
-
self.logger.log(action, data)
|
|
186
|
-
|
|
187
|
-
def log_event(self, message):
|
|
188
|
-
self.logger.log('event', {'content': message})
|
|
189
|
-
|
|
190
|
-
def end_log(self):
|
|
191
|
-
self.log_event('Plugin run is complete.')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
{synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/export/actions/export.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
{synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/categories/import/actions/import.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
|
@@ -17,7 +17,8 @@ class DeploymentAction(Action):
|
|
|
17
17
|
def get_actor_options(self):
|
|
18
18
|
return {'runtime_env': self.get_runtime_env()}
|
|
19
19
|
|
|
20
|
-
def
|
|
20
|
+
def start(self):
|
|
21
21
|
deployment = self.get_deployment()
|
|
22
22
|
serve.delete(self.plugin_release.code)
|
|
23
|
+
# TODO add run object
|
|
23
24
|
serve.run(deployment.bind(), name=self.plugin_release.code, route_prefix=f'/{self.plugin_release.checksum}')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
|
7
7
|
class TestAction(Action):
|
|
8
8
|
name = 'test'
|
|
9
9
|
category = PluginCategory.NEURAL_NET
|
|
10
|
-
method = RunMethod.
|
|
10
|
+
method = RunMethod.JOB
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
|
+
from synapse_sdk.plugins.models import Run
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TrainRun(Run):
|
|
8
|
+
def log_metric(self, x, i, **kwargs):
|
|
9
|
+
self.log(x, {x: i, **kwargs})
|
|
10
|
+
|
|
11
|
+
def log_model(self, files, status=None):
|
|
12
|
+
pass
|
|
4
13
|
|
|
5
14
|
|
|
6
15
|
@register_action
|
|
@@ -8,30 +17,25 @@ class TrainAction(Action):
|
|
|
8
17
|
name = 'train'
|
|
9
18
|
category = PluginCategory.NEURAL_NET
|
|
10
19
|
method = RunMethod.JOB
|
|
20
|
+
run_class = TrainRun
|
|
11
21
|
|
|
12
22
|
def get_dataset(self):
|
|
13
23
|
return {}
|
|
14
24
|
|
|
15
|
-
def
|
|
25
|
+
def start(self):
|
|
16
26
|
hyperparameter = self.params['hyperparameter']
|
|
17
27
|
|
|
18
28
|
# download dataset
|
|
19
|
-
self.log_event('Preparing dataset for training.')
|
|
29
|
+
self.run.log_event('Preparing dataset for training.')
|
|
20
30
|
input_dataset = self.get_dataset()
|
|
21
31
|
|
|
22
32
|
# train dataset
|
|
23
|
-
self.log_event('Starting model training.')
|
|
33
|
+
self.run.log_event('Starting model training.')
|
|
24
34
|
|
|
25
|
-
model_files = self.entrypoint(self, input_dataset, hyperparameter)
|
|
35
|
+
model_files = self.entrypoint(self.run, input_dataset, hyperparameter)
|
|
26
36
|
|
|
27
37
|
# upload model_data
|
|
28
|
-
self.log_event('Registering model data.')
|
|
38
|
+
self.run.log_event('Registering model data.')
|
|
29
39
|
|
|
30
|
-
self.end_log()
|
|
40
|
+
self.run.end_log()
|
|
31
41
|
return model_files
|
|
32
|
-
|
|
33
|
-
def log_metric(self, x, i, **kwargs):
|
|
34
|
-
self.log(x, {x: i, **kwargs})
|
|
35
|
-
|
|
36
|
-
def log_model(self, files, status=None):
|
|
37
|
-
pass
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from synapse_sdk.plugins.categories.base import Action
|
|
2
2
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
3
|
-
from synapse_sdk.plugins.enums import
|
|
3
|
+
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
@register_action
|
synapse_sdk-1.0.0a7/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py
ADDED
|
File without changes
|
|
@@ -11,6 +11,11 @@ class PluginCategory(Enum):
|
|
|
11
11
|
NEURAL_NET = 'neural_net'
|
|
12
12
|
EXPORT = 'export'
|
|
13
13
|
IMPORT = 'import'
|
|
14
|
+
SMART_TOOL = 'smart_tool'
|
|
14
15
|
POST_ANNOTATION = 'post_annotation'
|
|
15
16
|
PRE_ANNOTATION = 'pre_annotation'
|
|
16
17
|
DATA_VALIDATION = 'data_validation'
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def choices(cls):
|
|
21
|
+
return [(member.value, member.name.replace('_', ' ').title()) for member in cls]
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from functools import cached_property
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Any, Dict
|
|
4
4
|
|
|
5
|
+
from synapse_sdk.clients.backend import BackendClient
|
|
6
|
+
from synapse_sdk.loggers import BackendLogger, ConsoleLogger
|
|
5
7
|
from synapse_sdk.plugins.utils import read_plugin_config
|
|
6
8
|
from synapse_sdk.utils.storage import get_storage
|
|
7
9
|
from synapse_sdk.utils.string import hash_text
|
|
@@ -59,8 +61,35 @@ class PluginRelease:
|
|
|
59
61
|
return os.path.join(serve_address, self.checksum, path)
|
|
60
62
|
|
|
61
63
|
|
|
62
|
-
class
|
|
64
|
+
class Run:
|
|
65
|
+
logger = None
|
|
63
66
|
job_id = None
|
|
67
|
+
context = None
|
|
64
68
|
|
|
65
|
-
def __init__(self, job_id):
|
|
69
|
+
def __init__(self, job_id, context):
|
|
66
70
|
self.job_id = job_id
|
|
71
|
+
self.context = context
|
|
72
|
+
self.set_logger()
|
|
73
|
+
|
|
74
|
+
def set_logger(self):
|
|
75
|
+
if self.job_id:
|
|
76
|
+
client = BackendClient(
|
|
77
|
+
self.context['envs']['SYNAPSE_PLUGIN_RUN_HOST'],
|
|
78
|
+
self.context['envs']['SYNAPSE_PLUGIN_RUN_USER_TOKEN'],
|
|
79
|
+
self.context['envs']['SYNAPSE_PLUGIN_RUN_TENANT'],
|
|
80
|
+
)
|
|
81
|
+
self.logger = BackendLogger(client, self.job_id)
|
|
82
|
+
else:
|
|
83
|
+
self.logger = ConsoleLogger()
|
|
84
|
+
|
|
85
|
+
def set_progress(self, current, total, category=''):
|
|
86
|
+
self.logger.set_progress(current, total, category)
|
|
87
|
+
|
|
88
|
+
def log(self, action, data):
|
|
89
|
+
self.logger.log(action, data)
|
|
90
|
+
|
|
91
|
+
def log_event(self, message):
|
|
92
|
+
self.logger.log('event', {'content': message})
|
|
93
|
+
|
|
94
|
+
def end_log(self):
|
|
95
|
+
self.log_event('Plugin run is complete.')
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
synapse-sdk[all]
|
|
@@ -2,6 +2,7 @@ import json
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
4
|
from synapse_sdk.plugins.categories.registry import _REGISTERED_ACTIONS, register_actions
|
|
5
|
+
from synapse_sdk.plugins.enums import PluginCategory
|
|
5
6
|
from synapse_sdk.utils.file import get_dict_from_file
|
|
6
7
|
|
|
7
8
|
|
|
@@ -37,8 +38,7 @@ def get_available_actions(category):
|
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
def get_plugin_categories():
|
|
40
|
-
|
|
41
|
-
return list(_REGISTERED_ACTIONS.keys())
|
|
41
|
+
return [plugin_category.value for plugin_category in PluginCategory]
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def read_plugin_config(plugin_path=None):
|
|
File without changes
|
|
@@ -40,6 +40,9 @@ synapse_sdk/plugins/categories/templates.py
|
|
|
40
40
|
synapse_sdk/plugins/categories/data_validation/__init__.py
|
|
41
41
|
synapse_sdk/plugins/categories/data_validation/actions/__init__.py
|
|
42
42
|
synapse_sdk/plugins/categories/data_validation/actions/validation.py
|
|
43
|
+
synapse_sdk/plugins/categories/data_validation/templates/config.yaml
|
|
44
|
+
synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py
|
|
45
|
+
synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py
|
|
43
46
|
synapse_sdk/plugins/categories/export/__init__.py
|
|
44
47
|
synapse_sdk/plugins/categories/export/actions/__init__.py
|
|
45
48
|
synapse_sdk/plugins/categories/export/actions/export.py
|
|
@@ -60,9 +63,15 @@ synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py
|
|
|
60
63
|
synapse_sdk/plugins/categories/post_annotation/__init__.py
|
|
61
64
|
synapse_sdk/plugins/categories/post_annotation/actions/__init__.py
|
|
62
65
|
synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py
|
|
66
|
+
synapse_sdk/plugins/categories/post_annotation/templates/config.yaml
|
|
67
|
+
synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py
|
|
68
|
+
synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py
|
|
63
69
|
synapse_sdk/plugins/categories/pre_annotation/__init__.py
|
|
64
70
|
synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py
|
|
65
71
|
synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py
|
|
72
|
+
synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml
|
|
73
|
+
synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py
|
|
74
|
+
synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py
|
|
66
75
|
synapse_sdk/plugins/cli/__init__.py
|
|
67
76
|
synapse_sdk/plugins/cli/publish.py
|
|
68
77
|
synapse_sdk/plugins/cli/run.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
synapse-sdk
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a5 → synapse_sdk-1.0.0a7}/synapse_sdk/plugins/templates/hooks/post_gen_project.py
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
|