Skip to content

fix: correct TypeError and comparison issues discovered in DateArray compliance tests #79

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 23 commits into from
Mar 10, 2022

Conversation

tswast
Copy link
Collaborator

@tswast tswast commented Mar 9, 2022

As #64 was getting long, this pulls out some of the smaller changes for easier review.

The compliance tests are modeled after https://github.com/pandas-dev/pandas/blob/main/pandas/tests/extension/decimal/test_decimal.py, including the order of classes in the test suite. "Reduce" classes are skipped due to #78

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

TODO:

  • Compliance tests should probably only run against the latest pandas. Probably not worth investigating the 3.8 failures.

@tswast tswast requested a review from a team as a code owner March 9, 2022 19:33
@tswast tswast requested review from a team and steffnay March 9, 2022 19:33
@product-auto-label product-auto-label bot added the api: bigquery Issues related to the googleapis/python-db-dtypes-pandas API. label Mar 9, 2022
Copy link
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.

Added minor observations, otherwise LGTM

@@ -31,6 +31,33 @@ jobs:
name: coverage-artifacts
path: .coverage-${{ matrix.python }}

compliance:
Copy link
Contributor

Choose a reason for hiding this comment

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

alternatively, you could pull this into a separate file called unittest-compliance.yml and remove the customizations in owlbot.py for .github/workflows/unittest.yml. Owlbot shouldn't overwrite the changes because unittest-compliance.yml doesn't exist in templates.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'll give that a try! I was thinking mostly about having this count towards coverage, but I see that specifically calls out tests/unit, so this isn't as important.



class TestGetitem(base.BaseGetitemTests):
def test_take_na_value_other_date(self):
Copy link
Contributor

Choose a reason for hiding this comment

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

It would be helpful to have an additional comment in the test to clarify the expected behaviour

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

👍 Would have been nice if pandas had a bit more of an explanatory comment, but I'll try and deduce why this test was added in pandas-dev/pandas#20814. Perhaps it's not even necessary in general?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Removed, as most other extension dtype tests don't have it.

@tswast tswast requested a review from parthea March 10, 2022 19:13
@tswast tswast merged commit 1e979cf into main Mar 10, 2022
@tswast tswast deleted the issue28-TypeError branch March 10, 2022 19:41
gcf-merge-on-green bot pushed a commit that referenced this pull request Mar 24, 2022
🤖 I have created a release *beep* *boop*
---


## [0.4.0](v0.3.1...v0.4.0) (2022-03-24)


### ⚠ BREAKING CHANGES

* * fix: address failing compliance tests in DateArray and TimeArray
* * fix: address failing compliance tests in DateArray and TimeArray
* * fix: address failing compliance tests in DateArray and TimeArray
* * fix: address failing compliance tests in DateArray and TimeArray
* * fix: address failing compliance tests in DateArray and TimeArray
* * fix: address failing compliance tests in DateArray and TimeArray
* dbdate and dbtime dtypes return NaT instead of None for missing values

### Features

* dbdate and dbtime support numpy.datetime64 values in array constructor ([1db1357](1db1357))


### Bug Fixes

* address failing 2D array compliance tests  in DateArray ([#64](#64)) ([b771e05](b771e05))
* address failing tests with pandas 1.5.0 ([#82](#82)) ([38ac28d](38ac28d))
* allow comparison with scalar values ([#88](#88)) ([7495698](7495698))
* avoid TypeError when using sorted search ([#84](#84)) ([42bc2d9](42bc2d9))
* correct TypeError and comparison issues discovered in DateArray compliance tests ([#79](#79)) ([1e979cf](1e979cf))
* dbdate and dbtime support set item with null values ([#85](#85)) ([1db1357](1db1357))
* use `pandas.NaT` for missing values in dbdate and dbtime dtypes ([#67](#67)) ([f903c2c](f903c2c))
* use public pandas APIs where possible ([#60](#60)) ([e9d41d1](e9d41d1))


### Tests

* add dbtime compliance tests ([#90](#90)) ([f14fb2b](f14fb2b))
* add final dbdate compliance tests and sort ([#89](#89)) ([efe7e6d](efe7e6d))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
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-db-dtypes-pandas API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants