synapse-sdk 1.0.0a13__py3-none-any.whl → 2025.11.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of synapse-sdk might be problematic. Click here for more details.
- synapse_sdk/__init__.py +24 -0
- synapse_sdk/cli/__init__.py +310 -5
- synapse_sdk/cli/alias/__init__.py +22 -0
- synapse_sdk/cli/alias/create.py +36 -0
- synapse_sdk/cli/alias/dataclass.py +31 -0
- synapse_sdk/cli/alias/default.py +16 -0
- synapse_sdk/cli/alias/delete.py +15 -0
- synapse_sdk/cli/alias/list.py +19 -0
- synapse_sdk/cli/alias/read.py +15 -0
- synapse_sdk/cli/alias/update.py +17 -0
- synapse_sdk/cli/alias/utils.py +61 -0
- synapse_sdk/cli/code_server.py +687 -0
- synapse_sdk/cli/config.py +440 -0
- synapse_sdk/cli/devtools.py +90 -0
- synapse_sdk/cli/plugin/__init__.py +33 -0
- synapse_sdk/cli/{create_plugin.py → plugin/create.py} +2 -2
- synapse_sdk/cli/plugin/publish.py +45 -0
- synapse_sdk/{plugins/cli → cli/plugin}/run.py +12 -5
- synapse_sdk/clients/agent/__init__.py +9 -3
- synapse_sdk/clients/agent/container.py +133 -0
- synapse_sdk/clients/agent/core.py +19 -0
- synapse_sdk/clients/agent/ray.py +298 -9
- synapse_sdk/clients/backend/__init__.py +41 -12
- synapse_sdk/clients/backend/annotation.py +13 -5
- synapse_sdk/clients/backend/core.py +59 -0
- synapse_sdk/clients/backend/data_collection.py +186 -0
- synapse_sdk/clients/backend/hitl.py +17 -0
- synapse_sdk/clients/backend/integration.py +19 -4
- synapse_sdk/clients/backend/ml.py +10 -7
- synapse_sdk/clients/backend/models.py +78 -0
- synapse_sdk/clients/base.py +381 -34
- synapse_sdk/clients/ray/serve.py +2 -0
- synapse_sdk/clients/validators/collections.py +31 -0
- synapse_sdk/devtools/config.py +94 -0
- synapse_sdk/devtools/docs/.gitignore +20 -0
- synapse_sdk/devtools/docs/README.md +41 -0
- synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +12 -0
- synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +44 -0
- synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +24 -0
- synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +29 -0
- synapse_sdk/devtools/docs/blog/authors.yml +25 -0
- synapse_sdk/devtools/docs/blog/tags.yml +19 -0
- synapse_sdk/devtools/docs/docs/api/clients/agent.md +43 -0
- synapse_sdk/devtools/docs/docs/api/clients/annotation-mixin.md +378 -0
- synapse_sdk/devtools/docs/docs/api/clients/backend.md +420 -0
- synapse_sdk/devtools/docs/docs/api/clients/base.md +257 -0
- synapse_sdk/devtools/docs/docs/api/clients/core-mixin.md +477 -0
- synapse_sdk/devtools/docs/docs/api/clients/data-collection-mixin.md +422 -0
- synapse_sdk/devtools/docs/docs/api/clients/hitl-mixin.md +554 -0
- synapse_sdk/devtools/docs/docs/api/clients/index.md +391 -0
- synapse_sdk/devtools/docs/docs/api/clients/integration-mixin.md +571 -0
- synapse_sdk/devtools/docs/docs/api/clients/ml-mixin.md +578 -0
- synapse_sdk/devtools/docs/docs/api/clients/ray.md +342 -0
- synapse_sdk/devtools/docs/docs/api/index.md +52 -0
- synapse_sdk/devtools/docs/docs/api/plugins/categories.md +43 -0
- synapse_sdk/devtools/docs/docs/api/plugins/models.md +114 -0
- synapse_sdk/devtools/docs/docs/api/plugins/utils.md +328 -0
- synapse_sdk/devtools/docs/docs/categories.md +0 -0
- synapse_sdk/devtools/docs/docs/cli-usage.md +280 -0
- synapse_sdk/devtools/docs/docs/concepts/index.md +38 -0
- synapse_sdk/devtools/docs/docs/configuration.md +83 -0
- synapse_sdk/devtools/docs/docs/contributing.md +306 -0
- synapse_sdk/devtools/docs/docs/examples/index.md +29 -0
- synapse_sdk/devtools/docs/docs/faq.md +179 -0
- synapse_sdk/devtools/docs/docs/features/converters/index.md +455 -0
- synapse_sdk/devtools/docs/docs/features/index.md +24 -0
- synapse_sdk/devtools/docs/docs/features/utils/file.md +415 -0
- synapse_sdk/devtools/docs/docs/features/utils/network.md +378 -0
- synapse_sdk/devtools/docs/docs/features/utils/storage.md +57 -0
- synapse_sdk/devtools/docs/docs/features/utils/types.md +51 -0
- synapse_sdk/devtools/docs/docs/installation.md +94 -0
- synapse_sdk/devtools/docs/docs/introduction.md +47 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/neural-net-plugins/train-action-overview.md +814 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
- synapse_sdk/devtools/docs/docs/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
- synapse_sdk/devtools/docs/docs/plugins/export-plugins.md +1092 -0
- synapse_sdk/devtools/docs/docs/plugins/plugins.md +852 -0
- synapse_sdk/devtools/docs/docs/quickstart.md +78 -0
- synapse_sdk/devtools/docs/docs/troubleshooting.md +519 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/_category_.json +8 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/congratulations.md +23 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-blog-post.md +34 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-document.md +57 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/create-a-page.md +43 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/deploy-your-site.md +31 -0
- synapse_sdk/devtools/docs/docs/tutorial-basics/markdown-features.mdx +152 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/_category_.json +7 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/img/localeDropdown.png +0 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/manage-docs-versions.md +55 -0
- synapse_sdk/devtools/docs/docs/tutorial-extras/translate-your-site.md +88 -0
- synapse_sdk/devtools/docs/docusaurus.config.ts +148 -0
- synapse_sdk/devtools/docs/i18n/ko/code.json +325 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/agent.md +43 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/annotation-mixin.md +289 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/backend.md +420 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/base.md +257 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/core-mixin.md +417 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/data-collection-mixin.md +356 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/hitl-mixin.md +192 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/index.md +391 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/integration-mixin.md +479 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ml-mixin.md +284 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/clients/ray.md +342 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/index.md +52 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/api/plugins/models.md +114 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/categories.md +0 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/cli-usage.md +280 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/concepts/index.md +38 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/configuration.md +83 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/contributing.md +306 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/examples/index.md +29 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/faq.md +179 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/converters/index.md +30 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/index.md +24 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/file.md +415 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/network.md +378 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/storage.md +60 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/features/utils/types.md +51 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/installation.md +94 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +47 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/neural-net-plugins/train-action-overview.md +815 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/pre-annotation-plugin-overview.md +198 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-action-development.md +1645 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-overview.md +717 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/pre-annotation-plugins/to-task-template-development.md +1380 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-action.md +948 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-overview.md +544 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/categories/upload-plugins/upload-plugin-template.md +766 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/export-plugins.md +1092 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/plugins/plugins.md +117 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/quickstart.md +78 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current/troubleshooting.md +519 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +34 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/footer.json +42 -0
- synapse_sdk/devtools/docs/i18n/ko/docusaurus-theme-classic/navbar.json +18 -0
- synapse_sdk/devtools/docs/package-lock.json +18784 -0
- synapse_sdk/devtools/docs/package.json +48 -0
- synapse_sdk/devtools/docs/sidebars.ts +122 -0
- synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +71 -0
- synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +11 -0
- synapse_sdk/devtools/docs/src/css/custom.css +30 -0
- synapse_sdk/devtools/docs/src/pages/index.module.css +23 -0
- synapse_sdk/devtools/docs/src/pages/index.tsx +21 -0
- synapse_sdk/devtools/docs/src/pages/markdown-page.md +7 -0
- synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +171 -0
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +170 -0
- synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +40 -0
- synapse_sdk/devtools/docs/tsconfig.json +8 -0
- synapse_sdk/devtools/server.py +41 -0
- synapse_sdk/devtools/streamlit_app/__init__.py +5 -0
- synapse_sdk/devtools/streamlit_app/app.py +128 -0
- synapse_sdk/devtools/streamlit_app/services/__init__.py +11 -0
- synapse_sdk/devtools/streamlit_app/services/job_service.py +233 -0
- synapse_sdk/devtools/streamlit_app/services/plugin_service.py +236 -0
- synapse_sdk/devtools/streamlit_app/services/serve_service.py +95 -0
- synapse_sdk/devtools/streamlit_app/ui/__init__.py +15 -0
- synapse_sdk/devtools/streamlit_app/ui/config_tab.py +76 -0
- synapse_sdk/devtools/streamlit_app/ui/deployment_tab.py +66 -0
- synapse_sdk/devtools/streamlit_app/ui/http_tab.py +125 -0
- synapse_sdk/devtools/streamlit_app/ui/jobs_tab.py +573 -0
- synapse_sdk/devtools/streamlit_app/ui/serve_tab.py +346 -0
- synapse_sdk/devtools/streamlit_app/ui/status_bar.py +118 -0
- synapse_sdk/devtools/streamlit_app/utils/__init__.py +40 -0
- synapse_sdk/devtools/streamlit_app/utils/json_viewer.py +197 -0
- synapse_sdk/devtools/streamlit_app/utils/log_formatter.py +38 -0
- synapse_sdk/devtools/streamlit_app/utils/styles.py +241 -0
- synapse_sdk/devtools/streamlit_app/utils/ui_components.py +289 -0
- synapse_sdk/devtools/streamlit_app.py +10 -0
- synapse_sdk/loggers.py +74 -9
- synapse_sdk/plugins/README.md +1340 -0
- synapse_sdk/plugins/__init__.py +0 -13
- synapse_sdk/plugins/categories/base.py +145 -30
- synapse_sdk/plugins/categories/data_validation/actions/validation.py +72 -0
- synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +33 -5
- synapse_sdk/plugins/categories/export/actions/__init__.py +3 -0
- synapse_sdk/plugins/categories/export/actions/export/__init__.py +28 -0
- synapse_sdk/plugins/categories/export/actions/export/action.py +165 -0
- synapse_sdk/plugins/categories/export/actions/export/enums.py +113 -0
- synapse_sdk/plugins/categories/export/actions/export/exceptions.py +53 -0
- synapse_sdk/plugins/categories/export/actions/export/models.py +74 -0
- synapse_sdk/plugins/categories/export/actions/export/run.py +195 -0
- synapse_sdk/plugins/categories/export/actions/export/utils.py +187 -0
- synapse_sdk/plugins/categories/export/templates/config.yaml +21 -0
- synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
- synapse_sdk/plugins/categories/export/templates/plugin/export.py +160 -0
- synapse_sdk/plugins/categories/neural_net/actions/deployment.py +29 -14
- synapse_sdk/plugins/categories/neural_net/actions/inference.py +13 -1
- synapse_sdk/plugins/categories/neural_net/actions/train.py +1084 -38
- synapse_sdk/plugins/categories/neural_net/actions/tune.py +534 -0
- synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- synapse_sdk/plugins/categories/neural_net/base/inference.py +37 -0
- synapse_sdk/plugins/categories/neural_net/templates/config.yaml +30 -5
- synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +26 -10
- synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +4 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation/__init__.py +3 -0
- synapse_sdk/plugins/categories/{export/actions/export.py → pre_annotation/actions/pre_annotation/action.py} +4 -4
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/__init__.py +28 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/action.py +145 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/enums.py +269 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/exceptions.py +14 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/factory.py +76 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/models.py +97 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/orchestrator.py +250 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/run.py +64 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/__init__.py +17 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/annotation.py +287 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/base.py +170 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/extraction.py +83 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/metrics.py +87 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/preprocessor.py +127 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task/strategies/validation.py +143 -0
- synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +966 -0
- synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +19 -0
- synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +40 -0
- synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +5 -2
- synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- synapse_sdk/plugins/categories/upload/actions/upload/__init__.py +19 -0
- synapse_sdk/plugins/categories/upload/actions/upload/action.py +232 -0
- synapse_sdk/plugins/categories/upload/actions/upload/context.py +185 -0
- synapse_sdk/plugins/categories/upload/actions/upload/enums.py +471 -0
- synapse_sdk/plugins/categories/upload/actions/upload/exceptions.py +36 -0
- synapse_sdk/plugins/categories/upload/actions/upload/factory.py +138 -0
- synapse_sdk/plugins/categories/upload/actions/upload/models.py +203 -0
- synapse_sdk/plugins/categories/upload/actions/upload/orchestrator.py +183 -0
- synapse_sdk/plugins/categories/upload/actions/upload/registry.py +113 -0
- synapse_sdk/plugins/categories/upload/actions/upload/run.py +179 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/base.py +107 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/cleanup.py +62 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/collection.py +63 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/generate.py +84 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/initialize.py +82 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/metadata.py +235 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/organize.py +203 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/upload.py +97 -0
- synapse_sdk/plugins/categories/upload/actions/upload/steps/validate.py +71 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/base.py +82 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/batch.py +39 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/data_unit/single.py +29 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/flat.py +258 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/file_discovery/recursive.py +281 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/excel.py +174 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/metadata/none.py +16 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/upload/sync.py +84 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/__init__.py +1 -0
- synapse_sdk/plugins/categories/upload/actions/upload/strategies/validation/default.py +60 -0
- synapse_sdk/plugins/categories/upload/actions/upload/utils.py +250 -0
- synapse_sdk/plugins/categories/upload/templates/README.md +470 -0
- synapse_sdk/plugins/categories/upload/templates/config.yaml +33 -0
- synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +294 -0
- synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +102 -0
- synapse_sdk/plugins/enums.py +3 -1
- synapse_sdk/plugins/models.py +140 -16
- synapse_sdk/plugins/templates/plugin-config-schema.json +406 -0
- synapse_sdk/plugins/templates/schema.json +491 -0
- synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +1 -0
- synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +1 -1
- synapse_sdk/plugins/utils/__init__.py +46 -0
- synapse_sdk/plugins/utils/actions.py +119 -0
- synapse_sdk/plugins/utils/config.py +203 -0
- synapse_sdk/plugins/utils/legacy.py +95 -0
- synapse_sdk/plugins/utils/ray_gcs.py +66 -0
- synapse_sdk/plugins/utils/registry.py +58 -0
- synapse_sdk/shared/__init__.py +25 -0
- synapse_sdk/shared/enums.py +93 -0
- synapse_sdk/types.py +19 -0
- synapse_sdk/utils/converters/__init__.py +240 -0
- synapse_sdk/utils/converters/coco/__init__.py +0 -0
- synapse_sdk/utils/converters/coco/from_dm.py +322 -0
- synapse_sdk/utils/converters/coco/to_dm.py +215 -0
- synapse_sdk/utils/converters/dm/__init__.py +56 -0
- synapse_sdk/utils/converters/dm/from_v1.py +627 -0
- synapse_sdk/utils/converters/dm/to_v1.py +367 -0
- synapse_sdk/utils/converters/pascal/__init__.py +0 -0
- synapse_sdk/utils/converters/pascal/from_dm.py +244 -0
- synapse_sdk/utils/converters/pascal/to_dm.py +214 -0
- synapse_sdk/utils/converters/yolo/__init__.py +0 -0
- synapse_sdk/utils/converters/yolo/from_dm.py +384 -0
- synapse_sdk/utils/converters/yolo/to_dm.py +267 -0
- synapse_sdk/utils/dataset.py +46 -0
- synapse_sdk/utils/encryption.py +158 -0
- synapse_sdk/utils/file/__init__.py +39 -0
- synapse_sdk/utils/file/archive.py +32 -0
- synapse_sdk/utils/file/checksum.py +56 -0
- synapse_sdk/utils/file/chunking.py +31 -0
- synapse_sdk/utils/file/download.py +385 -0
- synapse_sdk/utils/file/encoding.py +40 -0
- synapse_sdk/utils/file/io.py +22 -0
- synapse_sdk/utils/file/video/__init__.py +29 -0
- synapse_sdk/utils/file/video/transcode.py +307 -0
- synapse_sdk/utils/file.py.backup +301 -0
- synapse_sdk/utils/http.py +138 -0
- synapse_sdk/utils/network.py +309 -0
- synapse_sdk/utils/storage/__init__.py +72 -0
- synapse_sdk/utils/storage/providers/__init__.py +183 -0
- synapse_sdk/utils/storage/providers/file_system.py +134 -0
- synapse_sdk/utils/storage/providers/gcp.py +13 -0
- synapse_sdk/utils/storage/providers/http.py +190 -0
- synapse_sdk/utils/storage/providers/s3.py +91 -0
- synapse_sdk/utils/storage/providers/sftp.py +47 -0
- synapse_sdk/utils/storage/registry.py +17 -0
- synapse_sdk-2025.11.7.dist-info/METADATA +122 -0
- synapse_sdk-2025.11.7.dist-info/RECORD +386 -0
- {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/WHEEL +1 -1
- synapse_sdk/clients/backend/dataset.py +0 -51
- synapse_sdk/plugins/categories/import/actions/import.py +0 -10
- synapse_sdk/plugins/cli/__init__.py +0 -21
- synapse_sdk/plugins/cli/publish.py +0 -37
- synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env +0 -24
- synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -24
- synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/main.py +0 -4
- synapse_sdk/plugins/utils.py +0 -50
- synapse_sdk/utils/file.py +0 -87
- synapse_sdk/utils/storage.py +0 -91
- synapse_sdk-1.0.0a13.dist-info/METADATA +0 -43
- synapse_sdk-1.0.0a13.dist-info/RECORD +0 -111
- /synapse_sdk/{plugins/categories/import → clients/validators}/__init__.py +0 -0
- /synapse_sdk/{plugins/categories/import/actions → devtools}/__init__.py +0 -0
- {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info/licenses}/LICENSE +0 -0
- {synapse_sdk-1.0.0a13.dist-info → synapse_sdk-2025.11.7.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: index
|
|
3
|
+
title: Client APIs
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Client APIs
|
|
8
|
+
|
|
9
|
+
The Synapse SDK provides comprehensive client libraries for interacting with various backend services and systems. This section documents all available client APIs and their usage.
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
The client APIs are organized into several categories:
|
|
14
|
+
|
|
15
|
+
### Core Clients
|
|
16
|
+
|
|
17
|
+
- **[BackendClient](./backend.md)** - Main client for Synapse backend operations
|
|
18
|
+
- **[BaseClient](./base.md)** - Base client with common functionality
|
|
19
|
+
- **[AgentClient](./agent.md)** - Agent-specific operations
|
|
20
|
+
- **[RayClient](./ray.md)** - Ray distributed computing integration
|
|
21
|
+
|
|
22
|
+
### Backend Client Mixins
|
|
23
|
+
|
|
24
|
+
The BackendClient is composed of several specialized mixins that provide focused functionality:
|
|
25
|
+
|
|
26
|
+
- **[AnnotationClientMixin](./annotation-mixin.md)** - Task and annotation management
|
|
27
|
+
- **[CoreClientMixin](./core-mixin.md)** - Core file upload operations
|
|
28
|
+
- **[DataCollectionClientMixin](./data-collection-mixin.md)** - Data collection and file management
|
|
29
|
+
- **[HITLClientMixin](./hitl-mixin.md)** - Human-in-the-loop workflows
|
|
30
|
+
- **[IntegrationClientMixin](./integration-mixin.md)** - Plugin and job management
|
|
31
|
+
- **[MLClientMixin](./ml-mixin.md)** - Machine learning operations
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### Basic Backend Client Usage
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
from synapse_sdk.clients.backend import BackendClient
|
|
39
|
+
|
|
40
|
+
# Initialize client
|
|
41
|
+
client = BackendClient(
|
|
42
|
+
base_url="https://api.synapse.sh",
|
|
43
|
+
api_token="your-api-token"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
# Use annotation operations
|
|
47
|
+
tasks = client.list_tasks(params={'project': 123})
|
|
48
|
+
|
|
49
|
+
# Use data collection operations
|
|
50
|
+
collections = client.list_data_collection()
|
|
51
|
+
|
|
52
|
+
# Use ML operations
|
|
53
|
+
models = client.list_models(params={'project': 123})
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Environment Configuration
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
import os
|
|
60
|
+
|
|
61
|
+
# Set environment variables
|
|
62
|
+
os.environ['SYNAPSE_API_TOKEN'] = "your-api-token"
|
|
63
|
+
os.environ['SYNAPSE_AGENT_TOKEN'] = "your-agent-token"
|
|
64
|
+
|
|
65
|
+
# Client will automatically use environment variables
|
|
66
|
+
client = BackendClient(base_url="https://api.synapse.sh")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Authentication
|
|
70
|
+
|
|
71
|
+
All clients support multiple authentication methods:
|
|
72
|
+
|
|
73
|
+
### API Token Authentication
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
client = BackendClient(
|
|
77
|
+
base_url="https://api.synapse.sh",
|
|
78
|
+
api_token="your-api-token"
|
|
79
|
+
)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Environment Variable Authentication
|
|
83
|
+
|
|
84
|
+
```python
|
|
85
|
+
# Set SYNAPSE_API_TOKEN environment variable
|
|
86
|
+
client = BackendClient(base_url="https://api.synapse.sh")
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Agent Token Authentication (for agents)
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
client = BackendClient(
|
|
93
|
+
base_url="https://api.synapse.sh",
|
|
94
|
+
agent_token="your-agent-token"
|
|
95
|
+
)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Common Patterns
|
|
99
|
+
|
|
100
|
+
### Error Handling
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
from synapse_sdk.clients.exceptions import ClientError
|
|
104
|
+
|
|
105
|
+
try:
|
|
106
|
+
result = client.get_project(123)
|
|
107
|
+
except ClientError as e:
|
|
108
|
+
if e.status_code == 404:
|
|
109
|
+
print("Project not found")
|
|
110
|
+
elif e.status_code == 403:
|
|
111
|
+
print("Permission denied")
|
|
112
|
+
else:
|
|
113
|
+
print(f"API Error: {e}")
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Pagination
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
# Manual pagination
|
|
120
|
+
page1 = client.list_tasks(params={'page': 1, 'page_size': 50})
|
|
121
|
+
|
|
122
|
+
# Automatic pagination (recommended)
|
|
123
|
+
all_tasks = client.list_tasks(list_all=True)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Batch Operations
|
|
127
|
+
|
|
128
|
+
```python
|
|
129
|
+
# Create multiple tasks
|
|
130
|
+
tasks_data = [
|
|
131
|
+
{'project': 123, 'data_unit': 789},
|
|
132
|
+
{'project': 123, 'data_unit': 790},
|
|
133
|
+
{'project': 123, 'data_unit': 791}
|
|
134
|
+
]
|
|
135
|
+
created_tasks = client.create_tasks(tasks_data)
|
|
136
|
+
|
|
137
|
+
# Set tags for multiple assignments
|
|
138
|
+
client.set_tags_assignments({
|
|
139
|
+
'assignment_ids': [1, 2, 3],
|
|
140
|
+
'tag_ids': [10, 11]
|
|
141
|
+
})
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### File Operations
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
from pathlib import Path
|
|
148
|
+
|
|
149
|
+
# Upload large files with chunked upload
|
|
150
|
+
result = client.create_chunked_upload(Path('/path/to/large_file.zip'))
|
|
151
|
+
|
|
152
|
+
# Create data file
|
|
153
|
+
data_file = client.create_data_file(
|
|
154
|
+
Path('/path/to/data.jpg'),
|
|
155
|
+
use_chunked_upload=True
|
|
156
|
+
)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Client Capabilities by Use Case
|
|
160
|
+
|
|
161
|
+
### Annotation Workflows
|
|
162
|
+
|
|
163
|
+
Use **AnnotationClientMixin** for:
|
|
164
|
+
|
|
165
|
+
- Managing annotation projects
|
|
166
|
+
- Creating and assigning tasks
|
|
167
|
+
- Submitting annotation data
|
|
168
|
+
- Task tagging and organization
|
|
169
|
+
|
|
170
|
+
**Key Methods:**
|
|
171
|
+
|
|
172
|
+
- `list_tasks()`, `create_tasks()`, `annotate_task_data()`
|
|
173
|
+
- `get_project()`, `set_tags_tasks()`
|
|
174
|
+
|
|
175
|
+
### Data Management
|
|
176
|
+
|
|
177
|
+
Use **DataCollectionClientMixin** for:
|
|
178
|
+
|
|
179
|
+
- Managing data collections
|
|
180
|
+
- Uploading files and datasets
|
|
181
|
+
- Creating data units
|
|
182
|
+
- Batch data processing
|
|
183
|
+
|
|
184
|
+
**Key Methods:**
|
|
185
|
+
|
|
186
|
+
- `list_data_collection()`, `get_data_collection()`
|
|
187
|
+
- `create_data_file()`, `upload_data_file()`
|
|
188
|
+
- `create_data_units()`
|
|
189
|
+
|
|
190
|
+
### Human-in-the-Loop
|
|
191
|
+
|
|
192
|
+
Use **HITLClientMixin** for:
|
|
193
|
+
|
|
194
|
+
- Managing human review assignments
|
|
195
|
+
- Quality control workflows
|
|
196
|
+
- Assignment distribution
|
|
197
|
+
- Performance analytics
|
|
198
|
+
|
|
199
|
+
**Key Methods:**
|
|
200
|
+
|
|
201
|
+
- `list_assignments()`, `get_assignment()`
|
|
202
|
+
- `set_tags_assignments()`
|
|
203
|
+
|
|
204
|
+
### System Integration
|
|
205
|
+
|
|
206
|
+
Use **IntegrationClientMixin** for:
|
|
207
|
+
|
|
208
|
+
- Plugin development and management
|
|
209
|
+
- Job execution and monitoring
|
|
210
|
+
- Storage configuration
|
|
211
|
+
- Agent health monitoring
|
|
212
|
+
|
|
213
|
+
**Key Methods:**
|
|
214
|
+
|
|
215
|
+
- `create_plugin()`, `run_plugin()`
|
|
216
|
+
- `list_jobs()`, `update_job()`
|
|
217
|
+
- `create_storage()`, `health_check_agent()`
|
|
218
|
+
|
|
219
|
+
### Machine Learning
|
|
220
|
+
|
|
221
|
+
Use **MLClientMixin** for:
|
|
222
|
+
|
|
223
|
+
- Model management and deployment
|
|
224
|
+
- Ground truth data operations
|
|
225
|
+
- Model evaluation workflows
|
|
226
|
+
- Training data preparation
|
|
227
|
+
|
|
228
|
+
**Key Methods:**
|
|
229
|
+
|
|
230
|
+
- `create_model()`, `list_models()`
|
|
231
|
+
- `list_ground_truth_events()`, `get_ground_truth_version()`
|
|
232
|
+
|
|
233
|
+
### Core Operations
|
|
234
|
+
|
|
235
|
+
Use **CoreClientMixin** for:
|
|
236
|
+
|
|
237
|
+
- Large file uploads
|
|
238
|
+
- Chunked upload operations
|
|
239
|
+
- File integrity verification
|
|
240
|
+
|
|
241
|
+
**Key Methods:**
|
|
242
|
+
|
|
243
|
+
- `create_chunked_upload()`
|
|
244
|
+
|
|
245
|
+
## Complete Workflow Examples
|
|
246
|
+
|
|
247
|
+
### End-to-End Data Processing
|
|
248
|
+
|
|
249
|
+
```python
|
|
250
|
+
def complete_data_workflow():
|
|
251
|
+
client = BackendClient(
|
|
252
|
+
base_url="https://api.synapse.sh",
|
|
253
|
+
api_token="your-token"
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
# 1. Data ingestion
|
|
257
|
+
collection = client.get_data_collection(123)
|
|
258
|
+
data_file = client.create_data_file(Path('/data/image.jpg'))
|
|
259
|
+
|
|
260
|
+
# 2. Task creation
|
|
261
|
+
tasks = client.create_tasks([
|
|
262
|
+
{'project': 123, 'data_unit': data_file['data_unit_id']}
|
|
263
|
+
])
|
|
264
|
+
|
|
265
|
+
# 3. Assignment management
|
|
266
|
+
assignments = client.list_assignments(params={'project': 123})
|
|
267
|
+
|
|
268
|
+
# 4. Model operations
|
|
269
|
+
models = client.list_models(params={'project': 123})
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
'data_file': data_file,
|
|
273
|
+
'tasks': tasks,
|
|
274
|
+
'assignments': assignments,
|
|
275
|
+
'models': models
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Plugin Development and Deployment
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
def plugin_deployment_workflow():
|
|
283
|
+
client = BackendClient(
|
|
284
|
+
base_url="https://api.synapse.sh",
|
|
285
|
+
api_token="your-token"
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
# 1. Create plugin
|
|
289
|
+
plugin = client.create_plugin({
|
|
290
|
+
'name': 'My Plugin',
|
|
291
|
+
'description': 'Custom processing plugin'
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
# 2. Create release
|
|
295
|
+
with open('plugin.zip', 'rb') as f:
|
|
296
|
+
release = client.create_plugin_release({
|
|
297
|
+
'plugin': plugin['id'],
|
|
298
|
+
'version': '1.0.0',
|
|
299
|
+
'file': f
|
|
300
|
+
})
|
|
301
|
+
|
|
302
|
+
# 3. Execute plugin
|
|
303
|
+
job = client.run_plugin(plugin['id'], {
|
|
304
|
+
'parameters': {'threshold': 0.8}
|
|
305
|
+
})
|
|
306
|
+
|
|
307
|
+
# 4. Monitor execution
|
|
308
|
+
job_status = client.get_job(job['job_id'])
|
|
309
|
+
|
|
310
|
+
return {
|
|
311
|
+
'plugin': plugin,
|
|
312
|
+
'release': release,
|
|
313
|
+
'job': job_status
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Best Practices
|
|
318
|
+
|
|
319
|
+
### Performance Optimization
|
|
320
|
+
|
|
321
|
+
- Use `list_all=True` for complete datasets to handle pagination automatically
|
|
322
|
+
- Use chunked upload for files larger than 50MB
|
|
323
|
+
- Implement retry logic for critical operations
|
|
324
|
+
- Use batch operations when available
|
|
325
|
+
|
|
326
|
+
### Error Handling
|
|
327
|
+
|
|
328
|
+
- Always wrap API calls in try-catch blocks
|
|
329
|
+
- Check for specific error codes (404, 403, 429, 500)
|
|
330
|
+
- Implement exponential backoff for rate limiting
|
|
331
|
+
- Log errors with sufficient context
|
|
332
|
+
|
|
333
|
+
### Resource Management
|
|
334
|
+
|
|
335
|
+
- Close file handles promptly
|
|
336
|
+
- Use context managers for file operations
|
|
337
|
+
- Monitor memory usage with large uploads
|
|
338
|
+
- Clean up temporary resources
|
|
339
|
+
|
|
340
|
+
### Security
|
|
341
|
+
|
|
342
|
+
- Store API tokens securely (environment variables)
|
|
343
|
+
- Use HTTPS endpoints only
|
|
344
|
+
- Validate file paths and inputs
|
|
345
|
+
- Implement proper access controls
|
|
346
|
+
|
|
347
|
+
## Migration Guide
|
|
348
|
+
|
|
349
|
+
When migrating from older SDK versions:
|
|
350
|
+
|
|
351
|
+
1. **Update imports**: New mixin structure may require import updates
|
|
352
|
+
2. **Check method signatures**: Some methods may have updated parameters
|
|
353
|
+
3. **Error handling**: Error types and status codes may have changed
|
|
354
|
+
4. **Configuration**: Authentication methods may have been enhanced
|
|
355
|
+
|
|
356
|
+
## Troubleshooting
|
|
357
|
+
|
|
358
|
+
### Common Issues
|
|
359
|
+
|
|
360
|
+
**Authentication Errors (401/403)**
|
|
361
|
+
|
|
362
|
+
- Verify API token is correct and not expired
|
|
363
|
+
- Check token permissions for the requested operations
|
|
364
|
+
- Ensure correct base URL
|
|
365
|
+
|
|
366
|
+
**Rate Limiting (429)**
|
|
367
|
+
|
|
368
|
+
- Implement exponential backoff
|
|
369
|
+
- Reduce request frequency
|
|
370
|
+
- Use batch operations when available
|
|
371
|
+
|
|
372
|
+
**File Upload Failures**
|
|
373
|
+
|
|
374
|
+
- Check file size limits
|
|
375
|
+
- Verify file permissions
|
|
376
|
+
- Use chunked upload for large files
|
|
377
|
+
- Check network connectivity
|
|
378
|
+
|
|
379
|
+
**Connection Timeouts**
|
|
380
|
+
|
|
381
|
+
- Increase timeout settings
|
|
382
|
+
- Check network stability
|
|
383
|
+
- Verify server availability
|
|
384
|
+
|
|
385
|
+
## Support
|
|
386
|
+
|
|
387
|
+
For additional support:
|
|
388
|
+
|
|
389
|
+
- Check the [troubleshooting guide](../../troubleshooting.md)
|
|
390
|
+
- Review [examples](../../examples/index.md)
|
|
391
|
+
- Consult the [FAQ](../../faq.md)
|