synapse-sdk 2025.9.5__py3-none-any.whl → 2025.10.1__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.

@@ -50,10 +50,65 @@ Execution context for plugin actions.
50
50
  def start(self):
51
51
  # Log messages
52
52
  self.run.log("Processing started")
53
-
53
+
54
54
  # Update progress
55
55
  self.run.set_progress(0.5)
56
-
56
+
57
57
  # Set metrics
58
58
  self.run.set_metrics({"processed": 100})
59
- ```
59
+ ```
60
+
61
+ ### Development Logging
62
+
63
+ The `Run` class includes a specialized logging system for plugin developers with the `log_dev_event()` method and `DevLog` model.
64
+
65
+ #### DevLog Model
66
+
67
+ Structured model for development event logging:
68
+
69
+ ```python
70
+ from synapse_sdk.shared.enums import Context
71
+
72
+ class DevLog(BaseModel):
73
+ event_type: str # Event category (automatically generated as '{action_name}_dev_log')
74
+ message: str # Descriptive message
75
+ data: dict | None # Optional additional data
76
+ level: Context # Event severity level
77
+ created: str # ISO timestamp
78
+ ```
79
+
80
+ #### log_dev_event Method
81
+
82
+ Log custom development events for debugging and monitoring:
83
+
84
+ ```python
85
+ def start(self):
86
+ # Basic event logging (event_type automatically set to '{action_name}_dev_log')
87
+ self.run.log_dev_event('Data validation completed', {'records_count': 100})
88
+
89
+ # Performance tracking
90
+ self.run.log_dev_event('Processing time recorded', {'duration_ms': 1500})
91
+
92
+ # Debug with warning level
93
+ self.run.log_dev_event('Variable state checkpoint',
94
+ {'variable_x': 42}, level=Context.WARNING)
95
+
96
+ # Simple event without data
97
+ self.run.log_dev_event('Plugin initialization complete')
98
+ ```
99
+
100
+ **Parameters:**
101
+
102
+ - `message` (str): Human-readable description
103
+ - `data` (dict, optional): Additional context data
104
+ - `level` (Context, optional): Event severity (default: Context.INFO)
105
+
106
+ **Note:** The `event_type` is automatically generated as `{action_name}_dev_log` and cannot be modified by plugin developers.
107
+
108
+ **Use Cases:**
109
+
110
+ - **Debugging**: Track variable states and execution flow
111
+ - **Performance**: Record processing times and resource usage
112
+ - **Validation**: Log data validation results
113
+ - **Error Tracking**: Capture detailed error information
114
+ - **Progress Monitoring**: Record intermediate states in long-running tasks
@@ -169,6 +169,45 @@ flowchart TD
169
169
 
170
170
  The design follows the **Template Method Pattern** where `BaseExporter.export()` defines the algorithm skeleton, and subclasses customize specific steps through the hook methods.
171
171
 
172
+ ## Plugin Configuration
173
+
174
+ Export plugin templates include configuration fields for filtering and plugin discovery:
175
+
176
+ ```yaml
177
+ actions:
178
+ export:
179
+ entrypoint: plugin.export.Exporter
180
+ annotation_types:
181
+ - image
182
+ - video
183
+ - audio
184
+ - text
185
+ - pcd
186
+ - prompt
187
+
188
+ data_types:
189
+ - image
190
+ - video
191
+ - audio
192
+ - text
193
+ - pcd
194
+ ```
195
+
196
+ ### Configuration Fields
197
+
198
+ - **data_types**: List of supported data types for filtering export plugins (plugin-level filter)
199
+
200
+ - Supported values: `image`, `video`, `audio`, `text`, `pcd`
201
+ - Used by the platform to filter and display relevant export plugins to users based on their data type
202
+
203
+ - **annotation_types**: List of supported annotation types for filtering export plugins (action-level filter)
204
+ - Supported values: `image`, `video`, `audio`, `text`, `pcd`, `prompt`
205
+ - Defined within each action's configuration (e.g., `actions.export.annotation_types`)
206
+ - Used by the platform to filter and display relevant export plugins to users based on their annotation type
207
+ - Each action can have different annotation type requirements
208
+
209
+ **Best Practice**: Customize these fields to accurately reflect your plugin's capabilities. The template includes all common types as examples, but you should modify the list to match what your plugin actually supports.
210
+
172
211
  ## BaseExporter Class Structure
173
212
 
174
213
  The new BaseExporter class provides an object-oriented approach for export plugins:
@@ -0,0 +1,114 @@
1
+ ---
2
+ id: models
3
+ title: 플러그인 모델
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # 플러그인 모델
8
+
9
+ 플러그인 시스템의 핵심 데이터 모델 및 구조입니다.
10
+
11
+ ## PluginRelease
12
+
13
+ 플러그인의 특정 버전을 나타냅니다.
14
+
15
+ ```python
16
+ from synapse_sdk.plugins.models import PluginRelease
17
+
18
+ release = PluginRelease(plugin_path="./my-plugin")
19
+ ```
20
+
21
+ ### 속성
22
+
23
+ - `plugin`: 플러그인 코드 식별자
24
+ - `version`: 플러그인 버전
25
+ - `code`: 플러그인과 버전이 결합된 문자열
26
+ - `category`: 플러그인 카테고리
27
+ - `name`: 사람이 읽을 수 있는 플러그인 이름
28
+ - `actions`: 사용 가능한 플러그인 액션
29
+
30
+ ## PluginAction
31
+
32
+ 플러그인 액션 실행 요청을 나타냅니다.
33
+
34
+ ```python
35
+ from synapse_sdk.plugins.models import PluginAction
36
+
37
+ action = PluginAction(
38
+ plugin="my-plugin",
39
+ version="1.0.0",
40
+ action="process",
41
+ params={"input": "data"}
42
+ )
43
+ ```
44
+
45
+ ## Run
46
+
47
+ 플러그인 액션의 실행 컨텍스트입니다.
48
+
49
+ ```python
50
+ def start(self):
51
+ # 메시지 로깅
52
+ self.run.log("Processing started")
53
+
54
+ # 진행률 업데이트
55
+ self.run.set_progress(0.5)
56
+
57
+ # 메트릭 설정
58
+ self.run.set_metrics({"processed": 100})
59
+ ```
60
+
61
+ ### 개발 로깅
62
+
63
+ `Run` 클래스는 `log_dev_event()` 메서드와 `DevLog` 모델을 통해 플러그인 개발자를 위한 특수 로깅 시스템을 포함합니다.
64
+
65
+ #### DevLog 모델
66
+
67
+ 개발 이벤트 로깅을 위한 구조화된 모델:
68
+
69
+ ```python
70
+ from synapse_sdk.shared.enums import Context
71
+
72
+ class DevLog(BaseModel):
73
+ event_type: str # 이벤트 카테고리 ('{action_name}_dev_log' 형태로 자동 생성)
74
+ message: str # 설명 메시지
75
+ data: dict | None # 선택적 추가 데이터
76
+ level: Context # 이벤트 심각도 수준
77
+ created: str # ISO 타임스탬프
78
+ ```
79
+
80
+ #### log_dev_event 메서드
81
+
82
+ 디버깅 및 모니터링을 위한 커스텀 개발 이벤트 로깅:
83
+
84
+ ```python
85
+ def start(self):
86
+ # 기본 이벤트 로깅 (event_type은 '{action_name}_dev_log' 형태로 자동 설정)
87
+ self.run.log_dev_event('데이터 검증 완료', {'records_count': 100})
88
+
89
+ # 성능 추적
90
+ self.run.log_dev_event('처리 시간 기록', {'duration_ms': 1500})
91
+
92
+ # 경고 레벨의 디버그
93
+ self.run.log_dev_event('변수 상태 체크포인트',
94
+ {'variable_x': 42}, level=Context.WARNING)
95
+
96
+ # 데이터 없는 간단한 이벤트
97
+ self.run.log_dev_event('플러그인 초기화 완료')
98
+ ```
99
+
100
+ **매개변수:**
101
+
102
+ - `message` (str): 사람이 읽을 수 있는 설명
103
+ - `data` (dict, 선택사항): 추가 컨텍스트 데이터
104
+ - `level` (Context, 선택사항): 이벤트 심각도 (기본값: Context.INFO)
105
+
106
+ **참고:** `event_type`은 `{action_name}_dev_log` 형태로 자동 생성되며 플러그인 개발자가 수정할 수 없습니다.
107
+
108
+ **사용 사례:**
109
+
110
+ - **디버깅**: 변수 상태 및 실행 흐름 추적
111
+ - **성능**: 처리 시간 및 리소스 사용량 기록
112
+ - **검증**: 데이터 검증 결과 로깅
113
+ - **오류 추적**: 상세한 오류 정보 캡처
114
+ - **진행 상황 모니터링**: 장기 실행 작업의 중간 상태 기록
@@ -169,6 +169,45 @@ flowchart TD
169
169
 
