synapse-sdk 1.0.0a63__py3-none-any.whl → 1.0.0a65__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.

@@ -14,19 +14,38 @@ class BackendClient(
14
14
  MLClientMixin,
15
15
  HITLClientMixin,
16
16
  ):
17
+ """BackendClient is a client for the synapse backend API.
18
+
19
+ * Access token overrides authorization token and tenant token.
20
+
21
+ Attrs:
22
+ access_token (str): The synapse access token for the synapse backend API.
23
+ authorization_token (str): The authorization token for the synapse backend API.
24
+ tenant_token (str): The tenant token for the synapse backend API.
25
+ agent_token (str): The agent token for the backend API.
26
+ """
27
+
17
28
  name = 'Backend'
18
29
  access_token = None
30
+ authorization_token = None
31
+ tenant_token = None
19
32
  agent_token = None
20
33
 
21
- def __init__(self, base_url, access_token=None, agent_token=None, **kwargs):
34
+ def __init__(self, base_url, access_token=None, token=None, tenant=None, agent_token=None, **kwargs):
22
35
  super().__init__(base_url)
23
36
  self.access_token = access_token
37
+ self.authorization_token = token
38
+ self.tenant_token = tenant
24
39
  self.agent_token = agent_token
25
40
 
26
41
  def _get_headers(self):
27
42
  headers = {}
28
43
  if self.access_token:
29
44
  headers['Synapse-Access-Token'] = f'Token {self.access_token}'
45
+ if self.authorization_token:
46
+ headers['Authorization'] = f'Token {self.authorization_token}'
47
+ if self.tenant_token:
48
+ headers['Synapse-Tenant'] = f'Token {self.tenant_token}'
30
49
  if self.agent_token:
31
50
  headers['SYNAPSE-Agent'] = f'Token {self.agent_token}'
32
51
  return headers
@@ -69,7 +69,7 @@ class DevtoolsServer:
69
69
  def _init_backend_client(self) -> Optional[BackendClient]:
70
70
  config = get_backend_config()
71
71
  if config:
72
- return BackendClient(config['host'], api_token=config['token'])
72
+ return BackendClient(config['host'], access_token=config['token'])
73
73
  return None
74
74
 
75
75
  def _init_agent_client(self) -> Optional[AgentClient]:
@@ -63,6 +63,7 @@ class Action:
63
63
  envs = None
64
64
  run = None
65
65
 
