hook-matplotlib.backends.qt_compat.py 1.3 KB

1234567891011121314151617181920212223242526
  1. #-----------------------------------------------------------------------------
  2. # Copyright (c) 2024, PyInstaller Development Team.
  3. #
  4. # Distributed under the terms of the GNU General Public License (version 2
  5. # or later) with exception for distributing the bootloader.
  6. #
  7. # The full license is in the file COPYING.txt, distributed with this software.
  8. #
  9. # SPDX-License-Identifier: (GPL-2.0-or-later WITH Bootloader-exception)
  10. #-----------------------------------------------------------------------------
  11. from PyInstaller.utils.hooks import qt as qtutils
  12. # This module conditionally imports all Qt bindings. Prevent all available bindings from being pulled in by trying to
  13. # select the most applicable one.
  14. #
  15. # The preference order for this module appears to be: PyQt6, PySide6, PyQt5, PySide2 (or just PyQt5, PySide2 if Qt5
  16. # bindings are forced). See:
  17. # https://github.com/matplotlib/matplotlib/blob/9e18a343fb58a2978a8e27df03190ed21c61c343/lib/matplotlib/backends/qt_compat.py#L113-L125
  18. #
  19. # We, however, use the default preference order of the helper function, in order to keep it consistent across multiple
  20. # hooks that use the same helper.
  21. excludedimports = qtutils.exclude_extraneous_qt_bindings(
  22. hook_name="hook-matplotlib.backends.qt_compat",
  23. qt_bindings_order=None,
  24. )