170
170
  이 설계는 **템플릿 메서드 패턴**을 따르며, `BaseExporter.export()`가 알고리즘 골격을 정의하고 서브클래스가 훅 메서드를 통해 특정 단계를 커스터마이징합니다.
171
171
 
172
+ ## 플러그인 설정
173
+
174
+ Export 플러그인 템플릿은 필터링 및 플러그인 검색을 위한 설정 필드를 포함합니다:
175
+
176
+ ```yaml
177
+ actions:
178
+ export:
179
+ entrypoint: plugin.export.Exporter
180
+ annotation_types:
181
+ - image
182
+ - video
183
+ - audio
184
+ - text
185
+ - pcd
186
+ - prompt
187
+
188
+ data_types:
189
+ - image
190
+ - video
191
+ - audio
192
+ - text
193
+ - pcd
194
+ ```
195
+
196
+ ### 설정 필드
197
+
198
+ - **data_types**: Export 플러그인 필터링을 위한 지원 데이터 타입 목록 (플러그인 레벨 필터)
199
+
200
+ - 지원 값: `image`, `video`, `audio`, `text`, `pcd`
201
+ - 플랫폼에서 사용자의 데이터 타입에 따라 관련 export 플러그인을 필터링하고 표시하는 데 사용됩니다
202
+
203
+ - **annotation_types**: Export 플러그인 필터링을 위한 어노테이션 타입 목록 (액션 레벨 필터)
204
+ - 지원 값: `image`, `video`, `audio`, `text`, `pcd`, `prompt`
205
+ - 각 액션의 설정 내에서 정의됩니다 (예: `actions.export.annotation_types`)
206
+ - 플랫폼에서 사용자의 주석 타입에 따라 관련 export 플러그인을 필터링하고 표시하는 데 사용됩니다
207
+ - 각 액션마다 다른 어노테이션 타입 요구사항을 가질 수 있습니다
208
+
209
+ **모범 사례**: 플러그인의 실제 기능을 정확히 반영하도록 이 필드들을 커스터마이징하세요. 템플릿에는 모든 일반적인 타입이 예시로 포함되어 있지만, 플러그인이 실제로 지원하는 항목에 맞게 목록을 수정해야 합니다.
210
+
172
211
  ## BaseExporter 클래스 구조
173
212
 
174
213
  새로운 BaseExporter 클래스는 export 플러그인을 위한 객체지향적 접근 방식을 제공합니다:
@@ -66,6 +66,13 @@ const sidebars: SidebarsConfig = {
66
66
  'api/clients/base',
67
67
  ],
68
68
  },
69
+ {
70
+ type: 'category',
71
+ label: 'Plugins',
72
+ items: [
73
+ 'api/plugins/models',
74
+ ],
75
+ },
69
76
  ],
70
77
  },
71
78
  'configuration',
@@ -164,6 +164,7 @@ class Action:
164
164
  'params': self.params,
165
165
  'envs': self.envs,
166
166
  'debug': self.debug,
167
+ 'action_name': self.name,
167
168
  }
168
169
  return self.run_class(self.job_id, context)
169
170
 
@@ -1,3 +1,21 @@
1
1
  actions:
2
2
  export:
3
3
  entrypoint: plugin.export.Exporter
4
+ # Filter to only export action specific annotation types (e.g., only export image annotations project)
5
+ # Supported types: image, video, audio, text, pcd, prompt
6
+ annotation_types:
7
+ - image
8
+ - video
9
+ - audio
10
+ - text
11
+ - pcd
12
+ - prompt
13
+
14
+ # Filter to only export specific data types (e.g., only export image data)
15
+ # Supported types: image, video, audio, text, pcd
16
+ data_types:
17
+ - image
18
+ - video
19
+ - audio
20
+ - text
21
+ - pcd
@@ -61,3 +61,100 @@ class Exporter(BaseExporter):
61
61
  def after_convert(self, data):
62
62
  """Post-processes the data after conversion."""
63
63
  return data
64
+
65
+ def sample_dev_log(self):
66
+ """Sample development logging examples for plugin developers.
67
+
68
+ This method demonstrates various ways to use log_dev_event() for debugging,
69
+ monitoring, and tracking plugin execution. The event_type is automatically
70
+ generated as 'export_dev_log' for export actions and cannot be modified.
71
+
72
+ Use Cases:
73
+ 1. Process Tracking: Log when important processes start/complete
74
+ 2. Error Handling: Capture detailed error information with appropriate severity
75
+ 3. Performance Monitoring: Record timing and resource usage
76
+ 4. Data Validation: Log validation results and data quality metrics
77
+ 5. Debug Information: Track variable states and execution flow
78
+
79
+ Examples show different scenarios where development logging is beneficial:
80
+ - Basic process logging with structured data
81
+ - Error logging with exception details and danger level
82
+ - Performance tracking with timing information
83
+ - Validation logging with success/failure status
84
+ """
85
+ # Example 1: Basic Process Tracking
86
+ # Use when: Starting important processes that you want to monitor
87
+ # Benefits: Helps track execution flow and identify bottlenecks
88
+ self.run.log_dev_event(
89
+ 'Starting data conversion process',
90
+ {'data_type': 'img', 'data_size': 'unknown', 'conversion_method': 'custom_format'},
91
+ )
92
+
93
+ # Example 2: Error Handling with Detailed Information
94
+ # Use when: Catching exceptions that you want to analyze later
95
+ # Benefits: Provides structured error data for debugging and monitoring
96
+ from synapse_sdk.shared.enums import Context
97
+
98
+ try:
99
+ # Simulated operation that might fail
100
+ pass
101
+ except Exception as e:
102
+ self.run.log_dev_event(
103
+ f'Data conversion failed: {str(e)}',
104
+ {
105
+ 'error_type': type(e).__name__,
106
+ 'error_details': str(e),
107
+ 'operation': 'data_conversion',
108
+ 'recovery_attempted': False,
109
+ },
110
+ level=Context.DANGER,
111
+ )
112
+
113
+ # Example 3: Performance Monitoring
114
+ # Use when: Tracking processing time for optimization
115
+ # Benefits: Identifies performance bottlenecks and optimization opportunities
116
+ import time
117
+
118
+ start_time = time.time()
119
+ # Simulated processing work
120
+ time.sleep(0.001)
121
+ processing_time = time.time() - start_time
122
+
123
+ self.run.log_dev_event(
124
+ 'File processing completed',
125
+ {
126
+ 'processing_time_ms': round(processing_time * 1000, 2),
127
+ 'files_processed': 1,
128
+ 'performance_rating': 'excellent' if processing_time < 0.1 else 'normal',
129
+ },
130
+ )
131
+
132
+ # Example 4: Data Validation Logging
133
+ # Use when: Validating data quality or structure
134
+ # Benefits: Helps identify data issues and track validation metrics
135
+ validation_passed = True # Simulated validation result
136
+ self.run.log_dev_event(
137
+ 'Data validation completed',
138
+ {
139
+ 'validation_passed': validation_passed,
140
+ 'validation_rules': ['format_check', 'required_fields', 'data_types'],
141
+ 'data_quality_score': 95.5,
142
+ },
143
+ level=Context.SUCCESS if validation_passed else Context.WARNING,
144
+ )
145
+
146
+ # Example 5: Debug Information with Variable States
147
+ # Use when: Debugging complex logic or tracking variable changes
148
+ # Benefits: Provides insight into execution state at specific points
149
+ current_batch_size = 100
150
+ memory_usage = 45.2 # Simulated memory usage in MB
151
+
152
+ self.run.log_dev_event(
153
+ 'Processing checkpoint reached',
154
+ {
155
+ 'current_batch_size': current_batch_size,
156
+ 'memory_usage_mb': memory_usage,
157
+ 'checkpoint_location': 'after_data_preprocessing',
158
+ 'next_operation': 'file_saving',
159
+ },
160
+ )
@@ -1,7 +1,10 @@
1
1
  import os
2
+ from datetime import datetime
2
3
  from functools import cached_property
3
4
  from typing import Any, Dict
4
5
 
6
+ from pydantic import BaseModel
7
+
5
8
  from synapse_sdk.clients.backend import BackendClient
6
9
  from synapse_sdk.devtools.config import get_backend_config
7
10
  from synapse_sdk.loggers import BackendLogger, ConsoleLogger
@@ -131,6 +134,26 @@ class Run:
131
134
  context = None
132
135
  client = None
133
136
 
137
+ class DevLog(BaseModel):
138
+ """Model for developer log entries.
139
+
140
+ Records custom events and information that plugin developers want to track
141
+ during plugin execution for debugging and monitoring purposes.
142
+
143
+ Attributes:
144
+ event_type (str): Type/category of the development event
145
+ message (str): Descriptive message about the event
146
+ data (dict | None): Optional additional data/context
147
+ level (Context): Event status/severity level
148
+ created (str): Timestamp when event occurred
149
+ """
150
+
151
+ event_type: str
152
+ message: str
153
+ data: dict | None = None
154
+ level: Context
155
+ created: str
156
+
134
157
  def __init__(self, job_id, context=None):
135
158
  self.job_id = job_id
136
159
  self.context = context or {}
@@ -177,5 +200,44 @@ class Run:
177
200
  def log_message(self, message, context=Context.INFO.value):
178
201
  self.logger.log('message', {'context': context, 'content': message})
179
202
 
203
+ def log_dev_event(self, message: str, data: dict | None = None, level: Context = Context.INFO):
204
+ """Log development event for plugin developers.
205
+
206
+ This function allows plugin developers to log custom events and information
207
+ during plugin execution for debugging, monitoring, and development purposes.
208
+ The event_type is automatically constructed as '{action_name}_dev_log' and cannot
209
+ be modified by plugin developers.
210
+
211
+ Args:
212
+ message (str): Descriptive message about the event
213
+ data (dict | None): Optional additional data or context to include
214
+ level (Context): Event severity level (INFO, WARNING, DANGER, SUCCESS)
215
+
216
+ Example:
217
+ >>> run = Run(job_id, context)
218
+ >>> run.log_dev_event('Data validation completed', {'records_count': 100})
219
+ >>> run.log_dev_event('Processing time recorded', {'duration_ms': 1500})
220
+ >>> run.log_dev_event('Variable state at checkpoint', {'variable_x': 42}, level=Context.WARNING)
221
+ """
222
+ # Construct event_type from action name - this cannot be modified by developers
223
+ action_name = self.context.get('action_name', 'unknown')
224
+ event_type = f'{action_name}_dev_log'
225
+
226
+ # Log the message for basic logging
227
+ self.log_message(f'[{event_type.upper()}] {message}', context=level.value)
228
+
229
+ # Also log the structured event for development tracking
230
+ now = datetime.now().isoformat()
231
+ self.log(
232
+ 'dev_event',
233
+ self.DevLog(
234
+ event_type=event_type,
235
+ message=message,
236
+ data=data,
237
+ level=level,
238
+ created=now,
239
+ ).model_dump(),
240
+ )
241
+
180
242
  def end_log(self):
181
243
  self.log_message('Plugin run is complete.')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 2025.9.5
3
+ Version: 2025.10.1
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -26,7 +26,7 @@ Requires-Dist: websockets
26
26
  Requires-Dist: ffmpeg-python==0.2.0
27
27
  Requires-Dist: sentry-sdk==2.38.0
28
28
  Provides-Extra: all
29
- Requires-Dist: ray[all]==2.49.1; extra == "all"
29
+ Requires-Dist: ray[all]==2.50.0; extra == "all"
30
30
  Requires-Dist: python-nmap; extra == "all"
31
31
  Requires-Dist: hyperopt; extra == "all"
32
32
  Requires-Dist: bayesian-optimization==1.4.3; extra == "all"
