Skip to content

Commit e0a67b0

Browse files
committed
Adding debug switch
1 parent 3248e49 commit e0a67b0

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

gestalt/Node.py

+26-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import yaml
22
import copy
33
import math
4+
import pprint
45
import string
56

67
from gestalt.Datasheet import *
@@ -15,6 +16,7 @@ def __init__(self, classname, name=None, node=None, layout={}, loc=None):
1516
self.classname = classname
1617
self.name = name
1718
self.location = loc
19+
self.debug = False
1820

1921
self.properties = {}
2022
self.properties["attrs"] = {}
@@ -25,6 +27,7 @@ def __init__(self, classname, name=None, node=None, layout={}, loc=None):
2527
if node:
2628
self.name = node.name
2729
self.location = node.location
30+
self.debug = node.debug
2831

2932
for typ in ( "attrs", "internal" ):
3033
for key,val in node.properties[typ].items():
@@ -41,6 +44,10 @@ def __init__(self, classname, name=None, node=None, layout={}, loc=None):
4144

4245
self.setDefault(Rect, "geometry", "0x0x0x0")
4346

47+
def log(self, info):
48+
if self.debug:
49+
print(str(self.name) + ": " + info + "\n")
50+
4451

4552
def setDefault(self, datatype, key, default, internal=False):
4653
which = "internal" if internal else "attrs"
@@ -60,6 +67,8 @@ def makeInternal(self, datatype, key, default=None):
6067
def updateProperties(self, macros={}):
6168
if len(macros) == 0: return
6269

70+
self.log("Updating macros\n" + pprint.pformat(macros))
71+
6372
for attr in self.properties["internal"].values():
6473
attr.apply(macros)
6574

@@ -87,11 +96,15 @@ def setProperty(self, key, input, internal=False):
8796
to_assign = input.copy()
8897
else:
8998
to_assign = copy.deepcopy(input)
90-
99+
100+
if isinstance(to_assign, DataType):
101+
self.log("Setting Property " + key + " from " + str(self.properties[which].get(key)) + " to " + str(to_assign.value))
102+
else:
103+
self.log("Setting Property " + key + " from " + str(self.properties[which].get(key)) + " to " + pprint.pformat(to_assign))
91104
self.properties[which][key] = to_assign
92105

93106

94-
def setProperties(self, layout={"internal" : {}, "attrs" : {}}):
107+
def setProperties(self, layout={"internal" : {}, "attrs" : {}}):
95108
for key, val in layout["internal"].items():
96109
self.setProperty(key, val, internal=True)
97110

@@ -139,20 +152,24 @@ def position(self, *args, x=None, y=None):
139152
out_y = args[0]["y"]
140153

141154
if out_x is not None:
155+
self.log("Setting x to " + str(out_x))
142156
self["geometry"]["x"] = out_x
143157

144158
if out_y is not None:
159+
self.log("Setting y to " + str(out_y))
145160
self["geometry"]["y"] = out_y
146161

147162
return self
148163

149164

150165
def apply (self, generator, data={}):
151166
gen_func = getattr(generator, "generate" + self.classname, None)
152-
167+
153168
if gen_func:
169+
self.log("Generating " + self.classname)
154170
return gen_func(self, macros=data)
155171
else:
172+
self.log("Generating generic widget")
156173
return generator.generateWidget(self, macros=data)
157174

158175
def __deepcopy__(self, memo):
@@ -162,6 +179,7 @@ def __deepcopy__(self, memo):
162179
output.classname = self.classname
163180
output.name = self.name
164181
output.location = self.location
182+
output.debug = self.debug
165183

166184
output.properties = {}
167185
output.properties["attrs"] = copy.copy(self.properties["attrs"])
@@ -202,7 +220,9 @@ def __init__(self, classname, name=None, node=None, layout={}, loc=None):
202220
self.setDefault(Number, "border-width", 0)
203221

204222

205-
def append(self, child, keep_original=False):
223+
def append(self, child, keep_original=False):
224+
self.log("Adding child node " + child.__repr__())
225+
206226
if not keep_original:
207227
self.children.append(copy.deepcopy(child))
208228
else:
@@ -242,6 +262,7 @@ def place(self, child, x=None, y=None, keep_original=False):
242262

243263

244264
def apply (self, generator, data={}):
265+
self.log("Generating group node")
245266
output = generator.generateGroup(self, macros=data)
246267
margins = self.getProperty("margins", internal=True).val()
247268

@@ -285,6 +306,7 @@ def __init__(self, name=None, layout={}, loc=None):
285306
self.setDefault(Font, "font", "-Liberation Sans - Regular - 12")
286307

287308
def apply(self, generator, data={}):
309+
self.log("Generating Tabbed Group")
288310
output = generator.generateTabbedGroup(self, macros=data)
289311

290312
tk_root = tk.Tk()

gestalt/Stylesheet.py

+8
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ def read_template_multi(loader, suffix, node):
105105
for item in params:
106106
if isinstance(item, dict):
107107
defaults.update(item)
108+
108109
elif isinstance(item, Node):
109110
template_node = item
110111

@@ -127,6 +128,12 @@ def read_apply_multi(loader, suffix, node):
127128

128129
return ApplyNode(defaults=defaults, macros=macros, subnode=template_node, loc=node.start_mark)
129130

131+
def read_debug_multi(loader, suffix, node):
132+
ret_node = yaml.SafeLoader.yaml_constructors["!" + suffix](loader, node)
133+
ret_node.debug = True
134+
135+
return ret_node
136+
130137
def read_stretch_multi(loader, suffix, node, flow="vertical"):
131138
ret_node = yaml.SafeLoader.yaml_constructors["!" + suffix](loader, node)
132139

@@ -204,6 +211,7 @@ def read_tab_node(loader, node):
204211
add_constructors("conditional", (lambda l, n: read_special_node(ConditionalNode, l, n)))
205212
add_multi_constructors("template", read_template_multi)
206213
add_multi_constructors("apply", read_apply_multi)
214+
add_multi_constructors("debug:", read_debug_multi)
207215
add_constructors("defaults", read_default_node)
208216

209217
add_constructors("spacer", (lambda l, n: read_special_node(SpacerNode, l, n)))

0 commit comments

Comments
 (0)