data-designer 0.3.1__tar.gz → 0.3.3__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-0.3.3/.github/ISSUE_TEMPLATE/bug-report.yml +51 -0
- data_designer-0.3.3/.github/ISSUE_TEMPLATE/config.yml +5 -0
- data_designer-0.3.3/.github/ISSUE_TEMPLATE/development-task.yml +32 -0
- data_designer-0.3.3/.github/ISSUE_TEMPLATE/feature-request.yml +45 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/ci.yml +26 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.gitignore +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/Makefile +42 -5
- {data_designer-0.3.1 → data_designer-0.3.3}/PKG-INFO +3 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/README.md +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/product_info_qa.py +2 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/example.md +0 -3
- data_designer-0.3.3/e2e_tests/pyproject.toml +38 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/__init__.py +2 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/__init__.py +2 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/config.py +12 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/impl.py +26 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/plugin.py +10 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/__init__.py +2 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/config.py +13 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/impl.py +15 -0
- data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/plugin.py +10 -0
- data_designer-0.3.3/e2e_tests/tests/test_e2e.py +73 -0
- data_designer-0.3.3/e2e_tests/tests/test_seed.csv +4 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/pyproject.toml +2 -2
- data_designer-0.3.3/scripts/test_license_headers.py +899 -0
- data_designer-0.3.3/scripts/update_license_headers.py +373 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/_version.py +2 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/__init__.py +1 -1
- data_designer-0.3.3/src/data_designer/cli/commands/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/download.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/list.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/models.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/providers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/reset.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/download_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/model_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/provider_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/field.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/form.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/model_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/provider_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/main.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/model_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/persona_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/provider_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/download_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/model_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/provider_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/ui.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/utils.py +1 -1
- data_designer-0.3.3/src/data_designer/config/__init__.py +2 -0
- data_designer-0.3.3/src/data_designer/config/analysis/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/column_profilers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/column_statistics.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/dataset_profiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/reporting.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/column_configs.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/column_types.py +1 -36
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/config_builder.py +4 -21
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/data_designer_config.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/dataset_builders.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/default_model_settings.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/exports.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/interface.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/models.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/preview_results.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/processors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/run_config.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/sampler_constraints.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/sampler_params.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/seed.py +2 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/seed_source.py +2 -8
- data_designer-0.3.3/src/data_designer/config/seed_source_types.py +17 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/code_lang.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/constants.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/info.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/io_helpers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/misc.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/numerical_helpers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/type_helpers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/visualization.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/validator_params.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/judge_score_profiler.py +1 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_statistics.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/dataset_profiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/column_statistics_calculations.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/judge_score_processing.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/column_generators/__init__.py +2 -0
- data_designer-0.3.3/src/data_designer/engine/column_generators/generators/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/base.py +26 -14
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/embedding.py +3 -6
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/expression.py +3 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/llm_completion.py +8 -13
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/samplers.py +3 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/seed_dataset.py +4 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/validation.py +3 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/errors.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/column_generators/utils/generator_classification.py +41 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/judge_score_factory.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/prompt_renderer.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/compiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/configurable_task.py +3 -13
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/artifact_storage.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/column_wise_builder.py +8 -5
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/multi_column_configs.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/dataset_builders/utils/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/concurrency.py +25 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/config_compiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dag.py +3 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dataset_batch_manager.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/model_provider.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/models/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/facade.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/litellm_overrides.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/models/parsers/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/parser.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/postprocessors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/tag_parsers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/types.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/response_recipes.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/telemetry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/usage.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/utils.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/processing/ginja/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/ast.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/environment.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/exceptions.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/record.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/processing/gsonschema/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/exceptions.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/schema_transformers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/types.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/validators.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/base.py +3 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/drop_columns.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/schema_transform.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/data_designer_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_generator.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_storage.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/resource_provider.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/seed_reader.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/column.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/constraints.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/sources.py +1 -1
- data_designer-0.3.3/src/data_designer/engine/sampling_gen/entities/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/dataset_based_person_fields.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/email_address_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/national_id_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/person.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/phone_number.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/generator.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/jinja_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/people_gen.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/person_constants.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/secret_resolver.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validation.py +3 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/local_callable.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/python.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/remote.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/sql.py +1 -1
- data_designer-0.3.3/src/data_designer/errors.py +5 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/essentials/__init__.py +1 -1
- data_designer-0.3.3/src/data_designer/interface/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/data_designer.py +5 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/results.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/logging.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugin_manager.py +14 -7
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/plugin.py +4 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/testing/__init__.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/testing/stubs.py +1 -8
- data_designer-0.3.3/src/data_designer/plugins/testing/utils.py +18 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_download_command.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_list_command.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_models_command.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_providers_command.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_reset_command.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_download_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_model_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_provider_controller.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_field.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_form.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_model_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_provider_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_model_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_persona_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_provider_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_download_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_model_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_provider_service.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/test_cli_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/test_column_statistics.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/test_dataset_profiler_results.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/utils/test_reporting.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_columns.py +1 -27
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_config_builder.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_data_designer_config.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_default_model_settings.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_models.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_processors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_sampler_constraints.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_sampler_params.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_seed.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_seed_source.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_validator_params.py +1 -1
- data_designer-0.3.3/tests/config/utils/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_code_lang.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_info.py +2 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_io_helpers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_misc.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_type_helpers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_visualization.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_base.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_judge_score_profiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_column_statistics_calculator.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_dataset_profiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/utils/test_column_statistics_calculations.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/utils/test_judge_score_processing.py +1 -1
- data_designer-0.3.3/tests/engine/column_generators/generators/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_column_generator_base.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_embedding.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_expression.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_llm_completion_generators.py +21 -12
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_samplers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_seed_dataset.py +2 -3
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_validation.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/test_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_column_generator_errors.py +1 -1
- data_designer-0.3.3/tests/engine/column_generators/utils/test_generator_classification.py +32 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_judge_score_factory.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_prompt_renderer.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_artifact_storage.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_column_wise_builder.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_multi_column_configs.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_concurrency.py +176 -9
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_config_compiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dag.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dataset_batch_manager.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_parser.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_parsers_types.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_postprocessors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_tag_parsers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/recipes/test_recipe_base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/recipes/test_response_recipes.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_facade.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_litellm_overrides.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_usage.py +1 -1
- data_designer-0.3.3/tests/engine/processing/__init__.py +2 -0
- data_designer-0.3.3/tests/engine/processing/ginja/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_ast.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_environment.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_exceptions.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_record.py +1 -1
- data_designer-0.3.3/tests/engine/processing/gsonschema/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_exceptions.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_schema_transformers.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_types.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_validators.py +1 -1
- data_designer-0.3.3/tests/engine/processing/processors/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_drop_columns.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_schema_transform.py +1 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/test_utils.py +1 -1
- data_designer-0.3.3/tests/engine/registry/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_base.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_data_designer_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_errors.py +1 -1
- data_designer-0.3.3/tests/engine/resources/__init__.py +2 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_generator.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_repository.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_storage.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_resource_provider.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_seed_reader.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/conftest.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sampler_errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sources.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_email_address_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_national_id_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_person.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_phone_number.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_column.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_constraints.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_generator.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_jinja_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_people_gen.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_schema.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_utils.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_compiler.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_configurable_task.py +8 -14
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_engine_errors.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_model_provider.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_secret_resolver.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_validation.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_local_callable.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_python.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_remote.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_sql.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/essentials/test_init.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/interface/test_data_designer.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/interface/test_results.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/plugins/test_plugin.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/plugins/test_plugin_registry.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/test_logging.py +1 -1
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/test_plugin_manager.py +1 -27
- {data_designer-0.3.1 → data_designer-0.3.3}/uv.lock +5 -6
- data_designer-0.3.1/scripts/update_license_headers.py +0 -215
- data_designer-0.3.1/src/data_designer/cli/commands/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/config/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/config/analysis/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/column_generators/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/column_generators/generators/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/dataset_builders/utils/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/models/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/models/parsers/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/processing/ginja/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/processing/gsonschema/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/engine/sampling_gen/entities/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/errors.py +0 -5
- data_designer-0.3.1/src/data_designer/interface/__init__.py +0 -2
- data_designer-0.3.1/src/data_designer/plugins/testing/utils.py +0 -11
- data_designer-0.3.1/tests/config/utils/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/column_generators/generators/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/processing/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/processing/ginja/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/processing/gsonschema/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/processing/processors/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/registry/__init__.py +0 -2
- data_designer-0.3.1/tests/engine/resources/__init__.py +0 -2
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/build-docs.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/build-notebooks.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/check-colab-notebooks.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/dco-assistant.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/pack-tutorials.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/semantic-pull-requests.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/.pre-commit-config.yaml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/AGENTS.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/CLAUDE.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/CODE_OF_CONDUCT.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/CONTRIBUTING.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/DCO +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/LICENSE +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/VERSIONING.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/CONTRIBUTING.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/palette-favicon.png +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_python.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_sql.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/multi_turn_chat.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/analysis.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/column_configs.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/config_builder.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/data_designer_config.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/models.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/processors.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/sampler_params.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/validator_params.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/1-the-basics.ipynb +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/2-structured-outputs-and-jinja-expressions.ipynb +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/3-seeding-with-a-dataset.ipynb +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/4-providing-images-as-context.ipynb +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/columns.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/configure-model-settings-with-the-cli.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/custom-model-settings.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/default-model-settings.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/inference-parameters.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/model-configs.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/model-providers.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/person_sampling.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/processors.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/validators.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/css/mkdocstrings.css +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/css/style.css +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/index.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/installation.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/js/toc-toggle.js +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/1-the-basics.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/2-structured-outputs-and-jinja-expressions.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/3-seeding-with-a-dataset.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/4-providing-images-as-context.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/README.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/_README.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/_pyproject.toml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/overrides/main.html +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/available.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/overview.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/quick-start.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/cards.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_python.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_sql.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/qa_and_chat/multi_turn_chat.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/qa_and_chat/product_info_qa.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/docs/scripts/generate_colab_notebooks.py +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/mkdocs.yml +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/README.md +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/assets/zip_area_code_map.parquet +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/column_configs.json +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/dataset.json +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/metadata.json +0 -0
- {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/stub_secrets.json +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: 🐛 Bug Report
|
|
2
|
+
description: Report a bug
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: dropdown
|
|
6
|
+
id: priority
|
|
7
|
+
attributes:
|
|
8
|
+
label: Priority Level
|
|
9
|
+
description: How urgent is this issue?
|
|
10
|
+
default: 2
|
|
11
|
+
options:
|
|
12
|
+
- Critical (Total blocker)
|
|
13
|
+
- High (Major functionality broken)
|
|
14
|
+
- Medium (Annoying but has workaround)
|
|
15
|
+
- Low (Cosmetic / Minor)
|
|
16
|
+
validations:
|
|
17
|
+
required: true
|
|
18
|
+
- type: textarea
|
|
19
|
+
id: description
|
|
20
|
+
attributes:
|
|
21
|
+
label: Describe the bug
|
|
22
|
+
placeholder: A clear and concise description of what the bug is.
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
id: reproduction
|
|
27
|
+
attributes:
|
|
28
|
+
label: Steps/Code to reproduce bug
|
|
29
|
+
description: |
|
|
30
|
+
Please list *minimal* steps or code snippet for us to be able to reproduce the bug.
|
|
31
|
+
A helpful guide on how to craft a minimal bug report: http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports
|
|
32
|
+
placeholder: |
|
|
33
|
+
Please include:
|
|
34
|
+
- Minimal code example that reproduces the issue
|
|
35
|
+
- Configuration used (if applicable)
|
|
36
|
+
- Commands run (if applicable)
|
|
37
|
+
- Error traceback
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
- type: textarea
|
|
41
|
+
id: expected
|
|
42
|
+
attributes:
|
|
43
|
+
label: Expected behavior
|
|
44
|
+
placeholder: A clear and concise description of what you expected to happen.
|
|
45
|
+
validations:
|
|
46
|
+
required: true
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: context
|
|
49
|
+
attributes:
|
|
50
|
+
label: Additional context
|
|
51
|
+
placeholder: Add any other context about the problem here (e.g., screenshots, logs, browser version).
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: 🛠️ Development Task
|
|
2
|
+
description: Track internal development work, refactoring, or infrastructure
|
|
3
|
+
labels: ["task"]
|
|
4
|
+
body:
|
|
5
|
+
- type: dropdown
|
|
6
|
+
id: priority
|
|
7
|
+
attributes:
|
|
8
|
+
label: Priority Level
|
|
9
|
+
default: 1
|
|
10
|
+
options:
|
|
11
|
+
- High
|
|
12
|
+
- Medium
|
|
13
|
+
- Low
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: summary
|
|
18
|
+
attributes:
|
|
19
|
+
label: Task Summary
|
|
20
|
+
placeholder: What is the core objective of this task?
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: technical-details
|
|
25
|
+
attributes:
|
|
26
|
+
label: Technical Details & Implementation Plan
|
|
27
|
+
placeholder: Describe the technical approach, files affected, or logic changes.
|
|
28
|
+
- type: input
|
|
29
|
+
id: dependencies
|
|
30
|
+
attributes:
|
|
31
|
+
label: Dependencies
|
|
32
|
+
placeholder: "e.g., Blocked by issue #123"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: ✨ Feature Request
|
|
2
|
+
description: Put in a request for a new feature
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Please use this form to suggest new features or improvements.
|
|
9
|
+
- type: dropdown
|
|
10
|
+
id: priority
|
|
11
|
+
attributes:
|
|
12
|
+
label: Priority Level
|
|
13
|
+
description: How important is this feature to your workflow?
|
|
14
|
+
default: 2
|
|
15
|
+
options:
|
|
16
|
+
- Critical (Essential for use)
|
|
17
|
+
- High (Major improvement)
|
|
18
|
+
- Medium (Nice to have)
|
|
19
|
+
- Low (Minor tweak)
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: problem
|
|
24
|
+
attributes:
|
|
25
|
+
label: Is your feature request related to a problem? Please describe.
|
|
26
|
+
placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: solution
|
|
31
|
+
attributes:
|
|
32
|
+
label: Describe the solution you'd like
|
|
33
|
+
placeholder: A clear and concise description of what you want to happen.
|
|
34
|
+
validations:
|
|
35
|
+
required: true
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: alternatives
|
|
38
|
+
attributes:
|
|
39
|
+
label: Describe alternatives you've considered
|
|
40
|
+
placeholder: A clear and concise description of any alternative solutions or features you've considered.
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: context
|
|
43
|
+
attributes:
|
|
44
|
+
label: Additional context
|
|
45
|
+
placeholder: Add any other context or screenshots about the feature request here.
|
|
@@ -36,6 +36,30 @@ jobs:
|
|
|
36
36
|
run: |
|
|
37
37
|
uv run pytest -v --cov=data_designer --cov-report=term-missing --cov-report=xml --cov-fail-under=90
|
|
38
38
|
|
|
39
|
+
test-e2e:
|
|
40
|
+
name: End to end test (Python ${{ matrix.python-version }} on ${{ matrix.os }})
|
|
41
|
+
runs-on: ${{ matrix.os }}
|
|
42
|
+
strategy:
|
|
43
|
+
fail-fast: false
|
|
44
|
+
matrix:
|
|
45
|
+
os: [ubuntu-latest, macos-latest]
|
|
46
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- name: Checkout code
|
|
50
|
+
uses: actions/checkout@v4
|
|
51
|
+
|
|
52
|
+
- name: Install uv
|
|
53
|
+
uses: astral-sh/setup-uv@v5
|
|
54
|
+
with:
|
|
55
|
+
version: "latest"
|
|
56
|
+
python-version: ${{ matrix.python-version }}
|
|
57
|
+
enable-cache: false
|
|
58
|
+
|
|
59
|
+
- name: Run e2e tests
|
|
60
|
+
run: |
|
|
61
|
+
make test-e2e
|
|
62
|
+
|
|
39
63
|
lint:
|
|
40
64
|
name: Lint and Format Check
|
|
41
65
|
runs-on: ubuntu-latest
|
|
@@ -70,6 +94,8 @@ jobs:
|
|
|
70
94
|
steps:
|
|
71
95
|
- name: Checkout code
|
|
72
96
|
uses: actions/checkout@v4
|
|
97
|
+
with:
|
|
98
|
+
fetch-depth: 0 # Full history needed for file creation dates
|
|
73
99
|
|
|
74
100
|
- name: Install uv
|
|
75
101
|
uses: astral-sh/setup-uv@v5
|
|
@@ -22,6 +22,10 @@ help:
|
|
|
22
22
|
@echo "🧪 Testing:"
|
|
23
23
|
@echo " test - Run all unit tests"
|
|
24
24
|
@echo " coverage - Run tests with coverage report"
|
|
25
|
+
@echo " test-e2e - Run e2e plugin tests"
|
|
26
|
+
@echo " test-run-tutorials - Run tutorial notebooks as e2e tests"
|
|
27
|
+
@echo " test-run-recipes - Run recipe scripts as e2e tests"
|
|
28
|
+
@echo " test-run-all-examples - Run all tutorials and recipes as e2e tests"
|
|
25
29
|
@echo ""
|
|
26
30
|
@echo "✨ Code Quality:"
|
|
27
31
|
@echo " format - Format code with ruff"
|
|
@@ -63,28 +67,61 @@ check-all-fix: format lint-fix
|
|
|
63
67
|
|
|
64
68
|
format:
|
|
65
69
|
@echo "📐 Formatting code with ruff..."
|
|
66
|
-
uv run ruff format src/ tests/ scripts/ --exclude '**/src/data_designer/_version.py'
|
|
70
|
+
uv run ruff format src/ tests/ scripts/ e2e_tests/ --exclude '**/src/data_designer/_version.py'
|
|
67
71
|
@echo "✅ Formatting complete!"
|
|
68
72
|
|
|
69
73
|
format-check:
|
|
70
74
|
@echo "📐 Checking code formatting with ruff..."
|
|
71
|
-
uv run ruff format --check src/ tests/ scripts/ --exclude '**/src/data_designer/_version.py'
|
|
75
|
+
uv run ruff format --check src/ tests/ scripts/ e2e_tests/ --exclude '**/src/data_designer/_version.py'
|
|
72
76
|
@echo "✅ Formatting check complete! Run 'make format' to auto-fix issues."
|
|
73
77
|
|
|
74
78
|
lint:
|
|
75
79
|
@echo "🔍 Linting code with ruff..."
|
|
76
|
-
uv run ruff check --output-format=full src/ tests/ scripts/ --exclude '**/src/data_designer/_version.py'
|
|
80
|
+
uv run ruff check --output-format=full src/ tests/ scripts/ e2e_tests/ --exclude '**/src/data_designer/_version.py'
|
|
77
81
|
@echo "✅ Linting complete! Run 'make lint-fix' to auto-fix issues."
|
|
78
82
|
|
|
79
83
|
lint-fix:
|
|
80
84
|
@echo "🔍 Fixing linting issues with ruff..."
|
|
81
|
-
uv run ruff check --fix src/ tests/ scripts/ --exclude '**/src/data_designer/_version.py'
|
|
85
|
+
uv run ruff check --fix src/ tests/ scripts/ e2e_tests/ --exclude '**/src/data_designer/_version.py'
|
|
82
86
|
@echo "✅ Linting with autofix complete!"
|
|
83
87
|
|
|
84
88
|
test:
|
|
85
89
|
@echo "🧪 Running unit tests..."
|
|
86
90
|
uv run --group dev pytest
|
|
87
91
|
|
|
92
|
+
test-e2e:
|
|
93
|
+
@echo "🧹 Cleaning e2e test environment..."
|
|
94
|
+
rm -rf e2e_tests/uv.lock e2e_tests/.pycache e2e_tests/.venv
|
|
95
|
+
@echo "🧪 Running e2e tests..."
|
|
96
|
+
uv run --no-cache --refresh --directory e2e_tests pytest -s
|
|
97
|
+
|
|
98
|
+
test-run-tutorials:
|
|
99
|
+
@echo "🧪 Running tutorials as e2e tests..."
|
|
100
|
+
@TUTORIAL_WORKDIR=$$(mktemp -d); \
|
|
101
|
+
trap "rm -rf $$TUTORIAL_WORKDIR" EXIT; \
|
|
102
|
+
for f in docs/notebook_source/*.py; do \
|
|
103
|
+
echo " 📓 Running $$f..."; \
|
|
104
|
+
(cd "$$TUTORIAL_WORKDIR" && uv run python "$(REPO_PATH)/$$f") || exit 1; \
|
|
105
|
+
done; \
|
|
106
|
+
echo "🧹 Cleaning up tutorial artifacts..."; \
|
|
107
|
+
rm -rf "$$TUTORIAL_WORKDIR"; \
|
|
108
|
+
echo "✅ All tutorials completed successfully!"
|
|
109
|
+
|
|
110
|
+
test-run-recipes:
|
|
111
|
+
@echo "🧪 Running recipes as e2e tests..."
|
|
112
|
+
@RECIPE_WORKDIR=$$(mktemp -d); \
|
|
113
|
+
trap "rm -rf $$RECIPE_WORKDIR" EXIT; \
|
|
114
|
+
for f in docs/assets/recipes/**/*.py; do \
|
|
115
|
+
echo " 📜 Running $$f..."; \
|
|
116
|
+
(cd "$$RECIPE_WORKDIR" && uv run python "$(REPO_PATH)/$$f" --model-alias nvidia-text --artifact-path "$$RECIPE_WORKDIR" --num-records 5) || exit 1; \
|
|
117
|
+
done; \
|
|
118
|
+
echo "🧹 Cleaning up recipe artifacts..."; \
|
|
119
|
+
rm -rf "$$RECIPE_WORKDIR"; \
|
|
120
|
+
echo "✅ All recipes completed successfully!"
|
|
121
|
+
|
|
122
|
+
test-run-all-examples: test-run-tutorials test-run-recipes
|
|
123
|
+
@echo "✅ All examples (tutorials + recipes) completed successfully!"
|
|
124
|
+
|
|
88
125
|
convert-execute-notebooks:
|
|
89
126
|
@echo "📓 Converting Python tutorials to notebooks and executing..."
|
|
90
127
|
@mkdir -p docs/notebooks
|
|
@@ -131,4 +168,4 @@ install-dev-notebooks:
|
|
|
131
168
|
$(call install-pre-commit-hooks)
|
|
132
169
|
@echo "✅ Dev + notebooks installation complete!"
|
|
133
170
|
|
|
134
|
-
.PHONY: clean coverage format format-check lint lint-fix test check-license-headers update-license-headers check-all check-all-fix install install-dev install-dev-notebooks generate-colab-notebooks
|
|
171
|
+
.PHONY: clean coverage format format-check lint lint-fix test test-e2e test-run-tutorials test-run-recipes test-run-all-examples check-license-headers update-license-headers check-all check-all-fix install install-dev install-dev-notebooks generate-colab-notebooks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: data-designer
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: General framework for synthetic data generation
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -37,7 +37,7 @@ Requires-Dist: pygments<3,>=2.19.2
|
|
|
37
37
|
Requires-Dist: python-json-logger<4,>=3
|
|
38
38
|
Requires-Dist: pyyaml<7,>=6.0.1
|
|
39
39
|
Requires-Dist: requests<3,>=2.32.2
|
|
40
|
-
Requires-Dist: rich<
|
|
40
|
+
Requires-Dist: rich<15,>=13.7.1
|
|
41
41
|
Requires-Dist: ruff<1,>=0.14.10
|
|
42
42
|
Requires-Dist: scipy<2,>=1.11.0
|
|
43
43
|
Requires-Dist: sqlfluff<4,>=3.2.0
|
|
@@ -186,7 +186,7 @@ ModelConfig(
|
|
|
186
186
|
top_p=0.9,
|
|
187
187
|
max_tokens=4096,
|
|
188
188
|
),
|
|
189
|
-
|
|
189
|
+
)
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
The value `openai/gpt-oss-20b` would be collected.
|
{data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/product_info_qa.py
RENAMED
|
@@ -150,14 +150,14 @@ def build_config(model_alias: str) -> DataDesignerConfigBuilder:
|
|
|
150
150
|
config_builder.add_column(
|
|
151
151
|
ExpressionColumnConfig(
|
|
152
152
|
name="completeness_result",
|
|
153
|
-
expr="{{ llm_answer_metrics.
|
|
153
|
+
expr="{{ llm_answer_metrics.Completeness.score }}",
|
|
154
154
|
)
|
|
155
155
|
)
|
|
156
156
|
|
|
157
157
|
config_builder.add_column(
|
|
158
158
|
ExpressionColumnConfig(
|
|
159
159
|
name="accuracy_result",
|
|
160
|
-
expr="{{ llm_answer_metrics.
|
|
160
|
+
expr="{{ llm_answer_metrics.Accuracy.score }}",
|
|
161
161
|
)
|
|
162
162
|
)
|
|
163
163
|
|
|
@@ -81,7 +81,6 @@ class IndexMultiplierColumnGenerator(ColumnGenerator[IndexMultiplierColumnConfig
|
|
|
81
81
|
name="index-multiplier",
|
|
82
82
|
description="Generates values by multiplying the row index by a user-specified multiplier",
|
|
83
83
|
generation_strategy=GenerationStrategy.FULL_COLUMN,
|
|
84
|
-
required_resources=None,
|
|
85
84
|
)
|
|
86
85
|
|
|
87
86
|
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
@@ -110,7 +109,6 @@ class IndexMultiplierColumnGenerator(ColumnGenerator[IndexMultiplierColumnConfig
|
|
|
110
109
|
- `metadata()` describes your generator and its requirements
|
|
111
110
|
- `generation_strategy` can be `FULL_COLUMN`, `CELL_BY_CELL`
|
|
112
111
|
- You have access to the configuration parameters via `self.config`
|
|
113
|
-
- `required_resources` lists any required resources (models, artifact storages, etc.). This parameter will evolve in the near future, so keeping it as `None` is safe for now. That said, if your task will use the model registry, adding `data_designer.engine.resources.ResourceType.MODEL_REGISTRY` will enable automatic model health checking for your column generation task.
|
|
114
112
|
|
|
115
113
|
!!! info "Understanding generation_strategy"
|
|
116
114
|
The `generation_strategy` specifies how the column generator will generate data.
|
|
@@ -179,7 +177,6 @@ class IndexMultiplierColumnGenerator(ColumnGenerator[IndexMultiplierColumnConfig
|
|
|
179
177
|
name="index-multiplier",
|
|
180
178
|
description="Generates values by multiplying the row index by a user-specified multiplier",
|
|
181
179
|
generation_strategy=GenerationStrategy.FULL_COLUMN,
|
|
182
|
-
required_resources=None,
|
|
183
180
|
)
|
|
184
181
|
|
|
185
182
|
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "data-designer-e2e-tests"
|
|
3
|
+
version = "0.0.1"
|
|
4
|
+
requires-python = ">=3.10"
|
|
5
|
+
|
|
6
|
+
dependencies = [
|
|
7
|
+
"data-designer",
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
[tool.uv.sources]
|
|
11
|
+
data-designer = { path = "../" }
|
|
12
|
+
|
|
13
|
+
[dependency-groups]
|
|
14
|
+
dev = [
|
|
15
|
+
"pytest>=8.3.3,<9",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[project.entry-points."data_designer.plugins"]
|
|
19
|
+
demo-column-generator = "data_designer_e2e_tests.plugins.column_generator.plugin:column_generator_plugin"
|
|
20
|
+
demo-seed-reader = "data_designer_e2e_tests.plugins.seed_reader.plugin:seed_reader_plugin"
|
|
21
|
+
|
|
22
|
+
[tool.pytest.ini_options]
|
|
23
|
+
testpaths = ["tests"]
|
|
24
|
+
env = [
|
|
25
|
+
# ensure plugins are enabled
|
|
26
|
+
"DISABLE_DATA_DESIGNER_PLUGINS=false",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
[tool.uv]
|
|
30
|
+
package = true
|
|
31
|
+
required-version = ">=0.7.10"
|
|
32
|
+
|
|
33
|
+
[build-system]
|
|
34
|
+
requires = ["hatchling"]
|
|
35
|
+
build-backend = "hatchling.build"
|
|
36
|
+
|
|
37
|
+
[tool.hatch.build.targets.wheel]
|
|
38
|
+
packages = ["src/data_designer_e2e_tests"]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from typing import Literal
|
|
5
|
+
|
|
6
|
+
from data_designer.config.column_configs import SingleColumnConfig
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DemoColumnGeneratorConfig(SingleColumnConfig):
|
|
10
|
+
column_type: Literal["demo-column-generator"] = "demo-column-generator"
|
|
11
|
+
|
|
12
|
+
text: str
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import pandas as pd
|
|
5
|
+
|
|
6
|
+
from data_designer.engine.column_generators.generators.base import (
|
|
7
|
+
ColumnGenerator,
|
|
8
|
+
GenerationStrategy,
|
|
9
|
+
GeneratorMetadata,
|
|
10
|
+
)
|
|
11
|
+
from data_designer_e2e_tests.plugins.column_generator.config import DemoColumnGeneratorConfig
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DemoColumnGeneratorImpl(ColumnGenerator[DemoColumnGeneratorConfig]):
|
|
15
|
+
@staticmethod
|
|
16
|
+
def metadata() -> GeneratorMetadata:
|
|
17
|
+
return GeneratorMetadata(
|
|
18
|
+
name="demo-column-generator",
|
|
19
|
+
description="Shouts at you",
|
|
20
|
+
generation_strategy=GenerationStrategy.FULL_COLUMN,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
def generate(self, data: pd.DataFrame) -> pd.DataFrame:
|
|
24
|
+
data[self.config.name] = self.config.text.upper()
|
|
25
|
+
|
|
26
|
+
return data
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from data_designer.plugins.plugin import Plugin, PluginType
|
|
5
|
+
|
|
6
|
+
column_generator_plugin = Plugin(
|
|
7
|
+
config_qualified_name="data_designer_e2e_tests.plugins.column_generator.config.DemoColumnGeneratorConfig",
|
|
8
|
+
impl_qualified_name="data_designer_e2e_tests.plugins.column_generator.impl.DemoColumnGeneratorImpl",
|
|
9
|
+
plugin_type=PluginType.COLUMN_GENERATOR,
|
|
10
|
+
)
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from typing import Literal
|
|
5
|
+
|
|
6
|
+
from data_designer.config.seed_source import SeedSource
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DemoSeedSource(SeedSource):
|
|
10
|
+
seed_type: Literal["demo-seed-reader"] = "demo-seed-reader"
|
|
11
|
+
|
|
12
|
+
directory: str
|
|
13
|
+
filename: str
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import duckdb
|
|
5
|
+
|
|
6
|
+
from data_designer.engine.resources.seed_reader import SeedReader
|
|
7
|
+
from data_designer_e2e_tests.plugins.seed_reader.config import DemoSeedSource
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DemoSeedReader(SeedReader[DemoSeedSource]):
|
|
11
|
+
def create_duckdb_connection(self) -> duckdb.DuckDBPyConnection:
|
|
12
|
+
return duckdb.connect()
|
|
13
|
+
|
|
14
|
+
def get_dataset_uri(self) -> str:
|
|
15
|
+
return f"{self.source.directory}/{self.source.filename}"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from data_designer.plugins.plugin import Plugin, PluginType
|
|
5
|
+
|
|
6
|
+
seed_reader_plugin = Plugin(
|
|
7
|
+
config_qualified_name="data_designer_e2e_tests.plugins.seed_reader.config.DemoSeedSource",
|
|
8
|
+
impl_qualified_name="data_designer_e2e_tests.plugins.seed_reader.impl.DemoSeedReader",
|
|
9
|
+
plugin_type=PluginType.SEED_READER,
|
|
10
|
+
)
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from data_designer.essentials import (
|
|
7
|
+
CategorySamplerParams,
|
|
8
|
+
DataDesigner,
|
|
9
|
+
DataDesignerConfigBuilder,
|
|
10
|
+
ExpressionColumnConfig,
|
|
11
|
+
SamplerColumnConfig,
|
|
12
|
+
SamplerType,
|
|
13
|
+
)
|
|
14
|
+
from data_designer_e2e_tests.plugins.column_generator.config import DemoColumnGeneratorConfig
|
|
15
|
+
from data_designer_e2e_tests.plugins.seed_reader.config import DemoSeedSource
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_column_generator_plugin():
|
|
19
|
+
data_designer = DataDesigner()
|
|
20
|
+
|
|
21
|
+
config_builder = DataDesignerConfigBuilder()
|
|
22
|
+
# This sampler column is necessary as a temporary workaround to https://github.com/NVIDIA-NeMo/DataDesigner/issues/4
|
|
23
|
+
config_builder.add_column(
|
|
24
|
+
SamplerColumnConfig(
|
|
25
|
+
name="irrelevant",
|
|
26
|
+
sampler_type=SamplerType.CATEGORY,
|
|
27
|
+
params=CategorySamplerParams(values=["irrelevant"]),
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
config_builder.add_column(
|
|
31
|
+
DemoColumnGeneratorConfig(
|
|
32
|
+
name="upper",
|
|
33
|
+
text="hello world",
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
preview = data_designer.preview(config_builder)
|
|
38
|
+
capitalized = set(preview.dataset["upper"].values)
|
|
39
|
+
|
|
40
|
+
assert capitalized == {"HELLO WORLD"}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def test_seed_reader_plugin():
|
|
44
|
+
current_dir = Path(__file__).parent
|
|
45
|
+
|
|
46
|
+
data_designer = DataDesigner()
|
|
47
|
+
|
|
48
|
+
config_builder = DataDesignerConfigBuilder()
|
|
49
|
+
config_builder.with_seed_dataset(
|
|
50
|
+
DemoSeedSource(
|
|
51
|
+
directory=str(current_dir),
|
|
52
|
+
filename="test_seed.csv",
|
|
53
|
+
)
|
|
54
|
+
)
|
|
55
|
+
# This sampler column is necessary as a temporary workaround to https://github.com/NVIDIA-NeMo/DataDesigner/issues/4
|
|
56
|
+
config_builder.add_column(
|
|
57
|
+
SamplerColumnConfig(
|
|
58
|
+
name="irrelevant",
|
|
59
|
+
sampler_type=SamplerType.CATEGORY,
|
|
60
|
+
params=CategorySamplerParams(values=["irrelevant"]),
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
config_builder.add_column(
|
|
64
|
+
ExpressionColumnConfig(
|
|
65
|
+
name="full_name",
|
|
66
|
+
expr="{{ first_name }} + {{ last_name }}",
|
|
67
|
+
)
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
preview = data_designer.preview(config_builder)
|
|
71
|
+
full_names = set(preview.dataset["full_name"].values)
|
|
72
|
+
|
|
73
|
+
assert full_names == {"John + Coltrane", "Miles + Davis", "Bill + Evans"}
|
|
@@ -42,7 +42,7 @@ dependencies = [
|
|
|
42
42
|
"python-json-logger>=3,<4",
|
|
43
43
|
"pyyaml>=6.0.1,<7",
|
|
44
44
|
"requests<3,>=2.32.2",
|
|
45
|
-
"rich>=13.7.1,<
|
|
45
|
+
"rich>=13.7.1,<15",
|
|
46
46
|
"ruff>=0.14.10,<1",
|
|
47
47
|
"scipy>=1.11.0,<2",
|
|
48
48
|
"sqlfluff>=3.2.0,<4",
|
|
@@ -128,7 +128,7 @@ ignore = [
|
|
|
128
128
|
]
|
|
129
129
|
|
|
130
130
|
[tool.ruff.lint.isort]
|
|
131
|
-
known-first-party = ["data_designer"]
|
|
131
|
+
known-first-party = ["data_designer", "data_designer_e2e_tests"]
|
|
132
132
|
|
|
133
133
|
[tool.ruff.lint.flake8-tidy-imports]
|
|
134
134
|
ban-relative-imports = "all"
|