synapse-sdk 1.0.0a12__py3-none-any.whl → 1.0.0a13__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 synapse-sdk might be problematic. Click here for more details.

@@ -46,9 +46,13 @@ class RayClientMixin(BaseClient):
46
46
  return self._get(path)
47
47
 
48
48
  def get_serve_application(self, pk):
49
- path = f'serve_application/{pk}/'
49
+ path = f'serve_applications/{pk}/'
50
50
  return self._get(path)
51
51
 
52
52
  def list_serve_applications(self):
53
53
  path = 'serve_applications/'
54
54
  return self._get(path)
55
+
56
+ def delete_serve_application(self, pk):
57
+ path = f'serve_applications/{pk}/'
58
+ return self._delete(path)
@@ -61,3 +61,11 @@ class IntegrationClientMixin(BaseClient):
61
61
  def create_logs(self, data):
62
62
  path = 'logs/'
63
63
  return self._post(path, data=data)
64
+
65
+ def create_serve_application(self, data):
66
+ path = 'serve_applications/'
67
+ return self._post(path, data=data)
68
+
69
+ def list_serve_applications(self, params=None):
70
+ path = 'serve_applications/'
71
+ return self._get(path, params=params)
@@ -19,10 +19,6 @@ class MLClientMixin(BaseClient):
19
19
  files = {'file': data.pop('file')}
20
20
  return self._post(path, data=data, files=files)
21
21
 
22
- def create_serve_application(self, data):
23
- path = 'serve_applications/'
24
- return self._post(path, data=data)
25
-
26
22
  def list_ground_truth_events(self, params=None, url_conversion=None, list_all=False):
27
23
  path = 'ground_truth_events/'
28
24
  url_conversion = get_default_url_conversion(url_conversion, files_fields=['files'])
@@ -76,6 +76,9 @@ class BaseClient:
76
76
  def _patch(self, path, **kwargs):
77
77
  return self._request('patch', path, **kwargs)
78
78
 
79
+ def _delete(self, path, **kwargs):
80
+ return self._request('delete', path, **kwargs)
81
+
79
82
  def _list(self, path, url_conversion=None, list_all=False, **kwargs):
80
83
  response = self._get(path, url_conversion, **kwargs)
81
84
  if list_all:
@@ -4,11 +4,8 @@ import os
4
4
  from functools import cached_property
5
5
  from pprint import pprint
6
6
 
7
- import ray
8
7
  import requests
9
8
  from pydantic import ValidationError
10
- from ray.dashboard.modules.job.sdk import JobSubmissionClient
11
- from ray.exceptions import RayTaskError
12
9
 
13
10
  from synapse_sdk.clients.ray import RayClient
14
11
  from synapse_sdk.plugins.enums import RunMethod
@@ -143,9 +140,6 @@ class Action:
143
140
  def run_action(self):
144
141
  self.validate_params()
145
142
 
146
- if not ray.is_initialized():
147
- ray.init(address=self.envs['RAY_ADDRESS'], ignore_reinit_error=True)
148
-
149
143
  if self.direct:
150
144
  if self.method == RunMethod.RESTAPI:
151
145
  return self.start_by_restapi()
@@ -161,6 +155,9 @@ class Action:
161
155
  return self.entrypoint(**self.params)
162
156
 
163
157
  def start_by_task(self):
158
+ import ray
159
+ from ray.exceptions import RayTaskError
160
+
164
161
  @ray.remote(runtime_env=self.get_runtime_env())
165
162
  def run_task(category, action, *args, **kwargs):
166
163
  from synapse_sdk.plugins.utils import get_action_class
@@ -183,6 +180,8 @@ class Action:
183
180
 
184
181
  kwargs['direct'] = True
185
182
  try:
183
+ if not ray.is_initialized():
184
+ ray.init(address=self.envs['RAY_ADDRESS'], ignore_reinit_error=True)
186
185
  return ray.get(run_task.remote(self.category.value, self.name, *args, **kwargs))
187
186
  except RayTaskError as e:
188
187
  raise ActionError(e.cause)
@@ -232,4 +231,6 @@ class Action:
232
231
  self.client.update_job(self.job_id, data={'result': result or {}, 'console_logs': logs})
233
232
 
234
233
  def get_job_client(self):
234
+ from ray.dashboard.modules.job.sdk import JobSubmissionClient
235
+
235
236
  return JobSubmissionClient(address=self.envs.get('RAY_DASHBOARD_URL'))
@@ -1,5 +1,3 @@
1
- from ray import serve
2
-
3
1
  from synapse_sdk.clients.exceptions import ClientError
4
2
  from synapse_sdk.plugins.categories.base import Action
5
3
  from synapse_sdk.plugins.categories.decorators import register_action
@@ -12,14 +10,13 @@ class DeploymentAction(Action):
12
10
  category = PluginCategory.NEURAL_NET
13
11
  method = RunMethod.JOB
14
12
 
15
- def get_deployment(self):
16
- return serve.deployment(ray_actor_options=self.get_actor_options())(self.entrypoint)
17
-
18
13
  def get_actor_options(self):
19
14
  return {'runtime_env': self.get_runtime_env()}
20
15
 
21
16
  def start(self):
22
- deployment = self.get_deployment()
17
+ from ray import serve
18
+
19
+ deployment = serve.deployment(ray_actor_options=self.get_actor_options())(self.entrypoint)
23
20
  serve.delete(self.plugin_release.code)
24
21
  # TODO add run object
25
22
  serve.run(deployment.bind(), name=self.plugin_release.code, route_prefix=f'/{self.plugin_release.checksum}')
@@ -31,12 +28,9 @@ class DeploymentAction(Action):
31
28
  def create_serve_application(self):
32
29
  if self.client:
33
30
  try:
34
- job = self.client.get_job(self.job_id)
35
31
  serve_application = self.ray_client.get_serve_application(self.plugin_release.code)
36
32
  return self.client.create_serve_application({
37
- 'plugin': self.plugin_release.plugin,
38
- 'version': self.plugin_release.version,
39
- 'agent': job['agent'],
33
+ 'job': self.job_id,
40
34
  'status': serve_application['status'],
41
35
  'data': serve_application,
42
36
  })
@@ -23,7 +23,7 @@ class TrainRun(Run):
23
23
 
24
24
  class Hyperparameter(BaseModel):
25
25
  batch_size: int
26
- iterations: int
26
+ epochs: int
27
27
  learning_rate: Decimal
28
28
 
29
29
 
@@ -2,10 +2,10 @@ task: object_detection
2
2
  data_type: image
3
3
  actions:
4
4
  train:
5
- dataset: datamaker
5
+ dataset: dataset
6
6
  entrypoint: plugin.train.train
7
7
  metrics:
8
- iteration:
8
+ epoch:
9
9
  - loss
10
10
  - miou
11
11
  deployment:
@@ -2,12 +2,12 @@ import time
2
2
 
3
3
 
4
4
  def train(run, dataset, hyperparameter, checkpoint=None):
5
- count_iterations = hyperparameter['iterations']
6
- run.set_progress(0, count_iterations, category='train')
7
- for i in range(1, count_iterations + 1):
5
+ count_epochs = hyperparameter['epochs']
6
+ run.set_progress(0, count_epochs, category='train')
7
+ for i in range(1, count_epochs + 1):
8
8
  time.sleep(0.5)
9
- loss = float(round((count_iterations - i) / count_iterations, 2))
9
+ loss = float(round((count_epochs - i) / count_epochs, 2))
10
10
  miou = 1 - loss
11
- run.log_metric('iteration', i, loss=loss, miou=miou)
12
- run.set_progress(i, count_iterations, category='train')
11
+ run.log_metric('epoch', i, loss=loss, miou=miou)
12
+ run.set_progress(i, count_epochs, category='train')
13
13
  return './'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a12
3
+ Version: 1.0.0a13
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -8,18 +8,18 @@ synapse_sdk/loggers.py,sha256=RsDDOiOeUCih1XOkWQJseYdYCX_wt50AZJRe6aPf96Q,4004
8
8
  synapse_sdk/cli/__init__.py,sha256=WmYGW1qZEXXIGJe3SGr8QjOStY4svuZKK1Lp_aPvtPs,140
9
9
  synapse_sdk/cli/create_plugin.py,sha256=egbW_92WwxfHz50Gy4znX5Bf5fxDdQj3GFyd0l3Y3SY,228
10
10
  synapse_sdk/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- synapse_sdk/clients/base.py,sha256=BPQjM-5Uq-u1wksPnIXaFAzKjNXtcKT4s6-WgxYWs80,3232
11
+ synapse_sdk/clients/base.py,sha256=b34uGFZyV13NVWPfycDK3FNz3W9gT5r4-oLQ_mVrDPQ,3327
12
12
  synapse_sdk/clients/exceptions.py,sha256=ylv7x10eOp4aA3a48jwonnvqvkiYwzJYXjkVkRTAjwk,220
