synapse-sdk 1.0.0a66__tar.gz → 1.0.0a67__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.0a66 → synapse_sdk-1.0.0a67}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/__init__.py +30 -3
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/registry.py +1 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/SOURCES.txt +2 -1
- synapse_sdk-1.0.0a67/tests/utils/storage/test_provider_selection.py +225 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/.coverage +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/.gitignore +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/LICENSE +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/README.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/clients/agent.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/clients/backend.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/clients/base.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/index.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/plugins/categories.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/plugins/models.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/plugins/utils.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/utils/file.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/utils/storage.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/api/utils/types.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/categories.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/changelog.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/concepts/index.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/configuration.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/contributing.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/examples/index.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/faq.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/code.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/installation.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/introduction.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/quickstart.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/troubleshooting.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/_category_.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/congratulations.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/create-a-blog-post.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/create-a-document.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/create-a-page.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/deploy-your-site.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-basics/markdown-features.mdx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/_category_.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/img/localeDropdown.png +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/manage-docs-versions.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/translate-your-site.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/locale/en/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/locale/en/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/locale/ko/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/locale/ko/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/requirements.test.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/requirements.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/setup.cfg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/create.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/dataclass.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/default.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/delete.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/list.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/read.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/update.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/alias/utils.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/config.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/devtools.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/plugin/create.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/plugin/publish.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/cli/plugin/run.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/agent/core.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/agent/ray.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/core.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/data_collection.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/hitl.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/models.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/base.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/ray/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/ray/core.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/ray/serve.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/validators/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/validators/collections.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/config.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/.gitignore +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/README.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/package-lock.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/package.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/sidebars.ts +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/models.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/server.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/utils.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/.gitignore +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/README.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/dist/index.html +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/index.html +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/jsconfig.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/package-lock.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/package.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/pnpm-lock.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/App.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/App.module.css +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/Layout.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/LogViewer.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/MessageViewer.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/components/icons.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/index.css +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/index.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/logo.svg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/router.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/utils/api.js +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/views/HomeView.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/views/JobDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/src/views/PluginView.jsx +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/web/vite.config.js +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/i18n.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/base.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/enums.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/enums.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/exceptions.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/models.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/schema.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/plugins/utils.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/shared/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/shared/enums.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/types.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/converters/coco/to_dm.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/dataset.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/file.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/http.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/network.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/pydantic/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/pydantic/config.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/pydantic/errors.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/pydantic/validators.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/providers/http.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/providers/s3.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk.egg-info/top_level.txt +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/clients/test_backend_models.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/clients/test_base_client.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/clients/test_collection_validators.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/conftest.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/loggers/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/loggers/test_base_logger.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/test_cli.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/test_cli_integration.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/__init__,py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/conftest.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/__init__.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/test/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/json/dm_4.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/json/dm_5.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/json/dm_6.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/json/dm_7.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/original_files/dm_4.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/original_files/dm_5.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/original_files/dm_6.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/train/original_files/dm_7.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/valid/json/dm_8.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/valid/json/dm_9.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/valid/original_files/dm_8.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/categorized/valid/original_files/dm_9.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/fixtures/dm_schema.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/converters/test_coco_from_dm.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/tests/utils/test_debug.py +0 -0
- {synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/uv.lock +0 -0
|
@@ -14,13 +14,40 @@ def get_storage(connection_param: str | dict):
|
|
|
14
14
|
Returns:
|
|
15
15
|
BaseStorage: The storage class object with connection param.
|
|
16
16
|
"""
|
|
17
|
+
if connection_param is None:
|
|
18
|
+
raise ValueError(_('Connection parameter cannot be None'))
|
|
19
|
+
|
|
17
20
|
storage_scheme = None
|
|
18
21
|
if isinstance(connection_param, dict):
|
|
19
|
-
|
|
22
|
+
if not connection_param:
|
|
23
|
+
raise ValueError(_('Connection parameter dictionary cannot be empty'))
|
|
24
|
+
|
|
25
|
+
# Check if there's a URL field that should take priority
|
|
26
|
+
if 'url' in connection_param and connection_param['url']:
|
|
27
|
+
storage_scheme = urlparse(connection_param['url']).scheme
|
|
28
|
+
elif 'provider' in connection_param:
|
|
29
|
+
storage_scheme = connection_param['provider']
|
|
30
|
+
if not storage_scheme:
|
|
31
|
+
raise ValueError(_('Provider name cannot be empty'))
|
|
32
|
+
else:
|
|
33
|
+
raise ValueError(_('Dictionary must contain either "url" or "provider" field'))
|
|
34
|
+
elif isinstance(connection_param, str):
|
|
35
|
+
if not connection_param or connection_param.isspace():
|
|
36
|
+
raise ValueError(_('Connection parameter string cannot be empty'))
|
|
37
|
+
|
|
38
|
+
parsed_url = urlparse(connection_param)
|
|
39
|
+
storage_scheme = parsed_url.scheme
|
|
40
|
+
if not storage_scheme:
|
|
41
|
+
raise ValueError(_('Invalid URL format: no scheme found'))
|
|
20
42
|
else:
|
|
21
|
-
|
|
43
|
+
raise TypeError(_('Connection parameter must be a string or dictionary'))
|
|
44
|
+
|
|
45
|
+
if storage_scheme not in STORAGE_PROVIDERS:
|
|
46
|
+
supported_schemes = ', '.join(STORAGE_PROVIDERS.keys())
|
|
47
|
+
raise ValueError(
|
|
48
|
+
_('Storage provider "{}" not supported. Supported providers: {}').format(storage_scheme, supported_schemes)
|
|
49
|
+
)
|
|
22
50
|
|
|
23
|
-
assert storage_scheme in STORAGE_PROVIDERS.keys(), _('Storage provider not supported.')
|
|
24
51
|
return STORAGE_PROVIDERS[storage_scheme](connection_param)
|
|
25
52
|
|
|
26
53
|
|
|
@@ -304,4 +304,5 @@ tests/utils/converters/fixtures/data_types/image/not_categorized/json/dm_2.json
|
|
|
304
304
|
tests/utils/converters/fixtures/data_types/image/not_categorized/json/dm_3.json
|
|
305
305
|
tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_1.jpg
|
|
306
306
|
tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_2.jpg
|
|
307
|
-
tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_3.jpg
|
|
307
|
+
tests/utils/converters/fixtures/data_types/image/not_categorized/original_files/dm_3.jpg
|
|
308
|
+
tests/utils/storage/test_provider_selection.py
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"""Test storage provider selection based on URI schemes and provider names."""
|
|
2
|
+
|
|
3
|
+
from unittest.mock import patch
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
from synapse_sdk.utils.storage import get_storage
|
|
8
|
+
from synapse_sdk.utils.storage.providers import BaseStorage
|
|
9
|
+
from synapse_sdk.utils.storage.providers.gcp import GCPStorage
|
|
10
|
+
from synapse_sdk.utils.storage.providers.http import HTTPStorage
|
|
11
|
+
from synapse_sdk.utils.storage.providers.s3 import S3Storage
|
|
12
|
+
from synapse_sdk.utils.storage.providers.sftp import SFTPStorage
|
|
13
|
+
from synapse_sdk.utils.storage.registry import STORAGE_PROVIDERS
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TestStorageProviderSelection:
|
|
17
|
+
"""Test that storage providers are correctly selected based on URI schemes and names."""
|
|
18
|
+
|
|
19
|
+
def test_s3_scheme_selection(self):
|
|
20
|
+
"""Test that s3:// URIs select S3Storage provider."""
|
|
21
|
+
config = 's3://bucket/path'
|
|
22
|
+
storage = get_storage(config)
|
|
23
|
+
assert isinstance(storage, S3Storage)
|
|
24
|
+
|
|
25
|
+
def test_gcs_scheme_selection(self):
|
|
26
|
+
"""Test that gs:// URIs select GCPStorage provider."""
|
|
27
|
+
config = 'gs://bucket/path'
|
|
28
|
+
storage = get_storage(config)
|
|
29
|
+
assert isinstance(storage, GCPStorage)
|
|
30
|
+
|
|
31
|
+
def test_sftp_scheme_selection(self):
|
|
32
|
+
"""Test that sftp:// URIs select SFTPStorage provider."""
|
|
33
|
+
config = 'sftp://user:pass@host/path'
|
|
34
|
+
storage = get_storage(config)
|
|
35
|
+
assert isinstance(storage, SFTPStorage)
|
|
36
|
+
|
|
37
|
+
def test_http_scheme_selection(self):
|
|
38
|
+
"""Test that http:// URIs select HTTPStorage provider."""
|
|
39
|
+
config = 'http://example.com/api/files'
|
|
40
|
+
storage = get_storage(config)
|
|
41
|
+
assert isinstance(storage, HTTPStorage)
|
|
42
|
+
|
|
43
|
+
def test_https_scheme_selection(self):
|
|
44
|
+
"""Test that https:// URIs select HTTPStorage provider."""
|
|
45
|
+
config = 'https://example.com/api/files'
|
|
46
|
+
storage = get_storage(config)
|
|
47
|
+
assert isinstance(storage, HTTPStorage)
|
|
48
|
+
|
|
49
|
+
def test_provider_name_s3_selection(self):
|
|
50
|
+
"""Test that 's3' provider name selects S3Storage."""
|
|
51
|
+
config = {'provider': 's3', 'access_key': 'key', 'secret_key': 'secret', 'bucket': 'test'}
|
|
52
|
+
storage = get_storage(config)
|
|
53
|
+
assert isinstance(storage, S3Storage)
|
|
54
|
+
|
|
55
|
+
def test_provider_name_amazon_s3_selection(self):
|
|
56
|
+
"""Test that 'amazon_s3' provider name selects S3Storage."""
|
|
57
|
+
config = {'provider': 'amazon_s3', 'access_key': 'key', 'secret_key': 'secret', 'bucket': 'test'}
|
|
58
|
+
storage = get_storage(config)
|
|
59
|
+
assert isinstance(storage, S3Storage)
|
|
60
|
+
|
|
61
|
+
def test_provider_name_minio_selection(self):
|
|
62
|
+
"""Test that 'minio' provider name selects S3Storage."""
|
|
63
|
+
config = {'provider': 'minio', 'access_key': 'key', 'secret_key': 'secret', 'bucket': 'test'}
|
|
64
|
+
storage = get_storage(config)
|
|
65
|
+
assert isinstance(storage, S3Storage)
|
|
66
|
+
|
|
67
|
+
def test_provider_name_gcp_selection(self):
|
|
68
|
+
"""Test that 'gcp' provider name selects GCPStorage."""
|
|
69
|
+
config = {'provider': 'gcp', 'token': 'token', 'bucket': 'test'}
|
|
70
|
+
storage = get_storage(config)
|
|
71
|
+
assert isinstance(storage, GCPStorage)
|
|
72
|
+
|
|
73
|
+
def test_provider_name_sftp_selection(self):
|
|
74
|
+
"""Test that 'sftp' provider name selects SFTPStorage."""
|
|
75
|
+
config = {'provider': 'sftp', 'username': 'user', 'password': 'pass', 'host': 'host'}
|
|
76
|
+
storage = get_storage(config)
|
|
77
|
+
assert isinstance(storage, SFTPStorage)
|
|
78
|
+
|
|
79
|
+
def test_provider_name_http_selection(self):
|
|
80
|
+
"""Test that 'http' provider name selects HTTPStorage."""
|
|
81
|
+
config = {'provider': 'http', 'base_url': 'http://example.com'}
|
|
82
|
+
storage = get_storage(config)
|
|
83
|
+
assert isinstance(storage, HTTPStorage)
|
|
84
|
+
|
|
85
|
+
def test_provider_name_https_selection(self):
|
|
86
|
+
"""Test that 'https' provider name selects HTTPStorage."""
|
|
87
|
+
config = {'provider': 'https', 'base_url': 'https://example.com'}
|
|
88
|
+
storage = get_storage(config)
|
|
89
|
+
assert isinstance(storage, HTTPStorage)
|
|
90
|
+
|
|
91
|
+
def test_unsupported_scheme_raises_error(self):
|
|
92
|
+
"""Test that unsupported URI schemes raise appropriate errors."""
|
|
93
|
+
unsupported_schemes = [
|
|
94
|
+
'file:///local/path',
|
|
95
|
+
'ftp://user@host/path',
|
|
96
|
+
'azure://container/path',
|
|
97
|
+
'unknown://something',
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
for scheme in unsupported_schemes:
|
|
101
|
+
with pytest.raises((ValueError, KeyError, NotImplementedError)) as exc_info:
|
|
102
|
+
get_storage(scheme)
|
|
103
|
+
# Verify error message contains helpful information
|
|
104
|
+
error_msg = str(exc_info.value).lower()
|
|
105
|
+
assert any(word in error_msg for word in ['provider', 'scheme', 'support', 'unknown'])
|
|
106
|
+
|
|
107
|
+
def test_unsupported_provider_name_raises_error(self):
|
|
108
|
+
"""Test that unsupported provider names raise appropriate errors."""
|
|
109
|
+
unsupported_providers = [
|
|
110
|
+
{'provider': 'azure', 'container': 'test'},
|
|
111
|
+
{'provider': 'file_system', 'root': '/tmp'},
|
|
112
|
+
{'provider': 'ftp', 'host': 'host'},
|
|
113
|
+
{'provider': 'unknown', 'param': 'value'},
|
|
114
|
+
]
|
|
115
|
+
|
|
116
|
+
for config in unsupported_providers:
|
|
117
|
+
with pytest.raises((ValueError, KeyError, NotImplementedError)) as exc_info:
|
|
118
|
+
get_storage(config)
|
|
119
|
+
# Verify error message contains helpful information
|
|
120
|
+
error_msg = str(exc_info.value).lower()
|
|
121
|
+
assert any(word in error_msg for word in ['provider', 'support', 'unknown'])
|
|
122
|
+
|
|
123
|
+
def test_registry_completeness(self):
|
|
124
|
+
"""Test that all providers in registry are importable and valid."""
|
|
125
|
+
for provider_name, provider_class in STORAGE_PROVIDERS.items():
|
|
126
|
+
# Verify class is a subclass of BaseStorage
|
|
127
|
+
assert issubclass(provider_class, BaseStorage), f'{provider_class} should inherit from BaseStorage'
|
|
128
|
+
|
|
129
|
+
# Verify class can be instantiated (with mock config)
|
|
130
|
+
with patch.object(provider_class, '__init__', return_value=None):
|
|
131
|
+
instance = provider_class.__new__(provider_class)
|
|
132
|
+
assert isinstance(instance, BaseStorage)
|
|
133
|
+
|
|
134
|
+
def test_scheme_priority_over_provider_name(self):
|
|
135
|
+
"""Test that URI scheme takes priority over provider name in dict config."""
|
|
136
|
+
# Config with conflicting scheme and provider name
|
|
137
|
+
config = {
|
|
138
|
+
'provider': 'gcp', # This should be ignored
|
|
139
|
+
'url': 's3://bucket/path', # This should take priority
|
|
140
|
+
'access_key': 'key',
|
|
141
|
+
'secret_key': 'secret',
|
|
142
|
+
}
|
|
143
|
+
storage = get_storage(config)
|
|
144
|
+
# Should select S3Storage based on s3:// scheme, not GCPStorage from provider name
|
|
145
|
+
assert isinstance(storage, S3Storage)
|
|
146
|
+
|
|
147
|
+
def test_case_insensitive_provider_names(self):
|
|
148
|
+
"""Test that provider names are handled case-insensitively if supported."""
|
|
149
|
+
# Note: This test may fail if the implementation is case-sensitive
|
|
150
|
+
# In that case, this documents the current behavior
|
|
151
|
+
config = {'provider': 'S3', 'access_key': 'key', 'secret_key': 'secret', 'bucket': 'test'}
|
|
152
|
+
try:
|
|
153
|
+
storage = get_storage(config)
|
|
154
|
+
# If this passes, the implementation is case-insensitive
|
|
155
|
+
assert isinstance(storage, S3Storage)
|
|
156
|
+
except (ValueError, KeyError):
|
|
157
|
+
# If this fails, the implementation is case-sensitive (document current behavior)
|
|
158
|
+
pytest.skip('Provider names are case-sensitive')
|
|
159
|
+
|
|
160
|
+
@pytest.mark.parametrize(
|
|
161
|
+
'scheme,expected_class',
|
|
162
|
+
[
|
|
163
|
+
('s3', S3Storage),
|
|
164
|
+
('gs', GCPStorage),
|
|
165
|
+
('sftp', SFTPStorage),
|
|
166
|
+
('http', HTTPStorage),
|
|
167
|
+
('https', HTTPStorage),
|
|
168
|
+
],
|
|
169
|
+
)
|
|
170
|
+
def test_scheme_to_provider_mapping(self, scheme, expected_class):
|
|
171
|
+
"""Parametrized test of scheme to provider class mapping."""
|
|
172
|
+
if scheme in ['gs']:
|
|
173
|
+
config = f'{scheme}://bucket/path'
|
|
174
|
+
elif scheme == 'sftp':
|
|
175
|
+
config = f'{scheme}://user:pass@host/path'
|
|
176
|
+
elif scheme in ['http', 'https']:
|
|
177
|
+
config = f'{scheme}://example.com/path'
|
|
178
|
+
else:
|
|
179
|
+
config = f'{scheme}://bucket/path'
|
|
180
|
+
|
|
181
|
+
storage = get_storage(config)
|
|
182
|
+
assert isinstance(storage, expected_class)
|
|
183
|
+
|
|
184
|
+
def test_complex_uri_parsing(self):
|
|
185
|
+
"""Test that complex URIs with query parameters and fragments are handled correctly."""
|
|
186
|
+
complex_uris = [
|
|
187
|
+
's3://bucket/path/file.txt?version=123',
|
|
188
|
+
'https://api.example.com/files/upload?token=abc&format=json',
|
|
189
|
+
'sftp://user:pass@host:2222/path/to/file#fragment',
|
|
190
|
+
'gs://bucket/path/data.csv?access_token=xyz',
|
|
191
|
+
]
|
|
192
|
+
|
|
193
|
+
expected_classes = [S3Storage, HTTPStorage, SFTPStorage, GCPStorage]
|
|
194
|
+
|
|
195
|
+
for uri, expected_class in zip(complex_uris, expected_classes):
|
|
196
|
+
storage = get_storage(uri)
|
|
197
|
+
assert isinstance(storage, expected_class), f'Failed for URI: {uri}'
|
|
198
|
+
|
|
199
|
+
def test_provider_config_validation(self):
|
|
200
|
+
"""Test that provider configurations are validated correctly."""
|
|
201
|
+
# Valid configurations
|
|
202
|
+
valid_configs = [
|
|
203
|
+
{'provider': 's3', 'access_key': 'key', 'secret_key': 'secret', 'bucket': 'test'},
|
|
204
|
+
{'provider': 'gcp', 'token': 'token', 'bucket': 'test'},
|
|
205
|
+
{'provider': 'sftp', 'username': 'user', 'password': 'pass', 'host': 'host'},
|
|
206
|
+
{'provider': 'http', 'base_url': 'http://example.com'},
|
|
207
|
+
]
|
|
208
|
+
|
|
209
|
+
for config in valid_configs:
|
|
210
|
+
storage = get_storage(config)
|
|
211
|
+
assert isinstance(storage, BaseStorage)
|
|
212
|
+
|
|
213
|
+
def test_empty_or_invalid_config_raises_error(self):
|
|
214
|
+
"""Test that empty or invalid configurations raise appropriate errors."""
|
|
215
|
+
invalid_configs = [
|
|
216
|
+
{}, # Empty config
|
|
217
|
+
None, # None config
|
|
218
|
+
{'provider': ''}, # Empty provider name
|
|
219
|
+
{'url': ''}, # Empty URL
|
|
220
|
+
'invalid-url-format', # Invalid URL format
|
|
221
|
+
]
|
|
222
|
+
|
|
223
|
+
for config in invalid_configs:
|
|
224
|
+
with pytest.raises((ValueError, TypeError, AttributeError)):
|
|
225
|
+
get_storage(config)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-theme-classic/footer.json
RENAMED
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/i18n/ko/docusaurus-theme-classic/navbar.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/docs/tutorial-extras/img/docsVersionDropdown.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/clients/backend/data_collection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/docusaurus.config.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/pages/index.module.css
RENAMED
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/src/pages/markdown-page.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/docusaurus.png
RENAMED
|
File without changes
|
{synapse_sdk-1.0.0a66 → synapse_sdk-1.0.0a67}/synapse_sdk/devtools/docs/static/img/favicon.ico
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|