synapse-sdk 1.0.0b6__tar.gz → 1.0.0b8__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 (424) hide show
  1. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.gitignore +3 -0
  2. {synapse_sdk-1.0.0b6/synapse_sdk.egg-info → synapse_sdk-1.0.0b8}/PKG-INFO +1 -1
  3. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/cli-usage.md +1 -1
  4. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/faq.md +2 -2
  5. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/converters/index.md +61 -8
  6. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/code_server.py +305 -33
  7. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/actions/export.py +3 -17
  8. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8/synapse_sdk.egg-info}/PKG-INFO +1 -1
  9. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/compare-branch.md +0 -0
  10. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/review-pr.md +0 -0
  11. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/update-pr-desc.md +0 -0
  12. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/update-pr-title.md +0 -0
  13. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.coverage +0 -0
  14. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/lint.yml +0 -0
  15. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/pypi-publish.yml +0 -0
  16. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/test.yml +0 -0
  17. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.mcp.json +0 -0
  18. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.pre-commit-config.yaml +0 -0
  19. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/AGENT.md +0 -0
  20. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/CLAUDE.md +0 -0
  21. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/GEMINI.md +0 -0
  22. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/LICENSE +0 -0
  23. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/Makefile +0 -0
  24. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P1_rules.md +0 -0
  25. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P2_rules.md +0 -0
  26. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P3_rules.md +0 -0
  27. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P4_rules.md +0 -0
  28. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/README.md +0 -0
  29. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/agent.md +0 -0
  30. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/backend.md +0 -0
  31. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/base.md +0 -0
  32. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/index.md +0 -0
  33. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/categories.md +0 -0
  34. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/models.md +0 -0
  35. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/utils.md +0 -0
  36. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/file.md +0 -0
  37. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/storage.md +0 -0
  38. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/types.md +0 -0
  39. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/categories.md +0 -0
  40. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/concepts/index.md +0 -0
  41. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/configuration.md +0 -0
  42. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/contributing.md +0 -0
  43. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/examples/index.md +0 -0
  44. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/index.md +0 -0
  45. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/plugins/index.md +0 -0
  46. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/code.json +0 -0
  47. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
  48. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
  49. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
  50. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
  51. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/installation.md +0 -0
  52. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/introduction.md +0 -0
  53. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/quickstart.md +0 -0
  54. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/troubleshooting.md +0 -0
  55. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/_category_.json +0 -0
  56. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/congratulations.md +0 -0
  57. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-blog-post.md +0 -0
  58. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-document.md +0 -0
  59. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-page.md +0 -0
  60. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/deploy-your-site.md +0 -0
  61. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/markdown-features.mdx +0 -0
  62. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/_category_.json +0 -0
  63. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  64. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/img/localeDropdown.png +0 -0
  65. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/manage-docs-versions.md +0 -0
  66. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/translate-your-site.md +0 -0
  67. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/en/LC_MESSAGES/messages.mo +0 -0
  68. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/en/LC_MESSAGES/messages.po +0 -0
  69. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/ko/LC_MESSAGES/messages.mo +0 -0
  70. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/ko/LC_MESSAGES/messages.po +0 -0
  71. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pyproject.toml +0 -0
  72. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pytest-ci.ini +0 -0
  73. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pytest.ini +0 -0
  74. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/requirements.test.txt +0 -0
  75. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/requirements.txt +0 -0
  76. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/setup.cfg +0 -0
  77. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/__init__.py +0 -0
  78. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/__init__.py +0 -0
  79. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/__init__.py +0 -0
  80. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/create.py +0 -0
  81. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/dataclass.py +0 -0
  82. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/default.py +0 -0
  83. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/delete.py +0 -0
  84. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/list.py +0 -0
  85. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/read.py +0 -0
  86. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/update.py +0 -0
  87. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/utils.py +0 -0
  88. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/config.py +0 -0
  89. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/devtools.py +0 -0
  90. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/__init__.py +0 -0
  91. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/create.py +0 -0
  92. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/publish.py +0 -0
  93. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/run.py +0 -0
  94. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/__init__.py +0 -0
  95. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/__init__.py +0 -0
  96. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/core.py +0 -0
  97. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/ray.py +0 -0
  98. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/service.py +0 -0
  99. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/__init__.py +0 -0
  100. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/annotation.py +0 -0
  101. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/core.py +0 -0
  102. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/data_collection.py +0 -0
  103. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/hitl.py +0 -0
  104. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/integration.py +0 -0
  105. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/ml.py +0 -0
  106. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/models.py +0 -0
  107. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/base.py +0 -0
  108. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/exceptions.py +0 -0
  109. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/__init__.py +0 -0
  110. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/core.py +0 -0
  111. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/serve.py +0 -0
  112. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/utils.py +0 -0
  113. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/validators/__init__.py +0 -0
  114. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/validators/collections.py +0 -0
  115. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/__init__.py +0 -0
  116. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/config.py +0 -0
  117. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/.gitignore +0 -0
  118. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/README.md +0 -0
  119. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
  120. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
  121. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
  122. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  123. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
  124. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
  125. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
  126. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
  127. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/package-lock.json +0 -0
  128. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/package.json +0 -0
  129. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/sidebars.ts +0 -0
  130. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
  131. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
  132. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
  133. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
  134. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
  135. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
  136. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
  137. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
  138. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
  139. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
  140. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
  141. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
  142. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
  143. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
  144. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
  145. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/server.py +0 -0
  146. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/__init__.py +0 -0
  147. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/app.py +0 -0
  148. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/__init__.py +0 -0
  149. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/job_service.py +0 -0
  150. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/plugin_service.py +0 -0
  151. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/serve_service.py +0 -0
  152. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/__init__.py +0 -0
  153. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/config_tab.py +0 -0
  154. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +0 -0
  155. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/http_tab.py +0 -0
  156. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +0 -0
  157. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +0 -0
  158. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/status_bar.py +0 -0
  159. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/__init__.py +0 -0
  160. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +0 -0
  161. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +0 -0
  162. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/styles.py +0 -0
  163. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/ui_components.py +0 -0
  164. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app.py +0 -0
  165. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/i18n.py +0 -0
  166. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/loggers.py +0 -0
  167. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/__init__.py +0 -0
  168. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/__init__.py +0 -0
  169. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/base.py +0 -0
  170. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
  171. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
  172. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
  173. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
  174. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
  175. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
  176. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/decorators.py +0 -0
  177. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
  178. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
  179. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/enums.py +0 -0
  180. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
  181. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
  182. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
  183. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
  184. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
  185. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
  186. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
  187. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
  188. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
  189. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
  190. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
  191. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
  192. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
  193. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
  194. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
  195. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
  196. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
  197. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
  198. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
  199. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
  200. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
  201. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
  202. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
  203. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
  204. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
  205. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
  206. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
  207. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -0
  208. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
  209. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
  210. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
  211. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +0 -0
  212. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/registry.py +0 -0
  213. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
  214. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
  215. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
  216. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
  217. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
  218. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
  219. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/templates.py +0 -0
  220. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
  221. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
  222. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
  223. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
  224. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
  225. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
  226. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/enums.py +0 -0
  227. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/exceptions.py +0 -0
  228. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/models.py +0 -0
  229. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
  230. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
  231. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
  232. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
  233. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/schema.json +0 -0
  234. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
  235. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
  236. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
  237. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
  238. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
  239. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
  240. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
  241. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/upload.py +0 -0
  242. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/__init__.py +0 -0
  243. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/actions.py +0 -0
  244. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/config.py +0 -0
  245. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/legacy.py +0 -0
  246. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/registry.py +0 -0
  247. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/shared/__init__.py +0 -0
  248. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/shared/enums.py +0 -0
  249. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/types.py +0 -0
  250. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/__init__.py +0 -0
  251. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/__init__.py +0 -0
  252. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
  253. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
  254. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/to_dm.py +0 -0
  255. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/__init__.py +0 -0
  256. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/from_v1.py +0 -0
  257. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/to_v1.py +0 -0
  258. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/__init__.py +0 -0
  259. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/from_dm.py +0 -0
  260. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/to_dm.py +0 -0
  261. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/__init__.py +0 -0
  262. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/from_dm.py +0 -0
  263. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/to_dm.py +0 -0
  264. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/dataset.py +0 -0
  265. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/debug.py +0 -0
  266. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/encryption.py +0 -0
  267. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/file.py +0 -0
  268. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/http.py +0 -0
  269. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/module_loading.py +0 -0
  270. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/network.py +0 -0
  271. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/__init__.py +0 -0
  272. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/config.py +0 -0
  273. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/errors.py +0 -0
  274. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/validators.py +0 -0
  275. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/__init__.py +0 -0
  276. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
  277. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/file_system.py +0 -0
  278. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
  279. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/http.py +0 -0
  280. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/s3.py +0 -0
  281. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
  282. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/registry.py +0 -0
  283. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/string.py +0 -0
  284. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/SOURCES.txt +0 -0
  285. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/dependency_links.txt +0 -0
  286. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/entry_points.txt +0 -0
  287. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/requires.txt +0 -0
  288. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/top_level.txt +0 -0
  289. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/test_code_server.py +0 -0
  290. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/test_code_server_simple.py +0 -0
  291. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/README.md +0 -0
  292. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/__init__.py +0 -0
  293. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/__init__.py +0 -0
  294. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/conftest.py +0 -0
  295. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_backend_models.py +0 -0
  296. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_base_client.py +0 -0
  297. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_collection_validators.py +0 -0
  298. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/conftest.py +0 -0
  299. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/__init__.py +0 -0
  300. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/conftest.py +0 -0
  301. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/test_base_logger.py +0 -0
  302. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/conftest.py +0 -0
  303. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/__init__.py +0 -0
  304. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/validation/__init__.py +0 -0
  305. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/validation/test_validation_action.py +0 -0
  306. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/__init__.py +0 -0
  307. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_actions.py +0 -0
  308. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_config.py +0 -0
  309. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_registry.py +0 -0
  310. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/test_cli.py +0 -0
  311. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/test_cli_integration.py +0 -0
  312. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/__init__,py +0 -0
  313. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/__init__.py +0 -0
  314. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/conftest.py +0 -0
  315. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/__init__.py +0 -0
  316. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/coco.py +0 -0
  317. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/annotations.json +0 -0
  318. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data8.jpg +0 -0
  319. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data9.jpg +0 -0
  320. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/annotations.json +0 -0
  321. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data4.jpg +0 -0
  322. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data5.jpg +0 -0
  323. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data6.jpg +0 -0
  324. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/annotations.json +0 -0
  325. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/new_dm_data7.jpg +0 -0
  326. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/annotations.json +0 -0
  327. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data1.jpg +0 -0
  328. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data2.jpg +0 -0
  329. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data3.jpg +0 -0
  330. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_1.json +0 -0
  331. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_2.json +0 -0
  332. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_3.json +0 -0
  333. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_1.jpg +0 -0
  334. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_2.jpg +0 -0
  335. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_3.jpg +0 -0
  336. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_4.json +0 -0
  337. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_5.json +0 -0
  338. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_6.json +0 -0
  339. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_7.json +0 -0
  340. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_4.jpg +0 -0
  341. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_5.jpg +0 -0
  342. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_6.jpg +0 -0
  343. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_7.jpg +0 -0
  344. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_8.json +0 -0
  345. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_9.json +0 -0
  346. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_8.jpg +0 -0
  347. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_9.jpg +0 -0
  348. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_1.json +0 -0
  349. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_2.json +0 -0
  350. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_3.json +0 -0
  351. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_1.jpg +0 -0
  352. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_2.jpg +0 -0
  353. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_3.jpg +0 -0
  354. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/ver1/json/25669.json +0 -0
  355. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/ver2/json/25669.json +0 -0
  356. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/classes.txt +0 -0
  357. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9139.xml +0 -0
  358. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9140.xml +0 -0
  359. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9141.xml +0 -0
  360. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9139.jpg +0 -0
  361. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9140.jpg +0 -0
  362. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9141.jpg +0 -0
  363. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9136.xml +0 -0
  364. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9137.xml +0 -0
  365. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9138.xml +0 -0
  366. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9136.jpg +0 -0
  367. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9137.jpg +0 -0
  368. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9138.jpg +0 -0
  369. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9125.xml +0 -0
  370. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9126.xml +0 -0
  371. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9127.xml +0 -0
  372. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9125.jpg +0 -0
  373. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9126.jpg +0 -0
  374. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9127.jpg +0 -0
  375. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9122.xml +0 -0
  376. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9123.xml +0 -0
  377. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9124.xml +0 -0
  378. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9122.jpg +0 -0
  379. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9123.jpg +0 -0
  380. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9124.jpg +0 -0
  381. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/classes.txt +0 -0
  382. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/dataset.yaml +0 -0
  383. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13744.jpg +0 -0
  384. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13745.jpg +0 -0
  385. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13746.jpg +0 -0
  386. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13744.txt +0 -0
  387. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13745.txt +0 -0
  388. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13746.txt +0 -0
  389. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/images/13782.jpg +0 -0
  390. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/labels/13782.txt +0 -0
  391. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13761.jpg +0 -0
  392. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13764.jpg +0 -0
  393. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13761.txt +0 -0
  394. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13764.txt +0 -0
  395. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/classes.txt +0 -0
  396. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/dataset.yaml +0 -0
  397. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25332.jpg +0 -0
  398. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25334.jpg +0 -0
  399. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25332.txt +0 -0
  400. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25334.txt +0 -0
  401. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/pcd/dm/ver1/json/23791.json +0 -0
  402. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/pcd/dm/ver2/json/23791.json +0 -0
  403. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/prompt/dm/ver1/json/18662.json +0 -0
  404. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/prompt/dm/ver2/json/18662.json +0 -0
  405. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/text/dm/ver1/json/23811.json +0 -0
  406. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json +0 -0
  407. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json +0 -0
  408. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json +0 -0
  409. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/dm_schema.py +0 -0
  410. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/pascal.py +0 -0
  411. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/yolo.py +0 -0
  412. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_coco_from_dm.py +0 -0
  413. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_coco_to_dm.py +0 -0
  414. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_dm_v1_to_v2.py +0 -0
  415. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_dm_v2_to_v1.py +0 -0
  416. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_pascal_from_dm.py +0 -0
  417. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_pascal_to_dm.py +0 -0
  418. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_yolo_from_dm.py +0 -0
  419. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_yolo_to_dm.py +0 -0
  420. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/conftest.py +0 -0
  421. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/test_file_system_storage.py +0 -0
  422. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/test_provider_selection.py +0 -0
  423. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/test_debug.py +0 -0
  424. {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/uv.lock +0 -0
@@ -49,6 +49,9 @@ CLAUDE.local.md
49
49
  GEMINI.local.md
50
50
  AGENT.local.md
51
51
 
52
+ # Specs for LLM development
53
+ specs/*.local.md
54
+
52
55
  # Claude
53
56
  settings.local.json
54
57
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0b6
3
+ Version: 1.0.0b8
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -231,7 +231,7 @@ synapse plugin publish [OPTIONS]
231
231
 
232
232
  2. **Workspace Paths**: Agent workspaces typically use `/home/coder/workspace` - this is normal for containerized environments.
233
233
 
234
- 3. **Port Configuration**: Local code-server port is read from your config file, defaulting to 8880 if not configured.
234
+ 3. **Port Configuration**: Local code-server port is read from your config file, defaulting to 8070 if not configured.
235
235
 
236
236
  ### Configuration Management
237
237
 
@@ -54,12 +54,12 @@ This opens the interactive menu where you can access all Synapse features.
54
54
 
55
55
  ### Q: How do I configure the code-server port?
56
56
 
57
- Code-server port is automatically detected from `~/.config/code-server/config.yaml`. If no config exists, it defaults to port 8880.
57
+ Code-server port is automatically detected from `~/.config/code-server/config.yaml`. If no config exists, it defaults to port 8070.
58
58
 
59
59
  Example config:
60
60
 
61
61
  ```yaml
62
- bind-addr: 127.0.0.1:8880
62
+ bind-addr: 127.0.0.1:8070
63
63
  auth: password
64
64
  password: your-password-here
65
65
  cert: false
@@ -12,19 +12,20 @@ The Synapse SDK provides comprehensive data format conversion utilities for comp
12
12
 
13
13
  The converter system supports bidirectional conversion between:
14
14
 
15
- - **DM Format** - Synapse Data Manager's native annotation format
16
- - **COCO Format** - Microsoft Common Objects in Context format
15
+ - **DM Format** - Synapse Data Manager's native annotation format (supports v1 ⟷ v2 migration)
16
+ - **COCO Format** - Microsoft Common Objects in Context format
17
17
  - **Pascal VOC Format** - Visual Object Classes XML format
18
18
  - **YOLO Format** - You Only Look Once text-based format
19
19
 
20
- All converters support both categorized datasets (with train/valid/test splits) and non-categorized datasets.
20
+ All converters support both categorized datasets (with train/valid/test splits) and non-categorized datasets. Additionally, all converters now support single file conversion mode for processing individual files.
21
21
 
22
22
  ## Supported Annotation Types
23
23
 
24
24
  | Annotation Type | DM | COCO | Pascal VOC | YOLO |
25
25
  |----------------|----|----|-----------|------|
26
26
  | Bounding Boxes | ✅ | ✅ | ✅ | ✅ |
27
- | Polygons/Segmentation | ✅ | ✅ | ❌ | ✅ |
27
+ | Polygons | ✅ | ✅ | ❌ | ✅ |
28
+ | Segmentation | ✅ | ✅ | ✅ | ❌ |
28
29
  | Keypoints | ✅ | ✅ | ❌ | ✅ |
29
30
  | Classifications | ✅ | ✅ | ❌ | ❌ |
30
31
 
@@ -35,7 +36,7 @@ All converters support both categorized datasets (with train/valid/test splits)
35
36
  Converts DM format annotations to Pascal VOC XML format.
36
37
 
37
38
  **Features:**
38
- - Converts bounding box annotations only
39
+ - Converts bounding box annotations and segmentation masks
39
40
  - Creates standard Pascal VOC directory structure
40
41
  - Generates `classes.txt` file automatically
41
42
  - Supports both categorized and non-categorized datasets
@@ -59,6 +60,13 @@ converter = FromDMToPascalConverter(
59
60
  )
60
61
  converted_data = converter.convert()
61
62
  converter.save_to_folder('/output/pascal/dataset')
63
+
64
+ # Single file conversion
65
+ converter = FromDMToPascalConverter(is_single_conversion=True)
66
+ with open('data.json') as f:
67
+ dm_data = json.load(f)
68
+ with open('image.jpg', 'rb') as img_file:
69
+ pascal_xml = converter.convert_single_file(dm_data, img_file)
62
70
  ```
63
71
 
64
72
  **Input Structure (Categorized):**
@@ -101,7 +109,7 @@ Converts Pascal VOC XML annotations to DM format.
101
109
  **Features:**
102
110
  - Parses Pascal VOC XML files
103
111
  - Flexible directory naming (supports Annotations/annotations, Images/images/JPEGImages)
104
- - Extracts bounding box annotations only
112
+ - Extracts bounding box annotations and segmentation information
105
113
  - Maintains class information
106
114
 
107
115
  **Usage:**
@@ -140,6 +148,13 @@ converter = FromDMToYOLOConverter(
140
148
  )
141
149
  converted_data = converter.convert()
142
150
  converter.save_to_folder('/output/yolo/dataset')
151
+
152
+ # Single file conversion
153
+ converter = FromDMToYOLOConverter(is_single_conversion=True)
154
+ with open('data.json') as f:
155
+ dm_data = json.load(f)
156
+ with open('image.jpg', 'rb') as img_file:
157
+ yolo_labels = converter.convert_single_file(dm_data, img_file)
143
158
  ```
144
159
 
145
160
  **Output Structure:**
@@ -200,7 +215,7 @@ Converts DM format to COCO format with full metadata support.
200
215
 
201
216
  **Features:**
202
217
  - Comprehensive COCO metadata (info, licenses, categories)
203
- - Supports bounding boxes, segmentation, and keypoints
218
+ - Supports bounding boxes, polygons, segmentation, and keypoints
204
219
  - Dynamic category management
205
220
  - Extensible for different data types
206
221
 
@@ -235,6 +250,16 @@ converter = FromDMToCOCOConverter(
235
250
  licenses_list=licenses_list,
236
251
  is_categorized_dataset=True
237
252
  )
253
+
254
+ # Single file conversion
255
+ converter = FromDMToCOCOConverter(
256
+ data_type='img',
257
+ is_single_conversion=True
258
+ )
259
+ with open('data.json') as f:
260
+ dm_data = json.load(f)
261
+ with open('image.jpg', 'rb') as img_file:
262
+ coco_annotation = converter.convert_single_file(dm_data, img_file)
238
263
  ```
239
264
 
240
265
  **Output Structure:**
@@ -347,17 +372,24 @@ with open('dm_v1_data.json', 'w') as f:
347
372
  All converters share these common parameters:
348
373
 
349
374
  ### `root_dir` (str)
350
- Path to the root directory containing the dataset.
375
+ Path to the root directory containing the dataset. Not required when using single file conversion mode.
351
376
 
352
377
  ### `is_categorized_dataset` (bool)
353
378
  - `True`: Dataset has train/valid/test splits in separate subdirectories
354
379
  - `False`: Dataset is in a single directory without splits
355
380
 
381
+ ### `is_single_conversion` (bool)
382
+ - `True`: Enable single file conversion mode for processing individual files
383
+ - `False`: Process entire dataset directories (default behavior)
384
+
356
385
  ### Common Methods
357
386
 
358
387
  #### `convert()`
359
388
  Performs in-memory conversion and returns the converted data structure.
360
389
 
390
+ #### `convert_single_file(data, original_file, **kwargs)`
391
+ Available when `is_single_conversion=True`. Converts a single data object and corresponding original file.
392
+
361
393
  #### `save_to_folder(output_dir)`
362
394
  Saves the converted data to the specified output directory, creating the appropriate file structure for the target format.
363
395
 
@@ -399,4 +431,25 @@ coco_data = coco_converter.convert()
399
431
  coco_converter.save_to_folder('/data/coco_eval')
400
432
  ```
401
433
 
434
+ ### Single File Conversion Example
435
+
436
+ ```python
437
+ import json
438
+ from synapse_sdk.utils.converters.yolo.from_dm import FromDMToYOLOConverter
439
+
440
+ # Initialize converter for single file processing
441
+ converter = FromDMToYOLOConverter(is_single_conversion=True)
442
+
443
+ # Load DM format data
444
+ with open('annotation.json', 'r') as f:
445
+ dm_data = json.load(f)
446
+
447
+ # Convert single file
448
+ with open('image.jpg', 'rb') as img_file:
449
+ yolo_labels = converter.convert_single_file(dm_data, img_file)
450
+
451
+ # yolo_labels contains the converted YOLO format labels
452
+ print(yolo_labels)
453
+ ```
454
+
402
455
  This converter system provides a complete solution for dataset format transformation, enabling seamless integration between different machine learning workflows and annotation tools.
@@ -2,7 +2,9 @@
2
2
 
3
3
  import os
4
4
  import shutil
5
+ import socket
5
6
  import subprocess
7
+ import webbrowser
6
8
  from pathlib import Path
7
9
  from typing import Optional
8
10
  from urllib.parse import quote
@@ -141,6 +143,169 @@ def detect_and_encrypt_plugin(workspace_path: str) -> Optional[dict]:
141
143
  return None
142
144
 
143
145
 
146
+ def is_ssh_session() -> bool:
147
+ """Check if we're in an SSH session.
148
+
149
+ Returns:
150
+ bool: True if in SSH session, False otherwise
151
+ """
152
+ return bool(os.environ.get('SSH_CONNECTION') or os.environ.get('SSH_CLIENT'))
153
+
154
+
155
+ def is_vscode_terminal() -> bool:
156
+ """Check if we're running in a VSCode terminal.
157
+
158
+ Returns:
159
+ bool: True if in VSCode terminal, False otherwise
160
+ """
161
+ return os.environ.get('TERM_PROGRAM') == 'vscode'
162
+
163
+
164
+ def is_vscode_ssh_session() -> bool:
165
+ """Check if we're in a VSCode terminal over SSH.
166
+
167
+ Returns:
168
+ bool: True if in VSCode terminal via SSH, False otherwise
169
+ """
170
+ return is_vscode_terminal() and is_ssh_session()
171
+
172
+
173
+ def get_ssh_tunnel_instructions(port: int) -> str:
174
+ """Get SSH tunnel setup instructions for VSCode users.
175
+
176
+ Args:
177
+ port: The port number code-server is running on
178
+
179
+ Returns:
180
+ str: Instructions for setting up SSH tunnel
181
+ """
182
+ ssh_client = os.environ.get('SSH_CLIENT', '').split()[0] if os.environ.get('SSH_CLIENT') else 'your_server'
183
+
184
+ instructions = f"""
185
+ 📡 VSCode SSH Tunnel Setup:
186
+
187
+ Since you're using VSCode's integrated terminal over SSH, you can access code-server locally by:
188
+
189
+ 1. Using VSCode's built-in port forwarding:
190
+ • Open Command Palette (Cmd/Ctrl+Shift+P)
191
+ • Type "Forward a Port"
192
+ • Enter port: {port}
193
+ • VSCode will automatically forward the port
194
+
195
+ 2. Or manually forward the port in a new local terminal:
196
+ ssh -L {port}:localhost:{port} {ssh_client}
197
+
198
+ 3. Then open in your local browser:
199
+ http://localhost:{port}
200
+ """
201
+ return instructions
202
+
203
+
204
+ def open_browser_smart(url: str) -> bool:
205
+ """Open browser with smart fallback handling.
206
+
207
+ Attempts to open a browser using multiple methods, with appropriate
208
+ handling for SSH sessions and headless environments.
209
+
210
+ Args:
211
+ url: URL to open
212
+
213
+ Returns:
214
+ bool: True if browser was opened successfully, False otherwise
215
+ """
216
+ # Don't even try to open browser in SSH sessions (except VSCode can handle it)
217
+ if is_ssh_session() and not is_vscode_terminal():
218
+ return False
219
+
220
+ # Try Python's webbrowser module first (cross-platform)
221
+ try:
222
+ if webbrowser.open(url):
223
+ return True
224
+ except Exception:
225
+ pass
226
+
227
+ # Try platform-specific commands
228
+ commands = []
229
+
230
+ # Check for macOS
231
+ if shutil.which('open'):
232
+ commands.append(['open', url])
233
+
234
+ # Check for Linux with display
235
+ if os.environ.get('DISPLAY'):
236
+ if shutil.which('xdg-open'):
237
+ commands.append(['xdg-open', url])
238
+ if shutil.which('gnome-open'):
239
+ commands.append(['gnome-open', url])
240
+ if shutil.which('kde-open'):
241
+ commands.append(['kde-open', url])
242
+
243
+ # Try each command
244
+ for cmd in commands:
245
+ try:
246
+ result = subprocess.run(cmd, capture_output=True, text=True, timeout=2)
247
+ if result.returncode == 0:
248
+ return True
249
+ except Exception:
250
+ continue
251
+
252
+ return False
253
+
254
+
255
+ def is_port_in_use(port: int) -> bool:
256
+ """Check if a port is already in use.
257
+
258
+ Args:
259
+ port: Port number to check
260
+
261
+ Returns:
262
+ bool: True if port is in use, False otherwise
263
+ """
264
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
265
+ try:
266
+ s.bind(('127.0.0.1', port))
267
+ return False
268
+ except socket.error:
269
+ return True
270
+
271
+
272
+ def get_process_on_port(port: int) -> Optional[str]:
273
+ """Get the name of the process using a specific port.
274
+
275
+ Args:
276
+ port: Port number to check
277
+
278
+ Returns:
279
+ str: Process name if found, None otherwise
280
+ """
281
+ try:
282
+ # Use lsof to find the process
283
+ result = subprocess.run(['lsof', '-i', f':{port}', '-t'], capture_output=True, text=True, timeout=2)
284
+
285
+ if result.returncode == 0 and result.stdout.strip():
286
+ # Get the PID
287
+ pid = result.stdout.strip().split('\n')[0]
288
+
289
+ # Get process details
290
+ proc_result = subprocess.run(['ps', '-p', pid, '-o', 'comm='], capture_output=True, text=True, timeout=2)
291
+
292
+ if proc_result.returncode == 0:
293
+ process_name = proc_result.stdout.strip()
294
+ # Check if it's a code-server process
295
+ if 'node' in process_name or 'code-server' in process_name:
296
+ # Try to get more details
297
+ cmd_result = subprocess.run(
298
+ ['ps', '-p', pid, '-o', 'args='], capture_output=True, text=True, timeout=2
299
+ )
300
+ if cmd_result.returncode == 0 and 'code-server' in cmd_result.stdout:
301
+ return 'code-server'
302
+ return process_name
303
+ except Exception:
304
+ pass
305
+
306
+ return None
307
+
308
+
144
309
  def is_code_server_installed() -> bool:
145
310
  """Check if code-server is installed locally.
146
311
 
@@ -154,7 +319,7 @@ def get_code_server_port() -> int:
154
319
  """Get code-server port from config file.
155
320
 
156
321
  Returns:
157
- int: Port number from config, defaults to 8880 if not found
322
+ int: Port number from config, defaults to 8070 if not found
158
323
  """
159
324
  config_path = Path.home() / '.config' / 'code-server' / 'config.yaml'
160
325
 
@@ -163,7 +328,7 @@ def get_code_server_port() -> int:
163
328
  with open(config_path, 'r') as f:
164
329
  config = yaml.safe_load(f)
165
330
 
166
- # Parse bind-addr which can be in format "127.0.0.1:8880" or just ":8880"
331
+ # Parse bind-addr which can be in format "127.0.0.1:8070" or just ":8070"
167
332
  bind_addr = config.get('bind-addr', '')
168
333
  if ':' in bind_addr:
169
334
  port_str = bind_addr.split(':')[-1]
@@ -176,31 +341,133 @@ def get_code_server_port() -> int:
176
341
  pass
177
342
 
178
343
  # Default port if config not found or invalid
179
- return 8880
344
+ return 8070
180
345
 
181
346
 
182
- def launch_local_code_server(workspace_path: str, open_browser: bool = True) -> None:
347
+ def launch_local_code_server(workspace_path: str, open_browser: bool = True, custom_port: Optional[int] = None) -> None:
183
348
  """Launch local code-server instance.
184
349
 
185
350
  Args:
186
351
  workspace_path: Directory to open in code-server
187
352
  open_browser: Whether to open browser automatically
353
+ custom_port: Optional custom port to use instead of config/default
188
354
  """
189
355
  try:
190
- # Get port from config
191
- port = get_code_server_port()
356
+ # Use custom port if provided, otherwise get from config
357
+ port = custom_port if custom_port else get_code_server_port()
358
+
359
+ # Check if port is already in use
360
+ if is_port_in_use(port):
361
+ process_name = get_process_on_port(port)
362
+
363
+ if process_name == 'code-server':
364
+ # Code-server is already running
365
+ click.echo(f'⚠️ Code-server is already running on port {port}')
366
+
367
+ # Create URL with folder query parameter
368
+ encoded_path = quote(workspace_path)
369
+ url_with_folder = f'http://localhost:{port}/?folder={encoded_path}'
370
+
371
+ # Ask user what to do
372
+ questions = [
373
+ inquirer.List(
374
+ 'action',
375
+ message='What would you like to do?',
376
+ choices=[
377
+ ('Use existing code-server instance', 'use_existing'),
378
+ ('Stop existing and start new instance', 'restart'),
379
+ ('Cancel', 'cancel'),
380
+ ],
381
+ )
382
+ ]
383
+
384
+ try:
385
+ answers = inquirer.prompt(questions)
386
+
387
+ if not answers or answers['action'] == 'cancel':
388
+ click.echo('Cancelled')
389
+ return
390
+
391
+ if answers['action'] == 'use_existing':
392
+ click.echo('\n✅ Using existing code-server instance')
393
+ click.echo(f' URL: {url_with_folder}')
394
+
395
+ # Optionally open browser
396
+ if open_browser:
397
+ if is_vscode_ssh_session():
398
+ # Special handling for VSCode SSH sessions
399
+ click.echo(get_ssh_tunnel_instructions(port))
400
+ click.echo(f'🔗 Remote URL: {url_with_folder}')
401
+ click.echo(f'\n✨ After port forwarding, access at: http://localhost:{port}')
402
+ elif is_ssh_session():
403
+ click.echo('📝 SSH session detected - please open the URL in your local browser')
404
+ click.echo(f'👉 URL: {url_with_folder}')
405
+ elif open_browser_smart(url_with_folder):
406
+ click.echo('✅ Browser opened successfully')
407
+ else:
408
+ click.echo('⚠️ Could not open browser automatically')
409
+ click.echo(f'👉 URL: {url_with_folder}')
410
+ return
411
+
412
+ if answers['action'] == 'restart':
413
+ # Stop existing code-server
414
+ click.echo('Stopping existing code-server...')
415
+ try:
416
+ # Get PID of code-server process
417
+ result = subprocess.run(
418
+ ['lsof', '-i', f':{port}', '-t'], capture_output=True, text=True, timeout=2
419
+ )
420
+
421
+ if result.returncode == 0 and result.stdout.strip():
422
+ pid = result.stdout.strip().split('\n')[0]
423
+ subprocess.run(['kill', pid], timeout=5)
424
+
425
+ # Wait a moment for process to stop
426
+ import time
427
+
428
+ time.sleep(2)
429
+
430
+ click.echo('✅ Existing code-server stopped')
431
+ except Exception as e:
432
+ click.echo(f'⚠️ Could not stop existing code-server: {e}')
433
+ click.echo('Please stop it manually and try again')
434
+ return
435
+
436
+ except (KeyboardInterrupt, EOFError):
437
+ click.echo('\nCancelled')
438
+ return
439
+
440
+ else:
441
+ # Another process is using the port
442
+ click.echo(f'❌ Port {port} is already in use by: {process_name or "unknown process"}')
443
+ if not custom_port:
444
+ click.echo('\nYou can:')
445
+ click.echo('1. Stop the process using the port')
446
+ click.echo('2. Use a different port with --port option (e.g., --port 8071)')
447
+ click.echo('3. Change the default port in ~/.config/code-server/config.yaml')
448
+ else:
449
+ click.echo(f'Please try a different port or stop the process using port {port}')
450
+ return
192
451
 
193
452
  # Create URL with folder query parameter
194
453
  encoded_path = quote(workspace_path)
195
454
  url_with_folder = f'http://localhost:{port}/?folder={encoded_path}'
196
455
 
197
456
  # Basic code-server command - let code-server handle the workspace internally
198
- cmd = ['code-server', workspace_path]
457
+ cmd = ['code-server']
458
+
459
+ # Add custom port binding if specified
460
+ if custom_port:
461
+ cmd.extend(['--bind-addr', f'127.0.0.1:{port}'])
462
+
463
+ cmd.append(workspace_path)
199
464
 
200
465
  if not open_browser:
201
466
  cmd.append('--disable-getting-started-override')
202
467
 
203
468
  click.echo(f'🚀 Starting local code-server for workspace: {workspace_path}')
469
+ if custom_port:
470
+ click.echo(f' Using custom port: {port}')
204
471
  click.echo(f' URL: {url_with_folder}')
205
472
  click.echo(' Press Ctrl+C to stop the server')
206
473
 
@@ -221,17 +488,18 @@ def launch_local_code_server(workspace_path: str, open_browser: bool = True) ->
221
488
  time.sleep(3)
222
489
 
223
490
  # Open browser with folder parameter
224
- try:
225
- result = subprocess.run(['xdg-open', url_with_folder], capture_output=True, text=True, timeout=2)
226
- if result.returncode != 0:
227
- click.echo('⚠️ Could not open browser automatically (no display?)')
228
- click.echo(f'👉 Please manually open: {url_with_folder}')
229
- else:
230
- click.echo(' Browser opened successfully')
231
- except (subprocess.TimeoutExpired, FileNotFoundError):
232
- click.echo('⚠️ Could not open browser (headless environment)')
233
- click.echo(f'👉 Please manually open: {url_with_folder}')
234
- except Exception:
491
+ if is_vscode_ssh_session():
492
+ # Special handling for VSCode SSH sessions
493
+ click.echo(get_ssh_tunnel_instructions(port))
494
+ click.echo(f'🔗 Remote URL: {url_with_folder}')
495
+ click.echo(f'\n✨ After port forwarding, access at: http://localhost:{port}')
496
+ elif is_ssh_session():
497
+ click.echo('📝 SSH session detected - please open the URL in your local browser')
498
+ click.echo(f'👉 URL: {url_with_folder}')
499
+ elif open_browser_smart(url_with_folder):
500
+ click.echo(' Browser opened successfully')
501
+ else:
502
+ click.echo('⚠️ Could not open browser automatically')
235
503
  click.echo(f'👉 Please manually open: {url_with_folder}')
236
504
 
237
505
  # Wait for the server thread (blocking)
@@ -333,19 +601,22 @@ def run_agent_code_server(agent: Optional[str], workspace: str, open_browser: bo
333
601
  if open_browser and url:
334
602
  click.echo('\nAttempting to open in browser...')
335
603
 
336
- # Try to open browser, suppressing stderr to avoid xdg-open noise
337
- try:
338
- # Use subprocess to suppress xdg-open errors
339
- result = subprocess.run(['xdg-open', url], capture_output=True, text=True, timeout=2)
340
- if result.returncode != 0:
341
- click.echo('⚠️ Could not open browser automatically (no display?)')
342
- click.echo(f'👉 Please manually open: {url}')
343
- except (subprocess.TimeoutExpired, FileNotFoundError):
344
- # xdg-open not available or timed out
345
- click.echo('⚠️ Could not open browser (headless environment)')
346
- click.echo(f'👉 Please manually open: {url}')
347
- except Exception:
348
- # Fallback for other errors
604
+ if is_vscode_ssh_session():
605
+ # Extract port from URL for instructions
606
+ import re
607
+
608
+ port_match = re.search(r':(\d+)', url)
609
+ if port_match:
610
+ agent_port = int(port_match.group(1))
611
+ click.echo(get_ssh_tunnel_instructions(agent_port))
612
+ click.echo(f'🔗 Remote URL: {url}')
613
+ elif is_ssh_session():
614
+ click.echo('📝 SSH session detected - please open the URL in your local browser')
615
+ click.echo(f'👉 URL: {url}')
616
+ elif open_browser_smart(url):
617
+ click.echo('✅ Browser opened successfully')
618
+ else:
619
+ click.echo('⚠️ Could not open browser automatically')
349
620
  click.echo(f'👉 Please manually open: {url}')
350
621
 
351
622
  # Show additional instructions
@@ -364,7 +635,8 @@ def run_agent_code_server(agent: Optional[str], workspace: str, open_browser: bo
364
635
  @click.option('--agent', help='Agent name or ID')
365
636
  @click.option('--open-browser/--no-open-browser', default=True, help='Open in browser')
366
637
  @click.option('--workspace', help='Workspace directory path (defaults to current directory)')
367
- def code_server(agent: Optional[str], open_browser: bool, workspace: Optional[str]):
638
+ @click.option('--port', type=int, help='Port to bind code-server (default: from config or 8070)')
639
+ def code_server(agent: Optional[str], open_browser: bool, workspace: Optional[str], port: Optional[int]):
368
640
  """Open code-server either through agent or locally."""
369
641
 
370
642
  # Get current working directory if workspace not specified
@@ -405,7 +677,7 @@ def code_server(agent: Optional[str], open_browser: bool, workspace: Optional[st
405
677
 
406
678
  elif answers['option'] == 'local':
407
679
  click.echo('\n💻 Starting local code-server...')
408
- launch_local_code_server(workspace, open_browser)
680
+ launch_local_code_server(workspace, open_browser, port)
409
681
 
410
682
  elif answers['option'] == 'install':
411
683
  show_code_server_installation_help()
@@ -41,7 +41,7 @@ class ExportRun(Run):
41
41
  """Log export file information.
42
42
 
43
43
  Args:
44
- log_type (str): The type of log ('export_data_file' or 'export_original_file' or 'etc').
44
+ log_type (str): The type of log ('export_data_file' or 'export_original_file').
45
45
  target_id (int): The ID of the data file.
46
46
  data_file_info (dict): The JSON info of the data file.
47
47
  status (ExportStatus): The status of the data file.
@@ -89,16 +89,6 @@ class ExportRun(Run):
89
89
  """Log export origin data file."""
90
90
  self.log_file('export_original_file', target_id, data_file_info, status, error)
91
91
 
92
- def export_log_etc_file(
93
- self,
94
- target_id: int,
95
- data_file_info: dict,
96
- status: ExportStatus = ExportStatus.STAND_BY,
97
- error: str | None = None,
98
- ):
99
- """Log export etc file."""
100
- self.log_file('etc', target_id, data_file_info, status, error)
101
-
102
92
 
103
93
  class ExportTargetHandler(ABC):
104
94
  """
@@ -210,7 +200,7 @@ class TaskExportTargetHandler(ExportTargetHandler):
210
200
  return value
211
201
 
212
202
  def get_results(self, client: Any, filters: dict):
213
- filters['expand'] = 'data_unit'
203
+ filters['expand'] = ['data_unit', 'assignment', 'workshop']
214
204
  return client.list_tasks(params=filters, list_all=True)
215
205
 
216
206
  def get_export_item(self, results):
@@ -302,11 +292,6 @@ class ExportAction(Action):
302
292
  'failed': 0,
303
293
  'success': 0,
304
294
  },
305
- 'etc': {
306
- 'stand_by': 0,
307
- 'failed': 0,
308
- 'success': 0,
309
- },
310
295
  }
311
296
 
312
297
  def get_filtered_results(self, filters, handler):
@@ -334,6 +319,7 @@ class ExportAction(Action):
334
319
  first_result = next(peek_iter) # Peek first value only
335
320
  project_pk = first_result['project']
336
321
  project_info = self.client.get_project(project_pk)
322
+ self.params['project_id'] = project_pk
337
323
  self.params['configuration'] = project_info.get('configuration', {})
338
324
  self.params['results'] = main_iter # Keep original generator intact
339
325
  except (StopIteration, KeyError):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse-sdk
3
- Version: 1.0.0b6
3
+ Version: 1.0.0b8
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT