#1126222 pandas: FTBFS: 1910 # error: "ParserBase" has no attribute "read"

Package:
src:pandas
Source:
src:pandas
Submitter:
Santiago Vila
Date:
2026-01-27 22:41:02 UTC
Severity:
normal
Tags:
#1126222#5
Date:
2026-01-23 11:37:56 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202601/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:pandas, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
py3versions: no X-Python3-Version in control file, using supported versions
: # Explicit build system to avoid use of all-in-1 Makefile
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   debian/rules override_dh_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
py3versions: no X-Python3-Version in control file, using supported versions
find pandas/ -regex '.*\.c\(\|pp\)' | xargs grep -l -e 'Generated by Cython'  | xargs -r rm -f
# the || true is because this will fail without docutils (-arch or nodoc builds)
cd doc && LC_ALL=C.UTF-8 python3 make.py clean || true
rm -rf build buildtmp *-stamp doc/source/savefig doc/source/user_guide/styled.xlsx doc/source/index.rst _version_meson.py
dh_clean
make[1]: Leaving directory '/<<PKGBUILDDIR>>'

[... snipped ...]

0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[list-%Y%m%d %H:%M:%S-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[deque-%Y%m%d %H:%M:%S-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[deque-None-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[list-None-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[deque-None-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[list-None-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[deque-%Y%m%d %H:%M:%S-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[tuple-None-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[tuple-%Y%m%d %H:%M:%S-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[array-%Y%m%d %H:%M:%S-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[tuple-None-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[tuple-%Y%m%d %H:%M:%S-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[array-None-True]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[array-None-None]
0.03s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[array-%Y%m%d %H:%M:%S-None]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[Index-None-None]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[Index-None-True]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[Index-%Y%m%d %H:%M:%S-True]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache_series[None-True]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache_series[None-None]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache[Index-%Y%m%d %H:%M:%S-None]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache_series[%Y%m%d %H:%M:%S-None]
0.02s call     tests/tools/test_to_datetime.py::TestToDatetime::test_to_datetime_cache_series[%Y%m%d %H:%M:%S-True]
0.01s call     tests/tools/test_to_datetime.py::TestToDatetimeMisc::test_to_datetime_timezone_name

(4 durations < 0.005s hidden.  Use -vv to show these durations.)
================= 1440 passed, 66 skipped, 4 xfailed in 2.56s ==================
rdjoqkol test state = false
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0
PySide2 5.15.18 -- Qt runtime 5.15.17 -- Qt compiled 5.15.17
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/pandas
configfile: pyproject.toml
plugins: qt-4.4.0, asyncio-1.3.0, localserver-0.9.0.post0, forked-1.6.0, typeguard-4.4.4, hypothesis-6.150.0, xdist-3.8.0
asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 5480 items

pandas/tests/tseries/frequencies/test_freq_code.py ...................
pandas/tests/tseries/frequencies/test_frequencies.py ..........
pandas/tests/tseries/frequencies/test_inference.py ......... [too-long-redacted] ...............................
pandas/tests/tseries/holiday/test_calendar.py ........
pandas/tests/tseries/holiday/test_federal.py ...
pandas/tests/tseries/holiday/test_holiday.py .................................................
pandas/tests/tseries/holiday/test_observance.py .................................
pandas/tests/tseries/offsets/test_business_day.py .......................
pandas/tests/tseries/offsets/test_business_hour.py ..............................................................................................
pandas/tests/tseries/offsets/test_business_month.py .....................
pandas/tests/tseries/offsets/test_business_quarter.py ..............................................
pandas/tests/tseries/offsets/test_business_year.py ...................
pandas/tests/tseries/offsets/test_common.py ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
pandas/tests/tseries/offsets/test_custom_business_day.py .......
pandas/tests/tseries/offsets/test_custom_business_hour.py ............................
pandas/tests/tseries/offsets/test_custom_business_month.py ....................................................
pandas/tests/tseries/offsets/test_dst.py ..........................
pandas/tests/tseries/offsets/test_easter.py ..........
pandas/tests/tseries/offsets/test_fiscal.py .............................................................................................................................................
pandas/tests/tseries/offsets/test_index.py ........................
pandas/tests/tseries/offsets/test_month.py ............................................................
pandas/tests/tseries/offsets/test_offsets.py ............... [too-long-redacted] ...............................
pandas/tests/tseries/offsets/test_offsets_properties.py ..
pandas/tests/tseries/offsets/test_quarter.py ........................................................................................
pandas/tests/tseries/offsets/test_ticks.py ............................................................................................................
pandas/tests/tseries/offsets/test_week.py ..............................................
pandas/tests/tseries/offsets/test_year.py .................................

=============================== warnings summary ===============================
tests/tseries/offsets/test_offsets_properties.py::test_on_offset_implementations
  /usr/lib/python3/dist-packages/dateutil/zoneinfo/__init__.py:26: UserWarning: I/O error(2): No such file or directory
    warnings.warn("I/O error({0}): {1}".format(e.errno, e.strerror))

#1126222#8
Date:
2026-01-25 15:46:04 UTC
From:
To:
This seems to be happen when the tests are run with pyside2 (because of
#112*5*222) instead of pyqt5.

I don't know how, given that the traceback doesn't involve Qt at all,
but it implies that PYTEST_QT_API=pyqt5 (as in Salsa) is at least a
workaround.  (I'm not calling it a full fix because I'm not sure if
pandas is supposed to work with pyside, i.e. whether it's a bug in
itself that it doesn't.)

#1126222#13
Date:
2026-01-27 22:38:19 UTC
From:
To:
As pytest-qt has been reverted (see #1125222), this should no longer
occur in a normal build/autopkgtest.