66
+ # TODO: Refactor to use Synapse Access Token instead of SYNAPSE_PLUGIN_RUN_USER_TOKEN and SYNAPSE_PLUGIN_RUN_TENANT
66
67
  REQUIRED_ENVS = [
67
68
  'RAY_ADDRESS',
68
69
  'RAY_DASHBOARD_URL',
@@ -194,13 +194,13 @@ class UploadAction(Action):
194
194
  run_class = UploadRun
195
195
  progress_categories = {
196
196
  'analyze_collection': {
197
- 'proportion': 0,
197
+ 'proportion': 10,
198
198
  },
199
199
  'upload_data_files': {
200
- 'proportion': 0,
200
+ 'proportion': 50,
201
201
  },
202
202
  'generate_data_units': {
203
- 'proportion': 0,
203
+ 'proportion': 40,
204
204
  },
205
205
  }
206
206
  metrics_categories = {'data_file', 'data_unit'}
@@ -372,7 +372,6 @@ class UploadAction(Action):
372
372
  List: List of dictionaries containing organized files.
373
373
  """
374
374
  organized_files = []
375
- self.run.log_message(f'Looking for files in {directory}...')
376
375
 
377
376
  # Check for type-based directory structure (e.g., image_1/, pcd_1/)
378
377
  type_dirs = {}
@@ -396,7 +395,7 @@ class UploadAction(Action):
396
395
  if extensions:
397
396
  common_ext = max(extensions.items(), key=lambda x: x[1])[0]
398
397
  type_extensions[spec_name] = common_ext
399
- self.run.log_message(f'Found type directory: {spec_name} (common extension: {common_ext})')
398
+ self.run.log_message(f'Found type directory: {spec_name} (extension: {common_ext})')
400
399
 
401
400
  # If type-based directories don't exist, exit early
402
401
  if not type_dirs:
@@ -432,19 +431,13 @@ class UploadAction(Action):
432
431
  )
433
432
 
434
433
  if not dataset_files:
435
- self.run.log_message('No dataset files found.', context=Context.WARNING.value)
434
+ self.run.log_message('No files found.', context=Context.WARNING.value)
436
435
  return organized_files
437
436
 
438
- self.run.log_message(f'Found {len(dataset_files)} potential datasets by ID')
437
+ self.run.log_message(f'Found {len(dataset_files)} files by ID')
439
438
 
440
439
  # Second pass: organize valid datasets
441
440
  for file_name, files_dict in sorted(dataset_files.items()):
442
- self.run.log_message(f'Processing file name: {file_name}')
443
-
444
- # Add file spec details for logging
445
- for spec_name, file_path in files_dict.items():
446
- self.run.log_message(f"Mapped '{spec_name}' to: {file_path.name}")
447
-
448
441
  # Check if all required files are present
449
442
  required_specs = [spec['name'] for spec in file_specification if spec.get('is_required', False)]
450
443
  if all(req in files_dict for req in required_specs):
@@ -456,7 +449,6 @@ class UploadAction(Action):
456
449
 
457
450
  # Add the organized dataset
458
451
  organized_files.append({'files': files_dict, 'meta': meta_data})
459
- self.run.log_message(f'Successfully organized dataset for ID {file_name}')
460
452
  else:
461
453
  # Missing required files warning
462
454
  missing = [req for req in required_specs if req not in files_dict]
@@ -3,6 +3,7 @@ from functools import cached_property
3
3
  from typing import Any, Dict
4
4
 
5
5
  from synapse_sdk.clients.backend import BackendClient
6
+ from synapse_sdk.devtools.config import get_backend_config
6
7
  from synapse_sdk.loggers import BackendLogger, ConsoleLogger
7
8
  from synapse_sdk.plugins.utils import read_plugin_config
8
9
  from synapse_sdk.shared.enums import Context
@@ -112,11 +113,18 @@ class Run:
112
113
  def __init__(self, job_id, context):
113
114
  self.job_id = job_id
114
115
  self.context = context
115
- self.client = BackendClient(
116
- self.context['envs']['SYNAPSE_PLUGIN_RUN_HOST'],
117
- token=self.context['envs'].get('SYNAPSE_PLUGIN_RUN_USER_TOKEN'),
118
- tenant=self.context['envs'].get('SYNAPSE_PLUGIN_RUN_TENANT'),
119
- )
116
+ config = get_backend_config()
117
+ if config:
118
+ self.client = BackendClient(
119
+ config['host'],
120
+ access_token=config['token'],
121
+ )
122
+ else:
123
+ self.client = BackendClient(
124
+ self.context['envs']['SYNAPSE_PLUGIN_RUN_HOST'],
125
+ token=self.context['envs'].get('SYNAPSE_PLUGIN_RUN_USER_TOKEN'),
126
+ tenant=self.context['envs'].get('SYNAPSE_PLUGIN_RUN_TENANT'),
127
+ )
120
128
  self.set_logger()
121
129
 
122
130
  def set_logger(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a63
3
+ Version: 1.0.0a65
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -30,7 +30,7 @@ synapse_sdk/clients/agent/__init__.py,sha256=FqYbtzMJdzRfuU2SA-Yxdc0JKmVP1wxH6Ol
30
30
  synapse_sdk/clients/agent/core.py,sha256=x2jgORTjT7pJY67SLuc-5lMG6CD5OWpy8UgGeTf7IhA,270
31
31
  synapse_sdk/clients/agent/ray.py,sha256=1EDl-bMN2CvKl07-qMidSWNOGpvIvzcWl7jDBCza65o,3248
32
32
  synapse_sdk/clients/agent/service.py,sha256=s7KuPK_DB1nr2VHrigttV1WyFonaGHNrPvU8loRxHcE,478
33
- synapse_sdk/clients/backend/__init__.py,sha256=qIT2x-bLdopanpsc5DCodggGJyRhH4Udh4jukq2V2pA,1121
33
+ synapse_sdk/clients/backend/__init__.py,sha256=ZIOtyumZUw2u1k71rf5CjMCqhR1RwRTKJaZ19sCuTuE,1947
34
34
  synapse_sdk/clients/backend/annotation.py,sha256=dX7os4zFxI3oyh8SzqB83eTW_mR07Hp2bhCHwe64AkE,1356
35
35
  synapse_sdk/clients/backend/core.py,sha256=5XAOdo6JZ0drfk-FMPJ96SeTd9oja-VnTwzGXdvK7Bg,1027
36
36
  synapse_sdk/clients/backend/data_collection.py,sha256=uI-_ByLh-Xez4VIIVRBO8FCNUpDcxhBcLxCVFb_aG7o,4104
@@ -46,7 +46,7 @@ synapse_sdk/clients/validators/collections.py,sha256=LtnwvutsScubOUcZ2reGHLCzseX
46
46
  synapse_sdk/devtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  synapse_sdk/devtools/config.py,sha256=ODAfnXD4TBZQM2dxL7pcHlx6JfkZo15Kwf1MEenbics,2509
48
48
  synapse_sdk/devtools/models.py,sha256=6tdpNblSvE5VQ97J0NZreFkD0jK8v6JuJK4ap0DX2w8,1112
49
- synapse_sdk/devtools/server.py,sha256=8etZloZDn9pfAN8JydquA7pH6xV2kK1NseRX0Qa1J-Y,34418
49
+ synapse_sdk/devtools/server.py,sha256=WDeVYl5wuh2FneRMeIZ7BuZDrpA30wpFmykKCRtpNaw,34421
50
50
  synapse_sdk/devtools/utils.py,sha256=-f3ZxnRpYg6suNQIL-m4n1DhvLdQEbS4e9Mk9tQ8crE,1706
51
51
  synapse_sdk/devtools/docs/.gitignore,sha256=fCv2uiY7oUmiiFhHqfcYbg169Y-q4-AfLmmnRl98_sw,233
52
52
  synapse_sdk/devtools/docs/README.md,sha256=yBzWf0K1ef4oymFXDaHo0nYWEgMQJqsOyrkNhIOPQrY,774
@@ -108,11 +108,11 @@ synapse_sdk/devtools/web/src/views/PluginView.jsx,sha256=_-V8elSiEtsvKECeROtQopS
108
108
  synapse_sdk/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  synapse_sdk/plugins/enums.py,sha256=ibixwqA3sCNSriG1jAtL54JQc_Zwo3MufwYUqGhVncc,523
110
110
  synapse_sdk/plugins/exceptions.py,sha256=Qs7qODp_RRLO9y2otU2T4ryj5LFwIZODvSIXkAh91u0,691
111
- synapse_sdk/plugins/models.py,sha256=QSsF9A3MSbujdKEeVgkt7vpm0LGQYg_9P_T05WVSmCA,4362
111
+ synapse_sdk/plugins/models.py,sha256=dte0Thx4O8KS5WKrtERbtOmyZ85MG_TFqE6FUCplkjk,4645
112
112
  synapse_sdk/plugins/upload.py,sha256=VJOotYMayylOH0lNoAGeGHRkLdhP7jnC_A0rFQMvQpQ,3228
113
113
  synapse_sdk/plugins/utils.py,sha256=4_K6jIl0WrsXOEhFp94faMOriSsddOhIiaXcawYYUUA,3300
114
114
  synapse_sdk/plugins/categories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
- synapse_sdk/plugins/categories/base.py,sha256=akaBeRK23knqyipTohWu5dKNU4WmPJtxRLu9cdV-xOU,10570
115
+ synapse_sdk/plugins/categories/base.py,sha256=ZBgRh3tTdSnqBrzjux8oi1_3PidHMmpmLClPXiTmU3Q,10690
116
116
  synapse_sdk/plugins/categories/decorators.py,sha256=Gw6T-UHwpCKrSt596X-g2sZbY_Z1zbbogowClj7Pr5Q,518
117
117
  synapse_sdk/plugins/categories/registry.py,sha256=KdQR8SUlLT-3kgYzDNWawS1uJnAhrcw2j4zFaTpilRs,636
118
118
  synapse_sdk/plugins/categories/templates.py,sha256=FF5FerhkZMeW1YcKLY5cylC0SkWSYdJODA_Qcm4OGYQ,887
@@ -166,7 +166,7 @@ synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py,sha256=47
166
166
  synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py,sha256=eevNg0nOcYFR4z_L_R-sCvVOYoLWSAH1jwDkAf3YCjY,320
167
167
  synapse_sdk/plugins/categories/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
168
  synapse_sdk/plugins/categories/upload/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
- synapse_sdk/plugins/categories/upload/actions/upload.py,sha256=zZx14F3789IJUH7BmZdXI43HXy0RdLknqT3aZk0WIHQ,18965
169
+ synapse_sdk/plugins/categories/upload/actions/upload.py,sha256=YozR4WHDnoFQBth9hZoOYLLrMVtjrA9EFwLwQKqUK-M,18516
170
170
  synapse_sdk/plugins/categories/upload/templates/config.yaml,sha256=kwHNWHFYbzDi1mEh40KozatPZbZGH44dlP0t0J7ejJw,483
171
171
  synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  synapse_sdk/plugins/categories/upload/templates/plugin/upload.py,sha256=IZU4sdSMSLKPCtlNqF7DP2howTdYR6hr74HCUZsGdPk,1559
@@ -205,9 +205,9 @@ synapse_sdk/utils/storage/providers/__init__.py,sha256=x7RGwZryT2FpVxS7fGWryRVpq
205
205
  synapse_sdk/utils/storage/providers/gcp.py,sha256=i2BQCu1Kej1If9SuNr2_lEyTcr5M_ncGITZrL0u5wEA,363
206
206
  synapse_sdk/utils/storage/providers/s3.py,sha256=W94rQvhGRXti3R4mYP7gmU5pcyCQpGFIBLvxxqLVdRM,2231
207
207
  synapse_sdk/utils/storage/providers/sftp.py,sha256=_8s9hf0JXIO21gvm-JVS00FbLsbtvly4c-ETLRax68A,1426
208
- synapse_sdk-1.0.0a63.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
209
- synapse_sdk-1.0.0a63.dist-info/METADATA,sha256=hdkgJNRy-a56VElif9D7_n5Xlyk2IIn4O74e__ZQ4Z4,1130
210
- synapse_sdk-1.0.0a63.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
211
- synapse_sdk-1.0.0a63.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
212
- synapse_sdk-1.0.0a63.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
213
- synapse_sdk-1.0.0a63.dist-info/RECORD,,
208
+ synapse_sdk-1.0.0a65.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
209
+ synapse_sdk-1.0.0a65.dist-info/METADATA,sha256=tZri6hM4wsmNTYDKgWGfrmgxYa1LKGUz1f-ad8Xzwoo,1130
210
+ synapse_sdk-1.0.0a65.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
211
+ synapse_sdk-1.0.0a65.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
212
+ synapse_sdk-1.0.0a65.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
213
+ synapse_sdk-1.0.0a65.dist-info/RECORD,,