You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Apply split.dictionary defaults to invalid inputs and null values #1223
split.dictionary currently uses default only for absent dictionary keys. A non-dictionary input such as the extract.ai status string Timed Out still raises an error. An existing key with a null value overrides its configured default and then becomes a blank cell in ordinary recipe column output.
For example, with default: {Voltage: {}}, {"Voltage": null} should produce an empty dictionary while {"Voltage": {"value": 120, "uom": "VAC"}} should retain the original object.
Agreed workstream
split-dictionary-defaults
Accepted behavior
An explicitly supplied default, including an empty object, enables fallback for invalid or non-dictionary input cells. Treat those cells as empty dictionaries while retaining valid values from other input columns.
Preserve errors for invalid inputs when no default is supplied, and do not hide invalid default configuration.
Apply per-key defaults to missing keys and explicit null values after merging all input dictionaries. Later valid input dictionaries retain their existing precedence.
Preserve non-null values, including zero, false, empty strings, lists, and dictionaries. Keys remain case-sensitive, defaults use original names before output renaming, and nested values are not filled recursively.
Apply the same rules to columns and to_lists. Copy mutable fallback values independently for each output cell.
Acceptance checks
Reproduce the timeout-string case and a convert.from_json followed by split.dictionary recipe containing valid Voltage objects, a null Voltage, and a missing Voltage.
Cover strict behavior without a default, empty and invalid defaults, multi-input precedence, preserved non-null values, renaming/filtering, and mutable-default isolation.
Update the generated-schema source descriptions and validate the recipe schema.
Run the credential-free local suite; report any live XL/service validation separately.
Activity