data-designer 0.4.0rc2__py3-none-any.whl → 0.5.0rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data_designer/cli/commands/list.py +143 -6
- data_designer/cli/commands/mcp.py +13 -0
- data_designer/cli/commands/tools.py +13 -0
- data_designer/cli/controllers/mcp_provider_controller.py +241 -0
- data_designer/cli/controllers/provider_controller.py +6 -2
- data_designer/cli/controllers/tool_controller.py +236 -0
- data_designer/cli/forms/mcp_provider_builder.py +219 -0
- data_designer/cli/forms/tool_builder.py +204 -0
- data_designer/cli/main.py +3 -1
- data_designer/cli/repositories/mcp_provider_repository.py +48 -0
- data_designer/cli/repositories/tool_repository.py +44 -0
- data_designer/cli/services/mcp_provider_service.py +86 -0
- data_designer/cli/services/tool_service.py +83 -0
- data_designer/interface/data_designer.py +27 -0
- {data_designer-0.4.0rc2.dist-info → data_designer-0.5.0rc1.dist-info}/METADATA +3 -3
- {data_designer-0.4.0rc2.dist-info → data_designer-0.5.0rc1.dist-info}/RECORD +18 -9
- data_designer/interface/_version.py +0 -34
- {data_designer-0.4.0rc2.dist-info → data_designer-0.5.0rc1.dist-info}/WHEEL +0 -0
- {data_designer-0.4.0rc2.dist-info → data_designer-0.5.0rc1.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from pydantic import BaseModel
|
|
9
|
+
|
|
10
|
+
from data_designer.cli.repositories.base import ConfigRepository
|
|
11
|
+
from data_designer.config.mcp import MCPProviderT
|
|
12
|
+
from data_designer.config.utils.constants import MCP_PROVIDERS_FILE_NAME
|
|
13
|
+
from data_designer.config.utils.io_helpers import load_config_file, save_config_file
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MCPProviderRegistry(BaseModel):
|
|
17
|
+
"""Registry for MCP provider configurations.
|
|
18
|
+
|
|
19
|
+
Supports both MCPProvider (remote SSE) and LocalStdioMCPProvider (subprocess)
|
|
20
|
+
via the discriminated union MCPProviderT.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
providers: list[MCPProviderT]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class MCPProviderRepository(ConfigRepository[MCPProviderRegistry]):
|
|
27
|
+
"""Repository for MCP provider configurations."""
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def config_file(self) -> Path:
|
|
31
|
+
"""Get the MCP provider configuration file path."""
|
|
32
|
+
return self.config_dir / MCP_PROVIDERS_FILE_NAME
|
|
33
|
+
|
|
34
|
+
def load(self) -> MCPProviderRegistry | None:
|
|
35
|
+
"""Load MCP provider configuration from file."""
|
|
36
|
+
if not self.exists():
|
|
37
|
+
return None
|
|
38
|
+
|
|
39
|
+
try:
|
|
40
|
+
config_dict = load_config_file(self.config_file)
|
|
41
|
+
return MCPProviderRegistry.model_validate(config_dict)
|
|
42
|
+
except Exception:
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
def save(self, config: MCPProviderRegistry) -> None:
|
|
46
|
+
"""Save MCP provider configuration to file."""
|
|
47
|
+
config_dict = config.model_dump(mode="json", exclude_none=True)
|
|
48
|
+
save_config_file(self.config_file, config_dict)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from pydantic import BaseModel
|
|
9
|
+
|
|
10
|
+
from data_designer.cli.repositories.base import ConfigRepository
|
|
11
|
+
from data_designer.config.mcp import ToolConfig
|
|
12
|
+
from data_designer.config.utils.constants import TOOL_CONFIGS_FILE_NAME
|
|
13
|
+
from data_designer.config.utils.io_helpers import load_config_file, save_config_file
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ToolConfigRegistry(BaseModel):
|
|
17
|
+
"""Registry for tool configurations."""
|
|
18
|
+
|
|
19
|
+
tool_configs: list[ToolConfig]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class ToolRepository(ConfigRepository[ToolConfigRegistry]):
|
|
23
|
+
"""Repository for tool configurations."""
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def config_file(self) -> Path:
|
|
27
|
+
"""Get the tool configuration file path."""
|
|
28
|
+
return self.config_dir / TOOL_CONFIGS_FILE_NAME
|
|
29
|
+
|
|
30
|
+
def load(self) -> ToolConfigRegistry | None:
|
|
31
|
+
"""Load tool configuration from file."""
|
|
32
|
+
if not self.exists():
|
|
33
|
+
return None
|
|
34
|
+
|
|
35
|
+
try:
|
|
36
|
+
config_dict = load_config_file(self.config_file)
|
|
37
|
+
return ToolConfigRegistry.model_validate(config_dict)
|
|
38
|
+
except Exception:
|
|
39
|
+
return None
|
|
40
|
+
|
|
41
|
+
def save(self, config: ToolConfigRegistry) -> None:
|
|
42
|
+
"""Save tool configuration to file."""
|
|
43
|
+
config_dict = config.model_dump(mode="json", exclude_none=True)
|
|
44
|
+
save_config_file(self.config_file, config_dict)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from data_designer.cli.repositories.mcp_provider_repository import MCPProviderRegistry, MCPProviderRepository
|
|
7
|
+
from data_designer.config.mcp import MCPProviderT
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class MCPProviderService:
|
|
11
|
+
"""Business logic for MCP provider management.
|
|
12
|
+
|
|
13
|
+
Supports both MCPProvider (remote SSE) and LocalStdioMCPProvider (subprocess).
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self, repository: MCPProviderRepository):
|
|
17
|
+
self.repository = repository
|
|
18
|
+
|
|
19
|
+
def list_all(self) -> list[MCPProviderT]:
|
|
20
|
+
"""Get all configured MCP providers."""
|
|
21
|
+
registry = self.repository.load()
|
|
22
|
+
return list(registry.providers) if registry else []
|
|
23
|
+
|
|
24
|
+
def get_by_name(self, name: str) -> MCPProviderT | None:
|
|
25
|
+
"""Get an MCP provider by name."""
|
|
26
|
+
providers = self.list_all()
|
|
27
|
+
return next((p for p in providers if p.name == name), None)
|
|
28
|
+
|
|
29
|
+
def add(self, provider: MCPProviderT) -> None:
|
|
30
|
+
"""Add a new MCP provider.
|
|
31
|
+
|
|
32
|
+
Raises:
|
|
33
|
+
ValueError: If provider name already exists
|
|
34
|
+
"""
|
|
35
|
+
registry = self.repository.load() or MCPProviderRegistry(providers=[])
|
|
36
|
+
|
|
37
|
+
if any(p.name == provider.name for p in registry.providers):
|
|
38
|
+
raise ValueError(f"MCP provider '{provider.name}' already exists")
|
|
39
|
+
|
|
40
|
+
registry.providers.append(provider)
|
|
41
|
+
self.repository.save(registry)
|
|
42
|
+
|
|
43
|
+
def update(self, original_name: str, updated_provider: MCPProviderT) -> None:
|
|
44
|
+
"""Update an existing MCP provider.
|
|
45
|
+
|
|
46
|
+
Raises:
|
|
47
|
+
ValueError: If provider not found or new name already exists
|
|
48
|
+
"""
|
|
49
|
+
registry = self.repository.load()
|
|
50
|
+
if not registry:
|
|
51
|
+
raise ValueError("No MCP providers configured")
|
|
52
|
+
|
|
53
|
+
# Find provider index
|
|
54
|
+
index = next(
|
|
55
|
+
(i for i, p in enumerate(registry.providers) if p.name == original_name),
|
|
56
|
+
None,
|
|
57
|
+
)
|
|
58
|
+
if index is None:
|
|
59
|
+
raise ValueError(f"MCP provider '{original_name}' not found")
|
|
60
|
+
|
|
61
|
+
if updated_provider.name != original_name:
|
|
62
|
+
if any(p.name == updated_provider.name for p in registry.providers):
|
|
63
|
+
raise ValueError(f"MCP provider name '{updated_provider.name}' already exists")
|
|
64
|
+
|
|
65
|
+
registry.providers[index] = updated_provider
|
|
66
|
+
self.repository.save(registry)
|
|
67
|
+
|
|
68
|
+
def delete(self, name: str) -> None:
|
|
69
|
+
"""Delete an MCP provider.
|
|
70
|
+
|
|
71
|
+
Raises:
|
|
72
|
+
ValueError: If provider not found
|
|
73
|
+
"""
|
|
74
|
+
registry = self.repository.load()
|
|
75
|
+
if not registry:
|
|
76
|
+
raise ValueError("No MCP providers configured")
|
|
77
|
+
|
|
78
|
+
if not any(p.name == name for p in registry.providers):
|
|
79
|
+
raise ValueError(f"MCP provider '{name}' not found")
|
|
80
|
+
|
|
81
|
+
registry.providers = [p for p in registry.providers if p.name != name]
|
|
82
|
+
|
|
83
|
+
if registry.providers:
|
|
84
|
+
self.repository.save(registry)
|
|
85
|
+
else:
|
|
86
|
+
self.repository.delete()
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
from data_designer.cli.repositories.tool_repository import ToolConfigRegistry, ToolRepository
|
|
7
|
+
from data_designer.config.mcp import ToolConfig
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ToolService:
|
|
11
|
+
"""Business logic for tool configuration management."""
|
|
12
|
+
|
|
13
|
+
def __init__(self, repository: ToolRepository):
|
|
14
|
+
self.repository = repository
|
|
15
|
+
|
|
16
|
+
def list_all(self) -> list[ToolConfig]:
|
|
17
|
+
"""Get all configured tool configs."""
|
|
18
|
+
registry = self.repository.load()
|
|
19
|
+
return list(registry.tool_configs) if registry else []
|
|
20
|
+
|
|
21
|
+
def get_by_alias(self, alias: str) -> ToolConfig | None:
|
|
22
|
+
"""Get a tool config by alias."""
|
|
23
|
+
configs = self.list_all()
|
|
24
|
+
return next((c for c in configs if c.tool_alias == alias), None)
|
|
25
|
+
|
|
26
|
+
def add(self, tool_config: ToolConfig) -> None:
|
|
27
|
+
"""Add a new tool config.
|
|
28
|
+
|
|
29
|
+
Raises:
|
|
30
|
+
ValueError: If tool alias already exists
|
|
31
|
+
"""
|
|
32
|
+
registry = self.repository.load() or ToolConfigRegistry(tool_configs=[])
|
|
33
|
+
|
|
34
|
+
if any(c.tool_alias == tool_config.tool_alias for c in registry.tool_configs):
|
|
35
|
+
raise ValueError(f"Tool config with alias '{tool_config.tool_alias}' already exists")
|
|
36
|
+
|
|
37
|
+
registry.tool_configs.append(tool_config)
|
|
38
|
+
self.repository.save(registry)
|
|
39
|
+
|
|
40
|
+
def update(self, original_alias: str, updated_config: ToolConfig) -> None:
|
|
41
|
+
"""Update an existing tool config.
|
|
42
|
+
|
|
43
|
+
Raises:
|
|
44
|
+
ValueError: If tool config not found or new alias already exists
|
|
45
|
+
"""
|
|
46
|
+
registry = self.repository.load()
|
|
47
|
+
if not registry:
|
|
48
|
+
raise ValueError("No tool configs configured")
|
|
49
|
+
|
|
50
|
+
# Find config index
|
|
51
|
+
index = next(
|
|
52
|
+
(i for i, c in enumerate(registry.tool_configs) if c.tool_alias == original_alias),
|
|
53
|
+
None,
|
|
54
|
+
)
|
|
55
|
+
if index is None:
|
|
56
|
+
raise ValueError(f"Tool config with alias '{original_alias}' not found")
|
|
57
|
+
|
|
58
|
+
if updated_config.tool_alias != original_alias:
|
|
59
|
+
if any(c.tool_alias == updated_config.tool_alias for c in registry.tool_configs):
|
|
60
|
+
raise ValueError(f"Tool config alias '{updated_config.tool_alias}' already exists")
|
|
61
|
+
|
|
62
|
+
registry.tool_configs[index] = updated_config
|
|
63
|
+
self.repository.save(registry)
|
|
64
|
+
|
|
65
|
+
def delete(self, alias: str) -> None:
|
|
66
|
+
"""Delete a tool config.
|
|
67
|
+
|
|
68
|
+
Raises:
|
|
69
|
+
ValueError: If tool config not found
|
|
70
|
+
"""
|
|
71
|
+
registry = self.repository.load()
|
|
72
|
+
if not registry:
|
|
73
|
+
raise ValueError("No tool configs configured")
|
|
74
|
+
|
|
75
|
+
if not any(c.tool_alias == alias for c in registry.tool_configs):
|
|
76
|
+
raise ValueError(f"Tool config with alias '{alias}' not found")
|
|
77
|
+
|
|
78
|
+
registry.tool_configs = [c for c in registry.tool_configs if c.tool_alias != alias]
|
|
79
|
+
|
|
80
|
+
if registry.tool_configs:
|
|
81
|
+
self.repository.save(registry)
|
|
82
|
+
else:
|
|
83
|
+
self.repository.delete()
|
|
@@ -17,6 +17,7 @@ from data_designer.config.default_model_settings import (
|
|
|
17
17
|
get_providers_with_missing_api_keys,
|
|
18
18
|
)
|
|
19
19
|
from data_designer.config.interface import DataDesignerInterface
|
|
20
|
+
from data_designer.config.mcp import MCPProviderT
|
|
20
21
|
from data_designer.config.models import (
|
|
21
22
|
ModelConfig,
|
|
22
23
|
ModelProvider,
|
|
@@ -63,6 +64,8 @@ from data_designer.plugins.registry import PluginRegistry
|
|
|
63
64
|
if TYPE_CHECKING:
|
|
64
65
|
import pandas as pd
|
|
65
66
|
|
|
67
|
+
from data_designer.engine.models.facade import ModelFacade
|
|
68
|
+
|
|
66
69
|
logger = logging.getLogger(__name__)
|
|
67
70
|
|
|
68
71
|
|
|
@@ -98,6 +101,9 @@ class DataDesigner(DataDesignerInterface[DatasetCreationResults]):
|
|
|
98
101
|
If not provided, will check for an environment variable called DATA_DESIGNER_MANAGED_ASSETS_PATH.
|
|
99
102
|
If the environment variable is not set, will use the default managed assets directory, which
|
|
100
103
|
is defined in `data_designer.config.utils.constants`.
|
|
104
|
+
mcp_providers: Optional list of MCP provider configurations to enable tool-calling for
|
|
105
|
+
LLM generation columns. Supports both MCPProvider (remote/SSE) and
|
|
106
|
+
LocalStdioMCPProvider (local subprocess).
|
|
101
107
|
"""
|
|
102
108
|
|
|
103
109
|
def __init__(
|
|
@@ -108,12 +114,14 @@ class DataDesigner(DataDesignerInterface[DatasetCreationResults]):
|
|
|
108
114
|
secret_resolver: SecretResolver | None = None,
|
|
109
115
|
seed_readers: list[SeedReader] | None = None,
|
|
110
116
|
managed_assets_path: Path | str | None = None,
|
|
117
|
+
mcp_providers: list[MCPProviderT] | None = None,
|
|
111
118
|
):
|
|
112
119
|
self._secret_resolver = secret_resolver or DEFAULT_SECRET_RESOLVER
|
|
113
120
|
self._artifact_path = Path(artifact_path) if artifact_path is not None else Path.cwd() / "artifacts"
|
|
114
121
|
self._run_config = RunConfig()
|
|
115
122
|
self._managed_assets_path = Path(managed_assets_path or MANAGED_ASSETS_PATH)
|
|
116
123
|
self._model_providers = self._resolve_model_providers(model_providers)
|
|
124
|
+
self._mcp_providers = mcp_providers or []
|
|
117
125
|
self._model_provider_registry = resolve_model_provider_registry(
|
|
118
126
|
self._model_providers, get_default_provider_name()
|
|
119
127
|
)
|
|
@@ -325,6 +333,23 @@ class DataDesigner(DataDesignerInterface[DatasetCreationResults]):
|
|
|
325
333
|
"""
|
|
326
334
|
self._run_config = run_config
|
|
327
335
|
|
|
336
|
+
def get_models(self, model_aliases: list[str]) -> dict[str, ModelFacade]:
|
|
337
|
+
"""Get a dict of ModelFacade instances for custom column development.
|
|
338
|
+
|
|
339
|
+
Use this to experiment with custom column generator functions outside of
|
|
340
|
+
the full pipeline. The returned dict matches the `models` argument passed
|
|
341
|
+
to 3-arg custom column functions.
|
|
342
|
+
|
|
343
|
+
Args:
|
|
344
|
+
model_aliases: List of model aliases to include in the dict.
|
|
345
|
+
|
|
346
|
+
Returns:
|
|
347
|
+
Dict mapping alias to ModelFacade instance.
|
|
348
|
+
"""
|
|
349
|
+
config_builder = DataDesignerConfigBuilder()
|
|
350
|
+
resource_provider = self._create_resource_provider("dev", config_builder)
|
|
351
|
+
return {alias: resource_provider.model_registry.get_model(model_alias=alias) for alias in model_aliases}
|
|
352
|
+
|
|
328
353
|
def _resolve_model_providers(self, model_providers: list[ModelProvider] | None) -> list[ModelProvider]:
|
|
329
354
|
if model_providers is None:
|
|
330
355
|
model_providers = get_default_providers()
|
|
@@ -382,6 +407,8 @@ class DataDesigner(DataDesignerInterface[DatasetCreationResults]):
|
|
|
382
407
|
seed_dataset_source=seed_dataset_source,
|
|
383
408
|
seed_reader_registry=self._seed_reader_registry,
|
|
384
409
|
run_config=self._run_config,
|
|
410
|
+
mcp_providers=self._mcp_providers,
|
|
411
|
+
tool_configs=config_builder.tool_configs,
|
|
385
412
|
)
|
|
386
413
|
|
|
387
414
|
def _get_interface_info(self, model_providers: list[ModelProvider]) -> InterfaceInfo:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-designer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0rc1
|
|
4
4
|
Summary: General framework for synthetic data generation
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -14,8 +14,8 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
14
14
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
15
15
|
Classifier: Topic :: Software Development
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
|
-
Requires-Dist: data-designer-config
|
|
18
|
-
Requires-Dist: data-designer-engine
|
|
17
|
+
Requires-Dist: data-designer-config==0.5.0rc1
|
|
18
|
+
Requires-Dist: data-designer-engine==0.5.0rc1
|
|
19
19
|
Requires-Dist: prompt-toolkit<4,>=3.0.0
|
|
20
20
|
Requires-Dist: typer<1,>=0.12.0
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
@@ -1,39 +1,48 @@
|
|
|
1
1
|
data_designer/cli/README.md,sha256=uPE3KdlF5Y3H8pQc8c6ZZ3h6YSFXNQW-iEXGQJuVnI4,9026
|
|
2
2
|
data_designer/cli/__init__.py,sha256=--5yQzMciTX8-vroyXyFNBCqQ0HQd67GWCwnIoIHhJ4,251
|
|
3
|
-
data_designer/cli/main.py,sha256=
|
|
3
|
+
data_designer/cli/main.py,sha256=tDTnvDriBPZ8CetQxKrxuEytAksKDjY-kCaSll6fqCc,2179
|
|
4
4
|
data_designer/cli/ui.py,sha256=IgpV_Ht6qmLFrT3ybgOoADTQthoSGJxrwds38o1Zz10,17632
|
|
5
5
|
data_designer/cli/utils.py,sha256=yyKZfr4ndcsngKgmpj5r4fN7fP6ouX-Nwx1Go5s6SdM,2151
|
|
6
6
|
data_designer/cli/commands/__init__.py,sha256=ObZ6NUPeEvvpGTJ5WIGKUyIrIjaI747OM6ErweRtHxQ,137
|
|
7
7
|
data_designer/cli/commands/download.py,sha256=bTynzORVj1rftrrQhmTj6se-ITi2_L7Z3qtio1mLvXU,1770
|
|
8
|
-
data_designer/cli/commands/list.py,sha256=
|
|
8
|
+
data_designer/cli/commands/list.py,sha256=JH6i5FMCE5SkeNZFYNGNTqNx-yTl9rATitEgGDQLMw8,9176
|
|
9
|
+
data_designer/cli/commands/mcp.py,sha256=9880VhA02RT5xX0WXhYFmPFDDpUMVRKvAUsUV1Jd7F4,488
|
|
9
10
|
data_designer/cli/commands/models.py,sha256=Ot4eWyEbCS7heG_bylBdWZ1qj4CILv_hTddm2VdY0Dc,428
|
|
10
11
|
data_designer/cli/commands/providers.py,sha256=-zVNtE_0A0hifcUk6n3c_v_Olcd14mHt3N8_HahHTQ4,491
|
|
11
12
|
data_designer/cli/commands/reset.py,sha256=iCNjkFNdGU6Y7rv-Fprl9ZW60riseL_R7CrYi6DrwR0,3514
|
|
13
|
+
data_designer/cli/commands/tools.py,sha256=c9QT6sQOWU-vNNWfrgIrqEZGsZ_4SPrGXt4E5_gRTZs,467
|
|
12
14
|
data_designer/cli/controllers/__init__.py,sha256=70il4GIKebdau43nCXyu4VcQj7IFNoxxjEo1Z3hm8_M,491
|
|
13
15
|
data_designer/cli/controllers/download_controller.py,sha256=9lQo-njn890WJiewGazfd6SrBBA4Rj8LYFkXZG_phPI,8117
|
|
16
|
+
data_designer/cli/controllers/mcp_provider_controller.py,sha256=d0mXouNuuLL_mXL0XtTO9XjeCBAyNRw0Sue87WDLjwA,8715
|
|
14
17
|
data_designer/cli/controllers/model_controller.py,sha256=CZimP1npWwH8UrJXlfMIfbNEn9pcJKtg14CqgArbqQM,9020
|
|
15
|
-
data_designer/cli/controllers/provider_controller.py,sha256=
|
|
18
|
+
data_designer/cli/controllers/provider_controller.py,sha256=2WHyq_t4pU10-Whw4y1-GM2l6Nl8QqnVt4705rXhlRs,12514
|
|
19
|
+
data_designer/cli/controllers/tool_controller.py,sha256=v8qrSQvv-4I1WDApQSoYPY3nogWsiERLjfCsvAYtWus,8653
|
|
16
20
|
data_designer/cli/forms/__init__.py,sha256=UpTr7s5q2GFFssNz3229Kb5JxvFOqtZ55XpifB9a15w,713
|
|
17
21
|
data_designer/cli/forms/builder.py,sha256=Juem3wB2j1KXtZZY7wVP0-eWKK_tj_0-L8Zq9EAS0-k,1731
|
|
18
22
|
data_designer/cli/forms/field.py,sha256=TYEQLqjMvYBS_ftf6Ms-D5J6TOIK9NNe-Ydvo5Nkq50,7543
|
|
19
23
|
data_designer/cli/forms/form.py,sha256=wFdKS0WfuhfotRtwWZgJyN2HrTthI7Kx07NUoQV2DtM,2066
|
|
24
|
+
data_designer/cli/forms/mcp_provider_builder.py,sha256=sGyZ_O9x0HnH6UoiyuLqpVsJfM-6QUqLNCftn9sCqtA,7813
|
|
20
25
|
data_designer/cli/forms/model_builder.py,sha256=DPggV2cl-XQPUiVhrrGO_4_d7jTn5_kBeBn9oTw-V1U,13354
|
|
21
26
|
data_designer/cli/forms/provider_builder.py,sha256=YA6IoLwV39Sh6w0lZYoF25m-ryhnqBqysXLUo4V5X-w,2936
|
|
27
|
+
data_designer/cli/forms/tool_builder.py,sha256=I0MdWRq2y1tpkWHok3apbyQEt4Y00YhqcNlgIk6evz0,7687
|
|
22
28
|
data_designer/cli/repositories/__init__.py,sha256=ukHlLpOimH9CCJsdW5U9tooV_oFWQ4iLGK5GNi5YXtM,475
|
|
23
29
|
data_designer/cli/repositories/base.py,sha256=ofOAHeAYAL6Bm4EJjSOFaNPD-odm2PlrW6quRkQQzaw,1095
|
|
30
|
+
data_designer/cli/repositories/mcp_provider_repository.py,sha256=z1lrTLRFe4D9QlYzBPokZte-BK1ubGs_jF0vblglSo8,1652
|
|
24
31
|
data_designer/cli/repositories/model_repository.py,sha256=oaa5ISP8Y-BRzXOdzAhDHf0FqmWngSEJ8RGOYWeXi4M,1487
|
|
25
32
|
data_designer/cli/repositories/persona_repository.py,sha256=3ZRarD6BYAKVYFs_r9hDkh2nfkKW7BA8KJyfcYP0RRc,2683
|
|
26
33
|
data_designer/cli/repositories/provider_repository.py,sha256=hG6tYbjR3gT8DmXL7usRvMrc6ILws4ECyTZ5imENpuQ,1556
|
|
34
|
+
data_designer/cli/repositories/tool_repository.py,sha256=mlAxDMP_wizx82_Yv3P3XJ1T5nyyjEFbMBSegG3UJFg,1463
|
|
27
35
|
data_designer/cli/services/__init__.py,sha256=2ycyikXx-8gbYZm-xl6IMyKXLwR4REU5heg6BkUW6qo,455
|
|
28
36
|
data_designer/cli/services/download_service.py,sha256=m_wtDfxAA80tZdIf9kUS3ye8fzKG-3DjfDnm5u0-mJE,3519
|
|
37
|
+
data_designer/cli/services/mcp_provider_service.py,sha256=EimM3hILxoj0RMAuwo3CARuHzM_7f5VQvcyiEr5UbZk,3052
|
|
29
38
|
data_designer/cli/services/model_service.py,sha256=cFiP9ZQIprPdrVibUC6uwL-NuCYRgx8XVIjxDV-TznU,3926
|
|
30
39
|
data_designer/cli/services/provider_service.py,sha256=5cou_EWU0RwE9p2PWpRBM9HcPqdENLpkHUuGzQ-l9J4,3957
|
|
40
|
+
data_designer/cli/services/tool_service.py,sha256=Qg-rN_m7V_bVl1DN1jhbU6SLKC0JTruWpdz1FA0aP5o,3060
|
|
31
41
|
data_designer/interface/__init__.py,sha256=2LbGosKhVhNXSUj-MX00b6UJRW-qeyiQ7PdEwtJxwso,718
|
|
32
|
-
data_designer/interface/
|
|
33
|
-
data_designer/interface/data_designer.py,sha256=0LBAUL7W75EmMwz-f4Lr0my9BXg1OTR2hKpgNsWnqLk,17275
|
|
42
|
+
data_designer/interface/data_designer.py,sha256=p8jb4c3v9MjlYJz1LhCC9a_lXTcIo9HFhHo-nruYRH4,18610
|
|
34
43
|
data_designer/interface/errors.py,sha256=Ft9GMeIrOHJv_PC_1rU6hWcNyq1GHdsFYZSc9HnUrxU,606
|
|
35
44
|
data_designer/interface/results.py,sha256=3fGwlhif4ufqUGh-EgsGccrob4S6a7WZ6BgFiszTo_A,3871
|
|
36
|
-
data_designer-0.
|
|
37
|
-
data_designer-0.
|
|
38
|
-
data_designer-0.
|
|
39
|
-
data_designer-0.
|
|
45
|
+
data_designer-0.5.0rc1.dist-info/METADATA,sha256=W001vnIVll0iAeEEv1m_HfISP35FYrQU-7PJ-E2H2r0,7175
|
|
46
|
+
data_designer-0.5.0rc1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
47
|
+
data_designer-0.5.0rc1.dist-info/entry_points.txt,sha256=NWWWidyDxN6CYX6y664PhBYMhbaYTQTyprqfYAgkyCg,57
|
|
48
|
+
data_designer-0.5.0rc1.dist-info/RECORD,,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# file generated by setuptools-scm
|
|
2
|
-
# don't change, don't track in version control
|
|
3
|
-
|
|
4
|
-
__all__ = [
|
|
5
|
-
"__version__",
|
|
6
|
-
"__version_tuple__",
|
|
7
|
-
"version",
|
|
8
|
-
"version_tuple",
|
|
9
|
-
"__commit_id__",
|
|
10
|
-
"commit_id",
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
TYPE_CHECKING = False
|
|
14
|
-
if TYPE_CHECKING:
|
|
15
|
-
from typing import Tuple
|
|
16
|
-
from typing import Union
|
|
17
|
-
|
|
18
|
-
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
-
COMMIT_ID = Union[str, None]
|
|
20
|
-
else:
|
|
21
|
-
VERSION_TUPLE = object
|
|
22
|
-
COMMIT_ID = object
|
|
23
|
-
|
|
24
|
-
version: str
|
|
25
|
-
__version__: str
|
|
26
|
-
__version_tuple__: VERSION_TUPLE
|
|
27
|
-
version_tuple: VERSION_TUPLE
|
|
28
|
-
commit_id: COMMIT_ID
|
|
29
|
-
__commit_id__: COMMIT_ID
|
|
30
|
-
|
|
31
|
-
__version__ = version = '0.4.0rc2'
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 4, 0, 'rc2')
|
|
33
|
-
|
|
34
|
-
__commit_id__ = commit_id = None
|
|
File without changes
|
|
File without changes
|