# This is the pip requirements file for extensive
# PyInstaller testing.
#
# Example (assuming current dir is PyInstaller's top-level source dir)::
#
#   python -m pip install -r tests/requirements-libraries.txt  # extensive

# include requirements for base testing
-r requirements-tools.txt

# Backport of importlib.resources for python 3.8 and earlier.
importlib_resources==6.4.5; python_version < '3.9'


# Working
# -------
# These packages work with no (known) issues.
babel==2.16.0
Django==5.1.2; python_version >= '3.10'
future==1.0.0
gevent==24.10.2; python_version < '3.13' and python_version >= '3.9'
ipython==8.28.0; python_version >= '3.10'
keyring==25.4.1
matplotlib==3.9.2; python_version >= '3.9'
numpy==2.1.2; python_version >= '3.10'
pandas==2.2.3; python_version >= '3.9'
pygments==2.18.0
PyGObject==3.50.0; sys_platform == 'linux' and python_version >= '3.9'
# Official PySide2 wheels do not support python 3.11 or newer. Nor are they available for arm64 on macOS.
PySide2==5.15.2.1; python_version < '3.11' and (sys_platform != 'darwin' or platform_machine != 'arm64')
# PySide6 is a metapackage that depends on PySide6-Essentials and PySide6-Addons. Their versions are
# usually kept in sync.
PySide6==6.8.0; python_version >= '3.9' and python_version < '3.13'
PySide6-Addons==6.8.0; python_version >= '3.9' and python_version < '3.13'
PySide6-Essentials==6.8.0; python_version >= '3.9' and python_version < '3.13'
# PyQt5 and add-on packages
# We do not pin *-Qt5 packages (which contain Qt shared libraries), as Qt5 is not actively developed
# anymore, and thus 5.15.x has a stable ABI. Plus, it seems that *-Qt5 5.15.2 wheels are available for
# all platforms, while 5.15.11 are available only for macOS (and some of them only for arm64).
PyQt5==5.15.11
PyQt3D==5.15.7
PyQtChart==5.15.7
PyQtDataVisualization==5.15.6
PyQtNetworkAuth==5.15.6
PyQtPurchasing==5.15.6
QScintilla==2.14.1
PyQtWebEngine==5.15.7
# PyQt6 and add-on packages
# The *-Qt6 packages contain Qt shared libraries; their version is therefore the version of Qt release,
# but in contrast to Qt5 and PyQt5 bindings, the versions here must usually be kept in sync with the
# version of corresponding PyQt bindings packages. That is because Qt6 is under active development, and
# thus the ABI is still changing.
PyQt6==6.7.1
PyQt6-Qt6==6.7.3
PyQt6-3D==6.7.0
PyQt6-3D-Qt6==6.7.3
PyQt6-Charts==6.7.0
PyQt6-Charts-Qt6==6.7.3
PyQt6-DataVisualization==6.7.0
PyQt6-DataVisualization-Qt6==6.7.3
PyQt6-NetworkAuth==6.7.0
PyQt6-NetworkAuth-Qt6==6.7.3
PyQt6-QScintilla==2.14.1  # Does not have a corresponding -Qt6 package
PyQt6-WebEngine==6.7.0
PyQt6-WebEngine-Qt6==6.7.3
python-dateutil==2.9.0.post0
pytz==2024.2
requests==2.32.3
scipy==1.14.1; python_version >= '3.10'
# simplejson is used for text_c_extension
simplejson==3.19.3
sphinx==8.1.2; python_version >= '3.10'
# Required for test_namespace_package
sqlalchemy==2.0.35
zope.interface==7.1.0
Pillow==10.4.0


# Python versions not supported / supported for older package versions
# -------------------------------------------------------

numpy==1.24.3; python_version == '3.8'  # pyup: ignore
numpy==2.0.1; python_version == '3.9'  # pyup: ignore
pandas==2.0.3; python_version == '3.8'  # pyup: ignore
scipy==1.10.1; python_version == '3.8'  # pyup: ignore
scipy==1.13.1; python_version == '3.9'  # pyup: ignore
matplotlib==3.7.3; python_version == '3.8'  # pyup: ignore

ipython==8.12.1; python_version == '3.8'  # pyup: ignore
ipython==8.18.1; python_version == '3.9'  # pyup: ignore

sphinx==7.1.2; python_version == '3.8'  # pyup: ignore
sphinx==7.4.7; python_version == '3.9'  # pyup: ignore

# Django dropped support for python < 3.10 in v5.0
Django==4.2.8; python_version < '3.10'  # pyup: ignore

# PySide6 dropped support for python < 3.9 in v6.7.0
PySide6==6.6.3.1; python_version == '3.8'  # pyup: ignore
PySide6-Addons==6.6.3.1; python_version == '3.8'  # pyup: ignore
PySide6-Essentials==6.6.3.1; python_version == '3.8'  # pyup: ignore
