synapse-sdk 1.0.0a35__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 +308 -5
- synapse_sdk/cli/alias/utils.py +1 -1
- 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/publish.py +23 -15
- 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 +28 -12
- synapse_sdk/clients/backend/annotation.py +9 -1
- synapse_sdk/clients/backend/core.py +31 -4
- synapse_sdk/clients/backend/data_collection.py +186 -0
- synapse_sdk/clients/backend/hitl.py +1 -1
- synapse_sdk/clients/backend/integration.py +4 -3
- synapse_sdk/clients/backend/ml.py +1 -1
- synapse_sdk/clients/backend/models.py +35 -1
- synapse_sdk/clients/base.py +309 -36
- synapse_sdk/clients/ray/serve.py +2 -0
- synapse_sdk/devtools/__init__.py +0 -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 +65 -7
- synapse_sdk/plugins/README.md +1340 -0
- synapse_sdk/plugins/categories/base.py +73 -11
- 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.py → export/utils.py} +47 -82
- synapse_sdk/plugins/categories/export/templates/config.yaml +19 -1
- synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +390 -0
- synapse_sdk/plugins/categories/export/templates/plugin/export.py +153 -129
- synapse_sdk/plugins/categories/neural_net/actions/deployment.py +9 -62
- synapse_sdk/plugins/categories/neural_net/actions/train.py +1062 -32
- synapse_sdk/plugins/categories/neural_net/actions/tune.py +534 -0
- synapse_sdk/plugins/categories/neural_net/templates/config.yaml +27 -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/pre_annotation/actions/pre_annotation/action.py +10 -0
- 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/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 +29 -2
- synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +294 -0
- synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +88 -30
- synapse_sdk/plugins/models.py +122 -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/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.py → utils/legacy.py} +26 -46
- 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/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 → file.py.backup} +84 -2
- synapse_sdk/utils/http.py +138 -0
- synapse_sdk/utils/network.py +293 -0
- synapse_sdk/utils/storage/__init__.py +36 -2
- synapse_sdk/utils/storage/providers/__init__.py +141 -0
- synapse_sdk/utils/storage/providers/file_system.py +134 -0
- synapse_sdk/utils/storage/providers/http.py +190 -0
- synapse_sdk/utils/storage/providers/s3.py +54 -6
- synapse_sdk/utils/storage/providers/sftp.py +31 -0
- synapse_sdk/utils/storage/registry.py +6 -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.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/WHEEL +1 -1
- synapse_sdk/clients/backend/dataset.py +0 -102
- synapse_sdk/plugins/categories/upload/actions/upload.py +0 -293
- synapse_sdk-1.0.0a35.dist-info/METADATA +0 -47
- synapse_sdk-1.0.0a35.dist-info/RECORD +0 -137
- {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/licenses/LICENSE +0 -0
- {synapse_sdk-1.0.0a35.dist-info → synapse_sdk-2025.11.7.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
{
|
|
2
|
+
"theme.ErrorPageContent.title": {
|
|
3
|
+
"message": "This page crashed.",
|
|
4
|
+
"description": "The title of the fallback page when the page crashed"
|
|
5
|
+
},
|
|
6
|
+
"theme.BackToTopButton.buttonAriaLabel": {
|
|
7
|
+
"message": "Scroll back to top",
|
|
8
|
+
"description": "The ARIA label for the back to top button"
|
|
9
|
+
},
|
|
10
|
+
"theme.blog.archive.title": {
|
|
11
|
+
"message": "Archive",
|
|
12
|
+
"description": "The page & hero title of the blog archive page"
|
|
13
|
+
},
|
|
14
|
+
"theme.blog.archive.description": {
|
|
15
|
+
"message": "Archive",
|
|
16
|
+
"description": "The page & hero description of the blog archive page"
|
|
17
|
+
},
|
|
18
|
+
"theme.blog.paginator.navAriaLabel": {
|
|
19
|
+
"message": "Blog list page navigation",
|
|
20
|
+
"description": "The ARIA label for the blog pagination"
|
|
21
|
+
},
|
|
22
|
+
"theme.blog.paginator.newerEntries": {
|
|
23
|
+
"message": "Newer entries",
|
|
24
|
+
"description": "The label used to navigate to the newer blog posts page (previous page)"
|
|
25
|
+
},
|
|
26
|
+
"theme.blog.paginator.olderEntries": {
|
|
27
|
+
"message": "Older entries",
|
|
28
|
+
"description": "The label used to navigate to the older blog posts page (next page)"
|
|
29
|
+
},
|
|
30
|
+
"theme.blog.post.paginator.navAriaLabel": {
|
|
31
|
+
"message": "Blog post page navigation",
|
|
32
|
+
"description": "The ARIA label for the blog posts pagination"
|
|
33
|
+
},
|
|
34
|
+
"theme.blog.post.paginator.newerPost": {
|
|
35
|
+
"message": "Newer post",
|
|
36
|
+
"description": "The blog post button label to navigate to the newer/previous post"
|
|
37
|
+
},
|
|
38
|
+
"theme.blog.post.paginator.olderPost": {
|
|
39
|
+
"message": "Older post",
|
|
40
|
+
"description": "The blog post button label to navigate to the older/next post"
|
|
41
|
+
},
|
|
42
|
+
"theme.tags.tagsPageLink": {
|
|
43
|
+
"message": "View all tags",
|
|
44
|
+
"description": "The label of the link targeting the tag list page"
|
|
45
|
+
},
|
|
46
|
+
"theme.colorToggle.ariaLabel.mode.system": {
|
|
47
|
+
"message": "system mode",
|
|
48
|
+
"description": "The name for the system color mode"
|
|
49
|
+
},
|
|
50
|
+
"theme.colorToggle.ariaLabel.mode.light": {
|
|
51
|
+
"message": "light mode",
|
|
52
|
+
"description": "The name for the light color mode"
|
|
53
|
+
},
|
|
54
|
+
"theme.colorToggle.ariaLabel.mode.dark": {
|
|
55
|
+
"message": "dark mode",
|
|
56
|
+
"description": "The name for the dark color mode"
|
|
57
|
+
},
|
|
58
|
+
"theme.colorToggle.ariaLabel": {
|
|
59
|
+
"message": "Switch between dark and light mode (currently {mode})",
|
|
60
|
+
"description": "The ARIA label for the color mode toggle"
|
|
61
|
+
},
|
|
62
|
+
"theme.docs.breadcrumbs.navAriaLabel": {
|
|
63
|
+
"message": "Breadcrumbs",
|
|
64
|
+
"description": "The ARIA label for the breadcrumbs"
|
|
65
|
+
},
|
|
66
|
+
"theme.docs.DocCard.categoryDescription.plurals": {
|
|
67
|
+
"message": "1 item|{count} items",
|
|
68
|
+
"description": "The default description for a category card in the generated index about how many items this category includes"
|
|
69
|
+
},
|
|
70
|
+
"theme.docs.paginator.navAriaLabel": {
|
|
71
|
+
"message": "Docs pages",
|
|
72
|
+
"description": "The ARIA label for the docs pagination"
|
|
73
|
+
},
|
|
74
|
+
"theme.docs.paginator.previous": {
|
|
75
|
+
"message": "Previous",
|
|
76
|
+
"description": "The label used to navigate to the previous doc"
|
|
77
|
+
},
|
|
78
|
+
"theme.docs.paginator.next": {
|
|
79
|
+
"message": "Next",
|
|
80
|
+
"description": "The label used to navigate to the next doc"
|
|
81
|
+
},
|
|
82
|
+
"theme.docs.tagDocListPageTitle.nDocsTagged": {
|
|
83
|
+
"message": "One doc tagged|{count} docs tagged",
|
|
84
|
+
"description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
|
85
|
+
},
|
|
86
|
+
"theme.docs.tagDocListPageTitle": {
|
|
87
|
+
"message": "{nDocsTagged} with \"{tagName}\"",
|
|
88
|
+
"description": "The title of the page for a docs tag"
|
|
89
|
+
},
|
|
90
|
+
"theme.docs.versionBadge.label": {
|
|
91
|
+
"message": "Version: {versionLabel}"
|
|
92
|
+
},
|
|
93
|
+
"theme.docs.versions.unreleasedVersionLabel": {
|
|
94
|
+
"message": "This is unreleased documentation for {siteTitle} {versionLabel} version.",
|
|
95
|
+
"description": "The label used to tell the user that he's browsing an unreleased doc version"
|
|
96
|
+
},
|
|
97
|
+
"theme.docs.versions.unmaintainedVersionLabel": {
|
|
98
|
+
"message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.",
|
|
99
|
+
"description": "The label used to tell the user that he's browsing an unmaintained doc version"
|
|
100
|
+
},
|
|
101
|
+
"theme.docs.versions.latestVersionSuggestionLabel": {
|
|
102
|
+
"message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).",
|
|
103
|
+
"description": "The label used to tell the user to check the latest version"
|
|
104
|
+
},
|
|
105
|
+
"theme.docs.versions.latestVersionLinkLabel": {
|
|
106
|
+
"message": "latest version",
|
|
107
|
+
"description": "The label used for the latest version suggestion link label"
|
|
108
|
+
},
|
|
109
|
+
"theme.common.editThisPage": {
|
|
110
|
+
"message": "Edit this page",
|
|
111
|
+
"description": "The link label to edit the current page"
|
|
112
|
+
},
|
|
113
|
+
"theme.common.headingLinkTitle": {
|
|
114
|
+
"message": "Direct link to {heading}",
|
|
115
|
+
"description": "Title for link to heading"
|
|
116
|
+
},
|
|
117
|
+
"theme.lastUpdated.atDate": {
|
|
118
|
+
"message": " on {date}",
|
|
119
|
+
"description": "The words used to describe on which date a page has been last updated"
|
|
120
|
+
},
|
|
121
|
+
"theme.lastUpdated.byUser": {
|
|
122
|
+
"message": " by {user}",
|
|
123
|
+
"description": "The words used to describe by who the page has been last updated"
|
|
124
|
+
},
|
|
125
|
+
"theme.lastUpdated.lastUpdatedAtBy": {
|
|
126
|
+
"message": "Last updated{atDate}{byUser}",
|
|
127
|
+
"description": "The sentence used to display when a page has been last updated, and by who"
|
|
128
|
+
},
|
|
129
|
+
"theme.navbar.mobileVersionsDropdown.label": {
|
|
130
|
+
"message": "Versions",
|
|
131
|
+
"description": "The label for the navbar versions dropdown on mobile view"
|
|
132
|
+
},
|
|
133
|
+
"theme.NotFound.title": {
|
|
134
|
+
"message": "Page Not Found",
|
|
135
|
+
"description": "The title of the 404 page"
|
|
136
|
+
},
|
|
137
|
+
"theme.tags.tagsListLabel": {
|
|
138
|
+
"message": "Tags:",
|
|
139
|
+
"description": "The label alongside a tag list"
|
|
140
|
+
},
|
|
141
|
+
"theme.AnnouncementBar.closeButtonAriaLabel": {
|
|
142
|
+
"message": "Close",
|
|
143
|
+
"description": "The ARIA label for close button of announcement bar"
|
|
144
|
+
},
|
|
145
|
+
"theme.admonition.caution": {
|
|
146
|
+
"message": "caution",
|
|
147
|
+
"description": "The default label used for the Caution admonition (:::caution)"
|
|
148
|
+
},
|
|
149
|
+
"theme.admonition.danger": {
|
|
150
|
+
"message": "danger",
|
|
151
|
+
"description": "The default label used for the Danger admonition (:::danger)"
|
|
152
|
+
},
|
|
153
|
+
"theme.admonition.info": {
|
|
154
|
+
"message": "info",
|
|
155
|
+
"description": "The default label used for the Info admonition (:::info)"
|
|
156
|
+
},
|
|
157
|
+
"theme.admonition.note": {
|
|
158
|
+
"message": "note",
|
|
159
|
+
"description": "The default label used for the Note admonition (:::note)"
|
|
160
|
+
},
|
|
161
|
+
"theme.admonition.tip": {
|
|
162
|
+
"message": "tip",
|
|
163
|
+
"description": "The default label used for the Tip admonition (:::tip)"
|
|
164
|
+
},
|
|
165
|
+
"theme.admonition.warning": {
|
|
166
|
+
"message": "warning",
|
|
167
|
+
"description": "The default label used for the Warning admonition (:::warning)"
|
|
168
|
+
},
|
|
169
|
+
"theme.blog.sidebar.navAriaLabel": {
|
|
170
|
+
"message": "Blog recent posts navigation",
|
|
171
|
+
"description": "The ARIA label for recent posts in the blog sidebar"
|
|
172
|
+
},
|
|
173
|
+
"theme.DocSidebarItem.expandCategoryAriaLabel": {
|
|
174
|
+
"message": "Expand sidebar category '{label}'",
|
|
175
|
+
"description": "The ARIA label to expand the sidebar category"
|
|
176
|
+
},
|
|
177
|
+
"theme.DocSidebarItem.collapseCategoryAriaLabel": {
|
|
178
|
+
"message": "Collapse sidebar category '{label}'",
|
|
179
|
+
"description": "The ARIA label to collapse the sidebar category"
|
|
180
|
+
},
|
|
181
|
+
"theme.NavBar.navAriaLabel": {
|
|
182
|
+
"message": "Main",
|
|
183
|
+
"description": "The ARIA label for the main navigation"
|
|
184
|
+
},
|
|
185
|
+
"theme.navbar.mobileLanguageDropdown.label": {
|
|
186
|
+
"message": "Languages",
|
|
187
|
+
"description": "The label for the mobile language switcher dropdown"
|
|
188
|
+
},
|
|
189
|
+
"theme.NotFound.p1": {
|
|
190
|
+
"message": "We could not find what you were looking for.",
|
|
191
|
+
"description": "The first paragraph of the 404 page"
|
|
192
|
+
},
|
|
193
|
+
"theme.NotFound.p2": {
|
|
194
|
+
"message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.",
|
|
195
|
+
"description": "The 2nd paragraph of the 404 page"
|
|
196
|
+
},
|
|
197
|
+
"theme.TOCCollapsible.toggleButtonLabel": {
|
|
198
|
+
"message": "On this page",
|
|
199
|
+
"description": "The label used by the button on the collapsible TOC component"
|
|
200
|
+
},
|
|
201
|
+
"theme.blog.post.readMore": {
|
|
202
|
+
"message": "Read more",
|
|
203
|
+
"description": "The label used in blog post item excerpts to link to full blog posts"
|
|
204
|
+
},
|
|
205
|
+
"theme.blog.post.readMoreLabel": {
|
|
206
|
+
"message": "Read more about {title}",
|
|
207
|
+
"description": "The ARIA label for the link to full blog posts from excerpts"
|
|
208
|
+
},
|
|
209
|
+
"theme.blog.post.readingTime.plurals": {
|
|
210
|
+
"message": "One min read|{readingTime} min read",
|
|
211
|
+
"description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
|
212
|
+
},
|
|
213
|
+
"theme.CodeBlock.copy": {
|
|
214
|
+
"message": "Copy",
|
|
215
|
+
"description": "The copy button label on code blocks"
|
|
216
|
+
},
|
|
217
|
+
"theme.CodeBlock.copied": {
|
|
218
|
+
"message": "Copied",
|
|
219
|
+
"description": "The copied button label on code blocks"
|
|
220
|
+
},
|
|
221
|
+
"theme.CodeBlock.copyButtonAriaLabel": {
|
|
222
|
+
"message": "Copy code to clipboard",
|
|
223
|
+
"description": "The ARIA label for copy code blocks button"
|
|
224
|
+
},
|
|
225
|
+
"theme.CodeBlock.wordWrapToggle": {
|
|
226
|
+
"message": "Toggle word wrap",
|
|
227
|
+
"description": "The title attribute for toggle word wrapping button of code block lines"
|
|
228
|
+
},
|
|
229
|
+
"theme.docs.breadcrumbs.home": {
|
|
230
|
+
"message": "Home page",
|
|
231
|
+
"description": "The ARIA label for the home page in the breadcrumbs"
|
|
232
|
+
},
|
|
233
|
+
"theme.docs.sidebar.collapseButtonTitle": {
|
|
234
|
+
"message": "Collapse sidebar",
|
|
235
|
+
"description": "The title attribute for collapse button of doc sidebar"
|
|
236
|
+
},
|
|
237
|
+
"theme.docs.sidebar.collapseButtonAriaLabel": {
|
|
238
|
+
"message": "Collapse sidebar",
|
|
239
|
+
"description": "The title attribute for collapse button of doc sidebar"
|
|
240
|
+
},
|
|
241
|
+
"theme.docs.sidebar.navAriaLabel": {
|
|
242
|
+
"message": "Docs sidebar",
|
|
243
|
+
"description": "The ARIA label for the sidebar navigation"
|
|
244
|
+
},
|
|
245
|
+
"theme.docs.sidebar.closeSidebarButtonAriaLabel": {
|
|
246
|
+
"message": "Close navigation bar",
|
|
247
|
+
"description": "The ARIA label for close button of mobile sidebar"
|
|
248
|
+
},
|
|
249
|
+
"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
|
|
250
|
+
"message": "← Back to main menu",
|
|
251
|
+
"description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"
|
|
252
|
+
},
|
|
253
|
+
"theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
|
|
254
|
+
"message": "Toggle navigation bar",
|
|
255
|
+
"description": "The ARIA label for hamburger menu button of mobile navigation"
|
|
256
|
+
},
|
|
257
|
+
"theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": {
|
|
258
|
+
"message": "Expand the dropdown",
|
|
259
|
+
"description": "The ARIA label of the button to expand the mobile dropdown navbar item"
|
|
260
|
+
},
|
|
261
|
+
"theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": {
|
|
262
|
+
"message": "Collapse the dropdown",
|
|
263
|
+
"description": "The ARIA label of the button to collapse the mobile dropdown navbar item"
|
|
264
|
+
},
|
|
265
|
+
"theme.docs.sidebar.expandButtonTitle": {
|
|
266
|
+
"message": "Expand sidebar",
|
|
267
|
+
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
|
268
|
+
},
|
|
269
|
+
"theme.docs.sidebar.expandButtonAriaLabel": {
|
|
270
|
+
"message": "Expand sidebar",
|
|
271
|
+
"description": "The ARIA label and title attribute for expand button of doc sidebar"
|
|
272
|
+
},
|
|
273
|
+
"theme.blog.post.plurals": {
|
|
274
|
+
"message": "One post|{count} posts",
|
|
275
|
+
"description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
|
|
276
|
+
},
|
|
277
|
+
"theme.blog.tagTitle": {
|
|
278
|
+
"message": "{nPosts} tagged with \"{tagName}\"",
|
|
279
|
+
"description": "The title of the page for a blog tag"
|
|
280
|
+
},
|
|
281
|
+
"theme.blog.author.pageTitle": {
|
|
282
|
+
"message": "{authorName} - {nPosts}",
|
|
283
|
+
"description": "The title of the page for a blog author"
|
|
284
|
+
},
|
|
285
|
+
"theme.blog.authorsList.pageTitle": {
|
|
286
|
+
"message": "Authors",
|
|
287
|
+
"description": "The title of the authors page"
|
|
288
|
+
},
|
|
289
|
+
"theme.blog.authorsList.viewAll": {
|
|
290
|
+
"message": "View all authors",
|
|
291
|
+
"description": "The label of the link targeting the blog authors page"
|
|
292
|
+
},
|
|
293
|
+
"theme.blog.author.noPosts": {
|
|
294
|
+
"message": "This author has not written any posts yet.",
|
|
295
|
+
"description": "The text for authors with 0 blog post"
|
|
296
|
+
},
|
|
297
|
+
"theme.contentVisibility.unlistedBanner.title": {
|
|
298
|
+
"message": "Unlisted page",
|
|
299
|
+
"description": "The unlisted content banner title"
|
|
300
|
+
},
|
|
301
|
+
"theme.contentVisibility.unlistedBanner.message": {
|
|
302
|
+
"message": "This page is unlisted. Search engines will not index it, and only users having a direct link can access it.",
|
|
303
|
+
"description": "The unlisted content banner message"
|
|
304
|
+
},
|
|
305
|
+
"theme.contentVisibility.draftBanner.title": {
|
|
306
|
+
"message": "Draft page",
|
|
307
|
+
"description": "The draft content banner title"
|
|
308
|
+
},
|
|
309
|
+
"theme.contentVisibility.draftBanner.message": {
|
|
310
|
+
"message": "This page is a draft. It will only be visible in dev and be excluded from the production build.",
|
|
311
|
+
"description": "The draft content banner message"
|
|
312
|
+
},
|
|
313
|
+
"theme.ErrorPageContent.tryAgain": {
|
|
314
|
+
"message": "Try again",
|
|
315
|
+
"description": "The label of the button to try again rendering when the React error boundary captures an error"
|
|
316
|
+
},
|
|
317
|
+
"theme.common.skipToMainContent": {
|
|
318
|
+
"message": "Skip to main content",
|
|
319
|
+
"description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"
|
|
320
|
+
},
|
|
321
|
+
"theme.tags.tagsPageTitle": {
|
|
322
|
+
"message": "Tags",
|
|
323
|
+
"description": "The title of the tag list page"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: agent
|
|
3
|
+
title: AgentClient
|
|
4
|
+
sidebar_position: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AgentClient
|
|
8
|
+
|
|
9
|
+
Agent 전용 작업 및 분산 실행을 위한 클라이언트입니다.
|
|
10
|
+
|
|
11
|
+
## 개요
|
|
12
|
+
|
|
13
|
+
`AgentClient`는 플러그인 실행, 작업 관리, 분산 컴퓨팅 통합을 포함한 agent 작업에 대한 액세스를 제공합니다.
|
|
14
|
+
|
|
15
|
+
## Constructor
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
AgentClient(
|
|
19
|
+
base_url: str,
|
|
20
|
+
agent_token: str = None,
|
|
21
|
+
timeout: dict = None
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 사용법
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
from synapse_sdk.clients.agent import AgentClient
|
|
29
|
+
|
|
30
|
+
client = AgentClient(
|
|
31
|
+
base_url="https://api.synapse.sh",
|
|
32
|
+
agent_token="your-agent-token"
|
|
33
|
+
)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Methods
|
|
37
|
+
|
|
38
|
+
곧 제공 예정 - AgentClient 메서드에 대한 상세 API 문서.
|
|
39
|
+
|
|
40
|
+
## 참고
|
|
41
|
+
|
|
42
|
+
- [BackendClient](./backend.md) - Backend 작업을 위한 클라이언트
|
|
43
|
+
- [BaseClient](./base.md) - 기본 클라이언트 구현
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: annotation-mixin
|
|
3
|
+
title: AnnotationClientMixin
|
|
4
|
+
sidebar_position: 11
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# AnnotationClientMixin
|
|
8
|
+
|
|
9
|
+
Synapse 백엔드를 위한 어노테이션 및 태스크 관리 작업을 제공합니다.
|
|
10
|
+
|
|
11
|
+
## 개요
|
|
12
|
+
|
|
13
|
+
`AnnotationClientMixin`은 태스크, 어노테이션, 프로젝트, 태스크 태깅과 관련된 모든 작업을 처리합니다. 이 믹스인은 `BackendClient`에 자동으로 포함되며 어노테이션 워크플로를 위한 메서드를 제공합니다.
|
|
14
|
+
|
|
15
|
+
## 프로젝트 작업
|
|
16
|
+
|
|
17
|
+
### `get_project(pk)`
|
|
18
|
+
|
|
19
|
+
특정 프로젝트에 대한 상세 정보를 가져옵니다.
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
project = client.get_project(123)
|
|
23
|
+
print(f"프로젝트: {project['name']}")
|
|
24
|
+
print(f"설명: {project['description']}")
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**매개변수:**
|
|
28
|
+
|
|
29
|
+
- `pk` (int): 프로젝트 ID
|
|
30
|
+
|
|
31
|
+
**반환값:**
|
|
32
|
+
|
|
33
|
+
- `dict`: 구성, 메타데이터, 설정을 포함한 프로젝트 상세정보
|
|
34
|
+
|
|
35
|
+
## 태스크 작업
|
|
36
|
+
|
|
37
|
+
### `get_task(pk, params)`
|
|
38
|
+
|
|
39
|
+
특정 태스크에 대한 상세 정보를 가져옵니다.
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
# 기본 태스크 상세정보
|
|
43
|
+
task = client.get_task(456)
|
|
44
|
+
|
|
45
|
+
# 확장된 데이터 유닛이 포함된 태스크
|
|
46
|
+
task = client.get_task(456, params={'expand': 'data_unit'})
|
|
47
|
+
|
|
48
|
+
# 여러 확장이 포함된 태스크
|
|
49
|
+
task = client.get_task(456, params={
|
|
50
|
+
'expand': ['data_unit', 'assignment', 'annotations']
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**매개변수:**
|
|
55
|
+
|
|
56
|
+
- `pk` (int): 태스크 ID
|
|
57
|
+
- `params` (dict): 필터링 및 확장을 위한 쿼리 매개변수
|
|
58
|
+
|
|
59
|
+
**일반적인 params:**
|
|
60
|
+
|
|
61
|
+
- `expand`: 포함할 관련 객체의 목록 또는 문자열
|
|
62
|
+
- `include_annotations`: 어노테이션 데이터 포함 여부
|
|
63
|
+
|
|
64
|
+
### `annotate_task_data(pk, data)`
|
|
65
|
+
|
|
66
|
+
태스크에 대한 어노테이션 데이터를 제출합니다.
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
# 바운딩 박스 어노테이션 제출
|
|
70
|
+
annotation_data = {
|
|
71
|
+
'annotations': [
|
|
72
|
+
{
|
|
73
|
+
'type': 'bbox',
|
|
74
|
+
'coordinates': [10, 10, 100, 100],
|
|
75
|
+
'label': 'person',
|
|
76
|
+
'confidence': 0.95
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
'type': 'polygon',
|
|
80
|
+
'points': [[0, 0], [50, 0], [50, 50], [0, 50]],
|
|
81
|
+
'label': 'vehicle'
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
'metadata': {
|
|
85
|
+
'annotator_id': 'user123',
|
|
86
|
+
'timestamp': '2023-10-01T12:00:00Z'
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
result = client.annotate_task_data(456, annotation_data)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**매개변수:**
|
|
94
|
+
|
|
95
|
+
- `pk` (int): 태스크 ID
|
|
96
|
+
- `data` (dict): 어노테이션 데이터 구조
|
|
97
|
+
|
|
98
|
+
**반환값:**
|
|
99
|
+
|
|
100
|
+
- `dict`: 제출된 어노테이션이 포함된 업데이트된 태스크
|
|
101
|
+
|
|
102
|
+
### `list_tasks(params=None, url_conversion=None, list_all=False)`
|
|
103
|
+
|
|
104
|
+
필터링 및 페이지네이션 지원과 함께 태스크를 나열합니다.
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
# 특정 프로젝트의 태스크 나열
|
|
108
|
+
tasks = client.list_tasks(params={'project': 123})
|
|
109
|
+
|
|
110
|
+
# 상태 필터가 적용된 태스크 나열
|
|
111
|
+
tasks = client.list_tasks(params={
|
|
112
|
+
'project': 123,
|
|
113
|
+
'status': 'pending'
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
# 모든 태스크 가져오기 (페이지네이션 자동 처리)
|
|
117
|
+
all_tasks = client.list_tasks(list_all=True)
|
|
118
|
+
|
|
119
|
+
# 파일에 대한 사용자 정의 URL 변환과 함께 태스크 나열
|
|
120
|
+
tasks = client.list_tasks(
|
|
121
|
+
params={'project': 123},
|
|
122
|
+
url_conversion={'files': lambda url: f"https://cdn.example.com{url}"}
|
|
123
|
+
)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**매개변수:**
|
|
127
|
+
|
|
128
|
+
- `params` (dict, 선택사항): 필터링 매개변수
|
|
129
|
+
- `url_conversion` (dict, 선택사항): 파일 필드에 대한 사용자 정의 URL 변환
|
|
130
|
+
- `list_all` (bool): True인 경우, 모든 결과를 가져오기 위해 페이지네이션을 자동 처리
|
|
131
|
+
|
|
132
|
+
**일반적인 필터링 params:**
|
|
133
|
+
|
|
134
|
+
- `project`: 프로젝트 ID로 필터링
|
|
135
|
+
- `status`: 태스크 상태로 필터링 (`pending`, `in_progress`, `completed`)
|
|
136
|
+
- `assignee`: 할당된 사용자 ID로 필터링
|
|
137
|
+
- `created_after`: 생성 날짜로 필터링
|
|
138
|
+
- `search`: 태스크 내용에서 텍스트 검색
|
|
139
|
+
|
|
140
|
+
**반환값:**
|
|
141
|
+
|
|
142
|
+
- `tuple`: `list_all=False`인 경우 (tasks_list, total_count)
|
|
143
|
+
- `list`: `list_all=True`인 경우 모든 태스크
|
|
144
|
+
|
|
145
|
+
### `create_tasks(data)`
|
|
146
|
+
|
|
147
|
+
하나 이상의 새 태스크를 생성합니다.
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
# 단일 태스크 생성
|
|
151
|
+
new_task = client.create_tasks({
|
|
152
|
+
'project': 123,
|
|
153
|
+
'data_unit': 789,
|
|
154
|
+
'priority': 'high',
|
|
155
|
+
'metadata': {'batch': 'batch_001'}
|
|
156
|
+
})
|
|
157
|
+
|
|
158
|
+
# 여러 태스크 생성
|
|
159
|
+
new_tasks = client.create_tasks([
|
|
160
|
+
{'project': 123, 'data_unit': 789},
|
|
161
|
+
{'project': 123, 'data_unit': 790},
|
|
162
|
+
{'project': 123, 'data_unit': 791}
|
|
163
|
+
])
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**매개변수:**
|
|
167
|
+
|
|
168
|
+
- `data` (dict 또는 list): 태스크 데이터 또는 태스크 데이터 목록
|
|
169
|
+
|
|
170
|
+
**태스크 데이터 구조:**
|
|
171
|
+
|
|
172
|
+
- `project` (int, 필수): 프로젝트 ID
|
|
173
|
+
- `data_unit` (int, 필수): 데이터 유닛 ID
|
|
174
|
+
- `priority` (str, 선택사항): 태스크 우선순위 (`low`, `normal`, `high`)
|
|
175
|
+
- `assignee` (int, 선택사항): 태스크를 할당할 사용자 ID
|
|
176
|
+
- `metadata` (dict, 선택사항): 추가 태스크 메타데이터
|
|
177
|
+
|
|
178
|
+
**반환값:**
|
|
179
|
+
|
|
180
|
+
- `dict` 또는 `list`: 생성된 ID가 포함된 생성된 태스크
|
|
181
|
+
|
|
182
|
+
### `set_tags_tasks(data, params=None)`
|
|
183
|
+
|
|
184
|
+
여러 태스크에 일괄적으로 태그를 설정합니다.
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
# 여러 태스크에 태그 설정
|
|
188
|
+
client.set_tags_tasks({
|
|
189
|
+
'task_ids': [456, 457, 458],
|
|
190
|
+
'tag_ids': [1, 2, 3] # 적용할 태그 ID
|
|
191
|
+
})
|
|
192
|
+
|
|
193
|
+
# 추가 매개변수와 함께 태그 설정
|
|
194
|
+
client.set_tags_tasks(
|
|
195
|
+
{
|
|
196
|
+
'task_ids': [456, 457],
|
|
197
|
+
'tag_ids': [1, 2]
|
|
198
|
+
},
|
|
199
|
+
params={'replace': True} # 기존 태그 교체
|
|
200
|
+
)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**매개변수:**
|
|
204
|
+
|
|
205
|
+
- `data` (dict): 일괄 태깅 데이터
|
|
206
|
+
- `params` (dict, 선택사항): 추가 매개변수
|
|
207
|
+
|
|
208
|
+
**데이터 구조:**
|
|
209
|
+
|
|
210
|
+
- `task_ids` (list): 태그를 설정할 태스크 ID 목록
|
|
211
|
+
- `tag_ids` (list): 적용할 태그 ID 목록
|
|
212
|
+
|
|
213
|
+
**선택적 params:**
|
|
214
|
+
|
|
215
|
+
- `replace` (bool): True인 경우 기존 태그 교체, False인 경우 기존 태그에 추가
|
|
216
|
+
|
|
217
|
+
## 태스크 태그 작업
|
|
218
|
+
|
|
219
|
+
### `get_task_tag(pk)`
|
|
220
|
+
|
|
221
|
+
특정 태스크 태그에 대한 상세정보를 가져옵니다.
|
|
222
|
+
|
|
223
|
+
```python
|
|
224
|
+
tag = client.get_task_tag(123)
|
|
225
|
+
print(f"태그: {tag['name']} - {tag['description']}")
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**매개변수:**
|
|
229
|
+
|
|
230
|
+
- `pk` (int): 태그 ID
|
|
231
|
+
|
|
232
|
+
**반환값:**
|
|
233
|
+
|
|
234
|
+
- `dict`: 이름, 설명, 메타를 포함한 태그 상세정보
|
|
235
|
+
|
|
236
|
+
### `list_task_tags(params)`
|
|
237
|
+
|
|
238
|
+
필터링과 함께 사용 가능한 태스크 태그를 나열합니다.
|
|
239
|
+
|
|
240
|
+
```python
|
|
241
|
+
# 모든 태그 나열
|
|
242
|
+
tags = client.list_task_tags({})
|
|
243
|
+
|
|
244
|
+
# 특정 프로젝트의 태그 나열
|
|
245
|
+
project_tags = client.list_task_tags({
|
|
246
|
+
'project': 123
|
|
247
|
+
})
|
|
248
|
+
|
|
249
|
+
# 이름으로 태그 검색
|
|
250
|
+
search_tags = client.list_task_tags({
|
|
251
|
+
'search': 'quality'
|
|
252
|
+
})
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**매개변수:**
|
|
256
|
+
|
|
257
|
+
- `params` (dict): 필터링 매개변수
|
|
258
|
+
|
|
259
|
+
**일반적인 필터링 params:**
|
|
260
|
+
|
|
261
|
+
- `project`: 프로젝트 ID로 필터링
|
|
262
|
+
- `search`: 태그 이름에서 텍스트 검색
|
|
263
|
+
- `color`: 태그 색상으로 필터링
|
|
264
|
+
|
|
265
|
+
**반환값:**
|
|
266
|
+
|
|
267
|
+
- `tuple`: (tags_list, total_count)
|
|
268
|
+
|
|
269
|
+
## 오류 처리
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
from synapse_sdk.clients.exceptions import ClientError
|
|
273
|
+
|
|
274
|
+
try:
|
|
275
|
+
task = client.get_task(999999)
|
|
276
|
+
except ClientError as e:
|
|
277
|
+
if e.status_code == 404:
|
|
278
|
+
print("태스크를 찾을 수 없음")
|
|
279
|
+
elif e.status_code == 403:
|
|
280
|
+
print("권한이 거부됨")
|
|
281
|
+
else:
|
|
282
|
+
print(f"API 오류: {e}")
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## 참고
|
|
286
|
+
|
|
287
|
+
- [BackendClient](./backend.md) - 메인 백엔드 클라이언트
|
|
288
|
+
- [HITLClientMixin](./hitl-mixin.md) - Human-in-the-loop 작업
|
|
289
|
+
- [DataCollectionClientMixin](./data-collection-mixin.md) - 데이터 관리
|