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,342 @@
1
+ ---
2
+ id: ray
3
+ title: RayClient
4
+ sidebar_position: 4
5
+ ---
6
+
7
+ # RayClient
8
+
9
+ Client for Apache Ray cluster management and monitoring functionality.
10
+
11
+ ## Overview
12
+
13
+ The `RayClientMixin` provides comprehensive Ray cluster operations, including job management, real-time log streaming, node monitoring, and Ray Serve application control. It's designed as a mixin class that extends `BaseClient` with Ray-specific functionality.
14
+
15
+ ## Key Features
16
+
17
+ - **Job Lifecycle Management**: Create, monitor, manage, and stop Ray jobs
18
+ - **Real-time Log Streaming**: WebSocket and HTTP-based log tailing
19
+ - **Node & Task Monitoring**: Monitor cluster resources and task execution
20
+ - **Ray Serve Integration**: Deploy and manage Ray Serve applications
21
+ - **Robust Error Handling**: Input validation and sanitized error messages
22
+ - **Resource Management**: Automatic cleanup and connection tracking
23
+
24
+ ## Constructor
25
+
26
+ ```python
27
+ # RayClientMixin is typically used as a mixin
28
+ class RayClient(RayClientMixin):
29
+ def __init__(self, base_url: str, timeout: dict = None):
30
+ super().__init__(base_url, timeout)
31
+ ```
32
+
33
+ ### Parameters
34
+
35
+ - `base_url` (str): Ray cluster dashboard URL (e.g., "http://ray-head:8265")
36
+ - `timeout` (dict, optional): Connection and read timeout configuration
37
+
38
+ ## Usage
39
+
40
+ ```python
41
+ from synapse_sdk.clients.agent.ray import RayClientMixin
42
+ from synapse_sdk.clients.base import BaseClient
43
+
44
+ class RayClient(RayClientMixin, BaseClient):
45
+ pass
46
+
47
+ client = RayClient(base_url="http://ray-head:8265")
48
+
49
+ # List all jobs
50
+ jobs = client.list_jobs()
51
+
52
+ # Get specific job details
53
+ job = client.get_job('job-12345')
54
+
55
+ # Stop a running job if needed
56
+ if job['status'] == 'RUNNING':
57
+ result = client.stop_job('job-12345')
58
+ print(f"Job stop initiated: {result['status']}")
59
+
60
+ # Stream logs in real-time
61
+ for log_line in client.tail_job_logs('job-12345'):
62
+ print(log_line.strip())
63
+ ```
64
+
65
+ ## Job Operations
66
+
67
+ ### `get_job(pk)`
68
+
69
+ Retrieve details for a specific job.
70
+
71
+ ```python
72
+ job = client.get_job('job-12345')
73
+ print(f"Job status: {job['status']}")
74
+ ```
75
+
76
+ ### `list_jobs()`
77
+
78
+ List all jobs in the Ray cluster.
79
+
80
+ ```python
81
+ jobs = client.list_jobs()
82
+ for job in jobs['results']:
83
+ print(f"Job {job['id']}: {job['status']}")
84
+ ```
85
+
86
+ ### `list_job_logs(pk)`
87
+
88
+ Get static log entries for a job.
89
+
90
+ ```python
91
+ logs = client.list_job_logs('job-12345')
92
+ ```
93
+
94
+ ### `stop_job(pk)`
95
+
96
+ Stop a running job gracefully using Ray's stop_job() API.
97
+
98
+ ```python
99
+ # Stop a running job
100
+ result = client.stop_job('job-12345')
101
+ print(f"Stop status: {result['status']}")
102
+
103
+ # Handle stop errors
104
+ try:
105
+ client.stop_job('job-12345')
106
+ except ClientError as e:
107
+ print(f"Stop failed: {e}")
108
+ ```
109
+
110
+ ## Real-time Log Streaming
111
+
112
+ ### `tail_job_logs(pk, stream_timeout=10, protocol='stream')`
113
+
114
+ Stream job logs using either WebSocket or HTTP protocol.
115
+
116
+ ```python
117
+ # HTTP streaming (default, more compatible)
118
+ for log_line in client.tail_job_logs('job-12345', protocol='stream'):
119
+ print(log_line.strip())
120
+
121
+ # WebSocket streaming (lower latency)
122
+ for log_line in client.tail_job_logs('job-12345', protocol='websocket'):
123
+ print(log_line.strip())
124
+
125
+ # With custom timeout
126
+ for log_line in client.tail_job_logs('job-12345', stream_timeout=30):
127
+ if 'ERROR' in log_line:
128
+ break
129
+ ```
130
+
131
+ ### `websocket_tail_job_logs(pk, stream_timeout=10)`
132
+
133
+ Stream logs via WebSocket for lowest latency.
134
+
135
+ ```python
136
+ try:
137
+ for log_line in client.websocket_tail_job_logs('job-12345'):
138
+ print(log_line.strip())
139
+ if 'COMPLETED' in log_line:
140
+ break
141
+ except ClientError as e:
142
+ print(f"WebSocket streaming failed: {e}")
143
+ ```
144
+
145
+ ### `stream_tail_job_logs(pk, stream_timeout=10)`
146
+
147
+ Stream logs via HTTP chunked transfer encoding.
148
+
149
+ ```python
150
+ for log_line in client.stream_tail_job_logs('job-12345', stream_timeout=60):
151
+ if 'FAILED' in log_line:
152
+ print(f"Job failed: {log_line}")
153
+ break
154
+ ```
155
+
156
+ ## Node Operations
157
+
158
+ ### `get_node(pk)`
159
+
160
+ Get details for a specific cluster node.
161
+
162
+ ```python
163
+ node = client.get_node('node-abc123')
164
+ print(f"Node status: {node['alive']}")
165
+ ```
166
+
167
+ ### `list_nodes()`
168
+
169
+ List all nodes in the Ray cluster.
170
+
171
+ ```python
172
+ nodes = client.list_nodes()
173
+ for node in nodes['results']:
174
+ print(f"Node {node['node_id']}: {node['state']}")
175
+ ```
176
+
177
+ ## Task Operations
178
+
179
+ ### `get_task(pk)`
180
+
181
+ Retrieve details for a specific task.
182
+
183
+ ```python
184
+ task = client.get_task('task-xyz789')
185
+ ```
186
+
187
+ ### `list_tasks()`
188
+
189
+ List all tasks in the cluster.
190
+
191
+ ```python
192
+ tasks = client.list_tasks()
193
+ ```
194
+
195
+ ## Ray Serve Operations
196
+
197
+ ### `get_serve_application(pk)`
198
+
199
+ Get details for a Ray Serve application.
200
+
201
+ ```python
202
+ app = client.get_serve_application('app-123')
203
+ print(f"Application status: {app['status']}")
204
+ ```
205
+
206
+ ### `list_serve_applications()`
207
+
208
+ List all Ray Serve applications.
209
+
210
+ ```python
211
+ apps = client.list_serve_applications()
212
+ ```
213
+
214
+ ### `delete_serve_application(pk)`
215
+
216
+ Delete a Ray Serve application.
217
+
218
+ ```python
219
+ client.delete_serve_application('app-123')
220
+ ```
221
+
222
+ ## Error Handling
223
+
224
+ All methods include robust error handling with specific `ClientError` exceptions:
225
+
226
+ ```python
227
+ from synapse_sdk.clients.exceptions import ClientError
228
+
229
+ try:
230
+ for log_line in client.tail_job_logs('invalid-job'):
231
+ print(log_line)
232
+ except ClientError as e:
233
+ if e.status == 400:
234
+ print("Invalid job ID or parameters")
235
+ elif e.status == 404:
236
+ print("Job not found")
237
+ elif e.status == 503:
238
+ print("Connection to Ray cluster failed")
239
+ else:
240
+ print(f"Unexpected error: {e}")
241
+ ```
242
+
243
+ ### Common Error Codes
244
+
245
+ - **400**: Invalid parameters (job ID, timeout, protocol) or job already in terminal state
246
+ - **404**: Resource not found (job, node, task, application)
247
+ - **408**: Connection or read timeout
248
+ - **429**: Stream limits exceeded
249
+ - **500**: WebSocket library unavailable or internal error
250
+ - **503**: Ray cluster connection failed
251
+
252
+ ## Resource Management
253
+
254
+ The RayClient includes automatic resource management:
255
+
256
+ - **Thread Pool**: 5 worker threads for concurrent operations
257
+ - **Connection Tracking**: WeakSet for active connections
258
+ - **Stream Limits**: Prevents memory exhaustion
259
+ - **Automatic Cleanup**: Resources cleaned up on destruction
260
+
261
+ ### Stream Limits
262
+
263
+ Default limits for log streaming:
264
+
265
+ - Max messages: 10,000
266
+ - Max lines: 50,000
267
+ - Max bytes: 50MB
268
+ - Max message size: 10KB
269
+ - Queue size: 1,000
270
+
271
+ ## Best Practices
272
+
273
+ ### 1. Protocol Selection
274
+
275
+ ```python
276
+ # Use WebSocket for lowest latency when available
277
+ try:
278
+ logs = client.tail_job_logs(job_id, protocol='websocket')
279
+ except ClientError:
280
+ # Fallback to HTTP streaming
281
+ logs = client.tail_job_logs(job_id, protocol='stream')
282
+ ```
283
+
284
+ ### 2. Timeout Management
285
+
286
+ ```python
287
+ # Use appropriate timeouts for long-running jobs
288
+ for log_line in client.tail_job_logs(job_id, stream_timeout=300):
289
+ process_log_line(log_line)
290
+ ```
291
+
292
+ ### 3. Error Recovery
293
+
294
+ ```python
295
+ import time
296
+
297
+ def robust_log_streaming(client, job_id, max_retries=3):
298
+ for attempt in range(max_retries):
299
+ try:
300
+ for log_line in client.tail_job_logs(job_id):
301
+ yield log_line
302
+ break
303
+ except ClientError as e:
304
+ if e.status == 503 and attempt < max_retries - 1:
305
+ time.sleep(2 ** attempt) # Exponential backoff
306
+ continue
307
+ raise
308
+ ```
309
+
310
+ ### 4. Resource Cleanup
311
+
312
+ ```python
313
+ # Context manager for proper cleanup
314
+ class RayClientContext:
315
+ def __init__(self, base_url):
316
+ self.client = RayClient(base_url)
317
+
318
+ def __enter__(self):
319
+ return self.client
320
+
321
+ def __exit__(self, exc_type, exc_val, exc_tb):
322
+ # Cleanup handled automatically by RayClient.__del__()
323
+ pass
324
+
325
+ with RayClientContext("http://ray-head:8265") as client:
326
+ for log_line in client.tail_job_logs('job-12345'):
327
+ print(log_line.strip())
328
+ ```
329
+
330
+ ## Thread Safety
331
+
332
+ RayClient is designed for concurrent use with proper thread safety mechanisms:
333
+
334
+ - Thread pool for background operations
335
+ - WeakSet for connection tracking
336
+ - Proper resource cleanup mechanisms
337
+
338
+ ## See Also
339
+
340
+ - [AgentClient](./agent.md) - For agent-specific operations
341
+ - [BaseClient](./base.md) - Base client implementation
342
+ - [Network Utilities](../../features/utils/network.md) - Streaming and validation utilities
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: index
3
+ title: API Reference
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # API Reference
8
+
9
+ Complete reference documentation for Synapse SDK classes and functions.
10
+
11
+ ## Overview
12
+
13
+ The Synapse SDK API is organized into the following main modules:
14
+
15
+ ### [Clients](./clients/backend.md)
16
+ Client classes for interacting with backend services and agents.
17
+
18
+ - **[BackendClient](./clients/backend.md)** - Main client for backend operations
19
+ - **[AgentClient](./clients/agent.md)** - Client for agent-specific operations
20
+ - **[RayClient](./clients/ray.md)** - Client for Ray cluster management and monitoring
21
+ - **[BaseClient](./clients/base.md)** - Base class for all clients
22
+
23
+ Core plugin system components.
24
+
25
+ ### [Utilities](../features/utils/file.md)
26
+ Helper functions and utilities.
27
+
28
+ - **[File Utils](../features/utils/file.md)** - File operations and handling
29
+ - **[Network](../features/utils/network.md)** - Streaming, validation, and connection management
30
+ - **[Storage](../features/utils/storage.md)** - Storage providers (S3, GCS, SFTP)
31
+ - **[Types](../features/utils/types.md)** - Custom types and fields
32
+
33
+ ## Quick Reference
34
+
35
+ ### Creating a Client
36
+
37
+ ```python
38
+ from synapse_sdk.clients.backend import BackendClient
39
+
40
+ client = BackendClient(
41
+ base_url="https://api.synapse.sh",
42
+ api_token="your-api-token"
43
+ )
44
+ ```
45
+
46
+ ### Running a Plugin
47
+
48
+ ### Creating a Plugin Action
49
+
50
+ ## Type Annotations
51
+
52
+ ## File Handling
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: categories
3
+ title: Plugin Categories
4
+ sidebar_position: 2
5
+ ---
6
+
7
+ # Plugin Categories
8
+
9
+ Available plugin categories in the Synapse SDK.
10
+
11
+ ## Available Categories
12
+
13
+ ### NEURAL_NET
14
+ Machine learning model operations including training, inference, and deployment.
15
+
16
+ ### EXPORT
17
+ Data export and transformation operations.
18
+
19
+ ### UPLOAD
20
+ File and data upload functionality.
21
+
22
+ ### SMART_TOOL
23
+ Intelligent automation tools and utilities.
24
+
25
+ ### POST_ANNOTATION
26
+ Post-processing workflows after data annotation.
27
+
28
+ ### PRE_ANNOTATION
29
+ Pre-processing workflows before data annotation.
30
+
31
+ ### DATA_VALIDATION
32
+ Data quality checks and validation operations.
33
+
34
+ ## Usage
35
+
36
+ ```python
37
+ from synapse_sdk.plugins.categories.smart_tool import register_action, Action
38
+
39
+ @register_action("my_action")
40
+ class MyAction(Action):
41
+ category = "SMART_TOOL"
42
+ # Implementation...
43
+ ```
@@ -0,0 +1,114 @@
1
+ ---
2
+ id: models
3
+ title: Plugin Models
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # Plugin Models
8
+
9
+ Core data models and structures for the plugin system.
10
+
11
+ ## PluginRelease
12
+
13
+ Represents a specific version of a plugin.
14
+
15
+ ```python
16
+ from synapse_sdk.plugins.models import PluginRelease
17
+
18
+ release = PluginRelease(plugin_path="./my-plugin")
19
+ ```
20
+
21
+ ### Properties
22
+
23
+ - `plugin`: Plugin code identifier
24
+ - `version`: Plugin version
25
+ - `code`: Combined plugin and version string
26
+ - `category`: Plugin category
27
+ - `name`: Human-readable plugin name
28
+ - `actions`: Available plugin actions
29
+
30
+ ## PluginAction
31
+
32
+ Represents a plugin action execution request.
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
+ Execution context for plugin actions.
48
+
49
+ ```python
50
+ def start(self):
51
+ # Log messages
52
+ self.run.log("Processing started")
53
+
54
+ # Update progress
55
+ self.run.set_progress(0.5)
56
+
57
+ # Set metrics
58
+ self.run.set_metrics({"processed": 100})
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