|
5 | 5 | # Licensed under the terms of the MIT License |
6 | 6 | # (see LICENSE file for details) |
7 | 7 |
|
8 | | -"""Transitional package (PyQt4 --> PySide)""" |
| 8 | +"""Compatibility package (PyQt4/PyQt5/PySide)""" |
9 | 9 |
|
10 | 10 | import os |
11 | 11 |
|
|
15 | 15 | API = os.environ['QT_API'] |
16 | 16 | API_NAME = {'pyqt5': 'PyQt5', 'pyqt': 'PyQt4', 'pyside': 'PySide'}[API] |
17 | 17 |
|
18 | | -PYQT5 = False |
19 | | - |
20 | | -if API == 'pyqt5': |
21 | | - try: |
22 | | - from PyQt5.QtCore import PYQT_VERSION_STR as __version__ |
23 | | - is_old_pyqt = False |
24 | | - is_pyqt46 = False |
25 | | - PYQT5 = True |
26 | | - except ImportError: |
27 | | - pass |
28 | | -elif API == 'pyqt': |
| 18 | +if API == 'pyqt': |
29 | 19 | # Spyder 2.3 is compatible with both #1 and #2 PyQt API, |
30 | 20 | # but to avoid issues with IPython and other Qt plugins |
31 | 21 | # we choose to support only API #2 for 2.4+ |
|
46 | 36 | try: |
47 | 37 | from PyQt4.QtCore import PYQT_VERSION_STR as __version__ # analysis:ignore |
48 | 38 | except ImportError: |
49 | | - # Switching to PySide |
50 | | - API = os.environ['QT_API'] = 'pyside' |
51 | | - API_NAME = 'PySide' |
| 39 | + # Trying PyQt5 before switching to PySide (at this point, PyQt4 may |
| 40 | + # not be installed but PyQt5 or Pyside could still be if the QT_API |
| 41 | + # environment variable hasn't been set-up) |
| 42 | + try: |
| 43 | + import PyQt5 # analysis:ignore |
| 44 | + API = os.environ['QT_API'] = 'pyqt5' |
| 45 | + API_NAME = 'PyQt5' |
| 46 | + except ImportError: |
| 47 | + API = os.environ['QT_API'] = 'pyside' |
| 48 | + API_NAME = 'PySide' |
52 | 49 | else: |
53 | 50 | is_old_pyqt = __version__.startswith(('4.4', '4.5', '4.6', '4.7')) |
54 | 51 | is_pyqt46 = __version__.startswith('4.6') |
|
57 | 54 | API_NAME += (" (API v%d)" % sip.getapi('QString')) |
58 | 55 | except AttributeError: |
59 | 56 | pass |
| 57 | + from PyQt4 import uic # analysis:ignore |
60 | 58 |
|
61 | | - |
| 59 | +PYQT5 = False |
| 60 | +if API == 'pyqt5': |
| 61 | + try: |
| 62 | + from PyQt5.QtCore import PYQT_VERSION_STR as __version__ |
| 63 | + from PyQt5 import uic # analysis:ignore |
| 64 | + PYQT5 = True |
| 65 | + is_old_pyqt = is_pyqt46 = False |
| 66 | + except ImportError: |
| 67 | + pass |
| 68 | + |
62 | 69 | if API == 'pyside': |
63 | 70 | try: |
64 | 71 | from PySide import __version__ # analysis:ignore |
|
0 commit comments