Skip to content

Commit 39aa105

Browse files
authored
Housekeeping: typing literals, fix tests (#65)
* Use typing_extensions in Python < 3.8 to enable Literal * Text fixes: Simple replacements * Text fixes: Remove obsolete indent parameter * Text fixes: Make page fixture reusable by moving to conftest.py - Also remove the local parameter, now default * Test fixes: Remove obsolete border parameters * Test fixes: Fix stack scroll parameters * Test fixes: Grid sorting parameters
1 parent 0d8dd2b commit 39aa105

55 files changed

Lines changed: 948 additions & 352 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pdm.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pglet/barchart.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
1-
from typing import Optional, Union, Literal
1+
from typing import Optional, Union
2+
try:
3+
from typing import Literal
4+
except ImportError:
5+
from typing_extensions import Literal
6+
27
from beartype import beartype
8+
39
from pglet.control import Control
410

511

6-
DATA_MODE = Literal["default", "fraction", "percentage", None]
12+
DataMode = Literal["default", "fraction", "percentage", None]
713

814

915
class BarChart(Control):
1016
def __init__(
1117
self,
1218
id=None,
1319
tooltips=None,
14-
data_mode: DATA_MODE = None,
20+
data_mode: DataMode = None,
1521
points=None,
1622
width=None,
1723
height=None,
@@ -65,7 +71,7 @@ def data_mode(self):
6571

6672
@data_mode.setter
6773
@beartype
68-
def data_mode(self, value: DATA_MODE):
74+
def data_mode(self, value: DataMode):
6975
self._set_attr("dataMode", value)
7076

7177
def _get_children(self):

pglet/callout.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
from typing import Literal, Optional
1+
from typing import Optional
2+
try:
3+
from typing import Literal
4+
except:
5+
from typing_extensions import Literal
6+
27
from beartype import beartype
8+
39
from pglet.control import Control
410

5-
POSITION = Literal[
11+
Position = Literal[
612
None,
713
"topLeft",
814
"topCenter",
@@ -26,7 +32,7 @@ def __init__(
2632
self,
2733
id=None,
2834
target=None,
29-
position: POSITION = None,
35+
position: Position = None,
3036
gap=None,
3137
beak=None,
3238
beak_width=None,
@@ -105,7 +111,7 @@ def position(self):
105111

106112
@position.setter
107113
@beartype
108-
def position(self, value: POSITION):
114+
def position(self, value: Position):
109115
self._set_attr("position", value)
110116

111117
# gap

pglet/checkbox.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
from typing import Literal, Optional
1+
from typing import Optional
2+
try:
3+
from typing import Literal
4+
except:
5+
from typing_extensions import Literal
6+
27
from beartype import beartype
8+
39
from pglet.control import Control
410

5-
BOX_SIDE = Literal[None, "start", "end"]
11+
BoxSide = Literal[None, "start", "end"]
612

713

814
class Checkbox(Control):
@@ -12,7 +18,7 @@ def __init__(
1218
id=None,
1319
value=None,
1420
value_field=None,
15-
box_side: BOX_SIDE = None,
21+
box_side: BoxSide = None,
1622
focused=None,
1723
data=None,
1824
width=None,
@@ -89,7 +95,7 @@ def box_side(self):
8995

9096
@box_side.setter
9197
@beartype
92-
def box_side(self, value: BOX_SIDE):
98+
def box_side(self, value: BoxSide):
9399
self._set_attr("boxSide", value)
94100

95101
# focused

pglet/combobox.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
from typing import List, Literal, Optional
1+
from typing import List, Optional
2+
try:
3+
from typing import Literal
4+
except:
5+
from typing_extensions import Literal
26

37
from beartype import beartype
48

59
from pglet.control import Control
610

7-
ITEM_TYPE = Literal[None, "normal", "divider", "header", "selectAll", "select_all"]
11+
ItemType = Literal[None, "normal", "divider", "header", "selectAll", "select_all"]
812

913

1014
class ComboBox(Control):
@@ -183,7 +187,7 @@ def on_blur(self, handler):
183187

184188

185189
class Option(Control):
186-
def __init__(self, key=None, text=None, item_type: ITEM_TYPE = None, disabled=None):
190+
def __init__(self, key=None, text=None, item_type: ItemType = None, disabled=None):
187191
Control.__init__(self)
188192
assert key != None or text != None, "key or text must be specified"
189193
self.key = key
@@ -219,7 +223,7 @@ def item_type(self):
219223

220224
@item_type.setter
221225
@beartype
222-
def item_type(self, value: ITEM_TYPE):
226+
def item_type(self, value: ItemType):
223227
self._set_attr("itemtype", value)
224228

225229
# disabled

pglet/connection.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import threading
44
import uuid
55

6-
from pglet.event import Event
76
from pglet.protocol import *
87
from pglet.reconnecting_websocket import ReconnectingWebSocket
98

pglet/control.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
import datetime as dt
22
import threading
3-
from typing import Literal, Optional
4-
from beartype import beartype
3+
from typing import Optional
54
from difflib import SequenceMatcher
65

6+
try:
7+
from typing import Literal
8+
except:
9+
from typing_extensions import Literal
10+
11+
from beartype import beartype
12+
713
from pglet.protocol import Command
814

9-
BORDER_STYLE = Literal[
15+
BorderStyle = Literal[
1016
None, "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"
1117
]
1218

13-
TEXT_SIZE = Literal[
19+
TextSize = Literal[
1420
None,
1521
"tiny",
1622
"xSmall",
@@ -25,7 +31,7 @@
2531
"mega",
2632
]
2733

28-
TEXT_ALIGN = Literal[None, "left", "right", "center", "justify"]
34+
TextAlign = Literal[None, "left", "right", "center", "justify"]
2935

3036

3137
class Control:

pglet/dialog.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1-
from typing import Literal, Optional
1+
from typing import Optional
2+
try:
3+
from typing import Literal
4+
except:
5+
from typing_extensions import Literal
6+
27
from beartype import beartype
8+
39
from pglet.control import Control
410

5-
TYPE = Literal[None, "normal", "largeHeader", "close"]
11+
DialogType = Literal[None, "normal", "largeHeader", "close"]
612

713

814
class Dialog(Control):
@@ -12,7 +18,7 @@ def __init__(
1218
open=None,
1319
title=None,
1420
sub_text=None,
15-
type: TYPE = None,
21+
type: DialogType = None,
1622
auto_dismiss=None,
1723
width=None,
1824
max_width=None,
@@ -117,7 +123,7 @@ def type(self):
117123

118124
@type.setter
119125
@beartype
120-
def type(self, value: TYPE):
126+
def type(self, value: DialogType):
121127
self._set_attr("type", value)
122128

123129
# auto_dismiss

pglet/dropdown.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
from typing import Literal, Optional
1+
from typing import Optional
2+
try:
3+
from typing import Literal
4+
except:
5+
from typing_extensions import Literal
26

37
from beartype import beartype
48

59
from pglet.control import Control
610

7-
ITEM_TYPE = Literal[None, "normal", "divider", "header"]
11+
ItemType = Literal[None, "normal", "divider", "header"]
812

913

1014
class Dropdown(Control):
@@ -142,7 +146,7 @@ def on_blur(self, handler):
142146

143147

144148
class Option(Control):
145-
def __init__(self, key=None, text=None, item_type: ITEM_TYPE = None, disabled=None):
149+
def __init__(self, key=None, text=None, item_type: ItemType = None, disabled=None):
146150
Control.__init__(self)
147151
assert key != None or text != None, "key or text must be specified"
148152
self.key = key
@@ -178,7 +182,7 @@ def item_type(self):
178182

179183
@item_type.setter
180184
@beartype
181-
def item_type(self, value: ITEM_TYPE):
185+
def item_type(self, value: ItemType):
182186
self._set_attr("itemtype", value)
183187

184188
# disabled

pglet/grid.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
from __future__ import annotations
22

3-
from typing import Literal, Optional
3+
from typing import Optional
4+
try:
5+
from typing import Literal
6+
except:
7+
from typing_extensions import Literal
48

59
from beartype import beartype
10+
611
from pglet.control import Control
712

8-
SELECTION_MODE = Literal[None, "single", "multiple"]
9-
SORTABLE = Literal[None, "string", "number", False]
10-
SORTED = Literal[None, False, "asc", "desc"]
13+
SelectionMode = Literal[None, "single", "multiple"]
14+
Sortable = Literal[None, "string", "number", False]
15+
Sorted = Literal[None, False, "asc", "desc"]
1116

1217

1318
class Grid(Control):
1419
def __init__(
1520
self,
1621
id=None,
17-
selection_mode: SELECTION_MODE = None,
22+
selection_mode: SelectionMode = None,
1823
compact=None,
1924
header_visible=None,
2025
shimmer_lines=None,
@@ -116,7 +121,7 @@ def selection_mode(self):
116121

117122
@selection_mode.setter
118123
@beartype
119-
def selection_mode(self, value: SELECTION_MODE):
124+
def selection_mode(self, value: SelectionMode):
120125
self._set_attr("selection", value)
121126

122127
# compact
@@ -228,9 +233,9 @@ def __init__(
228233
icon=None,
229234
icon_only=None,
230235
field_name=None,
231-
sortable: SORTABLE = None,
236+
sortable: Sortable = None,
232237
sort_field=None,
233-
sorted: SORTED = None,
238+
sorted: Sorted = None,
234239
resizable=None,
235240
min_width=None,
236241
max_width=None,
@@ -300,7 +305,7 @@ def sortable(self):
300305

301306
@sortable.setter
302307
@beartype
303-
def sortable(self, value: SORTABLE):
308+
def sortable(self, value: Sortable):
304309
self._set_attr("sortable", value)
305310

306311
# sort_field
@@ -319,7 +324,7 @@ def sorted(self):
319324

320325
@sorted.setter
321326
@beartype
322-
def sorted(self, value: SORTED):
327+
def sorted(self, value: Sorted):
323328
self._set_attr("sorted", value)
324329

325330
# resizable

0 commit comments

Comments
 (0)