#53718 Added copy_on_write effects on pd.Dataframe.copy() method (#54… #247
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |