| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
There was a problem hiding this comment.
This pull request updates db-dtypes to explicitly specify the nanosecond ("ns") unit for numpy.datetime64 initializations and dynamically aligns the epoch's dtype with the target array's dtype during timedelta calculations. The review feedback suggests simplifying the epoch alignment in both astype and __add__ by directly casting _NPEPOCH to the target array's dtype instead of manually extracting the datetime unit.
Sorry, something went wrong.
|
/gemini review |
Sorry, something went wrong.
There was a problem hiding this comment.
This pull request updates db-dtypes to explicitly specify the "ns" unit for numpy.datetime64 epoch and NaT initializations, and casts the epoch to match the array's dtype during subtraction. The feedback highlights potential unit mismatches: hardcoding "ns" for _internal_fill_value in the base class BaseDatetimeArray can cause issues for subclasses like DateArray (which uses "D"), and returning "ns" NaT in _datetime may also conflict with DateArray's underlying storage unit.
Sorry, something went wrong.
|
/gemini review |
Sorry, something went wrong.
There was a problem hiding this comment.
This pull request addresses numpy unit mismatches by dynamically determining the resolution unit for _internal_fill_value and matching the epoch's dtype with the array's dtype during subtraction. Additionally, it updates coverage settings and adds a unit test for the fallback behavior of _internal_fill_value. The review feedback highlights a potential regression in astype where casting the epoch could result in returning day-resolution deltas instead of the requested nanosecond-resolution deltas, and suggests using the local ndarray variable in _internal_fill_value to avoid redundant attribute lookups.
Sorry, something went wrong.
🤖 I have created a release *beep* *boop* --- <details><summary>db-dtypes: 1.7.1</summary> ## [1.7.1](db-dtypes-v1.7.0...db-dtypes-v1.7.1) (2026-07-07) ### Bug Fixes * avoid deprecated unitless operations for NumPy 2.5 compatibility ([#17589](#17589)) ([d0b2abc](d0b2abc)) </details> <details><summary>gapic-generator: 1.37.0</summary> ## [1.37.0](gapic-generator-v1.36.0...gapic-generator-v1.37.0) (2026-07-07) ### Features * implement native PEP 0810 lazy loading ([#17591](#17591)) ([8a1270c](8a1270c)) ### Bug Fixes * **deps:** bump google-api-core to 2.25.0 ([#17599](#17599)) ([8b359e2](8b359e2)) * **tests:** add --cov-append to gapic-generator and proto-plus to preserve monorepo coverage ([#17603](#17603)) ([2ddcf4d](2ddcf4d)) </details> <details><summary>google-auth: 2.55.2</summary> ## [2.55.2](google-auth-v2.55.1...google-auth-v2.55.2) (2026-07-07) ### Bug Fixes * **auth:** Agentic Identites mTLS gaps fix _is_mtls and SslCredentials. ([#17387](#17387)) ([7bfa41a](7bfa41a)) * **auth:** align mTLS discovery and enforce fail-fast transport configuration. ([#17470](#17470)) ([f492d3d](f492d3d)) * **auth:** handle PermissionError on workload certificates to avoid startup hang and crash ([#17568](#17568)) ([f538ad8](f538ad8)) </details> <details><summary>google-cloud-agentregistry: 0.1.0</summary> ## 0.1.0 (2026-07-07) ### Features * **google/cloud/agentregistry/v1:** add google-cloud-agentregistry ([#17565](#17565)) ([f479800](f479800)) </details> <details><summary>google-cloud-biglake-hive: 0.3.1</summary> ## [0.3.1](google-cloud-biglake-hive-v0.3.0...google-cloud-biglake-hive-v0.3.1) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-bigquery: 3.42.2</summary> ## [3.42.2](google-cloud-bigquery-v3.42.1...google-cloud-bigquery-v3.42.2) (2026-07-07) ### Bug Fixes * **bigquery:** avoid SSLError retry loop ([#17489](#17489)) ([8248d8e](8248d8e)) * include amended user agent in read client ([#17592](#17592)) ([c43caee](c43caee)) </details> <details><summary>google-cloud-binary-authorization: 1.18.0</summary> ## [1.18.0](google-cloud-binary-authorization-v1.17.0...google-cloud-binary-authorization-v1.18.0) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-chronicle: 0.6.2</summary> ## [0.6.2](google-cloud-chronicle-v0.6.1...google-cloud-chronicle-v0.6.2) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-dataform: 0.11.2</summary> ## [0.11.2](google-cloud-dataform-v0.11.1...google-cloud-dataform-v0.11.2) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-dataproc: 5.30.0</summary> ## [5.30.0](google-cloud-dataproc-v5.29.0...google-cloud-dataproc-v5.30.0) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-datastore: 2.26.0</summary> ## [2.26.0](google-cloud-datastore-v2.25.0...google-cloud-datastore-v2.26.0) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-dialogflow: 2.50.0</summary> ## [2.50.0](google-cloud-dialogflow-v2.49.0...google-cloud-dialogflow-v2.50.0) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-kms: 3.15.0</summary> ## [3.15.0](google-cloud-kms-v3.14.0...google-cloud-kms-v3.15.0) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-logging: 3.16.1</summary> ## [3.16.1](google-cloud-logging-v3.16.0...google-cloud-logging-v3.16.1) (2026-07-07) ### Documentation * **logging:** fix StructuredLogHandler docstring parameter name ([#17625](#17625)) ([32862f0](32862f0)), closes [#17604](#17604) </details> <details><summary>google-cloud-modelarmor: 0.7.1</summary> ## [0.7.1](google-cloud-modelarmor-v0.7.0...google-cloud-modelarmor-v0.7.1) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-network-security: 0.13.3</summary> ## [0.13.3](google-cloud-network-security-v0.13.2...google-cloud-network-security-v0.13.3) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-saasplatform-saasservicemgmt: 0.7.1</summary> ## [0.7.1](google-cloud-saasplatform-saasservicemgmt-v0.7.0...google-cloud-saasplatform-saasservicemgmt-v0.7.1) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-securesourcemanager: 0.6.1</summary> ## [0.6.1](google-cloud-securesourcemanager-v0.6.0...google-cloud-securesourcemanager-v0.6.1) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>google-cloud-storage: 3.12.1</summary> ## [3.12.1](google-cloud-storage-v3.12.0...google-cloud-storage-v3.12.1) (2026-07-07) ### Bug Fixes * **storage:** log occasional (1 in 5 million) additional bytes received from GCS in read path ([#17423](#17423)) ([335c12f](335c12f)) </details> <details><summary>google-cloud-support: 0.5.1</summary> ## [0.5.1](google-cloud-support-v0.5.0...google-cloud-support-v0.5.1) (2026-07-07) ### Features * update googleapis and regenerate ([#17635](#17635)) ([9638879](9638879)) </details> <details><summary>proto-plus: 1.28.1</summary> ## [1.28.1](proto-plus-v1.28.0...proto-plus-v1.28.1) (2026-07-07) ### Bug Fixes * **tests:** add --cov-append to gapic-generator and proto-plus to preserve monorepo coverage ([#17603](#17603)) ([2ddcf4d](2ddcf4d)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
| Back | FazBrowse Home | New Git URL |
As per https://numpy.org/devdocs/release/2.5.0-notes.html, using the generic unit in numpy.timedelta64 is deprecated since this can lead to unexpected behavior such as non-transitive comparison.
This should fix the following errors (since warnings are treated as errors when testing)
2026-06-26T22:39:25.0532625Z ==================================== ERRORS ==================================== 2026-06-26T22:39:25.0533378Z __________________ ERROR collecting tests/unit/test_arrow.py ___________________ 2026-06-26T22:39:25.0533991Z tests/unit/test_arrow.py:24: in <module> 2026-06-26T22:39:25.0534413Z import db_dtypes 2026-06-26T22:39:25.0534767Z db_dtypes/__init__.py:30: in <module> 2026-06-26T22:39:25.0535219Z from db_dtypes import core 2026-06-26T22:39:25.0536530Z db_dtypes/core.py:46: in <module> 2026-06-26T22:39:25.0537237Z class BaseDatetimeArray(pandas_backports.OpsMixin, _mixins.NDArrayBackedExtensionArray): 2026-06-26T22:39:25.0537974Z db_dtypes/core.py:51: in BaseDatetimeArray 2026-06-26T22:39:25.0538450Z _internal_fill_value = numpy.datetime64("NaT") 2026-06-26T22:39:25.0538897Z ^^^^^^^^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0540172Z E DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0541561Z ___________________ ERROR collecting tests/unit/test_date.py ___________________ 2026-06-26T22:39:25.0542129Z tests/unit/test_date.py:25: in <module> 2026-06-26T22:39:25.0542500Z import db_dtypes 2026-06-26T22:39:25.0542818Z db_dtypes/__init__.py:30: in <module> 2026-06-26T22:39:25.0543197Z from db_dtypes import core 2026-06-26T22:39:25.0543563Z db_dtypes/core.py:46: in <module> 2026-06-26T22:39:25.0544218Z class BaseDatetimeArray(pandas_backports.OpsMixin, _mixins.NDArrayBackedExtensionArray): 2026-06-26T22:39:25.0545002Z db_dtypes/core.py:51: in BaseDatetimeArray 2026-06-26T22:39:25.0545474Z _internal_fill_value = numpy.datetime64("NaT") 2026-06-26T22:39:25.0546102Z ^^^^^^^^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0547340Z E DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0548760Z ___________________ ERROR collecting tests/unit/test_json.py ___________________ 2026-06-26T22:39:25.0549293Z tests/unit/test_json.py:22: in <module> 2026-06-26T22:39:25.0549664Z import db_dtypes 2026-06-26T22:39:25.0549980Z db_dtypes/__init__.py:30: in <module> 2026-06-26T22:39:25.0550363Z from db_dtypes import core 2026-06-26T22:39:25.0550720Z db_dtypes/core.py:46: in <module> 2026-06-26T22:39:25.0551394Z class BaseDatetimeArray(pandas_backports.OpsMixin, _mixins.NDArrayBackedExtensionArray): 2026-06-26T22:39:25.0552080Z db_dtypes/core.py:51: in BaseDatetimeArray 2026-06-26T22:39:25.0552528Z _internal_fill_value = numpy.datetime64("NaT") 2026-06-26T22:39:25.0552958Z ^^^^^^^^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0554405Z E DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0555740Z _____________ ERROR collecting tests/unit/test_pandas_backports.py _____________ 2026-06-26T22:39:25.0556539Z tests/unit/test_pandas_backports.py:18: in <module> 2026-06-26T22:39:25.0557049Z import db_dtypes.pandas_backports as pandas_backports 2026-06-26T22:39:25.0557498Z db_dtypes/__init__.py:30: in <module> 2026-06-26T22:39:25.0557873Z from db_dtypes import core 2026-06-26T22:39:25.0558234Z db_dtypes/core.py:46: in <module> 2026-06-26T22:39:25.0558863Z class BaseDatetimeArray(pandas_backports.OpsMixin, _mixins.NDArrayBackedExtensionArray): 2026-06-26T22:39:25.0559525Z db_dtypes/core.py:51: in BaseDatetimeArray 2026-06-26T22:39:25.0559977Z _internal_fill_value = numpy.datetime64("NaT") 2026-06-26T22:39:25.0560384Z ^^^^^^^^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0561598Z E DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0562922Z ___________________ ERROR collecting tests/unit/test_time.py ___________________ 2026-06-26T22:39:25.0563453Z tests/unit/test_time.py:22: in <module> 2026-06-26T22:39:25.0563840Z import db_dtypes # noqa 2026-06-26T22:39:25.0564160Z ^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0564460Z db_dtypes/__init__.py:30: in <module> 2026-06-26T22:39:25.0565066Z from db_dtypes import core 2026-06-26T22:39:25.0565406Z db_dtypes/core.py:46: in <module> 2026-06-26T22:39:25.0566176Z class BaseDatetimeArray(pandas_backports.OpsMixin, _mixins.NDArrayBackedExtensionArray): 2026-06-26T22:39:25.0566858Z db_dtypes/core.py:51: in BaseDatetimeArray 2026-06-26T22:39:25.0567282Z _internal_fill_value = numpy.datetime64("NaT") 2026-06-26T22:39:25.0567695Z ^^^^^^^^^^^^^^^^^^^^^^^ 2026-06-26T22:39:25.0568851Z E DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0570116Z =========================== short test summary info ============================ 2026-06-26T22:39:25.0571523Z ERROR tests/unit/test_arrow.py - DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0573906Z ERROR tests/unit/test_date.py - DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0576196Z ERROR tests/unit/test_json.py - DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0578467Z ERROR tests/unit/test_pandas_backports.py - DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. 2026-06-26T22:39:25.0580766Z ERROR tests/unit/test_time.py - DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead.