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.
Files changed (451) hide show
  1. data_designer-0.3.3/.github/ISSUE_TEMPLATE/bug-report.yml +51 -0
  2. data_designer-0.3.3/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. data_designer-0.3.3/.github/ISSUE_TEMPLATE/development-task.yml +32 -0
  4. data_designer-0.3.3/.github/ISSUE_TEMPLATE/feature-request.yml +45 -0
  5. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/ci.yml +26 -0
  6. {data_designer-0.3.1 → data_designer-0.3.3}/.gitignore +2 -0
  7. {data_designer-0.3.1 → data_designer-0.3.3}/Makefile +42 -5
  8. {data_designer-0.3.1 → data_designer-0.3.3}/PKG-INFO +3 -3
  9. {data_designer-0.3.1 → data_designer-0.3.3}/README.md +1 -1
  10. {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/product_info_qa.py +2 -2
  11. {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/example.md +0 -3
  12. data_designer-0.3.3/e2e_tests/pyproject.toml +38 -0
  13. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/__init__.py +2 -0
  14. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/__init__.py +2 -0
  15. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/config.py +12 -0
  16. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/impl.py +26 -0
  17. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/column_generator/plugin.py +10 -0
  18. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/__init__.py +2 -0
  19. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/config.py +13 -0
  20. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/impl.py +15 -0
  21. data_designer-0.3.3/e2e_tests/src/data_designer_e2e_tests/plugins/seed_reader/plugin.py +10 -0
  22. data_designer-0.3.3/e2e_tests/tests/test_e2e.py +73 -0
  23. data_designer-0.3.3/e2e_tests/tests/test_seed.csv +4 -0
  24. {data_designer-0.3.1 → data_designer-0.3.3}/pyproject.toml +2 -2
  25. data_designer-0.3.3/scripts/test_license_headers.py +899 -0
  26. data_designer-0.3.3/scripts/update_license_headers.py +373 -0
  27. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/__init__.py +1 -1
  28. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/_version.py +2 -2
  29. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/__init__.py +1 -1
  30. data_designer-0.3.3/src/data_designer/cli/commands/__init__.py +2 -0
  31. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/download.py +1 -1
  32. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/list.py +1 -1
  33. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/models.py +1 -1
  34. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/providers.py +1 -1
  35. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/commands/reset.py +1 -1
  36. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/__init__.py +1 -1
  37. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/download_controller.py +1 -1
  38. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/model_controller.py +1 -1
  39. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/controllers/provider_controller.py +1 -1
  40. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/__init__.py +1 -1
  41. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/builder.py +1 -1
  42. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/field.py +1 -1
  43. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/form.py +1 -1
  44. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/model_builder.py +1 -1
  45. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/forms/provider_builder.py +1 -1
  46. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/main.py +1 -1
  47. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/__init__.py +1 -1
  48. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/base.py +1 -1
  49. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/model_repository.py +1 -1
  50. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/persona_repository.py +1 -1
  51. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/repositories/provider_repository.py +1 -1
  52. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/__init__.py +1 -1
  53. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/download_service.py +1 -1
  54. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/model_service.py +1 -1
  55. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/services/provider_service.py +1 -1
  56. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/ui.py +1 -1
  57. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/utils.py +1 -1
  58. data_designer-0.3.3/src/data_designer/config/__init__.py +2 -0
  59. data_designer-0.3.3/src/data_designer/config/analysis/__init__.py +2 -0
  60. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/column_profilers.py +1 -1
  61. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/column_statistics.py +1 -1
  62. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/dataset_profiler.py +1 -1
  63. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/errors.py +1 -1
  64. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/analysis/utils/reporting.py +1 -1
  65. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/base.py +1 -1
  66. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/column_configs.py +1 -1
  67. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/column_types.py +1 -36
  68. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/config_builder.py +4 -21
  69. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/data_designer_config.py +1 -1
  70. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/dataset_builders.py +1 -1
  71. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/default_model_settings.py +1 -1
  72. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/errors.py +1 -1
  73. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/exports.py +1 -1
  74. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/interface.py +1 -1
  75. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/models.py +1 -1
  76. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/preview_results.py +1 -1
  77. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/processors.py +1 -1
  78. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/run_config.py +1 -1
  79. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/sampler_constraints.py +1 -1
  80. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/sampler_params.py +1 -1
  81. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/seed.py +2 -2
  82. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/seed_source.py +2 -8
  83. data_designer-0.3.3/src/data_designer/config/seed_source_types.py +17 -0
  84. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/code_lang.py +1 -1
  85. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/constants.py +1 -1
  86. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/errors.py +1 -1
  87. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/info.py +1 -1
  88. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/io_helpers.py +1 -1
  89. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/misc.py +1 -1
  90. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/numerical_helpers.py +1 -1
  91. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/type_helpers.py +1 -1
  92. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/utils/visualization.py +1 -1
  93. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/config/validator_params.py +1 -1
  94. data_designer-0.3.3/src/data_designer/engine/__init__.py +2 -0
  95. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/base.py +1 -1
  96. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/judge_score_profiler.py +1 -3
  97. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_profilers/registry.py +1 -1
  98. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/column_statistics.py +1 -1
  99. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/dataset_profiler.py +1 -1
  100. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/errors.py +1 -1
  101. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/column_statistics_calculations.py +1 -1
  102. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/analysis/utils/judge_score_processing.py +1 -1
  103. data_designer-0.3.3/src/data_designer/engine/column_generators/__init__.py +2 -0
  104. data_designer-0.3.3/src/data_designer/engine/column_generators/generators/__init__.py +2 -0
  105. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/base.py +26 -14
  106. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/embedding.py +3 -6
  107. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/expression.py +3 -2
  108. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/llm_completion.py +8 -13
  109. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/samplers.py +3 -3
  110. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/seed_dataset.py +4 -3
  111. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/generators/validation.py +3 -2
  112. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/registry.py +1 -1
  113. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/errors.py +1 -1
  114. data_designer-0.3.3/src/data_designer/engine/column_generators/utils/generator_classification.py +41 -0
  115. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/judge_score_factory.py +1 -1
  116. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/column_generators/utils/prompt_renderer.py +1 -1
  117. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/compiler.py +1 -1
  118. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/configurable_task.py +3 -13
  119. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/artifact_storage.py +1 -1
  120. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/column_wise_builder.py +8 -5
  121. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/errors.py +1 -1
  122. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/multi_column_configs.py +1 -1
  123. data_designer-0.3.3/src/data_designer/engine/dataset_builders/utils/__init__.py +2 -0
  124. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/concurrency.py +25 -3
  125. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/config_compiler.py +1 -1
  126. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dag.py +3 -2
  127. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/dataset_batch_manager.py +1 -1
  128. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/dataset_builders/utils/errors.py +1 -1
  129. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/errors.py +1 -1
  130. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/model_provider.py +1 -1
  131. data_designer-0.3.3/src/data_designer/engine/models/__init__.py +2 -0
  132. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/errors.py +1 -1
  133. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/facade.py +1 -1
  134. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/litellm_overrides.py +1 -1
  135. data_designer-0.3.3/src/data_designer/engine/models/parsers/__init__.py +2 -0
  136. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/errors.py +1 -1
  137. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/parser.py +1 -1
  138. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/postprocessors.py +1 -1
  139. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/tag_parsers.py +1 -1
  140. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/parsers/types.py +1 -1
  141. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/base.py +1 -1
  142. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/recipes/response_recipes.py +1 -1
  143. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/registry.py +1 -1
  144. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/telemetry.py +1 -1
  145. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/usage.py +1 -1
  146. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/models/utils.py +1 -1
  147. data_designer-0.3.3/src/data_designer/engine/processing/ginja/__init__.py +2 -0
  148. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/ast.py +1 -1
  149. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/environment.py +1 -1
  150. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/exceptions.py +1 -1
  151. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/ginja/record.py +1 -1
  152. data_designer-0.3.3/src/data_designer/engine/processing/gsonschema/__init__.py +2 -0
  153. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/exceptions.py +1 -1
  154. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/schema_transformers.py +1 -1
  155. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/types.py +1 -1
  156. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/gsonschema/validators.py +1 -1
  157. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/base.py +3 -1
  158. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/drop_columns.py +1 -2
  159. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/registry.py +1 -1
  160. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/processors/schema_transform.py +1 -2
  161. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/processing/utils.py +1 -1
  162. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/base.py +1 -1
  163. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/data_designer_registry.py +1 -1
  164. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/registry/errors.py +1 -1
  165. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_generator.py +1 -1
  166. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_dataset_repository.py +1 -1
  167. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/managed_storage.py +1 -1
  168. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/resource_provider.py +1 -1
  169. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/resources/seed_reader.py +1 -1
  170. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/column.py +1 -1
  171. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/constraints.py +1 -1
  172. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/base.py +1 -1
  173. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/errors.py +1 -1
  174. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/data_sources/sources.py +1 -1
  175. data_designer-0.3.3/src/data_designer/engine/sampling_gen/entities/__init__.py +2 -0
  176. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/dataset_based_person_fields.py +1 -1
  177. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/email_address_utils.py +1 -1
  178. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/errors.py +1 -1
  179. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/national_id_utils.py +1 -1
  180. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/person.py +1 -1
  181. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/entities/phone_number.py +1 -1
  182. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/errors.py +1 -1
  183. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/generator.py +1 -1
  184. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/jinja_utils.py +1 -1
  185. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/people_gen.py +1 -1
  186. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/person_constants.py +1 -1
  187. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema.py +1 -1
  188. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/schema_builder.py +1 -1
  189. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/sampling_gen/utils.py +1 -1
  190. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/secret_resolver.py +1 -1
  191. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validation.py +3 -2
  192. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/__init__.py +1 -1
  193. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/base.py +1 -1
  194. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/local_callable.py +1 -1
  195. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/python.py +1 -1
  196. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/remote.py +1 -1
  197. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/engine/validators/sql.py +1 -1
  198. data_designer-0.3.3/src/data_designer/errors.py +5 -0
  199. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/essentials/__init__.py +1 -1
  200. data_designer-0.3.3/src/data_designer/interface/__init__.py +2 -0
  201. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/data_designer.py +5 -1
  202. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/errors.py +1 -1
  203. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/interface/results.py +1 -1
  204. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/logging.py +1 -1
  205. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugin_manager.py +14 -7
  206. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/__init__.py +1 -1
  207. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/errors.py +1 -1
  208. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/plugin.py +4 -1
  209. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/registry.py +1 -1
  210. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/testing/__init__.py +1 -1
  211. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/plugins/testing/stubs.py +1 -8
  212. data_designer-0.3.3/src/data_designer/plugins/testing/utils.py +18 -0
  213. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_download_command.py +1 -1
  214. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_list_command.py +1 -1
  215. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_models_command.py +1 -1
  216. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_providers_command.py +1 -1
  217. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/commands/test_reset_command.py +1 -1
  218. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/conftest.py +1 -1
  219. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_download_controller.py +1 -1
  220. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_model_controller.py +1 -1
  221. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/controllers/test_provider_controller.py +1 -1
  222. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_field.py +1 -1
  223. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_form.py +1 -1
  224. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_model_builder.py +1 -1
  225. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/forms/test_provider_builder.py +1 -1
  226. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_model_repository.py +1 -1
  227. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_persona_repository.py +1 -1
  228. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/repositories/test_provider_repository.py +1 -1
  229. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_download_service.py +1 -1
  230. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_model_service.py +1 -1
  231. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/services/test_provider_service.py +1 -1
  232. {data_designer-0.3.1 → data_designer-0.3.3}/tests/cli/test_cli_utils.py +1 -1
  233. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/conftest.py +1 -1
  234. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/test_column_statistics.py +1 -1
  235. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/test_dataset_profiler_results.py +1 -1
  236. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/analysis/utils/test_reporting.py +1 -1
  237. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_columns.py +1 -27
  238. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_config_builder.py +1 -2
  239. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_data_designer_config.py +1 -1
  240. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_default_model_settings.py +1 -1
  241. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_models.py +1 -1
  242. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_processors.py +1 -1
  243. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_sampler_constraints.py +1 -1
  244. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_sampler_params.py +1 -1
  245. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_seed.py +1 -1
  246. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_seed_source.py +1 -1
  247. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/test_validator_params.py +1 -1
  248. data_designer-0.3.3/tests/config/utils/__init__.py +2 -0
  249. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_code_lang.py +1 -1
  250. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_info.py +2 -1
  251. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_io_helpers.py +1 -1
  252. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_misc.py +1 -1
  253. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_type_helpers.py +1 -1
  254. {data_designer-0.3.1 → data_designer-0.3.3}/tests/config/utils/test_visualization.py +1 -1
  255. {data_designer-0.3.1 → data_designer-0.3.3}/tests/conftest.py +1 -1
  256. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_base.py +1 -2
  257. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/column_profilers/test_judge_score_profiler.py +1 -1
  258. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/conftest.py +1 -1
  259. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_column_statistics_calculator.py +1 -1
  260. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_dataset_profiler.py +1 -1
  261. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_errors.py +1 -1
  262. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/utils/test_column_statistics_calculations.py +1 -1
  263. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/utils/test_judge_score_processing.py +1 -1
  264. data_designer-0.3.3/tests/engine/column_generators/generators/__init__.py +2 -0
  265. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_column_generator_base.py +1 -2
  266. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_embedding.py +1 -1
  267. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_expression.py +1 -1
  268. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_llm_completion_generators.py +21 -12
  269. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_samplers.py +1 -1
  270. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_seed_dataset.py +2 -3
  271. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/generators/test_validation.py +1 -1
  272. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/test_registry.py +1 -1
  273. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_column_generator_errors.py +1 -1
  274. data_designer-0.3.3/tests/engine/column_generators/utils/test_generator_classification.py +32 -0
  275. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_judge_score_factory.py +1 -1
  276. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/column_generators/utils/test_prompt_renderer.py +1 -1
  277. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/conftest.py +1 -1
  278. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_artifact_storage.py +1 -1
  279. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_column_wise_builder.py +1 -1
  280. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/test_multi_column_configs.py +1 -1
  281. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_concurrency.py +176 -9
  282. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_config_compiler.py +1 -1
  283. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dag.py +1 -1
  284. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/dataset_builders/utils/test_dataset_batch_manager.py +1 -1
  285. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/conftest.py +1 -1
  286. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_parser.py +1 -1
  287. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_parsers_types.py +1 -1
  288. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_postprocessors.py +1 -1
  289. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/parsers/test_tag_parsers.py +1 -1
  290. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/recipes/test_recipe_base.py +1 -1
  291. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/recipes/test_response_recipes.py +1 -1
  292. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_facade.py +1 -1
  293. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_litellm_overrides.py +1 -1
  294. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_errors.py +1 -1
  295. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_registry.py +1 -1
  296. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_model_utils.py +1 -1
  297. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/models/test_usage.py +1 -1
  298. data_designer-0.3.3/tests/engine/processing/__init__.py +2 -0
  299. data_designer-0.3.3/tests/engine/processing/ginja/__init__.py +2 -0
  300. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_ast.py +1 -1
  301. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_environment.py +1 -1
  302. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_exceptions.py +1 -1
  303. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/ginja/test_record.py +1 -1
  304. data_designer-0.3.3/tests/engine/processing/gsonschema/__init__.py +2 -0
  305. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_exceptions.py +1 -1
  306. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_schema_transformers.py +1 -1
  307. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_types.py +1 -1
  308. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/gsonschema/test_validators.py +1 -1
  309. data_designer-0.3.3/tests/engine/processing/processors/__init__.py +2 -0
  310. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_drop_columns.py +1 -2
  311. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_registry.py +1 -1
  312. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/processors/test_schema_transform.py +1 -2
  313. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/processing/test_utils.py +1 -1
  314. data_designer-0.3.3/tests/engine/registry/__init__.py +2 -0
  315. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/conftest.py +1 -1
  316. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_base.py +1 -1
  317. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_data_designer_registry.py +1 -1
  318. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/registry/test_errors.py +1 -1
  319. data_designer-0.3.3/tests/engine/resources/__init__.py +2 -0
  320. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/conftest.py +1 -1
  321. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_generator.py +1 -1
  322. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_dataset_repository.py +1 -1
  323. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_managed_storage.py +1 -1
  324. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_resource_provider.py +1 -1
  325. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/resources/test_seed_reader.py +1 -1
  326. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/conftest.py +1 -1
  327. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sampler_errors.py +1 -1
  328. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/data_sources/test_sources.py +1 -1
  329. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_email_address_utils.py +1 -1
  330. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_national_id_utils.py +1 -1
  331. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_person.py +1 -1
  332. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/entities/test_phone_number.py +1 -1
  333. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_column.py +1 -1
  334. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_constraints.py +1 -1
  335. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_generator.py +1 -1
  336. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_jinja_utils.py +1 -1
  337. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_people_gen.py +1 -1
  338. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_schema.py +1 -1
  339. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/sampling_gen/test_utils.py +1 -1
  340. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_compiler.py +1 -1
  341. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_configurable_task.py +8 -14
  342. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_engine_errors.py +1 -1
  343. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_model_provider.py +1 -1
  344. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_secret_resolver.py +1 -1
  345. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/test_validation.py +1 -1
  346. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_local_callable.py +1 -1
  347. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_python.py +1 -1
  348. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_remote.py +1 -1
  349. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/validators/test_sql.py +1 -1
  350. {data_designer-0.3.1 → data_designer-0.3.3}/tests/essentials/test_init.py +1 -1
  351. {data_designer-0.3.1 → data_designer-0.3.3}/tests/interface/test_data_designer.py +1 -1
  352. {data_designer-0.3.1 → data_designer-0.3.3}/tests/interface/test_results.py +1 -1
  353. {data_designer-0.3.1 → data_designer-0.3.3}/tests/plugins/test_plugin.py +1 -1
  354. {data_designer-0.3.1 → data_designer-0.3.3}/tests/plugins/test_plugin_registry.py +1 -1
  355. {data_designer-0.3.1 → data_designer-0.3.3}/tests/test_logging.py +1 -1
  356. {data_designer-0.3.1 → data_designer-0.3.3}/tests/test_plugin_manager.py +1 -27
  357. {data_designer-0.3.1 → data_designer-0.3.3}/uv.lock +5 -6
  358. data_designer-0.3.1/scripts/update_license_headers.py +0 -215
  359. data_designer-0.3.1/src/data_designer/cli/commands/__init__.py +0 -2
  360. data_designer-0.3.1/src/data_designer/config/__init__.py +0 -2
  361. data_designer-0.3.1/src/data_designer/config/analysis/__init__.py +0 -2
  362. data_designer-0.3.1/src/data_designer/engine/__init__.py +0 -2
  363. data_designer-0.3.1/src/data_designer/engine/column_generators/__init__.py +0 -2
  364. data_designer-0.3.1/src/data_designer/engine/column_generators/generators/__init__.py +0 -2
  365. data_designer-0.3.1/src/data_designer/engine/dataset_builders/utils/__init__.py +0 -2
  366. data_designer-0.3.1/src/data_designer/engine/models/__init__.py +0 -2
  367. data_designer-0.3.1/src/data_designer/engine/models/parsers/__init__.py +0 -2
  368. data_designer-0.3.1/src/data_designer/engine/processing/ginja/__init__.py +0 -2
  369. data_designer-0.3.1/src/data_designer/engine/processing/gsonschema/__init__.py +0 -2
  370. data_designer-0.3.1/src/data_designer/engine/sampling_gen/entities/__init__.py +0 -2
  371. data_designer-0.3.1/src/data_designer/errors.py +0 -5
  372. data_designer-0.3.1/src/data_designer/interface/__init__.py +0 -2
  373. data_designer-0.3.1/src/data_designer/plugins/testing/utils.py +0 -11
  374. data_designer-0.3.1/tests/config/utils/__init__.py +0 -2
  375. data_designer-0.3.1/tests/engine/column_generators/generators/__init__.py +0 -2
  376. data_designer-0.3.1/tests/engine/processing/__init__.py +0 -2
  377. data_designer-0.3.1/tests/engine/processing/ginja/__init__.py +0 -2
  378. data_designer-0.3.1/tests/engine/processing/gsonschema/__init__.py +0 -2
  379. data_designer-0.3.1/tests/engine/processing/processors/__init__.py +0 -2
  380. data_designer-0.3.1/tests/engine/registry/__init__.py +0 -2
  381. data_designer-0.3.1/tests/engine/resources/__init__.py +0 -2
  382. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/build-docs.yml +0 -0
  383. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/build-notebooks.yml +0 -0
  384. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/check-colab-notebooks.yml +0 -0
  385. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/dco-assistant.yml +0 -0
  386. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/pack-tutorials.yml +0 -0
  387. {data_designer-0.3.1 → data_designer-0.3.3}/.github/workflows/semantic-pull-requests.yml +0 -0
  388. {data_designer-0.3.1 → data_designer-0.3.3}/.pre-commit-config.yaml +0 -0
  389. {data_designer-0.3.1 → data_designer-0.3.3}/AGENTS.md +0 -0
  390. {data_designer-0.3.1 → data_designer-0.3.3}/CLAUDE.md +0 -0
  391. {data_designer-0.3.1 → data_designer-0.3.3}/CODE_OF_CONDUCT.md +0 -0
  392. {data_designer-0.3.1 → data_designer-0.3.3}/CONTRIBUTING.md +0 -0
  393. {data_designer-0.3.1 → data_designer-0.3.3}/DCO +0 -0
  394. {data_designer-0.3.1 → data_designer-0.3.3}/LICENSE +0 -0
  395. {data_designer-0.3.1 → data_designer-0.3.3}/VERSIONING.md +0 -0
  396. {data_designer-0.3.1 → data_designer-0.3.3}/docs/CONTRIBUTING.md +0 -0
  397. {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/palette-favicon.png +0 -0
  398. {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_python.py +0 -0
  399. {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/code_generation/text_to_sql.py +0 -0
  400. {data_designer-0.3.1 → data_designer-0.3.3}/docs/assets/recipes/qa_and_chat/multi_turn_chat.py +0 -0
  401. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/analysis.md +0 -0
  402. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/column_configs.md +0 -0
  403. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/config_builder.md +0 -0
  404. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/data_designer_config.md +0 -0
  405. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/models.md +0 -0
  406. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/processors.md +0 -0
  407. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/sampler_params.md +0 -0
  408. {data_designer-0.3.1 → data_designer-0.3.3}/docs/code_reference/validator_params.md +0 -0
  409. {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/1-the-basics.ipynb +0 -0
  410. {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/2-structured-outputs-and-jinja-expressions.ipynb +0 -0
  411. {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/3-seeding-with-a-dataset.ipynb +0 -0
  412. {data_designer-0.3.1 → data_designer-0.3.3}/docs/colab_notebooks/4-providing-images-as-context.ipynb +0 -0
  413. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/columns.md +0 -0
  414. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/configure-model-settings-with-the-cli.md +0 -0
  415. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/custom-model-settings.md +0 -0
  416. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/default-model-settings.md +0 -0
  417. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/inference-parameters.md +0 -0
  418. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/model-configs.md +0 -0
  419. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/models/model-providers.md +0 -0
  420. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/person_sampling.md +0 -0
  421. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/processors.md +0 -0
  422. {data_designer-0.3.1 → data_designer-0.3.3}/docs/concepts/validators.md +0 -0
  423. {data_designer-0.3.1 → data_designer-0.3.3}/docs/css/mkdocstrings.css +0 -0
  424. {data_designer-0.3.1 → data_designer-0.3.3}/docs/css/style.css +0 -0
  425. {data_designer-0.3.1 → data_designer-0.3.3}/docs/index.md +0 -0
  426. {data_designer-0.3.1 → data_designer-0.3.3}/docs/installation.md +0 -0
  427. {data_designer-0.3.1 → data_designer-0.3.3}/docs/js/toc-toggle.js +0 -0
  428. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/1-the-basics.py +0 -0
  429. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/2-structured-outputs-and-jinja-expressions.py +0 -0
  430. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/3-seeding-with-a-dataset.py +0 -0
  431. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/4-providing-images-as-context.py +0 -0
  432. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/README.md +0 -0
  433. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/_README.md +0 -0
  434. {data_designer-0.3.1 → data_designer-0.3.3}/docs/notebook_source/_pyproject.toml +0 -0
  435. {data_designer-0.3.1 → data_designer-0.3.3}/docs/overrides/main.html +0 -0
  436. {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/available.md +0 -0
  437. {data_designer-0.3.1 → data_designer-0.3.3}/docs/plugins/overview.md +0 -0
  438. {data_designer-0.3.1 → data_designer-0.3.3}/docs/quick-start.md +0 -0
  439. {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/cards.md +0 -0
  440. {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_python.md +0 -0
  441. {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/code_generation/text_to_sql.md +0 -0
  442. {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/qa_and_chat/multi_turn_chat.md +0 -0
  443. {data_designer-0.3.1 → data_designer-0.3.3}/docs/recipes/qa_and_chat/product_info_qa.md +0 -0
  444. {data_designer-0.3.1 → data_designer-0.3.3}/docs/scripts/generate_colab_notebooks.py +0 -0
  445. {data_designer-0.3.1 → data_designer-0.3.3}/mkdocs.yml +0 -0
  446. {data_designer-0.3.1 → data_designer-0.3.3}/src/data_designer/cli/README.md +0 -0
  447. {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
  448. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/column_configs.json +0 -0
  449. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/dataset.json +0 -0
  450. {data_designer-0.3.1 → data_designer-0.3.3}/tests/engine/analysis/test_data/artifacts/dataset/metadata.json +0 -0
  451. {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,5 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 💬 Ask a Question
4
+ url: https://github.com/NVIDIA-NeMo/DataDesigner/discussions
5
+ about: Please use GitHub Discussions for general questions.
@@ -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
@@ -91,3 +91,5 @@ docs/notebooks/
91
91
  docs/notebook_source/*.ipynb
92
92
  docs/notebook_source/*.csv
93
93
  docs/**/artifacts/
94
+
95
+ e2e_tests/uv.lock
@@ -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.1
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<14,>=13.7.1
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.
@@ -139,7 +139,7 @@ ModelConfig(
139
139
  top_p=0.9,
140
140
  max_tokens=4096,
141
141
  ),
142
- )
142
+ )
143
143
  ```
144
144
 
145
145
  The value `openai/gpt-oss-20b` would be collected.
@@ -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.completeness.score }}",
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.accuracy.score }}",
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,2 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
@@ -0,0 +1,2 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
@@ -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,2 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
@@ -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"}
@@ -0,0 +1,4 @@
1
+ first_name,last_name
2
+ John,Coltrane
3
+ Miles,Davis
4
+ 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,<14",
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"