Skip to content

Commit 9ac62ab

Browse files
authored
Merge branch 'main' into searchsorted_branch
2 parents 4747609 + e637b42 commit 9ac62ab

21 files changed

+411
-46
lines changed

.github/workflows/unit-tests.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,12 +241,14 @@ jobs:
241241
fi
242242
- name: Build environment and Run Tests
243243
# https://github.com/numpy/numpy/issues/24703#issuecomment-1722379388
244+
# Note: Pinned to Cython 3.0.10 to avoid numerical instability in 32-bit environments
245+
# https://github.com/pandas-dev/pandas/pull/61423
244246
run: |
245247
/opt/python/cp313-cp313/bin/python -m venv ~/virtualenvs/pandas-dev
246248
. ~/virtualenvs/pandas-dev/bin/activate
247249
python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1
248250
python -m pip install numpy -Csetup-args="-Dallow-noblas=true"
249-
python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
251+
python -m pip install --no-cache-dir versioneer[toml] cython==3.0.10 python-dateutil pytest>=7.3.2 pytest-xdist>=3.4.0 hypothesis>=6.84.0
250252
python -m pip install --no-cache-dir --no-build-isolation -e . -Csetup-args="--werror"
251253
python -m pip list --no-cache-dir
252254
PANDAS_CI=1 python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml

Dockerfile

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
FROM python:3.10.8
22
WORKDIR /home/pandas
33

