synapse-sdk 1.0.0a82__tar.gz → 1.0.0a84__tar.gz

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 (427) hide show
  1. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/PKG-INFO +1 -1
  2. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +17 -8
  3. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +9 -1
  4. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/coco/to_dm.py +3 -3
  5. synapse_sdk-1.0.0a84/synapse_sdk/utils/storage/providers/__init__.py +183 -0
  6. synapse_sdk-1.0.0a84/synapse_sdk/utils/storage/providers/file_system.py +126 -0
  7. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/registry.py +2 -0
  8. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/PKG-INFO +1 -1
  9. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/SOURCES.txt +2 -0
  10. synapse_sdk-1.0.0a84/tests/utils/storage/test_file_system_storage.py +390 -0
  11. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/storage/test_provider_selection.py +8 -1
  12. synapse_sdk-1.0.0a82/synapse_sdk/utils/storage/providers/__init__.py +0 -72
  13. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.claude/commands/compare-branch.md +0 -0
  14. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.claude/commands/review-pr.md +0 -0
  15. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.coverage +0 -0
  16. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.github/workflows/lint.yml +0 -0
  17. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.github/workflows/pypi-publish.yml +0 -0
  18. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.github/workflows/test.yml +0 -0
  19. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.gitignore +0 -0
  20. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.mcp.json +0 -0
  21. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/.pre-commit-config.yaml +0 -0
  22. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/AGENT.md +0 -0
  23. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/CLAUDE.md +0 -0
  24. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/GEMINI.md +0 -0
  25. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/LICENSE +0 -0
  26. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/Makefile +0 -0
  27. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/P1_rules.md +0 -0
  28. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/P2_rules.md +0 -0
  29. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/P3_rules.md +0 -0
  30. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/P4_rules.md +0 -0
  31. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/README.md +0 -0
  32. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/clients/agent.md +0 -0
  33. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/clients/backend.md +0 -0
  34. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/clients/base.md +0 -0
  35. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/index.md +0 -0
  36. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/plugins/categories.md +0 -0
  37. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/plugins/models.md +0 -0
  38. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/plugins/utils.md +0 -0
  39. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/utils/file.md +0 -0
  40. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/utils/storage.md +0 -0
  41. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/api/utils/types.md +0 -0
  42. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/categories.md +0 -0
  43. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/concepts/index.md +0 -0
  44. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/configuration.md +0 -0
  45. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/contributing.md +0 -0
  46. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/examples/index.md +0 -0
  47. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/faq.md +0 -0
  48. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/features/converters/index.md +0 -0
  49. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/features/index.md +0 -0
  50. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/features/plugins/index.md +0 -0
  51. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/i18n/ko/code.json +0 -0
  52. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
  53. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
  54. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
  55. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
  56. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/installation.md +0 -0
  57. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/introduction.md +0 -0
  58. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/quickstart.md +0 -0
  59. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/troubleshooting.md +0 -0
  60. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/_category_.json +0 -0
  61. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/congratulations.md +0 -0
  62. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/create-a-blog-post.md +0 -0
  63. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/create-a-document.md +0 -0
  64. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/create-a-page.md +0 -0
  65. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/deploy-your-site.md +0 -0
  66. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-basics/markdown-features.mdx +0 -0
  67. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-extras/_category_.json +0 -0
  68. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  69. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-extras/img/localeDropdown.png +0 -0
  70. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-extras/manage-docs-versions.md +0 -0
  71. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/docs/tutorial-extras/translate-your-site.md +0 -0
  72. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/locale/en/LC_MESSAGES/messages.mo +0 -0
  73. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/locale/en/LC_MESSAGES/messages.po +0 -0
  74. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/locale/ko/LC_MESSAGES/messages.mo +0 -0
  75. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/locale/ko/LC_MESSAGES/messages.po +0 -0
  76. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/pyproject.toml +0 -0
  77. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/pytest-ci.ini +0 -0
  78. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/pytest.ini +0 -0
  79. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/requirements.test.txt +0 -0
  80. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/requirements.txt +0 -0
  81. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/setup.cfg +0 -0
  82. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/__init__.py +0 -0
  83. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/__init__.py +0 -0
  84. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/__init__.py +0 -0
  85. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/create.py +0 -0
  86. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/dataclass.py +0 -0
  87. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/default.py +0 -0
  88. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/delete.py +0 -0
  89. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/list.py +0 -0
  90. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/read.py +0 -0
  91. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/update.py +0 -0
  92. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/alias/utils.py +0 -0
  93. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/config.py +0 -0
  94. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/devtools.py +0 -0
  95. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/plugin/__init__.py +0 -0
  96. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/plugin/create.py +0 -0
  97. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/plugin/publish.py +0 -0
  98. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/cli/plugin/run.py +0 -0
  99. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/__init__.py +0 -0
  100. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/agent/__init__.py +0 -0
  101. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/agent/core.py +0 -0
  102. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/agent/ray.py +0 -0
  103. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/agent/service.py +0 -0
  104. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/__init__.py +0 -0
  105. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/annotation.py +0 -0
  106. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/core.py +0 -0
  107. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/data_collection.py +0 -0
  108. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/hitl.py +0 -0
  109. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/integration.py +0 -0
  110. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/ml.py +0 -0
  111. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/backend/models.py +0 -0
  112. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/base.py +0 -0
  113. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/exceptions.py +0 -0
  114. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/ray/__init__.py +0 -0
  115. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/ray/core.py +0 -0
  116. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/ray/serve.py +0 -0
  117. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/utils.py +0 -0
  118. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/validators/__init__.py +0 -0
  119. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/clients/validators/collections.py +0 -0
  120. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/__init__.py +0 -0
  121. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/config.py +0 -0
  122. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/.gitignore +0 -0
  123. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/README.md +0 -0
  124. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
  125. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
  126. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
  127. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  128. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
  129. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
  130. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
  131. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
  132. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/package-lock.json +0 -0
  133. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/package.json +0 -0
  134. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/sidebars.ts +0 -0
  135. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
  136. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  137. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
  138. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
  139. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
  140. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
  141. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  142. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  143. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  144. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  145. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  146. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
  147. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
  148. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
  149. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
  150. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/models.py +0 -0
  151. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/server.py +0 -0
  152. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/utils.py +0 -0
  153. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/.gitignore +0 -0
  154. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/README.md +0 -0
  155. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/dist/index.html +0 -0
  156. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/index.html +0 -0
  157. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/jsconfig.json +0 -0
  158. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/package-lock.json +0 -0
  159. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/package.json +0 -0
  160. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/pnpm-lock.yaml +0 -0
  161. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/App.jsx +0 -0
  162. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/App.module.css +0 -0
  163. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
  164. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +0 -0
  165. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/Layout.jsx +0 -0
  166. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/LogViewer.jsx +0 -0
  167. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/MessageViewer.jsx +0 -0
  168. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +0 -0
  169. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +0 -0
  170. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/components/icons.jsx +0 -0
  171. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/index.css +0 -0
  172. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/index.jsx +0 -0
  173. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/logo.svg +0 -0
  174. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/router.jsx +0 -0
  175. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/utils/api.js +0 -0
  176. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +0 -0
  177. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +0 -0
  178. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/views/HomeView.jsx +0 -0
  179. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/views/JobDetailView.jsx +0 -0
  180. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/src/views/PluginView.jsx +0 -0
  181. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/devtools/web/vite.config.js +0 -0
  182. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/i18n.py +0 -0
  183. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/loggers.py +0 -0
  184. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/__init__.py +0 -0
  185. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/__init__.py +0 -0
  186. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/base.py +0 -0
  187. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
  188. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
  189. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
  190. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
  191. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
  192. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
  193. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/decorators.py +0 -0
  194. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
  195. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
  196. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
  197. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/enums.py +0 -0
  198. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
  199. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
  200. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
  201. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
  202. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
  203. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
  204. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
  205. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
  206. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
  207. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
  208. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
  209. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
  210. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
  211. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
  212. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
  213. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
  214. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
  215. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
  216. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
  217. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
  218. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
  219. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
  220. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
  221. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
  222. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
  223. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
  224. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
  225. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
  226. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
  227. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
  228. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/registry.py +0 -0
  229. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
  230. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
  231. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
  232. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
  233. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
  234. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
  235. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/templates.py +0 -0
  236. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
  237. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
  238. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
  239. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
  240. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
  241. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
  242. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/enums.py +0 -0
  243. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/exceptions.py +0 -0
  244. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/models.py +0 -0
  245. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
  246. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
  247. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
  248. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
  249. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/schema.json +0 -0
  250. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
  251. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
  252. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
  253. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
  254. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
  255. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
  256. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
  257. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/upload.py +0 -0
  258. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/utils/__init__.py +0 -0
  259. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/utils/actions.py +0 -0
  260. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/utils/config.py +0 -0
  261. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/utils/legacy.py +0 -0
  262. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/plugins/utils/registry.py +0 -0
  263. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/shared/__init__.py +0 -0
  264. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/shared/enums.py +0 -0
  265. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/types.py +0 -0
  266. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/__init__.py +0 -0
  267. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/__init__.py +0 -0
  268. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
  269. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
  270. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/dm/__init__.py +0 -0
  271. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/dm/from_v1.py +0 -0
  272. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/dm/to_v1.py +0 -0
  273. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/pascal/__init__.py +0 -0
  274. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/pascal/from_dm.py +0 -0
  275. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/pascal/to_dm.py +0 -0
  276. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/yolo/__init__.py +0 -0
  277. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/yolo/from_dm.py +0 -0
  278. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/converters/yolo/to_dm.py +0 -0
  279. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/dataset.py +0 -0
  280. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/debug.py +0 -0
  281. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/file.py +0 -0
  282. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/http.py +0 -0
  283. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/module_loading.py +0 -0
  284. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/network.py +0 -0
  285. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/pydantic/__init__.py +0 -0
  286. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/pydantic/config.py +0 -0
  287. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/pydantic/errors.py +0 -0
  288. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/pydantic/validators.py +0 -0
  289. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/__init__.py +0 -0
  290. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
  291. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/providers/http.py +0 -0
  292. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/providers/s3.py +0 -0
  293. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
  294. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk/utils/string.py +0 -0
  295. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/dependency_links.txt +0 -0
  296. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/entry_points.txt +0 -0
  297. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/requires.txt +0 -0
  298. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/synapse_sdk.egg-info/top_level.txt +0 -0
  299. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/README.md +0 -0
  300. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/__init__.py +0 -0
  301. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/clients/__init__.py +0 -0
  302. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/clients/conftest.py +0 -0
  303. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/clients/test_backend_models.py +0 -0
  304. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/clients/test_base_client.py +0 -0
  305. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/clients/test_collection_validators.py +0 -0
  306. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/conftest.py +0 -0
  307. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/loggers/__init__.py +0 -0
  308. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/loggers/conftest.py +0 -0
  309. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/loggers/test_base_logger.py +0 -0
  310. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/plugins/conftest.py +0 -0
  311. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/plugins/utils/__init__.py +0 -0
  312. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/plugins/utils/test_actions.py +0 -0
  313. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/plugins/utils/test_config.py +0 -0
  314. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/plugins/utils/test_registry.py +0 -0
  315. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/test_cli.py +0 -0
  316. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/test_cli_integration.py +0 -0
  317. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/__init__,py +0 -0
  318. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/__init__.py +0 -0
  319. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/conftest.py +0 -0
  320. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/__init__.py +0 -0
  321. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/coco.py +0 -0
  322. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/annotations.json +0 -0
  323. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data8.jpg +0 -0
  324. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data9.jpg +0 -0
  325. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/annotations.json +0 -0
  326. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data4.jpg +0 -0
  327. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data5.jpg +0 -0
  328. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data6.jpg +0 -0
  329. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/annotations.json +0 -0
  330. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/new_dm_data7.jpg +0 -0
  331. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/annotations.json +0 -0
  332. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data1.jpg +0 -0
  333. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data2.jpg +0 -0
  334. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data3.jpg +0 -0
  335. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_1.json +0 -0
  336. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_2.json +0 -0
  337. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_3.json +0 -0
  338. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_1.jpg +0 -0
  339. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_2.jpg +0 -0
  340. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_3.jpg +0 -0
  341. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_4.json +0 -0
  342. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_5.json +0 -0
  343. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_6.json +0 -0
  344. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_7.json +0 -0
  345. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_4.jpg +0 -0
  346. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_5.jpg +0 -0
  347. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_6.jpg +0 -0
  348. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_7.jpg +0 -0
  349. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_8.json +0 -0
  350. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_9.json +0 -0
  351. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_8.jpg +0 -0
  352. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_9.jpg +0 -0
  353. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_1.json +0 -0
  354. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_2.json +0 -0
  355. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_3.json +0 -0
  356. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_1.jpg +0 -0
  357. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_2.jpg +0 -0
  358. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_3.jpg +0 -0
  359. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/ver1/json/25669.json +0 -0
  360. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/dm/ver2/json/25669.json +0 -0
  361. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/classes.txt +0 -0
  362. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9139.xml +0 -0
  363. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9140.xml +0 -0
  364. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9141.xml +0 -0
  365. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9139.jpg +0 -0
  366. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9140.jpg +0 -0
  367. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9141.jpg +0 -0
  368. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9136.xml +0 -0
  369. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9137.xml +0 -0
  370. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9138.xml +0 -0
  371. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9136.jpg +0 -0
  372. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9137.jpg +0 -0
  373. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9138.jpg +0 -0
  374. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9125.xml +0 -0
  375. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9126.xml +0 -0
  376. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9127.xml +0 -0
  377. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9125.jpg +0 -0
  378. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9126.jpg +0 -0
  379. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9127.jpg +0 -0
  380. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9122.xml +0 -0
  381. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9123.xml +0 -0
  382. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9124.xml +0 -0
  383. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9122.jpg +0 -0
  384. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9123.jpg +0 -0
  385. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9124.jpg +0 -0
  386. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/classes.txt +0 -0
  387. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/dataset.yaml +0 -0
  388. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13744.jpg +0 -0
  389. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13745.jpg +0 -0
  390. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13746.jpg +0 -0
  391. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13744.txt +0 -0
  392. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13745.txt +0 -0
  393. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13746.txt +0 -0
  394. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/images/13782.jpg +0 -0
  395. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/labels/13782.txt +0 -0
  396. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13761.jpg +0 -0
  397. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13764.jpg +0 -0
  398. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13761.txt +0 -0
  399. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13764.txt +0 -0
  400. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/classes.txt +0 -0
  401. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/dataset.yaml +0 -0
  402. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25332.jpg +0 -0
  403. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25334.jpg +0 -0
  404. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25332.txt +0 -0
  405. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25334.txt +0 -0
  406. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/pcd/dm/ver1/json/23791.json +0 -0
  407. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/pcd/dm/ver2/json/23791.json +0 -0
  408. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/prompt/dm/ver1/json/18662.json +0 -0
  409. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/prompt/dm/ver2/json/18662.json +0 -0
  410. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/text/dm/ver1/json/23811.json +0 -0
  411. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json +0 -0
  412. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json +0 -0
  413. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json +0 -0
  414. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/dm_schema.py +0 -0
  415. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/pascal.py +0 -0
  416. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/fixtures/yolo.py +0 -0
  417. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_coco_from_dm.py +0 -0
  418. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_coco_to_dm.py +0 -0
  419. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_dm_v1_to_v2.py +0 -0
  420. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_dm_v2_to_v1.py +0 -0
  421. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_pascal_from_dm.py +0 -0
  422. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_pascal_to_dm.py +0 -0
  423. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_yolo_from_dm.py +0 -0
  424. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/converters/test_yolo_to_dm.py +0 -0
  425. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/storage/conftest.py +0 -0
  426. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/tests/utils/test_debug.py +0 -0
  427. {synapse_sdk-1.0.0a82 → synapse_sdk-1.0.0a84}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a82
3
+ Version: 1.0.0a84
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -1,7 +1,7 @@
1
1
  import json
2
2
  from datetime import datetime
3
3
  from enum import Enum
4
- from typing import Annotated, Any, Dict, List, Optional
4
+ from typing import Annotated, Any, Dict, List, Optional, Tuple
5
5
 
6
6
  import requests
7
7
  from pydantic import AfterValidator, BaseModel, field_validator
@@ -382,7 +382,7 @@ class ToTaskAction(Action):
382
382
  data_file = files.get(target_specification_name)
383
383
 
384
384
  # Extract primary file URL from task data
385
- primary_file_url = self._extract_primary_file_url(task)
385
+ primary_file_url, primary_file_original_name = self._extract_primary_file_url(task)
386
386
  if not primary_file_url:
387
387
  error_msg = 'Primary image URL not found in task data'
388
388
  self.run.log_message(f'{error_msg} for task {task_id}')
@@ -396,6 +396,13 @@ class ToTaskAction(Action):
396
396
  return {'success': False, 'error': error_msg}
397
397
 
398
398
  data_file_url = data_file.get('url')
399
+ data_file_original_name = data_file.get('file_name_original')
400
+ if not data_file_original_name:
401
+ error_msg = 'File original name not found'
402
+ self.run.log_message(f'{error_msg} for task {task_id}')
403
+ self.run.log_annotate_task_data({'task_id': task_id, 'error': error_msg}, AnnotateTaskDataStatus.FAILED)
404
+ return {'success': False, 'error': error_msg}
405
+
399
406
  if not data_file_url:
400
407
  error_msg = 'URL not found'
401
408
  self.run.log_message(f'{error_msg} for task {task_id}')
@@ -406,7 +413,9 @@ class ToTaskAction(Action):
406
413
  try:
407
414
  # Convert data to task object
408
415
  annotation_to_task = self.entrypoint(self.run)
409
- converted_data = annotation_to_task.convert_data_from_file(primary_file_url, data_file_url)
416
+ converted_data = annotation_to_task.convert_data_from_file(
417
+ primary_file_url, primary_file_original_name, data_file_url, data_file_original_name
418
+ )
410
419
  except requests.RequestException as e:
411
420
  error_msg = f'Failed to fetch data from URL: {str(e)}'
412
421
  self.run.log_message(f'{error_msg} for task {task_id}')
@@ -467,7 +476,7 @@ class ToTaskAction(Action):
467
476
  return pre_processor_status
468
477
 
469
478
  # Extract primary file URL from task data
470
- primary_file_url = self._extract_primary_file_url(task)
479
+ primary_file_url, _ = self._extract_primary_file_url(task)
471
480
  if not primary_file_url:
472
481
  error_msg = 'Primary image URL not found in task data'
473
482
  self.run.log_message(f'{error_msg} for task {task_id}')
@@ -609,23 +618,23 @@ class ToTaskAction(Action):
609
618
  except Exception as e:
