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.
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.gitignore +3 -0
- {synapse_sdk-1.0.0b6/synapse_sdk.egg-info → synapse_sdk-1.0.0b8}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/cli-usage.md +1 -1
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/faq.md +2 -2
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/converters/index.md +61 -8
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/code_server.py +305 -33
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/actions/export.py +3 -17
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8/synapse_sdk.egg-info}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/compare-branch.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/review-pr.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/update-pr-desc.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.claude/commands/update-pr-title.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.coverage +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.github/workflows/test.yml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.mcp.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/AGENT.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/CLAUDE.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/GEMINI.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/LICENSE +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/Makefile +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P1_rules.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P2_rules.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P3_rules.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/P4_rules.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/README.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/agent.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/backend.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/clients/base.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/categories.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/models.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/plugins/utils.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/file.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/storage.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/api/utils/types.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/categories.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/concepts/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/configuration.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/contributing.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/examples/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/features/plugins/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/code.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/installation.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/introduction.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/quickstart.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/troubleshooting.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/_category_.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/congratulations.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-blog-post.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-document.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/create-a-page.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/deploy-your-site.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-basics/markdown-features.mdx +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/_category_.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/img/localeDropdown.png +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/manage-docs-versions.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/docs/tutorial-extras/translate-your-site.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/en/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/en/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/ko/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/locale/ko/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pyproject.toml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pytest-ci.ini +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/pytest.ini +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/requirements.test.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/requirements.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/setup.cfg +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/create.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/dataclass.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/default.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/delete.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/list.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/read.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/update.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/alias/utils.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/config.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/devtools.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/create.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/publish.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/cli/plugin/run.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/core.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/ray.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/core.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/data_collection.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/hitl.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/backend/models.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/base.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/core.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/ray/serve.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/validators/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/clients/validators/collections.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/config.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/.gitignore +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/README.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/package-lock.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/package.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/sidebars.ts +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/server.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/app.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/job_service.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/plugin_service.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/services/serve_service.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/config_tab.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/http_tab.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/ui/status_bar.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/styles.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app/utils/ui_components.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/devtools/streamlit_app.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/i18n.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/base.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/enums.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/enums.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/exceptions.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/models.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/schema.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/actions.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/config.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/legacy.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/utils/registry.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/shared/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/shared/enums.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/types.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/coco/to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/from_v1.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/dm/to_v1.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/pascal/to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/converters/yolo/to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/dataset.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/encryption.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/file.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/http.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/network.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/config.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/errors.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/pydantic/validators.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/file_system.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/http.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/s3.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/storage/registry.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/SOURCES.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk.egg-info/top_level.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/test_code_server.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/test_code_server_simple.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/README.md +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_backend_models.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_base_client.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/clients/test_collection_validators.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/loggers/test_base_logger.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/validation/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/data_validation/validation/test_validation_action.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_actions.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_config.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/plugins/utils/test_registry.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/test_cli.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/test_cli_integration.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/__init__,py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/__init__.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/coco.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/annotations.json +0 -0
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/annotations.json +0 -0
- {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
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/annotations.json +0 -0
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/annotations.json +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/ver1/json/25669.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/dm/ver2/json/25669.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/classes.txt +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/dataset.yaml +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/dataset.yaml +0 -0
- {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
- {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
- {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
- {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
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/pcd/dm/ver1/json/23791.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/pcd/dm/ver2/json/23791.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/prompt/dm/ver1/json/18662.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/prompt/dm/ver2/json/18662.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/text/dm/ver1/json/23811.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/dm_schema.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/pascal.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/fixtures/yolo.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_coco_from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_coco_to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_dm_v1_to_v2.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_dm_v2_to_v1.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_pascal_from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_pascal_to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_yolo_from_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/converters/test_yolo_to_dm.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/conftest.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/test_file_system_storage.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/storage/test_provider_selection.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/tests/utils/test_debug.py +0 -0
- {synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/uv.lock +0 -0
|
@@ -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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
-
#
|
|
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'
|
|
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
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
click.echo(
|
|
234
|
-
|
|
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
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
click.echo(
|
|
347
|
-
|
|
348
|
-
|
|
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
|
-
|
|
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()
|
{synapse_sdk-1.0.0b6 → synapse_sdk-1.0.0b8}/synapse_sdk/plugins/categories/export/actions/export.py
RENAMED
|
@@ -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'
|
|
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):
|
|
File without changes
|
|
File without changes
|