Skip to content

Commit dbcaca1

Browse files
committed
Control._set_attr_json
1 parent b397650 commit dbcaca1

File tree

12 files changed

+32
-71
lines changed

12 files changed

+32
-71
lines changed

sdk/python/flet/alert_dialog.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import json
21
from typing import List, Optional
32

43
from beartype import beartype
54

65
from flet import padding
7-
from flet.control import Control, MainAxisAlignment, OptionalNumber, PaddingValue
8-
from flet.embed_json_encoder import EmbedJsonEncoder
6+
from flet.control import Control, MainAxisAlignment, PaddingValue
97
from flet.ref import Ref
108

119
try:
@@ -115,9 +113,7 @@ def title_padding(self, value: PaddingValue):
115113
self.__title_padding = value
116114
if value and isinstance(value, (int, float)):
117115
value = padding.all(value)
118-
self._set_attr(
119-
"titlePadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
120-
)
116+
self._set_attr_json("titlePadding", value)
121117

122118
# content
123119
@property
@@ -139,9 +135,7 @@ def content_padding(self, value: PaddingValue):
139135
self.__content_padding = value
140136
if value and isinstance(value, (int, float)):
141137
value = padding.all(value)
142-
self._set_attr(
143-
"contentPadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
144-
)
138+
self._set_attr_json("contentPadding", value)
145139

146140
# actions
147141
@property
@@ -163,9 +157,7 @@ def actions_padding(self, value: PaddingValue):
163157
self.__actions_padding = value
164158
if value and isinstance(value, (int, float)):
165159
value = padding.all(value)
166-
self._set_attr(
167-
"actionsPadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
168-
)
160+
self._set_attr_json("actionsPadding", value)
169161

170162
# actions_alignment
171163
@property

sdk/python/flet/banner.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import json
21
from typing import List, Optional
32

43
from beartype import beartype
54

65
from flet import padding
7-
from flet.control import Control, MainAxisAlignment, OptionalNumber, PaddingValue
8-
from flet.embed_json_encoder import EmbedJsonEncoder
6+
from flet.control import Control, PaddingValue
97
from flet.ref import Ref
108

119
try:
@@ -111,9 +109,7 @@ def leading_padding(self, value: PaddingValue):
111109
self.__leading_padding = value
112110
if value and isinstance(value, (int, float)):
113111
value = padding.all(value)
114-
self._set_attr(
115-
"leadingPadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
116-
)
112+
self._set_attr_json("leadingPadding", value)
117113

118114
# content
119115
@property
@@ -135,9 +131,7 @@ def content_padding(self, value: PaddingValue):
135131
self.__content_padding = value
136132
if value and isinstance(value, (int, float)):
137133
value = padding.all(value)
138-
self._set_attr(
139-
"contentPadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
140-
)
134+
self._set_attr_json("contentPadding", value)
141135

142136
# actions
143137
@property

sdk/python/flet/clipboard.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import dataclasses
2-
import json
32
import time
43
from typing import Optional
54

65
from beartype._decor.main import beartype
76

87
from flet.control import Control
9-
from flet.embed_json_encoder import EmbedJsonEncoder
108
from flet.ref import Ref
119

1210

@@ -49,4 +47,4 @@ def value(self):
4947
def value(self, value: Optional[str]):
5048
self.__value = value
5149
cd = ClipboardData(str(time.time()), value)
52-
self._set_attr("value", json.dumps(cd, cls=EmbedJsonEncoder) if value else None)
50+
self._set_attr_json("value", cd)

