data-designer-engine 0.6.1rc2__tar.gz → 0.7.0__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.
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/.gitignore +0 -3
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/PKG-INFO +4 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/pyproject.toml +2 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/column_profilers/base.py +2 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/column_statistics.py +5 -1
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/dataset_profiler.py +13 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/utils/column_statistics_calculations.py +16 -4
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/base.py +1 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/custom.py +13 -35
- data_designer_engine-0.7.0/src/data_designer/engine/column_generators/generators/expression.py +130 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/context.py +1 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/async_scheduler.py +292 -106
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/dataset_builder.py +80 -743
- data_designer_engine-0.7.0/src/data_designer/engine/dataset_builders/row_group_plan.py +303 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/completion.py +31 -12
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/queue.py +54 -28
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/resolver.py +22 -1
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/resources.py +8 -3
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/processor_runner.py +13 -24
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/row_group_buffer.py +1 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/skip_evaluator.py +2 -4
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/skip_tracker.py +5 -8
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/model_provider.py +10 -62
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/errors.py +1 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/factory.py +2 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/model_request_executor.py +16 -13
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/errors.py +8 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/registry.py +23 -4
- data_designer_engine-0.7.0/src/data_designer/engine/readiness.py +125 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/resource_provider.py +1 -11
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validation.py +1 -12
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_dataset_profiler.py +65 -1
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/utils/test_column_statistics_calculations.py +42 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_async_generators.py +3 -4
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_custom.py +3 -95
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_expression.py +60 -1
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/conftest.py +1 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_queue.py +84 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_resolver.py +7 -1
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_resources.py +9 -3
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/test_async_builder_integration.py +273 -50
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/test_async_scheduler.py +437 -95
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/test_dataset_builder.py +227 -835
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_skip_tracker.py +5 -5
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_model_request_executor.py +57 -2
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/test_model_errors.py +12 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/test_model_registry.py +47 -1
- data_designer_engine-0.7.0/tests/engine/test_model_provider.py +125 -0
- data_designer_engine-0.7.0/tests/engine/test_readiness.py +386 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_validation.py +0 -18
- data_designer_engine-0.6.1rc2/src/data_designer/engine/column_generators/generators/expression.py +0 -56
- data_designer_engine-0.6.1rc2/src/data_designer/engine/dataset_builders/utils/dataset_batch_manager.py +0 -230
- data_designer_engine-0.6.1rc2/tests/engine/dataset_builders/utils/test_dataset_batch_manager.py +0 -490
- data_designer_engine-0.6.1rc2/tests/engine/models/test_async_engine_switch.py +0 -49
- data_designer_engine-0.6.1rc2/tests/engine/test_model_provider.py +0 -228
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/README.md +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/column_profilers/judge_score_profiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/column_profilers/registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/analysis/utils/judge_score_processing.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/capacity.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/embedding.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/image.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/llm_completion.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/samplers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/seed_dataset.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/generators/validation.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/utils/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/utils/generator_classification.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/utils/judge_score_factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/column_generators/utils/prompt_renderer.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/compiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/configurable_task.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/multi_column_configs.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/task_admission.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/task_model.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/scheduling/task_policies.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/async_concurrency.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/async_progress_reporter.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/concurrency.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/config_compiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/execution_graph.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/progress_tracker.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/dataset_builders/utils/sticky_progress_bar.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/facade.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/io.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/mcp/registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/anthropic.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/anthropic_translation.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/http_helpers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/http_model_client.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/adapters/openai_compatible.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/parsing.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/retry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/clients/types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/facade.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/parser.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/postprocessors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/tag_parsers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/parsers/types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/recipes/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/recipes/response_recipes.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/config.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/controller.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/limits.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/outcomes.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/pressure.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/queue.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/resolver.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/request_admission/resources.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/resources.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/telemetry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/usage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/models/utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/observability.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/ginja/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/ginja/ast.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/ginja/environment.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/ginja/exceptions.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/ginja/record.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/gsonschema/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/gsonschema/exceptions.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/gsonschema/schema_transformers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/gsonschema/types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/gsonschema/validators.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/processors/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/processors/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/processors/drop_columns.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/processors/registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/processors/schema_transform.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/processing/utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/registry/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/registry/data_designer_registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/registry/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/atif.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/claude_code.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/codex.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/hermes_agent.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/pi_coding_agent.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/agent_rollout/utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/managed_dataset_generator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/person_reader.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/resources/seed_reader.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/column.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/constraints.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/data_sources/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/data_sources/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/data_sources/sources.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/assets/zip_area_code_map.parquet +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/dataset_based_person_fields.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/email_address_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/national_id_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/person.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/entities/phone_number.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/generator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/jinja_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/people_gen.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/person_constants.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/schema.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/schema_builder.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/sampling_gen/utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/secret_resolver.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/storage/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/storage/artifact_storage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/storage/media_storage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/testing/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/testing/fixtures.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/testing/seed_readers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/testing/stubs.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/testing/utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/utils/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/utils/token_counting.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/local_callable.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/python.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/remote.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/validators/sql.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/column_profilers/test_base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/column_profilers/test_judge_score_profiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_column_statistics_calculator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_data/artifacts/dataset/column_configs.json +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_data/artifacts/dataset/dataset.json +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_data/artifacts/dataset/metadata.json +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/test_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/analysis/utils/test_judge_score_processing.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_column_generator_base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_embedding.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_image.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_llm_completion_generators.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_samplers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_seed_dataset.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/generators/test_validation.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/test_registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/utils/test_column_generator_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/utils/test_generator_classification.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/utils/test_judge_score_factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/column_generators/utils/test_prompt_renderer.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_completion.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_task_admission.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_task_model.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/scheduling/test_task_policies.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/test_multi_column_configs.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_async_concurrency.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_concurrency.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_config_compiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_execution_graph.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_progress_tracker.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_row_group_buffer.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_skip_evaluator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_sticky_progress_bar.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/dataset_builders/utils/test_topological_sort.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/mcp/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/mcp/test_mcp_facade.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/mcp/test_mcp_factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/mcp/test_mcp_io.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/mcp/test_mcp_registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_anthropic.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_anthropic_translation.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_client_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_factory.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_native_http_clients.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_openai_compatible.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_parsing.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_retry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/clients/test_types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/parsers/test_parser.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/parsers/test_parsers_types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/parsers/test_postprocessors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/parsers/test_tag_parsers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/recipes/test_recipe_base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/recipes/test_response_recipes.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/request_admission/test_controller.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/stub_secrets.json +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/test_facade.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/test_model_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/models/test_usage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/ginja/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/ginja/test_ast.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/ginja/test_environment.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/ginja/test_exceptions.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/ginja/test_record.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/gsonschema/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/gsonschema/test_exceptions.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/gsonschema/test_schema_transformers.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/gsonschema/test_types.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/gsonschema/test_validators.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/processors/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/processors/test_drop_columns.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/processors/test_registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/processors/test_schema_transform.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/processing/test_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/registry/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/registry/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/registry/test_base.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/registry/test_data_designer_registry.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/registry/test_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_atif.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_claude_code.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_codex.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_hermes_agent.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_pi_coding_agent.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/agent_rollout/test_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/test_managed_dataset_generator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/test_person_reader.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/test_resource_provider.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/resources/test_seed_reader.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/conftest.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/data_sources/test_sampler_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/data_sources/test_sources.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/entities/test_email_address_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/entities/test_national_id_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/entities/test_person.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/entities/test_phone_number.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_column.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_constraints.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_generator.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_jinja_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_people_gen.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_schema.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/sampling_gen/test_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/storage/__init__.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/storage/test_artifact_storage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/storage/test_media_storage.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_capacity.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_compiler.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_configurable_task.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_dataset_metadata.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_engine_errors.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_observability.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/test_secret_resolver.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/testing/test_plugin_testing_utils.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/utils/test_token_counting.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/validators/test_local_callable.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/validators/test_python.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/validators/test_remote.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/engine/validators/test_sql.py +0 -0
- {data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/tests/test_plugin_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-designer-engine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Generation engine for DataDesigner synthetic data generation
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -17,7 +17,7 @@ Requires-Python: >=3.10
|
|
|
17
17
|
Requires-Dist: anyascii<1,>=0.3.3
|
|
18
18
|
Requires-Dist: chardet<6,>=3.0.2
|
|
19
19
|
Requires-Dist: cryptography<47,>=46.0.7
|
|
20
|
-
Requires-Dist: data-designer-config==0.
|
|
20
|
+
Requires-Dist: data-designer-config==0.7.0
|
|
21
21
|
Requires-Dist: duckdb<2,>=1.5.0
|
|
22
22
|
Requires-Dist: faker<21,>=20.1.0
|
|
23
23
|
Requires-Dist: fsspec<2026,>=2025.3.0
|
|
@@ -32,10 +32,12 @@ Requires-Dist: marko<3,>=2.1.2
|
|
|
32
32
|
Requires-Dist: mcp<2,>=1.26.0
|
|
33
33
|
Requires-Dist: networkx<4,>=3.0
|
|
34
34
|
Requires-Dist: numpy<3,>=1.23.5
|
|
35
|
+
Requires-Dist: pyjwt[crypto]<3,>=2.13.0
|
|
35
36
|
Requires-Dist: python-multipart<1,>=0.0.29
|
|
36
37
|
Requires-Dist: ruff<1,>=0.14.10
|
|
37
38
|
Requires-Dist: scipy<2,>=1.11.0
|
|
38
39
|
Requires-Dist: sqlfluff<5,>=4.1.0
|
|
40
|
+
Requires-Dist: starlette<2,>=1.2.0
|
|
39
41
|
Requires-Dist: tiktoken<1,>=0.8.0
|
|
40
42
|
Description-Content-Type: text/markdown
|
|
41
43
|
|
|
@@ -51,10 +51,12 @@ dependencies = [
|
|
|
51
51
|
"mcp>=1.26.0,<2",
|
|
52
52
|
"networkx>=3.0,<4",
|
|
53
53
|
"numpy>=1.23.5,<3",
|
|
54
|
+
"pyjwt[crypto]>=2.13.0,<3", # 2.13.0 fixes PyJWT security advisories pulled in by mcp
|
|
54
55
|
"python-multipart>=0.0.29,<1", # 0.0.29 addresses multipart security advisories pulled in by mcp
|
|
55
56
|
"ruff>=0.14.10,<1",
|
|
56
57
|
"scipy>=1.11.0,<2",
|
|
57
58
|
"sqlfluff>=4.1.0,<5",
|
|
59
|
+
"starlette>=1.2.0,<2", # 1.2.0 fixes security advisory pulled in by mcp
|
|
58
60
|
"tiktoken>=0.8.0,<1",
|
|
59
61
|
]
|
|
60
62
|
|
|
@@ -12,6 +12,7 @@ from typing_extensions import Self
|
|
|
12
12
|
|
|
13
13
|
from data_designer.config.base import ConfigBase, SingleColumnConfig
|
|
14
14
|
from data_designer.config.column_types import DataDesignerColumnType
|
|
15
|
+
from data_designer.config.run_config import JinjaRenderingEngine
|
|
15
16
|
from data_designer.engine.configurable_task import ConfigurableTask, TaskConfigT
|
|
16
17
|
|
|
17
18
|
logger = logging.getLogger(__name__)
|
|
@@ -20,6 +21,7 @@ logger = logging.getLogger(__name__)
|
|
|
20
21
|
class ColumnConfigWithDataFrame(ConfigBase):
|
|
21
22
|
column_config: SingleColumnConfig
|
|
22
23
|
df: pd.DataFrame
|
|
24
|
+
jinja_rendering_engine: JinjaRenderingEngine = JinjaRenderingEngine.SECURE
|
|
23
25
|
|
|
24
26
|
@model_validator(mode="after")
|
|
25
27
|
def validate_column_exists(self) -> Self:
|
|
@@ -73,7 +73,11 @@ class GeneralColumnStatisticsCalculator(BaseModel):
|
|
|
73
73
|
|
|
74
74
|
class LLMTextColumnStatisticsCalculator(GeneralColumnStatisticsCalculator):
|
|
75
75
|
def calculate_token_stats(self) -> dict[str, Any]:
|
|
76
|
-
return calculate_token_stats(
|
|
76
|
+
return calculate_token_stats(
|
|
77
|
+
self.column_config,
|
|
78
|
+
self.df,
|
|
79
|
+
jinja_rendering_engine=self.column_config_with_df.jinja_rendering_engine,
|
|
80
|
+
)
|
|
77
81
|
|
|
78
82
|
|
|
79
83
|
class LLMCodeColumnStatisticsCalculator(LLMTextColumnStatisticsCalculator): ...
|
|
@@ -76,7 +76,7 @@ class DataDesignerDatasetProfiler:
|
|
|
76
76
|
logger.info(f"{LOG_INDENT}{c.get_column_emoji()} column: '{c.name}'")
|
|
77
77
|
column_statistics.append(
|
|
78
78
|
get_column_statistics_calculator(c.column_type)(
|
|
79
|
-
column_config_with_df=
|
|
79
|
+
column_config_with_df=self._create_column_config_with_df(c, dataset)
|
|
80
80
|
).calculate()
|
|
81
81
|
)
|
|
82
82
|
|
|
@@ -86,7 +86,7 @@ class DataDesignerDatasetProfiler:
|
|
|
86
86
|
applicable_column_types = profiler.get_applicable_column_types()
|
|
87
87
|
for c in self.config.column_configs:
|
|
88
88
|
if c.column_type in applicable_column_types:
|
|
89
|
-
params =
|
|
89
|
+
params = self._create_column_config_with_df(c, dataset)
|
|
90
90
|
column_profiles.append(profiler.profile(params))
|
|
91
91
|
if len(column_profiles) == 0:
|
|
92
92
|
logger.warning(
|
|
@@ -128,6 +128,17 @@ class DataDesignerDatasetProfiler:
|
|
|
128
128
|
config=profiler_config, resource_provider=self.resource_provider
|
|
129
129
|
)
|
|
130
130
|
|
|
131
|
+
def _create_column_config_with_df(
|
|
132
|
+
self,
|
|
133
|
+
column_config: ColumnConfigT,
|
|
134
|
+
dataset: pd.DataFrame,
|
|
135
|
+
) -> ColumnConfigWithDataFrame:
|
|
136
|
+
return ColumnConfigWithDataFrame(
|
|
137
|
+
column_config=column_config,
|
|
138
|
+
df=dataset,
|
|
139
|
+
jinja_rendering_engine=self.resource_provider.run_config.jinja_rendering_engine,
|
|
140
|
+
)
|
|
141
|
+
|
|
131
142
|
def _validate_column_profiler_configs(self) -> None:
|
|
132
143
|
if self.config.column_profiler_configs:
|
|
133
144
|
if self.resource_provider.model_registry is None:
|
|
@@ -17,6 +17,7 @@ from data_designer.config.analysis.column_statistics import (
|
|
|
17
17
|
from data_designer.config.column_configs import (
|
|
18
18
|
LLMTextColumnConfig,
|
|
19
19
|
)
|
|
20
|
+
from data_designer.config.run_config import JinjaRenderingEngine
|
|
20
21
|
from data_designer.engine.column_generators.utils.prompt_renderer import (
|
|
21
22
|
PromptType,
|
|
22
23
|
RecordBasedPromptRenderer,
|
|
@@ -95,12 +96,18 @@ def calculate_general_column_info(column_name: str, df: pd.DataFrame) -> dict[st
|
|
|
95
96
|
|
|
96
97
|
|
|
97
98
|
def calculate_input_token_stats(
|
|
98
|
-
column_config: LLMTextColumnConfig,
|
|
99
|
+
column_config: LLMTextColumnConfig,
|
|
100
|
+
df: pd.DataFrame,
|
|
101
|
+
*,
|
|
102
|
+
jinja_rendering_engine: JinjaRenderingEngine = JinjaRenderingEngine.SECURE,
|
|
99
103
|
) -> dict[str, float | MissingValue]:
|
|
100
104
|
try:
|
|
101
105
|
num_tokens = []
|
|
102
106
|
num_samples = min(MAX_PROMPT_SAMPLE_SIZE, len(df))
|
|
103
|
-
renderer = RecordBasedPromptRenderer(
|
|
107
|
+
renderer = RecordBasedPromptRenderer(
|
|
108
|
+
response_recipe=create_response_recipe(column_config),
|
|
109
|
+
jinja_rendering_engine=jinja_rendering_engine,
|
|
110
|
+
)
|
|
104
111
|
for record in df.sample(num_samples, random_state=RANDOM_SEED).to_dict(orient="records"):
|
|
105
112
|
system_prompt = renderer.render(
|
|
106
113
|
prompt_template=column_config.system_prompt, record=record, prompt_type=PromptType.SYSTEM_PROMPT
|
|
@@ -143,9 +150,14 @@ def calculate_output_token_stats(
|
|
|
143
150
|
}
|
|
144
151
|
|
|
145
152
|
|
|
146
|
-
def calculate_token_stats(
|
|
153
|
+
def calculate_token_stats(
|
|
154
|
+
column_config: LLMTextColumnConfig,
|
|
155
|
+
df: pd.DataFrame,
|
|
156
|
+
*,
|
|
157
|
+
jinja_rendering_engine: JinjaRenderingEngine = JinjaRenderingEngine.SECURE,
|
|
158
|
+
) -> dict[str, float | MissingValue]:
|
|
147
159
|
return {
|
|
148
|
-
**calculate_input_token_stats(column_config, df),
|
|
160
|
+
**calculate_input_token_stats(column_config, df, jinja_rendering_engine=jinja_rendering_engine),
|
|
149
161
|
**calculate_output_token_stats(column_config, df),
|
|
150
162
|
}
|
|
151
163
|
|
|
@@ -363,6 +363,5 @@ class ColumnGeneratorFullColumn(ColumnGenerator[TaskConfigT], ABC):
|
|
|
363
363
|
|
|
364
364
|
Returns:
|
|
365
365
|
DataFrame containing the input columns plus the new column and any side-effect
|
|
366
|
-
columns.
|
|
367
|
-
the input; when it is ``True``, the row count may change.
|
|
366
|
+
columns. The row count must match the input.
|
|
368
367
|
"""
|
|
@@ -50,12 +50,12 @@ def _compute_bridge_timeout(
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class _AsyncBridgedModelFacade:
|
|
53
|
-
"""Proxy that bridges ``model.generate()`` to ``model.agenerate()
|
|
53
|
+
"""Proxy that bridges ``model.generate()`` to ``model.agenerate()``.
|
|
54
54
|
|
|
55
|
-
When a
|
|
56
|
-
|
|
57
|
-
``SyncClientUnavailableError`` and schedules ``agenerate()`` on the engine's
|
|
58
|
-
event loop via ``run_coroutine_threadsafe``.
|
|
55
|
+
When a synchronous custom column runs inside ``asyncio.to_thread``, the sync
|
|
56
|
+
HTTP client is unavailable. This proxy intercepts the resulting
|
|
57
|
+
``SyncClientUnavailableError`` and schedules ``agenerate()`` on the engine's
|
|
58
|
+
persistent event loop via ``run_coroutine_threadsafe``.
|
|
59
59
|
|
|
60
60
|
All other attributes are forwarded to the underlying facade unchanged.
|
|
61
61
|
"""
|
|
@@ -82,7 +82,7 @@ class _AsyncBridgedModelFacade:
|
|
|
82
82
|
pass # No running loop - safe to bridge
|
|
83
83
|
else:
|
|
84
84
|
raise RuntimeError(
|
|
85
|
-
"model.generate() is not available
|
|
85
|
+
"model.generate() is not available from the event loop. "
|
|
86
86
|
"Use 'await model.agenerate()' in async custom columns."
|
|
87
87
|
)
|
|
88
88
|
|
|
@@ -153,13 +153,10 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
153
153
|
|
|
154
154
|
def get_generation_strategy(self) -> GenerationStrategy:
|
|
155
155
|
"""Return strategy based on config."""
|
|
156
|
-
return self.config.generation_strategy
|
|
156
|
+
return GenerationStrategy(self.config.generation_strategy)
|
|
157
157
|
|
|
158
|
-
def generate(self, data: dict | pd.DataFrame) -> dict | pd.DataFrame
|
|
159
|
-
"""Generate column value(s) for a row (dict) or batch (DataFrame).
|
|
160
|
-
|
|
161
|
-
For cell_by_cell with allow_resize=True, may return dict or list[dict] (0, 1, or N rows).
|
|
162
|
-
"""
|
|
158
|
+
def generate(self, data: dict | pd.DataFrame) -> dict | pd.DataFrame:
|
|
159
|
+
"""Generate column value(s) for a row (dict) or batch (DataFrame)."""
|
|
163
160
|
is_full_column = self.config.generation_strategy == GenerationStrategy.FULL_COLUMN
|
|
164
161
|
is_dataframe = not isinstance(data, dict)
|
|
165
162
|
|
|
@@ -177,7 +174,7 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
177
174
|
|
|
178
175
|
return self._generate(data, is_dataframe)
|
|
179
176
|
|
|
180
|
-
async def agenerate(self, data: dict | pd.DataFrame) -> dict | pd.DataFrame
|
|
177
|
+
async def agenerate(self, data: dict | pd.DataFrame) -> dict | pd.DataFrame:
|
|
181
178
|
"""Async generate — branches on strategy and detects coroutine functions."""
|
|
182
179
|
is_full_column = self.config.generation_strategy == GenerationStrategy.FULL_COLUMN
|
|
183
180
|
if is_full_column:
|
|
@@ -229,7 +226,7 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
229
226
|
models = self._build_models_dict()
|
|
230
227
|
return await fn(data, self.config.generator_params, models)
|
|
231
228
|
|
|
232
|
-
def _generate(self, data: dict | pd.DataFrame, is_dataframe: bool) -> dict | pd.DataFrame
|
|
229
|
+
def _generate(self, data: dict | pd.DataFrame, is_dataframe: bool) -> dict | pd.DataFrame:
|
|
233
230
|
"""Unified generation logic for both strategies."""
|
|
234
231
|
get_keys = (lambda d: set(d.columns)) if is_dataframe else (lambda d: set(d.keys()))
|
|
235
232
|
|
|
@@ -265,28 +262,11 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
265
262
|
|
|
266
263
|
def _postprocess_result(
|
|
267
264
|
self,
|
|
268
|
-
result: dict | pd.DataFrame
|
|
265
|
+
result: dict | pd.DataFrame,
|
|
269
266
|
is_dataframe: bool,
|
|
270
267
|
keys_before: set[str],
|
|
271
|
-
) -> dict | pd.DataFrame
|
|
268
|
+
) -> dict | pd.DataFrame:
|
|
272
269
|
"""Validate type and output columns of a generation result."""
|
|
273
|
-
# Cell-by-cell with allow_resize: accept dict or list[dict]
|
|
274
|
-
if not is_dataframe and self.config.allow_resize:
|
|
275
|
-
if isinstance(result, dict):
|
|
276
|
-
return self._validate_output(result, keys_before, is_dataframe)
|
|
277
|
-
if isinstance(result, list):
|
|
278
|
-
if not all(isinstance(r, dict) for r in result):
|
|
279
|
-
raise CustomColumnGenerationError(
|
|
280
|
-
f"Custom generator for column '{self.config.name}' with allow_resize must return "
|
|
281
|
-
"dict or list[dict]; list elements must be dicts."
|
|
282
|
-
)
|
|
283
|
-
return [self._validate_cell_output(r, keys_before) for r in result]
|
|
284
|
-
raise CustomColumnGenerationError(
|
|
285
|
-
f"Custom generator for column '{self.config.name}' with allow_resize must return "
|
|
286
|
-
f"dict or list[dict], got {type(result).__name__}"
|
|
287
|
-
)
|
|
288
|
-
|
|
289
|
-
# Validate return type for non-resize paths
|
|
290
270
|
expected_type = lazy.pd.DataFrame if is_dataframe else dict
|
|
291
271
|
type_name = "DataFrame" if is_dataframe else "dict"
|
|
292
272
|
if not isinstance(result, expected_type):
|
|
@@ -425,5 +405,3 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
425
405
|
logger.info(f"{LOG_INDENT}model_aliases: {self.config.model_aliases}")
|
|
426
406
|
if self.config.generator_params:
|
|
427
407
|
logger.info(f"{LOG_INDENT}generator_params: {self.config.generator_params}")
|
|
428
|
-
if self.config.allow_resize:
|
|
429
|
-
logger.info(f"{LOG_INDENT}allow_resize: {self.config.allow_resize}")
|
data_designer_engine-0.7.0/src/data_designer/engine/column_generators/generators/expression.py
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
import logging
|
|
7
|
+
from collections import Counter
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
|
|
10
|
+
import data_designer.lazy_heavy_imports as lazy
|
|
11
|
+
from data_designer.config.column_configs import ExpressionColumnConfig
|
|
12
|
+
from data_designer.engine.column_generators.generators.base import ColumnGeneratorFullColumn
|
|
13
|
+
from data_designer.engine.column_generators.utils.errors import ExpressionTemplateRenderError
|
|
14
|
+
from data_designer.engine.context import format_row_group_tag
|
|
15
|
+
from data_designer.engine.processing.ginja.environment import WithJinja2UserTemplateRendering
|
|
16
|
+
from data_designer.engine.processing.ginja.exceptions import EmptyTemplateRenderError, UserTemplateError
|
|
17
|
+
from data_designer.engine.processing.utils import deserialize_json_values
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
import pandas as pd
|
|
21
|
+
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
24
|
+
EMPTY_RENDERED_EXPRESSION = "EmptyRenderedExpression"
|
|
25
|
+
TEMPLATE_RENDER_ERROR = "TemplateRenderError"
|
|
26
|
+
TYPE_CAST_ERROR = "TypeCastError"
|
|
27
|
+
_VALID_DTYPES = {"str", "float", "int", "bool"}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ExpressionColumnGenerator(WithJinja2UserTemplateRendering, ColumnGeneratorFullColumn[ExpressionColumnConfig]):
|
|
31
|
+
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
32
|
+
logger.info(f"🧩 {format_row_group_tag()}Generating column `{self.config.name}` from expression")
|
|
33
|
+
|
|
34
|
+
missing_columns = list(set(self.config.required_columns) - set(data.columns))
|
|
35
|
+
if len(missing_columns) > 0:
|
|
36
|
+
error_msg = (
|
|
37
|
+
f"There was an error preparing the Jinja2 expression template. "
|
|
38
|
+
f"The following columns {missing_columns} are missing!"
|
|
39
|
+
)
|
|
40
|
+
raise ExpressionTemplateRenderError(error_msg)
|
|
41
|
+
|
|
42
|
+
if self.config.dtype not in _VALID_DTYPES:
|
|
43
|
+
raise ValueError(f"Invalid dtype: {self.config.dtype}")
|
|
44
|
+
|
|
45
|
+
self.prepare_jinja2_template_renderer(self.config.expr, data.columns.to_list())
|
|
46
|
+
records: list[dict] = []
|
|
47
|
+
retained_indexes: list[object] = []
|
|
48
|
+
drop_counts: Counter[str] = Counter()
|
|
49
|
+
|
|
50
|
+
# ``DataFrame.to_dict(orient="records")`` returns ``[]`` for a 0-column
|
|
51
|
+
# DataFrame regardless of its row count, so a root expression dispatched
|
|
52
|
+
# against a fresh row group buffer (no upstream columns) would otherwise
|
|
53
|
+
# skip rendering entirely. Synthesize empty per-row dicts in that case so
|
|
54
|
+
# the loop still fires once per row and the template can render its
|
|
55
|
+
# constant value (or drop the row uniformly).
|
|
56
|
+
row_indexes = data.index.to_list()
|
|
57
|
+
row_records = data.to_dict(orient="records")
|
|
58
|
+
if not row_records and row_indexes:
|
|
59
|
+
row_records = [{} for _ in row_indexes]
|
|
60
|
+
|
|
61
|
+
for row_index, record in zip(row_indexes, row_records, strict=True):
|
|
62
|
+
prepared_record = deserialize_json_values(record)
|
|
63
|
+
try:
|
|
64
|
+
rendered_value = self.render_template(prepared_record)
|
|
65
|
+
except EmptyTemplateRenderError:
|
|
66
|
+
drop_counts[EMPTY_RENDERED_EXPRESSION] += 1
|
|
67
|
+
continue
|
|
68
|
+
except Exception:
|
|
69
|
+
logger.debug(
|
|
70
|
+
"Expression column %r dropped row %r after template render failure.",
|
|
71
|
+
self.config.name,
|
|
72
|
+
row_index,
|
|
73
|
+
exc_info=True,
|
|
74
|
+
)
|
|
75
|
+
drop_counts[TEMPLATE_RENDER_ERROR] += 1
|
|
76
|
+
continue
|
|
77
|
+
|
|
78
|
+
if self._is_empty_rendered_expression(rendered_value):
|
|
79
|
+
drop_counts[EMPTY_RENDERED_EXPRESSION] += 1
|
|
80
|
+
continue
|
|
81
|
+
|
|
82
|
+
try:
|
|
83
|
+
record[self.config.name] = self._cast_type(rendered_value)
|
|
84
|
+
except (OverflowError, TypeError, ValueError):
|
|
85
|
+
drop_counts[TYPE_CAST_ERROR] += 1
|
|
86
|
+
continue
|
|
87
|
+
|
|
88
|
+
records.append(record)
|
|
89
|
+
retained_indexes.append(row_index)
|
|
90
|
+
|
|
91
|
+
total_dropped = sum(drop_counts.values())
|
|
92
|
+
if total_dropped > 0:
|
|
93
|
+
self._log_row_drops(drop_counts, input_count=len(data), retained_count=len(records))
|
|
94
|
+
if len(records) == 0:
|
|
95
|
+
raise UserTemplateError(f"Expression column {self.config.name!r} produced no valid rows.")
|
|
96
|
+
|
|
97
|
+
return lazy.pd.DataFrame(records, index=retained_indexes)
|
|
98
|
+
|
|
99
|
+
@staticmethod
|
|
100
|
+
def _is_empty_rendered_expression(value: object) -> bool:
|
|
101
|
+
if value is None:
|
|
102
|
+
return True
|
|
103
|
+
return isinstance(value, str) and len(value.strip()) == 0
|
|
104
|
+
|
|
105
|
+
def _log_row_drops(self, drop_counts: Counter[str], *, input_count: int, retained_count: int) -> None:
|
|
106
|
+
breakdown = ", ".join(f"{name}={count}" for name, count in sorted(drop_counts.items()))
|
|
107
|
+
total_dropped = sum(drop_counts.values())
|
|
108
|
+
message = (
|
|
109
|
+
f"Expression column {self.config.name!r} dropped {total_dropped}/{input_count} rows after render: "
|
|
110
|
+
f"{breakdown}."
|
|
111
|
+
)
|
|
112
|
+
if retained_count == 0:
|
|
113
|
+
logger.error(message)
|
|
114
|
+
else:
|
|
115
|
+
logger.warning(f"{message} Continuing with {retained_count} rows.")
|
|
116
|
+
|
|
117
|
+
def _cast_type(self, value: str) -> str | float | int | bool:
|
|
118
|
+
if self.config.dtype == "str":
|
|
119
|
+
return value
|
|
120
|
+
elif self.config.dtype == "float":
|
|
121
|
+
return float(value)
|
|
122
|
+
elif self.config.dtype == "int":
|
|
123
|
+
return int(float(value))
|
|
124
|
+
elif self.config.dtype == "bool":
|
|
125
|
+
try:
|
|
126
|
+
return bool(int(float(value)))
|
|
127
|
+
except ValueError:
|
|
128
|
+
return bool(f"{value}".lower() == "true")
|
|
129
|
+
else:
|
|
130
|
+
raise ValueError(f"Invalid dtype: {self.config.dtype}")
|
{data_designer_engine-0.6.1rc2 → data_designer_engine-0.7.0}/src/data_designer/engine/context.py
RENAMED
|
@@ -5,8 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
|
|
6
6
|
from contextvars import ContextVar
|
|
7
7
|
|
|
8
|
-
# Set per row group by
|
|
9
|
-
# task executes, and the sync engine's ``_run_batch`` sets it for each batch.
|
|
8
|
+
# Set per row group by the async scheduler before each task executes.
|
|
10
9
|
# Value: (current_rg_index, total_rg_count) or None.
|
|
11
10
|
current_row_group: ContextVar[tuple[int, int] | None] = ContextVar("current_row_group", default=None)
|
|
12
11
|
|