Skip to content

Commit 7048997

Browse files
committed
utils: Minimize imports for utils
Avoid PyQt6 imports.
1 parent 9c8e8fc commit 7048997

File tree

5 files changed

+55
-39
lines changed

5 files changed

+55
-39
lines changed

i18n/si/msgs.jaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3495,9 +3495,6 @@ utils/__init__.py:
34953495
findf: false
34963496
set_flag: false
34973497
is_flag_set: false
3498-
qsizepolicy_is_expanding: false
3499-
qsizepolicy_is_shrinking: false
3500-
is_event_source_mouse: false
35013498
UNUSED: false
35023499
H: false
35033500
A: false
@@ -3529,6 +3526,14 @@ utils/__init__.py:
35293526
Callable[[A], H]: false
35303527
def `findf`:
35313528
Union[A, B]: false
3529+
qsizepolicy_is_expanding: false
3530+
orangecanvas.gui.utils.qsizepolicy_is_expanding: false
3531+
qsizepolicy_is_shrinking: false
3532+
orangecanvas.gui.utils.qsizepolicy_is_shrinking: false
3533+
is_event_source_mouse: false
3534+
orangecanvas.gui.utils.is_event_source_mouse: false
3535+
def `__getattr__`:
3536+
"'{__name__}.{name}' is deprecated, use '{_LAZY_DEPRECATED[name]}'": false
35323537
utils/after_exit.py:
35333538
def `run_after_exit`:
35343539
--arg=: false

orangecanvas/canvas/view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
)
1313
from AnyQt.QtCore import Property, pyqtSignal as Signal
1414

15-
from orangecanvas.utils import is_event_source_mouse
15+
from orangecanvas.gui.utils import is_event_source_mouse
1616

1717
log = logging.getLogger(__name__)
1818

orangecanvas/gui/utils.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import os
66
import sys
77
import traceback
8-
from typing import List
9-
108
import ctypes
119
import ctypes.util
1210
import platform
@@ -15,16 +13,19 @@
1513
from typing import Optional, Union
1614

1715
from AnyQt.QtWidgets import (
18-
QWidget, QMessageBox, QStyleOption, QStyle, QTextEdit, QScrollBar
16+
QWidget, QMessageBox, QStyleOption, QStyle, QTextEdit, QScrollBar,
17+
QSizePolicy
1918
)
2019
from AnyQt.QtGui import (
2120
QGradient, QLinearGradient, QRadialGradient, QBrush, QPainter,
2221
QPaintEvent, QColor, QPixmap, QPixmapCache, QTextOption, QGuiApplication,
23-
QTextCharFormat, QFont
22+
QTextCharFormat, QFont, QMouseEvent, QWheelEvent
2423
)
2524
from AnyQt.QtCore import Qt, QPointF, QPoint, QRect, QRectF, Signal, QEvent
2625
from AnyQt import sip
2726

27+
from orangecanvas.utils import is_flag_set
28+
2829

2930
@contextmanager
3031
def updates_disabled(widget):
@@ -787,3 +788,23 @@ def available_screen_geometry(widget: QWidget, pos: Optional[QPoint] = None) ->
787788
if sibling is not None:
788789
screen = sibling
789790
return screen.availableGeometry()
791+
792+
793+
def qsizepolicy_is_expanding(policy: QSizePolicy.Policy) -> bool:
794+
return is_flag_set(policy, QSizePolicy.ExpandFlag)
795+
796+
797+
def qsizepolicy_is_shrinking(policy: QSizePolicy.Policy) -> bool:
798+
return is_flag_set(policy, QSizePolicy.ShrinkFlag)
799+
800+
801+
def is_event_source_mouse(event: Union[QWheelEvent, QMouseEvent]) -> bool:
802+
"""
803+
Does thw event originate from a mouse type device or from another source
804+
(touchpad/screen).
805+
"""
806+
try:
807+
return event.source() != Qt.MouseEventNotSynthesized
808+
except AttributeError: # PyQt6
809+
from AnyQt.QtGui import QInputDevice
810+
return event.device().type() == QInputDevice.DeviceType.Mouse

orangecanvas/utils/__init__.py

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
import enum
22
import operator
33
import types
4+
import warnings
45
from functools import reduce
56

67
import typing
78
from typing import (
89
Iterable, Set, Any, Optional, Union, Tuple, Callable, Mapping, List, Dict,
9-
SupportsInt, cast, overload
10+
SupportsInt, cast, overload,
1011
)
1112

12-
from AnyQt.QtCore import Qt
13-
from AnyQt.QtGui import QMouseEvent, QWheelEvent
14-
from AnyQt.QtWidgets import QSizePolicy
15-
16-
from .qtcompat import toPyObject
17-
1813
__all__ = [
1914
"dotted_getattr",
2015
"qualified_name",
@@ -33,9 +28,6 @@
3328
"findf",
3429
"set_flag",
3530
"is_flag_set",
36-
"qsizepolicy_is_expanding",
37-
"qsizepolicy_is_shrinking",
38-
"is_event_source_mouse",
3931
"UNUSED",
4032
]
4133

@@ -324,26 +316,6 @@ def is_flag_set(flags, mask):
324316
return bool(flags_i & mask_i)
325317

326318

327-
def qsizepolicy_is_expanding(policy: QSizePolicy.Policy) -> bool:
328-
return is_flag_set(policy, QSizePolicy.ExpandFlag)
329-
330-
331-
def qsizepolicy_is_shrinking(policy: QSizePolicy.Policy) -> bool:
332-
return is_flag_set(policy, QSizePolicy.ShrinkFlag)
333-
334-
335-
def is_event_source_mouse(event: Union[QWheelEvent, QMouseEvent]) -> bool:
336-
"""
337-
Does th event originate from a mouse type device or from another source
338-
(touchpad/screen).
339-
"""
340-
try:
341-
return event.source() != Qt.MouseEventNotSynthesized
342-
except AttributeError: # PyQt6
343-
from AnyQt.QtGui import QInputDevice
344-
return event.device().type() == QInputDevice.DeviceType.Mouse
345-
346-
347319
def UNUSED(*_unused_args) -> None:
348320
"""
349321
*Mark* the function arguments as unused for a code checker
@@ -354,3 +326,21 @@ def UNUSED(*_unused_args) -> None:
354326
... UNUSED(bar, baz)
355327
... return True
356328
"""
329+
330+
331+
# These were moved to minimize imports.
332+
_LAZY_DEPRECATED= {
333+
"qsizepolicy_is_expanding": "orangecanvas.gui.utils.qsizepolicy_is_expanding",
334+
"qsizepolicy_is_shrinking": "orangecanvas.gui.utils.qsizepolicy_is_shrinking",
335+
"is_event_source_mouse": "orangecanvas.gui.utils.is_event_source_mouse",
336+
}
337+
338+
def __getattr__(name):
339+
if name in _LAZY_DEPRECATED:
340+
warnings.warn(
341+
f"'{__name__}.{name}' is deprecated, use '{_LAZY_DEPRECATED[name]}'",
342+
DeprecationWarning,
343+
stacklevel=2
344+
)
345+
return name_lookup(_LAZY_DEPRECATED[name])
346+
raise AttributeError(name)

orangecanvas/utils/overlay.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
QVBoxLayout, QLabel, QSizePolicy, QStyleOption, QFocusFrame, QStylePainter, QStyleOptionButton
1212

1313
from orangecanvas.gui.stackedwidget import StackLayout
14-
from orangecanvas.utils import qsizepolicy_is_expanding
14+
from orangecanvas.gui.utils import qsizepolicy_is_expanding
1515

1616
log = logging.getLogger(__name__)
1717

0 commit comments

Comments
 (0)