4-
RUN apt-get update && apt-get -y upgrade
5-
RUN apt-get install -y build-essential bash-completion
4+
RUN apt-get update && \
5+
apt-get --no-install-recommends -y upgrade && \
6+
apt-get --no-install-recommends -y install \
7+
build-essential \
8+
bash-completion \
9+
# hdf5 needed for pytables installation
10+
libhdf5-dev \
11+
# libgles2-mesa needed for pytest-qt
12+
libgles2-mesa-dev && \
13+
rm -rf /var/lib/apt/lists/*
614

7-
# hdf5 needed for pytables installation
8-
# libgles2-mesa needed for pytest-qt
9-
RUN apt-get install -y libhdf5-dev libgles2-mesa-dev
10-
11-
RUN python -m pip install --upgrade pip
1215
COPY requirements-dev.txt /tmp
13-
RUN python -m pip install -r /tmp/requirements-dev.txt
16+
RUN python -m pip install --no-cache-dir --upgrade pip && \
17+
python -m pip install --no-cache-dir -r /tmp/requirements-dev.txt
1418
RUN git config --global --add safe.directory /home/pandas
1519

1620
ENV SHELL="/bin/bash"

ci/deps/actions-310-minimum_versions.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ dependencies:
2828
- beautifulsoup4=4.12.3
2929
- bottleneck=1.3.6
3030
- fastparquet=2024.2.0
31-
- fsspec=2024.2.0
31+
- fsspec=2023.12.2
3232
- html5lib=1.1
3333
- hypothesis=6.84.0
34-
- gcsfs=2024.2.0
34+
- gcsfs=2023.12.2
3535
- jinja2=3.1.3
3636
- lxml=4.9.2
3737
- matplotlib=3.8.3
@@ -42,14 +42,15 @@ dependencies:
4242
- openpyxl=3.1.2
4343
- psycopg2=2.9.6
4444
- pyarrow=10.0.1
45+
- pyiceberg=0.7.1
4546
- pymysql=1.1.0
4647
- pyqt=5.15.9
4748
- pyreadstat=1.2.6
4849
- pytables=3.8.0
4950
- python-calamine=0.1.7
5051
- pytz=2023.4
5152
- pyxlsb=1.0.10
52-
- s3fs=2024.2.0
53+
- s3fs=2023.12.2
5354
- scipy=1.12.0
5455
- sqlalchemy=2.0.0
5556
- tabulate=0.9.0

ci/deps/actions-310.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ dependencies:
2626
- beautifulsoup4>=4.12.3
2727
- bottleneck>=1.3.6
2828
- fastparquet>=2024.2.0
29-
- fsspec>=2024.2.0
29+
- fsspec>=2023.12.2
3030
- html5lib>=1.1
3131
- hypothesis>=6.84.0
32-
- gcsfs>=2024.2.0
32+
- gcsfs>=2023.12.2
3333
- jinja2>=3.1.3
3434
- lxml>=4.9.2
3535
- matplotlib>=3.8.3
@@ -40,14 +40,15 @@ dependencies:
4040
- openpyxl>=3.1.2
4141
- psycopg2>=2.9.6
4242
- pyarrow>=10.0.1
43+
- pyiceberg>=0.7.1
4344
- pymysql>=1.1.0
4445
- pyqt>=5.15.9
4546
- pyreadstat>=1.2.6
4647
- pytables>=3.8.0
4748
- python-calamine>=0.1.7
4849
- pytz>=2023.4
4950
- pyxlsb>=1.0.10
50-
- s3fs>=2024.2.0
51+
- s3fs>=2023.12.2
5152
- scipy>=1.12.0
5253
- sqlalchemy>=2.0.0
5354
- tabulate>=0.9.0

ci/deps/actions-311-downstream_compat.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ dependencies:
2727
- beautifulsoup4>=4.12.3
2828
- bottleneck>=1.3.6
2929
- fastparquet>=2024.2.0
30-
- fsspec>=2024.2.0
30+
- fsspec>=2023.12.2
3131
- html5lib>=1.1
3232
- hypothesis>=6.84.0
33-
- gcsfs>=2024.2.0
33+
- gcsfs>=2023.12.2
3434
- jinja2>=3.1.3
3535
- lxml>=4.9.2
3636
- matplotlib>=3.8.3
@@ -41,14 +41,15 @@ dependencies:
4141
- openpyxl>=3.1.2
4242
- psycopg2>=2.9.6
4343
- pyarrow>=10.0.1
44+
- pyiceberg>=0.7.1
4445
- pymysql>=1.1.0
4546
- pyqt>=5.15.9
4647
- pyreadstat>=1.2.6
4748
- pytables>=3.8.0
4849
- python-calamine>=0.1.7
4950
- pytz>=2023.4
5051
- pyxlsb>=1.0.10
51-
- s3fs>=2024.2.0
52+
- s3fs>=2023.12.2
5253
- scipy>=1.12.0
5354
- sqlalchemy>=2.0.0
5455
- tabulate>=0.9.0

ci/deps/actions-311.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ dependencies:
2626
- beautifulsoup4>=4.12.3
2727
- bottleneck>=1.3.6
2828
- fastparquet>=2024.2.0
29-
- fsspec>=2024.2.0
29+
- fsspec>=2023.12.2
3030
- html5lib>=1.1
3131
- hypothesis>=6.84.0
32-
- gcsfs>=2024.2.0
32+
- gcsfs>=2023.12.2
3333
- jinja2>=3.1.3
3434
- lxml>=4.9.2
3535
- matplotlib>=3.8.3
@@ -41,13 +41,14 @@ dependencies:
4141
- openpyxl>=3.1.2
4242
- psycopg2>=2.9.6
4343
- pyarrow>=10.0.1
44+
- pyiceberg>=0.7.1
4445
- pymysql>=1.1.0
4546
- pyreadstat>=1.2.6
4647
- pytables>=3.8.0
4748
- python-calamine>=0.1.7
4849
- pytz>=2023.4
4950
- pyxlsb>=1.0.10
50-
- s3fs>=2024.2.0
51+
- s3fs>=2023.12.2
5152
- scipy>=1.12.0
5253
- sqlalchemy>=2.0.0
5354
- tabulate>=0.9.0

ci/deps/actions-312.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ dependencies:
2626
- beautifulsoup4>=4.12.3
2727
- bottleneck>=1.3.6
2828
- fastparquet>=2024.2.0
29-
- fsspec>=2024.2.0
29+
- fsspec>=2023.12.2
3030
- html5lib>=1.1
3131
- hypothesis>=6.84.0
32-
- gcsfs>=2024.2.0
32+
- gcsfs>=2023.12.2
3333
- jinja2>=3.1.3
3434
- lxml>=4.9.2
3535
- matplotlib>=3.8.3
@@ -41,13 +41,14 @@ dependencies:
4141
- openpyxl>=3.1.2
4242
- psycopg2>=2.9.6
4343
- pyarrow>=10.0.1
44+
- pyiceberg>=0.7.1
4445
- pymysql>=1.1.0
4546
- pyreadstat>=1.2.6
4647
- pytables>=3.8.0
4748
- python-calamine>=0.1.7
4849
- pytz>=2023.4
4950
- pyxlsb>=1.0.10
50-
- s3fs>=2024.2.0
51+
- s3fs>=2023.12.2
5152
- scipy>=1.12.0
5253
- sqlalchemy>=2.0.0
5354
- tabulate>=0.9.0

ci/deps/actions-313.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ dependencies:
2727
- blosc>=1.21.3
2828
- bottleneck>=1.3.6
2929
- fastparquet>=2024.2.0
30-
- fsspec>=2024.2.0
30+
- fsspec>=2023.12.2
3131
- html5lib>=1.1
3232
- hypothesis>=6.84.0
33-
- gcsfs>=2024.2.0
33+
- gcsfs>=2023.12.2
3434
- jinja2>=3.1.3
3535
- lxml>=4.9.2
3636
- matplotlib>=3.8.3
@@ -48,7 +48,7 @@ dependencies:
4848
- python-calamine>=0.1.7
4949
- pytz>=2023.4
5050
- pyxlsb>=1.0.10
51-
- s3fs>=2024.2.0
51+
- s3fs>=2023.12.2
5252
- scipy>=1.12.0
5353
- sqlalchemy>=2.0.0
5454
- tabulate>=0.9.0

doc/source/getting_started/install.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ Dependency Minimum Versi
299299
Other data sources
300300
^^^^^^^^^^^^^^^^^^
301301

302-
Installable with ``pip install "pandas[hdf5, parquet, feather, spss, excel]"``
302+
Installable with ``pip install "pandas[hdf5, parquet, iceberg, feather, spss, excel]"``
303303

304304
====================================================== ================== ================ ==========================================================
305305
Dependency Minimum Version pip extra Notes
@@ -308,6 +308,7 @@ Dependency Minimum Version pip ex
308308
`zlib <https://github.com/madler/zlib>`__ hdf5 Compression for HDF5
309309
`fastparquet <https://github.com/dask/fastparquet>`__ 2024.2.0 - Parquet reading / writing (pyarrow is default)
310310
`pyarrow <https://github.com/apache/arrow>`__ 10.0.1 parquet, feather Parquet, ORC, and feather reading / writing
311+
`PyIceberg <https://py.iceberg.apache.org/>`__ 0.7.1 iceberg Apache Iceberg reading
311312
`pyreadstat <https://github.com/Roche/pyreadstat>`__ 1.2.6 spss SPSS files (.sav) reading
312313
`odfpy <https://github.com/eea/odfpy>`__ 1.4.1 excel Open document format (.odf, .ods, .odt) reading / writing
313314
====================================================== ================== ================ ==========================================================
@@ -328,10 +329,10 @@ Installable with ``pip install "pandas[fss, aws, gcp]"``
328329
============================================ ================== =============== ==========================================================
329330
Dependency Minimum Version pip extra Notes
330331
============================================ ================== =============== ==========================================================
331-
`fsspec <https://github.com/fsspec>`__ 2024.2.0 fss, gcp, aws Handling files aside from simple local and HTTP (required
332+
`fsspec <https://github.com/fsspec>`__ 2023.12.2 fss, gcp, aws Handling files aside from simple local and HTTP (required
332333
dependency of s3fs, gcsfs).
333-
`gcsfs <https://github.com/fsspec/gcsfs>`__ 2024.2.0 gcp Google Cloud Storage access
334-
`s3fs <https://github.com/fsspec/s3fs>`__ 2024.2.0 aws Amazon S3 access
334+
`gcsfs <https://github.com/fsspec/gcsfs>`__ 2023.12.2 gcp Google Cloud Storage access
335+
`s3fs <https://github.com/fsspec/s3fs>`__ 2023.12.2 aws Amazon S3 access
335336
============================================ ================== =============== ==========================================================
336337

337338
Clipboard

doc/source/reference/io.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,15 @@ Parquet
156156
read_parquet
157157
DataFrame.to_parquet
158158

159+
Iceberg
160+
~~~~~~~
161+
.. autosummary::
162+
:toctree: api/
163+
164+
read_iceberg
165+
166+
.. warning:: ``read_iceberg`` is experimental and may change without warning.
167+
159168
ORC
160169
~~~
161170
.. autosummary::

0 commit comments

Comments
 (0)