synapse-sdk 1.0.0a13__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 (339) hide show
  1. synapse_sdk/__init__.py +24 -0
  2. synapse_sdk/cli/__init__.py +310 -5
  3. synapse_sdk/cli/alias/__init__.py +22 -0
  4. synapse_sdk/cli/alias/create.py +36 -0
  5. synapse_sdk/cli/alias/dataclass.py +31 -0
  6. synapse_sdk/cli/alias/default.py +16 -0
  7. synapse_sdk/cli/alias/delete.py +15 -0
  8. synapse_sdk/cli/alias/list.py +19 -0
  9. synapse_sdk/cli/alias/read.py +15 -0
  10. synapse_sdk/cli/alias/update.py +17 -0
  11. synapse_sdk/cli/alias/utils.py +61 -0
  12. synapse_sdk/cli/code_server.py +687 -0
  13. synapse_sdk/cli/config.py +440 -0
  14. synapse_sdk/cli/devtools.py +90 -0
  15. synapse_sdk/cli/plugin/__init__.py +33 -0
  16. synapse_sdk/cli/{create_plugin.py → plugin/create.py} +2 -2
  17. synapse_sdk/cli/plugin/publish.py +45 -0
  18. synapse_sdk/{plugins/cli → cli/plugin}/run.py +12 -5
  19. synapse_sdk/clients/agent/__init__.py +9 -3
  20. synapse_sdk/clients/agent/container.py +133 -0
  21. synapse_sdk/clients/agent/core.py +19 -0
  22. synapse_sdk/clients/agent/ray.py +298 -9
  23. synapse_sdk/clients/backend/__init__.py +41 -12
  24. synapse_sdk/clients/backend/annotation.py +13 -5
  25. synapse_sdk/clients/backend/core.py +59 -0
  26. synapse_sdk/clients/backend/data_collection.py +186 -0
  27. synapse_sdk/clients/backend/hitl.py +17 -0
  28. synapse_sdk/clients/backend/integration.py +19 -4
  29. synapse_sdk/clients/backend/ml.py +10 -7
  30. synapse_sdk/clients/backend/models.py +78 -0
  31. synapse_sdk/clients/base.py +381 -34
  32. synapse_sdk/clients/ray/serve.py +2 -0
  33. synapse_sdk/clients/validators/collections.py +31 -0
  34. synapse_sdk/devtools/config.py +94 -0
  35. synapse_sdk/devtools/docs/.gitignore +20 -0
  36. synapse_sdk/devtools/docs/README.md +41 -0
  37. synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
  38. synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
  39. synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  40. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  41. synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
  42. synapse_sdk/devtools/docs/blog/authors.yml +25 -0
  43. synapse_sdk/devtools/docs/blog/tags.yml +19 -0
  44. synapse_sdk/devtools/docs/docs/api/clients/agent.md +43 -0
  45. synapse_sdk/devtools/docs/docs/api/clients/annotation-mixin.md +378 -0
  46. synapse_sdk/devtools/docs/docs/api/clients/backend.md +420 -0
  47. synapse_sdk/devtools/docs/docs/api/clients/base.md +257 -0
  48. synapse_sdk/devtools/docs/docs/api/clients/core-mixin.md +477 -0
  49. synapse_sdk/devtools/docs/docs/api/clients/data-collection-mixin.md +422 -0
  50. synapse_sdk/devtools/docs/docs/api/clients/hitl-mixin.md +554 -0
  51. synapse_sdk/devtools/docs/docs/api/clients/index.md +391 -0
  52. synapse_sdk/devtools/docs/docs/api/clients/integration-mixin.md +571 -0
  53. synapse_sdk/devtools/docs/docs/api/clients/ml-mixin.md +578 -0
  54. synapse_sdk/devtools/docs/docs/api/clients/ray.md +342 -0
  55. synapse_sdk/devtools/docs/docs/api/index.md +52 -0
  56. synapse_sdk/devtools/docs/docs/api/plugins/categories.md +43 -0
  57. synapse_sdk/devtools/docs/docs/api/plugins/models.md +114 -0
  58. synapse_sdk/devtools/docs/docs/api/plugins/utils.md +328 -0
  59. synapse_sdk/devtools/docs/docs/categories.md +0 -0
  60. synapse_sdk/devtools/docs/docs/cli-usage.md +280 -0
  61. synapse_sdk/devtools/docs/docs/concepts/index.md +38 -0
  62. synapse_sdk/devtools/docs/docs/configuration.md +83 -0
  63. synapse_sdk/devtools/docs/docs/contributing.md +306 -0
  64. synapse_sdk/devtools/docs/docs/examples/index.md +29 -0
  65. synapse_sdk/devtools/docs/docs/faq.md +179 -0
  66. synapse_sdk/devtools/docs/docs/features/converters/index.md +455 -0
  67. synapse_sdk/devtools/docs/docs/features/index.md +24 -0
  68. synapse_sdk/devtools/docs/docs/features/utils/file.md +415 -0
  69. synapse_sdk/devtools/docs/docs/features/utils/network.md +378 -0
  70. synapse_sdk/devtools/docs/docs/features/utils/storage.md +57 -0
  71. synapse_sdk/devtools/docs/docs/features/utils/types.md +51 -0
  72. synapse_sdk/devtools/docs/docs/installation.md +94 -0
  73. synapse_sdk/devtools/docs/docs/introduction.md +47 -0
  74. synapse_sdk/devtools/docs/docs/plugins/categories/neural-net-plugins/train-action-overview.md +814 -0
  75. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  76. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  77. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  78. synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  79. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  80. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  81. synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  82. synapse_sdk/devtools/docs/docs/plugins/export-plugins.md +1092 -0
  83. synapse_sdk/devtools/docs/docs/plugins/plugins.md +852 -0
  84. synapse_sdk/devtools/docs/docs/quickstart.md +78 -0
  85. synapse_sdk/devtools/docs/docs/troubleshooting.md +519 -0
  86. synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json +8 -0
  87. synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md +23 -0
  88. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
  89. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-document.md +57 -0
  90. synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-page.md +43 -0
  91. synapse_sdk/devtools/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
  92. synapse_sdk/devtools/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
  93. synapse_sdk/devtools/docs/docs/tutorial-extras/_category_.json +7 -0
  94. synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  95. synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
  96. synapse_sdk/devtools/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
  97. synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md +88 -0
  98. synapse_sdk/devtools/docs/docusaurus.config.ts +148 -0
  99. synapse_sdk/devtools/docs/i18n/ko/code.json +325 -0
  100. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/agent.md +43 -0
  101. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/annotation-mixin.md +289 -0
  102. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/backend.md +420 -0
  103. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/base.md +257 -0
  104. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/core-mixin.md +417 -0
  105. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/data-collection-mixin.md +356 -0
  106. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/hitl-mixin.md +192 -0
  107. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/index.md +391 -0
  108. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/integration-mixin.md +479 -0
  109. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ml-mixin.md +284 -0
  110. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md +342 -0
  111. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/index.md +52 -0
  112. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/plugins/models.md +114 -0
  113. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md +0 -0
  114. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md +280 -0
  115. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md +38 -0
  116. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md +83 -0
  117. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/contributing.md +306 -0
  118. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md +29 -0
  119. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/faq.md +179 -0
  120. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/converters/index.md +30 -0
  121. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md +24 -0
  122. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/file.md +415 -0
  123. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/network.md +378 -0
  124. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/storage.md +60 -0
  125. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md +51 -0
  126. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/installation.md +94 -0
  127. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +47 -0
  128. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/neural-net-plugins/train-action-overview.md +815 -0
  129. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
  130. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
  131. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
  132. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
  133. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
  134. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
  135. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
  136. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md +1092 -0
  137. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md +117 -0
  138. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/quickstart.md +78 -0
  139. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/troubleshooting.md +519 -0
  140. synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +34 -0
  141. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json +42 -0
  142. synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json +18 -0
  143. synapse_sdk/devtools/docs/package-lock.json +18784 -0
  144. synapse_sdk/devtools/docs/package.json +48 -0
  145. synapse_sdk/devtools/docs/sidebars.ts +122 -0
  146. synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
  147. synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
  148. synapse_sdk/devtools/docs/src/css/custom.css +30 -0
  149. synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
  150. synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
  151. synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
  152. synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  153. synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  154. synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  155. synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  156. synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  157. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
  158. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
  159. synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
  160. synapse_sdk/devtools/docs/tsconfig.json +8 -0
  161. synapse_sdk/devtools/server.py +41 -0
  162. synapse_sdk/devtools/streamlit_app/__init__.py +5 -0
  163. synapse_sdk/devtools/streamlit_app/app.py +128 -0
  164. synapse_sdk/devtools/streamlit_app/services/__init__.py +11 -0
  165. synapse_sdk/devtools/streamlit_app/services/job_service.py +233 -0
  166. synapse_sdk/devtools/streamlit_app/services/plugin_service.py +236 -0
  167. synapse_sdk/devtools/streamlit_app/services/serve_service.py +95 -0
  168. synapse_sdk/devtools/streamlit_app/ui/__init__.py +15 -0
  169. synapse_sdk/devtools/streamlit_app/ui/config_tab.py +76 -0
  170. synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +66 -0
  171. synapse_sdk/devtools/streamlit_app/ui/http_tab.py +125 -0
  172. synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +573 -0
  173. synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +346 -0
  174. synapse_sdk/devtools/streamlit_app/ui/status_bar.py +118 -0
  175. synapse_sdk/devtools/streamlit_app/utils/__init__.py +40 -0
  176. synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +197 -0
  177. synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +38 -0
  178. synapse_sdk/devtools/streamlit_app/utils/styles.py +241 -0
  179. synapse_sdk/devtools/streamlit_app/utils/ui_components.py +289 -0
  180. synapse_sdk/devtools/streamlit_app.py +10 -0
  181. synapse_sdk/loggers.py +74 -9
  182. synapse_sdk/plugins/README.md +1340 -0
  183. synapse_sdk/plugins/__init__.py +0 -13
  184. synapse_sdk/plugins/categories/base.py +145 -30
  185. synapse_sdk/plugins/categories/data_validation/actions/validation.py +72 -0
  186. synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +33 -5
  187. synapse_sdk/plugins/categories/export/actions/__init__.py +3 -0
  188. synapse_sdk/plugins/categories/export/actions/export/__init__.py +28 -0
  189. synapse_sdk/plugins/categories/export/actions/export/action.py +165 -0
  190. synapse_sdk/plugins/categories/export/actions/export/enums.py +113 -0
  191. synapse_sdk/plugins/categories/export/actions/export/exceptions.py +53 -0
  192. synapse_sdk/plugins/categories/export/actions/export/models.py +74 -0
  193. synapse_sdk/plugins/categories/export/actions/export/run.py +195 -0
  194. synapse_sdk/plugins/categories/export/actions/export/utils.py +187 -0
  195. synapse_sdk/plugins/categories/export/templates/config.yaml +21 -0
  196. synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
  197. synapse_sdk/plugins/categories/export/templates/plugin/export.py +160 -0
  198. synapse_sdk/plugins/categories/neural_net/actions/deployment.py +29 -14
  199. synapse_sdk/plugins/categories/neural_net/actions/inference.py +13 -1
  200. synapse_sdk/plugins/categories/neural_net/actions/train.py +1084 -38
  201. synapse_sdk/plugins/categories/neural_net/actions/tune.py +534 -0
  202. synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
  203. synapse_sdk/plugins/categories/neural_net/base/inference.py +37 -0
  204. synapse_sdk/plugins/categories/neural_net/templates/config.yaml +30 -5
  205. synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +26 -10
  206. synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
  207. synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
  208. synapse_sdk/plugins/categories/{export/actions/export.py → pre_annotation/actions/pre_annotation/action.py} +4 -4
  209. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
  210. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +145 -0
  211. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
  212. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
  213. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
  214. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +97 -0
  215. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +250 -0
  216. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
  217. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
  218. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +287 -0
  219. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
  220. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
  221. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +87 -0
  222. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +127 -0
  223. synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
  224. synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +966 -0
  225. synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +19 -0
  226. synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +40 -0
  227. synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +5 -2
  228. synapse_sdk/plugins/categories/upload/__init__.py +0 -0
  229. synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
  230. synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +19 -0
  231. synapse_sdk/plugins/categories/upload/actions/upload/action.py +232 -0
  232. synapse_sdk/plugins/categories/upload/actions/upload/context.py +185 -0
  233. synapse_sdk/plugins/categories/upload/actions/upload/enums.py +471 -0
  234. synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py +36 -0
  235. synapse_sdk/plugins/categories/upload/actions/upload/factory.py +138 -0
  236. synapse_sdk/plugins/categories/upload/actions/upload/models.py +203 -0
  237. synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py +183 -0
  238. synapse_sdk/plugins/categories/upload/actions/upload/registry.py +113 -0
  239. synapse_sdk/plugins/categories/upload/actions/upload/run.py +179 -0
  240. synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py +1 -0
  241. synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py +107 -0
  242. synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +62 -0
  243. synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py +63 -0
  244. synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py +84 -0
  245. synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py +82 -0
  246. synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +235 -0
  247. synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +203 -0
  248. synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py +97 -0
  249. synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py +71 -0
  250. synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py +1 -0
  251. synapse_sdk/plugins/categories/upload/actions/upload/strategies/base.py +82 -0
  252. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/__init__.py +1 -0
  253. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/batch.py +39 -0
  254. synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/single.py +29 -0
  255. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/__init__.py +1 -0
  256. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/flat.py +258 -0
  257. synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/recursive.py +281 -0
  258. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/__init__.py +1 -0
  259. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/excel.py +174 -0
  260. synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/none.py +16 -0
  261. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/__init__.py +1 -0
  262. synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py +84 -0
  263. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py +1 -0
  264. synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py +60 -0
  265. synapse_sdk/plugins/categories/upload/actions/upload/utils.py +250 -0
  266. synapse_sdk/plugins/categories/upload/templates/README.md +470 -0
  267. synapse_sdk/plugins/categories/upload/templates/config.yaml +33 -0
  268. synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +294 -0
  269. synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +102 -0
  270. synapse_sdk/plugins/enums.py +3 -1
  271. synapse_sdk/plugins/models.py +140 -16
  272. synapse_sdk/plugins/templates/plugin-config-schema.json +406 -0
  273. synapse_sdk/plugins/templates/schema.json +491 -0
  274. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +1 -0
  275. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +1 -1
  276. synapse_sdk/plugins/utils/__init__.py +46 -0
  277. synapse_sdk/plugins/utils/actions.py +119 -0
  278. synapse_sdk/plugins/utils/config.py +203 -0
  279. synapse_sdk/plugins/utils/legacy.py +95 -0
  280. synapse_sdk/plugins/utils/ray_gcs.py +66 -0
  281. synapse_sdk/plugins/utils/registry.py +58 -0
  282. synapse_sdk/shared/__init__.py +25 -0
  283. synapse_sdk/shared/enums.py +93 -0
  284. synapse_sdk/types.py +19 -0
  285. synapse_sdk/utils/converters/__init__.py +240 -0
  286. synapse_sdk/utils/converters/coco/__init__.py +0 -0
  287. synapse_sdk/utils/converters/coco/from_dm.py +322 -0
  288. synapse_sdk/utils/converters/coco/to_dm.py +215 -0
  289. synapse_sdk/utils/converters/dm/__init__.py +56 -0
  290. synapse_sdk/utils/converters/dm/from_v1.py +627 -0
  291. synapse_sdk/utils/converters/dm/to_v1.py +367 -0
  292. synapse_sdk/utils/converters/pascal/__init__.py +0 -0
  293. synapse_sdk/utils/converters/pascal/from_dm.py +244 -0
  294. synapse_sdk/utils/converters/pascal/to_dm.py +214 -0
  295. synapse_sdk/utils/converters/yolo/__init__.py +0 -0
  296. synapse_sdk/utils/converters/yolo/from_dm.py +384 -0
  297. synapse_sdk/utils/converters/yolo/to_dm.py +267 -0
  298. synapse_sdk/utils/dataset.py +46 -0
  299. synapse_sdk/utils/encryption.py +158 -0
  300. synapse_sdk/utils/file/__init__.py +39 -0
  301. synapse_sdk/utils/file/archive.py +32 -0
  302. synapse_sdk/utils/file/checksum.py +56 -0
  303. synapse_sdk/utils/file/chunking.py +31 -0
  304. synapse_sdk/utils/file/download.py +385 -0
  305. synapse_sdk/utils/file/encoding.py +40 -0
  306. synapse_sdk/utils/file/io.py +22 -0
  307. synapse_sdk/utils/file/video/__init__.py +29 -0
  308. synapse_sdk/utils/file/video/transcode.py +307 -0
  309. synapse_sdk/utils/file.py.backup +301 -0
  310. synapse_sdk/utils/http.py +138 -0
  311. synapse_sdk/utils/network.py +309 -0
  312. synapse_sdk/utils/storage/__init__.py +72 -0
  313. synapse_sdk/utils/storage/providers/__init__.py +183 -0
  314. synapse_sdk/utils/storage/providers/file_system.py +134 -0
  315. synapse_sdk/utils/storage/providers/gcp.py +13 -0
  316. synapse_sdk/utils/storage/providers/http.py +190 -0
  317. synapse_sdk/utils/storage/providers/s3.py +91 -0
  318. synapse_sdk/utils/storage/providers/sftp.py +47 -0
  319. synapse_sdk/utils/storage/registry.py +17 -0
  320. synapse_sdk-2025.11.7.dist-info/METADATA +122 -0
  321. synapse_sdk-2025.11.7.dist-info/RECORD +386 -0
  322. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/WHEEL +1 -1
  323. synapse_sdk/clients/backend/dataset.py +0 -51
  324. synapse_sdk/plugins/categories/import/actions/import.py +0 -10
  325. synapse_sdk/plugins/cli/__init__.py +0 -21
  326. synapse_sdk/plugins/cli/publish.py +0 -37
  327. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env +0 -24
  328. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -24
  329. synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/main.py +0 -4
  330. synapse_sdk/plugins/utils.py +0 -50
  331. synapse_sdk/utils/file.py +0 -87
  332. synapse_sdk/utils/storage.py +0 -91
  333. synapse_sdk-1.0.0a13.dist-info/METADATA +0 -43
  334. synapse_sdk-1.0.0a13.dist-info/RECORD +0 -111
  335. /synapse_sdk/{plugins/categories/import → clients/validators}/__init__.py +0 -0
  336. /synapse_sdk/{plugins/categories/import/actions → devtools}/__init__.py +0 -0
  337. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/entry_points.txt +0 -0
  338. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info/licenses}/LICENSE +0 -0
  339. {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,415 @@
1
+ ---
2
+ id: file
3
+ title: File Utilities
4
+ sidebar_position: 1
5
+ ---
6
+
7
+ # File Utilities
8
+
9
+ Comprehensive file operations and handling utilities organized in a modular structure for better maintainability and functionality.
10
+
11
+ ## Module Overview
12
+
13
+ The file utilities have been refactored into a modular structure with specialized modules for different operations:
14
+
15
+ - **`synapse_sdk.utils.file.archive`** - ZIP archive creation and extraction
16
+ - **`synapse_sdk.utils.file.checksum`** - File hash calculations and verification
17
+ - **`synapse_sdk.utils.file.chunking`** - Memory-efficient file reading in chunks
18
+ - **`synapse_sdk.utils.file.download`** - File downloading utilities with async support
19
+ - **`synapse_sdk.utils.file.encoding`** - Base64 encoding and file format handling
20
+ - **`synapse_sdk.utils.file.io`** - General I/O operations for JSON/YAML files
21
+ - **`synapse_sdk.utils.file.video`** - Video transcoding and format conversion
22
+
23
+ ### Backward Compatibility
24
+
25
+ All functions remain accessible from the main module import:
26
+
27
+ ```python
28
+ # Both approaches work identically
29
+ from synapse_sdk.utils.file import read_file_in_chunks, download_file
30
+ from synapse_sdk.utils.file.chunking import read_file_in_chunks
31
+ from synapse_sdk.utils.file.download import download_file
32
+ ```
33
+
34
+ ## Archive Operations
35
+
36
+ Functions for creating and extracting ZIP archives.
37
+
38
+ ```python
39
+ from synapse_sdk.utils.file.archive import archive, unarchive
40
+
41
+ # Create archive
42
+ archive('/path/to/directory', '/path/to/output.zip')
43
+
44
+ # Extract archive
45
+ unarchive('/path/to/archive.zip', '/path/to/extract/directory')
46
+ ```
47
+
48
+ ## Chunked File Operations
49
+
50
+ ### read_file_in_chunks
51
+
52
+ Read files in chunks for efficient memory usage, particularly useful for large files or when processing files in chunks for uploading or hashing.
53
+
54
+ ```python
55
+ from synapse_sdk.utils.file.chunking import read_file_in_chunks
56
+
57
+ # Read a file in default 50MB chunks
58
+ for chunk in read_file_in_chunks('/path/to/large_file.bin'):
59
+ process_chunk(chunk)
60
+
61
+ # Read with custom chunk size (10MB)
62
+ for chunk in read_file_in_chunks('/path/to/file.bin', chunk_size=1024*1024*10):
63
+ upload_chunk(chunk)
64
+ ```
65
+
66
+ **Parameters:**
67
+
68
+ - `file_path` (str | Path): Path to the file to read
69
+ - `chunk_size` (int, optional): Size of each chunk in bytes. Defaults to 50MB (52,428,800 bytes)
70
+
71
+ **Returns:**
72
+
73
+ - Generator yielding file content chunks as bytes
74
+
75
+ **Raises:**
76
+
77
+ - `FileNotFoundError`: If the file doesn't exist
78
+ - `PermissionError`: If the file can't be read due to permissions
79
+ - `OSError`: If there's an OS-level error reading the file
80
+
81
+ ### Use Cases
82
+
83
+ **Large File Processing**: Efficiently process files that are too large to fit in memory:
84
+
85
+ ```python
86
+ import hashlib
87
+
88
+ def calculate_hash_for_large_file(file_path):
89
+ hash_md5 = hashlib.md5()
90
+ for chunk in read_file_in_chunks(file_path):
91
+ hash_md5.update(chunk)
92
+ return hash_md5.hexdigest()
93
+ ```
94
+
95
+ **Chunked Upload Integration**: The function integrates seamlessly with the `CoreClientMixin.create_chunked_upload` method:
96
+
97
+ ```python
98
+ from synapse_sdk.clients.backend.core import CoreClientMixin
99
+
100
+ client = CoreClientMixin(base_url='https://api.example.com')
101
+ result = client.create_chunked_upload('/path/to/large_file.zip')
102
+ ```
103
+
104
+ **Best Practices:**
105
+
106
+ - Use default chunk size (50MB) for optimal upload performance
107
+ - Adjust chunk size based on available memory and network conditions
108
+ - For very large files (>1GB), consider using smaller chunks for better progress tracking
109
+ - Always handle exceptions when working with file operations
110
+
111
+ ## Checksum Functions
112
+
113
+ ### calculate_checksum
114
+
115
+ Calculate checksum for regular files:
116
+
117
+ ```python
118
+ from synapse_sdk.utils.file.checksum import calculate_checksum
119
+
120
+ checksum = calculate_checksum('/path/to/file.bin')
121
+ ```
122
+
123
+ ### get_checksum_from_file
124
+
125
+ Calculate checksum for file-like objects without requiring Django dependencies. This function works with any file-like object that has a `read()` method, making it compatible with Django's File objects, BytesIO, StringIO, and regular file objects.
126
+
127
+ ```python
128
+ import hashlib
129
+ from io import BytesIO
130
+ from synapse_sdk.utils.file.checksum import get_checksum_from_file
131
+
132
+ # Basic usage with BytesIO (defaults to SHA1)
133
+ data = BytesIO(b'Hello, world!')
134
+ checksum = get_checksum_from_file(data)
135
+ print(checksum) # SHA1 hash as hexadecimal string
136
+
137
+ # Using different hash algorithms
138
+ checksum_md5 = get_checksum_from_file(data, digest_mod=hashlib.md5)
139
+ checksum_sha256 = get_checksum_from_file(data, digest_mod=hashlib.sha256)
140
+
141
+ # With real file objects
142
+ with open('/path/to/file.txt', 'rb') as f:
143
+ checksum = get_checksum_from_file(f)
144
+ ```
145
+
146
+ **Parameters:**
147
+
148
+ - `file` (IO[Any]): File-like object with read() method that supports reading in chunks
149
+ - `digest_mod` (Callable[[], Any], optional): Hash algorithm from hashlib. Defaults to `hashlib.sha1`
150
+
151
+ **Returns:**
152
+
153
+ - `str`: Hexadecimal digest of the file contents
154
+
155
+ **Key Features:**
156
+
157
+ - **Memory Efficient**: Reads files in 4KB chunks to handle large files
158
+ - **Automatic File Pointer Reset**: Resets to beginning if the file object supports seeking
159
+ - **Text/Binary Agnostic**: Handles both text (StringIO) and binary (BytesIO) file objects
160
+ - **No Django Dependency**: Works without Django while being compatible with Django File objects
161
+ - **Flexible Hash Algorithms**: Supports any hashlib algorithm (SHA1, SHA256, MD5, etc.)
162
+
163
+ ## Download Functions
164
+
165
+ Utilities for downloading files from URLs with both synchronous and asynchronous support.
166
+
167
+ ```python
168
+ from synapse_sdk.utils.file.download import download_file, adownload_file
169
+
170
+ # Synchronous download
171
+ local_path = download_file(url, destination)
172
+
173
+ # Asynchronous download
174
+ import asyncio
175
+ local_path = await adownload_file(url, destination)
176
+
177
+ # URL to path conversion for multiple files
178
+ from synapse_sdk.utils.file.download import files_url_to_path
179
+ paths = files_url_to_path(url_list, destination_directory)
180
+ ```
181
+
182
+ ## Encoding Functions
183
+
184
+ Base64 encoding utilities for files.
185
+
186
+ ```python
187
+ from synapse_sdk.utils.file.encoding import convert_file_to_base64
188
+
189
+ # Convert file to base64
190
+ base64_data = convert_file_to_base64('/path/to/file.jpg')
191
+ ```
192
+
193
+ ## I/O Functions
194
+
195
+ General I/O operations for structured data files.
196
+
197
+ ```python
198
+ from synapse_sdk.utils.file.io import get_dict_from_file, get_temp_path
199
+
200
+ # Load dictionary from JSON or YAML file
201
+ config = get_dict_from_file('/path/to/config.json')
202
+ settings = get_dict_from_file('/path/to/settings.yaml')
203
+
204
+ # Get temporary file path
205
+ temp_path = get_temp_path()
206
+ temp_subpath = get_temp_path('subdir/file.tmp')
207
+ ```
208
+
209
+ ## Video Transcoding
210
+
211
+ Advanced video transcoding capabilities using FFmpeg for format conversion, compression, and optimization.
212
+
213
+ ### Requirements
214
+
215
+ - **ffmpeg-python**: `pip install ffmpeg-python`
216
+ - **FFmpeg**: Must be installed on the system and available in PATH
217
+
218
+ ### Supported Video Formats
219
+
220
+ The video module supports a wide range of input formats:
221
+ - **MP4** (.mp4, .m4v)
222
+ - **AVI** (.avi)
223
+ - **MOV** (.mov)
224
+ - **MKV** (.mkv)
225
+ - **WebM** (.webm)
226
+ - **FLV** (.flv)
227
+ - **WMV** (.wmv)
228
+ - **MPEG** (.mpeg, .mpg)
229
+ - **3GP** (.3gp)
230
+ - **OGV** (.ogv)
231
+
232
+ ### Core Functions
233
+
234
+ #### validate_video_format
235
+
236
+ Check if a file has a supported video format:
237
+
238
+ ```python
239
+ from synapse_sdk.utils.file.video.transcode import validate_video_format
240
+
241
+ if validate_video_format('video.mp4'):
242
+ print("Supported format")
243
+ else:
244
+ print("Unsupported format")
245
+ ```
246
+
247
+ #### get_video_info
248
+
249
+ Extract metadata from video files:
250
+
251
+ ```python
252
+ from synapse_sdk.utils.file.video.transcode import get_video_info
253
+
254
+ info = get_video_info('input.mp4')
255
+ print(f"Duration: {info['duration']} seconds")
256
+ print(f"Resolution: {info['width']}x{info['height']}")
257
+ print(f"Video Codec: {info['video_codec']}")
258
+ print(f"Audio Codec: {info['audio_codec']}")
259
+ print(f"FPS: {info['fps']}")
260
+ ```
261
+
262
+ #### transcode_video
263
+
264
+ Main transcoding function with extensive configuration options:
265
+
266
+ ```python
267
+ from synapse_sdk.utils.file.video.transcode import transcode_video, TranscodeConfig
268
+ from pathlib import Path
269
+
270
+ # Basic transcoding with default settings
271
+ output_path = transcode_video('input.avi', 'output.mp4')
272
+
273
+ # Custom configuration
274
+ config = TranscodeConfig(
275
+ vcodec='libx264', # Video codec
276
+ preset='fast', # Encoding speed vs quality
277
+ crf=20, # Quality (lower = better quality)
278
+ acodec='aac', # Audio codec
279
+ audio_bitrate='128k', # Audio bitrate
280
+ resolution='1920x1080', # Output resolution
281
+ fps=30, # Frame rate
282
+ start_time=10.0, # Start from 10 seconds
283
+ duration=60.0 # Only process 60 seconds
284
+ )
285
+
286
+ output_path = transcode_video('input.mkv', 'output.mp4', config)
287
+ ```
288
+
289
+ #### TranscodeConfig Options
290
+
291
+ ```python
292
+ @dataclass
293
+ class TranscodeConfig:
294
+ vcodec: str = 'libx264' # Video codec (libx264, libx265, etc.)
295
+ preset: str = 'medium' # Encoding preset (fast, medium, slow)
296
+ crf: int = 28 # Quality factor (0-51, lower = better)
297
+ acodec: str = 'aac' # Audio codec (aac, opus, etc.)
298
+ audio_bitrate: str = '128k' # Audio bitrate
299
+ movflags: str = '+faststart' # MP4 optimization flags
300
+ resolution: Optional[str] = None # Output resolution (e.g., '1920x1080')
301
+ fps: Optional[int] = None # Output frame rate
302
+ start_time: Optional[float] = None # Start time in seconds
303
+ duration: Optional[float] = None # Duration to process in seconds
304
+ ```
305
+
306
+ #### Progress Callback Support
307
+
308
+ Monitor transcoding progress with callback functions:
309
+
310
+ ```python
311
+ def progress_callback(progress_percent):
312
+ print(f"Progress: {progress_percent:.1f}%")
313
+
314
+ output_path = transcode_video(
315
+ 'input.mp4',
316
+ 'output.mp4',
317
+ progress_callback=progress_callback
318
+ )
319
+ ```
320
+
321
+ #### optimize_for_web
322
+
323
+ Quick web optimization with predefined settings:
324
+
325
+ ```python
326
+ from synapse_sdk.utils.file.video.transcode import optimize_for_web
327
+
328
+ # Optimized for web streaming with fast start
329
+ web_video = optimize_for_web('input.mov', 'web_output.mp4')
330
+ ```
331
+
332
+ This function uses optimized settings:
333
+ - Fast encoding preset
334
+ - Web-friendly compression (CRF 23)
335
+ - Fast start flag for streaming
336
+ - Fragment keyframes for better web compatibility
337
+
338
+ ### Error Handling
339
+
340
+ The video module provides specific exceptions:
341
+
342
+ ```python
343
+ from synapse_sdk.utils.file.video.transcode import (
344
+ VideoTranscodeError,
345
+ UnsupportedFormatError,
346
+ FFmpegNotFoundError,
347
+ TranscodingFailedError
348
+ )
349
+
350
+ try:
351
+ transcode_video('input.xyz', 'output.mp4')
352
+ except UnsupportedFormatError:
353
+ print("Input format not supported")
354
+ except FFmpegNotFoundError:
355
+ print("FFmpeg not installed")
356
+ except TranscodingFailedError as e:
357
+ print(f"Transcoding failed: {e}")
358
+ ```
359
+
360
+ ### Advanced Usage Examples
361
+
362
+ **Batch Processing**:
363
+
364
+ ```python
365
+ import os
366
+ from pathlib import Path
367
+
368
+ input_dir = Path('/path/to/videos')
369
+ output_dir = Path('/path/to/output')
370
+
371
+ for video_file in input_dir.glob('*'):
372
+ if validate_video_format(video_file):
373
+ output_file = output_dir / f"{video_file.stem}.mp4"
374
+ try:
375
+ transcode_video(video_file, output_file)
376
+ print(f"Processed: {video_file.name}")
377
+ except VideoTranscodeError as e:
378
+ print(f"Failed to process {video_file.name}: {e}")
379
+ ```
380
+
381
+ **Quality Optimization**:
382
+
383
+ ```python
384
+ # High quality for archival
385
+ archive_config = TranscodeConfig(
386
+ preset='slow',
387
+ crf=18,
388
+ audio_bitrate='256k'
389
+ )
390
+
391
+ # Small size for mobile
392
+ mobile_config = TranscodeConfig(
393
+ preset='fast',
394
+ crf=28,
395
+ resolution='1280x720',
396
+ audio_bitrate='96k'
397
+ )
398
+
399
+ # Apply different configs
400
+ archive_output = transcode_video(input_file, 'archive.mp4', archive_config)
401
+ mobile_output = transcode_video(input_file, 'mobile.mp4', mobile_config)
402
+ ```
403
+
404
+ **Video Clipping**:
405
+
406
+ ```python
407
+ # Extract 30-second clip starting from 1 minute
408
+ clip_config = TranscodeConfig(
409
+ start_time=60.0, # Start at 1 minute
410
+ duration=30.0, # Extract 30 seconds
411
+ crf=20 # High quality
412
+ )
413
+
414
+ clip = transcode_video('long_video.mp4', 'clip.mp4', clip_config)
415
+ ```