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.
@@ -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.4.0rc2
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=1klKdUKPZTgmUbduHSzEFueQHWkc-42Gcbri25cjiHo,1974
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=Lu02qFTkhEkLX2e7ak_rHmoO8_4Jjrgy4Yua-EAtyHo,4091
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=mSLHkc60lu9VsXJE2NNpFZ6zHkasz6UQLtoTBYoFtkA,12293
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/_version.py,sha256=FvItxCBzPigrdVpFPfL1gQeV1-km5r7nCNGUzrYebTU,714
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.4.0rc2.dist-info/METADATA,sha256=NsHs5-WFT_-yKD1YsHEvkDZimxLQ3-Bw7JgUEGKnx8Y,7155
37
- data_designer-0.4.0rc2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
38
- data_designer-0.4.0rc2.dist-info/entry_points.txt,sha256=NWWWidyDxN6CYX6y664PhBYMhbaYTQTyprqfYAgkyCg,57
39
- data_designer-0.4.0rc2.dist-info/RECORD,,
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