Skip to content

Conversation

@shuoweil
Copy link
Contributor

@shuoweil shuoweil commented Feb 4, 2026

This PR updates the notebooks/multimodal/multimodal_dataframe.ipynb notebook to include a comprehensive example of extracting EXIF metadata from images.

Key Changes:

  • Added a new section "7. Extract EXIF metadata from images".
  • Implemented a custom remote function (UDF) using pillow and requests to retrieve and parse EXIF tags from image URLs.
  • Demonstrated how to apply this function efficiently within a BigFrames workflow to analyze image metadata.

This addition provides users with a practical pattern for handling image metadata and using custom libraries within BigQuery DataFrames.

Fixes #<478952827> 🦕

GarrettWu and others added 9 commits February 3, 2026 18:59
Thank you for opening a Pull Request! Before submitting your PR, there
are a few things you can do to make sure it goes smoothly:
- [ ] Make sure to open an issue as a
[bug/issue](https://github.com/googleapis/python-bigquery-dataframes/issues/new/choose)
before writing your code! That way we can discuss the change, evaluate
designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕
…tching the backend compiler (#2417)

This change adds `bigframes.pandas.options.experiments.sql_compiler` to
allow switching the backend compiler. Currently, the default remains set
to 'legacy' (ibis), but users can now optionally switch to the
'experimental' (sqlglot) compiler.

Fixes internal issue 479912001🦕
Thank you for opening a Pull Request! Before submitting your PR, there
are a few things you can do to make sure it goes smoothly:
- [ ] Make sure to open an issue as a
[bug/issue](https://github.com/googleapis/python-bigquery-dataframes/issues/new/choose)
before writing your code! That way we can discuss the change, evaluate
designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕
This should complete the dev on the client side.

Manually verified: https://screenshot.googleplex.com/jv3UfJCm75dCzwn

Related bug 406578908 🦕
This PR refines the visual feedback provided during operation progress.
Specifically, it prevents the display of a standalone "✅ Completed."
message and green checkmark when no query execution information (like
slot time or bytes processed) is available. This often occurs during
metadata-only operations or cached results where the "Completed" status
is redundant.

Fixes #<479944983> 🦕
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:e7cc6823efb073a8a26e7cefdd869f12ec228abfbd2a44aa9a7eacc284023677
<details><summary>bigframes: 2.34.0</summary>

##
[2.34.0](v2.33.0...v2.34.0)
(2026-02-02)


### Features

* add `bigframes.pandas.options.experiments.sql_compiler` for switching
the backend compiler (#2417)
([7eba6ee](7eba6ee))
* add bigquery.ml.generate_embedding function (#2422)
([35f3f5e](35f3f5e))
* add bigquery.create_external_table method (#2415)
([76db295](76db295))
* add deprecation warnings for .blob accessor and read_gbq_object_table
(#2408)
([7261a4e](7261a4e))
* add bigquery.ml.generate_text function (#2403)
([5ac6810](5ac6810))


### Bug Fixes

* broken job url (#2411)
([fcb5bc1](fcb5bc1))
@shuoweil shuoweil requested a review from GarrettWu February 4, 2026 18:41
@shuoweil shuoweil self-assigned this Feb 4, 2026
@shuoweil shuoweil requested review from a team as code owners February 4, 2026 18:41
@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@product-auto-label product-auto-label bot added size: l Pull request size is large. api: bigquery Issues related to the googleapis/python-bigquery-dataframes API. samples Issues that are directly related to samples. labels Feb 4, 2026
@shuoweil shuoweil marked this pull request as draft February 4, 2026 18:51
@shuoweil shuoweil force-pushed the shuowei-blob-deprecate-exif branch from 9e8ca0f to ecc270c Compare February 4, 2026 22:57
@shuoweil shuoweil marked this pull request as ready for review February 4, 2026 23:07
@GarrettWu
Copy link
Contributor

Lets finish updating all the public docs and notebooks, then to actually deprecate the functions.

@product-auto-label product-auto-label bot added size: m Pull request size is medium. and removed size: l Pull request size is large. labels Feb 7, 2026
@shuoweil shuoweil changed the title feat: Deprecate blob.exif and replace with sample notebook docs: Add EXIF metadata extraction example to multimodal notebook Feb 7, 2026
@shuoweil shuoweil merged commit 84c6f88 into main Feb 9, 2026
24 checks passed
@shuoweil shuoweil deleted the shuowei-blob-deprecate-exif branch February 9, 2026 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigquery Issues related to the googleapis/python-bigquery-dataframes API. samples Issues that are directly related to samples. size: m Pull request size is medium.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants