Skip to content

Commit d81446f

Browse files
committed
Speedup init_widget
1 parent a568c50 commit d81446f

File tree

2 files changed

+35
-33
lines changed

2 files changed

+35
-33
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
setup(
1717
name='enaml-web',
18-
version='0.12.1',
18+
version='0.12.2',
1919
author='CodeLV',
2020
author_email='[email protected]',
2121
url='https://github.com/codelv/enaml-web',

web/impl/lxml_toolkit_object.py

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -79,48 +79,49 @@ def init_widget(self):
7979
8080
"""
8181
widget = self.widget
82+
set_attr = widget.set
8283
d = self.declaration
8384

84-
widget.set("id", d.id)
85-
if d.text:
86-
widget.text = d.text
87-
if d.tail:
88-
widget.tail = d.tail
89-
if d.alt:
90-
widget.set("alt", d.alt)
91-
if d.style:
92-
self.set_style(d.style)
93-
if d.cls:
94-
self.set_cls(d.cls)
85+
set_attr("id", d.id)
86+
if v := d.text:
87+
widget.text = v
88+
if v := d.tail:
89+
widget.tail = v
90+
if v := d.alt:
91+
set_attr("alt", v)
92+
if v := d.style:
93+
self.set_style(v)
94+
if v := d.cls:
95+
self.set_cls(v)
9596
if d.clickable:
96-
widget.set("clickable", "true")
97+
set_attr("clickable", "true")
9798
if d.draggable:
98-
widget.set("draggable", "true")
99-
if d.onclick:
100-
widget.set("onclick", d.onclick)
101-
if d.ondragstart:
102-
widget.set("ondragstart", d.ondragstart)
103-
if d.ondragover:
104-
widget.set("ondragover", d.ondragover)
105-
if d.ondragend:
106-
widget.set("ondragend", d.ondragend)
107-
if d.ondragenter:
108-
widget.set("ondragenter", d.ondragenter)
109-
if d.ondragleave:
110-
widget.set("ondragleave", d.ondragleave)
111-
if d.ondrop:
112-
widget.set("ondrop", d.ondrop)
99+
set_attr("draggable", "true")
100+
if v := d.onclick:
101+
set_attr("onclick", v)
102+
if v := d.ondragstart:
103+
set_attr("ondragstart", v)
104+
if v := d.ondragover:
105+
set_attr("ondragover", v)
106+
if v := d.ondragend:
107+
set_attr("ondragend", v)
108+
if v := d.ondragenter:
109+
set_attr("ondragenter", v)
110+
if v := d.ondragleave:
111+
set_attr("ondragleave", v)
112+
if v := d.ondrop:
113+
set_attr("ondrop", v)
113114

114115
for k, v in d.attrs.items():
115-
widget.set(k, v)
116+
set_attr(k, v)
116117

117118
for m in get_fields(d.__class__):
118119
name = m.name
119-
value = getattr(d, name)
120+
value = m.do_getattr(d)
120121
if value is True:
121-
widget.set(name, name)
122+
set_attr(name, name)
122123
elif value:
123-
widget.set(name, f"{value}")
124+
set_attr(name, f"{value}")
124125

125126
# -------------------------------------------------------------------------
126127
# ProxyToolkitObject API
@@ -287,8 +288,9 @@ def set_attrs(self, attrs: dict[str, str]):
287288
"""Set any attributes not explicitly defined"""
288289
w = self.widget
289290
assert w is not None
291+
set_attr = w.set
290292
for k, v in attrs.items():
291-
w.set(k, v)
293+
set_attr(k, v)
292294

293295
def set_cls(self, cls: Union[tuple[str], list[str], str]):
294296
if isinstance(cls, (tuple, list)):

0 commit comments

Comments
 (0)