Skip to content

Commit 6cf3534

Browse files
authored
Merge branch 'main' into fix/grouby_agg_dict_input_dup_columns
2 parents dc1b449 + a5492ee commit 6cf3534

File tree

281 files changed

+5051
-5229
lines changed

Some content is hidden

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

281 files changed

+5051
-5229
lines changed

.github/workflows/cache-cleanup-weekly.yml renamed to .github/workflows/cache-cleanup-daily.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
name: Purge caches once a week
1+
name: Purge caches daily
22
on:
33
schedule:
4-
# 4:10 UTC on Sunday
5-
- cron: "10 4 * * 0"
4+
# 4:10 UTC daily
5+
- cron: "10 4 * * *"
66

77
jobs:
88
cleanup:

.github/workflows/unit-tests.yml

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ jobs:
314314
timeout-minutes: 90
315315

316316
concurrency:
317-
#https://i.8713187.xyzmunity/t/concurrecy-not-work-for-push/183068/7
317+
# https://i.8713187.xyzmunity/t/concurrecy-not-work-for-push/183068/7
318318
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.os }}-${{ matrix.pytest_target }}-dev
319319
cancel-in-progress: true
320320

@@ -346,3 +346,62 @@ jobs:
346346
347347
- name: Run Tests
348348
uses: ./.github/actions/run-tests
349+
350+
emscripten:
351+
# Note: the Python version, Emscripten toolchain version are determined
352+
# by the Pyodide version. The appropriate versions can be found in the
353+
# Pyodide repodata.json "info" field, or in the Makefile.envs file:
354+
# https://github.com/pyodide/pyodide/blob/stable/Makefile.envs#L2
355+
# The Node.js version can be determined via Pyodide:
356+
# https://pyodide.org/en/stable/usage/index.html#node-js
357+
name: Pyodide build
358+
runs-on: ubuntu-22.04
359+
concurrency:
360+
# https://i.8713187.xyzmunity/t/concurrecy-not-work-for-push/183068/7
361+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
362+
cancel-in-progress: true
363+
steps:
364+
- name: Checkout pandas Repo
365+
uses: actions/checkout@v4
366+
with:
367+
fetch-depth: 0
368+
369+
- name: Set up Python for Pyodide
370+
id: setup-python
371+
uses: actions/setup-python@v5
372+
with:
373+
python-version: '3.11.3'
374+
375+
- name: Set up Emscripten toolchain
376+
uses: mymindstorm/setup-emsdk@v14
377+
with:
378+
version: '3.1.46'
379+
actions-cache-folder: emsdk-cache
380+
381+
- name: Install pyodide-build
382+
run: pip install "pyodide-build==0.25.1"
383+
384+
- name: Build pandas for Pyodide
385+
run: |
386+
pyodide build
387+
388+
- name: Set up Node.js
389+
uses: actions/setup-node@v4
390+
with:
391+
node-version: '18'
392+
393+
- name: Set up Pyodide virtual environment
394+
run: |
395+
pyodide venv .venv-pyodide
396+
source .venv-pyodide/bin/activate
397+
pip install dist/*.whl
398+
399+
- name: Test pandas for Pyodide
400+
env:
401+
PANDAS_CI: 1
402+
run: |
403+
source .venv-pyodide/bin/activate
404+
pip install pytest hypothesis
405+
# do not import pandas from the checked out repo
406+
cd ..
407+
python -c 'import pandas as pd; pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db"])'

.github/workflows/wheels.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ jobs:
140140
run: echo "sdist_name=$(cd ./dist && ls -d */)" >> "$GITHUB_ENV"
141141

142142
- name: Build wheels
143-
uses: pypa/cibuildwheel@v2.17.0
143+
uses: pypa/cibuildwheel@v2.18.1
144144
with:
145145
package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }}
146146
env:

.pre-commit-config.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ ci:
1919
skip: [pyright, mypy]
2020
repos:
2121
- repo: https://github.com/astral-sh/ruff-pre-commit
22-
rev: v0.3.4
22+
rev: v0.4.3
2323
hooks:
2424
- id: ruff
2525
args: [--exit-non-zero-on-fix]
@@ -46,12 +46,12 @@ repos:
4646
types_or: [python, rst, markdown, cython, c]
4747
additional_dependencies: [tomli]
4848
- repo: https://github.com/MarcoGorelli/cython-lint
49-
rev: v0.16.0
49+
rev: v0.16.2
5050
hooks:
5151
- id: cython-lint
5252
- id: double-quote-cython-strings
5353
- repo: https://github.com/pre-commit/pre-commit-hooks
54-
rev: v4.5.0
54+
rev: v4.6.0
5555
hooks:
5656
- id: check-case-conflict
5757
- id: check-toml
@@ -90,8 +90,9 @@ repos:
9090
rev: v0.9.1
9191
hooks:
9292
- id: sphinx-lint
93+
args: ["--enable", "all", "--disable", "line-too-long"]
9394
- repo: https://github.com/pre-commit/mirrors-clang-format
94-
rev: v18.1.2
95+
rev: v18.1.4
9596
hooks:
9697
- id: clang-format
9798
files: ^pandas/_libs/src|^pandas/_libs/include

LICENSES/XARRAY_LICENSE

Lines changed: 0 additions & 191 deletions
This file was deleted.

asv_bench/benchmarks/io/csv.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -445,16 +445,6 @@ def setup(self, engine):
445445
data = data.format(*two_cols)
446446
self.StringIO_input = StringIO(data)
447447

448-
def time_multiple_date(self, engine):
449-
read_csv(
450-
self.data(self.StringIO_input),
451-
engine=engine,
452-
sep=",",
453-
header=None,
454-
names=list(string.digits[:9]),
455-
parse_dates=[[1, 2], [1, 3]],
456-
)
457-
458448
def time_baseline(self, engine):
459449
read_csv(
460450
self.data(self.StringIO_input),

asv_bench/benchmarks/io/parsers.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
import numpy as np
2-
31
try:
4-
from pandas._libs.tslibs.parsing import (
5-
_does_string_look_like_datetime,
6-
concat_date_cols,
7-
)
2+
from pandas._libs.tslibs.parsing import _does_string_look_like_datetime
83
except ImportError:
94
# Avoid whole benchmark suite import failure on asv (currently 0.4)
105
pass
@@ -20,21 +15,3 @@ def setup(self, value):
2015
def time_check_datetimes(self, value):
2116
for obj in self.objects:
2217
_does_string_look_like_datetime(obj)
23-
24-
25-
class ConcatDateCols:
26-
params = ([1234567890, "AAAA"], [1, 2])
27-
param_names = ["value", "dim"]
28-
29-
def setup(self, value, dim):
30-
count_elem = 10000
31-
if dim == 1:
32-
self.object = (np.array([value] * count_elem),)
33-
if dim == 2:
34-
self.object = (
35-
np.array([value] * count_elem),
36-
np.array([value] * count_elem),
37-
)
38-
39-
def time_check_concat(self, value, dim):
40-
concat_date_cols(self.object)

0 commit comments

Comments
 (0)