Commit Graph
89034 Commits
Author SHA1 Message Date
John ChiltonandClaude Opus 4.6 7285d3bf87 Normalize YAML tool naming scheme in test tools.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 eaa70ecb1f Fix mypy errors in parameters, yaml parser, interactor, runtime.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 e90af2979f Fix mypy errors in evaluation, runtime, and test_runtime.
- evaluation.py: annotate input_dataset_collections dict with HDCA|DCE union
- runtime.py: refine InpDataCollectionsDictT from dict[str, Any] to proper union
- test_runtime.py: add assert-not-None guards for Optional[Type] returns from
  build_collection_model_for_type, hasattr narrowing for dynamic model elements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John Chilton 9e5652693d Fix linting. 2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 db1c778870 Fix linter test for YAML tool minimum profile 24.2.
Rebase note: squash into 52035c6d1a (YAML tools specify a minimum
profile of 24.2 so test requests load).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 529689a6a9 Linting fixes: unused imports, deprecated typing, loop variable.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 30b167c7ed Comma-separated collection type specs, deeper E2E tests.
- Add gx_data_collection_list_paired_or_list_list and
  gx_data_collection_list_or_list_paired tool definitions + specs
- Add job_runtime valid/invalid specs for comma-separated type unions
- Add E2E test for list:list:paired, record:paired dynamic models
- Tighten nested collection assertions to use dynamic model types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 7493fed862 Add 8 collection type functional tool definitions.
Tool YAMLs + sample_tool_conf.xml entries for record, sample_sheet,
paired_or_unpaired, list:paired, list:list, list:list:paired,
list_or_record, paired_or_pou.

