fix: preserve string types in schema builder#4392
Open
sapunyangkut wants to merge 1 commit into
Open
Conversation
Signed-off-by: sapunyangkut <302607731+sapunyangkut@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
None, native boolean, integer, float, and empty-string behaviorTypeErrorfor unsupported value types rather than creating an invalid string schemaSince #4271, workflow configuration is loaded with
nextflow config -o jsonandjson.loads(), so a Nextflow value such as'3'already reachesbuild_schema_param()as Pythonstr("3"). The retained legacy string branch then converted it to an integer, losing the type declared by the pipeline author.The pre-JSON cache format used flat
params.*keys, while the current reader expects nestedconfig["params"]; those caches do not reach this conversion branch. Cache migration is therefore kept out of this focused fix.Fixes #4367.
Validation
10 passedNone, booleans, integers, floats, and unsupported listspython -m py_compileon both changed Python filesgit diff --checkThe broader
TestSchemafixture currently stops on this Windows checkout with a pre-existing Jinja2TemplateNotFoundforcreate/template_features.yml; the new setup-free regression tests and direct typed assertions pass.PR checklist
devAutomation disclosure
This focused bug fix was prepared and tested with OpenAI Codex automation and independently red-teamed by a separate local agent. The contributor remains responsible for the submitted change; no human review is claimed.