data-designer 0.3.2__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.2 → data_designer-0.3.3}/.github/workflows/ci.yml +1 -1
- {data_designer-0.3.2 → data_designer-0.3.3}/Makefile +32 -1
- {data_designer-0.3.2 → data_designer-0.3.3}/PKG-INFO +2 -2
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/product_info_qa.py +2 -2
- {data_designer-0.3.2 → data_designer-0.3.3}/pyproject.toml +1 -1
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/_version.py +2 -2
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/concurrency.py +24 -2
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_concurrency.py +175 -8
- {data_designer-0.3.2 → data_designer-0.3.3}/uv.lock +5 -6
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/build-docs.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/build-notebooks.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/check-colab-notebooks.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/dco-assistant.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/pack-tutorials.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.github/workflows/semantic-pull-requests.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.gitignore +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/.pre-commit-config.yaml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/AGENTS.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/CLAUDE.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/CODE_OF_CONDUCT.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/CONTRIBUTING.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/DCO +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/LICENSE +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/README.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/VERSIONING.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/CONTRIBUTING.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/palette-favicon.png +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_python.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_sql.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/multi_turn_chat.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/analysis.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/column_configs.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/config_builder.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/data_designer_config.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/models.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/processors.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/sampler_params.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/code_reference/validator_params.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/1-the-basics.ipynb +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/2-structured-outputs-and-jinja-expressions.ipynb +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/3-seeding-with-a-dataset.ipynb +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/4-providing-images-as-context.ipynb +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/columns.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/configure-model-settings-with-the-cli.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/custom-model-settings.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/default-model-settings.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/inference-parameters.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/model-configs.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/models/model-providers.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/person_sampling.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/processors.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/concepts/validators.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/css/mkdocstrings.css +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/css/style.css +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/index.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/installation.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/js/toc-toggle.js +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/1-the-basics.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/2-structured-outputs-and-jinja-expressions.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/3-seeding-with-a-dataset.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/4-providing-images-as-context.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/README.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/_README.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/notebook_source/_pyproject.toml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/overrides/main.html +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/plugins/available.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/plugins/example.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/plugins/overview.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/quick-start.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/recipes/cards.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_python.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_sql.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/recipes/qa_and_chat/multi_turn_chat.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/recipes/qa_and_chat/product_info_qa.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/docs/scripts/generate_colab_notebooks.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/pyproject.toml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/config.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/impl.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/plugin.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/config.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/impl.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/plugin.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/tests/test_e2e.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/e2e_tests/tests/test_seed.csv +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/mkdocs.yml +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/scripts/test_license_headers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/scripts/update_license_headers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/README.md +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/download.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/list.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/models.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/providers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/commands/reset.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/controllers/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/controllers/download_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/controllers/model_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/controllers/provider_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/field.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/form.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/model_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/forms/provider_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/main.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/repositories/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/repositories/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/repositories/model_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/repositories/persona_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/repositories/provider_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/services/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/services/download_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/services/model_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/services/provider_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/ui.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/cli/utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/column_profilers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/column_statistics.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/dataset_profiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/reporting.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/column_configs.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/column_types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/config_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/data_designer_config.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/dataset_builders.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/default_model_settings.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/exports.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/interface.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/models.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/preview_results.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/processors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/run_config.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/sampler_constraints.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/sampler_params.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/seed.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/seed_source.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/seed_source_types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/code_lang.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/constants.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/info.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/io_helpers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/misc.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/numerical_helpers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/type_helpers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/utils/visualization.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/config/validator_params.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/judge_score_profiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_statistics.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/dataset_profiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/column_statistics_calculations.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/judge_score_processing.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/embedding.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/expression.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/llm_completion.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/samplers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/seed_dataset.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/validation.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/generator_classification.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/judge_score_factory.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/prompt_renderer.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/compiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/configurable_task.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/artifact_storage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/column_wise_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/multi_column_configs.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/config_compiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dag.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dataset_batch_manager.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/model_provider.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/facade.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/litellm_overrides.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/parser.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/postprocessors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/tag_parsers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/response_recipes.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/telemetry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/usage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/models/utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/ast.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/environment.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/exceptions.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/record.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/exceptions.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/schema_transformers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/validators.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/drop_columns.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/schema_transform.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/processing/utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/registry/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/registry/data_designer_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/registry/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_generator.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_storage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/resources/resource_provider.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/resources/seed_reader.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/column.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/constraints.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/sources.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/assets/zip_area_code_map.parquet +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/dataset_based_person_fields.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/email_address_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/national_id_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/person.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/phone_number.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/generator.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/jinja_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/people_gen.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/person_constants.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/secret_resolver.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validation.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/local_callable.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/python.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/remote.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/engine/validators/sql.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/essentials/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/interface/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/interface/data_designer.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/interface/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/interface/results.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/logging.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugin_manager.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/plugin.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/testing/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/testing/stubs.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/src/data_designer/plugins/testing/utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/commands/test_download_command.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/commands/test_list_command.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/commands/test_models_command.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/commands/test_providers_command.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/commands/test_reset_command.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/controllers/test_download_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/controllers/test_model_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/controllers/test_provider_controller.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/forms/test_field.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/forms/test_form.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/forms/test_model_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/forms/test_provider_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/repositories/test_model_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/repositories/test_persona_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/repositories/test_provider_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/services/test_download_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/services/test_model_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/services/test_provider_service.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/cli/test_cli_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/analysis/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/analysis/test_column_statistics.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/analysis/test_dataset_profiler_results.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/analysis/utils/test_reporting.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_columns.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_config_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_data_designer_config.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_default_model_settings.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_models.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_processors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_sampler_constraints.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_sampler_params.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_seed.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_seed_source.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/test_validator_params.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_code_lang.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_info.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_io_helpers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_misc.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_type_helpers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/config/utils/test_visualization.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_judge_score_profiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_column_statistics_calculator.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/column_configs.json +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/dataset.json +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/metadata.json +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_dataset_profiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/test_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/utils/test_column_statistics_calculations.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/analysis/utils/test_judge_score_processing.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_column_generator_base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_embedding.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_expression.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_llm_completion_generators.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_samplers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_seed_dataset.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_validation.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/test_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_column_generator_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_generator_classification.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_judge_score_factory.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_prompt_renderer.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/test_artifact_storage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/test_column_wise_builder.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/test_multi_column_configs.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_config_compiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dag.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dataset_batch_manager.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/parsers/test_parser.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/parsers/test_parsers_types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/parsers/test_postprocessors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/parsers/test_tag_parsers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/recipes/test_recipe_base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/recipes/test_response_recipes.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/stub_secrets.json +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_facade.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_litellm_overrides.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_model_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_model_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_model_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/models/test_usage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/ginja/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/ginja/test_ast.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/ginja/test_environment.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/ginja/test_exceptions.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/ginja/test_record.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/gsonschema/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_exceptions.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_schema_transformers.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_types.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_validators.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/processors/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/processors/test_drop_columns.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/processors/test_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/processors/test_schema_transform.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/processing/test_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/registry/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/registry/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/registry/test_base.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/registry/test_data_designer_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/registry/test_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/__init__.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_generator.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_repository.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/test_managed_storage.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/test_resource_provider.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/resources/test_seed_reader.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/conftest.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sampler_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sources.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_email_address_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_national_id_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_person.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_phone_number.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_column.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_constraints.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_generator.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_jinja_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_people_gen.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_schema.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/sampling_gen/test_utils.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_compiler.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_configurable_task.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_engine_errors.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_model_provider.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_secret_resolver.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/test_validation.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/validators/test_local_callable.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/validators/test_python.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/validators/test_remote.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/validators/test_sql.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/essentials/test_init.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/interface/test_data_designer.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/interface/test_results.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/plugins/test_plugin.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/plugins/test_plugin_registry.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/test_logging.py +0 -0
- {data_designer-0.3.2 → data_designer-0.3.3}/tests/test_plugin_manager.py +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.
|
|
@@ -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"
|
|
@@ -91,6 +95,33 @@ test-e2e:
|
|
|
91
95
|
@echo "🧪 Running e2e tests..."
|
|
92
96
|
uv run --no-cache --refresh --directory e2e_tests pytest -s
|
|
93
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
|
+
|
|
94
125
|
convert-execute-notebooks:
|
|
95
126
|
@echo "📓 Converting Python tutorials to notebooks and executing..."
|
|
96
127
|
@mkdir -p docs/notebooks
|
|
@@ -137,4 +168,4 @@ install-dev-notebooks:
|
|
|
137
168
|
$(call install-pre-commit-hooks)
|
|
138
169
|
@echo "✅ Dev + notebooks installation complete!"
|
|
139
170
|
|
|
140
|
-
.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
|
{data_designer-0.3.2 → 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
|
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.3.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 3,
|
|
31
|
+
__version__ = version = '0.3.3'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 3, 3)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -108,6 +108,26 @@ class ConcurrentThreadExecutor:
|
|
|
108
108
|
self._shutdown_window_size = shutdown_error_window
|
|
109
109
|
self._results = ExecutorResults(failure_threshold=shutdown_error_rate)
|
|
110
110
|
|
|
111
|
+
@property
|
|
112
|
+
def results(self) -> ExecutorResults:
|
|
113
|
+
return self._results
|
|
114
|
+
|
|
115
|
+
@property
|
|
116
|
+
def max_workers(self) -> int:
|
|
117
|
+
return self._max_workers
|
|
118
|
+
|
|
119
|
+
@property
|
|
120
|
+
def shutdown_error_rate(self) -> float:
|
|
121
|
+
return self._shutdown_error_rate
|
|
122
|
+
|
|
123
|
+
@property
|
|
124
|
+
def shutdown_window_size(self) -> int:
|
|
125
|
+
return self._shutdown_window_size
|
|
126
|
+
|
|
127
|
+
@property
|
|
128
|
+
def semaphore(self) -> Semaphore:
|
|
129
|
+
return self._semaphore
|
|
130
|
+
|
|
111
131
|
def __enter__(self) -> ConcurrentThreadExecutor:
|
|
112
132
|
self._executor = ThreadPoolExecutor(
|
|
113
133
|
max_workers=self._max_workers,
|
|
@@ -145,14 +165,16 @@ class ConcurrentThreadExecutor:
|
|
|
145
165
|
self._raise_task_error()
|
|
146
166
|
|
|
147
167
|
def _handle_future(future: Future) -> None:
|
|
148
|
-
self._results.completed_count += 1
|
|
149
168
|
try:
|
|
150
169
|
result = future.result()
|
|
151
170
|
if self._result_callback is not None:
|
|
152
171
|
self._result_callback(result, context=context)
|
|
153
|
-
self.
|
|
172
|
+
with self._lock:
|
|
173
|
+
self._results.completed_count += 1
|
|
174
|
+
self._results.success_count += 1
|
|
154
175
|
except Exception as err:
|
|
155
176
|
with self._lock:
|
|
177
|
+
self._results.completed_count += 1
|
|
156
178
|
self._results.error_trap.handle_error(err)
|
|
157
179
|
if self._results.is_error_rate_exceeded(self._shutdown_window_size):
|
|
158
180
|
# Signal to shutdown early on the next submission (if received).
|
{data_designer-0.3.2 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_concurrency.py
RENAMED
|
@@ -71,7 +71,7 @@ def test_executor_results_error_rate_exceeded(
|
|
|
71
71
|
|
|
72
72
|
def test_concurrent_thread_executor_creation():
|
|
73
73
|
executor = ConcurrentThreadExecutor(max_workers=2, column_name="test_column")
|
|
74
|
-
assert executor.
|
|
74
|
+
assert executor.max_workers == 2
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
@pytest.mark.parametrize(
|
|
@@ -129,7 +129,7 @@ def test_concurrent_thread_executor_early_shutdown_behavior(
|
|
|
129
129
|
for _ in range(5):
|
|
130
130
|
executor.submit(failing_func)
|
|
131
131
|
time.sleep(0.1)
|
|
132
|
-
assert executor.
|
|
132
|
+
assert executor.results.early_shutdown is False
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
def test_concurrent_thread_executor_result_callback():
|
|
@@ -211,9 +211,9 @@ def test_concurrent_thread_executor_custom_shutdown_parameters():
|
|
|
211
211
|
max_workers=2, column_name="test_column", shutdown_error_rate=0.3, shutdown_error_window=5
|
|
212
212
|
)
|
|
213
213
|
|
|
214
|
-
assert executor.
|
|
215
|
-
assert executor.
|
|
216
|
-
assert executor.
|
|
214
|
+
assert executor.shutdown_error_rate == 0.3
|
|
215
|
+
assert executor.shutdown_window_size == 5
|
|
216
|
+
assert executor.results.failure_threshold == 0.3
|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
def test_context_variables_context_variable_propagation():
|
|
@@ -263,7 +263,7 @@ def test_edge_cases_zero_error_window():
|
|
|
263
263
|
executor.submit(failing_func)
|
|
264
264
|
time.sleep(0.1) # Wait for task to complete
|
|
265
265
|
|
|
266
|
-
assert executor.
|
|
266
|
+
assert executor.results.completed_count == 1
|
|
267
267
|
|
|
268
268
|
|
|
269
269
|
def test_edge_cases_concurrent_submit_calls():
|
|
@@ -324,7 +324,7 @@ def test_edge_cases_semaphore_release_on_exception():
|
|
|
324
324
|
executor = ConcurrentThreadExecutor(max_workers=1, column_name="test_column")
|
|
325
325
|
|
|
326
326
|
with executor:
|
|
327
|
-
original_release = executor.
|
|
327
|
+
original_release = executor.semaphore.release
|
|
328
328
|
release_count = 0
|
|
329
329
|
|
|
330
330
|
def counting_release():
|
|
@@ -332,7 +332,7 @@ def test_edge_cases_semaphore_release_on_exception():
|
|
|
332
332
|
release_count += 1
|
|
333
333
|
original_release()
|
|
334
334
|
|
|
335
|
-
executor.
|
|
335
|
+
executor.semaphore.release = counting_release
|
|
336
336
|
|
|
337
337
|
def failing_func():
|
|
338
338
|
raise ValueError("Test error")
|
|
@@ -364,3 +364,170 @@ def test_edge_cases_multiple_early_shutdown_attempts():
|
|
|
364
364
|
time.sleep(0.1) # Wait for tasks to complete
|
|
365
365
|
|
|
366
366
|
executor.submit(failing_func)
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
@pytest.mark.parametrize(
|
|
370
|
+
"shutdown_error_rate,num_errors,num_successes,expected_early_shutdown",
|
|
371
|
+
[
|
|
372
|
+
# Threshold 0%: Only succeeds when NO errors
|
|
373
|
+
(0.0, 0, 100, False), # 0% errors, 0% threshold → No shutdown
|
|
374
|
+
# Threshold below error rate: Should NOT shutdown
|
|
375
|
+
(0.5, 40, 60, False), # 40% errors, 50% threshold → No shutdown
|
|
376
|
+
(0.3, 20, 80, False), # 20% errors, 30% threshold → No shutdown
|
|
377
|
+
# Threshold 100%: Only shuts down at exactly 100% errors
|
|
378
|
+
(1.0, 90, 10, False), # 90% errors, 100% threshold → No shutdown
|
|
379
|
+
(1.0, 50, 50, False), # 50% errors, 100% threshold → No shutdown
|
|
380
|
+
],
|
|
381
|
+
)
|
|
382
|
+
def test_no_early_shutdown_when_below_threshold(
|
|
383
|
+
shutdown_error_rate: float, num_errors: int, num_successes: int, expected_early_shutdown: bool
|
|
384
|
+
):
|
|
385
|
+
"""Test that early shutdown does NOT occur when error rate is below or at threshold."""
|
|
386
|
+
total_tasks = num_errors + num_successes
|
|
387
|
+
executor = ConcurrentThreadExecutor(
|
|
388
|
+
max_workers=20,
|
|
389
|
+
column_name="test_column",
|
|
390
|
+
shutdown_error_rate=shutdown_error_rate,
|
|
391
|
+
shutdown_error_window=20,
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
with executor:
|
|
395
|
+
|
|
396
|
+
def success_task(x: int) -> int:
|
|
397
|
+
return x * 2
|
|
398
|
+
|
|
399
|
+
def error_task(x: int) -> None:
|
|
400
|
+
raise ValueError(f"Error {x}")
|
|
401
|
+
|
|
402
|
+
# Interleave tasks to maintain consistent error rate throughout execution
|
|
403
|
+
# Calculate how many tasks per error to distribute evenly
|
|
404
|
+
if num_errors > 0:
|
|
405
|
+
tasks_per_error = total_tasks / num_errors
|
|
406
|
+
else:
|
|
407
|
+
tasks_per_error = float("inf")
|
|
408
|
+
|
|
409
|
+
error_index = 0
|
|
410
|
+
success_index = 0
|
|
411
|
+
for i in range(total_tasks):
|
|
412
|
+
# Determine if this position should be an error based on even distribution
|
|
413
|
+
if num_errors > 0 and error_index < num_errors and i >= int(error_index * tasks_per_error):
|
|
414
|
+
executor.submit(error_task, error_index)
|
|
415
|
+
error_index += 1
|
|
416
|
+
elif success_index < num_successes:
|
|
417
|
+
executor.submit(success_task, success_index)
|
|
418
|
+
success_index += 1
|
|
419
|
+
|
|
420
|
+
time.sleep(0.5) # Wait for all tasks to complete
|
|
421
|
+
|
|
422
|
+
# Verify no early shutdown occurred
|
|
423
|
+
assert executor.results.early_shutdown == expected_early_shutdown
|
|
424
|
+
assert executor.results.completed_count == total_tasks
|
|
425
|
+
assert executor.results.success_count == num_successes
|
|
426
|
+
assert executor.results.error_trap.error_count == num_errors
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
@pytest.mark.parametrize(
|
|
430
|
+
"shutdown_error_rate,num_errors,num_successes,shutdown_window",
|
|
431
|
+
[
|
|
432
|
+
# Threshold 0%: ANY error triggers shutdown
|
|
433
|
+
(0.0, 10, 0, 10), # 100% errors, 0% threshold → Shutdown
|
|
434
|
+
(0.0, 5, 5, 10), # 50% errors, 0% threshold → Shutdown
|
|
435
|
+
# Threshold exceeded: Should shutdown
|
|
436
|
+
(0.5, 60, 40, 20), # 60% errors, 50% threshold → Shutdown
|
|
437
|
+
(0.3, 40, 60, 20), # 40% errors, 30% threshold → Shutdown
|
|
438
|
+
# Threshold 100%: Shuts down when ALL tasks fail
|
|
439
|
+
(1.0, 20, 0, 10), # 100% errors, 100% threshold → Shutdown
|
|
440
|
+
],
|
|
441
|
+
)
|
|
442
|
+
def test_early_shutdown_when_threshold_exceeded(
|
|
443
|
+
shutdown_error_rate: float, num_errors: int, num_successes: int, shutdown_window: int
|
|
444
|
+
):
|
|
445
|
+
"""Test that early shutdown DOES occur when error rate exceeds threshold."""
|
|
446
|
+
executor = ConcurrentThreadExecutor(
|
|
447
|
+
max_workers=10,
|
|
448
|
+
column_name="test_column",
|
|
449
|
+
shutdown_error_rate=shutdown_error_rate,
|
|
450
|
+
shutdown_error_window=shutdown_window,
|
|
451
|
+
)
|
|
452
|
+
|
|
453
|
+
with pytest.raises(DataDesignerRuntimeError, match="Data generation was terminated early"):
|
|
454
|
+
with executor:
|
|
455
|
+
|
|
456
|
+
def success_task(x: int) -> int:
|
|
457
|
+
return x * 2
|
|
458
|
+
|
|
459
|
+
def error_task(x: int) -> None:
|
|
460
|
+
raise ValueError(f"Error {x}")
|
|
461
|
+
|
|
462
|
+
# Interleave tasks to maintain the specified error rate
|
|
463
|
+
total_tasks = num_errors + num_successes
|
|
464
|
+
|
|
465
|
+
# Calculate how many tasks per error to distribute evenly
|
|
466
|
+
if num_errors > 0:
|
|
467
|
+
tasks_per_error = total_tasks / num_errors
|
|
468
|
+
else:
|
|
469
|
+
tasks_per_error = float("inf")
|
|
470
|
+
|
|
471
|
+
error_index = 0
|
|
472
|
+
success_index = 0
|
|
473
|
+
for i in range(total_tasks):
|
|
474
|
+
# Determine if this position should be an error based on even distribution
|
|
475
|
+
if num_errors > 0 and error_index < num_errors and i >= int(error_index * tasks_per_error):
|
|
476
|
+
executor.submit(error_task, error_index)
|
|
477
|
+
error_index += 1
|
|
478
|
+
elif success_index < num_successes:
|
|
479
|
+
executor.submit(success_task, success_index)
|
|
480
|
+
success_index += 1
|
|
481
|
+
|
|
482
|
+
time.sleep(0.3)
|
|
483
|
+
|
|
484
|
+
# Try to submit more tasks - should raise because early_shutdown is True
|
|
485
|
+
executor.submit(success_task, 999)
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
def test_thread_safety_with_high_concurrency():
|
|
489
|
+
"""Stress test to verify thread-safe counter updates under high concurrency."""
|
|
490
|
+
num_tasks = 500
|
|
491
|
+
max_workers = 20
|
|
492
|
+
results_list = []
|
|
493
|
+
errors_list = []
|
|
494
|
+
|
|
495
|
+
def result_callback(result: int, *, context: dict | None = None) -> None:
|
|
496
|
+
results_list.append(result)
|
|
497
|
+
|
|
498
|
+
def error_callback(exc: Exception, *, context: dict | None = None) -> None:
|
|
499
|
+
errors_list.append(exc)
|
|
500
|
+
|
|
501
|
+
with ConcurrentThreadExecutor(
|
|
502
|
+
max_workers=max_workers,
|
|
503
|
+
column_name="test_column",
|
|
504
|
+
result_callback=result_callback,
|
|
505
|
+
error_callback=error_callback,
|
|
506
|
+
shutdown_error_rate=0.9, # High threshold to avoid shutdown
|
|
507
|
+
shutdown_error_window=50,
|
|
508
|
+
) as executor:
|
|
509
|
+
|
|
510
|
+
def variable_task(x: int) -> int:
|
|
511
|
+
# Some tasks succeed, some fail, some take longer
|
|
512
|
+
if x % 7 == 0:
|
|
513
|
+
raise ValueError(f"Error {x}")
|
|
514
|
+
if x % 3 == 0:
|
|
515
|
+
time.sleep(0.001)
|
|
516
|
+
return x * 2
|
|
517
|
+
|
|
518
|
+
for i in range(num_tasks):
|
|
519
|
+
executor.submit(variable_task, i)
|
|
520
|
+
|
|
521
|
+
time.sleep(1.0) # Wait for all tasks to complete
|
|
522
|
+
|
|
523
|
+
# Calculate expected counts
|
|
524
|
+
expected_errors = sum(1 for i in range(num_tasks) if i % 7 == 0)
|
|
525
|
+
expected_successes = num_tasks - expected_errors
|
|
526
|
+
|
|
527
|
+
# Verify all counts are accurate (no race conditions)
|
|
528
|
+
assert executor.results.completed_count == num_tasks
|
|
529
|
+
assert executor.results.success_count == expected_successes
|
|
530
|
+
assert executor.results.error_trap.error_count == expected_errors
|
|
531
|
+
assert len(results_list) == expected_successes
|
|
532
|
+
assert len(errors_list) == expected_errors
|
|
533
|
+
assert executor.results.early_shutdown is False
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 3
|
|
3
3
|
requires-python = ">=3.10"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.14'",
|
|
@@ -763,7 +763,7 @@ requires-dist = [
|
|
|
763
763
|
{ name = "python-json-logger", specifier = ">=3,<4" },
|
|
764
764
|
{ name = "pyyaml", specifier = ">=6.0.1,<7" },
|
|
765
765
|
{ name = "requests", specifier = ">=2.32.2,<3" },
|
|
766
|
-
{ name = "rich", specifier = ">=
|
|
766
|
+
{ name = "rich", specifier = ">=14.0.0,<15" },
|
|
767
767
|
{ name = "ruff", specifier = ">=0.14.10,<1" },
|
|
768
768
|
{ name = "scipy", specifier = ">=1.11.0,<2" },
|
|
769
769
|
{ name = "sqlfluff", specifier = ">=3.2.0,<4" },
|
|
@@ -4216,16 +4216,15 @@ wheels = [
|
|
|
4216
4216
|
|
|
4217
4217
|
[[package]]
|
|
4218
4218
|
name = "rich"
|
|
4219
|
-
version = "
|
|
4219
|
+
version = "14.2.0"
|
|
4220
4220
|
source = { registry = "https://pypi.org/simple" }
|
|
4221
4221
|
dependencies = [
|
|
4222
4222
|
{ name = "markdown-it-py" },
|
|
4223
4223
|
{ name = "pygments" },
|
|
4224
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
|
4225
4224
|
]
|
|
4226
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
4225
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" }
|
|
4227
4226
|
wheels = [
|
|
4228
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
4227
|
+
{ url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" },
|
|
4229
4228
|
]
|
|
4230
4229
|
|
|
4231
4230
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_python.py
RENAMED
|
File without changes
|
{data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_sql.py
RENAMED
|
File without changes
|
{data_designer-0.3.2 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/multi_turn_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/3-seeding-with-a-dataset.ipynb
RENAMED
|
File without changes
|
{data_designer-0.3.2 → data_designer-0.3.3}/docs/colab_notebooks/4-providing-images-as-context.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|