From 6359e22ed3847dbe16ce5ddb6e61ecc68c59d2c5 Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Sun, 1 Sep 2024 20:38:41 -0400 Subject: [PATCH 1/6] Adding new optional workflow --- .github/workflows/comment_action.yaml | 66 +++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/comment_action.yaml diff --git a/.github/workflows/comment_action.yaml b/.github/workflows/comment_action.yaml new file mode 100644 index 000000000..99a5373e3 --- /dev/null +++ b/.github/workflows/comment_action.yaml @@ -0,0 +1,66 @@ +name: Comment Commands to Trigger CI +on: + issue_comment: + types: created + +permissions: + checks: write + +env: + RUN_COMMAND: '{"/pandas_nightly": "pytest --nightly", "/pyright_strict": "pyright_strict", "/mypy_nightly": "mypy --mypy_nightly"}' + DISPLAY_COMMAND: '{"/pandas_nightly": "Run pandas nightly tests", "/pyright_strict": "Pyright strict tests", "/mypy_nightly": "Mypy nightly tests"}' + +jobs: + pandas_nightly: + runs-on: ubuntu-latest + env: + COMMENT: "/pandas_nightly" + timeout-minutes: 10 + if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict"]'), github.event.comment.body) + + steps: + - uses: actions/checkout@v4 + + - name: Install project dependencies + uses: ./.github/setup + with: + os: ubuntu-latest + python-version: "3.11" + + - name: Run ${{ fromJSON(env.DISPLAY_COMMAND)[github.event.comment.body] }} + id: tests-step + run: poetry run poe ${{ fromJSON(env.RUN_COMMAND)[github.event.comment.body] }} + + - name: Get head sha and store value + if: always() + id: get-sha + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const pr = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: ${{ github.event.issue.number }} + }) + core.setOutput('sha', pr.data.head.sha) + + - name: Report results of the tests and publish + if: always() + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + github.rest.checks.create({ + name: '${{ fromJSON(env.DISPLAY_COMMAND)[github.event.comment.body] }}', + head_sha: '${{ steps.get-sha.outputs.sha }}', + status: 'completed', + conclusion: '${{ steps.tests-step.outcome }}', + output: { + title: 'Run pandas nightly tests', + summary: 'Results: ${{ steps.tests-step.outcome }}', + text: 'See the actions run at ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}', + }, + owner: context.repo.owner, + repo: context.repo.repo + }) From bab6daec721a20767b1a23f1f6ec06e24c188f6e Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Sun, 1 Sep 2024 20:53:19 -0400 Subject: [PATCH 2/6] Update new workflow --- .github/workflows/comment_action.yaml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/comment_action.yaml b/.github/workflows/comment_action.yaml index 99a5373e3..a654d550b 100644 --- a/.github/workflows/comment_action.yaml +++ b/.github/workflows/comment_action.yaml @@ -8,15 +8,14 @@ permissions: env: RUN_COMMAND: '{"/pandas_nightly": "pytest --nightly", "/pyright_strict": "pyright_strict", "/mypy_nightly": "mypy --mypy_nightly"}' - DISPLAY_COMMAND: '{"/pandas_nightly": "Run pandas nightly tests", "/pyright_strict": "Pyright strict tests", "/mypy_nightly": "Mypy nightly tests"}' + DISPLAY_COMMAND: '{"/pandas_nightly": "Pandas nightly tests", "/pyright_strict": "Pyright strict tests", "/mypy_nightly": "Mypy nightly tests"}' jobs: - pandas_nightly: + optional_tests: + name: "Optional tests run" runs-on: ubuntu-latest - env: - COMMENT: "/pandas_nightly" timeout-minutes: 10 - if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict"]'), github.event.comment.body) + if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict", "/mypy_nightly]'), github.event.comment.body) steps: - uses: actions/checkout@v4 From 1c3bd051a8115789f236d92296812a5194642983 Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Sun, 1 Sep 2024 20:55:08 -0400 Subject: [PATCH 3/6] Update new workflow --- .github/workflows/comment_action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/comment_action.yaml b/.github/workflows/comment_action.yaml index a654d550b..30c385790 100644 --- a/.github/workflows/comment_action.yaml +++ b/.github/workflows/comment_action.yaml @@ -15,7 +15,7 @@ jobs: name: "Optional tests run" runs-on: ubuntu-latest timeout-minutes: 10 - if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict", "/mypy_nightly]'), github.event.comment.body) + if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict", "/mypy_nightly"]'), github.event.comment.body) steps: - uses: actions/checkout@v4 From 20e0603337923cc4007600b1c5b37b3b58731f21 Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Tue, 3 Sep 2024 18:12:05 -0400 Subject: [PATCH 4/6] GH992 Fix pd.DataFrame.pct_change fill_method typing --- .github/workflows/comment_action.yaml | 65 --------------------------- pandas-stubs/core/frame.pyi | 2 +- tests/test_frame.py | 5 +++ 3 files changed, 6 insertions(+), 66 deletions(-) delete mode 100644 .github/workflows/comment_action.yaml diff --git a/.github/workflows/comment_action.yaml b/.github/workflows/comment_action.yaml deleted file mode 100644 index 30c385790..000000000 --- a/.github/workflows/comment_action.yaml +++ /dev/null @@ -1,65 +0,0 @@ -name: Comment Commands to Trigger CI -on: - issue_comment: - types: created - -permissions: - checks: write - -env: - RUN_COMMAND: '{"/pandas_nightly": "pytest --nightly", "/pyright_strict": "pyright_strict", "/mypy_nightly": "mypy --mypy_nightly"}' - DISPLAY_COMMAND: '{"/pandas_nightly": "Pandas nightly tests", "/pyright_strict": "Pyright strict tests", "/mypy_nightly": "Mypy nightly tests"}' - -jobs: - optional_tests: - name: "Optional tests run" - runs-on: ubuntu-latest - timeout-minutes: 10 - if: (github.event.issue.pull_request) && contains(fromJSON('["/pandas_nightly", "/pyright_strict", "/mypy_nightly"]'), github.event.comment.body) - - steps: - - uses: actions/checkout@v4 - - - name: Install project dependencies - uses: ./.github/setup - with: - os: ubuntu-latest - python-version: "3.11" - - - name: Run ${{ fromJSON(env.DISPLAY_COMMAND)[github.event.comment.body] }} - id: tests-step - run: poetry run poe ${{ fromJSON(env.RUN_COMMAND)[github.event.comment.body] }} - - - name: Get head sha and store value - if: always() - id: get-sha - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const pr = await github.rest.pulls.get({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: ${{ github.event.issue.number }} - }) - core.setOutput('sha', pr.data.head.sha) - - - name: Report results of the tests and publish - if: always() - uses: actions/github-script@v7 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - github.rest.checks.create({ - name: '${{ fromJSON(env.DISPLAY_COMMAND)[github.event.comment.body] }}', - head_sha: '${{ steps.get-sha.outputs.sha }}', - status: 'completed', - conclusion: '${{ steps.tests-step.outcome }}', - output: { - title: 'Run pandas nightly tests', - summary: 'Results: ${{ steps.tests-step.outcome }}', - text: 'See the actions run at ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}', - }, - owner: context.repo.owner, - repo: context.repo.repo - }) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index 0e151c4a6..94bd38e16 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -1874,7 +1874,7 @@ class DataFrame(NDFrame, OpsMixin): def pct_change( self, periods: int = ..., - fill_method: _str = ..., + fill_method: _str | None = ..., limit: int | None = ..., freq=..., **kwargs, diff --git a/tests/test_frame.py b/tests/test_frame.py index 33aa1616e..2ff0348c2 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -2108,6 +2108,11 @@ def test_groupby_series_methods() -> None: gb.nth(0).loc[1] +def test_dataframe_pct_change() -> None: + df = pd.DataFrame({"x": [1, 2, 2, 3, 3], "y": [10, 20, 30, 40, 50]}) + df.pct_change(fill_method=None) + + def test_indexslice_setitem(): df = pd.DataFrame( {"x": [1, 2, 2, 3], "y": [1, 2, 3, 4], "z": [10, 20, 30, 40]} From 8c1bc46d39fd897bf313cea32c84394d65b1d0a9 Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Wed, 4 Sep 2024 18:44:14 -0400 Subject: [PATCH 5/6] Update pandas-stubs/core/frame.pyi Co-authored-by: Irv Lustig --- pandas-stubs/core/frame.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index 94bd38e16..a90df406d 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -1874,7 +1874,7 @@ class DataFrame(NDFrame, OpsMixin): def pct_change( self, periods: int = ..., - fill_method: _str | None = ..., + fill_method: None = ..., limit: int | None = ..., freq=..., **kwargs, From 14855ea78da7fe22be079e21310b8cecd0533e1c Mon Sep 17 00:00:00 2001 From: Loic Diridollou Date: Wed, 4 Sep 2024 18:59:49 -0400 Subject: [PATCH 6/6] PR Feedback --- pandas-stubs/core/frame.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas-stubs/core/frame.pyi b/pandas-stubs/core/frame.pyi index a90df406d..3102e02fc 100644 --- a/pandas-stubs/core/frame.pyi +++ b/pandas-stubs/core/frame.pyi @@ -1874,7 +1874,7 @@ class DataFrame(NDFrame, OpsMixin): def pct_change( self, periods: int = ..., - fill_method: None = ..., + fill_method: None = ..., limit: int | None = ..., freq=..., **kwargs,