Skip to content

#53718 Added copy_on_write effects on pd.Dataframe.copy() method (#54… #247

#53718 Added copy_on_write effects on pd.Dataframe.copy() method (#54…

#53718 Added copy_on_write effects on pd.Dataframe.copy() method (#54… #247

Workflow file for this run

name: Code Checks
on:
push:
branches:
- main
- 2.0.x
pull_request:
branches:
- main
- 2.0.x
env:
ENV_FILE: environment.yml
PANDAS_CI: 1
permissions:
contents: read
# pre-commit run by https://pre-commit.ci/
jobs:
docstring_typing_manual_hooks:
name: Docstring validation, typing, and other manual pre-commit hooks
runs-on: ubuntu-22.04
defaults:
run:
shell: bash -el {0}
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-code-checks
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Conda
uses: ./.github/actions/setup-conda
- name: Build Pandas
id: build
uses: ./.github/actions/build_pandas
with:
editable: false
# The following checks are independent of each other and should still be run if one fails
# TODO: The doctests have to be run first right now, since the Cython doctests only work
# with pandas installed in non-editable mode
# This can be removed once pytest-cython doesn't require C extensions to be installed inplace
- name: Run doctests
run: cd ci && ./code_checks.sh doctests
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Install pandas in editable mode
id: build-editable
if: ${{ steps.build.outcome == 'success' && always() }}
uses: ./.github/actions/build_pandas
with:
editable: true
- name: Check for no warnings when building single-page docs
run: ci/code_checks.sh single-docs
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Run checks on imported code
run: ci/code_checks.sh code
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Run docstring validation
run: ci/code_checks.sh docstrings
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Run check of documentation notebooks
run: ci/code_checks.sh notebooks
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Use existing environment for type checking
run: |
echo $PATH >> $GITHUB_PATH
echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV
echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Typing + pylint
uses: pre-commit/action@v3.0.0
with:
extra_args: --verbose --hook-stage manual --all-files
if: ${{ steps.build.outcome == 'success' && always() }}
- name: Run docstring validation script tests
run: pytest scripts
if: ${{ steps.build.outcome == 'success' && always() }}
asv-benchmarks:
name: ASV Benchmarks
runs-on: ubuntu-22.04
defaults:
run:
shell: bash -el {0}
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-asv-benchmarks
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Conda
uses: ./.github/actions/setup-conda
- name: Build Pandas
id: build
uses: ./.github/actions/build_pandas
- name: Run ASV benchmarks
run: |
cd asv_bench
asv machine --yes
asv run --quick --dry-run --strict --durations=30 --python=same
build_docker_dev_environment:
name: Build Docker Dev Environment
runs-on: ubuntu-22.04
defaults:
run:
shell: bash -el {0}
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-build_docker_dev_environment
cancel-in-progress: true
steps:
- name: Clean up dangling images
run: docker image prune -f
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build image
run: docker build --pull --no-cache --tag pandas-dev-env .
- name: Show environment
run: docker run --rm pandas-dev-env python -c "import pandas as pd; print(pd.show_versions())"
requirements-dev-text-installable:
name: Test install requirements-dev.txt
runs-on: ubuntu-22.04
concurrency:
# https://github.community/t/concurrecy-not-work-for-push/183068/7
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-requirements-dev-text-installable
cancel-in-progress: true
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Python
id: setup_python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: 'requirements-dev.txt'
- name: Install requirements-dev.txt
run: pip install -r requirements-dev.txt
- name: Check Pip Cache Hit
run: echo ${{ steps.setup_python.outputs.cache-hit }}