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
synapse_sdk/__init__.py CHANGED
@@ -0,0 +1,24 @@
1
+ """
2
+ Export / Import Guidelines
3
+ --------------------------
4
+
5
+ 1. Do NOT import the top-level package directly.
6
+ - All imports must start from at least two levels below the root package.
7
+ (e.g., `project.module.submodule` is allowed,
8
+ `project` ė˜ėŠ” `project.module` ė‹Øģ¼ importėŠ” źøˆģ§€)
9
+
10
+ 2. Wildcard import (`from x import *`) is strictly prohibited.
11
+ - ėŖØė“  외부 ė…øģ¶œ(export)ģ€ ėŖ…ģ‹œģ ģø ģ“ė¦„ 기반으딜 ꓀리핓야 ķ•œė‹¤.
12
+ - `__all__` 리스트넼 통핓 ź³µź°œķ•  API넼 ėŖ…ķ™•ķžˆ ģ •ģ˜ķ•  것.
13
+
14
+ 3. Public API 넼 구성할 ė•Œ:
15
+ - ķ•˜ģœ„ ėŖØė“ˆģ—ģ„œ exportķ•  ķ•­ėŖ©ė§Œ `__all__`에 ģ„ ģ–øķ•œė‹¤.
16
+ - ė‚“ė¶€ źµ¬ķ˜„ģš© ķ•Øģˆ˜/ķ“ėž˜ģŠ¤ėŠ” `_` prefix 넼 ģ‚¬ģš©ķ•˜ź±°ė‚˜ `__all__`에 ķ¬ķ•Øķ•˜ģ§€ ģ•ŠėŠ”ė‹¤.
17
+
18
+ 4. ėŖØė“ˆ ź°„ ģ˜ģ”“ģ„±ģ€ ģµœė‹Ø 경딜만 ķ—ˆģš©ķ•œė‹¤.
19
+ - ė¶ˆķ•„ģš”ķ•œ ģƒģœ„/ķ‰ķ–‰ ķŒØķ‚¤ģ§€ import ź²½ė”œėŠ” źøˆģ§€ķ•˜ģ—¬ ģˆœķ™˜ ģ˜ģ”“ģ„±(circular dependency)ģ„ ė°©ģ§€ķ•œė‹¤.
20
+ """
21
+
22
+ from synapse_sdk.shared import worker_process_setup_hook
23
+
24
+ __all__ = ['worker_process_setup_hook']
@@ -1,13 +1,316 @@
1
+ import os
2
+
1
3
  import click
4
+ import inquirer
5
+ import requests
2
6
 
3
- from .alias import alias
7
+ from .code_server import code_server
8
+ from .config import config
9
+ from .devtools import devtools
4
10
  from .plugin import plugin
5
11
 
6
12
 
