synapse-sdk 1.0.0a35__py3-none-any.whl → 2025.11.7__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 (307) hide show
  1. synapse_sdk/__init__.py +24 -0
  2. synapse_sdk/cli/__init__.py +308 -5
  3. synapse_sdk/cli/alias/utils.py +1 -1
  4. synapse_sdk/cli/code_server.py +687 -0
  5. synapse_sdk/cli/config.py +440 -0
  6. synapse_sdk/cli/devtools.py +90 -0
  7. synapse_sdk/cli/plugin/publish.py +23 -15
  8. synapse_sdk/clients/agent/__init__.py +9 -3
  9. synapse_sdk/clients/agent/container.py +133 -0
  10. synapse_sdk/clients/agent/core.py +19 -0
  11. synapse_sdk/clients/agent/ray.py +298 -9
  12. synapse_sdk/clients/backend/__init__.py +28 -12
  13. synapse_sdk/clients/backend/annotation.py +9 -1
  14. synapse_sdk/clients/backend/core.py +31 -4
  15. synapse_sdk/clients/backend/data_collection.py +186 -0
  16. synapse_sdk/clients/backend/hitl.py +1 -1
  17. synapse_sdk/clients/backend/integration.py +4 -3
  18. synapse_sdk/clients/backend/ml.py +1 -1
  19. synapse_sdk/clients/backend/models.py +35 -1
  20. synapse_sdk/clients/base.py +309 -36
  21. synapse_sdk/clients/ray/serve.py +2 -0
  22. synapse_sdk/devtools/__init__.py +0 -0
  23. synapse_sdk/devtools/config.py +94 -0
  24. synapse_sdk/devtools/docs/.gitignore +20 -0
  25. synapse_sdk/devtools/docs/README.md +41 -0
  26. synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
  27. synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
  28. synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  29. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  30. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
  31. synapse_sdk/devtools/docs/blog/authors.yml +25 -0
  32. synapse_sdk/devtools/docs/blog/tags.yml +19 -0
  33. synapse_sdk/devtools/docs/docs/api/clients/agent.md +43 -0
  34. synapse_sdk/devtools/docs/docs/api/clients/annotation-mixin.md +378 -0
  35. synapse_sdk/devtools/docs/docs/api/clients/backend.md +420 -0
  36. synapse_sdk/devtools/docs/docs/api/clients/base.md +257 -0
  37. synapse_sdk/devtools/docs/docs/api/clients/core-mixin.md +477 -0
  38. synapse_sdk/devtools/docs/docs/api/clients/data-collection-mixin.md +422 -0
  39. synapse_sdk/devtools/docs/docs/api/clients/hitl-mixin.md +554 -0
  40. synapse_sdk/devtools/docs/docs/api/clients/index.md +391 -0
  41. synapse_sdk/devtools/docs/docs/api/clients/integration-mixin.md +571 -0
  42. synapse_sdk/devtools/docs/docs/api/clients/ml-mixin.md +578 -0
  43. synapse_sdk/devtools/docs/docs/api/clients/ray.md +342 -0
  44. synapse_sdk/devtools/docs/docs/api/index.md +52 -0
  45. synapse_sdk/devtools/docs/docs/api/plugins/categories.md +43 -0
  46. synapse_sdk/devtools/docs/docs/api/plugins/models.md +114 -0
  47. synapse_sdk/devtools/docs/docs/api/plugins/utils.md +328 -0
  48. synapse_sdk/devtools/docs/docs/categories.md +0 -0
  49. synapse_sdk/devtools/docs/docs/cli-usage.md +280 -0
  50. synapse_sdk/devtools/docs/docs/concepts/index.md +38 -0
  51. synapse_sdk/devtools/docs/docs/configuration.md +83 -0
  52. synapse_sdk/devtools/docs/docs/contributing.md +306 -0
  53. synapse_sdk/devtools/docs/docs/examples/index.md +29 -0
  54. synapse_sdk/devtools/docs/docs/faq.md +179 -0
  55. synapse_sdk/devtools/docs/docs/features/converters/index.md +455 -0
  56. synapse_sdk/devtools/docs/docs/features/index.md +24 -0
  57. synapse_sdk/devtools/docs/docs/features/utils/file.md +415 -0
  58. synapse_sdk/devtools/docs/docs/features/utils/network.md +378 -0
  59. synapse_sdk/devtools/docs/docs/features/utils/storage.md +57 -0
  60. synapse_sdk/devtools/docs/docs/features/utils/types.md +51 -0
  61. synapse_sdk/devtools/docs/docs/installation.md +94 -0
  62. synapse_sdk/devtools/docs/docs/introduction.md +47 -0
  63. synapse_sdk/devtools/docs/docs/plugins/categories/neural-net-plugins/train-action-overview.md +814 -0
  64. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  65. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  66. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  67. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  68. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  69. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  70. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  71. synapse_sdk/devtools/docs/docs/plugins/export-plugins.md +1092 -0
  72. synapse_sdk/devtools/docs/docs/plugins/plugins.md +852 -0
  73. synapse_sdk/devtools/docs/docs/quickstart.md +78 -0
  74. synapse_sdk/devtools/docs/docs/troubleshooting.md +519 -0
  75. synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json +8 -0
  76. synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md +23 -0
  77. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
  78. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-document.md +57 -0
  79. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-page.md +43 -0
  80. synapse_sdk/devtools/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
  81. synapse_sdk/devtools/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
  82. synapse_sdk/devtools/docs/docs/tutorial-extras/_category_.json +7 -0
  83. synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  84. synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
  85. synapse_sdk/devtools/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
  86. synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md +88 -0
  87. synapse_sdk/devtools/docs/docusaurus.config.ts +148 -0
  88. synapse_sdk/devtools/docs/i18n/ko/code.json +325 -0
  89. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/agent.md +43 -0
  90. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/annotation-mixin.md +289 -0
  91. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/backend.md +420 -0
  92. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/base.md +257 -0
  93. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/core-mixin.md +417 -0
  94. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/data-collection-mixin.md +356 -0
  95. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/hitl-mixin.md +192 -0
  96. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/index.md +391 -0
  97. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/integration-mixin.md +479 -0
  98. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ml-mixin.md +284 -0
  99. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md +342 -0
  100. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/index.md +52 -0
  101. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/plugins/models.md +114 -0
  102. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md +0 -0
  103. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md +280 -0
  104. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md +38 -0
  105. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md +83 -0
  106. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/contributing.md +306 -0
  107. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md +29 -0
  108. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/faq.md +179 -0
  109. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/converters/index.md +30 -0
  110. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md +24 -0
  111. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/file.md +415 -0
  112. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/network.md +378 -0
  113. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/storage.md +60 -0
  114. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md +51 -0
  115. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/installation.md +94 -0
  116. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +47 -0
  117. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/neural-net-plugins/train-action-overview.md +815 -0
  118. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  119. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  120. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  121. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  122. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  123. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  124. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  125. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md +1092 -0
  126. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md +117 -0
  127. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/quickstart.md +78 -0
  128. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/troubleshooting.md +519 -0
  129. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +34 -0
  130. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json +42 -0
  131. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json +18 -0
  132. synapse_sdk/devtools/docs/package-lock.json +18784 -0
  133. synapse_sdk/devtools/docs/package.json +48 -0
  134. synapse_sdk/devtools/docs/sidebars.ts +122 -0
  135. synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
  136. synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
  137. synapse_sdk/devtools/docs/src/css/custom.css +30 -0
  138. synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
  139. synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
  140. synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
  141. synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  142. synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  143. synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  144. synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  145. synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  146. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
  147. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
  148. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
  149. synapse_sdk/devtools/docs/tsconfig.json +8 -0
  150. synapse_sdk/devtools/server.py +41 -0
  151. synapse_sdk/devtools/streamlit_app/__init__.py +5 -0
  152. synapse_sdk/devtools/streamlit_app/app.py +128 -0
  153. synapse_sdk/devtools/streamlit_app/services/__init__.py +11 -0
  154. synapse_sdk/devtools/streamlit_app/services/job_service.py +233 -0
  155. synapse_sdk/devtools/streamlit_app/services/plugin_service.py +236 -0
  156. synapse_sdk/devtools/streamlit_app/services/serve_service.py +95 -0
  157. synapse_sdk/devtools/streamlit_app/ui/__init__.py +15 -0
  158. synapse_sdk/devtools/streamlit_app/ui/config_tab.py +76 -0
  159. synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +66 -0
  160. synapse_sdk/devtools/streamlit_app/ui/http_tab.py +125 -0
  161. synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +573 -0
  162. synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +346 -0
  163. synapse_sdk/devtools/streamlit_app/ui/status_bar.py +118 -0
  164. synapse_sdk/devtools/streamlit_app/utils/__init__.py +40 -0
  165. synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +197 -0
  166. synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +38 -0
  167. synapse_sdk/devtools/streamlit_app/utils/styles.py +241 -0
  168. synapse_sdk/devtools/streamlit_app/utils/ui_components.py +289 -0
  169. synapse_sdk/devtools/streamlit_app.py +10 -0
  170. synapse_sdk/loggers.py +65 -7
  171. synapse_sdk/plugins/README.md +1340 -0
  172. synapse_sdk/plugins/categories/base.py +73 -11
  173. synapse_sdk/plugins/categories/data_validation/actions/validation.py +72 -0
  174. synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +33 -5
  175. synapse_sdk/plugins/categories/export/actions/__init__.py +3 -0
  176. synapse_sdk/plugins/categories/export/actions/export/__init__.py +28 -0
  177. synapse_sdk/plugins/categories/export/actions/export/action.py +165 -0
  178. synapse_sdk/plugins/categories/export/actions/export/enums.py +113 -0
  179. synapse_sdk/plugins/categories/export/actions/export/exceptions.py +53 -0
  180. synapse_sdk/plugins/categories/export/actions/export/models.py +74 -0
  181. synapse_sdk/plugins/categories/export/actions/export/run.py +195 -0
  182. synapse_sdk/plugins/categories/export/actions/{export.py → export/utils.py} +47 -82
  183. synapse_sdk/plugins/categories/export/templates/config.yaml +19 -1
  184. synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
  185. synapse_sdk/plugins/categories/export/templates/plugin/export.py +153 -129
  186. synapse_sdk/plugins/categories/neural_net/actions/deployment.py +9 -62
  187. synapse_sdk/plugins/categories/neural_net/actions/train.py +1062 -32
  188. synapse_sdk/plugins/categories/neural_net/actions/tune.py +534 -0
  189. synapse_sdk/plugins/categories/neural_net/templates/config.yaml +27 -5
  190. synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +26 -10
  191. synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
  192. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
  193. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/action.py +10 -0
  194. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
  195. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +145 -0
  196. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
  197. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
  198. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
  199. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +97 -0
  200. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +250 -0
  201. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
  202. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
  203. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +287 -0
  204. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
  205. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
  206. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +87 -0
  207. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +127 -0
  208. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
  209. synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +966 -0
  210. synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +19 -0
  211. synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +40 -0
  212. synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +19 -0
  213. synapse_sdk/plugins/categories/upload/actions/upload/action.py +232 -0
  214. synapse_sdk/plugins/categories/upload/actions/upload/context.py +185 -0
  215. synapse_sdk/plugins/categories/upload/actions/upload/enums.py +471 -0
  216. synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py +36 -0
  217. synapse_sdk/plugins/categories/upload/actions/upload/factory.py +138 -0
  218. synapse_sdk/plugins/categories/upload/actions/upload/models.py +203 -0
  219. synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py +183 -0
  220. synapse_sdk/plugins/categories/upload/actions/upload/registry.py +113 -0
  221. synapse_sdk/plugins/categories/upload/actions/upload/run.py +179 -0
  222. synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py +1 -0
  223. synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py +107 -0
  224. synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +62 -0
  225. synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py +63 -0
  226. synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py +84 -0
  227. synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py +82 -0
  228. synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +235 -0
  229. synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +203 -0
  230. synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py +97 -0
  231. synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py +71 -0
  232. synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py +1 -0
  233. synapse_sdk/plugins/categories/upload/actions/upload/strategies/base.py +82 -0
  234. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/__init__.py +1 -0
  235. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/batch.py +39 -0
  236. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/single.py +29 -0
  237. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/__init__.py +1 -0
  238. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/flat.py +258 -0
  239. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/recursive.py +281 -0
  240. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/__init__.py +1 -0
  241. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/excel.py +174 -0
  242. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/none.py +16 -0
  243. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/__init__.py +1 -0
  244. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py +84 -0
  245. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py +1 -0
  246. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py +60 -0
  247. synapse_sdk/plugins/categories/upload/actions/upload/utils.py +250 -0
  248. synapse_sdk/plugins/categories/upload/templates/README.md +470 -0
  249. synapse_sdk/plugins/categories/upload/templates/config.yaml +29 -2
  250. synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +294 -0
  251. synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +88 -30
  252. synapse_sdk/plugins/models.py +122 -16
  253. synapse_sdk/plugins/templates/plugin-config-schema.json +406 -0
  254. synapse_sdk/plugins/templates/schema.json +491 -0
  255. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +1 -1
  256. synapse_sdk/plugins/utils/__init__.py +46 -0
  257. synapse_sdk/plugins/utils/actions.py +119 -0
  258. synapse_sdk/plugins/utils/config.py +203 -0
  259. synapse_sdk/plugins/{utils.py → utils/legacy.py} +26 -46
  260. synapse_sdk/plugins/utils/ray_gcs.py +66 -0
  261. synapse_sdk/plugins/utils/registry.py +58 -0
  262. synapse_sdk/shared/__init__.py +25 -0
  263. synapse_sdk/shared/enums.py +93 -0
  264. synapse_sdk/utils/converters/__init__.py +240 -0
  265. synapse_sdk/utils/converters/coco/__init__.py +0 -0
  266. synapse_sdk/utils/converters/coco/from_dm.py +322 -0
  267. synapse_sdk/utils/converters/coco/to_dm.py +215 -0
  268. synapse_sdk/utils/converters/dm/__init__.py +56 -0
  269. synapse_sdk/utils/converters/dm/from_v1.py +627 -0
  270. synapse_sdk/utils/converters/dm/to_v1.py +367 -0
  271. synapse_sdk/utils/converters/pascal/__init__.py +0 -0
  272. synapse_sdk/utils/converters/pascal/from_dm.py +244 -0
  273. synapse_sdk/utils/converters/pascal/to_dm.py +214 -0
  274. synapse_sdk/utils/converters/yolo/__init__.py +0 -0
  275. synapse_sdk/utils/converters/yolo/from_dm.py +384 -0
  276. synapse_sdk/utils/converters/yolo/to_dm.py +267 -0
  277. synapse_sdk/utils/dataset.py +46 -0
  278. synapse_sdk/utils/encryption.py +158 -0
  279. synapse_sdk/utils/file/__init__.py +39 -0
  280. synapse_sdk/utils/file/archive.py +32 -0
  281. synapse_sdk/utils/file/checksum.py +56 -0
  282. synapse_sdk/utils/file/chunking.py +31 -0
  283. synapse_sdk/utils/file/download.py +385 -0
  284. synapse_sdk/utils/file/encoding.py +40 -0
  285. synapse_sdk/utils/file/io.py +22 -0
  286. synapse_sdk/utils/file/video/__init__.py +29 -0
  287. synapse_sdk/utils/file/video/transcode.py +307 -0
  288. synapse_sdk/utils/{file.py → file.py.backup} +84 -2
  289. synapse_sdk/utils/http.py +138 -0
  290. synapse_sdk/utils/network.py +293 -0
  291. synapse_sdk/utils/storage/__init__.py +36 -2
  292. synapse_sdk/utils/storage/providers/__init__.py +141 -0
  293. synapse_sdk/utils/storage/providers/file_system.py +134 -0
  294. synapse_sdk/utils/storage/providers/http.py +190 -0
  295. synapse_sdk/utils/storage/providers/s3.py +54 -6
  296. synapse_sdk/utils/storage/providers/sftp.py +31 -0
  297. synapse_sdk/utils/storage/registry.py +6 -0
  298. synapse_sdk-2025.11.7.dist-info/METADATA +122 -0
  299. synapse_sdk-2025.11.7.dist-info/RECORD +386 -0
  300. {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/WHEEL +1 -1
  301. synapse_sdk/clients/backend/dataset.py +0 -102
  302. synapse_sdk/plugins/categories/upload/actions/upload.py +0 -293
  303. synapse_sdk-1.0.0a35.dist-info/METADATA +0 -47
  304. synapse_sdk-1.0.0a35.dist-info/RECORD +0 -137
  305. {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/entry_points.txt +0 -0
  306. {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/licenses/LICENSE +0 -0
  307. {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,455 @@
1
+ ---
2
+ id: converters
3
+ title: Converters
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # Converters
8
+
9
+ The Synapse SDK provides comprehensive data format conversion utilities for computer vision datasets. These converters enable seamless transformation between different annotation formats commonly used in machine learning workflows.
10
+
11
+ ## Overview
12
+
13
+ The converter system supports bidirectional conversion between:
14
+
15
+ - **DM Format** - Synapse Data Manager's native annotation format (supports v1 ⟷ v2 migration)
16
+ - **COCO Format** - Microsoft Common Objects in Context format
17
+ - **Pascal VOC Format** - Visual Object Classes XML format
18
+ - **YOLO Format** - You Only Look Once text-based format
19
+
20
+ All converters support both categorized datasets (with train/valid/test splits) and non-categorized datasets. Additionally, all converters now support single file conversion mode for processing individual files.
21
+
22
+ ## Supported Annotation Types
23
+
24
+ | Annotation Type | DM | COCO | Pascal VOC | YOLO |
25
+ |----------------|----|----|-----------|------|
26
+ | Bounding Boxes | ✅ | ✅ | ✅ | ✅ |
27
+ | Polygons | ✅ | ✅ | ❌ | ✅ |
28
+ | Segmentation | ✅ | ✅ | ✅ | ❌ |
29
+ | Keypoints | ✅ | ✅ | ❌ | ✅ |
30
+ | Classifications | ✅ | ✅ | ❌ | ❌ |
31
+
32
+ ## Pascal VOC Converters
33
+
34
+ ### FromDMToPascalConverter
35
+
36
+ Converts DM format annotations to Pascal VOC XML format.
37
+
38
+ **Features:**
39
+ - Converts bounding box annotations and segmentation masks
40
+ - Creates standard Pascal VOC directory structure
41
+ - Generates `classes.txt` file automatically
42
+ - Supports both categorized and non-categorized datasets
43
+
44
+ **Usage:**
45
+ ```python
46
+ from synapse_sdk.utils.converters.pascal.from_dm import FromDMToPascalConverter
47
+
48
+ # Convert categorized dataset
49
+ converter = FromDMToPascalConverter(
50
+ root_dir='/path/to/dm/dataset',
51
+ is_categorized_dataset=True
52
+ )
53
+ converted_data = converter.convert()
54
+ converter.save_to_folder('/output/pascal/dataset')
55
+
56
+ # Convert non-categorized dataset
57
+ converter = FromDMToPascalConverter(
58
+ root_dir='/path/to/dm/dataset',
59
+ is_categorized_dataset=False
60
+ )
61
+ converted_data = converter.convert()
62
+ converter.save_to_folder('/output/pascal/dataset')
63
+
64
+ # Single file conversion
65
+ converter = FromDMToPascalConverter(is_single_conversion=True)
66
+ with open('data.json') as f:
67
+ dm_data = json.load(f)
68
+ with open('image.jpg', 'rb') as img_file:
69
+ pascal_xml = converter.convert_single_file(dm_data, img_file)
70
+ ```
71
+
72
+ **Input Structure (Categorized):**
73
+ ```
74
+ dm_dataset/
75
+ ├── train/
76
+ │ ├── json/
77
+ │ │ ├── image1.json
78
+ │ │ └── image2.json
79
+ │ └── original_files/
80
+ │ ├── image1.jpg
81
+ │ └── image2.jpg
82
+ ├── valid/
83
+ │ ├── json/
84
+ │ └── original_files/
85
+ └── test/ (optional)
86
+ ├── json/
87
+ └── original_files/
88
+ ```
89
+
90
+ **Output Structure:**
91
+ ```
92
+ pascal_dataset/
93
+ ├── train/
94
+ │ ├── Annotations/
95
+ │ │ ├── image1.xml
96
+ │ │ └── image2.xml
97
+ │ └── Images/
98
+ │ ├── image1.jpg
99
+ │ └── image2.jpg
100
+ ├── valid/
101
+ ├── test/ (if present)
102
+ └── classes.txt
103
+ ```
104
+
105
+ ### PascalToDMConverter
106
+
107
+ Converts Pascal VOC XML annotations to DM format.
108
+
109
+ **Features:**
110
+ - Parses Pascal VOC XML files
111
+ - Flexible directory naming (supports Annotations/annotations, Images/images/JPEGImages)
112
+ - Extracts bounding box annotations and segmentation information
113
+ - Maintains class information
114
+
115
+ **Usage:**
116
+ ```python
117
+ from synapse_sdk.utils.converters.pascal.to_dm import PascalToDMConverter
118
+
119
+ # Convert Pascal VOC dataset
120
+ converter = PascalToDMConverter(
121
+ root_dir='/path/to/pascal/dataset',
122
+ is_categorized_dataset=True
123
+ )
124
+ converted_data = converter.convert()
125
+ converter.save_to_folder('/output/dm/dataset')
126
+ ```
127
+
128
+ ## YOLO Converters
129
+
130
+ ### FromDMToYOLOConverter
131
+
132
+ Converts DM format annotations to YOLO format with comprehensive annotation support.
133
+
134
+ **Features:**
135
+ - Supports bounding boxes, polygons, and keypoints
136
+ - Creates `dataset.yaml` configuration file
137
+ - Normalizes coordinates automatically
138
+ - Handles keypoint visibility flags
139
+
140
+ **Usage:**
141
+ ```python
142
+ from synapse_sdk.utils.converters.yolo.from_dm import FromDMToYOLOConverter
143
+
144
+ # Convert with all annotation types
145
+ converter = FromDMToYOLOConverter(
146
+ root_dir='/path/to/dm/dataset',
147
+ is_categorized_dataset=True
148
+ )
149
+ converted_data = converter.convert()
150
+ converter.save_to_folder('/output/yolo/dataset')
151
+
152
+ # Single file conversion
153
+ converter = FromDMToYOLOConverter(is_single_conversion=True)
154
+ with open('data.json') as f:
155
+ dm_data = json.load(f)
156
+ with open('image.jpg', 'rb') as img_file:
157
+ yolo_labels = converter.convert_single_file(dm_data, img_file)
158
+ ```
159
+
160
+ **Output Structure:**
161
+ ```
162
+ yolo_dataset/
163
+ ├── train/
164
+ │ ├── images/
165
+ │ │ ├── image1.jpg
166
+ │ │ └── image2.jpg
167
+ │ └── labels/
168
+ │ ├── image1.txt
169
+ │ └── image2.txt
170
+ ├── valid/
171
+ ├── test/ (if present)
172
+ ├── dataset.yaml
173
+ └── classes.txt
174
+ ```
175
+
176
+ **YOLO Label Format Examples:**
177
+ ```
178
+ # Bounding box: class_id center_x center_y width height
179
+ 0 0.5 0.5 0.3 0.4
180
+
181
+ # Polygon: class_id x1 y1 x2 y2 x3 y3 x4 y4 ...
182
+ 0 0.1 0.1 0.9 0.1 0.9 0.9 0.1 0.9
183
+
184
+ # Keypoints: class_id center_x center_y width height kp1_x kp1_y kp1_v kp2_x kp2_y kp2_v ...
185
+ 0 0.5 0.5 0.3 0.4 0.45 0.3 2 0.55 0.3 2 0.5 0.7 1
186
+ ```
187
+
188
+ ### YOLOToDMConverter
189
+
190
+ Converts YOLO format annotations back to DM format.
191
+
192
+ **Features:**
193
+ - Intelligent parsing of different YOLO annotation types
194
+ - Requires `dataset.yaml` for class name mapping
195
+ - Handles bounding boxes, polygons, and keypoints
196
+ - Automatically detects image dimensions
197
+
198
+ **Usage:**
199
+ ```python
200
+ from synapse_sdk.utils.converters.yolo.to_dm import YOLOToDMConverter
201
+
202
+ converter = YOLOToDMConverter(
203
+ root_dir='/path/to/yolo/dataset',
204
+ is_categorized_dataset=True
205
+ )
206
+ converted_data = converter.convert()
207
+ converter.save_to_folder('/output/dm/dataset')
208
+ ```
209
+
210
+ ## COCO Converters
211
+
212
+ ### FromDMToCOCOConverter
213
+
214
+ Converts DM format to COCO format with full metadata support.
215
+
216
+ **Features:**
217
+ - Comprehensive COCO metadata (info, licenses, categories)
218
+ - Supports bounding boxes, polygons, segmentation, and keypoints
219
+ - Dynamic category management
220
+ - Extensible for different data types
221
+
222
+ **Usage:**
223
+ ```python
224
+ from synapse_sdk.utils.converters.coco.from_dm import FromDMToCOCOConverter
225
+
226
+ # Basic conversion
227
+ converter = FromDMToCOCOConverter(
228
+ root_dir='/path/to/dm/dataset',
229
+ is_categorized_dataset=True
230
+ )
231
+ converted_data = converter.convert()
232
+ converter.save_to_folder('/output/coco/dataset')
233
+
234
+ # With custom metadata
235
+ info_dict = {
236
+ "description": "My Custom Dataset",
237
+ "version": "1.0",
238
+ "contributor": "My Organization"
239
+ }
240
+
241
+ licenses_list = [{
242
+ "id": 1,
243
+ "name": "Custom License",
244
+ "url": "https://example.com/license"
245
+ }]
246
+
247
+ converter = FromDMToCOCOConverter(
248
+ root_dir='/path/to/dm/dataset',
249
+ info_dict=info_dict,
250
+ licenses_list=licenses_list,
251
+ is_categorized_dataset=True
252
+ )
253
+
254
+ # Single file conversion
255
+ converter = FromDMToCOCOConverter(
256
+ data_type='img',
257
+ is_single_conversion=True
258
+ )
259
+ with open('data.json') as f:
260
+ dm_data = json.load(f)
261
+ with open('image.jpg', 'rb') as img_file:
262
+ coco_annotation = converter.convert_single_file(dm_data, img_file)
263
+ ```
264
+
265
+ **Output Structure:**
266
+ ```
267
+ coco_dataset/
268
+ ├── train/
269
+ │ ├── annotations.json
270
+ │ ├── image1.jpg
271
+ │ └── image2.jpg
272
+ ├── valid/
273
+ │ ├── annotations.json
274
+ │ └── images...
275
+ └── test/ (if present)
276
+ ```
277
+
278
+ ### COCOToDMConverter
279
+
280
+ Converts COCO format annotations to DM format.
281
+
282
+ **Features:**
283
+ - Parses COCO JSON annotations
284
+ - Handles image datasets
285
+ - Maintains keypoint groupings through DM groups
286
+ - Supports bounding boxes and keypoints
287
+
288
+ **Usage:**
289
+ ```python
290
+ from synapse_sdk.utils.converters.coco.to_dm import COCOToDMConverter
291
+
292
+ converter = COCOToDMConverter(
293
+ root_dir='/path/to/coco/dataset',
294
+ is_categorized_dataset=True
295
+ )
296
+ converted_data = converter.convert()
297
+ converter.save_to_folder('/output/dm/dataset')
298
+ ```
299
+
300
+ ## DM Version Converter
301
+
302
+ ### DMV1ToV2Converter
303
+
304
+ Migrates legacy DM v1 datasets to the current v2 format.
305
+
306
+ **Features:**
307
+ - Comprehensive migration for all annotation types
308
+ - Handles data structure changes between versions
309
+ - Supports images and videos
310
+ - Maintains annotation tool integrity
311
+
312
+ **Supported Tools:**
313
+ - Bounding boxes
314
+ - Named entities
315
+ - Classifications with attributes
316
+ - Polylines and polygons
317
+ - Keypoints
318
+ - 3D bounding boxes
319
+ - Segmentation
320
+ - Relations and groups
321
+
322
+ **Usage:**
323
+ ```python
324
+ from synapse_sdk.utils.converters.dm.from_v1 import DMV1ToV2Converter
325
+
326
+ converter = DMV1ToV2Converter(
327
+ root_dir='/path/to/dm/v1/dataset',
328
+ is_categorized_dataset=True
329
+ )
330
+ converted_data = converter.convert()
331
+ converter.save_to_folder('/output/dm/v2/dataset')
332
+ ```
333
+
334
+ ### DMV2ToV1Converter
335
+
336
+ Converts DM v2 datasets back to the legacy v1 format for compatibility with older systems.
337
+
338
+ **Features:**
339
+ - Reverse migration from DM v2 to v1 format
340
+ - Preserves all annotation types and metadata
341
+ - Maintains coordinate integrity across formats
342
+ - Generates appropriate v1 structure with annotations and annotationsData
343
+
344
+ **Supported Tools:**
345
+ - Bounding boxes
346
+ - Named entities
347
+ - Classifications with attributes
348
+ - Polylines and polygons
349
+ - Keypoints
350
+ - 3D bounding boxes
351
+ - Segmentation
352
+ - Relations and groups
353
+
354
+ **Usage:**
355
+ ```python
356
+ from synapse_sdk.utils.converters.dm.to_v1 import DMV2ToV1Converter
357
+
358
+ # Load v2 data and convert to v1
359
+ with open('dm_v2_data.json', 'r') as f:
360
+ v2_data = json.load(f)
361
+
362
+ converter = DMV2ToV1Converter(v2_data)
363
+ v1_data = converter.convert()
364
+
365
+ # Save or use the converted v1 data
366
+ with open('dm_v1_data.json', 'w') as f:
367
+ json.dump(v1_data, f, indent=2)
368
+ ```
369
+
370
+ ## Common Parameters
371
+
372
+ All converters share these common parameters:
373
+
374
+ ### `root_dir` (str)
375
+ Path to the root directory containing the dataset. Not required when using single file conversion mode.
376
+
377
+ ### `is_categorized_dataset` (bool)
378
+ - `True`: Dataset has train/valid/test splits in separate subdirectories
379
+ - `False`: Dataset is in a single directory without splits
380
+
381
+ ### `is_single_conversion` (bool)
382
+ - `True`: Enable single file conversion mode for processing individual files
383
+ - `False`: Process entire dataset directories (default behavior)
384
+
385
+ ### Common Methods
386
+
387
+ #### `convert()`
388
+ Performs in-memory conversion and returns the converted data structure.
389
+
390
+ #### `convert_single_file(data, original_file, **kwargs)`
391
+ Available when `is_single_conversion=True`. Converts a single data object and corresponding original file.
392
+
393
+ #### `save_to_folder(output_dir)`
394
+ Saves the converted data to the specified output directory, creating the appropriate file structure for the target format.
395
+
396
+ ## Error Handling
397
+
398
+ All converters include robust error handling:
399
+
400
+ - **File Validation**: Checks for required files and directories
401
+ - **Format Validation**: Validates annotation format correctness
402
+ - **Graceful Degradation**: Warns about unsupported annotations instead of failing
403
+ - **Progress Tracking**: Shows progress for large dataset conversions
404
+
405
+ ## Best Practices
406
+
407
+ 1. **Backup Original Data**: Always keep backups before conversion
408
+ 2. **Validate Results**: Check converted annotations for accuracy
409
+ 3. **Test on Small Datasets**: Test conversion on small samples first
410
+ 4. **Check Requirements**: Ensure all required files (dataset.yaml, annotations.json, etc.) are present
411
+ 5. **Monitor Warnings**: Pay attention to conversion warnings for data quality issues
412
+
413
+ ## Examples
414
+
415
+ ### Converting a Complete Workflow
416
+
417
+ ```python
418
+ # 1. Convert Pascal VOC to DM
419
+ pascal_converter = PascalToDMConverter('/data/pascal', True)
420
+ dm_data = pascal_converter.convert()
421
+ pascal_converter.save_to_folder('/data/dm_intermediate')
422
+
423
+ # 2. Convert DM to YOLO
424
+ yolo_converter = FromDMToYOLOConverter('/data/dm_intermediate', True)
425
+ yolo_data = yolo_converter.convert()
426
+ yolo_converter.save_to_folder('/data/yolo_final')
427
+
428
+ # 3. Convert DM to COCO for evaluation
429
+ coco_converter = FromDMToCOCOConverter('/data/dm_intermediate', True)
430
+ coco_data = coco_converter.convert()
431
+ coco_converter.save_to_folder('/data/coco_eval')
432
+ ```
433
+
434
+ ### Single File Conversion Example
435
+
436
+ ```python
437
+ import json
438
+ from synapse_sdk.utils.converters.yolo.from_dm import FromDMToYOLOConverter
439
+
440
+ # Initialize converter for single file processing
441
+ converter = FromDMToYOLOConverter(is_single_conversion=True)
442
+
443
+ # Load DM format data
444
+ with open('annotation.json', 'r') as f:
445
+ dm_data = json.load(f)
446
+
447
+ # Convert single file
448
+ with open('image.jpg', 'rb') as img_file:
449
+ yolo_labels = converter.convert_single_file(dm_data, img_file)
450
+
451
+ # yolo_labels contains the converted YOLO format labels
452
+ print(yolo_labels)
453
+ ```
454
+
455
+ This converter system provides a complete solution for dataset format transformation, enabling seamless integration between different machine learning workflows and annotation tools.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: features
3
+ title: Features
4
+ sidebar_position: 5
5
+ ---
6
+
7
+ # Features
8
+
9
+ This section covers the key features and functionality provided by the Synapse SDK.
10
+
11
+ ## [Plugin System](../plugins/plugins.md)
12
+
13
+ Comprehensive plugin framework for building and managing ML workflows.
14
+
15
+ - **[Plugin Categories](../plugins/plugins.md#plugin-categories)** - Neural networks, export, upload, smart tools, and validation plugins
16
+ - **[Execution Methods](../plugins/plugins.md#execution-methods)** - Job, Task, and REST API execution modes
17
+ - **[Development Guide](../plugins/plugins.md#creating-plugins)** - Create, test, and deploy custom plugins
18
+
19
+ ## [Data Converters](./converters/index.md)
20
+
21
+ Comprehensive data format conversion utilities for computer vision datasets.
22
+
23
+ - **[Format Converters](./converters/index.md)** - Convert between DM, COCO, Pascal VOC, and YOLO formats
24
+ - **[Version Migration](./converters/index.md#dm-version-converter)** - Migrate DM datasets between versions