synapse-sdk 1.0.0a39__tar.gz → 1.0.0a40__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.
- {synapse_sdk-1.0.0a39/synapse_sdk.egg-info → synapse_sdk-1.0.0a40}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/gradio.py +4 -22
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/file.py +0 -1
- synapse_sdk-1.0.0a40/synapse_sdk/utils/http.py +110 -0
- synapse_sdk-1.0.0a40/synapse_sdk/utils/network.py +37 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40/synapse_sdk.egg-info}/PKG-INFO +1 -1
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk.egg-info/SOURCES.txt +1 -0
- synapse_sdk-1.0.0a39/synapse_sdk/utils/network.py +0 -16
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/.github/workflows/lint.yml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/.github/workflows/pypi-publish.yml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/.gitignore +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/LICENSE +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/README.md +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/locale/en/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/locale/en/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/locale/ko/LC_MESSAGES/messages.mo +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/locale/ko/LC_MESSAGES/messages.po +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/requirements.test.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/requirements.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/setup.cfg +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/create.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/dataclass.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/default.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/delete.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/list.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/read.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/update.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/alias/utils.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/plugin/create.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/plugin/publish.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/cli/plugin/run.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/agent/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/agent/core.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/agent/ray.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/agent/service.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/annotation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/core.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/dataset.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/hitl.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/integration.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/ml.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/backend/models.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/base.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/exceptions.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/ray/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/ray/core.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/ray/serve.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/utils.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/validators/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/clients/validators/collections.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/i18n.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/loggers.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/base.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/decorators.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/enums.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/templates/plugin/export.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/actions/tune.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/registry.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/templates.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/actions/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/actions/upload.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/templates/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/templates/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/templates/plugin/upload.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/enums.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/exceptions.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/models.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/upload.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/utils.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/shared/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/shared/enums.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/types.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/dataset.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/debug.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/module_loading.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/pydantic/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/pydantic/config.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/pydantic/errors.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/pydantic/validators.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/providers/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/providers/gcp.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/providers/s3.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/providers/sftp.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/registry.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/string.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk.egg-info/dependency_links.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk.egg-info/entry_points.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk.egg-info/requires.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk.egg-info/top_level.txt +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/clients/__init__.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/clients/test_backend_models.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/clients/test_base_client.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/clients/test_collection_validators.py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/utils/__init__,py +0 -0
- {synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/tests/utils/test_debug.py +0 -0
|
@@ -6,6 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
from synapse_sdk.plugins.categories.base import Action
|
|
7
7
|
from synapse_sdk.plugins.categories.decorators import register_action
|
|
8
8
|
from synapse_sdk.plugins.enums import PluginCategory, RunMethod
|
|
9
|
+
from synapse_sdk.utils.network import get_available_ports_host
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
@register_action
|
|
@@ -31,7 +32,7 @@ class GradioAction(Action):
|
|
|
31
32
|
|
|
32
33
|
@cached_property
|
|
33
34
|
def deploy_port(self):
|
|
34
|
-
return
|
|
35
|
+
return get_available_ports_host()
|
|
35
36
|
|
|
36
37
|
def deploy(self):
|
|
37
38
|
self.run.log('deploy', 'Start deploying')
|
|
@@ -102,27 +103,6 @@ CMD ["python", "app.py"]
|
|
|
102
103
|
)
|
|
103
104
|
print(result)
|
|
104
105
|
|
|
105
|
-
@staticmethod
|
|
106
|
-
def _get_avail_ports_host(start_port=8900, end_port=8999):
|
|
107
|
-
import nmap
|
|
108
|
-
|
|
109
|
-
nm = nmap.PortScanner()
|
|
110
|
-
|
|
111
|
-
scan_range = f'{start_port}-{end_port}'
|
|
112
|
-
nm.scan(hosts='host.docker.internal', arguments=f'-p {scan_range}')
|
|
113
|
-
|
|
114
|
-
try:
|
|
115
|
-
open_ports = nm['host.docker.internal']['tcp'].keys()
|
|
116
|
-
open_ports = [int(port) for port in open_ports]
|
|
117
|
-
except KeyError:
|
|
118
|
-
open_ports = []
|
|
119
|
-
|
|
120
|
-
for port in range(start_port, end_port + 1):
|
|
121
|
-
if port not in open_ports:
|
|
122
|
-
return port
|
|
123
|
-
|
|
124
|
-
raise IOError(f'No free ports available in range {start_port}-{end_port}')
|
|
125
|
-
|
|
126
106
|
def run_docker_image(self):
|
|
127
107
|
self.run.log('deploy', 'Start running docker image')
|
|
128
108
|
|
|
@@ -143,6 +123,8 @@ CMD ["python", "app.py"]
|
|
|
143
123
|
self.tag,
|
|
144
124
|
'-p',
|
|
145
125
|
f'{self.deploy_port}:7860',
|
|
126
|
+
'-p',
|
|
127
|
+
'8991-8999:8991-8999',
|
|
146
128
|
self.tag,
|
|
147
129
|
],
|
|
148
130
|
check=True,
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import os
|
|
3
|
+
import tempfile
|
|
4
|
+
import threading
|
|
5
|
+
import time
|
|
6
|
+
from contextlib import contextmanager
|
|
7
|
+
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
|
8
|
+
|
|
9
|
+
from synapse_sdk.utils.network import get_available_ports_host
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SingleFileHttpServer(SimpleHTTPRequestHandler):
|
|
13
|
+
"""
|
|
14
|
+
Custom HTTP request handler that serves a single specified file
|
|
15
|
+
regardless of the request path.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self, *args, file_path=None, content_type=None, **kwargs):
|
|
19
|
+
self.file_path = file_path
|
|
20
|
+
self.content_type = content_type
|
|
21
|
+
super().__init__(*args, **kwargs)
|
|
22
|
+
|
|
23
|
+
def do_GET(self):
|
|
24
|
+
"""Handle GET requests by serving the single file."""
|
|
25
|
+
try:
|
|
26
|
+
# Always serve the specified file regardless of the path requested
|
|
27
|
+
self.send_response(200)
|
|
28
|
+
if self.content_type:
|
|
29
|
+
self.send_header('Content-type', self.content_type)
|
|
30
|
+
self.send_header('Content-Length', str(os.path.getsize(self.file_path)))
|
|
31
|
+
self.end_headers()
|
|
32
|
+
|
|
33
|
+
with open(self.file_path, 'rb') as file:
|
|
34
|
+
self.wfile.write(file.read())
|
|
35
|
+
|
|
36
|
+
except Exception as e:
|
|
37
|
+
self.send_error(500, str(e))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@contextmanager
|
|
41
|
+
def temp_file_server(image=None, file_path=None, format='JPEG', host='localhost', port=None, content_type=None):
|
|
42
|
+
"""
|
|
43
|
+
Context manager that serves a file temporarily via HTTP.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
image: A PIL Image object to serve (optional)
|
|
47
|
+
file_path: Path to an existing file to serve (optional - used if image not provided)
|
|
48
|
+
format: Image format when saving a PIL Image (default: "JPEG")
|
|
49
|
+
host: Host to serve on (default: "localhost")
|
|
50
|
+
port: Port to serve on (default: auto-selected free port)
|
|
51
|
+
content_type: Content type header (default: auto-detected based on format)
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
URL where the file is being served
|
|
55
|
+
|
|
56
|
+
Usage:
|
|
57
|
+
with temp_file_serve(image=my_pillow_img) as url:
|
|
58
|
+
# use url to access the image
|
|
59
|
+
print(f"Image available at: {url}")
|
|
60
|
+
"""
|
|
61
|
+
if image is None and file_path is None:
|
|
62
|
+
raise ValueError('Either image or file_path must be provided')
|
|
63
|
+
|
|
64
|
+
# Use a free port if none specified
|
|
65
|
+
if port is None:
|
|
66
|
+
port = get_available_ports_host(start_port=8991, end_port=8999)
|
|
67
|
+
|
|
68
|
+
temp_dir = None
|
|
69
|
+
|
|
70
|
+
try:
|
|
71
|
+
if image is not None:
|
|
72
|
+
temp_dir = tempfile.mkdtemp()
|
|
73
|
+
ext_map = {'JPEG': '.jpg', 'PNG': '.png', 'GIF': '.gif', 'WEBP': '.webp'}
|
|
74
|
+
content_type_map = {'JPEG': 'image/jpeg', 'PNG': 'image/png', 'GIF': 'image/gif', 'WEBP': 'image/webp'}
|
|
75
|
+
|
|
76
|
+
ext = ext_map.get(format, '.jpg')
|
|
77
|
+
if content_type is None:
|
|
78
|
+
content_type = content_type_map.get(format, 'image/jpeg')
|
|
79
|
+
|
|
80
|
+
temp_file_path = os.path.join(temp_dir, f'temp_image{ext}')
|
|
81
|
+
image.save(temp_file_path, format=format)
|
|
82
|
+
file_path = temp_file_path
|
|
83
|
+
|
|
84
|
+
def handler(*args, **kwargs):
|
|
85
|
+
return SingleFileHttpServer(*args, file_path=file_path, content_type=content_type, **kwargs)
|
|
86
|
+
|
|
87
|
+
server = HTTPServer((host, port), handler)
|
|
88
|
+
|
|
89
|
+
server_thread = threading.Thread(target=server.serve_forever)
|
|
90
|
+
server_thread.daemon = True
|
|
91
|
+
server_thread.start()
|
|
92
|
+
|
|
93
|
+
time.sleep(0.1)
|
|
94
|
+
|
|
95
|
+
url = f'http://{host}:{port}'
|
|
96
|
+
|
|
97
|
+
try:
|
|
98
|
+
yield url
|
|
99
|
+
finally:
|
|
100
|
+
server.shutdown()
|
|
101
|
+
server.server_close()
|
|
102
|
+
|
|
103
|
+
finally:
|
|
104
|
+
if temp_dir:
|
|
105
|
+
try:
|
|
106
|
+
if temp_file_path and os.path.exists(temp_file_path):
|
|
107
|
+
os.unlink(temp_file_path)
|
|
108
|
+
os.rmdir(temp_dir)
|
|
109
|
+
except Exception as e:
|
|
110
|
+
logging.warning(f'Error cleaning up temporary files: {e}')
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from urllib.parse import urlparse, urlunparse
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def clean_url(url, remove_query_params=True, remove_fragment=True):
|
|
5
|
+
parsed = urlparse(url)
|
|
6
|
+
query = '' if remove_query_params else parsed.query
|
|
7
|
+
fragment = '' if remove_fragment else parsed.fragment
|
|
8
|
+
|
|
9
|
+
return urlunparse((
|
|
10
|
+
parsed.scheme,
|
|
11
|
+
parsed.netloc,
|
|
12
|
+
parsed.path,
|
|
13
|
+
parsed.params,
|
|
14
|
+
query,
|
|
15
|
+
fragment,
|
|
16
|
+
))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def get_available_ports_host(start_port=8900, end_port=8990):
|
|
20
|
+
import nmap
|
|
21
|
+
|
|
22
|
+
nm = nmap.PortScanner()
|
|
23
|
+
|
|
24
|
+
scan_range = f'{start_port}-{end_port}'
|
|
25
|
+
nm.scan(hosts='host.docker.internal', arguments=f'-p {scan_range}')
|
|
26
|
+
|
|
27
|
+
try:
|
|
28
|
+
open_ports = nm['host.docker.internal']['tcp'].keys()
|
|
29
|
+
open_ports = [int(port) for port in open_ports]
|
|
30
|
+
except KeyError:
|
|
31
|
+
open_ports = []
|
|
32
|
+
|
|
33
|
+
for port in range(start_port, end_port + 1):
|
|
34
|
+
if port not in open_ports:
|
|
35
|
+
return port
|
|
36
|
+
|
|
37
|
+
raise IOError(f'No free ports available in range {start_port}-{end_port}')
|
|
@@ -137,6 +137,7 @@ synapse_sdk/utils/__init__.py
|
|
|
137
137
|
synapse_sdk/utils/dataset.py
|
|
138
138
|
synapse_sdk/utils/debug.py
|
|
139
139
|
synapse_sdk/utils/file.py
|
|
140
|
+
synapse_sdk/utils/http.py
|
|
140
141
|
synapse_sdk/utils/module_loading.py
|
|
141
142
|
synapse_sdk/utils/network.py
|
|
142
143
|
synapse_sdk/utils/string.py
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from urllib.parse import urlparse, urlunparse
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
def clean_url(url, remove_query_params=True, remove_fragment=True):
|
|
5
|
-
parsed = urlparse(url)
|
|
6
|
-
query = '' if remove_query_params else parsed.query
|
|
7
|
-
fragment = '' if remove_fragment else parsed.fragment
|
|
8
|
-
|
|
9
|
-
return urlunparse((
|
|
10
|
-
parsed.scheme,
|
|
11
|
-
parsed.netloc,
|
|
12
|
-
parsed.path,
|
|
13
|
-
parsed.params,
|
|
14
|
-
query,
|
|
15
|
-
fragment,
|
|
16
|
-
))
|
|
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
|
|
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.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/export/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/neural_net/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/smart_tool/__init__.py
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.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/categories/upload/__init__.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
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/cookiecutter.json
RENAMED
|
File without changes
|
|
File without changes
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/plugins/templates/hooks/pre_prompt.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
|
{synapse_sdk-1.0.0a39 → synapse_sdk-1.0.0a40}/synapse_sdk/utils/storage/providers/__init__.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
|