tree 03fbff70d86531a8bbfc646ca4bb761731b0ae51
parent aff037a2a2f75018dd297e16d4d41f07758cd4cf
author WhiteSource Renovate <bot@renovateapp.com> 1619020082 +0200
committer GitHub <noreply@github.com> 1619020082 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJggEkyCRBK7hj4Ov3rIwAAfKwIAGH7Kpj/Rf8vy+4WIZWZoqL1
 D3LP1vHiXy7ovKiBK8AohgZjluSZRbjo8C1X87jpK9UDesfTehw/L0yGio2fz03U
 x+VSQ8tsrZCVOXe1yWr86uNWOBHP//4Lo4uYbclVefFLYhoqGYwfmGShanugR83C
 PYYUiZB/RhM4rZUGpPEdAZuDmEsc90nnbg7uCQ3Fj2cBsvvrAgSOeCxX33Lgd+TF
 viBN2ejWnTqbWtkBPTAnJGUIXNs+neF6WflKKLFRDzdepJA4FdjamaujnoRwhQbf
 bLfqKr63gps46tOfwo/tnOZbuQFs+N+2+Y5EOr2lRpx+hr2XubmCc7f+lO2Fo90=
 =ZrfX
 -----END PGP SIGNATURE-----
 

chore(deps): update dependency pandas to v1.2.4 (#1297)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pandas](https://pandas.pydata.org) ([source](https://togithub.com/pandas-dev/pandas)) | `==1.2.2` -> `==1.2.4` | [![age](https://badges.renovateapi.com/packages/pypi/pandas/1.2.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/pandas/1.2.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/pandas/1.2.4/compatibility-slim/1.2.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/pandas/1.2.4/confidence-slim/1.2.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>pandas-dev/pandas</summary>

### [`v1.2.4`](https://togithub.com/pandas-dev/pandas/releases/v1.2.4)

[Compare Source](https://togithub.com/pandas-dev/pandas/compare/v1.2.3...v1.2.4)

This is a patch release in the 1.2.x series and includes some regression fixes. We recommend that all users upgrade to this version.

See the [full whatsnew](https://pandas.pydata.org/pandas-docs/version/1.2.4/whatsnew/v1.2.4.html) for a list of all the changes.

The release will be available on the defaults and conda-forge channels:

    conda install pandas

Or via PyPI:

    python3 -m pip install --upgrade pandas

Please report any issues with the release on the [pandas issue tracker](https://togithub.com/pandas-dev/pandas/issues).

### [`v1.2.3`](https://togithub.com/pandas-dev/pandas/releases/v1.2.3)

[Compare Source](https://togithub.com/pandas-dev/pandas/compare/v1.2.2...v1.2.3)

This is a patch release in the 1.2.x series and includes some regression fixes. We recommend that all users upgrade to this version.

See the [full whatsnew](https://pandas.pydata.org/pandas-docs/version/1.2.3/whatsnew/v1.2.3.html) for a list of all the changes.

The release will be available on the defaults and conda-forge channels:

    conda install pandas

Or via PyPI:

    python3 -m pip install --upgrade pandas

Please report any issues with the release on the [pandas issue tracker](https://togithub.com/pandas-dev/pandas/issues).

</details>

---

### Configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/google-api-python-client).