synapse-sdk 1.0.0b5__py3-none-any.whl → 2025.12.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.
- synapse_sdk/__init__.py +24 -0
- synapse_sdk/cli/code_server.py +305 -33
- synapse_sdk/clients/agent/__init__.py +2 -1
- synapse_sdk/clients/agent/container.py +143 -0
- synapse_sdk/clients/agent/ray.py +296 -38
- synapse_sdk/clients/backend/annotation.py +1 -1
- synapse_sdk/clients/backend/core.py +31 -4
- synapse_sdk/clients/backend/data_collection.py +82 -7
- synapse_sdk/clients/backend/hitl.py +1 -1
- synapse_sdk/clients/backend/ml.py +1 -1
- synapse_sdk/clients/base.py +211 -61
- synapse_sdk/loggers.py +46 -0
- synapse_sdk/plugins/README.md +1340 -0
- synapse_sdk/plugins/categories/base.py +59 -9
- synapse_sdk/plugins/categories/export/actions/__init__.py +3 -0
- synapse_sdk/plugins/categories/export/actions/export/__init__.py +28 -0
- synapse_sdk/plugins/categories/export/actions/export/action.py +165 -0
- synapse_sdk/plugins/categories/export/actions/export/enums.py +113 -0
- synapse_sdk/plugins/categories/export/actions/export/exceptions.py +53 -0
- synapse_sdk/plugins/categories/export/actions/export/models.py +74 -0
- synapse_sdk/plugins/categories/export/actions/export/run.py +195 -0
- synapse_sdk/plugins/categories/export/actions/export/utils.py +187 -0
- synapse_sdk/plugins/categories/export/templates/config.yaml +19 -1
- synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
- synapse_sdk/plugins/categories/export/templates/plugin/export.py +153 -177
- synapse_sdk/plugins/categories/neural_net/actions/train.py +1130 -32
- synapse_sdk/plugins/categories/neural_net/actions/tune.py +157 -4
- synapse_sdk/plugins/categories/neural_net/templates/config.yaml +7 -4
- synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/action.py +10 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +148 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +100 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +248 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +265 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +92 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +243 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
- synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +19 -0
- synapse_sdk/plugins/categories/upload/actions/upload/action.py +236 -0
- synapse_sdk/plugins/categories/upload/actions/upload/context.py +185 -0
- synapse_sdk/plugins/categories/upload/actions/upload/enums.py +493 -0
- synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py +36 -0
- synapse_sdk/plugins/categories/upload/actions/upload/factory.py +138 -0
- synapse_sdk/plugins/categories/upload/actions/upload/models.py +214 -0
- synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py +183 -0
- synapse_sdk/plugins/categories/upload/actions/upload/registry.py +113 -0
- synapse_sdk/plugins/categories/upload/actions/upload/run.py +179 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py +107 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +62 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py +63 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py +91 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py +82 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +235 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +201 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py +104 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py +71 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/base.py +82 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/batch.py +39 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/single.py +29 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/flat.py +300 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/recursive.py +287 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/excel.py +174 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/none.py +16 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py +84 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py +60 -0
- synapse_sdk/plugins/categories/upload/actions/upload/utils.py +250 -0
- synapse_sdk/plugins/categories/upload/templates/README.md +470 -0
- synapse_sdk/plugins/categories/upload/templates/config.yaml +28 -2
- synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +310 -0
- synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +82 -20
- synapse_sdk/plugins/models.py +111 -9
- synapse_sdk/plugins/templates/plugin-config-schema.json +7 -0
- synapse_sdk/plugins/templates/schema.json +7 -0
- synapse_sdk/plugins/utils/__init__.py +3 -0
- synapse_sdk/plugins/utils/ray_gcs.py +66 -0
- synapse_sdk/shared/__init__.py +25 -0
- synapse_sdk/utils/converters/dm/__init__.py +42 -41
- synapse_sdk/utils/converters/dm/base.py +137 -0
- synapse_sdk/utils/converters/dm/from_v1.py +208 -562
- synapse_sdk/utils/converters/dm/to_v1.py +258 -304
- synapse_sdk/utils/converters/dm/tools/__init__.py +214 -0
- synapse_sdk/utils/converters/dm/tools/answer.py +95 -0
- synapse_sdk/utils/converters/dm/tools/bounding_box.py +132 -0
- synapse_sdk/utils/converters/dm/tools/bounding_box_3d.py +121 -0
- synapse_sdk/utils/converters/dm/tools/classification.py +75 -0
- synapse_sdk/utils/converters/dm/tools/keypoint.py +117 -0
- synapse_sdk/utils/converters/dm/tools/named_entity.py +111 -0
- synapse_sdk/utils/converters/dm/tools/polygon.py +122 -0
- synapse_sdk/utils/converters/dm/tools/polyline.py +124 -0
- synapse_sdk/utils/converters/dm/tools/prompt.py +94 -0
- synapse_sdk/utils/converters/dm/tools/relation.py +86 -0
- synapse_sdk/utils/converters/dm/tools/segmentation.py +141 -0
- synapse_sdk/utils/converters/dm/tools/segmentation_3d.py +83 -0
- synapse_sdk/utils/converters/dm/types.py +168 -0
- synapse_sdk/utils/converters/dm/utils.py +162 -0
- synapse_sdk/utils/converters/dm_legacy/__init__.py +56 -0
- synapse_sdk/utils/converters/dm_legacy/from_v1.py +627 -0
- synapse_sdk/utils/converters/dm_legacy/to_v1.py +367 -0
- synapse_sdk/utils/file/__init__.py +58 -0
- synapse_sdk/utils/file/archive.py +32 -0
- synapse_sdk/utils/file/checksum.py +56 -0
- synapse_sdk/utils/file/chunking.py +31 -0
- synapse_sdk/utils/file/download.py +385 -0
- synapse_sdk/utils/file/encoding.py +40 -0
- synapse_sdk/utils/file/io.py +22 -0
- synapse_sdk/utils/file/upload.py +165 -0
- synapse_sdk/utils/file/video/__init__.py +29 -0
- synapse_sdk/utils/file/video/transcode.py +307 -0
- synapse_sdk/utils/{file.py → file.py.backup} +77 -0
- synapse_sdk/utils/network.py +272 -0
- synapse_sdk/utils/storage/__init__.py +6 -2
- synapse_sdk/utils/storage/providers/file_system.py +6 -0
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/METADATA +19 -2
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/RECORD +134 -74
- synapse_sdk/devtools/docs/.gitignore +0 -20
- synapse_sdk/devtools/docs/README.md +0 -41
- synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -12
- synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -44
- synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -24
- synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -29
- synapse_sdk/devtools/docs/blog/authors.yml +0 -25
- synapse_sdk/devtools/docs/blog/tags.yml +0 -19
- synapse_sdk/devtools/docs/docusaurus.config.ts +0 -138
- synapse_sdk/devtools/docs/package-lock.json +0 -17455
- synapse_sdk/devtools/docs/package.json +0 -47
- synapse_sdk/devtools/docs/sidebars.ts +0 -44
- synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -71
- synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -11
- synapse_sdk/devtools/docs/src/css/custom.css +0 -30
- synapse_sdk/devtools/docs/src/pages/index.module.css +0 -23
- synapse_sdk/devtools/docs/src/pages/index.tsx +0 -21
- synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -7
- synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -171
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -170
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -40
- synapse_sdk/devtools/docs/tsconfig.json +0 -8
- synapse_sdk/plugins/categories/export/actions/export.py +0 -346
- synapse_sdk/plugins/categories/export/enums.py +0 -7
- synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -151
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -943
- synapse_sdk/plugins/categories/upload/actions/upload.py +0 -954
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/WHEEL +0 -0
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/entry_points.txt +0 -0
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/licenses/LICENSE +0 -0
- {synapse_sdk-1.0.0b5.dist-info → synapse_sdk-2025.12.3.dist-info}/top_level.txt +0 -0
|
@@ -1,184 +1,160 @@
|
|
|
1
|
-
import json
|
|
2
1
|
from pathlib import Path
|
|
2
|
+
from typing import Generator
|
|
3
3
|
|
|
4
|
-
import
|
|
4
|
+
from . import BaseExporter
|
|
5
5
|
|
|
6
|
-
from synapse_sdk.plugins.categories.export.enums import ExportStatus
|
|
7
6
|
|
|
7
|
+
class Exporter(BaseExporter):
|
|
8
|
+
"""Plugin export action interface for organizing files.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
Args:
|
|
13
|
-
run : Execution object
|
|
14
|
-
export_items (generator):
|
|
15
|
-
- data (dict): dm_schema_data information.
|
|
16
|
-
- files (dict): File information. Includes file URL, original file path, metadata, etc.
|
|
17
|
-
- id (int): ground_truth ID
|
|
18
|
-
path_root : pathlib object, the path to export
|
|
19
|
-
**params: Additional parameters
|
|
20
|
-
|
|
21
|
-
Returns:
|
|
22
|
-
dict: Result
|
|
10
|
+
This class provides a minimal interface for plugin developers to implement
|
|
11
|
+
their own export logic.
|
|
23
12
|
"""
|
|
24
13
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
file_info = {'file_name': f'{file_name}.json'}
|
|
173
|
-
error_msg = ''
|
|
174
|
-
try:
|
|
175
|
-
with (base_path / f'{file_name}.json').open('w', encoding='utf-8') as f:
|
|
176
|
-
json.dump(json_data, f, indent=4, ensure_ascii=False)
|
|
177
|
-
status = ExportStatus.SUCCESS
|
|
178
|
-
except Exception as e:
|
|
179
|
-
error_msg = str(e)
|
|
180
|
-
error_file_list.append([f'{file_name}.json', str(e)])
|
|
181
|
-
status = ExportStatus.FAILED
|
|
182
|
-
|
|
183
|
-
run.export_log_json_file(result['id'], file_info, status, error_msg)
|
|
184
|
-
return status
|
|
14
|
+
def __init__(self, run, export_items: Generator, path_root: Path, **params):
|
|
15
|
+
"""Initialize the plugin export action class.
|
|
16
|
+
Args:
|
|
17
|
+
run: Plugin run object with logging capabilities.
|
|
18
|
+
export_items (generator):
|
|
19
|
+
- data (dict): dm_schema_data information.
|
|
20
|
+
- files (dict): File information. Includes file URL, original file path, metadata, etc.
|
|
21
|
+
- id (int): target ID (ex. assignment id, task id, ground_truth_event id)
|
|
22
|
+
path_root: pathlib object, the path to export
|
|
23
|
+
**params: Additional parameters
|
|
24
|
+
- name (str): The name of the action.
|
|
25
|
+
- description (str | None): The description of the action.
|
|
26
|
+
- storage (int): The storage ID to save the exported data.
|
|
27
|
+
- save_original_file (bool): Whether to save the original file.
|
|
28
|
+
- path (str): The path to save the exported data.
|
|
29
|
+
- target (str): The target source to export data from. (ex. ground_truth, assignment, task)
|
|
30
|
+
- filter (dict): The filter criteria to apply.
|
|
31
|
+
- extra_params (dict | None): Additional parameters for export customization.
|
|
32
|
+
Example: {"include_metadata": True, "compression": "gzip"}
|
|
33
|
+
- count (int): Total number of results.
|
|
34
|
+
- results (list): List of results fetched through the list API.
|
|
35
|
+
- project_id (int): Project ID.
|
|
36
|
+
- configuration (dict): Project configuration.
|
|
37
|
+
"""
|
|
38
|
+
super().__init__(run, export_items, path_root, **params)
|
|
39
|
+
|
|
40
|
+
def export(self, export_items=None, results=None, **kwargs) -> dict:
|
|
41
|
+
"""Executes the export task using the base class implementation.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
export_items: Optional export items to process. If not provided, uses self.export_items.
|
|
45
|
+
results: Optional results data to process alongside export_items.
|
|
46
|
+
**kwargs: Additional parameters for export customization.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
dict: Result
|
|
50
|
+
"""
|
|
51
|
+
return super().export(export_items, results, **kwargs)
|
|
52
|
+
|
|
53
|
+
def convert_data(self, data):
|
|
54
|
+
"""Converts the data."""
|
|
55
|
+
return data
|
|
56
|
+
|
|
57
|
+
def before_convert(self, data):
|
|
58
|
+
"""Preprocesses the data before conversion."""
|
|
59
|
+
return data
|
|
60
|
+
|
|
61
|
+
def after_convert(self, data):
|
|
62
|
+
"""Post-processes the data after conversion."""
|
|
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
|
+
)
|