Skip to content

docs: Add EXIF metadata extraction example to multimodal notebook#2429

Open
shuoweil wants to merge 13 commits intomainfrom
shuowei-blob-deprecate-exif
Open

docs: Add EXIF metadata extraction example to multimodal notebook#2429
shuoweil wants to merge 13 commits intomainfrom
shuowei-blob-deprecate-exif

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
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