13
13
  synapse_sdk/clients/utils.py,sha256=8pPJTdzHiRPSbZMoQYHAgR2BAMO6u_R_jMV6a2p34iQ,392
14
14
  synapse_sdk/clients/agent/__init__.py,sha256=Pz8_iTbIbnb7ywGJ3feqoZVmO2I3mEbwpWsISIxh0BU,1968
15
15
  synapse_sdk/clients/agent/core.py,sha256=YicfkO0YvjDDOt1jNWoZ0mokrh8xxKibBL4qF5yOjKs,169
16
- synapse_sdk/clients/agent/ray.py,sha256=eQydp2ar0XDlzaY82XbS9TvGPOn_c9c7t7pig48P14g,1436
16
+ synapse_sdk/clients/agent/ray.py,sha256=JrwLyVOUDG2yYsbPrxyUtWbM-FWp9B6Bl_GdDby0rt8,1559
17
17
  synapse_sdk/clients/agent/service.py,sha256=s7KuPK_DB1nr2VHrigttV1WyFonaGHNrPvU8loRxHcE,478
18
18
  synapse_sdk/clients/backend/__init__.py,sha256=SVC7kDO_z_4YqpLDR-O_RrrxJFkWmMhJC8Hl_Mc5Sz4,830
19
19
  synapse_sdk/clients/backend/annotation.py,sha256=eZc5EidgR_RfMGwvv1r1_mLkPdRd8e52c4zuuMjMX34,979
20
20
  synapse_sdk/clients/backend/dataset.py,sha256=X8R71vff1gLytlEaOnKhBWjVQaZcIG_WYy32new4Vq0,1737
21
- synapse_sdk/clients/backend/integration.py,sha256=0NNwbkGMYrfz5Baq8s_FfZ6U4uXs0AfTl78YuW6Samo,1860
22
- synapse_sdk/clients/backend/ml.py,sha256=rBF_iWRpGPbwP9obblqayYgAAMvGkERposBlOgoRXP8,1180
21
+ synapse_sdk/clients/backend/integration.py,sha256=VxhQ91VWAn6eLEptxK561Vt-2bQh97kmCyuznadFMno,2123
22
+ synapse_sdk/clients/backend/ml.py,sha256=SwA4_noRCZ1dVIzyXfrs2zHuRlQZdZt17o1We5QOxl8,1053
23
23
  synapse_sdk/clients/ray/__init__.py,sha256=9ZSPXVVxlJ8Wp8ku7l021ENtPjVrGgQDgqifkkVAXgM,187
24
24
  synapse_sdk/clients/ray/core.py,sha256=a4wyCocAma2HAm-BHlbZnoVbpfdR-Aad2FM0z6vPFvw,731
25
25
  synapse_sdk/clients/ray/serve.py,sha256=rbCpXZYWf0oP8XJ9faa9QFNPYU7h8dltIG8xn9ZconY,907
@@ -30,7 +30,7 @@ synapse_sdk/plugins/models.py,sha256=LTD5fUk1Y2i2kNx5MaCYVFvXEyzyheY6cEHpNC248ls
30
30
  synapse_sdk/plugins/upload.py,sha256=VJOotYMayylOH0lNoAGeGHRkLdhP7jnC_A0rFQMvQpQ,3228
31
31
  synapse_sdk/plugins/utils.py,sha256=n3s-zFnj4hrGWFtaBTJFbaupI8qUQL6S8_5YcbxOmeY,1482
32
32
  synapse_sdk/plugins/categories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- synapse_sdk/plugins/categories/base.py,sha256=yTaV2Cx1kWiYY1LF9T4fWL56MVa2wNOmr2DujxdNvt4,8058
33
+ synapse_sdk/plugins/categories/base.py,sha256=2XMBdYs-feqEFfqae2wM5GqbhnINUQF1EcUMpRmodKg,8091
34
34
  synapse_sdk/plugins/categories/decorators.py,sha256=Gw6T-UHwpCKrSt596X-g2sZbY_Z1zbbogowClj7Pr5Q,518
35
35
  synapse_sdk/plugins/categories/registry.py,sha256=KdQR8SUlLT-3kgYzDNWawS1uJnAhrcw2j4zFaTpilRs,636
36
36
  synapse_sdk/plugins/categories/templates.py,sha256=FF5FerhkZMeW1YcKLY5cylC0SkWSYdJODA_Qcm4OGYQ,887
@@ -48,15 +48,15 @@ synapse_sdk/plugins/categories/import/actions/__init__.py,sha256=47DEQpj8HBSa-_T
48
48
  synapse_sdk/plugins/categories/import/actions/import.py,sha256=URn6TOp081odMT5D4NlZ2XEcyKelJx8fxzdoKSkXSAI,320
49
49
  synapse_sdk/plugins/categories/neural_net/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  synapse_sdk/plugins/categories/neural_net/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- synapse_sdk/plugins/categories/neural_net/actions/deployment.py,sha256=ASRY0-ijdNZl9zTslszIBoaKpn0q_MITcUSoGWoc25c,1741
51
+ synapse_sdk/plugins/categories/neural_net/actions/deployment.py,sha256=HeNGfRBIjiw_rRwzoApAuPm6nuT0qEj-BlJBpI8nGKc,1505
52
52
  synapse_sdk/plugins/categories/neural_net/actions/inference.py,sha256=i18bDDjkuF9V8nxxW-T_umNIOD-Jnq_MMjIjZc6W8n8,645
53
53
  synapse_sdk/plugins/categories/neural_net/actions/test.py,sha256=JY25eg-Fo6WbgtMkGoo_qNqoaZkp3AQNEypJmeGzEog,320
54
- synapse_sdk/plugins/categories/neural_net/actions/train.py,sha256=TPtCAfovmFyzCYRbiRtlrov9AjE6XPQLDB94W0M1OuU,4558
55
- synapse_sdk/plugins/categories/neural_net/templates/config.yaml,sha256=HHiXhCc8BEitfcCOy2Jjstc5IfAsl4yitTva8qYbk54,349
54
+ synapse_sdk/plugins/categories/neural_net/actions/train.py,sha256=7SNhETRw-L-dNEXXANejHMPYCYeqmYjpuUaRFS5vIYA,4554
55
+ synapse_sdk/plugins/categories/neural_net/templates/config.yaml,sha256=dXKB1hO53hDZB73xnxLVCNQl8Sm7svMmVmuMrOCQmEU,343
56
56
  synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
57
  synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py,sha256=InfqKWJYi6sqiUnfPKHC5KYGhxckDaWZNQ202u-uVP4,366
58
58
  synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py,sha256=kYyk7l4UtcDUAH4nkdVUGrHHHjxI4p1U13HSLnmGPyE,53
59
- synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py,sha256=easC8kVGB6AfvUVFyyywTsatSIMaR0i7n3QqQNKObko,492
59
+ synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py,sha256=R4sjNjqRHOJApdKy1p3wXiCPC0Hn_NQf44LJCDopY9E,460
60
60
  synapse_sdk/plugins/categories/post_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  synapse_sdk/plugins/categories/post_annotation/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py,sha256=dkPqOPPMUoxn7h1e-momdhqezhTJ7wLf-Dyx04zKfjw,347
@@ -103,9 +103,9 @@ synapse_sdk/utils/pydantic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
103
103
  synapse_sdk/utils/pydantic/config.py,sha256=1vYOcUI35GslfD1rrqhFkNXXJOXt4IDqOPSx9VWGfNE,123
104
104
  synapse_sdk/utils/pydantic/errors.py,sha256=0v0T12eQBr1KrFiEOBu6KMaPK4aPEGEC6etPJGoR5b4,1061
105
105
  synapse_sdk/utils/pydantic/validators.py,sha256=G47P8ObPhsePmd_QZDK8EdPnik2CbaYzr_N4Z6En8dc,193
106
- synapse_sdk-1.0.0a12.dist-info/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
107
- synapse_sdk-1.0.0a12.dist-info/METADATA,sha256=cPJ9URHKdZwjsC4lFzzmMIx4bm-LET60fvKUMquaJC4,1049
108
- synapse_sdk-1.0.0a12.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
109
- synapse_sdk-1.0.0a12.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
110
- synapse_sdk-1.0.0a12.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
111
- synapse_sdk-1.0.0a12.dist-info/RECORD,,
106
+ synapse_sdk-1.0.0a13.dist-info/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
107
+ synapse_sdk-1.0.0a13.dist-info/METADATA,sha256=KRozKnQDQqVd48GRU_jMUTMijCrWUmUuVv2YmPjPhWo,1049
108
+ synapse_sdk-1.0.0a13.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
109
+ synapse_sdk-1.0.0a13.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
110
+ synapse_sdk-1.0.0a13.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
111
+ synapse_sdk-1.0.0a13.dist-info/RECORD,,