Rebase note: squash into 419f415dbf (Add cross-type discrimination tests).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 3815c70043 Polish dynamic model factory: fix return types, consolidate routing.
- Add dict_type() helper to _types.py for symmetric type construction
- Replace CollectionRuntimeT union with DataCollectionInternalJsonBase
  in all runtime.py annotations (dynamic models aren't in the union)
- Consolidate parallel routing tables: both _runtime_model_for_collection_type
  and _validate_collection_runtime_dict now delegate to
  build_collection_model_for_type, single source of truth is
  _LEAF_COLLECTION_MODELS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.6 372d939fbb Dynamic model factory for recursive collection type validation.
Add build_collection_model_for_type() that recursively generates precise
Pydantic models for nested collection types (e.g. list:paired, list:list:paired).
Dynamic models use Literal[collection_type] and narrowed elements types so
inner type mismatches and depth mismatches are caught structurally by Pydantic
rather than requiring runtime model_validators.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.5 3f3a656535 Harden collection runtime models with discriminated unions.
Use Pydantic discriminated unions to enforce that collection_type
matches element structure:
- Add Literal types to simple models (list, paired, record, etc.)
- Add DataCollectionSampleSheetRuntime as separate model
- Split DataCollectionNestedRuntime into NestedList and NestedRecord
- Add collection_runtime_discriminator() for routing validation
- Create CollectionRuntimeDiscriminated tagged union
- Add structure mismatch tests (list with object elements, etc.)
- Add gx_data_collection_list_or_paired test tool

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.5 0edbe4df31 Add cross-type discrimination tests for collection runtime.
- List type rejects paired-shaped data (object elements)
- Paired type rejects list-shaped data (array elements)
- Paired type rejects incomplete data (missing reverse)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.5 5aae707f1d Harmonize py_type_internal_json with runtime validation.
- Remove duplicate DataCollectionRecordRuntime class definition
- Add explicit branches for record, paired_or_unpaired, sample_sheet
- Include all 5 collection runtime types in fallback union

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.5 563dbcaa9f Add explicit job_runtime specs for scalar parameter types.
Add job_runtime_valid/job_runtime_invalid test specs for all scalar
types: int, boolean, float, text, select, genomebuild, directory_uri,
hidden, drill_down, and structural types (conditionals, repeats,
sections) containing only scalars.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:17 -05:00
John Chilton 1cc0e26b0f Typed Models for collection_to_runtime 2026-02-12 15:58:17 -05:00
John ChiltonandClaude Opus 4.5 1ac44a260c Wire job_runtime validation into parameter specification tests.
Add validate_job_runtime to validation layer and test runner. Add
job_runtime_valid/invalid specs for data, data_multiple, data_collection,
and typed collection (list/paired) params. New gx_data_collection_paired
test tool for paired collection_type coverage.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:16 -05:00
John ChiltonandClaude Opus 4.5 97ad0a633a Remove dead collection runtime models.
DataCollectionInternalJson, RecursiveDataCollectionInternalJson,
and DataCollectionPaired replaced by new normalized models in
6c92826bfa but not cleaned up at the time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:16 -05:00
John ChiltonandClaude Opus 4.5 3a08805237 Implement collection input runtimeify for YAML tools.
Removes NotImplementedError for DataCollectionParameterModel in
runtimeify() by implementing full collection-to-runtime conversion.
Collections produce normalized representations with class, name,
collection_type, tags, and elements. List-like types (list,
sample_sheet) get array elements; record-like types (paired,
paired_or_unpaired, record) get object elements.

Adds DataCollectionElementInternalJson subtype of DataInternalJson
for stronger typing of files within collections (adds
element_identifier, columns fields).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 15:58:16 -05:00
John Chilton 2b463a2440 Linting fixes... 2026-02-12 15:58:16 -05:00
John Chilton fd4183d319 Improved error handling for tool tests when requests are unavailable. 2026-02-12 15:58:16 -05:00
John Chilton f8decd4785 WIP: allow collection inputs to YAML tools. 2026-02-12 15:58:16 -05:00
John Chilton 5b5bb422bc YAML tools specify a minimum profile of 24.2 so test requests load. 2026-02-12 15:58:16 -05:00
John Chilton 3c5e3c955e Allow YAML-based tools to produce output collections. 2026-02-12 15:58:16 -05:00
John Chilton 8d84e3dd11 YAML test for collection WIP. 2026-02-12 15:58:16 -05:00
John Chilton abbc3e1dc4 Do not allow the legacy tool submission with user tools from tests. 2026-02-12 15:58:16 -05:00
John Chilton 85d5d17321 claude infrastructure for managing test tools. 2026-02-12 15:58:16 -05:00
John Chilton 8276031c43 Failing gx_boolean_user.yml tool to develop against. 2026-02-12 15:58:16 -05:00
John Chilton fbeb0963cd Does this change make sense in light of select handling changes that seem to be working? 2026-02-12 15:58:16 -05:00
John Chilton 1bb986cdb1 Add a function tests for multiple selects from user tools. 2026-02-12 15:58:16 -05:00
John Chilton c55864e862 Persist validated job tool state. 2026-02-12 15:58:16 -05:00
John Chilton 12fb8c9f1e Migration for job.tool_state. 2026-02-12 15:58:16 -05:00
John Chilton dddcf09855 [WIP] track abstract inputs type in tool source interface. 2026-02-12 10:50:13 -05:00
John Chilton 8e208fcf39 Small tweaks to tool loading in celery task for downstream. 2026-02-12 10:50:13 -05:00
John Chilton 8b662c4f3f Refactor path for loading user defined tools for consistency. 2026-02-12 10:50:13 -05:00
John Chilton e71741e264 fix: don't let yaml tool source parsing change yaml tool source serialization 2026-02-12 10:50:13 -05:00
John Chilton cc89081927 Modeling and validation of YAML tool test cases. 2026-02-12 10:50:13 -05:00
John Chilton 10197f9ba9 Test serialization roundtrip (discovered bugs in YAML parsing). 2026-02-12 10:50:02 -05:00
John ChiltonandClaude Opus 4.5 769f553a0a Another pass at fixing redundant work during tool loading.
Allow passing pre-parsed parameters to parse_tool_test_descriptions()
to avoid re-calling input_models_for_tool_source() when the caller
already has the parameters.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 10:50:02 -05:00
davelopez db43f2dbc4 Merge branch 'release_26.0' into dev 2026-02-12 16:00:31 +01:00
davelopez 37e6fece3a Adapt FormNumber test to vitest 2026-02-12 15:58:54 +01:00
davelopez 73d6689e79 Merge branch 'release_25.1' into release_26.0 2026-02-12 15:54:51 +01:00
davelopez 27b97f2735 Merge branch 'release_25.0' into release_25.1 2026-02-12 15:46:55 +01:00
Marius van den Beek c4ab865ce6 Merge pull request #21819 from davelopez/25.0_fix_form_number_negative_handling
[25.0] Fix form number negative handling
2026-02-12 14:51:08 +01:00
Aysam Guerler 83fa837a33 Merge pull request #21775 from guerler/form.000
Convert FormDisplay to Composition API
2026-02-12 16:06:52 +03:00
guerler 34e8dd1bce Adjust test names 2026-02-12 13:50:01 +03:00
guerler 289cd51bc4 Adjust prop name 2026-02-12 12:13:18 +03:00
guerler 41e3ef2728 Display form data extension consistently below input element 2026-02-12 11:50:23 +03:00
guerler c4ad3af05d Restore tool footer pseudo class for selenium test 2026-02-12 11:50:23 +03:00
guerler 66bc01a3b0 Use g-button for form collapse button 2026-02-12 11:50:23 +03:00
guerler d1f550c074 Fix inconsistent repeat block button group 2026-02-12 11:50:23 +03:00