data-designer-engine 0.5.9__tar.gz → 0.6.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.5.9 → data_designer_engine-0.6.0}/.gitignore +11 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/PKG-INFO +4 -2
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/pyproject.toml +2 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/base.py +45 -3
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/custom.py +54 -5
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/async_scheduler.py +334 -78
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/dataset_builder.py +651 -48
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/async_concurrency.py +15 -5
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/completion_tracker.py +70 -15
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/dataset_batch_manager.py +23 -5
- data_designer_engine-0.6.0/src/data_designer/engine/dataset_builders/utils/fair_task_queue.py +156 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/row_group_buffer.py +12 -4
- data_designer_engine-0.6.0/src/data_designer/engine/dataset_builders/utils/scheduling_hints.py +123 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/model_provider.py +33 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/throttle_manager.py +51 -19
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/errors.py +11 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/facade.py +24 -8
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/atif.py +4 -2
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/claude_code.py +4 -2
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/codex.py +4 -3
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/utils.py +37 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/resource_provider.py +12 -5
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/seed_reader.py +10 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/storage/artifact_storage.py +45 -2
- data_designer_engine-0.6.0/src/data_designer/engine/testing/utils.py +35 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_custom.py +231 -92
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/test_async_builder_integration.py +16 -3
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/test_async_scheduler.py +808 -4
- data_designer_engine-0.6.0/tests/engine/dataset_builders/test_dataset_builder.py +2613 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_async_concurrency.py +0 -4
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_completion_tracker.py +21 -4
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_dataset_batch_manager.py +37 -0
- data_designer_engine-0.6.0/tests/engine/dataset_builders/utils/test_fair_task_queue.py +219 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_row_group_buffer.py +32 -0
- data_designer_engine-0.6.0/tests/engine/dataset_builders/utils/test_scheduling_hints.py +150 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_throttle_manager.py +105 -0
- data_designer_engine-0.6.0/tests/engine/registry/__init__.py +2 -0
- data_designer_engine-0.6.0/tests/engine/resources/__init__.py +2 -0
- data_designer_engine-0.6.0/tests/engine/resources/agent_rollout/__init__.py +2 -0
- data_designer_engine-0.6.0/tests/engine/resources/agent_rollout/test_utils.py +39 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/storage/test_artifact_storage.py +91 -1
- data_designer_engine-0.6.0/tests/engine/test_model_provider.py +228 -0
- data_designer_engine-0.6.0/tests/engine/testing/test_plugin_testing_utils.py +132 -0
- data_designer_engine-0.5.9/src/data_designer/engine/testing/utils.py +0 -20
- data_designer_engine-0.5.9/tests/engine/dataset_builders/test_dataset_builder.py +0 -1398
- data_designer_engine-0.5.9/tests/engine/test_model_provider.py +0 -135
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/README.md +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/column_profilers/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/column_profilers/judge_score_profiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/column_profilers/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/column_statistics.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/dataset_profiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/utils/column_statistics_calculations.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/analysis/utils/judge_score_processing.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/embedding.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/expression.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/image.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/llm_completion.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/samplers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/seed_dataset.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/generators/validation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/utils/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/utils/generator_classification.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/utils/judge_score_factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/column_generators/utils/prompt_renderer.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/compiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/configurable_task.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/context.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/multi_column_configs.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/async_progress_reporter.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/concurrency.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/config_compiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/execution_graph.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/processor_runner.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/progress_tracker.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/skip_evaluator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/skip_tracker.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/sticky_progress_bar.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/dataset_builders/utils/task_model.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/facade.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/io.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/mcp/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/anthropic.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/anthropic_translation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/http_helpers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/http_model_client.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/adapters/openai_compatible.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/parsing.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/retry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/throttled.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/clients/types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/parser.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/postprocessors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/tag_parsers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/parsers/types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/recipes/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/recipes/response_recipes.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/telemetry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/usage.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/models/utils.py +0 -0
- {data_designer_engine-0.5.9/src/data_designer/engine/processing/ginja → data_designer_engine-0.6.0/src/data_designer/engine/processing}/__init__.py +0 -0
- {data_designer_engine-0.5.9/src/data_designer/engine/processing/gsonschema → data_designer_engine-0.6.0/src/data_designer/engine/processing/ginja}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/ginja/ast.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/ginja/environment.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/ginja/exceptions.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/ginja/record.py +0 -0
- {data_designer_engine-0.5.9/src/data_designer/engine/sampling_gen/entities → data_designer_engine-0.6.0/src/data_designer/engine/processing/gsonschema}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/gsonschema/exceptions.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/gsonschema/schema_transformers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/gsonschema/types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/gsonschema/validators.py +0 -0
- {data_designer_engine-0.5.9/tests → data_designer_engine-0.6.0/src/data_designer/engine/processing/processors}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/processors/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/processors/drop_columns.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/processors/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/processors/schema_transform.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/processing/utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/registry/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/registry/data_designer_registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/registry/errors.py +0 -0
- {data_designer_engine-0.5.9/tests/engine → data_designer_engine-0.6.0/src/data_designer/engine/resources}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/hermes_agent.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/pi_coding_agent.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/agent_rollout/types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/managed_dataset_generator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/resources/person_reader.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/column.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/constraints.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/data_sources/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/data_sources/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/data_sources/sources.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/column_generators/generators → data_designer_engine-0.6.0/src/data_designer/engine/sampling_gen/entities}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/assets/zip_area_code_map.parquet +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/dataset_based_person_fields.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/email_address_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/national_id_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/person.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/entities/phone_number.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/generator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/jinja_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/people_gen.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/person_constants.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/schema.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/schema_builder.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/sampling_gen/utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/secret_resolver.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/storage/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/storage/media_storage.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/testing/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/testing/fixtures.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/testing/seed_readers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/testing/stubs.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/local_callable.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/python.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/remote.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/src/data_designer/engine/validators/sql.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/models → data_designer_engine-0.6.0/tests}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/conftest.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/models/clients → data_designer_engine-0.6.0/tests/engine}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/column_profilers/test_base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/column_profilers/test_judge_score_profiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_column_statistics_calculator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_data/artifacts/dataset/column_configs.json +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_data/artifacts/dataset/dataset.json +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_data/artifacts/dataset/metadata.json +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_dataset_profiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/test_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/utils/test_column_statistics_calculations.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/analysis/utils/test_judge_score_processing.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/processing → data_designer_engine-0.6.0/tests/engine/column_generators/generators}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_async_generators.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_column_generator_base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_embedding.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_expression.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_image.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_llm_completion_generators.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_samplers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_seed_dataset.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/generators/test_validation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/test_registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/utils/test_column_generator_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/utils/test_generator_classification.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/utils/test_judge_score_factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/column_generators/utils/test_prompt_renderer.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/test_multi_column_configs.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_concurrency.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_config_compiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_execution_graph.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_progress_tracker.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_skip_evaluator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_skip_tracker.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_sticky_progress_bar.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_task_model.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/dataset_builders/utils/test_topological_sort.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/mcp/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/mcp/test_mcp_facade.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/mcp/test_mcp_factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/mcp/test_mcp_io.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/mcp/test_mcp_registry.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/processing/ginja → data_designer_engine-0.6.0/tests/engine/models}/__init__.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/processing/gsonschema → data_designer_engine-0.6.0/tests/engine/models/clients}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_anthropic.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_anthropic_translation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_client_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_factory.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_native_http_clients.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_openai_compatible.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_parsing.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_retry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/clients/test_throttled_model_client.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/parsers/test_parser.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/parsers/test_parsers_types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/parsers/test_postprocessors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/parsers/test_tag_parsers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/recipes/test_recipe_base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/recipes/test_response_recipes.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/stub_secrets.json +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_async_engine_switch.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_facade.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_model_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_model_registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_model_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/models/test_usage.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/processing/processors → data_designer_engine-0.6.0/tests/engine/processing}/__init__.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/registry → data_designer_engine-0.6.0/tests/engine/processing/ginja}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/ginja/test_ast.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/ginja/test_environment.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/ginja/test_exceptions.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/ginja/test_record.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/resources → data_designer_engine-0.6.0/tests/engine/processing/gsonschema}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/gsonschema/test_exceptions.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/gsonschema/test_schema_transformers.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/gsonschema/test_types.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/gsonschema/test_validators.py +0 -0
- {data_designer_engine-0.5.9/tests/engine/resources/agent_rollout → data_designer_engine-0.6.0/tests/engine/processing/processors}/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/processors/test_drop_columns.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/processors/test_registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/processors/test_schema_transform.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/processing/test_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/registry/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/registry/test_base.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/registry/test_data_designer_registry.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/registry/test_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/agent_rollout/test_atif.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/agent_rollout/test_claude_code.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/agent_rollout/test_codex.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/agent_rollout/test_hermes_agent.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/agent_rollout/test_pi_coding_agent.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/test_managed_dataset_generator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/test_person_reader.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/test_resource_provider.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/resources/test_seed_reader.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/conftest.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/data_sources/test_sampler_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/data_sources/test_sources.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/entities/test_email_address_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/entities/test_national_id_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/entities/test_person.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/entities/test_phone_number.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_column.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_constraints.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_generator.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_jinja_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_people_gen.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_schema.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/sampling_gen/test_utils.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/storage/__init__.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/storage/test_media_storage.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_compiler.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_configurable_task.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_dataset_metadata.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_engine_errors.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_secret_resolver.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/test_validation.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/validators/test_local_callable.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/validators/test_python.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/validators/test_remote.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/engine/validators/test_sql.py +0 -0
- {data_designer_engine-0.5.9 → data_designer_engine-0.6.0}/tests/test_plugin_manager.py +0 -0
|
@@ -106,3 +106,14 @@ packages/data-designer/README.md
|
|
|
106
106
|
|
|
107
107
|
# Claude worktrees
|
|
108
108
|
.claude/worktrees/
|
|
109
|
+
|
|
110
|
+
# Fern libraries output — generated by `fern docs md generate` from `libraries:` in fern/docs.yml.
|
|
111
|
+
# Regenerate locally (no token needed) or in CI before publishing.
|
|
112
|
+
fern/code-reference/
|
|
113
|
+
|
|
114
|
+
# Fern notebook output - generated by `make generate-fern-notebooks`.
|
|
115
|
+
fern/components/notebooks/*.json
|
|
116
|
+
fern/components/notebooks/*.ts
|
|
117
|
+
|
|
118
|
+
# Graphify structural analysis cache (CI-only, cached via actions/cache)
|
|
119
|
+
graphify-out/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-designer-engine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.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
|
|
@@ -15,7 +15,8 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
15
15
|
Requires-Python: >=3.10
|
|
16
16
|
Requires-Dist: anyascii<1,>=0.3.3
|
|
17
17
|
Requires-Dist: chardet<6,>=3.0.2
|
|
18
|
-
Requires-Dist:
|
|
18
|
+
Requires-Dist: cryptography<47,>=46.0.7
|
|
19
|
+
Requires-Dist: data-designer-config==0.6.0
|
|
19
20
|
Requires-Dist: duckdb<2,>=1.5.0
|
|
20
21
|
Requires-Dist: faker<21,>=20.1.0
|
|
21
22
|
Requires-Dist: fsspec<2026,>=2025.3.0
|
|
@@ -29,6 +30,7 @@ Requires-Dist: lxml<7,>=6.1.0
|
|
|
29
30
|
Requires-Dist: marko<3,>=2.1.2
|
|
30
31
|
Requires-Dist: mcp<2,>=1.26.0
|
|
31
32
|
Requires-Dist: networkx<4,>=3.0
|
|
33
|
+
Requires-Dist: python-multipart<1,>=0.0.27
|
|
32
34
|
Requires-Dist: ruff<1,>=0.14.10
|
|
33
35
|
Requires-Dist: scipy<2,>=1.11.0
|
|
34
36
|
Requires-Dist: sqlfluff<4,>=3.2.0
|
|
@@ -34,6 +34,7 @@ bump = true
|
|
|
34
34
|
dependencies = [
|
|
35
35
|
"anyascii>=0.3.3,<1",
|
|
36
36
|
"chardet>=3.0.2,<6", # Pulled in by sqlfluff
|
|
37
|
+
"cryptography>=46.0.7,<47", # 46.0.7 fixes CVE-2026-39892 pulled in by mcp
|
|
37
38
|
"data-designer-config=={{ version }}",
|
|
38
39
|
"duckdb>=1.5.0,<2",
|
|
39
40
|
"faker>=20.1.0,<21",
|
|
@@ -48,6 +49,7 @@ dependencies = [
|
|
|
48
49
|
"marko>=2.1.2,<3",
|
|
49
50
|
"mcp>=1.26.0,<2",
|
|
50
51
|
"networkx>=3.0,<4",
|
|
52
|
+
"python-multipart>=0.0.27,<1", # 0.0.27 fixes security advisory pulled in by mcp
|
|
51
53
|
"ruff>=0.14.10,<1",
|
|
52
54
|
"scipy>=1.11.0,<2",
|
|
53
55
|
"sqlfluff>=3.2.0,<4",
|
|
@@ -16,6 +16,14 @@ from data_designer.logging import LOG_DOUBLE_INDENT, LOG_INDENT
|
|
|
16
16
|
|
|
17
17
|
_T = TypeVar("_T")
|
|
18
18
|
|
|
19
|
+
# Preserved deliberately. Two other 300s deadlines were retired in the
|
|
20
|
+
# async-default flip (PR #592): the throttle queue-wait and the
|
|
21
|
+
# ``_AsyncBridgedModelFacade`` bridge in ``custom.py`` — both have
|
|
22
|
+
# ``ModelFacade`` context and could derive a per-call deadline from
|
|
23
|
+
# ``inference_parameters.timeout``. This generic ``ColumnGenerator.generate()``
|
|
24
|
+
# fallback has no facade reachable, so a defensive backstop stays here for
|
|
25
|
+
# now. Wiring a per-call timeout through to ``_run_coroutine_sync`` is
|
|
26
|
+
# tracked as a structural follow-up.
|
|
19
27
|
SYNC_BRIDGE_TIMEOUT = 300
|
|
20
28
|
|
|
21
29
|
if TYPE_CHECKING:
|
|
@@ -59,7 +67,7 @@ class ColumnGenerator(ConfigurableTask[TaskConfigT], ABC):
|
|
|
59
67
|
|
|
60
68
|
@property
|
|
61
69
|
def is_llm_bound(self) -> bool:
|
|
62
|
-
"""Whether this generator makes
|
|
70
|
+
"""Whether this generator makes model/API calls during generation."""
|
|
63
71
|
return False
|
|
64
72
|
|
|
65
73
|
@property
|
|
@@ -209,18 +217,52 @@ class ColumnGeneratorWithModel(ColumnGeneratorWithModelRegistry[TaskConfigT], AB
|
|
|
209
217
|
|
|
210
218
|
|
|
211
219
|
class ColumnGeneratorCellByCell(ColumnGenerator[TaskConfigT], ABC):
|
|
220
|
+
"""Base class for column generators invoked once per row.
|
|
221
|
+
|
|
222
|
+
Override ``generate`` to return the complete row mapping after adding the
|
|
223
|
+
generated value. The engine calls the generator once per row and may run
|
|
224
|
+
calls concurrently. Use this base when generation is independent per row
|
|
225
|
+
(e.g. an LLM call per row, a per-row transform).
|
|
226
|
+
"""
|
|
227
|
+
|
|
212
228
|
@staticmethod
|
|
213
229
|
def get_generation_strategy() -> GenerationStrategy:
|
|
214
230
|
return GenerationStrategy.CELL_BY_CELL
|
|
215
231
|
|
|
216
232
|
@abstractmethod
|
|
217
|
-
def generate(self, data: dict) -> dict:
|
|
233
|
+
def generate(self, data: dict) -> dict:
|
|
234
|
+
"""Generate one row's output from a single row's upstream values.
|
|
235
|
+
|
|
236
|
+
Args:
|
|
237
|
+
data: Current row mapping containing the upstream values available to this column.
|
|
238
|
+
|
|
239
|
+
Returns:
|
|
240
|
+
Complete row mapping with existing keys preserved and the new column value added.
|
|
241
|
+
Include declared side-effect columns when the config creates them.
|
|
242
|
+
"""
|
|
218
243
|
|
|
219
244
|
|
|
220
245
|
class ColumnGeneratorFullColumn(ColumnGenerator[TaskConfigT], ABC):
|
|
246
|
+
"""Base class for column generators that transform a full batch at once.
|
|
247
|
+
|
|
248
|
+
Override ``generate`` to return the complete batch DataFrame after adding
|
|
249
|
+
generated values. Use this base when generation is vectorizable or when an
|
|
250
|
+
external API accepts batched input more efficiently than per-row calls.
|
|
251
|
+
"""
|
|
252
|
+
|
|
221
253
|
@staticmethod
|
|
222
254
|
def get_generation_strategy() -> GenerationStrategy:
|
|
223
255
|
return GenerationStrategy.FULL_COLUMN
|
|
224
256
|
|
|
225
257
|
@abstractmethod
|
|
226
|
-
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
258
|
+
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
259
|
+
"""Generate an entire batch of row outputs.
|
|
260
|
+
|
|
261
|
+
Args:
|
|
262
|
+
data: DataFrame containing the upstream columns this generator depends on.
|
|
263
|
+
|
|
264
|
+
Returns:
|
|
265
|
+
DataFrame containing the input columns plus the new column and any side-effect
|
|
266
|
+
columns. When ``config.allow_resize`` is ``False``, the row count must match
|
|
267
|
+
the input; when it is ``True``, the row count may change.
|
|
268
|
+
"""
|
|
@@ -13,8 +13,9 @@ from typing import TYPE_CHECKING, Any
|
|
|
13
13
|
|
|
14
14
|
import data_designer.lazy_heavy_imports as lazy
|
|
15
15
|
from data_designer.config.column_configs import CustomColumnConfig, GenerationStrategy
|
|
16
|
-
from data_designer.engine.column_generators.generators.base import
|
|
16
|
+
from data_designer.engine.column_generators.generators.base import ColumnGenerator
|
|
17
17
|
from data_designer.engine.column_generators.utils.errors import CustomColumnGenerationError
|
|
18
|
+
from data_designer.engine.models.errors import RETRYABLE_MODEL_ERRORS, ModelTimeoutError
|
|
18
19
|
from data_designer.logging import LOG_INDENT
|
|
19
20
|
|
|
20
21
|
if TYPE_CHECKING:
|
|
@@ -22,6 +23,30 @@ if TYPE_CHECKING:
|
|
|
22
23
|
|
|
23
24
|
logger = logging.getLogger(__name__)
|
|
24
25
|
|
|
26
|
+
# Floor for the derived sync→async bridge timeout. Defends against pathologically
|
|
27
|
+
# small `inference_parameters.timeout` values; under normal operation the per-call
|
|
28
|
+
# derivation in ``_compute_bridge_timeout`` exceeds this floor.
|
|
29
|
+
# Module-level so tests can patch it for fast feedback.
|
|
30
|
+
_BRIDGE_TIMEOUT_FLOOR_S: float = 60.0
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _compute_bridge_timeout(
|
|
34
|
+
request_timeout: float,
|
|
35
|
+
max_correction_steps: int,
|
|
36
|
+
max_conversation_restarts: int = 0,
|
|
37
|
+
) -> float:
|
|
38
|
+
"""Derive the sync→async bridge deadline for one logical generation.
|
|
39
|
+
|
|
40
|
+
One bridged call can fire up to ``(1 + max_conversation_restarts)`` full
|
|
41
|
+
attempts, and each attempt can fire up to ``(1 + max_correction_steps)``
|
|
42
|
+
requests against the model. The 1.5x buffer absorbs HTTP connect/teardown
|
|
43
|
+
and serialization overhead. The floor (``_BRIDGE_TIMEOUT_FLOOR_S``) keeps
|
|
44
|
+
the deadline sane when ``inference_parameters.timeout`` is small or the
|
|
45
|
+
factory default.
|
|
46
|
+
"""
|
|
47
|
+
attempts = (1 + max_conversation_restarts) * (1 + max_correction_steps)
|
|
48
|
+
return max(_BRIDGE_TIMEOUT_FLOOR_S, attempts * request_timeout * 1.5)
|
|
49
|
+
|
|
25
50
|
|
|
26
51
|
class _AsyncBridgedModelFacade:
|
|
27
52
|
"""Proxy that bridges ``model.generate()`` to ``model.agenerate()`` in async engine mode.
|
|
@@ -62,14 +87,30 @@ class _AsyncBridgedModelFacade:
|
|
|
62
87
|
|
|
63
88
|
from data_designer.engine.dataset_builders.utils.async_concurrency import ensure_async_engine_loop
|
|
64
89
|
|
|
90
|
+
# Honor a per-call ``timeout=`` override (passed straight through to the
|
|
91
|
+
# HTTP layer); fall back to the model's configured ``inference_parameters.timeout``
|
|
92
|
+
# via ``facade.request_timeout`` when no override is set.
|
|
93
|
+
per_request_timeout_override = kwargs.get("timeout")
|
|
94
|
+
per_request_timeout = (
|
|
95
|
+
float(per_request_timeout_override) if per_request_timeout_override is not None else facade.request_timeout
|
|
96
|
+
)
|
|
97
|
+
correction_steps = int(kwargs.get("max_correction_steps", 0) or 0)
|
|
98
|
+
conversation_restarts = int(kwargs.get("max_conversation_restarts", 0) or 0)
|
|
99
|
+
bridge_timeout = _compute_bridge_timeout(per_request_timeout, correction_steps, conversation_restarts)
|
|
100
|
+
|
|
65
101
|
loop = ensure_async_engine_loop()
|
|
66
102
|
future = asyncio.run_coroutine_threadsafe(facade.agenerate(*args, **kwargs), loop)
|
|
67
103
|
try:
|
|
68
|
-
return future.result(timeout=
|
|
104
|
+
return future.result(timeout=bridge_timeout)
|
|
69
105
|
except concurrent.futures.TimeoutError as exc:
|
|
70
106
|
future.cancel()
|
|
71
|
-
|
|
72
|
-
|
|
107
|
+
# Demoted to debug: the raised ModelTimeoutError already surfaces
|
|
108
|
+
# the timeout at the scheduler with full context, and the throttled
|
|
109
|
+
# degraded-provider WARN is the user-facing signal under sustained
|
|
110
|
+
# bridge timeouts. Per-event WARN was noise on top of those.
|
|
111
|
+
logger.debug("Async model bridge timed out after %.0fs; coroutine cancelled", bridge_timeout)
|
|
112
|
+
# Raise as ModelTimeoutError so the scheduler classifies it retryable.
|
|
113
|
+
raise ModelTimeoutError(f"model.generate() bridge timed out after {bridge_timeout:.0f}s") from exc
|
|
73
114
|
|
|
74
115
|
def __getattr__(self, name: str) -> Any:
|
|
75
116
|
return getattr(object.__getattribute__(self, "_facade"), name)
|
|
@@ -81,7 +122,7 @@ class _AsyncBridgedModelFacade:
|
|
|
81
122
|
class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
82
123
|
"""Column generator that uses a user-provided callable function.
|
|
83
124
|
|
|
84
|
-
Supports two strategies based on config.
|
|
125
|
+
Supports two strategies based on config.generation_strategy:
|
|
85
126
|
- cell_by_cell: Processes rows one at a time (dict -> dict), parallelized by framework.
|
|
86
127
|
- full_column: Processes entire batch (DataFrame -> DataFrame) for vectorized ops.
|
|
87
128
|
|
|
@@ -147,6 +188,10 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
147
188
|
result = await self._ainvoke_generator_function(data)
|
|
148
189
|
except CustomColumnGenerationError:
|
|
149
190
|
raise
|
|
191
|
+
except RETRYABLE_MODEL_ERRORS:
|
|
192
|
+
# Preserve retryability so the scheduler can salvage these
|
|
193
|
+
# instead of counting them toward the early-shutdown gate.
|
|
194
|
+
raise
|
|
150
195
|
except Exception as e:
|
|
151
196
|
logger.warning(
|
|
152
197
|
f"⚠️ Custom generator function {self.config.generator_function.__name__!r} "
|
|
@@ -193,6 +238,10 @@ class CustomColumnGenerator(ColumnGenerator[CustomColumnConfig]):
|
|
|
193
238
|
result = self._invoke_generator_function(data)
|
|
194
239
|
except CustomColumnGenerationError:
|
|
195
240
|
raise
|
|
241
|
+
except RETRYABLE_MODEL_ERRORS:
|
|
242
|
+
# Preserve retryability so the scheduler can salvage these
|
|
243
|
+
# instead of counting them toward the early-shutdown gate.
|
|
244
|
+
raise
|
|
196
245
|
except Exception as e:
|
|
197
246
|
if not is_dataframe:
|
|
198
247
|
logger.warning(
|