Skip to content

chore(migration): Migrate code from googleapis/python-bigquery-dataframes into packages/bigframes#16493

Closed
chalmerlowe wants to merge 2227 commits intomainfrom
migration.python-bigquery-dataframes.migration.2026-03-31_18-48-47.migrate
Closed

chore(migration): Migrate code from googleapis/python-bigquery-dataframes into packages/bigframes#16493
chalmerlowe wants to merge 2227 commits intomainfrom
migration.python-bigquery-dataframes.migration.2026-03-31_18-48-47.migrate

Conversation

@chalmerlowe
Copy link
Copy Markdown
Contributor

@chalmerlowe chalmerlowe commented Mar 31, 2026

OBE. Will be closed.

See #15999.

This PR should be merged with a merge-commit, not a squash-commit, in order to preserve the git history.

GarrettWu and others added 30 commits November 18, 2025 18:58
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> 🦕
Fixes internal issue 445774480🦕

---------

Co-authored-by: Shenyang Cai <sycai@users.noreply.github.com>
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 b/447388852 🦕
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> 🦕

---------

Co-authored-by: Shenyang Cai <sycai@users.noreply.github.com>
#2287)

This pull request addresses a pagination display bug in the `anywidget`
table where a small DataFrame (e.g., 5 rows) would incorrectly show
"Page 1 of 5" instead of "Page 1 of 1".

* **Fixed `table_widget.js` pagination logic:** Corrected the JavaScript
to accurately calculate total pages, ensuring "Page 1 of 1" is displayed
for datasets smaller than the page size.
* **Added comprehensive system test:** Enhanced `test_anywidget.py` by
improving the `test_widget_with_few_rows_should_have_only_one_page`
test. This test now explicitly asserts the correct `row_count` and
verifies that page navigation is correctly clamped to the first page,
thus confirming the backend conditions for the "Page 1 of 1" frontend
display.


Fixes #<issue_number_goes_here> 🦕
…2292)

This change aims to fix the tests failing in #2248 because of a 1-based
indexing error.

Fixes internal issue 417774347 🦕
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 b/447388852 🦕
…2293)

Also:

- include link to `bigframes.bigquery.ai` in README
- add partial ordering mode recommendation to starter sample
- remove 2.0 warning

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)

Towards b/454350869 🦕
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> 🦕
…2255)

This PR introduces single-column sorting functionality to the
interactive table widget.

1) **Three-State Sorting UI**

1.1) The sort indicator dot (●) is now hidden by default and only
appears when the user hovers the mouse over a column header
1.2) Implemented a sorting cycle: unsorted (●) → ascending (▲) →
descending (▼) → unsorted (●).
1.3) Visual indicators (●, ▲, ▼) are displayed in column headers to
reflect the current sort state.
1.4) Sorting controls are now only enabled for columns with orderable
data types.

2) **Tests**
2.1) Updated `paginated_pandas_df` fixture for better sorting test
coverage
2.2) Added new system tests to verify ascending, descending, and
multi-column sorting.

**3. Frontend Unit Tests**
JavaScript-level unit tests have been added to validate the widget's
frontend logic, specifically the new sorting functionality and UI
interactions.

**How to Run Frontend Unit Tests**:
To execute these tests from the project root directory:
```bash
cd tests/js
npm install  # Only needed if dependencies haven't been installed or have changed
npm test
```

Docs has been updated to document the new features. The main description
now mentions column sorting and adjustable widths, and a new section has
been added to explain how to use the column resizing feature. The
sorting section was also updated to mention that the indicators are only
visible on hover.

Fixes #<459835971> 🦕

---------