@@ -62,6 +62,19 @@ A Python SDK for building and managing ML plugins, data annotation workflows, an
62
62
  - **🛠️ Development Tools**: Interactive web dashboard for monitoring and debugging
63
63
  - **⚡ CLI Interface**: Command-line tool for configuration, plugin management, and development
64
64
 
65
+ ## 📅 Versioning
66
+
67
+ Synapse SDK uses **CalVer (Calendar Versioning)**.
68
+ The version format is `YYYY.MM.PATCH`, based on the release year and month.
69
+
70
+ Examples:
71
+
72
+ - `2025.9.5` → 5th release in September 2025
73
+ - `2025.10.1` → 1st release in October 2025
74
+
75
+ We recommend using the latest monthly release.
76
+ If needed, you can pin to a specific month, e.g. `2025.9.*`.
77
+
65
78
  ## 🚀 Quick Start
66
79
 
67
80
  ```bash
@@ -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=4uZVcHAIJ6irPdBVOyplr0BxyW3WzfPgZLI47w5U6bI,1856
56
+ synapse_sdk/devtools/docs/sidebars.ts,sha256=fwwyZVFAHAVVB5c1-NtkalpF9_1sHZo1AVaZ1X-tZEk,1999
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
@@ -84,7 +84,7 @@ synapse_sdk/devtools/docs/docs/api/clients/integration-mixin.md,sha256=s0K_qjweC
84
84
  synapse_sdk/devtools/docs/docs/api/clients/ml-mixin.md,sha256=b4GxUBltwJOjdy0b8MPIVAv2LevzSFBwQKe2uTvslJ4,16739
85
85
  synapse_sdk/devtools/docs/docs/api/clients/ray.md,sha256=dnrqIT3MeCUnCH-9yUH59RSm46ZUtdRuncpfjFoPMXY,8089
86
86
  synapse_sdk/devtools/docs/docs/api/plugins/categories.md,sha256=8zRHyyl3JQ2p0zKU86-nE-NDeWZLMwp0bh8ZF-PSx9M,839
87
- synapse_sdk/devtools/docs/docs/api/plugins/models.md,sha256=XRMTD2DBilZwmO6AmPhLgdzNfBpcFkAdrBg9mgOMTUs,1060
87
+ synapse_sdk/devtools/docs/docs/api/plugins/models.md,sha256=GWjh_4TUIQNKa5xLSf_pfF8AWn6V2PlPStUz65X1fq8,2935
88
88
  synapse_sdk/devtools/docs/docs/api/plugins/utils.md,sha256=39soJ1JLROm_mygR9UWG6XqZ1i5ESmTeZGijrAfUh-o,8389
89
89
  synapse_sdk/devtools/docs/docs/concepts/index.md,sha256=ezn67P568PvFRPVE4T74j5MuEikgVOX7DV6MxIQBOHo,760
90
90
  synapse_sdk/devtools/docs/docs/examples/index.md,sha256=IZnF8veO7PqJYtAQevL1VHt1rBzieCSaXoWTQoXS4lA,504
@@ -95,7 +95,7 @@ synapse_sdk/devtools/docs/docs/features/utils/network.md,sha256=IOYMhC7bM6BwpvaJ
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
97
  synapse_sdk/devtools/docs/docs/plugins/developing-upload-template.md,sha256=PFgxKDDdXb0RiANTcv0n9k0_VhbJ1pTB1nZGbxo9hBw,52689
98
- synapse_sdk/devtools/docs/docs/plugins/export-plugins.md,sha256=2l4rkGuTwgSmqR5o4-psprhODquC7UDcSorsbK4iEJ4,35761
98
+ synapse_sdk/devtools/docs/docs/plugins/export-plugins.md,sha256=Wajf3CZRQiytRx6SS1lIBlGO5o4F2vOw-xog51JiHJU,37074
99
99
  synapse_sdk/devtools/docs/docs/plugins/plugins.md,sha256=2WMjbTKjIXTAdeODeTvJkDSsR9PiA58_VnCFuBnWRw4,24358
100
100
  synapse_sdk/devtools/docs/docs/plugins/upload-plugins.md,sha256=78-7Z1ZtukPGPRbRAb7eAN35Z_gANMzCp2AF1eFxOrA,64603
101
101
  synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json,sha256=qQVHZ1p0CxHg5Gb4CYNxUSeqZ3LVo4nXN_N0yUMVpDM,180
@@ -133,6 +133,7 @@ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/cli
133
133
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/integration-mixin.md,sha256=zimwBCoCUwfUFl8IlGm-JyLUVzM2R7e77sjBdEFdDVE,11823
134
134
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ml-mixin.md,sha256=iZG-Fk6rx9UTYDbQnEAPc390tEKz5JtWJsr0s6Ekwjc,8440
135
135
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md,sha256=m7yxYeDMnRdYPrzTPuSk9EHuDRjEMZRY6q-ty4-HmGs,8931
136
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/plugins/models.md,sha256=fOBaoh5bKinRltEsC7Zx2Mj1PlBzXhjXORlVkPyXvhQ,3177
136
137
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md,sha256=6o-8H7khfiMhQSXBAvkYpf6jzOEndPje1QAGdlGfskw,843
137
138
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md,sha256=pMAc1VLUXnHCv2xvvx-GBqVQ1Uh4h-u4nrco5UZ2z-Y,613
138
139
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md,sha256=X0haPkqUY89K5R3LiGLQX9Boh_BpLxUsHA13skTTAp8,1015
@@ -142,7 +143,7 @@ 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/storage.md,sha256=V-IIUSVJjwh9n6KVZI5DxrU_T0l3AOtcCrAC2PRs43Q,1048
143
144
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md,sha256=JdDMC2FKovAU55pPEBoIUPPniU5mKAvA5w1Zb36u9AE,1207
144
145
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/developing-upload-template.md,sha256=Eg2c2li9GfkJpNVNJnNoBAUXweO7X5hRUV6PGuhj--M,54001
145
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md,sha256=AwAR1NT19PWpjAe3bv8v9T1ccC4-ng_NeuoHOuKl5zI,37299
146
+ synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md,sha256=XcvZuio6NUDuDSe_XhYq1ACDaAJThmekP3anEzOCRks,38804
146
147
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md,sha256=wUuuOmQQY1dURZzJ0HSpiABaJWqKbxQn31Xfn-wUf8E,4947
147
148
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/upload-plugins.md,sha256=BPG3Ykku3DTEuANPQqZn_vfDNC8vdxLGi__s4lyoKdo,72605
148
149
  synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json,sha256=SCLmysIhJ6XEEfnL7cOQb3s08EG4LA-ColdRRxecIH8,1601
@@ -183,10 +184,10 @@ synapse_sdk/plugins/README.md,sha256=S0xowL7ukJZf0_zjNnWz0g_-b731GrIkdkwaS2ubpz0
183
184
  synapse_sdk/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
185
  synapse_sdk/plugins/enums.py,sha256=ibixwqA3sCNSriG1jAtL54JQc_Zwo3MufwYUqGhVncc,523
185
186
  synapse_sdk/plugins/exceptions.py,sha256=Qs7qODp_RRLO9y2otU2T4ryj5LFwIZODvSIXkAh91u0,691
186
- synapse_sdk/plugins/models.py,sha256=Dx0bKwGdAqohjWa7Vk9R0kQ3PThM1udTcyul_GzwARw,5920
187
+ synapse_sdk/plugins/models.py,sha256=fuc1LryTjdoH4u6xVA_jDc-VVciF9lDCrai9r5NGpPY,8428
187
188
  synapse_sdk/plugins/upload.py,sha256=VJOotYMayylOH0lNoAGeGHRkLdhP7jnC_A0rFQMvQpQ,3228
188
189
  synapse_sdk/plugins/categories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
- synapse_sdk/plugins/categories/base.py,sha256=j8FrNUb9CAxiDmpG2uw83ByMCPFAQFu0VcN1Cg9Pryg,11564
190
+ synapse_sdk/plugins/categories/base.py,sha256=An_MbDqoKm6-KSzpsUQ6KA5rtXkysOcYPUhxcZcmZbc,11602
190
191
  synapse_sdk/plugins/categories/decorators.py,sha256=Gw6T-UHwpCKrSt596X-g2sZbY_Z1zbbogowClj7Pr5Q,518
191
192
  synapse_sdk/plugins/categories/registry.py,sha256=KdQR8SUlLT-3kgYzDNWawS1uJnAhrcw2j4zFaTpilRs,636
192
193
  synapse_sdk/plugins/categories/templates.py,sha256=FF5FerhkZMeW1YcKLY5cylC0SkWSYdJODA_Qcm4OGYQ,887
@@ -205,9 +206,9 @@ synapse_sdk/plugins/categories/export/actions/export/exceptions.py,sha256=cDXVQe
205
206
  synapse_sdk/plugins/categories/export/actions/export/models.py,sha256=NM9mSJAhcFFREUVlCy1LRbmq4Tm8rH_FGyZimS2aXho,2779
206
207
  synapse_sdk/plugins/categories/export/actions/export/run.py,sha256=bmilGnxfMWtIIvdIoY9sHkCPkQf_1-myur10I5TUEFY,6912
207
208
  synapse_sdk/plugins/categories/export/actions/export/utils.py,sha256=rbqoOIcgAOjlHV9Vn-2czHk6nzsxQUNu_lJzjkU9XfM,6367
208
- synapse_sdk/plugins/categories/export/templates/config.yaml,sha256=fAqi-9dH7qEkFDSDFvt0BcZ72d2qbyt1P83L2ti6ELM,58
209
+ synapse_sdk/plugins/categories/export/templates/config.yaml,sha256=fkbSPp7ISZ9NJ1Vvcz1dBSWoYjseVp1eJKyu5PPoboM,516
209
210
  synapse_sdk/plugins/categories/export/templates/plugin/__init__.py,sha256=oC8hczDebLaWoTaxANw0n9uMjVR5sydBs7pgTw78rbM,16057
210
- synapse_sdk/plugins/categories/export/templates/plugin/export.py,sha256=3dZUEdhj-4YySJ-cPyNAqQvj5xcAXIX4KmXKcacTtd0,2754
211
+ synapse_sdk/plugins/categories/export/templates/plugin/export.py,sha256=q9dbJIM3iCNu8W7J6HfIqQ5zeCx1QfyUaj7adhBvshI,6892
211
212
  synapse_sdk/plugins/categories/neural_net/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
213
  synapse_sdk/plugins/categories/neural_net/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
214
  synapse_sdk/plugins/categories/neural_net/actions/deployment.py,sha256=njhDp05KXbNB9VCa46VgWa8-ftc_f9HcAVpUr0836AM,1838
@@ -347,9 +348,9 @@ synapse_sdk/utils/storage/providers/gcp.py,sha256=i2BQCu1Kej1If9SuNr2_lEyTcr5M_n
347
348
  synapse_sdk/utils/storage/providers/http.py,sha256=2DhIulND47JOnS5ZY7MZUex7Su3peAPksGo1Wwg07L4,5828
348
349
  synapse_sdk/utils/storage/providers/s3.py,sha256=ZmqekAvIgcQBdRU-QVJYv1Rlp6VHfXwtbtjTSphua94,2573
349
350
  synapse_sdk/utils/storage/providers/sftp.py,sha256=_8s9hf0JXIO21gvm-JVS00FbLsbtvly4c-ETLRax68A,1426
350
- synapse_sdk-2025.9.5.dist-info/licenses/LICENSE,sha256=bKzmC5YAg4V1Fhl8OO_tqY8j62hgdncAkN7VrdjmrGk,1101
351
- synapse_sdk-2025.9.5.dist-info/METADATA,sha256=_B17n5pQ03tYuVoCy83dR2yjDMdnL2lLLyYvtsJMq4Q,3815
352
- synapse_sdk-2025.9.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
353
- synapse_sdk-2025.9.5.dist-info/entry_points.txt,sha256=VNptJoGoNJI8yLXfBmhgUefMsmGI0m3-0YoMvrOgbxo,48
354
- synapse_sdk-2025.9.5.dist-info/top_level.txt,sha256=ytgJMRK1slVOKUpgcw3LEyHHP7S34J6n_gJzdkcSsw8,12
355
- synapse_sdk-2025.9.5.dist-info/RECORD,,
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,,