Skip to content

fix(google_genai): Redact binary data in inline_data and fix multi-part message extraction#5977

Open
ericapisani wants to merge 2 commits intomasterfrom
ep/py-2287-missing-images-in-response-5aw
Open

fix(google_genai): Redact binary data in inline_data and fix multi-part message extraction#5977
ericapisani wants to merge 2 commits intomasterfrom
ep/py-2287-missing-images-in-response-5aw

Conversation

@ericapisani
Copy link
Copy Markdown
Member

Redact binary/byte data that appears in inline_data, which fixes a failing checkBinaryRedaction assertion in the AI testing framework.

Also includes changes for the following:

  • Properly handling lists of part-like items (merging into single multi-part user message)
  • Handling bare inline_data dicts that aren't wrapped in Part objects
  • Always substituting blob data (both bytes and base64 strings)
  • Moving PIL import to module level with availability flag to reduce all the dynamic imports of the module within the code

Fixes PY-2287 and #5965

…rt message extraction

Redact binary/byte data that appears in `inline_data`, which fixes a failing `checkBinaryRedaction` assertion in the AI testing framework.

Also includes changes for the following:
- Properly handling lists of part-like items (merging into single multi-part user message)
- Handling bare inline_data dicts that aren't wrapped in Part objects
- Always substituting blob data (both bytes and base64 strings)
- Moving PIL import to module level with availability flag to reduce all the dynamic imports of the module within the code

Fixes PY-2287 and #5965

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 10, 2026

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 10, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • (ai) Redact base64 data URLs in image_url content blocks by ericapisani in #5953
  • (integrations) Instrument pyreqwest tracing by servusdei2018 in #5682
  • (litellm) Add async callbacks by alexander-alderman-webb in #5969

Bug Fixes 🐛

Anthropic

  • Capture exceptions for stream() calls by alexander-alderman-webb in #5950
  • Stop setting transaction status when child span fails by alexander-alderman-webb in #5717
  • Only finish relevant spans in .create() patches by alexander-alderman-webb in #5716

Pydantic Ai

  • Adapt import for new library versions by alexander-alderman-webb in #5984
  • Use first-class hooks when available by alexander-alderman-webb in #5947

Other

  • (google_genai) Redact binary data in inline_data and fix multi-part message extraction by ericapisani in #5977
  • (huggingface_hub) Stop setting transaction status when a child span fails by Zenithatic in #5952
  • (litellm) Avoid double span exits when streaming by alexander-alderman-webb in #5933
  • (wsgi) Respect HTTP_X_FORWARDED_PROTO in request.url construction by sl0thentr0py in #5963

Internal Changes 🔧

Litellm

  • Replace mocks with httpx types in rate-limit test by alexander-alderman-webb in #5975
  • Replace mocks with httpx types in embedding tests by alexander-alderman-webb in #5970
  • Replace mocks with httpx types in nonstreaming completion() tests by alexander-alderman-webb in #5937
  • Remove dead attributes by alexander-alderman-webb in #5985

Other

  • (ai) Remove gen_ai.tool.type span attribute by ericapisani in #5964
  • (anthropic) Separate sync and async .create() patches by alexander-alderman-webb in #5715
  • (openai) Split token counting by API for easier deprecation by ericapisani in #5930
  • (openai-agents) Remove error attributes by alexander-alderman-webb in #5986
  • (opentelemetry) Ignore mypy error by alexander-alderman-webb in #5927
  • 🤖 Update test matrix with new releases (04/13) by github-actions in #5983
  • Fix license metadata in setup.py by sl0thentr0py in #5934
  • Update validate-pr workflow by stephanie-anderson in #5931

Other

  • Handle None span context in the span processor and pin tokenizers version for anthropic tests on Python 3.8 by alexander-alderman-webb in #5967

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 10, 2026

Codecov Results 📊

1736 passed | ⏭️ 368 skipped | Total: 2104 | Pass Rate: 82.51% | Execution Time: 2m 26s

All tests are passing successfully.

❌ Patch coverage is 0.00%. Project has 12600 uncovered lines.

Files with missing lines (1)
File Patch % Lines
utils.py 0.00% ⚠️ 513 Missing

Generated by Codecov Action

@ericapisani
Copy link
Copy Markdown
Member Author

bugbot run

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d197318. Configure here.

@ericapisani ericapisani marked this pull request as ready for review April 13, 2026 17:25
@ericapisani ericapisani requested a review from a team as a code owner April 13, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant