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

Files changed (85) hide show
  1. synapse_sdk/cli/__init__.py +246 -5
  2. synapse_sdk/cli/alias/utils.py +1 -1
  3. synapse_sdk/cli/config.py +339 -0
  4. synapse_sdk/cli/devtools.py +61 -0
  5. synapse_sdk/cli/plugin/publish.py +3 -4
  6. synapse_sdk/clients/agent/__init__.py +7 -2
  7. synapse_sdk/clients/agent/ray.py +37 -6
  8. synapse_sdk/clients/backend/__init__.py +5 -9
  9. synapse_sdk/clients/backend/annotation.py +4 -0
  10. synapse_sdk/clients/base.py +42 -3
  11. synapse_sdk/devtools/__init__.py +0 -0
  12. synapse_sdk/devtools/config.py +94 -0
  13. synapse_sdk/devtools/docs/.gitignore +20 -0
  14. synapse_sdk/devtools/docs/README.md +41 -0
  15. synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
  16. synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
  17. synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  18. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  19. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
  20. synapse_sdk/devtools/docs/blog/authors.yml +25 -0
  21. synapse_sdk/devtools/docs/blog/tags.yml +19 -0
  22. synapse_sdk/devtools/docs/docusaurus.config.ts +138 -0
  23. synapse_sdk/devtools/docs/package-lock.json +17455 -0
  24. synapse_sdk/devtools/docs/package.json +47 -0
  25. synapse_sdk/devtools/docs/sidebars.ts +36 -0
  26. synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
  27. synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
  28. synapse_sdk/devtools/docs/src/css/custom.css +30 -0
  29. synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
  30. synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
  31. synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
  32. synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  33. synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  34. synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  35. synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  36. synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  37. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
  38. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
  39. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
  40. synapse_sdk/devtools/docs/tsconfig.json +8 -0
  41. synapse_sdk/devtools/models.py +55 -0
  42. synapse_sdk/devtools/server.py +829 -0
  43. synapse_sdk/devtools/web/.gitignore +2 -0
  44. synapse_sdk/devtools/web/README.md +34 -0
  45. synapse_sdk/devtools/web/dist/index.html +17 -0
  46. synapse_sdk/devtools/web/index.html +16 -0
  47. synapse_sdk/devtools/web/jsconfig.json +15 -0
  48. synapse_sdk/devtools/web/package-lock.json +2609 -0
  49. synapse_sdk/devtools/web/package.json +27 -0
  50. synapse_sdk/devtools/web/pnpm-lock.yaml +1055 -0
  51. synapse_sdk/devtools/web/src/App.jsx +14 -0
  52. synapse_sdk/devtools/web/src/App.module.css +33 -0
  53. synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
  54. synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +42 -0
  55. synapse_sdk/devtools/web/src/components/Layout.jsx +12 -0
  56. synapse_sdk/devtools/web/src/components/LogViewer.jsx +266 -0
  57. synapse_sdk/devtools/web/src/components/MessageViewer.jsx +150 -0
  58. synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +137 -0
  59. synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +245 -0
  60. synapse_sdk/devtools/web/src/components/icons.jsx +325 -0
  61. synapse_sdk/devtools/web/src/index.css +470 -0
  62. synapse_sdk/devtools/web/src/index.jsx +15 -0
  63. synapse_sdk/devtools/web/src/logo.svg +1 -0
  64. synapse_sdk/devtools/web/src/router.jsx +34 -0
  65. synapse_sdk/devtools/web/src/utils/api.js +425 -0
  66. synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +241 -0
  67. synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +224 -0
  68. synapse_sdk/devtools/web/src/views/HomeView.jsx +197 -0
  69. synapse_sdk/devtools/web/src/views/JobDetailView.jsx +310 -0
  70. synapse_sdk/devtools/web/src/views/PluginView.jsx +914 -0
  71. synapse_sdk/devtools/web/vite.config.js +13 -0
  72. synapse_sdk/plugins/categories/neural_net/actions/tune.py +1 -1
  73. synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +236 -64
  74. synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +14 -2
  75. synapse_sdk/plugins/templates/plugin-config-schema.json +409 -0
  76. synapse_sdk/plugins/templates/schema.json +484 -0
  77. synapse_sdk/utils/converters/__init__.py +145 -0
  78. synapse_sdk/utils/converters/coco/__init__.py +0 -0
  79. synapse_sdk/utils/converters/coco/from_dm.py +269 -0
  80. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/METADATA +9 -22
  81. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/RECORD +85 -17
  82. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/WHEEL +0 -0
  83. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/entry_points.txt +0 -0
  84. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/licenses/LICENSE +0 -0
  85. {synapse_sdk-1.0.0a59.dist-info → synapse_sdk-1.0.0a60.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,269 @@
1
+ import datetime
2
+ import json
3
+ import os
4
+ import shutil
5
+ from glob import glob
6
+ from typing import Any, Dict
7
+
8
+ from PIL import Image
9
+ from tqdm import tqdm
10
+
11
+ from synapse_sdk.utils.converters import FromDMConverter
12
+
13
+
14
+ class DMToCOCOConverter(FromDMConverter):
15
+ """Convert DM (Data Manager) format annotations to COCO format.
16
+ Designed for easy future extensibility to handle various data types.
17
+ """
18
+
19
+ SUPPORTED_TYPES = {
20
+ 'img': ['.jpg', '.jpeg', '.png', '.bmp', '.tif', '.tiff', '.webp'],
21
+ # 'video': ['.mp4', '.avi', ...],
22
+ # 'audio': ['.wav', '.mp3', ...]
23
+ }
24
+
25
+ def __init__(self, root_dir, info_dict=None, licenses_list=None, data_type='img', is_categorized_dataset=False):
26
+ """Args:
27
+ root_dir (str): Root directory containing data.
28
+ info_dict, licenses_list: COCO metadata.
29
+ data_type (str): Which data type to use (default: 'img').
30
+ is_categorized_dataset (bool): Whether to handle train, test, valid splits.
31
+ """
32
+ super().__init__(root_dir, is_categorized_dataset)
33
+ self.data_type = data_type
34
+ self.info_dict = info_dict or self._default_info()
35
+ self.licenses_list = licenses_list or self._default_licenses()
36
+ self.reset_state()
37
+
38
+ # --- Helpers & State --- #
39
+
40
+ def reset_state(self):
41
+ self.coco_dict = None
42
+ self.category_name_to_id = {}
43
+ self.annotation_id = 1
44
+ self.img_id = 1
45
+ self.license_id = self.licenses_list[0]['id'] if self.licenses_list else 1
46
+
47
+ def _default_info(self):
48
+ now = datetime.datetime.now()
49
+ return {
50
+ 'description': 'Converted from DM format',
51
+ 'url': '',
52
+ 'version': self.version,
53
+ 'year': now.year,
54
+ 'contributor': '',
55
+ 'date_created': now.strftime('%Y-%m-%d %H:%M:%S'),
56
+ }
57
+
58
+ @staticmethod
59
+ def _default_licenses():
60
+ return [{'id': 1, 'name': 'Unknown', 'url': ''}]
61
+
62
+ @staticmethod
63
+ def ensure_dir(path):
64
+ os.makedirs(path, exist_ok=True)
65
+
66
+ # --- File Pairing --- #
67
+
68
+ def _collect_files(self):
69
+ """Return {basename: file_path} for all supported files in this data type."""
70
+ exts = self.SUPPORTED_TYPES[self.data_type]
71
+ files = {}
72
+ for ext in exts:
73
+ for f in glob(os.path.join(self.original_file_dir, f'*{ext}')):
74
+ base = os.path.splitext(os.path.basename(f))[0]
75
+ files[base] = f
76
+ return files
77
+
78
+ def _find_json_file_pairs(self):
79
+ """Return list of (json_path, data_path) pairs with matching basenames."""
80
+ if not hasattr(self, 'json_dir') or not self.json_dir:
81
+ self._set_directories()
82
+
83
+ json_files = sorted(glob(os.path.join(self.json_dir, '*.json')))
84
+ file_map = self._collect_files()
85
+ result = []
86
+ for json_file in json_files:
87
+ file_name = os.path.splitext(os.path.basename(json_file))[0]
88
+ if file_name in file_map:
89
+ result.append((json_file, file_map[file_name]))
90
+ return result
91
+
92
+ # --- COCO Info Extraction --- #
93
+
94
+ def _image_info(self, img_path):
95
+ with Image.open(img_path) as im:
96
+ width, height = im.size
97
+ return {
98
+ 'id': self.img_id,
99
+ 'file_name': os.path.basename(img_path),
100
+ 'width': width,
101
+ 'height': height,
102
+ 'license': self.license_id,
103
+ }
104
+
105
+ @staticmethod
106
+ def _poly_to_bbox(poly):
107
+ xs = [p[0] for p in poly]
108
+ ys = [p[1] for p in poly]
109
+ x_min, y_min = min(xs), min(ys)
110
+ x_max, y_max = max(xs), max(ys)
111
+ return [x_min, y_min, x_max - x_min, y_max - y_min]
112
+
113
+ @staticmethod
114
+ def _poly_to_segmentation(poly):
115
+ return [sum(poly, [])]
116
+
117
+ # --- Category Management --- #
118
+
119
+ def _get_or_create_category(self, name, keypoints=None):
120
+ if name not in self.category_name_to_id:
121
+ cid = len(self.category_name_to_id) + 1
122
+ self.category_name_to_id[name] = cid
123
+ cat = {'id': cid, 'name': name, 'supercategory': name}
124
+ if keypoints:
125
+ cat['keypoints'] = keypoints
126
+ cat['skeleton'] = []
127
+ self.coco_dict['categories'].append(cat)
128
+ return self.category_name_to_id[name]
129
+
130
+ # --- Annotation Processing --- #
131
+
132
+ def _process_polylines(self, anns):
133
+ for poly in anns.get('polyline', []):
134
+ cat_id = self._get_or_create_category(poly['classification'])
135
+ seg = self._poly_to_segmentation(poly['data'])
136
+ bbox = self._poly_to_bbox(poly['data'])
137
+ self._add_annotation(cat_id, seg, bbox, area=bbox[2] * bbox[3])
138
+
139
+ def _process_bboxes(self, anns):
140
+ for box in anns.get('bounding_box', []):
141
+ cat_id = self._get_or_create_category(box['classification'])
142
+ bbox = box['data']
143
+ self._add_annotation(cat_id, [], bbox, area=bbox[2] * bbox[3])
144
+
145
+ def _process_keypoints(self, anns):
146
+ if 'keypoint' not in anns:
147
+ return
148
+ keypoints = anns['keypoint']
149
+ cat_id = self._get_or_create_category('keypoints', [kp['classification'] for kp in keypoints])
150
+ kps, xs, ys = [], [], []
151
+ for kp in keypoints:
152
+ x, y = kp['data']
153
+ kps += [x, y, 2]
154
+ xs.append(x)
155
+ ys.append(y)
156
+ bbox = [min(xs), min(ys), max(xs) - min(xs), max(ys) - min(ys)]
157
+ self.coco_dict['annotations'].append({
158
+ 'id': self.annotation_id,
159
+ 'image_id': self.img_id,
160
+ 'category_id': cat_id,
161
+ 'keypoints': kps,
162
+ 'num_keypoints': len(keypoints),
163
+ 'bbox': bbox,
164
+ 'area': 0,
165
+ 'iscrowd': 0,
166
+ })
167
+ self.annotation_id += 1
168
+
169
+ def _add_annotation(self, cat_id, segmentation, bbox, area):
170
+ self.coco_dict['annotations'].append({
171
+ 'id': self.annotation_id,
172
+ 'image_id': self.img_id,
173
+ 'category_id': cat_id,
174
+ 'segmentation': segmentation,
175
+ 'bbox': bbox,
176
+ 'iscrowd': 0,
177
+ 'area': area,
178
+ })
179
+ self.annotation_id += 1
180
+
181
+ # --- Main Conversion Logic --- #
182
+
183
+ def convert(self) -> Dict[str, Any]:
184
+ """Convert DM format to COCO format, supporting dataset splits."""
185
+ if self.is_categorized_dataset:
186
+ required_splits = ['train', 'valid']
187
+ optional_splits = ['test']
188
+ split_dirs = self._validate_splits(required_splits, optional_splits)
189
+
190
+ result = {}
191
+ for split in split_dirs.keys():
192
+ self._set_directories(split)
193
+ self.reset_state()
194
+ result[split] = self._convert_single_split()
195
+
196
+ return result
197
+ else:
198
+ self._set_directories()
199
+ return self._convert_single_split()
200
+
201
+ def _convert_single_split(self) -> Dict[str, Any]:
202
+ """Convert a single dataset split."""
203
+ self.reset_state()
204
+ self.coco_dict = {
205
+ 'info': self.info_dict,
206
+ 'licenses': self.licenses_list,
207
+ 'images': [],
208
+ 'annotations': [],
209
+ 'categories': [],
210
+ }
211
+
212
+ pairs = self._find_json_file_pairs()
213
+ if not pairs:
214
+ raise FileNotFoundError(
215
+ f'No matching JSON-{self.data_type} pairs found in {self.json_dir} and {self.original_file_dir}'
216
+ )
217
+
218
+ for json_path, data_path in tqdm(pairs, desc=f'Converting to COCO ({self.data_type})'):
219
+ try:
220
+ with open(json_path, encoding='utf-8') as jf:
221
+ data = json.load(jf)
222
+
223
+ self.coco_dict['images'].append(self._image_info(data_path))
224
+ anns = data.get('images', [{}])[0]
225
+
226
+ self._process_polylines(anns)
227
+ self._process_bboxes(anns)
228
+ self._process_keypoints(anns)
229
+ self.img_id += 1
230
+
231
+ except Exception as e:
232
+ print(f'[ERROR] {json_path}: {e}')
233
+ continue
234
+
235
+ return self.coco_dict
236
+
237
+ def save_to_folder(self, output_dir):
238
+ """Save the converted COCO data and original files to the specified folder."""
239
+ super().save_to_folder(output_dir)
240
+
241
+ if self.is_categorized_dataset:
242
+ for split, coco_data in self.converted_data.items():
243
+ split_output_dir = os.path.join(output_dir, split)
244
+ self._save_annotations_and_images(
245
+ coco_data, split_output_dir, os.path.join(self.root_dir, split, 'original_file')
246
+ )
247
+ else:
248
+ self._save_annotations_and_images(
249
+ self.converted_data, output_dir, os.path.join(self.root_dir, 'original_file')
250
+ )
251
+
252
+ def _save_annotations_and_images(self, coco_data, output_dir, original_file_dir):
253
+ """Helper method to save annotations and copy original images."""
254
+ self.ensure_dir(output_dir)
255
+
256
+ # Save annotations
257
+ json_path = os.path.join(output_dir, 'annotations.json')
258
+ with open(json_path, 'w', encoding='utf-8') as f:
259
+ json.dump(coco_data, f, indent=4, ensure_ascii=False)
260
+ print(f'COCO annotations saved to {json_path}')
261
+
262
+ # Copy original images
263
+ for image in coco_data['images']:
264
+ src_path = os.path.join(original_file_dir, image['file_name'])
265
+ dst_path = os.path.join(output_dir, image['file_name'])
266
+ if os.path.exists(src_path):
267
+ shutil.copy(src_path, dst_path)
268
+ else:
269
+ print(f'[WARNING] Image not found: {src_path}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a59
3
+ Version: 1.0.0a60
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -19,32 +19,19 @@ Requires-Dist: pydantic
19
19
  Requires-Dist: pyjwt
20
20
  Requires-Dist: universal-pathlib
21
21
  Requires-Dist: fsspec[gcs,s3,sftp]
22
+ Requires-Dist: inquirer
22
23
  Provides-Extra: all
23
24
  Requires-Dist: ray[all]; extra == "all"
24
25
  Requires-Dist: python-nmap; extra == "all"
25
26
  Requires-Dist: hyperopt; extra == "all"
26
27
  Requires-Dist: bayesian-optimization==1.4.3; extra == "all"
28
+ Provides-Extra: dashboard
29
+ Requires-Dist: fastapi>=0.115.13; extra == "dashboard"
30
+ Requires-Dist: uvicorn[standard]>=0.34.3; extra == "dashboard"
31
+ Requires-Dist: websockets>=15.0.1; extra == "dashboard"
32
+ Requires-Dist: aiofiles>=24.1.0; extra == "dashboard"
27
33
  Dynamic: license-file
28
34
 
29
- This is the SDK to develop synapse plugins
35
+ # Synapse SDK
30
36
 
31
-
32
- ## Internationalization
33
-
34
- ### Find Messages
35
- ```bash
36
- $ find . -name "*.py" | xargs xgettext -o messages.pot
37
- ```
38
-
39
- ### Make Messages
40
- ```bash
41
- $ msginit -l ko -i messages.pot -o locale/ko/LC_MESSAGES/messages.po
42
- $ msginit -l en -i messages.pot -o locale/en/LC_MESSAGES/messages.po
43
- ```
44
-
45
- ### Compile Messages
46
-
47
- ```bash
48
- $ msgfmt locale/ko/LC_MESSAGES/messages.po -o locale/ko/LC_MESSAGES/messages.mo
49
- $ msgfmt locale/en/LC_MESSAGES/messages.po -o locale/en/LC_MESSAGES/messages.mo
50
- ```
37
+ *Docs [https://docs.synapse.sh](https://docs.synapse.sh)*
@@ -6,7 +6,9 @@ synapse_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  synapse_sdk/i18n.py,sha256=VXMR-Zm_1hTAg9iPk3YZNNq-T1Bhx1J2fEtRT6kyYbg,766
7
7
  synapse_sdk/loggers.py,sha256=hi-m5y4x0OcR2Esf7o849fWpdKrzCGOR4AxazbB7ShE,6528
8
8
  synapse_sdk/types.py,sha256=khzn8KpgxFdn1SrpbcuX84m_Md1Mz_HIoUoPq8uok40,698
9
- synapse_sdk/cli/__init__.py,sha256=P-_FXCqb_nTVdQznuHop6kDXF_JuncZpeAmgHiGoILQ,152
9
+ synapse_sdk/cli/__init__.py,sha256=igWAS4zW_TMJrupo7gnmH3zQMCJ4T98MCvlacDJDmj0,9415
10
+ synapse_sdk/cli/config.py,sha256=ooIHI7ZDA1yLtisxk_Xn1ptz4sM5j7TDivxaPvBUONE,11886
11
+ synapse_sdk/cli/devtools.py,sha256=gNKSRF1TWdeBC-H8IQbYfHpbqTap6QzANfH09KFXaUY,2253
10
12
  synapse_sdk/cli/alias/__init__.py,sha256=jDy8N_KupVy7n_jKKWhjQOj76-mR-uoVvMoyzObUkuI,405
11
13
  synapse_sdk/cli/alias/create.py,sha256=P9uX_dbafSdpO4UM4A4l6fyu88I3plaUPnIk72z5-wQ,1132
12
14
  synapse_sdk/cli/alias/dataclass.py,sha256=avVaUvBmtdVkM9GD_MilCXk0kVQSbh2p5s5XEqL4kMs,1498
@@ -15,21 +17,21 @@ synapse_sdk/cli/alias/delete.py,sha256=V2_5j9IyXIxEO82PL3JJAF7WHrn-LwFe_PyfPJTF5
15
17
  synapse_sdk/cli/alias/list.py,sha256=fsKe5MVyl9ki3bwEwDj1nWAWfnNKOmkLO3bbbHOfsL4,564
16
18
  synapse_sdk/cli/alias/read.py,sha256=gkcSO6zAqvqHMduKIajvzftEgYphp4pIVjsIShgPoHk,349
17
19
  synapse_sdk/cli/alias/update.py,sha256=LOpkpe6ZP_HcOOwC5RkJHVxQuNcQHGnyN98tABjz754,531
18
- synapse_sdk/cli/alias/utils.py,sha256=9kWrDfRCFqlkCtLXSleMJ-PH6Q49R1FfnbfyY34ck5s,1540
20
+ synapse_sdk/cli/alias/utils.py,sha256=mlWWVrOmF4klVc1kbtguj_Z_TJz4tsGWcCnRZN3R7Ds,1534
19
21
  synapse_sdk/cli/plugin/__init__.py,sha256=fonDXnEc33Pz4ibFhp3WILLyElHDwMnXvaw0tZy6tak,784
20
22
  synapse_sdk/cli/plugin/create.py,sha256=HpYTpohV1NbSrULaVUlc4jWLWznPrx7glgydTM3sS5E,218
21
- synapse_sdk/cli/plugin/publish.py,sha256=sIl1wiuSC3lAUpE3rOF4UDKDy2G5EVLlelMjk2aT05g,1221
23
+ synapse_sdk/cli/plugin/publish.py,sha256=1pFewXC6bzeDegB2ahyXiyA7dpf9h3VNRNXiy_ii-pM,1163
22
24
  synapse_sdk/cli/plugin/run.py,sha256=xz5LRm3zh8Y9DMjw5FFRFVRWSCWtYfZJskfCmrPikaQ,2598
23
25
  synapse_sdk/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- synapse_sdk/clients/base.py,sha256=K6wPKG8DFus5hG7nOUnKWS9-FuzG4ndkbNYCLBA_30Y,10957
26
+ synapse_sdk/clients/base.py,sha256=DPY2fNwJHYKa61z07ozJ0poCFRgGd43zfgmHgpI_ngc,12890
25
27
  synapse_sdk/clients/exceptions.py,sha256=ylv7x10eOp4aA3a48jwonnvqvkiYwzJYXjkVkRTAjwk,220
26
28
  synapse_sdk/clients/utils.py,sha256=8pPJTdzHiRPSbZMoQYHAgR2BAMO6u_R_jMV6a2p34iQ,392
27
- synapse_sdk/clients/agent/__init__.py,sha256=Pz8_iTbIbnb7ywGJ3feqoZVmO2I3mEbwpWsISIxh0BU,1968
29
+ synapse_sdk/clients/agent/__init__.py,sha256=FqYbtzMJdzRfuU2SA-Yxdc0JKmVP1wxH6OlUNmB4lH8,2230
28
30
  synapse_sdk/clients/agent/core.py,sha256=x2jgORTjT7pJY67SLuc-5lMG6CD5OWpy8UgGeTf7IhA,270
29
- synapse_sdk/clients/agent/ray.py,sha256=JrwLyVOUDG2yYsbPrxyUtWbM-FWp9B6Bl_GdDby0rt8,1559
31
+ synapse_sdk/clients/agent/ray.py,sha256=1EDl-bMN2CvKl07-qMidSWNOGpvIvzcWl7jDBCza65o,3248
30
32
  synapse_sdk/clients/agent/service.py,sha256=s7KuPK_DB1nr2VHrigttV1WyFonaGHNrPvU8loRxHcE,478
31
- synapse_sdk/clients/backend/__init__.py,sha256=MC3pndBk-SPyW9L6WnrTozoub9-EK7auXFvPHCaxeFU,1209
32
- synapse_sdk/clients/backend/annotation.py,sha256=rtof8YVQ6M1wNm66EGbg6GRGDMAyY1YzkTnzN3GRT5o,1220
33
+ synapse_sdk/clients/backend/__init__.py,sha256=qIT2x-bLdopanpsc5DCodggGJyRhH4Udh4jukq2V2pA,1121
34
+ synapse_sdk/clients/backend/annotation.py,sha256=dX7os4zFxI3oyh8SzqB83eTW_mR07Hp2bhCHwe64AkE,1356
33
35
  synapse_sdk/clients/backend/core.py,sha256=5XAOdo6JZ0drfk-FMPJ96SeTd9oja-VnTwzGXdvK7Bg,1027
34
36
  synapse_sdk/clients/backend/data_collection.py,sha256=uI-_ByLh-Xez4VIIVRBO8FCNUpDcxhBcLxCVFb_aG7o,4104
35
37
  synapse_sdk/clients/backend/hitl.py,sha256=na2mSXFud92p4zUEuagcDWk2klxO7xn-e86cm0VZEvs,709
@@ -41,6 +43,67 @@ synapse_sdk/clients/ray/core.py,sha256=a4wyCocAma2HAm-BHlbZnoVbpfdR-Aad2FM0z6vPF
41
43
  synapse_sdk/clients/ray/serve.py,sha256=eFhCYIv_irc_2RyuV3bzeWIVyz_1NlqwoNVh5KSWilY,1092
42
44
  synapse_sdk/clients/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
45
  synapse_sdk/clients/validators/collections.py,sha256=LtnwvutsScubOUcZ2reGHLCzseXxtNIdnH2nv098aUU,1195
46
+ synapse_sdk/devtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ synapse_sdk/devtools/config.py,sha256=sRAwsnVboyDMNo-InFZVlGYYwY3OhIv0iGjriLiXkq4,2511
48
+ synapse_sdk/devtools/models.py,sha256=6tdpNblSvE5VQ97J0NZreFkD0jK8v6JuJK4ap0DX2w8,1112
49
+ synapse_sdk/devtools/server.py,sha256=wjEtf8cWkZHsQno1ia85O45JJox0mCUfK7M3E3OkcPY,35079
50
+ synapse_sdk/devtools/docs/.gitignore,sha256=fCv2uiY7oUmiiFhHqfcYbg169Y-q4-AfLmmnRl98_sw,233
51
+ synapse_sdk/devtools/docs/README.md,sha256=yBzWf0K1ef4oymFXDaHo0nYWEgMQJqsOyrkNhIOPQrY,774
52
+ synapse_sdk/devtools/docs/docusaurus.config.ts,sha256=zH1dxP4hmKsYWTo1OYMBIeE0Cj5dC8KChVtkORNQB5E,3129
53
+ synapse_sdk/devtools/docs/package-lock.json,sha256=FfI_0BxNDB3tupLYxsH2PY4ogaBL6p22ujFWy8rRu88,653289
54
+ synapse_sdk/devtools/docs/package.json,sha256=9UcQc49bh7CM1e8Cc4XYPWxRvHaZSXkecheWIC8Aohk,1144
55
+ synapse_sdk/devtools/docs/sidebars.ts,sha256=G7ou_l1Po66yCLM8PLdU-EK64T7Sbl84oHiaBT4sOOI,820
56
+ synapse_sdk/devtools/docs/tsconfig.json,sha256=O9BNlRPjPiaVHW2_boShMbmTnh0Z2k0KQO6Alf9FMVY,215
57
+ synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md,sha256=iP7gl_FPqo-qX13lkSRcRoT6ayJNmCkXoyvlm7GH248,312
58
+ synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md,sha256=cM-dhhTeurEWMcdn0Kx-NpNts2YUUraSI_XFk_gVHEE,3122
59
+ synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx,sha256=9tEKHDFE2LGBtu1vv3L-6ASqlMXYbN9AnDi2treKUiQ,512
60
+ synapse_sdk/devtools/docs/blog/authors.yml,sha256=sWHVifZR2SGnPQkdoVzNJjnCP_Ux_UknILHue-kycLY,707
61
+ synapse_sdk/devtools/docs/blog/tags.yml,sha256=lLp9pif4-Q35DnNbF1XLv1n7dmfRoXbVqOuWBvDw5MM,347
62
+ synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg,sha256=XiDv0_Pw85P-3z4T2pNxlosgmU82tBvSmnAHn0jY_Y8,96122
63
+ synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md,sha256=VEO6buziLWUfcUX4WgJpMSRxzDoZK3NudtE5zXQcJwU,846
64
+ synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx,sha256=xaUQaq9OuqoaRAZQo-ZWev0vbmIkn9l04QfUBxlhnnU,1923
65
+ synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css,sha256=ohzLULP3E9P7GaAGd-aZuc0CWDVxNLWafyfbF3GkePk,138
66
+ synapse_sdk/devtools/docs/src/css/custom.css,sha256=4rBGiHSFQw0AQ1ksCKMbV6lhH3Hds1TQI4k4ejF5i7M,1042
67
+ synapse_sdk/devtools/docs/src/pages/index.module.css,sha256=iewppbPS2aLqi59-GOplYAAGG-1jeK8vW8RORrTLMgk,365
68
+ synapse_sdk/devtools/docs/src/pages/index.tsx,sha256=7NRgwETZrHzF9_20YEbGuHGG9cBLjyPjCXoMhMhg2fU,536
69
+ synapse_sdk/devtools/docs/src/pages/markdown-page.md,sha256=y5sVX3IKfeCH1tSyzOfkDcZxyvXvUBeEnvZNUZf3Hvo,118
70
+ synapse_sdk/devtools/docs/static/.nojekyll,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg,sha256=fj84M-Z0L_zDI8VjgLPR-vGFwXVTTqVZFoa_h5offPs,55746
72
+ synapse_sdk/devtools/docs/static/img/docusaurus.png,sha256=kgQhLTkFvBuNHYgoJdHs61rZQjKSIid9cleDGn1H2Cc,5142
73
+ synapse_sdk/devtools/docs/static/img/favicon.ico,sha256=LrdZtU5AN05FGwXJ6rayeyhRpCy4Lq71fBB_UNxieoI,4286
74
+ synapse_sdk/devtools/docs/static/img/logo.png,sha256=JQWNUU1U4D7Rsta3EJAe9jK-BgFUhKtIMwa8qAQWJKs,3117
75
+ synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg,sha256=XWOoH_PdXqJm6ZFW-OM_dswC3w8E4aRIckBmNwRmC38,31486
76
+ synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg,sha256=Hywde83UIZyYadlLRcBS4oVkZOkcPgcE2ZtHFNMsxmg,36002
77
+ synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg,sha256=CXBNiO-Elke_LuAqTLGxtBPwAN4Fmo15QBkjjvLF5Kc,11887
78
+ synapse_sdk/devtools/web/.gitignore,sha256=UeqwuXCVR17AeEG2aRcVjr_JPOpEHQzojhZVnWG2jyM,17
79
+ synapse_sdk/devtools/web/README.md,sha256=xyc2P1KkP_TQHI6ADzgyfWFjERLw1VKNfbjru3BlnqQ,1097
80
+ synapse_sdk/devtools/web/index.html,sha256=YiYabbQoU_W7EIuLOLQtyI_y_WjTp2DVMVuJWwmP3LQ,501
81
+ synapse_sdk/devtools/web/jsconfig.json,sha256=erIAIRGM4UfgR5fvYTQhXHw21ZBVTqaSOE1CKfLbmuU,338
82
+ synapse_sdk/devtools/web/package-lock.json,sha256=U8D6cfTZGAhYnGAt7cn0zRapKWvqQQ890d5bFAkkuAo,88728
83
+ synapse_sdk/devtools/web/package.json,sha256=XhFiaskku7iVMh33AYrwQUim5Sw3x0m0mFheJBt701w,579
84
+ synapse_sdk/devtools/web/pnpm-lock.yaml,sha256=BvWYbeMzrQJjyWukCiGCLuBwpq-314RtTfJjEBn_23Y,34021
85
+ synapse_sdk/devtools/web/vite.config.js,sha256=mCx0SMeHaJQ6YiwVCjFW2wnKo3ET31CeBQWL-oWGIMI,275
86
+ synapse_sdk/devtools/web/dist/index.html,sha256=dAmmCLQeVS4_PcRFXjqKtUCLi_7m-BVxynliGapOErw,603
87
+ synapse_sdk/devtools/web/src/App.jsx,sha256=ldhadXC3mCQqfAKKU1DHo8f3zSHmH9ZarVC8HrUwIgk,302
88
+ synapse_sdk/devtools/web/src/App.module.css,sha256=CkYPpB5DZOSEnOqliwEyYcdZx8jrPkVS6hCs0DP7x9o,472
89
+ synapse_sdk/devtools/web/src/index.css,sha256=xEcCf4tGnShIHHT_Josx7-wvA1Kb-aeQ_joj0QkPgag,9960
90
+ synapse_sdk/devtools/web/src/index.jsx,sha256=VYyu_ZU9Ubhn14hpaN6y6Pzu9fvGE_rOZvaWS3kLmsc,392
91
+ synapse_sdk/devtools/web/src/logo.svg,sha256=EjsEvGoSQbMRX4beCZCMAZ8l1PDYiRarScJIcSHT37U,1598
92
+ synapse_sdk/devtools/web/src/router.jsx,sha256=RX22-qz1SdFzTkRz-z8KQWRHM5Opq0iiQZKpfZv6Ehc,1367
93
+ synapse_sdk/devtools/web/src/assets/favicon.ico,sha256=DnJqOB_Vx-5-V5YPnqX_ajVAcQVd0HG_EwBSrVqJnj0,15086
94
+ synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx,sha256=K1oANO1dz7DdZlIWwrvoHmLzJMphylbxeYv5zXORCWk,1271
95
+ synapse_sdk/devtools/web/src/components/Layout.jsx,sha256=tAJbm1uOpoLjBarYhfTGy3fyIrDMpnK8_mJtmbc4L54,269
96
+ synapse_sdk/devtools/web/src/components/LogViewer.jsx,sha256=ofRgXKsXcdFxVdWrZ6xt6M9bnlQ0AuozAePrhk_ytQI,8320
97
+ synapse_sdk/devtools/web/src/components/MessageViewer.jsx,sha256=maCiK1D3P-Y5UJaaq_rIfU481GTmB9pFiPygMk2EK3I,5029
98
+ synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx,sha256=AADpHsKBVzD9Sl643YnYw-RX1z14qcKPLYwoiFFfZTI,4414
99
+ synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx,sha256=vBH36S9Wcjy-3rTw9gtJE-Q-R_6IJ8qDpDDeRNlMW6I,8234
100
+ synapse_sdk/devtools/web/src/components/icons.jsx,sha256=PWLGyluP0sudc0Qlc7jcbCcEMXocaX_oFULvRVMepKc,7690
101
+ synapse_sdk/devtools/web/src/utils/api.js,sha256=4jw_vCJpfCpBXAUzl8yW4FZMB1VQnzPds5YTVm8MHCU,10057
102
+ synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx,sha256=wMXIkRkiykWZZrMGZ8bymmzpoN6miHN7RUqL5eLt9P4,9640
103
+ synapse_sdk/devtools/web/src/views/ApplicationsView.jsx,sha256=LKfIWGf7isXc6_Fxaxei_8gM5bbQ_zWkGrfw8Qe5vpI,9081
104
+ synapse_sdk/devtools/web/src/views/HomeView.jsx,sha256=ri2Rq_RzEzfYqNRKna1cI2pWHcvGoWRSS1oZXxGDAGc,8038
105
+ synapse_sdk/devtools/web/src/views/JobDetailView.jsx,sha256=QyVgFMdzHgTQKA7IiEjDtMHjRAAo3ERpe7QBQsWgb7M,11830
106
+ synapse_sdk/devtools/web/src/views/PluginView.jsx,sha256=_-V8elSiEtsvKECeROtQopSY8f5JUIypZhY-vD3XorE,39357
44
107
  synapse_sdk/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
108
  synapse_sdk/plugins/enums.py,sha256=ibixwqA3sCNSriG1jAtL54JQc_Zwo3MufwYUqGhVncc,523
46
109
  synapse_sdk/plugins/exceptions.py,sha256=Qs7qODp_RRLO9y2otU2T4ryj5LFwIZODvSIXkAh91u0,691
@@ -72,7 +135,7 @@ synapse_sdk/plugins/categories/neural_net/actions/gradio.py,sha256=jBkonh0JHRIKF
72
135
  synapse_sdk/plugins/categories/neural_net/actions/inference.py,sha256=0a655ELqNVjPFZTJDiw4EUdcMCPGveUEKyoYqpwMFBU,1019
73
136
  synapse_sdk/plugins/categories/neural_net/actions/test.py,sha256=JY25eg-Fo6WbgtMkGoo_qNqoaZkp3AQNEypJmeGzEog,320
74
137
  synapse_sdk/plugins/categories/neural_net/actions/train.py,sha256=i406Ar0V74QwdvqI_g_DgHblB_SoGRPMsuwWcxfoeew,5429
75
- synapse_sdk/plugins/categories/neural_net/actions/tune.py,sha256=UoXVW0KKUEDeHIk5I77KG1AWLSCPAwbmQFLsYwtHenU,13494
138
+ synapse_sdk/plugins/categories/neural_net/actions/tune.py,sha256=C2zv3o0S-5Hjjsms8ULDGD-ad_DdNTqCPOcDqXa0v1Y,13494
76
139
  synapse_sdk/plugins/categories/neural_net/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
140
  synapse_sdk/plugins/categories/neural_net/base/inference.py,sha256=R5DASI6-5vzsjDOYxqeGGMBjnav5qHF4hNJT8zNUR3I,1097
78
141
  synapse_sdk/plugins/categories/neural_net/templates/config.yaml,sha256=VUCMN1_c6m6VUZqbt2zMwAfdBlusb1SE4TldEbw4498,682
@@ -89,8 +152,8 @@ synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.
89
152
  synapse_sdk/plugins/categories/pre_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
153
  synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
154
  synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py,sha256=6ib3RmnGrjpsQ0e_G-mRH1lfFunQ3gh2M831vuDn7HU,344
92
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py,sha256=J_buXjizGGjme1U3Kn8QtvXIEbfJN_Iud6uX8t0AWq8,7490
93
- synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml,sha256=A_yhaLm505FrOkNuy_mhqa6UUN3GSZphzJUiAN7rEoQ,239
155
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py,sha256=lJ9okNG8oFOXsPnng4gzl_U-bKL-hanCWv8bW3EBna0,15454
156
+ synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml,sha256=4SKJe2gF8UCi3oD0kV8B4M2MkYcosz5GZzzAjAg3slc,508
94
157
  synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
158
  synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py,sha256=HBHxHuv2gMBzDB2alFfrzI_SZ1Ztk6mo7eFbR5GqHKw,106
96
159
  synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py,sha256=fgmTNaPgk8MnElEds4A6LiSmktNTVTNR7jO7dM7FwbI,223
@@ -107,6 +170,8 @@ synapse_sdk/plugins/categories/upload/templates/config.yaml,sha256=kwHNWHFYbzDi1
107
170
  synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
171
  synapse_sdk/plugins/categories/upload/templates/plugin/upload.py,sha256=IZU4sdSMSLKPCtlNqF7DP2howTdYR6hr74HCUZsGdPk,1559
109
172
  synapse_sdk/plugins/templates/cookiecutter.json,sha256=NxOWk9A_v1pO0Ny4IYT9Cj5iiJ16--cIQrGC67QdR0I,396
173
+ synapse_sdk/plugins/templates/plugin-config-schema.json,sha256=f9jilP0J9oLzCxaE_EbetGBkfROx8qmenHrncZNifNQ,12245
174
+ synapse_sdk/plugins/templates/schema.json,sha256=E5bZjskN0mqQtk2eLAB1nfXufIoGvyrtkMMP-wGKSdc,14029
110
175
  synapse_sdk/plugins/templates/hooks/post_gen_project.py,sha256=jqlYkY1O2TxIR-Vh3gnwILYy8k-D39Xx66d2KNQVMCs,147
111
176
  synapse_sdk/plugins/templates/hooks/pre_prompt.py,sha256=aOAMM623s0sKFGjTZaotAOYFvsNMxeii4tPyhOAFKVE,539
112
177
  synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore,sha256=RvBmUbwmzgv0vYzYk2aQ0HpvKyPj6sCpBqsrthCuA4s,243
@@ -126,6 +191,9 @@ synapse_sdk/utils/http.py,sha256=yRxYfru8tMnBVeBK-7S0Ga13yOf8oRHquG5e8K_FWcI,475
126
191
  synapse_sdk/utils/module_loading.py,sha256=chHpU-BZjtYaTBD_q0T7LcKWtqKvYBS4L0lPlKkoMQ8,1020
127
192
  synapse_sdk/utils/network.py,sha256=WI8qn6KlKpHdMi45V57ofKJB8zusJrbQsxT74LwVfsY,1000
128
193
  synapse_sdk/utils/string.py,sha256=rEwuZ9SAaZLcQ8TYiwNKr1h2u4CfnrQx7SUL8NWmChg,216
194
+ synapse_sdk/utils/converters/__init__.py,sha256=JPXQns2GQEPZBVLAjGDhHnAPw0M3oq8WqHUbjwIPyHs,6353
195
+ synapse_sdk/utils/converters/coco/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
196
+ synapse_sdk/utils/converters/coco/from_dm.py,sha256=GH_y0zOYczbwByDusC4JiBl1M3utxpBYit7E_px7F-U,9620
129
197
  synapse_sdk/utils/pydantic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
130
198
  synapse_sdk/utils/pydantic/config.py,sha256=1vYOcUI35GslfD1rrqhFkNXXJOXt4IDqOPSx9VWGfNE,123
131
199
  synapse_sdk/utils/pydantic/errors.py,sha256=0v0T12eQBr1KrFiEOBu6KMaPK4aPEGEC6etPJGoR5b4,1061
@@ -136,9 +204,9 @@ synapse_sdk/utils/storage/providers/__init__.py,sha256=x7RGwZryT2FpVxS7fGWryRVpq
136
204
  synapse_sdk/utils/storage/providers/gcp.py,sha256=i2BQCu1Kej1If9SuNr2_lEyTcr5M_ncGITZrL0u5wEA,363
137
205
  synapse_sdk/utils/storage/providers/s3.py,sha256=W94rQvhGRXti3R4mYP7gmU5pcyCQpGFIBLvxxqLVdRM,2231
138
206
  synapse_sdk/utils/storage/providers/sftp.py,sha256=_8s9hf0JXIO21gvm-JVS00FbLsbtvly4c-ETLRax68A,1426
139
- synapse_sdk-1.0.0a59.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
140
- synapse_sdk-1.0.0a59.dist-info/METADATA,sha256=o12nDh_7n--A4zsPrm14q8c1ccDYZULnD6SgLIr8q3g,1303
141
- synapse_sdk-1.0.0a59.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
142
- synapse_sdk-1.0.0a59.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
143
- synapse_sdk-1.0.0a59.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
144
- synapse_sdk-1.0.0a59.dist-info/RECORD,,
207
+ synapse_sdk-1.0.0a60.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
208
+ synapse_sdk-1.0.0a60.dist-info/METADATA,sha256=yjM9ASGP_ZPcoJOHBfMflI9ph9eSVJ5cT8nR2FQOJzk,1130
209
+ synapse_sdk-1.0.0a60.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
210
+ synapse_sdk-1.0.0a60.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
211
+ synapse_sdk-1.0.0a60.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
212
+ synapse_sdk-1.0.0a60.dist-info/RECORD,,