sdk/python/flet/connection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def send_commands(self, page_name: str, session_id: str, commands: List[Command]
109109
def _send_message_with_result(self, action_name, payload):
110110
msg_id = uuid.uuid4().hex
111111
msg = Message(msg_id, action_name, payload)
112-
j = json.dumps(msg, cls=CommandEncoder)
112+
j = json.dumps(msg, cls=CommandEncoder, separators=(",", ":"))
113113
logging.debug(f"_send_message_with_result: {j}")
114114
evt = threading.Event()
115115
self._ws_callbacks[msg_id] = (evt, None)

sdk/python/flet/container.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import json
21
from typing import Optional, Union
32

43
from beartype import beartype
@@ -9,7 +8,6 @@
98
from flet.border_radius import BorderRadius
109
from flet.constrained_control import ConstrainedControl
1110
from flet.control import BorderStyle, Control, MarginValue, OptionalNumber, PaddingValue
12-
from flet.embed_json_encoder import EmbedJsonEncoder
1311
from flet.ref import Ref
1412

1513
try:
@@ -81,7 +79,7 @@ def alignment(self):
8179
@beartype
8280
def alignment(self, value: Optional[Alignment]):
8381
self.__alignment = value
84-
self._set_attr("alignment", json.dumps(value, default=vars) if value else None)
82+
self._set_attr_json("alignment", value)
8583

8684
# padding
8785
@property
@@ -94,9 +92,7 @@ def padding(self, value: PaddingValue):
9492
self.__padding = value
9593
if value and isinstance(value, (int, float)):
9694
value = padding.all(value)
97-
self._set_attr(
98-
"padding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
99-
)
95+
self._set_attr_json("padding", value)
10096

10197
# margin
10298
@property
@@ -109,9 +105,7 @@ def margin(self, value: MarginValue):
109105
self.__margin = value
110106
if value and isinstance(value, (int, float)):
111107
value = margin.all(value)
112-
self._set_attr(
113-
"margin", json.dumps(value, cls=EmbedJsonEncoder) if value else None
114-
)
108+
self._set_attr_json("margin", value)
115109

116110
# bgcolor
117111
@property
@@ -131,9 +125,7 @@ def border(self):
131125
@beartype
132126
def border(self, value: Optional[Border]):
133127
self.__border = value
134-
self._set_attr(
135-
"border", json.dumps(value, cls=EmbedJsonEncoder) if value else None
136-
)
128+
self._set_attr_json("border", value)
137129

138130
# border_radius
139131
@property
@@ -146,9 +138,7 @@ def border_radius(self, value: Optional[BorderRadius]):
146138
self.__border_radius = value
147139
if value and isinstance(value, (int, float)):
148140
value = border_radius.all(value)
149-
self._set_attr(
150-
"borderRadius", json.dumps(value, cls=EmbedJsonEncoder) if value else None
151-
)
141+
self._set_attr_json("borderRadius", value)
152142

153143
# content
154144
@property

sdk/python/flet/control.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import datetime as dt
2+
import json
23
import threading
34
from difflib import SequenceMatcher
45
from typing import Union
56

67
from beartype import beartype
78
from beartype.typing import List, Optional
89

10+
from flet.embed_json_encoder import EmbedJsonEncoder
911
from flet.margin import Margin
1012
from flet.padding import Padding
1113
from flet.protocol import Command
@@ -138,6 +140,14 @@ def _set_attr_internal(self, name, value, dirty=True):
138140
if orig_val == None or orig_val[0] != value:
139141
self.__attrs[name] = (value, dirty)
140142

143+
def _set_attr_json(self, name, value):
144+
self._set_attr(
145+
name,
146+
json.dumps(value, cls=EmbedJsonEncoder, separators=(",", ":"))
147+
if value
148+
else None,
149+
)
150+
141151
# event_handlers
142152
@property
143153
def event_handlers(self):

sdk/python/flet/form_field_control.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import json
21
from typing import Optional, Union
32

43
from beartype import beartype
54

65
from flet import padding
76
from flet.constrained_control import ConstrainedControl
87
from flet.control import Control, InputBorder, OptionalNumber, PaddingValue
9-
from flet.embed_json_encoder import EmbedJsonEncoder
108
from flet.ref import Ref
119

1210

@@ -122,9 +120,7 @@ def content_padding(self, value: PaddingValue):
122120
self.__content_padding = value
123121
if value and isinstance(value, (int, float)):
124122
value = padding.all(value)
125-
self._set_attr(
126-
"contentPadding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
127-
)
123+
self._set_attr_json("contentPadding", value)
128124

129125
# filled
130126
@property

sdk/python/flet/grid_view.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import json
21
from typing import List, Optional, Union
32

43
from beartype import beartype
54

65
from flet import padding
76
from flet.constrained_control import ConstrainedControl
87
from flet.control import Control, OptionalNumber, PaddingValue
9-
from flet.embed_json_encoder import EmbedJsonEncoder
108
from flet.ref import Ref
119

1210

@@ -136,9 +134,7 @@ def padding(self, value: PaddingValue):
136134
self.__padding = value
137135
if value and isinstance(value, (int, float)):
138136
value = padding.all(value)
139-
self._set_attr(
140-
"padding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
141-
)
137+
self._set_attr_json("padding", value)
142138

143139
# controls
144140
@property

sdk/python/flet/image.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import json
21
from typing import Optional, Union
32

43
from beartype import beartype
54

65
from flet import border_radius
76
from flet.border_radius import BorderRadius
87
from flet.control import Control, OptionalNumber
9-
from flet.embed_json_encoder import EmbedJsonEncoder
108
from flet.ref import Ref
119

1210
try:
@@ -124,6 +122,4 @@ def border_radius(self, value: Optional[BorderRadius]):
124122
self.__border_radius = value
125123
if value and isinstance(value, (int, float)):
126124
value = border_radius.all(value)
127-
self._set_attr(
128-
"borderRadius", json.dumps(value, cls=EmbedJsonEncoder) if value else None
129-
)
125+
self._set_attr_json("borderRadius", value)

sdk/python/flet/list_view.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
import json
21
from typing import List, Optional, Union
32

43
from beartype import beartype
54

65
from flet import padding
76
from flet.constrained_control import ConstrainedControl
87
from flet.control import Control, OptionalNumber, PaddingValue
9-
from flet.embed_json_encoder import EmbedJsonEncoder
108
from flet.ref import Ref
119

1210

@@ -90,9 +88,7 @@ def padding(self, value: PaddingValue):
9088
self.__padding = value
9189
if value and isinstance(value, (int, float)):
9290
value = padding.all(value)
93-
self._set_attr(
94-
"padding", json.dumps(value, cls=EmbedJsonEncoder) if value else None
95-
)
91+
self._set_attr_json("padding", value)
9692

9793
# controls
9894
@property

0 commit comments

Comments
 (0)