synapse-sdk 2025.10.1__py3-none-any.whl → 2025.10.3__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 (44) hide show
  1. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md +934 -0
  2. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md +560 -0
  3. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md +715 -0
  4. synapse_sdk/devtools/docs/docs/plugins/plugins.md +12 -5
  5. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md +934 -0
  6. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md +560 -0
  7. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md +715 -0
  8. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +16 -4
  9. synapse_sdk/devtools/docs/sidebars.ts +13 -1
  10. synapse_sdk/plugins/README.md +487 -80
  11. synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
  12. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
  13. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/action.py +10 -0
  14. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
  15. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +145 -0
  16. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
  17. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
  18. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
  19. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +97 -0
  20. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +250 -0
  21. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
  22. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
  23. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +284 -0
  24. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
  25. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
  26. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +87 -0
  27. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +127 -0
  28. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
  29. synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +2 -1
  30. synapse_sdk/plugins/categories/upload/actions/upload/models.py +134 -94
  31. synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +2 -2
  32. synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +106 -14
  33. synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +113 -36
  34. synapse_sdk/plugins/categories/upload/templates/README.md +365 -0
  35. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/METADATA +1 -1
  36. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/RECORD +40 -20
  37. synapse_sdk/devtools/docs/docs/plugins/developing-upload-template.md +0 -1463
  38. synapse_sdk/devtools/docs/docs/plugins/upload-plugins.md +0 -1964
  39. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/developing-upload-template.md +0 -1463
  40. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/upload-plugins.md +0 -2077
  41. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/WHEEL +0 -0
  42. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/entry_points.txt +0 -0
  43. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/licenses/LICENSE +0 -0
  44. {synapse_sdk-2025.10.1.dist-info → synapse_sdk-2025.10.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,365 @@
1
+ # Upload Plugin
2
+
3
+ The Upload Plugin provides comprehensive file and data upload functionality with support for various storage backends, flexible asset path configuration, and Excel metadata integration.
4
+
5
+ ## Quick Start Usage
6
+
7
+ ### CLI Usage Examples
8
+
9
+ #### Standard Upload (Single Directory)
10
+ ```bash
11
+ synapse plugin run upload '{
12
+ "name": "Dataset Upload",
13
+ "storage": 1,
14
+ "collection": 2,
15
+ "use_single_path": false,
16
+ "assets": {
17
+ "path": "/data/dataset",
18
+ "recursive": true
19
+ }
20
+ }'
21
+ ```
22
+
23
+ #### Multi-Path Upload (Different Locations)
24
+ ```bash
25
+ synapse plugin run upload '{
26
+ "name": "Complex Dataset Upload",
27
+ "storage": 1,
28
+ "collection": 2,
29
+ "use_single_path": true,
30
+ "assets": {
31
+ "images": {"path": "/images", "recursive": true},
32
+ "pointclouds": {"path": "/pcd", "recursive": false},
33
+ "annotations": {"path": "/labels", "recursive": true}
34
+ },
35
+ "excel_metadata_path": "/metadata/dataset_info.xlsx"
36
+ }' --debug
37
+ ```
38
+
39
+ ### Common Use Cases
40
+
41
+ #### 1. Simple Dataset Upload
42
+ ```json
43
+ {
44
+ "name": "Training Dataset",
45
+ "storage": 1,
46
+ "collection": 2,
47
+ "assets": {
48
+ "path": "/datasets/training",
49
+ "recursive": true
50
+ }
51
+ }
52
+ ```
53
+
54
+ #### 2. Multi-Source Dataset Upload
55
+ ```json
56
+ {
57
+ "name": "Multi-Camera Dataset",
58
+ "storage": 1,
59
+ "collection": 2,
60
+ "use_single_path": true,
61
+ "assets": {
62
+ "front_camera": {"path": "/cameras/front", "recursive": true},
63
+ "rear_camera": {"path": "/cameras/rear", "recursive": true},
64
+ "lidar": {"path": "/sensors/lidar", "recursive": false}
65
+ }
66
+ }
67
+ ```
68
+
69
+ #### 3. Dataset with Metadata
70
+ ```json
71
+ {
72
+ "name": "Annotated Dataset",
73
+ "storage": 1,
74
+ "collection": 2,
75
+ "assets": {
76
+ "path": "/data/annotated",
77
+ "recursive": true
78
+ },
79
+ "excel_metadata_path": "/data/metadata.xlsx"
80
+ }
81
+ ```
82
+
83
+ ## Configuration Parameters
84
+
85
+ ### Required Parameters
86
+
87
+ | Parameter | Type | Description | Example |
88
+ |-----------|------|-------------|---------|
89
+ | `name` | string | Display name for the upload | `"My Dataset"` |
90
+ | `storage` | integer | Storage backend ID | `1` |
91
+ | `collection` | integer | Collection ID defining file specs | `2` |
92
+ | `assets` | object | Path configuration (varies by mode) | See examples below |
93
+
94
+ ### Optional Parameters
95
+
96
+ | Parameter | Type | Default | Description |
97
+ |-----------|------|---------|-------------|
98
+ | `description` | string | `null` | Upload description |
99
+ | `project` | integer | `null` | Project ID to associate |
100
+ | `use_single_path` | boolean | `false` | Enable individual path mode |
101
+ | `is_recursive` | boolean | `false` | Global recursive setting |
102
+ | `excel_metadata_path` | `string` | `null` | File path to Excel metadata file (will be deprecated in future, consider using `excel_metadata`) |
103
+ | `excel_metadata` | `object` | `null` | Base64 encoded Excel metadata (recommended) |
104
+
105
+ ## Excel Metadata Support
106
+
107
+ The upload plugin provides advanced Excel metadata processing with flexible header support, comprehensive filename matching, and two distinct input methods.
108
+
109
+ ### Input Methods
110
+
111
+ There are two separate parameters for providing Excel metadata:
112
+
113
+ #### 1. File Path Method (`excel_metadata_path`)
114
+
115
+ :::info Future Deprecation Notice
116
+ This parameter will be deprecated in a future version.
117
+ We recommend using the `excel_metadata` parameter with base64 encoding for new implementations.
118
+ :::
119
+
120
+ **Use case:** Traditional file-based uploads where the Excel file exists on the server's file system.
121
+
122
+ Simple string path to an Excel file:
123
+
124
+ ```json
125
+ {
126
+ "excel_metadata_path": "/data/metadata.xlsx"
127
+ }
128
+ ```
129
+
130
+ **Advantages:**
131
+ - Backward compatible with existing implementations
132
+ - Simple and straightforward
133
+ - Direct file system access
134
+
135
+ **Note:** Consider migrating to base64 encoded method for future compatibility (see Method 2 below)
136
+
137
+ #### 2. Base64 Encoded Method (`excel_metadata`) - **RECOMMENDED**
138
+
139
+ **Use case:** Web frontends, APIs, and cloud integrations where files are transmitted as encoded data.
140
+
141
+ Send Excel file as base64-encoded data with original filename:
142
+
143
+ ```json
144
+ {
145
+ "excel_metadata": {
146
+ "data": "UEsDBBQABgAIAAAAIQDd4Z...",
147
+ "filename": "metadata.xlsx"
148
+ }
149
+ }
150
+ ```
151
+
152
+ **Advantages:**
153
+ - No intermediate file storage required
154
+ - Perfect for web upload forms
155
+ - API-friendly JSON payload
156
+ - Automatic temporary file cleanup
157
+ - **This is the recommended method going forward**
158
+
159
+ **Important:** You cannot use both `excel_metadata_path` and `excel_metadata` at the same time
160
+
161
+ **Future-Proof Migration Example:**
162
+ ```python
163
+ import base64
164
+
165
+ # Current approach (will be deprecated in future)
166
+ params = {
167
+ "excel_metadata_path": "/data/metadata.xlsx"
168
+ }
169
+
170
+ # Recommended approach for new implementations
171
+ with open("/data/metadata.xlsx", "rb") as f:
172
+ encoded = base64.b64encode(f.read()).decode("utf-8")
173
+ params = {
174
+ "excel_metadata": {
175
+ "data": encoded,
176
+ "filename": "metadata.xlsx"
177
+ }
178
+ }
179
+ ```
180
+
181
+ ### Excel Format Example
182
+ | filename | category | quality | notes |
183
+ |----------|----------|---------|-------|
184
+ | sample001 | vehicle | high | Clear visibility |
185
+ | sample002 | pedestrian | medium | Partial occlusion |
186
+
187
+ ### Security Limits
188
+ - Max file size: 10MB
189
+ - Max rows: 10,000
190
+ - Max columns: 50
191
+
192
+ ## File Matching Logic
193
+
194
+ Files are matched by **stem name** (filename without extension):
195
+ - `sample001.jpg` → stem: "sample001"
196
+ - `sample001.pcd` → stem: "sample001"
197
+ - `sample001.json` → stem: "sample001"
198
+
199
+ These files form a single dataset named "sample001".
200
+
201
+ ## Troubleshooting Guide
202
+
203
+ ### Common Issues
204
+
205
+ #### "No Files Found" Error
206
+ ```bash
207
+ # Check path exists and is readable
208
+ ls -la /path/to/data
209
+ test -r /path/to/data && echo "Readable" || echo "Not readable"
210
+
211
+ # Verify files exist
212
+ find /path/to/data -name "*.jpg" | head -10
213
+ ```
214
+
215
+ #### Excel Processing Errors
216
+ ```bash
217
+ # Check file format and size
218
+ file /path/to/metadata.xlsx
219
+ ls -lh /path/to/metadata.xlsx
220
+
221
+ # Validate Excel content
222
+ python -c "
223
+ from openpyxl import load_workbook
224
+ wb = load_workbook('/path/to/metadata.xlsx')
225
+ print(f'Sheets: {wb.sheetnames}')
226
+ print(f'Rows: {wb.active.max_row}')
227
+ "
228
+ ```
229
+
230
+ #### Upload Failures
231
+ ```bash
232
+ # Test storage connection
233
+ synapse storage test --storage-id 1
234
+
235
+ # Verify collection configuration
236
+ synapse collection show --id 2
237
+
238
+ # Run with debug mode
239
+ synapse plugin run upload '{}' --debug
240
+ ```
241
+
242
+ ## Best Practices
243
+
244
+ ### Directory Organization
245
+ - Use clear, descriptive directory names
246
+ - Keep reasonable directory sizes (< 10,000 files)
247
+ - Use absolute paths for reliability
248
+
249
+ ### Performance Optimization
250
+ - Enable recursive only when needed
251
+ - Keep Excel files under 5MB
252
+ - Organize files in balanced directory structures
253
+
254
+ ### Security Considerations
255
+ - Validate all paths before processing
256
+ - Use read-only permissions for source data
257
+ - Set appropriate Excel size limits
258
+
259
+ ## Advanced Features
260
+
261
+ ### Batch Processing
262
+ The plugin automatically optimizes batch sizes based on dataset size:
263
+ - Small datasets (< 50 files): batch size 50
264
+ - Large datasets: dynamic batch size (10-100)
265
+
266
+ ### Progress Tracking
267
+ Real-time progress updates with categories:
268
+ - Collection analysis: 2%
269
+ - File upload: 38%
270
+ - Data unit generation: 60%
271
+
272
+ ### Error Handling
273
+ Comprehensive validation at multiple levels:
274
+ - Parameter validation (Pydantic)
275
+ - Runtime path validation
276
+ - File format validation
277
+ - Excel security checks
278
+
279
+ ## Environment Variables
280
+
281
+ Configure Excel processing limits:
282
+ ```bash
283
+ # File size limits
284
+ EXCEL_MAX_FILE_SIZE_MB=10
285
+ EXCEL_MAX_MEMORY_MB=30
286
+
287
+ # Content limits
288
+ EXCEL_MAX_ROWS=10000
289
+ EXCEL_MAX_COLUMNS=50
290
+
291
+ # String length limits
292
+ EXCEL_MAX_FILENAME_LENGTH=255
293
+ EXCEL_MAX_METADATA_VALUE_LENGTH=1000
294
+ ```
295
+
296
+ ## Migration Guide
297
+
298
+ ### Upgrading from Previous Versions
299
+ All existing configurations continue to work. New features are additive:
300
+
301
+ #### Test Current Configuration
302
+ ```bash
303
+ synapse plugin run upload '{}' --debug
304
+ ```
305
+
306
+ #### Convert to Explicit Mode
307
+ ```python
308
+ # Add explicit mode setting
309
+ config["use_single_path"] = False # or True for single path mode
310
+ ```
311
+
312
+ #### Gradual Migration to Single Path Mode
313
+ ```python
314
+ # Start with subset
315
+ test_config = {
316
+ "use_single_path": True,
317
+ "assets": {
318
+ "test_images": {"path": "/existing/path/images", "recursive": True}
319
+ }
320
+ }
321
+
322
+ # Then migrate all assets
323
+ production_config = {
324
+ "use_single_path": True,
325
+ "assets": {
326
+ "images": {"path": "/optimized/path1", "recursive": True},
327
+ "annotations": {"path": "/optimized/path2", "recursive": False}
328
+ }
329
+ }
330
+ ```
331
+
332
+ ## Storage Backend Support
333
+
334
+ The plugin supports multiple storage backends:
335
+ - **Local filesystem**: Optimized for high I/O
336
+ - **S3/GCS**: Cloud storage with retry logic
337
+ - **SFTP**: Connection pooling for remote servers
338
+ - **HTTP**: Streaming uploads for large files
339
+
340
+ ## API Reference
341
+
342
+ ### Plugin Class
343
+ ```python
344
+ from synapse import Plugin
345
+
346
+ plugin = Plugin("upload")
347
+ result = plugin.run(config, debug=True)
348
+ ```
349
+
350
+ ### Result Structure
351
+ ```python
352
+ {
353
+ "status": "success",
354
+ "uploaded_files": 150,
355
+ "data_units_created": 50,
356
+ "errors": [],
357
+ "metadata": {}
358
+ }
359
+ ```
360
+
361
+ ## Support and Resources
362
+
363
+ - **Documentation**: Full API documentation at [synapse-docs]
364
+ - **Issues**: Report bugs at [issue-tracker]
365
+ - **Examples**: More examples at [examples-repo]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 2025.10.1
3
+ Version: 2025.10.3
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -53,7 +53,7 @@ synapse_sdk/devtools/docs/README.md,sha256=yBzWf0K1ef4oymFXDaHo0nYWEgMQJqsOyrkNh
53
53
  synapse_sdk/devtools/docs/docusaurus.config.ts,sha256=K1b002RS0x0tsOyib_6CSgUlASEULC9vAX8YDpbsRN4,3229
54
54
  synapse_sdk/devtools/docs/package-lock.json,sha256=dtepgbPC8gq5uz-hdcac4hIU-Cs209tX0sfBuB7RfEQ,705694
55
55
  synapse_sdk/devtools/docs/package.json,sha256=8veqayA4U3OLpdQaz6AzB59RQwTU-5soeYlYYWIxq28,1187
56
- synapse_sdk/devtools/docs/sidebars.ts,sha256=fwwyZVFAHAVVB5c1-NtkalpF9_1sHZo1AVaZ1X-tZEk,1999
56
+ synapse_sdk/devtools/docs/sidebars.ts,sha256=6MuXgPLBmk-URt37Jnv1uJjiL98xiqSCiHvu-utCXq4,2427
57
57
  synapse_sdk/devtools/docs/tsconfig.json,sha256=O9BNlRPjPiaVHW2_boShMbmTnh0Z2k0KQO6Alf9FMVY,215
58
58
  synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md,sha256=iP7gl_FPqo-qX13lkSRcRoT6ayJNmCkXoyvlm7GH248,312
59
59
  synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md,sha256=cM-dhhTeurEWMcdn0Kx-NpNts2YUUraSI_XFk_gVHEE,3122
@@ -94,10 +94,11 @@ synapse_sdk/devtools/docs/docs/features/utils/file.md,sha256=H4vzxZiJ0X-US8OCfgf
94
94
  synapse_sdk/devtools/docs/docs/features/utils/network.md,sha256=IOYMhC7bM6BwpvaJosj9vxHXr0Vc5_qP09HP8OVuM64,9734
95
95
  synapse_sdk/devtools/docs/docs/features/utils/storage.md,sha256=uIpc37trKUm4XHe1fd4auw56vMq3DvAMjJveSfN4rqU,1000
96
96
  synapse_sdk/devtools/docs/docs/features/utils/types.md,sha256=l84J1Ooa40xBYdvK1YpeKBT9kaqaWQUMNIFPUiC2e_U,1046
97
- synapse_sdk/devtools/docs/docs/plugins/developing-upload-template.md,sha256=PFgxKDDdXb0RiANTcv0n9k0_VhbJ1pTB1nZGbxo9hBw,52689
98
97
  synapse_sdk/devtools/docs/docs/plugins/export-plugins.md,sha256=Wajf3CZRQiytRx6SS1lIBlGO5o4F2vOw-xog51JiHJU,37074
99
- synapse_sdk/devtools/docs/docs/plugins/plugins.md,sha256=2WMjbTKjIXTAdeODeTvJkDSsR9PiA58_VnCFuBnWRw4,24358
100
- synapse_sdk/devtools/docs/docs/plugins/upload-plugins.md,sha256=78-7Z1ZtukPGPRbRAb7eAN35Z_gANMzCp2AF1eFxOrA,64603
98
+ synapse_sdk/devtools/docs/docs/plugins/plugins.md,sha256=G6y3XZZHuC65ApfKE0fYHCAC5TOFnZqzE7VR-KOExVk,25074
99
+ synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md,sha256=GmTZYLyPDuUC9WzjNjf_zNh5FkN-VYzLuSo_dQzewWw,30796
100
+ synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md,sha256=E42ycC5Jfb19DBdLZ2QnCiABUuXkJW4a0ZEQwnXi2ZY,15740
101
+ synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md,sha256=HpqGQ9yUYy4673gkdPNsqFZRdAXnDv3xbrC87brG50o,22288
101
102
  synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json,sha256=qQVHZ1p0CxHg5Gb4CYNxUSeqZ3LVo4nXN_N0yUMVpDM,180
102
103
  synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md,sha256=zJbcwKNVYGpLAGJO7e3cTdptFhb6m_NUzYDU5i6MWgc,1078
103
104
  synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md,sha256=FNk-D3eiMmoc7sdVKazXibjsKl7-6b65KuEYkGOwcYk,886
@@ -111,7 +112,7 @@ synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md,sha256=z1_
111
112
  synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png,sha256=Xawg1DHAiB7XvkMRSl92jMNsmmINQ1kHfyjEKH-CMbU,25427
112
113
  synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png,sha256=WEVjtAuurY7CMNvx86IP-ewXnTYUIJBANOqwTQbXA5c,27841
113
114
  synapse_sdk/devtools/docs/i18n/ko/code.json,sha256=LiQsxfVNxxr6Iivhnf3c_ibOdTiJi4Rh4gP7AnxZSnU,13493
114
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json,sha256=kkLZvbvW_KnHxZFdzNkUbJ7jfFiGCXWGlle3JUJSmYo,770
115
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json,sha256=zLfDdDB_tk1o6aki5Yr36Mt__6A086MYJ_uSWUvQJNM,1304
115
116
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
117
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md,sha256=2XFSZBtbKzfxc-TksSAEJ07eyYdTH98euhkwg6QDZ0U,7926
117
118
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md,sha256=UTTC7G4t-ssX_cNnJfpOB99QB0fWJD2c-UARSpS-Z-M,2487
@@ -142,10 +143,11 @@ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/feature
142
143
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/network.md,sha256=_jYDA25anaQ7FdfJmapACjqDvw3D2J8wj0RWCnXXpLY,10348
143
144
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/storage.md,sha256=V-IIUSVJjwh9n6KVZI5DxrU_T0l3AOtcCrAC2PRs43Q,1048
144
145
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md,sha256=JdDMC2FKovAU55pPEBoIUPPniU5mKAvA5w1Zb36u9AE,1207
145
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/developing-upload-template.md,sha256=Eg2c2li9GfkJpNVNJnNoBAUXweO7X5hRUV6PGuhj--M,54001
146
146
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md,sha256=XcvZuio6NUDuDSe_XhYq1ACDaAJThmekP3anEzOCRks,38804
147
147
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md,sha256=wUuuOmQQY1dURZzJ0HSpiABaJWqKbxQn31Xfn-wUf8E,4947
148
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/upload-plugins.md,sha256=BPG3Ykku3DTEuANPQqZn_vfDNC8vdxLGi__s4lyoKdo,72605
148
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md,sha256=zaodG2yGwNQiPLrI59dhShB0WxZ1EMNdXnQx9E5Kzlk,32523
149
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md,sha256=mcqq_bbC13KAgNZX6OUEbHxt03QhGMN9vF2MmU0WW-A,17111
150
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md,sha256=Rldxjo5DKmHfEBMoF86yLkgYGoip99gVkF7gBSkqNxM,23603
149
151
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json,sha256=SCLmysIhJ6XEEfnL7cOQb3s08EG4LA-ColdRRxecIH8,1601
150
152
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json,sha256=M-ly81cWnesYYtCRcfMvOsKl5P0z52K9kiw0T6GIQ60,429
151
153
  synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx,sha256=xaUQaq9OuqoaRAZQo-ZWev0vbmIkn9l04QfUBxlhnnU,1923
@@ -180,7 +182,7 @@ synapse_sdk/devtools/streamlit_app/utils/json_viewer.py,sha256=W1OH27fq3dazrENBC
180
182
  synapse_sdk/devtools/streamlit_app/utils/log_formatter.py,sha256=fQZoEGP-FK9Sgoqh0Z-o1zX_MHpiXVZXLu_4WMcvYNQ,1292
181
183
  synapse_sdk/devtools/streamlit_app/utils/styles.py,sha256=ivVBlHzJll9uVZX25Sdbu5Hq40SOmaRamrCqY9A9aFY,5147
182
184
  synapse_sdk/devtools/streamlit_app/utils/ui_components.py,sha256=ciSyNEhPYNU6KqnfgDI9RZr1tGFZeiOJ9qBDhlXqmUY,9557
183
- synapse_sdk/plugins/README.md,sha256=S0xowL7ukJZf0_zjNnWz0g_-b731GrIkdkwaS2ubpz0,27991
185
+ synapse_sdk/plugins/README.md,sha256=sBPJ0siFXr5QBfofFCstMQQPbgIKqsuE2co0Ov3R_J8,42528
184
186
  synapse_sdk/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
187
  synapse_sdk/plugins/enums.py,sha256=ibixwqA3sCNSriG1jAtL54JQc_Zwo3MufwYUqGhVncc,523
186
188
  synapse_sdk/plugins/exceptions.py,sha256=Qs7qODp_RRLO9y2otU2T4ryj5LFwIZODvSIXkAh91u0,691
@@ -231,9 +233,26 @@ synapse_sdk/plugins/categories/post_annotation/templates/config.yaml,sha256=2g9S
231
233
  synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
234
  synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py,sha256=GTsGq6zOZDWQSgP-XPr74qVWil480sYrLIBdk28ZMvQ,108
233
235
  synapse_sdk/plugins/categories/pre_annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
- synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
+ synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py,sha256=ML8ronGy5pyFy0mQG_ZggkWpaLlvjkGWR6T5sLQvJOw,147
235
237
  synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py,sha256=6ib3RmnGrjpsQ0e_G-mRH1lfFunQ3gh2M831vuDn7HU,344
236
238
  synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py,sha256=WSoLkQWKfLdS6qaCJEO780_fUNMi3--7zPf84YJET-Y,42006
239
+ synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py,sha256=vPpkJg7r3h1D6aTCoE-UgOkFGC0nVGIaE4ygmrmrI28,75
240
+ synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/action.py,sha256=6ib3RmnGrjpsQ0e_G-mRH1lfFunQ3gh2M831vuDn7HU,344
241
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py,sha256=st43RA700jdz7ZeQzCWRTpF6CKca3z3m4tv1489Q6NI,857
242
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py,sha256=2DNCaCeRzBIjFXYmm0L8Hgv6DDufezlI05m2G1__wKo,5514
243
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py,sha256=0ewRgUUf1s1qqKzzGhpquAipfuFCqYAT968x9GRxctM,9740
244
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py,sha256=NSXLepDybwqgcZM4JYOs8SRYtOKz6azrA8tjPRhr_MU,446
245
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py,sha256=Aw1sIWRURhEo504nxjnImJdhkeEiiBUzvtuWOLOIp_c,3170
246
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py,sha256=6bF4sEVcS5wsosR7-IYO4v-h48c0-z2_cMiE3PSgIUs,2920
247
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py,sha256=xcO1QVtVHatVSyVYdtO2PVv4xMlJwPaIWkbLcCkH8MI,10854
248
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py,sha256=erClqrmuh3etSoQ6Iu_m_Yvt7VhAyWWFzEtWHe-Hf-A,2529
249
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py,sha256=XkNpVzPQ2X8skz-1K9_O1ViMvxOYFayVRiCC-BEWVc4,348
250
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py,sha256=BcZm3EyCaxIJW6MPMmFaxP-MoS9QIh8zrqw8aWr3w5Y,13638
251
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py,sha256=8XFPL8qQyxKi3TAYxup73LzOsmGeFGp8z70VqgiI4zs,5573
252
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py,sha256=7-AqPFFBQXyRL1Zs3LJLNG-7CCshwLbB2UhWIhr9nMM,2946
253
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py,sha256=idrLcZGLspwTHw5L2Xn41d9bWr7pkpfmSG2Op5tZocE,3354
254
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py,sha256=nkvJEej_TUcnwKuArrREltfrvVGtuqA2hhgYy7dkFao,5419
255
+ synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py,sha256=80JrOrJbaJgFWtiQ38tTVVYW12BdYKRihOnA4jGCSZg,5944
237
256
  synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml,sha256=VREoCp9wsvZ8T2E1d_MEKlR8TC_herDJGVQtu3ezAYU,589
238
257
  synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
239
258
  synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py,sha256=HBHxHuv2gMBzDB2alFfrzI_SZ1Ztk6mo7eFbR5GqHKw,106
@@ -246,25 +265,25 @@ synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py,sha256=47
246
265
  synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py,sha256=eevNg0nOcYFR4z_L_R-sCvVOYoLWSAH1jwDkAf3YCjY,320
247
266
  synapse_sdk/plugins/categories/upload/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
248
267
  synapse_sdk/plugins/categories/upload/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
249
- synapse_sdk/plugins/categories/upload/actions/upload/__init__.py,sha256=PcnEPlztb69MCgDjrzIcoVcpXGOoZzAj6phvtiCxz60,504
268
+ synapse_sdk/plugins/categories/upload/actions/upload/__init__.py,sha256=ShmALSr3rncCMHYlSJkYwdvEOsEHUxAzG5-hoERhmI0,548
250
269
  synapse_sdk/plugins/categories/upload/actions/upload/action.py,sha256=fFAZpNk_pZImaipeCcVKL4HdCnnj3BMr12mPduE-Cg0,9993
251
270
  synapse_sdk/plugins/categories/upload/actions/upload/context.py,sha256=RbAt1aag42H5h-m7VWv98e0X_7rVjlfBfILsQqrsK_c,6329
252
271
  synapse_sdk/plugins/categories/upload/actions/upload/enums.py,sha256=TQ-HiGI_-15rc11XQiCT6O5hRzmjkdCnRhX3Ci3bKk0,7856
253
272
  synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py,sha256=QIpts9h78OD8GWCIGjX9jSV4v3Gb0cqH9Eo-6OwN1Qk,1223
254
273
  synapse_sdk/plugins/categories/upload/actions/upload/factory.py,sha256=n8PE_LEz8ajLWmRg-CacBt0Bo0vhpDp89_QhvY2VMnQ,6336
255
- synapse_sdk/plugins/categories/upload/actions/upload/models.py,sha256=5MCgHCszvc8LXnibqpgNZ1sC3mQvmx63X2QxAFs1CJY,7718
274
+ synapse_sdk/plugins/categories/upload/actions/upload/models.py,sha256=EVacyLmRI-3AxTFpKVuhqju-8HT-A1XJaJuoMh62EqQ,9092
256
275
  synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py,sha256=P5SGejY4Rb9TyQwO6S0l9mOBqVOr9J88_3bd7Y-qOmI,7116
257
276
  synapse_sdk/plugins/categories/upload/actions/upload/registry.py,sha256=RrRvVJANlb-RdqFeWrHf-vLtWSgsjwSVMMXEXsZiQAk,4093
258
277
  synapse_sdk/plugins/categories/upload/actions/upload/run.py,sha256=BZRwy_AtJQtlKjgHx2qadHUS9IC-E_w0zEMpwKgR-P0,6389
259
278
  synapse_sdk/plugins/categories/upload/actions/upload/utils.py,sha256=4GiboK06bPhM3y8LIKNbMzEkLj4TSV3T6ihnKnxTSL4,8063
260
279
  synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py,sha256=-OM-Ruidj0w7wVuyg8BtJcN4Au9DJSKQpra9WPJ67js,57
261
280
  synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py,sha256=yzOmjQKlcsmlB5XZqGgQbCyNwwUiKa9nWd2-Pn22Vls,3682
262
- synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py,sha256=68hFsnUQvZEjgr_7XhvJLla7UMXxtizHgpGBBZxP81A,2130
281
+ synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py,sha256=JAc1L9UfiEhNQ2NWnBMX2Bs4Vej08QPYML6Mb0-a0jg,2200
263
282
  synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py,sha256=zLm4BOuu4d8YqXOjOEDhbEUFQ2t4eSsPJB5e_FKYczI,2345
264
283
  synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py,sha256=ooShRR1w7lAaA2STAtOo3LaLPnK_tC08oefP3dZ2V60,3366
265
284
  synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py,sha256=ymnTfsaVJj58r7U8nWIbjHgIdm0kXFjZlvl2PHJWksI,2401
266
- synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py,sha256=T5YtyBaAFi7Tpj3LsouWxYl5LxTMY0PtmwwNpqYYo6E,4358
267
- synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py,sha256=CMxB_SYlwoJ_sfx50upTRNKwgG1avztEz1Y6tRlFx68,3610
285
+ synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py,sha256=xgBVneUZQFeHe6l2MWc5ZZ5PCGtq_l7AHX8NLdmEQvg,8473
286
+ synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py,sha256=ftphDYloGG0G0pmRHyMAF8pIpQPiofxYyHRR4RTxxAU,6932
268
287
  synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py,sha256=cuWjxfWrmHrklTt5rcM8XYJ40qE7IRXE4KdY5oK5ga4,3893
269
288
  synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py,sha256=31N7lb41G1-LlwLaGkCQkKB8ep4FPxxtLhp0sv3-1Vs,2427
270
289
  synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py,sha256=JXysLlVGJDVtqZYFE6WIGcKgFNHcjqTzC0HO233Sak0,54
@@ -283,6 +302,7 @@ synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/async_upl
283
302
  synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py,sha256=IkRpy561HMHE1Ji0l2Nv21CfH9ZiCrm4qBCADeZFTXs,1875
284
303
  synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py,sha256=aq-sI8tScvc0rX21qlLeBgJyKaVpC0hziMB5vcg5K3Y,38
285
304
  synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py,sha256=3v-nBoI8osnRKCYE0YqXRiA-yqe2_JRklVQ-Lo03LgY,1830
305
+ synapse_sdk/plugins/categories/upload/templates/README.md,sha256=30BC3CpHrPmjPeLExFtjnYi6qZrBcDdn4fOc5F-uMmc,8995
286
306
  synapse_sdk/plugins/categories/upload/templates/config.yaml,sha256=xrLMhK6QTvxnqep7ulrEuq8DxVPS7TOI2cogCaBxK2g,1127
287
307
  synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py,sha256=G8xv24PGWmL84Y77tElaEJhbjyjxklkqqdmxmZ834L0,11239
288
308
  synapse_sdk/plugins/categories/upload/templates/plugin/upload.py,sha256=ylEbp2KFiLQosVr-Jl5SDeMNSgr9mwb4eNzuEq73BJA,3588
@@ -348,9 +368,9 @@ synapse_sdk/utils/storage/providers/gcp.py,sha256=i2BQCu1Kej1If9SuNr2_lEyTcr5M_n
348
368
  synapse_sdk/utils/storage/providers/http.py,sha256=2DhIulND47JOnS5ZY7MZUex7Su3peAPksGo1Wwg07L4,5828
349
369
  synapse_sdk/utils/storage/providers/s3.py,sha256=ZmqekAvIgcQBdRU-QVJYv1Rlp6VHfXwtbtjTSphua94,2573
350
370
  synapse_sdk/utils/storage/providers/sftp.py,sha256=_8s9hf0JXIO21gvm-JVS00FbLsbtvly4c-ETLRax68A,1426
351
- synapse_sdk-2025.10.1.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
352
- synapse_sdk-2025.10.1.dist-info/METADATA,sha256=no_NdFTFHDpqgaKhiwrpbPZ-vCybuHbT89Hb9lXVt9A,4186
353
- synapse_sdk-2025.10.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
354
- synapse_sdk-2025.10.1.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
355
- synapse_sdk-2025.10.1.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
356
- synapse_sdk-2025.10.1.dist-info/RECORD,,
371
+ synapse_sdk-2025.10.3.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
372
+ synapse_sdk-2025.10.3.dist-info/METADATA,sha256=wvNWIgxu6dCxIudxnaO9yKxC-mg0xApM6CRul_s95m0,4186
373
+ synapse_sdk-2025.10.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
374
+ synapse_sdk-2025.10.3.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
375
+ synapse_sdk-2025.10.3.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
376
+ synapse_sdk-2025.10.3.dist-info/RECORD,,