Skip to content

v1.20.5

Latest

Choose a tag to compare

@ebhills ebhills released this 11 Oct 19:24
bd5f88f

WranglesPY 1.20.5 adds structured AI answers, AI Mode search, more flexible saved extraction models, and clearer spreadsheet recipe inputs and outputs. It also improves AI model configuration, URL retrieval, and error handling.

New Additions

  • Added ai.choose, ai.score, ai.true_false, and ai.answers for structured answers through Typesafe Jev. Questions can use values from each row and expand over candidate lists or dictionaries with for_each. #1202, #1205
  • Added search.ai_mode for Markdown search answers that can feed downstream structured extraction. #1188
  • Added convert.parse to turn JSON-like cell values, including supported Python and YAML-style structures, into usable objects. #1187
  • Added lookup.key and lookup.semantic with explicit validation of the saved lookup model type. Existing lookup calls remain supported. #1198
  • Added grid.selected_data and excel.selected_data for reading the calling spreadsheet selection, plus excel.columns (fka dataframe) for writing result columns separately from excel.sheet output in WranglesXL. #1221

Enhancements

  • compute.score_search_results now includes part_code_matches and part_code_match_count inside each scored result, making the matching evidence easier to inspect. Numeric scores, filtering, result order, and the existing one/two-column output formats are unchanged. #1229
  • Saved Extract-AI models support richer field definitions, including nested objects and arrays, allowed values, nullability, and examples. General Instructions remain compatible with existing saved definitions. #1184
  • AI model defaults are centrally configurable, with gpt-6-luna selected for extraction. Explicit settings and saved model selections retain their precedence, and version-1 configuration files remain supported. #1200
  • Extraction recipes now accept simple effort settings such as reasoning: none alongside the existing nested form, reasoning: {effort: none}. Both forms preserve explicit overrides and the extraction default of none; unsupported settings produce a provider error. #1226
  • URL retrieval prompts can reference values from the full input row. Gemini retrieval adds configurable thinking controls and per-URL deadlines, with Gemini 3.5 Flash as the configured default. #1208, #1216
  • New documentation guides for advanced Wrangles including extract.ai and compute.score_search_results.

Bug Fixes

  • Write filters using not_columns now ignore missing column names while still excluding columns that exist. #1228
  • split.dictionary now applies an explicitly supplied default to invalid input cells and null-valued keys, while preserving valid values and keeping mutable defaults independent between rows. #1224
  • Custom functions bind positional inputs correctly when their parameters have defaults. #1166
  • Matrix execution now propagates child failures instead of silently swallowing them. #1165
  • Gemini retrieval handles temperature settings correctly and reports empty responses more clearly. #1212
  • AI Mode result cleanup preserves useful Google product references in search answers. #1197

Breaking Changes

  • The public wrangles.openai.chatGPT wrapper has been removed. Use wrangles.extract.ai; legacy Chat Completions remains available through its protocol option. #1200
  • Composed reads now report an error when an expected selected-data operand is missing or empty. Recipes using selected-data joins must supply the required input. #1221

Developer and Release Improvements

  • Added Python 3.14 compatibility and CI coverage. #1191
  • CI now checks that the credential-free local test configuration stays in sync with the test suite. Search tests also handle requested result counts as limits rather than guaranteed counts. #1159, #1214

Full Changelog: v1.20.4.1...v1.20.5