Skip to content

Commit 1602a41

Browse files
Update shas.txt
0 parents  commit 1602a41

7,168 files changed

Lines changed: 566072 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/lint.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Lint
2+
on:
3+
pull_request:
4+
branches:
5+
- main
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
lint:
11+
concurrency:
12+
group: lint-${{ github.event_name == 'push' && github.run_number || github.ref }}
13+
cancel-in-progress: true
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v3
18+
19+
- name: Setup Python
20+
uses: actions/setup-python@v4
21+
with:
22+
python-version: "3.11"
23+
24+
- name: Install dependencies
25+
run: pip install .[lint]
26+
27+
- name: Show versions
28+
run: pip freeze
29+
30+
- name: Run pre-commit
31+
uses: pre-commit/action@v3.0.0
32+
with:
33+
extra_args: --verbose --all-files
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Process ASV Results
2+
on:
3+
# pull_request:
4+
# branches:
5+
# - main
6+
schedule:
7+
- cron: "20 3 * * *"
8+
workflow_dispatch:
9+
10+
env:
11+
# Results and other data are stored away from the main branch.
12+
# This keeps the main branch clean and allows us to clear out
13+
# objects / history after being built up for long periods of time.
14+
BRANCH_NAME: pandas_2026_01_04
15+
PYTHON_VERSION: 3.12
16+
17+
permissions:
18+
contents: read
19+
20+
jobs:
21+
process-results:
22+
name: Process ASV Results
23+
runs-on: ubuntu-24.04
24+
defaults:
25+
run:
26+
shell: bash -el {0}
27+
permissions:
28+
contents: write
29+
issues: write
30+
steps:
31+
- name: Checkout pandas
32+
uses: actions/checkout@v4
33+
with:
34+
repository: pandas-dev/pandas
35+
fetch-depth: 0
36+
37+
- name: Checkout asv-runner results branch
38+
uses: actions/checkout@v4
39+
with:
40+
ref: "${{ env.BRANCH_NAME }}"
41+
path: asv-runner/
42+
43+
- name: Setup Python
44+
uses: actions/setup-python@v4
45+
with:
46+
python-version: "${{ env.PYTHON_VERSION }}"
47+
48+
- name: Install environment dependencies
49+
run: pip install -U pip uv
50+
51+
- name: Install job dependencies
52+
run: uv pip install --system asv pandas pyarrow
53+
54+
- name: Show environment packages
55+
run: uv pip freeze
56+
57+
- name: Copy results directory
58+
run: |
59+
cp -r asv-runner/data/results asv_bench/results
60+
61+
- name: Publish ASV Benchmarks
62+
run: cd asv_bench && asv publish
63+
64+
- name: Process ASV results
65+
run: |
66+
python asv-runner/ci/process_results.py --input-path=asv_bench/ --output-path=asv-runner/data
67+
rm -rf asv-runner/docs
68+
mv asv_bench/html/ asv-runner/docs
69+
70+
- name: Make issues for new regressions
71+
run: python asv-runner/ci/make_issues.py --input-path=asv-runner/data
72+
env:
73+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74+
75+
- name: Update asv-runner branch
76+
# In case there was a push by another job.
77+
run: |
78+
cd asv-runner
79+
git fetch && git pull --rebase
80+
81+
- name: Commit results to branch
82+
uses: stefanzweifel/git-auto-commit-action@v5
83+
with:
84+
commit_message: Results
85+
branch: ${{ env.BRANCH_NAME }}
86+
repository: asv-runner
87+
file_pattern: 'data/results.parquet docs/'