610
619
  return {'success': False, 'error': f'Failed to restart pre-processor: {str(e)}'}
611
620
 
612
- def _extract_primary_file_url(self, task: Dict[str, Any]) -> Optional[str]:
621
+ def _extract_primary_file_url(self, task: Dict[str, Any]) -> Tuple[str, str]:
613
622
  """Extract the primary file URL from task data.
614
623
 
615
624
  Args:
616
625
  task (Dict[str, Any]): The task data.
617
626
 
618
627
  Returns:
619
- Optional[str]: The primary file URL if found, None otherwise.
628
+ Tuple[str, str]: The primary file URL and original name.
620
629
  """
621
630
  data_unit = task.get('data_unit', {})
622
631
  files = data_unit.get('files', {})
623
632
 
624
633
  for file_info in files.values():
625
634
  if isinstance(file_info, dict) and file_info.get('is_primary') and file_info.get('url'):
626
- return file_info['url']
635
+ return file_info['url'], file_info['file_name_original']
627
636
 
628
- return None
637
+ return None, None
629
638
 
630
639
  def _run_inference(
631
640
  self, client: BackendClient, pre_processor_code: str, pre_processor_version: str, primary_file_url: str
@@ -7,12 +7,20 @@ class AnnotationToTask:
7
7
  """
8
8
  self.run = run
9
9
 
10
- def convert_data_from_file(self, primary_file_url: str, data_file_url: str) -> dict:
10
+ def convert_data_from_file(
11
+ self,
12
+ primary_file_url: str,
13
+ primary_file_original_name: str,
14
+ data_file_url: str,
15
+ data_file_original_name: str,
16
+ ) -> dict:
11
17
  """Convert the data from a file to a task object.
12
18
 
13
19
  Args:
14
20
  primary_file_url (str): primary file url.
21
+ primary_file_original_name (str): primary file original name.
15
22
  data_file_url (str): data file url.
23
+ data_file_original_name (str): data file original name.
16
24
 
17
25
  Returns:
18
26
  dict: The converted data.
@@ -116,12 +116,13 @@ class COCOToDMConverter(ToDMConverter):
116
116
  result[img_filename] = (dm_json, img_path)
117
117
  return result
118
118
 
119
- def convert_single_file(self, data: Dict[str, Any], original_file: IO) -> Dict[str, Any]:
119
+ def convert_single_file(self, data: Dict[str, Any], original_file: IO, original_image_name: str) -> Dict[str, Any]:
120
120
  """Convert a single COCO annotation data and corresponding image to DM format.
121
121
 
122
122
  Args:
123
123
  data: COCO format data dictionary (JSON content)
124
124
  original_file: File object for the corresponding original image
125
+ original_image_name: Original image name
125
126
 
126
127
  Returns:
127
128
  Dictionary containing DM format data for the single file
@@ -147,7 +148,7 @@ class COCOToDMConverter(ToDMConverter):
147
148
  matched_img = None
148
149
  for img in images:
149
150
  for key in ['file_name', 'filename', 'name']:
150
- if key in img and os.path.basename(img[key]) == img_basename:
151
+ if key in img and os.path.basename(img[key]) == original_image_name:
151
152
  matched_img = img
152
153
  break
153
154
  if matched_img:
@@ -157,7 +158,6 @@ class COCOToDMConverter(ToDMConverter):
157
158
  raise ValueError(f'No matching image found in COCO data for file: {img_basename}')
158
159
 
159
160
  img_id = matched_img['id']
160
- print('img_id : ', img_id)
161
161
  cat_map = {cat['id']: cat for cat in categories}
162
162
  anns = [ann for ann in annotations if ann['image_id'] == img_id]
163
163
 
@@ -0,0 +1,183 @@
1
+ from urllib.parse import parse_qs, urlparse
2
+
3
+
4
+ class BaseStorage:
5
+ """Base storage provider class for all storage implementations.
6
+
7
+ This is an abstract base class that defines the interface for storage providers.
8
+ All storage providers (S3, GCP, SFTP, HTTP, FileSystem) must inherit from this
9
+ class and implement all the abstract methods.
10
+
11
+ Args:
12
+ connection_params (str | dict): The connection parameters. Can be either:
13
+ - A URL string (e.g., 's3://bucket/path?access_key=key&secret_key=secret')
14
+ - A dict with 'provider' and 'configuration' keys
15
+
16
+ Attributes:
17
+ url: Parsed URL object if connection_params was a string
18
+ base_path: Base path for storage operations (provider-specific)
19
+ options: Storage-specific options
20
+ query_params: Parsed query parameters from URL or configuration dict
21
+ OPTION_CASTS: Dictionary mapping option names to type casting functions
22
+
23
+ Example:
24
+ >>> # URL-based initialization
25
+ >>> storage = SomeStorage('s3://bucket/path?access_key=key&secret_key=secret')
26
+ >>>
27
+ >>> # Dict-based initialization
28
+ >>> config = {
29
+ ... 'provider': 's3',
30
+ ... 'configuration': {
31
+ ... 'bucket_name': 'my-bucket',
32
+ ... 'access_key': 'key',
33
+ ... 'secret_key': 'secret'
34
+ ... }
35
+ ... }
36
+ >>> storage = SomeStorage(config)
37
+ """
38
+
39
+ url = None
40
+ options = None
41
+ OPTION_CASTS = {}
42
+
43
+ def __init__(self, connection_params: str | dict):
44
+ """Initialize the storage provider with connection parameters.
45
+
46
+ Args:
47
+ connection_params (str | dict): Connection parameters for the storage provider.
48
+ If string, should be a valid URL with scheme and query parameters.
49
+ If dict, should contain 'provider' and 'configuration' keys.
50
+ """
51
+ self.url = None
52
+
53
+ if isinstance(connection_params, dict):
54
+ self.query_params = connection_params['configuration']
55
+ else:
56
+ self.url = urlparse(connection_params)
57
+ self.query_params = self.url_querystring_to_dict()
58
+
59
+ def url_querystring_to_dict(self):
60
+ """Parse URL query string into a dictionary with proper type casting.
61
+
62
+ Converts query parameters from the URL into a dictionary, applying
63
+ type casting based on OPTION_CASTS mapping. Single-value lists are
64
+ flattened to scalar values.
65
+
66
+ Returns:
67
+ dict: Parsed and type-cast query parameters.
68
+ """
69
+ query_string = self.url.query
70
+
71
+ query_dict = parse_qs(query_string)
72
+
73
+ for key, value in query_dict.items():
74
+ if len(value) == 1:
75
+ query_dict[key] = value[0]
76
+
77
+ return {
78
+ key: self.OPTION_CASTS[key](value) if key in self.OPTION_CASTS else value
79
+ for key, value in query_dict.items()
80
+ }
81
+
82
+ def upload(self, source, target):
83
+ """Upload a file from source to target location.
84
+
85
+ Args:
86
+ source (str): Path to the source file on local filesystem.
87
+ target (str): Target path in the storage provider.
88
+
89
+ Returns:
90
+ str: URL or identifier of the uploaded file.
91
+
92
+ Raises:
93
+ NotImplementedError: This method must be implemented by subclasses.
94
+ """
95
+ raise NotImplementedError
96
+
97
+ def exists(self, target):
98
+ """Check if a file exists at the target location.
99
+
100
+ Args:
101
+ target (str): Target path in the storage provider.
102
+
103
+ Returns:
104
+ bool: True if the file exists, False otherwise.
105
+
106
+ Raises:
107
+ NotImplementedError: This method must be implemented by subclasses.
108
+ """
109
+ raise NotImplementedError
110
+
111
+ def get_url(self, target):
112
+ """Get the URL for accessing a file at the target location.
113
+
114
+ Args:
115
+ target (str): Target path in the storage provider.
116
+
117
+ Returns:
118
+ str: URL that can be used to access the file.
119
+
120
+ Raises:
121
+ NotImplementedError: This method must be implemented by subclasses.
122
+ """
123
+ raise NotImplementedError
124
+
125
+ def get_pathlib(self, path):
126
+ """Get the path as a pathlib-compatible object.
127
+
128
+ Args:
129
+ path (str): The path to convert, relative to the storage root.
130
+
131
+ Returns:
132
+ pathlib.Path or UPath: A pathlib-compatible object representing the path.
133
+ The exact type depends on the storage provider implementation.
134
+
135
+ Raises:
136
+ NotImplementedError: This method must be implemented by subclasses.
137
+
138
+ Note:
139
+ Different storage providers may return different path object types:
140
+ - FileSystemStorage returns pathlib.Path objects
141
+ - Cloud storage providers typically return UPath objects
142
+ """
143
+ raise NotImplementedError
144
+
145
+ def get_path_file_count(self, pathlib_obj):
146
+ """Get the total number of files in the given path.
147
+
148
+ Args:
149
+ pathlib_obj (Path | UPath): The path object to count files in.
150
+ Should be obtained from get_pathlib().
151
+
152
+ Returns:
153
+ int: The total number of files found recursively in the path.
154
+ Returns 1 for individual files, 0 for non-existent paths.
155
+
156
+ Raises:
157
+ NotImplementedError: This method must be implemented by subclasses.
158
+
159
+ Note:
160
+ This method counts files recursively, including files in subdirectories.
161
+ Directories themselves are not counted, only regular files.
162
+ """
163
+ raise NotImplementedError
164
+
165
+ def get_path_total_size(self, pathlib_obj):
166
+ """Get the total size of all files in the given path.
167
+
168
+ Args:
169
+ pathlib_obj (Path | UPath): The path object to calculate size for.
170
+ Should be obtained from get_pathlib().
171
+
172
+ Returns:
173
+ int: The total size in bytes of all files found recursively in the path.
174
+ Returns the file size for individual files, 0 for non-existent paths.
175
+
176
+ Raises:
177
+ NotImplementedError: This method must be implemented by subclasses.
178
+
179
+ Note:
180
+ This method calculates the total size recursively, including files
181
+ in subdirectories. Only regular files contribute to the total size.
182
+ """
183
+ raise NotImplementedError
@@ -0,0 +1,126 @@
1
+ import shutil
2
+ from pathlib import Path
3
+
4
+ from synapse_sdk.utils.storage.providers import BaseStorage
5
+
6
+
7
+ class FileSystemStorage(BaseStorage):
8
+ """Storage provider for file system.
9
+
10
+ * This storage do not support url based initialization.
11
+
12
+ Args:
13
+ url (str): The URL of the storage provider.
14
+
15
+ Examples:
16
+ >>> # Dict-based initialization
17
+ >>> config = {
18
+ ... 'provider': 'filesystem',
19
+ ... 'configuration': {
20
+ ... 'location': '/data'
21
+ ... }
22
+ ... }
23
+ >>> storage = FileSystemStorage(config)
24
+ """
25
+
26
+ def __init__(self, url):
27
+ super().__init__(url)
28
+ self.base_path = Path(self.query_params['location'])
29
+
30
+ def upload(self, source, target):
31
+ """Upload a file from source to target location.
32
+
33
+ Args:
34
+ source (str): Path to source file
35
+ target (str): Target path relative to base path
36
+
37
+ Returns:
38
+ str: URL of uploaded file
39
+ """
40
+ source_path = Path(source)
41
+ target_path = self.base_path / target
42
+
43
+ # Create parent directories if they don't exist
44
+ target_path.parent.mkdir(parents=True, exist_ok=True)
45
+
46
+ # Copy the file
47
+ shutil.copy2(source_path, target_path)
48
+
49
+ return self.get_url(target)
50
+
51
+ def exists(self, target):
52
+ """Check if target file exists.
53
+
54
+ Args:
55
+ target (str): Target path relative to base path
56
+
57
+ Returns:
58
+ bool: True if file exists, False otherwise
59
+ """
60
+ target_path = self.base_path / target
61
+ return target_path.exists()
62
+
63
+ def get_url(self, target):
64
+ """Get URL for target file.
65
+
66
+ Args:
67
+ target (str): Target path relative to base path
68
+
69
+ Returns:
70
+ str: File URL
71
+ """
72
+ target_path = self.base_path / target
73
+ return f'file://{target_path.absolute()}'
74
+
75
+ def get_pathlib(self, path):
76
+ """Get the path as a pathlib object.
77
+
78
+ Args:
79
+ path (str): The path to convert.
80
+
81
+ Returns:
82
+ pathlib.Path: The converted path.
83
+ """
84
+ return self.base_path / path
85
+
86
+ def get_path_file_count(self, pathlib_obj):
87
+ """Get the file count in the path.
88
+
89
+ Args:
90
+ pathlib_obj (Path): The path to get file count.
91
+
92
+ Returns:
93
+ int: The file count in the path.
94
+ """
95
+ if not pathlib_obj.exists():
96
+ return 0
97
+
98
+ if pathlib_obj.is_file():
99
+ return 1
100
+
101
+ count = 0
102
+ for item in pathlib_obj.rglob('*'):
103
+ if item.is_file():
104
+ count += 1
105
+ return count
106
+
107
+ def get_path_total_size(self, pathlib_obj):
108
+ """Get the total size of the path.
109
+
110
+ Args:
111
+ pathlib_obj (Path): The path to get total size.
112
+
113
+ Returns:
114
+ int: The total size of the path.
115
+ """
116
+ if not pathlib_obj.exists():
117
+ return 0
118
+
119
+ if pathlib_obj.is_file():
120
+ return pathlib_obj.stat().st_size
121
+
122
+ total_size = 0
123
+ for item in pathlib_obj.rglob('*'):
124
+ if item.is_file():
125
+ total_size += item.stat().st_size
126
+ return total_size
@@ -1,3 +1,4 @@
1
+ from synapse_sdk.utils.storage.providers.file_system import FileSystemStorage
1
2
  from synapse_sdk.utils.storage.providers.gcp import GCPStorage
2
3
  from synapse_sdk.utils.storage.providers.http import HTTPStorage
3
4
  from synapse_sdk.utils.storage.providers.s3 import S3Storage
@@ -12,4 +13,5 @@ STORAGE_PROVIDERS = {
12
13
  'sftp': SFTPStorage,
13
14
  'http': HTTPStorage,
14
15
  'https': HTTPStorage,
16
+ 'file_system': FileSystemStorage,
15
17
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a82
3
+ Version: 1.0.0a84
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -289,6 +289,7 @@ synapse_sdk/utils/pydantic/validators.py
289
289
  synapse_sdk/utils/storage/__init__.py
290
290
  synapse_sdk/utils/storage/registry.py
291
291
  synapse_sdk/utils/storage/providers/__init__.py
292
+ synapse_sdk/utils/storage/providers/file_system.py
292
293
  synapse_sdk/utils/storage/providers/gcp.py
293
294
  synapse_sdk/utils/storage/providers/http.py
294
295
  synapse_sdk/utils/storage/providers/s3.py
@@ -421,4 +422,5 @@ tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json
421
422
  tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json
422
423
  tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json
423
424
  tests/utils/storage/conftest.py
425
+ tests/utils/storage/test_file_system_storage.py
424
426
  tests/utils/storage/test_provider_selection.py