Co-authored-by: Tim Sweña (Swast) <swast@google.com>
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 b/447388852 🦕
…sqlglot compiler (#2297)

This change aims to fix the `to_datetime` related tests failing in
#2248.

Fixes internal issue 417774347 🦕
This change aims to fix the `test_timestamp_series_diff_agg` test
failing in #2248.

Fixes internal issue 417774347 🦕
This change aims to fix some string-related tests failing in #2248.

Fixes internal issue 417774347🦕
The default maximum instances for cloud functions is 100, not 0. Updated
the `expected_max_instances` in the `parametrize` decorator to 100 for
the 'no-set' and 'set-None' test cases to accurately reflect the runtime
behavior.

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 b/465212379 🦕
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> 🦕
See instructions at
https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/analytics.html#google-analytics

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

Co-authored-by: Shuowei Li <shuowei@google.com>
…_() protocol for anywidget mode (#2271)

This PR refactors the DataFrame display system to properly implement
IPython's _repr_mimebundle_() protocol for anywidget mode, moving widget
handling logic out of _repr_html_() and into the appropriate display
method.

See design doc here: screen/8XWbJDa2d9mb6r5

Fixes #<458796812> 🦕
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:c8612d3fffb3f6a32353b2d1abd16b61e87811866f7ec9d65b59b02eb452a620
<details><summary>bigframes: 2.30.0</summary>

##
[2.30.0](googleapis/python-bigquery-dataframes@v2.29.0...v2.30.0)
(2025-12-03)

### Features

* Support mixed scalar-analytic expressions (#2239)
([20ab469d](googleapis/python-bigquery-dataframes@20ab469d))

* Allow drop_duplicates over unordered dataframe (#2303)
([52665fa5](googleapis/python-bigquery-dataframes@52665fa5))

* Preserve source names better for more readable sql (#2243)
([64995d65](googleapis/python-bigquery-dataframes@64995d65))

* use end user credentials for `bigframes.bigquery.ai` functions when
`connection_id` is not present (#2272)
([7c062a68](googleapis/python-bigquery-dataframes@7c062a68))

* pivot_table supports fill_value arg (#2257)
([8f490e68](googleapis/python-bigquery-dataframes@8f490e68))

* Support builtins funcs for df.agg (#2256)
([956a5b00](googleapis/python-bigquery-dataframes@956a5b00))

* add bigquery.json_keys (#2286)
([b487cf1f](googleapis/python-bigquery-dataframes@b487cf1f))

* Add agg/aggregate methods to windows (#2288)
([c4cb39dc](googleapis/python-bigquery-dataframes@c4cb39dc))

* Add bigframes.pandas.crosstab (#2231)
([c62e5535](googleapis/python-bigquery-dataframes@c62e5535))

* Implement single-column sorting for interactive table widget (#2255)
([d1ecc61b](googleapis/python-bigquery-dataframes@d1ecc61b))

### Bug Fixes

* Pass credentials properly for read api instantiation (#2280)
([3e3fe259](googleapis/python-bigquery-dataframes@3e3fe259))

* Update max_instances default to reflect actual value (#2302)
([4489687e](googleapis/python-bigquery-dataframes@4489687e))

* Improve Anywidget pagination and display for unknown row counts
(#2258)
([508deae5](googleapis/python-bigquery-dataframes@508deae5))

* Fix issue with stream upload batch size upload limit (#2290)
([6cdf64b0](googleapis/python-bigquery-dataframes@6cdf64b0))

* calling info() on empty dataframes no longer leads to errors (#2267)
([95a83f77](googleapis/python-bigquery-dataframes@95a83f77))

* do not warn with DefaultIndexWarning in partial ordering mode (#2230)
([cc2dbae6](googleapis/python-bigquery-dataframes@cc2dbae6))

### Documentation

* update docs and tests for Gemini 2.5 models (#2279)
([08c0c0c8](googleapis/python-bigquery-dataframes@08c0c0c8))

* Add Google Analytics configuration to conf.py (#2301)
([0b266da1](googleapis/python-bigquery-dataframes@0b266da1))

* fix LogisticRegression docs rendering (#2295)
([32e53134](googleapis/python-bigquery-dataframes@32e53134))

* update API reference to new `dataframes.bigquery.dev` location (#2293)
([da064397](googleapis/python-bigquery-dataframes@da064397))

* use autosummary to split documentation pages (#2251)
([f7fd2d20](googleapis/python-bigquery-dataframes@f7fd2d20))

</details>
@chalmerlowe chalmerlowe marked this pull request as ready for review April 1, 2026 12:55
@chalmerlowe chalmerlowe requested review from a team as code owners April 1, 2026 12:55
@snippet-bot
Copy link
Copy Markdown

snippet-bot bot commented Apr 1, 2026

Here is the summary of changes.

You are about to add 1 region tag.

This comment is generated by snippet-bot.
If you find problems with this result, please file an issue at:
https://github.com/googleapis/repo-automation-bots/issues.
To update this comment, add snippet-bot:force-run label or use the checkbox below:

  • Refresh this comment

@chalmerlowe
Copy link
Copy Markdown
Contributor Author

There are several checks in the Kokoro System Tests that will need slight modifications to ensure the necessary serviceaccounts and storage objects have appropriate permissions.

A full description of needed updates (and steps to accomplish those updates) is provided here:
#16489

# Allow releases for google-cloud-storage once this bug is fixed.
- id: "google-cloud-storage"
release_blocked: true
<<<<<<< migration.python-bigquery-dataframes.migration.2026-03-31_18-48-47.migrate
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks like this is a conflict indicator.

Copy link
Copy Markdown
Contributor

@parthea parthea left a comment

Choose a reason for hiding this comment

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

Can we run the code migration script again to properly copy over this commit? abf6047 ( From googleapis/python-bigquery-dataframes@be33279)

@parthea
Copy link
Copy Markdown
Contributor

parthea commented Apr 1, 2026

For the system test failure

Access Denied: BigQuery BigQuery: Cloud KMS Error: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/bigframes-dev-perf/locations/us/keyRings/bigframesKeyRing/cryptoKeys/bigframesKey' (or it may not exist). Please grant Cloud KMS CryptoKey Encrypter/Decrypter role to BigQuery service account

This was referenced Apr 1, 2026
@parthea parthea closed this Apr 1, 2026
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.