.github/workflows/run_asvs.yaml

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: Run ASV
2+
on:
3+
# pull_request:
4+
# branches:
5+
# - main
6+
schedule:
7+
- cron: "20 * * * *"
8+
workflow_dispatch:
9+
10+
env:
11+
ENV_FILE: environment.yml
12+
PANDAS_CI: 1
13+
# Results and other data are stored away from the main branch.
14+
# This keeps the main branch clean and allows us to clear out
15+
# objects / history after being built up for long periods of time.
16+
BRANCH_NAME: pandas_2026_01_04
17+
18+
permissions:
19+
contents: read
20+
21+
jobs:
22+
asv:
23+
name: Run ASVs
24+
runs-on: ubuntu-24.04
25+
defaults:
26+
run:
27+
shell: bash -el {0}
28+
permissions:
29+
contents: write
30+
issues: write
31+
outputs:
32+
new_commit: ${{ steps.get-commit.outputs.new_commit }}
33+
steps:
34+
# In order to run pandas' actions, we have to checkout into the root directory.
35+
- name: Checkout pandas
36+
uses: actions/checkout@v4
37+
with:
38+
repository: pandas-dev/pandas
39+
fetch-depth: 0
40+
41+
- name: Checkout asv-runner results branch
42+
uses: actions/checkout@v4
43+
with:
44+
ref: ${{ env.BRANCH_NAME }}
45+
path: asv-runner/
46+
47+
- name: Set up Conda
48+
uses: ./.github/actions/setup-conda
49+
50+
- name: Get Commit
51+
id: get-commit
52+
run: |
53+
sha="$(python asv-runner/ci/find_commit_to_run.py --input-path=asv-runner/data/ --repo-path=.)"
54+
echo "sha: $sha"
55+
if [ "$sha" = "NONE" ]; then
56+
echo "new_commit=no"
57+
echo "new_commit=no" >> "$GITHUB_OUTPUT"
58+
else
59+
echo "new_commit=yes"
60+
echo "new_commit=yes" >> "$GITHUB_OUTPUT"
61+
echo "$sha" >> asv-runner/data/shas.txt
62+
git checkout $sha
63+
fi
64+
65+
# Prevent another job from kicking off and running on this commit
66+
- name: Commit shas.txt
67+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
68+
uses: stefanzweifel/git-auto-commit-action@v5
69+
with:
70+
commit_message: Update shas.txt
71+
branch: ${{ env.BRANCH_NAME }}
72+
repository: asv-runner
73+
file_pattern: 'data/shas.txt'
74+
75+
- name: Build pandas
76+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
77+
uses: ./.github/actions/build_pandas
78+
79+
- name: Run ASV Benchmarks
80+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
81+
run: |
82+
cd asv_bench
83+
asv machine --machine=asvrunner --yes
84+
asv run --machine=asvrunner --python=same --set-commit-hash=$(git rev-parse HEAD) --show-stderr
85+
86+
- name: Update asv-runner branch
87+
# In case there was a push by another job.
88+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
89+
run: |
90+
cd asv-runner
91+
git fetch && git pull
92+
93+
- name: Move results into asv-runner
94+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
95+
run: |
96+
mkdir -p asv-runner/data/results/asvrunner/
97+
cp asv_bench/results/benchmarks.json asv-runner/data/results/
98+
cp asv_bench/results/asvrunner/machine.json asv-runner/data/results/asvrunner/
99+
cp asv_bench/results/asvrunner/$(git rev-parse --short=8 HEAD)-existing*.json asv-runner/data/results/asvrunner/$(git rev-parse HEAD).json
100+
101+
mkdir -p asv-runner/data/envs/
102+
conda env export > asv-runner/data/envs/$(git rev-parse HEAD).yml
103+
104+
- name: Commit results to branch
105+
if: ${{ steps.get-commit.outputs.new_commit == 'yes' }}
106+
uses: stefanzweifel/git-auto-commit-action@v5
107+
with:
108+
commit_message: Results
109+
branch: ${{ env.BRANCH_NAME }}
110+
repository: asv-runner
111+
file_pattern: 'data/results/ data/envs/'

.gitignore

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
share/python-wheels/
24+
*.egg-info/
25+
.installed.cfg
26+
*.egg
27+
MANIFEST
28+
29+
# PyInstaller
30+
# Usually these files are written by a python script from a template
31+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+
*.manifest
33+
*.spec
34+
35+
# Installer logs
36+
pip-log.txt
37+
pip-delete-this-directory.txt
38+
39+
# Unit test / coverage reports
40+
htmlcov/
41+
.tox/
42+
.nox/
43+
.coverage
44+
.coverage.*
45+
.cache
46+
nosetests.xml
47+
coverage.xml
48+
*.cover
49+
*.py,cover
50+
.hypothesis/
51+
.pytest_cache/
52+
cover/
53+
54+
# Translations
55+
*.mo
56+
*.pot
57+
58+
# Django stuff:
59+
*.log
60+
local_settings.py
61+
db.sqlite3
62+
db.sqlite3-journal
63+
64+
# Flask stuff:
65+
instance/
66+
.webassets-cache
67+
68+
# Scrapy stuff:
69+
.scrapy
70+
71+
# Sphinx documentation
72+
docs/_build/
73+
74+
# PyBuilder
75+
.pybuilder/
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
# For a library or package, you might want to ignore these files since the code is
87+
# intended to run in multiple environments; otherwise, check them in:
88+
# .python-version
89+
90+
# pipenv
91+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94+
# install all needed dependencies.
95+
#Pipfile.lock
96+
97+
# poetry
98+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99+
# This is especially recommended for binary packages to ensure reproducibility, and is more
100+
# commonly ignored for libraries.
101+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102+
#poetry.lock
103+
104+
# pdm
105+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106+
#pdm.lock
107+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108+
# in version control.
109+
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
110+
.pdm.toml
111+
.pdm-python
112+
.pdm-build/
113+
114+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
115+
__pypackages__/
116+
117+
# Celery stuff
118+
celerybeat-schedule
119+
celerybeat.pid
120+
121+
# SageMath parsed files
122+
*.sage.py
123+
124+
# Environments
125+
.env
126+
.venv
127+
env/
128+
venv/
129+
ENV/
130+
env.bak/
131+
venv.bak/
132+
133+
# Spyder project settings
134+
.spyderproject
135+
.spyproject
136+
137+
# Rope project settings
138+
.ropeproject
139+
140+
# mkdocs documentation
141+
/site
142+
143+
# mypy
144+
.mypy_cache/
145+
.dmypy.json
146+
dmypy.json
147+
148+
# Pyre type checker
149+
.pyre/
150+
151+
# pytype static type analyzer
152+
.pytype/
153+
154+
# Cython debug symbols
155+
cython_debug/
156+
157+
# PyCharm
158+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
159+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160+
# and can be added to the global gitignore or merged into this file. For a more nuclear
161+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
162+
.idea/

0 commit comments

Comments
 (0)