7
- @click.group()
8
- def cli():
9
- pass
13
+ def clear_screen():
14
+ """Clear the terminal screen"""
15
+ os.system('cls' if os.name == 'nt' else 'clear')
16
+
17
+
18
+ def check_backend_status():
19
+ """Check backend connection status and token validity"""
20
+ from synapse_sdk.devtools.config import get_backend_config
21
+
22
+ backend_config = get_backend_config()
23
+ if not backend_config:
24
+ return 'not_configured', 'No backend configured'
25
+
26
+ try:
27
+ # Try an authenticated endpoint to verify token validity
28
+ # Use /users/me/ which requires authentication
29
+ response = requests.get(
30
+ f'{backend_config["host"]}/users/me/',
31
+ headers={'Synapse-Access-Token': f'Token {backend_config["token"]}'},
32
+ timeout=5,
33
+ )
34
+
35
+ if response.status_code == 200:
36
+ return 'healthy', f'Connected to {backend_config["host"]}'
37
+ elif response.status_code == 401:
38
+ return 'auth_error', 'Invalid token (401)'
39
+ elif response.status_code == 403:
40
+ return 'forbidden', 'Access forbidden (403)'
41
+ elif response.status_code == 404:
42
+ # If /users/me/ doesn't exist, try /health as fallback
43
+ try:
44
+ health_response = requests.get(
45
+ f'{backend_config["host"]}/health',
46
+ headers={'Synapse-Access-Token': f'Token {backend_config["token"]}'},
47
+ timeout=3,
48
+ )
49
+ if health_response.status_code == 200:
50
+ return 'healthy', f'Connected to {backend_config["host"]}'
51
+ elif health_response.status_code == 401:
52
+ return 'auth_error', 'Invalid token (401)'
53
+ elif health_response.status_code == 403:
54
+ return 'forbidden', 'Access forbidden (403)'
55
+ else:
56
+ return 'error', f'HTTP {health_response.status_code}'
57
+ except: # noqa: E722
58
+ return 'error', 'Endpoint not found (404)'
59
+ else:
60
+ return 'error', f'HTTP {response.status_code}'
61
+
62
+ except requests.exceptions.Timeout:
63
+ return 'timeout', 'Connection timeout (>5s)'
64
+ except requests.exceptions.ConnectionError:
65
+ return 'connection_error', 'Connection failed'
66
+ except Exception as e:
67
+ return 'error', f'Connection error: {str(e)}'
68
+
69
+
70
+ def check_agent_status():
71
+ """Check agent configuration status"""
72
+ from synapse_sdk.devtools.config import load_devtools_config
73
+
74
+ config = load_devtools_config()
75
+ agent_config = config.get('agent', {})
76
+
77
+ if not agent_config.get('id'):
78
+ return 'not_configured', 'No agent selected'
79
+
80
+ return 'configured', f'{agent_config.get("name", "")} (ID: {agent_config["id"]})'
81
+
82
+
83
+ def display_connection_status():
84
+ """Display connection status for backend and agent"""
85
+ click.echo(click.style('Connection Status:', fg='white', bold=True))
86
+
87
+ # Check backend status (async with timeout)
88
+ backend_status, backend_msg = check_backend_status()
89
+
90
+ # Backend status with specific handling for auth errors
91
+ if backend_status == 'healthy':
92
+ click.echo(f'🟢 Backend: {click.style(backend_msg, fg="green")}')
93
+ elif backend_status == 'not_configured':
94
+ click.echo(f'šŸ”“ Backend: {click.style(backend_msg, fg="yellow")}')
95
+ elif backend_status in ['auth_error', 'forbidden']:
96
+ click.echo(f'šŸ”“ Backend: {click.style(backend_msg, fg="red", bold=True)}')
97
+ else:
98
+ click.echo(f'šŸ”“ Backend: {click.style(backend_msg, fg="red")}')
99
+
100
+ # Agent status (config check only, no network call)
101
+ agent_status, agent_msg = check_agent_status()
102
+ if agent_status == 'configured':
103
+ click.echo(f'🟢 Agent: {click.style(agent_msg, fg="green")}')
104
+ else:
105
+ click.echo(f'šŸ”“ Agent: {click.style(agent_msg, fg="yellow")}')
106
+
107
+ click.echo() # Empty line for spacing
108
+
109
+
110
+ def run_devtools(build=True):
111
+ """Run devtools with default settings"""
112
+ # Import the devtools command and run it
113
+ from .devtools import devtools
114
+
115
+ # Use default settings
116
+ ctx = click.Context(devtools)
117
+ ctx.invoke(devtools, host=None, port=None, debug=False)
118
+
119
+
120
+ # build_frontend function removed - no longer needed with Streamlit
121
+
122
+
123
+ def run_config():
124
+ """Run the configuration menu"""
125
+ from .config import interactive_config
126
+
127
+ interactive_config()
128
+
129
+
130
+ def run_plugin_management():
131
+ """Run interactive plugin management"""
132
+ while True:
133
+ clear_screen()
134
+ click.echo(click.style('šŸ”Œ Plugin Management', fg='cyan', bold=True))
135
+ click.echo('Manage your Synapse plugins\n')
136
+
137
+ questions = [
138
+ inquirer.List(
139
+ 'action',
140
+ message='What would you like to do?',
141
+ choices=[
142
+ ('Create new plugin', 'create'),
143
+ ('Run plugin locally', 'run'),
144
+ ('Publish plugin', 'publish'),
145
+ ('← Back to main menu', 'back'),
146
+ ],
147
+ )
148
+ ]
149
+
150
+ answers = inquirer.prompt(questions)
151
+ if not answers or answers['action'] == 'back':
152
+ clear_screen()
153
+ break
154
+
155
+ if answers['action'] == 'create':
156
+ click.echo('\nCreating new plugin...')
157
+ from .plugin.create import create
158
+
159
+ ctx = click.Context(create)
160
+ ctx.invoke(create)
161
+ click.echo('\nPress Enter to continue...')
162
+ input()
163
+
164
+ elif answers['action'] == 'run':
165
+ # Get plugin action and parameters
166
+ run_questions = [
167
+ inquirer.Text('action', message='Plugin action to run'),
168
+ inquirer.Text('params', message='Parameters (JSON format)', default='{}'),
169
+ inquirer.List(
170
+ 'run_by',
171
+ message='Run by',
172
+ choices=[
173
+ ('Script (local)', 'script'),
174
+ ('Agent', 'agent'),
175
+ ('Backend', 'backend'),
176
+ ],
177
+ default='script',
178
+ ),
179
+ ]
180
+
181
+ run_answers = inquirer.prompt(run_questions)
182
+ if run_answers:
183
+ click.echo('\nRunning plugin...')
184
+ from .plugin.run import run
185
+
186
+ ctx = click.Context(run)
187
+ ctx.obj = {'DEBUG': False}
188
+
189
+ try:
190
+ if run_answers['run_by'] == 'script':
191
+ ctx.invoke(
192
+ run,
193
+ action=run_answers['action'],
194
+ params=run_answers['params'],
195
+ job_id=None,
196
+ direct=False,
197
+ run_by='script',
198
+ agent_host=None,
199
+ agent_token=None,
200
+ host=None,
201
+ agent=None,
202
+ user_token=None,
203
+ tenant=None,
204
+ )
205
+ else:
206
+ click.echo(click.style('\nNote: For agent/backend runs, use the command line:', fg='yellow'))
207
+ cmd = (
208
+ f"synapse plugin run {run_answers['action']} '{run_answers['params']}' "
209
+ f'--run-by {run_answers["run_by"]}'
210
+ )
211
+ click.echo(cmd)
212
+ except Exception as e:
213
+ click.echo(click.style(f'\nError: {str(e)}', fg='red'))
214
+
215
+ click.echo('\nPress Enter to continue...')
216
+ input()
217
+
218
+ elif answers['action'] == 'publish':
219
+ # Get backend configuration
220
+ from synapse_sdk.devtools.config import get_backend_config
221
+
222
+ backend_config = get_backend_config()
223
+
224
+ if not backend_config:
225
+ click.echo(click.style('\n⚠ No backend configured. Please configure backend first.', fg='yellow'))
226
+ click.echo('\nPress Enter to continue...')
227
+ input()
228
+ continue
229
+
230
+ publish_questions = [
231
+ inquirer.Confirm('debug', message='Publish in debug mode?', default=True),
232
+ inquirer.Confirm('confirm', message=f'Publish plugin to {backend_config["host"]}?', default=True),
233
+ ]
234
+
235
+ publish_answers = inquirer.prompt(publish_questions)
236
+ if publish_answers and publish_answers['confirm']:
237
+ click.echo('\nPublishing plugin...')
238
+ from .plugin.publish import _publish
239
+
240
+ debug_mode = publish_answers.get('debug', True)
241
+ try:
242
+ _publish(backend_config['host'], backend_config['token'], debug=debug_mode)
243
+ except Exception as e:
244
+ click.echo(click.style(f'\nError: {str(e)}', fg='red'))
245
+ click.echo('\nPress Enter to continue...')
246
+ input()
247
+ else:
248
+ click.echo('\nPress Enter to continue...')
249
+ input()
250
+
251
+
252
+ @click.group(invoke_without_command=True)
253
+ @click.option('--dev-tools', is_flag=True, help='Start devtools immediately')
254
+ @click.pass_context
255
+ def cli(ctx, dev_tools):
256
+ """Synapse SDK - Interactive CLI"""
257
+
258
+ # Handle --dev-tools flag
259
+ if dev_tools:
260
+ run_devtools()
261
+ return
262
+
263
+ if ctx.invoked_subcommand is None:
264
+ while True:
265
+ clear_screen() # Always clear screen at start of main menu loop
266
+ click.echo(click.style('šŸš€ Synapse SDK', fg='cyan', bold=True))
267
+ click.echo()
268
+
269
+ try:
270
+ questions = [
271
+ inquirer.List(
272
+ 'choice',
273
+ message='Select an option:',
274
+ choices=[
275
+ ('🌐 Run Dev Tools', 'devtools'),
276
+ ('šŸ’» Open Code-Server IDE', 'code_server'),
277
+ ('āš™ļø Configuration', 'config'),
278
+ ('šŸ”Œ Plugin Management', 'plugin'),
279
+ ('🚪 Exit', 'exit'),
280
+ ],
281
+ )
282
+ ]
283
+
284
+ answers = inquirer.prompt(questions)
285
+ if not answers or answers['choice'] == 'exit':
286
+ clear_screen()
287
+ click.echo(click.style('šŸ‘‹ Goodbye!', fg='green'))
288
+ break
289
+
290
+ if answers['choice'] == 'devtools':
291
+ run_devtools()
292
+ break # Exit after devtools finishes
293
+ elif answers['choice'] == 'code_server':
294
+ from .code_server import code_server
295
+
296
+ ctx.invoke(code_server)
297
+ click.echo('\nPress Enter to return to main menu...')
298
+ input()
299
+ # Continue to main menu loop
300
+ elif answers['choice'] == 'config':
301
+ run_config()
302
+ # Config menu returned, continue to main menu loop
303
+ elif answers['choice'] == 'plugin':
304
+ run_plugin_management()
305
+ # Don't break - continue to main menu loop
306
+
307
+ except (KeyboardInterrupt, EOFError):
308
+ clear_screen()
309
+ click.echo(click.style('šŸ‘‹ Goodbye!', fg='yellow'))
310
+ break
10
311
 
11
312
 
12
313
  cli.add_command(plugin)
13
- cli.add_command(alias)
314
+ cli.add_command(config)
315
+ cli.add_command(devtools)
316
+ cli.add_command(code_server)
@@ -2,7 +2,7 @@ from pathlib import Path
2
2
 
3
3
  from dotenv import dotenv_values, load_dotenv, set_key, unset_key
4
4
 
5
- CONFIG_DIR = Path.home() / '.config' / 'synapse_alias'
5
+ CONFIG_DIR = Path.home() / '.config' / 'synapse'
6
6
  DEFAULT_FILE = CONFIG_DIR / '__default__'
7
7
 
8
8