synapse-sdk 1.0.0a94__tar.gz → 1.0.0a95__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.0a94 → synapse_sdk-1.0.0a95}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/actions/upload.py +75 -57
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.claude/commands/compare-branch.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.claude/commands/review-pr.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.claude/commands/update-pr-desc.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.coverage +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.github/workflows/test.yml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.gitignore +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.mcp.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/AGENT.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/CLAUDE.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/GEMINI.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/LICENSE +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/Makefile +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/P1_rules.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/P2_rules.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/P3_rules.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/P4_rules.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/README.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/clients/agent.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/clients/backend.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/clients/base.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/plugins/categories.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/plugins/models.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/plugins/utils.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/utils/file.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/utils/storage.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/api/utils/types.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/categories.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/concepts/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/configuration.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/contributing.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/examples/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/faq.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/features/converters/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/features/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/features/plugins/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/code.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/docusaurus-plugin-content-docs/current/introduction.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/docusaurus-plugin-content-docs/current.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/docusaurus-theme-classic/footer.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/docusaurus-theme-classic/navbar.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/installation.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/introduction.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/quickstart.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/troubleshooting.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/_category_.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/congratulations.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/create-a-blog-post.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/create-a-document.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/create-a-page.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/deploy-your-site.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-basics/markdown-features.mdx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-extras/_category_.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-extras/img/localeDropdown.png +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-extras/manage-docs-versions.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/tutorial-extras/translate-your-site.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/locale/en/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/locale/en/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/locale/ko/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/locale/ko/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/pytest-ci.ini +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/pytest.ini +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/requirements.test.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/requirements.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/setup.cfg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/create.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/dataclass.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/default.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/delete.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/list.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/read.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/update.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/alias/utils.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/config.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/devtools.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/plugin/create.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/plugin/publish.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/cli/plugin/run.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/agent/core.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/agent/ray.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/core.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/data_collection.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/hitl.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/backend/models.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/base.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/ray/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/ray/core.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/ray/serve.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/validators/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/clients/validators/collections.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/config.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/.gitignore +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/README.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/2019-05-28-first-blog-post.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/2019-05-29-long-blog-post.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/2021-08-01-mdx-blog-post.mdx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/2021-08-26-welcome/index.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/authors.yml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/blog/tags.yml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/docusaurus.config.ts +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/package-lock.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/package.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/sidebars.ts +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/index.tsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/components/HomepageFeatures/styles.module.css +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/css/custom.css +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/pages/index.module.css +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/pages/index.tsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/pages/markdown-page.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/.nojekyll +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/docusaurus-social-card.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/docusaurus.png +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/favicon.ico +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/logo.png +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_mountain.svg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_react.svg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/undraw_docusaurus_tree.svg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/tsconfig.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/models.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/server.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/utils.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/.gitignore +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/README.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/dist/index.html +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/index.html +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/jsconfig.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/package-lock.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/package.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/pnpm-lock.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/App.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/App.module.css +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/assets/favicon.ico +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/Breadcrumbs.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/Layout.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/LogViewer.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/MessageViewer.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/NavigationSidebar.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/ServerStatusBar.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/components/icons.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/index.css +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/index.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/logo.svg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/router.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/utils/api.js +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/views/ApplicationDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/views/ApplicationsView.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/views/HomeView.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/views/JobDetailView.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/src/views/PluginView.jsx +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/web/vite.config.js +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/i18n.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/base.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/enums.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/actions/to_task.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/to_task.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/enums.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/exceptions.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/models.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/plugin-config-schema.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/schema.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/utils/actions.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/utils/config.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/utils/legacy.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/plugins/utils/registry.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/shared/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/shared/enums.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/types.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/coco/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/coco/from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/coco/to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/dm/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/dm/from_v1.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/dm/to_v1.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/pascal/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/pascal/from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/pascal/to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/yolo/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/yolo/from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/converters/yolo/to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/dataset.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/file.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/http.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/network.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/pydantic/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/pydantic/config.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/pydantic/errors.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/pydantic/validators.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/file_system.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/http.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/s3.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/storage/registry.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/SOURCES.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk.egg-info/top_level.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/README.md +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/clients/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/clients/test_backend_models.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/clients/test_base_client.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/clients/test_collection_validators.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/loggers/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/loggers/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/loggers/test_base_logger.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/data_validation/validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/data_validation/validation/test_validation_action.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/utils/test_actions.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/utils/test_config.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/plugins/utils/test_registry.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/test_cli.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/test_cli_integration.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/__init__,py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/__init__.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/coco.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/annotations.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data8.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/test/new_dm_data9.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/annotations.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data4.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data5.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/train/new_dm_data6.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/annotations.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/categorized/valid/new_dm_data7.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/annotations.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data1.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data2.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/coco/not_categorized/new_dm_data3.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/test/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_4.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_5.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_6.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/json/dm_7.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_4.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_5.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_6.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/train/original_files/dm_7.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_8.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/json/dm_9.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_8.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/categorized/valid/original_files/dm_9.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_1.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_2.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/json/dm_3.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_1.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_2.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/not_categorized/original_files/dm_3.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/ver1/json/25669.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/dm/ver2/json/25669.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9139.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9140.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Annotations/9141.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9139.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9140.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/test/Images/9141.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9136.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9137.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Annotations/9138.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9136.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9137.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/train/Images/9138.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9125.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9126.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Annotations/9127.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9125.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9126.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/categorized/valid/Images/9127.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9122.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9123.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Annotations/9124.xml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9122.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9123.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/Images/9124.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/pascal/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/dataset.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13744.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13745.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/images/13746.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13744.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13745.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/test/labels/13746.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/images/13782.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/train/labels/13782.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13761.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/images/13764.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13761.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/categorized/valid/labels/13764.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/classes.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/dataset.yaml +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25332.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/images/25334.jpg +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25332.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/image/yolo/not_categorized/labels/25334.txt +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/pcd/dm/ver1/json/23791.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/pcd/dm/ver2/json/23791.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/prompt/dm/ver1/json/18662.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/prompt/dm/ver2/json/18662.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/text/dm/ver1/json/23811.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/text/dm/ver2/json/23811.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/video/dm/ver1/json/23831.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/data_types/video/dm/ver2/json/23831.json +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/dm_schema.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/pascal.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/fixtures/yolo.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_coco_from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_coco_to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_dm_v1_to_v2.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_dm_v2_to_v1.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_pascal_from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_pascal_to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_yolo_from_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/converters/test_yolo_to_dm.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/storage/conftest.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/storage/test_file_system_storage.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/storage/test_provider_selection.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/tests/utils/test_debug.py +0 -0
- {synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/uv.lock +0 -0
|
@@ -192,8 +192,7 @@ class UploadParams(BaseModel):
|
|
|
192
192
|
storage (int): The storage of the action.
|
|
193
193
|
collection (int): The collection of the action.
|
|
194
194
|
project (int | None): The project of the action.
|
|
195
|
-
|
|
196
|
-
excel_metadata_path (str | None): Path to excel file containing metadata.
|
|
195
|
+
excel_metadata_path (str | None): Path to excel file containing metadata. Defaults to 'meta.xlsx' or 'meta.xls' in the path directory.
|
|
197
196
|
"""
|
|
198
197
|
|
|
199
198
|
name: Annotated[str, AfterValidator(non_blank)]
|
|
@@ -202,7 +201,6 @@ class UploadParams(BaseModel):
|
|
|
202
201
|
storage: int
|
|
203
202
|
collection: int
|
|
204
203
|
project: int | None
|
|
205
|
-
use_excel_metadata: bool = False
|
|
206
204
|
excel_metadata_path: str | None = None
|
|
207
205
|
|
|
208
206
|
@field_validator('storage', mode='before')
|
|
@@ -251,7 +249,7 @@ class UploadParams(BaseModel):
|
|
|
251
249
|
@field_validator('excel_metadata_path', mode='before')
|
|
252
250
|
@classmethod
|
|
253
251
|
def check_excel_metadata_path(cls, value: str, info) -> str:
|
|
254
|
-
"""Validate excel metadata file exists and is secure if
|
|
252
|
+
"""Validate excel metadata file exists and is secure if provided.
|
|
255
253
|
|
|
256
254
|
This validator performs comprehensive security checks including:
|
|
257
255
|
- File existence and format validation
|
|
@@ -271,48 +269,45 @@ class UploadParams(BaseModel):
|
|
|
271
269
|
if not value:
|
|
272
270
|
return value
|
|
273
271
|
|
|
274
|
-
|
|
275
|
-
data = info.data
|
|
276
|
-
if data.get('use_excel_metadata', False):
|
|
277
|
-
excel_path = Path(value)
|
|
272
|
+
excel_path = Path(value)
|
|
278
273
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
# Check file extension
|
|
284
|
-
if excel_path.suffix.lower() not in ['.xlsx', '.xls']:
|
|
285
|
-
raise PydanticCustomError('invalid_file_type', _('Excel metadata file must be .xlsx or .xls format.'))
|
|
286
|
-
|
|
287
|
-
# Security check: file size limit
|
|
288
|
-
file_size = excel_path.stat().st_size
|
|
289
|
-
excel_config = ExcelSecurityConfig()
|
|
290
|
-
if file_size > excel_config.MAX_FILE_SIZE_BYTES:
|
|
291
|
-
raise PydanticCustomError(
|
|
292
|
-
'file_too_large',
|
|
293
|
-
_('Excel metadata file is too large. Maximum size is {}MB.').format(excel_config.MAX_FILE_SIZE_MB),
|
|
294
|
-
)
|
|
274
|
+
# Check file existence
|
|
275
|
+
if not excel_path.exists():
|
|
276
|
+
raise PydanticCustomError('file_not_found', _('Excel metadata file not found.'))
|
|
295
277
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
278
|
+
# Check file extension
|
|
279
|
+
if excel_path.suffix.lower() not in ['.xlsx', '.xls']:
|
|
280
|
+
raise PydanticCustomError('invalid_file_type', _('Excel metadata file must be .xlsx or .xls format.'))
|
|
281
|
+
|
|
282
|
+
# Security check: file size limit
|
|
283
|
+
file_size = excel_path.stat().st_size
|
|
284
|
+
excel_config = ExcelSecurityConfig()
|
|
285
|
+
if file_size > excel_config.MAX_FILE_SIZE_BYTES:
|
|
286
|
+
raise PydanticCustomError(
|
|
287
|
+
'file_too_large',
|
|
288
|
+
_('Excel metadata file is too large. Maximum size is {}MB.').format(excel_config.MAX_FILE_SIZE_MB),
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
# Basic security check: ensure file is readable and not corrupted
|
|
292
|
+
try:
|
|
293
|
+
with open(excel_path, 'rb') as f:
|
|
294
|
+
# Read first few bytes to check if it's a valid Excel file
|
|
295
|
+
header = f.read(8)
|
|
296
|
+
if not header:
|
|
297
|
+
raise PydanticCustomError('invalid_file', _('Excel metadata file appears to be empty.'))
|
|
298
|
+
|
|
299
|
+
# Check for valid Excel file signatures
|
|
300
|
+
if excel_path.suffix.lower() == '.xlsx':
|
|
301
|
+
# XLSX files start with PK (ZIP signature)
|
|
302
|
+
if not header.startswith(b'PK'):
|
|
303
|
+
raise PydanticCustomError('invalid_file', _('Excel metadata file appears to be corrupted.'))
|
|
304
|
+
elif excel_path.suffix.lower() == '.xls':
|
|
305
|
+
# XLS files have specific OLE signatures
|
|
306
|
+
if not (header.startswith(b'\xd0\xcf\x11\xe0') or header.startswith(b'\x09\x08')):
|
|
307
|
+
raise PydanticCustomError('invalid_file', _('Excel metadata file appears to be corrupted.'))
|
|
308
|
+
|
|
309
|
+
except (OSError, IOError):
|
|
310
|
+
raise PydanticCustomError('file_access_error', _('Cannot access Excel metadata file.'))
|
|
316
311
|
|
|
317
312
|
return value
|
|
318
313
|
|
|
@@ -543,6 +538,24 @@ class UploadAction(Action):
|
|
|
543
538
|
if row_count > self.excel_config.MAX_ROWS:
|
|
544
539
|
raise ExcelParsingError(f'Too many rows: {row_count} (max: {self.excel_config.MAX_ROWS})')
|
|
545
540
|
|
|
541
|
+
def _find_excel_metadata_file(self, pathlib_cwd: Path) -> Optional[Path]:
|
|
542
|
+
"""Find Excel metadata file in the directory.
|
|
543
|
+
|
|
544
|
+
Checks for meta.xlsx and meta.xls in the given directory.
|
|
545
|
+
|
|
546
|
+
Args:
|
|
547
|
+
pathlib_cwd (Path): The pathlib object representing the current working directory.
|
|
548
|
+
|
|
549
|
+
Returns:
|
|
550
|
+
Optional[Path]: Path to the Excel metadata file if found, None otherwise.
|
|
551
|
+
"""
|
|
552
|
+
# Check for xlsx first, then xls
|
|
553
|
+
for extension in ['.xlsx', '.xls']:
|
|
554
|
+
excel_path = pathlib_cwd / f'meta{extension}'
|
|
555
|
+
if excel_path.exists() and excel_path.is_file():
|
|
556
|
+
return excel_path
|
|
557
|
+
return None
|
|
558
|
+
|
|
546
559
|
def _read_excel_metadata(self, pathlib_cwd: Path) -> Dict[str, Dict[str, Any]]:
|
|
547
560
|
"""Read metadata from excel file with comprehensive security validation.
|
|
548
561
|
|
|
@@ -560,13 +573,20 @@ class UploadAction(Action):
|
|
|
560
573
|
ExcelSecurityError: If security validation fails
|
|
561
574
|
ExcelParsingError: If Excel content is invalid or exceeds limits
|
|
562
575
|
"""
|
|
563
|
-
|
|
564
|
-
return {}
|
|
576
|
+
excel_path = None
|
|
565
577
|
|
|
566
|
-
|
|
567
|
-
if
|
|
568
|
-
|
|
569
|
-
|
|
578
|
+
# Check if user provided a specific excel_metadata_path
|
|
579
|
+
if self.params.get('excel_metadata_path'):
|
|
580
|
+
excel_path = pathlib_cwd / self.params['excel_metadata_path']
|
|
581
|
+
if not excel_path.exists():
|
|
582
|
+
self.run.log_message(f'Excel metadata file not found: {excel_path}', context=Context.WARNING.value)
|
|
583
|
+
return {}
|
|
584
|
+
else:
|
|
585
|
+
# Look for default meta.xlsx or meta.xls
|
|
586
|
+
excel_path = self._find_excel_metadata_file(pathlib_cwd)
|
|
587
|
+
if not excel_path:
|
|
588
|
+
# No Excel metadata file found, return empty dict (not an error)
|
|
589
|
+
return {}
|
|
570
590
|
|
|
571
591
|
try:
|
|
572
592
|
# Prepare Excel file with security validation
|
|
@@ -611,28 +631,26 @@ class UploadAction(Action):
|
|
|
611
631
|
storage = self.client.get_storage(self.params['storage'])
|
|
612
632
|
pathlib_cwd = get_pathlib(storage, self.params['path'])
|
|
613
633
|
|
|
614
|
-
# Read excel metadata if configured
|
|
634
|
+
# Read excel metadata if configured or default file exists
|
|
615
635
|
excel_metadata: Dict[str, Dict[str, Any]] = {}
|
|
616
636
|
try:
|
|
617
637
|
excel_metadata = self._read_excel_metadata(pathlib_cwd)
|
|
618
638
|
if excel_metadata:
|
|
619
639
|
self.run.log_message(f'Excel metadata loaded for {len(excel_metadata)} files')
|
|
620
|
-
elif self.params.get('use_excel_metadata', False):
|
|
621
|
-
self.run.log_message('Excel metadata enabled but no entries found')
|
|
622
|
-
# Don't log anything if Excel metadata is not being used
|
|
623
640
|
except ExcelSecurityError as e:
|
|
624
641
|
# Security violations should stop the process entirely
|
|
625
642
|
self.run.log_message(f'Excel security validation failed: {str(e)}', context=Context.ERROR.value)
|
|
626
643
|
self.run.log_message('Upload aborted due to Excel security concerns.', context=Context.ERROR.value)
|
|
627
644
|
return result
|
|
628
645
|
except ExcelParsingError as e:
|
|
629
|
-
# Parsing errors can be non-critical if
|
|
630
|
-
if self.params.get('
|
|
646
|
+
# Parsing errors can be non-critical if user didn't explicitly provide Excel file
|
|
647
|
+
if self.params.get('excel_metadata_path'):
|
|
648
|
+
# User explicitly provided Excel file, treat as error
|
|
631
649
|
self.run.log_message(f'Excel parsing failed: {str(e)}', context=Context.ERROR.value)
|
|
632
650
|
self.run.log_message('Upload aborted due to Excel parsing failure.', context=Context.ERROR.value)
|
|
633
651
|
return result
|
|
634
652
|
else:
|
|
635
|
-
#
|
|
653
|
+
# Default Excel file found but failed to parse, treat as warning and continue
|
|
636
654
|
self.run.log_message(f'Excel parsing failed (continuing): {str(e)}', context=Context.WARNING.value)
|
|
637
655
|
excel_metadata = {}
|
|
638
656
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/docs/i18n/ko/docusaurus-theme-classic/footer.json
RENAMED
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/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.0a94 → synapse_sdk-1.0.0a95}/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
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/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.0a94 → synapse_sdk-1.0.0a95}/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.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/pages/index.module.css
RENAMED
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/src/pages/markdown-page.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/docusaurus.png
RENAMED
|
File without changes
|
{synapse_sdk-1.0.0a94 → synapse_sdk-1.0.0a95}/synapse_sdk/devtools/docs/static/img/favicon.ico
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
|