##// END OF EJS Templates
ipy_leo: LeoNode.go(), __iter__ for WorkBook
Ville M. Vainio -
Show More
@@ -187,12 +187,27 b' class LeoNode(object, UserDict.DictMixin):'
187 187 def ipush(self):
188 188 """ Does push-to-ipython on the node """
189 189 push_from_leo(self)
190 def go(self):
191 """ Set node as current node (to quickly see it in Outline) """
192 c.beginUpdate()
193 try:
194 c.setCurrentPosition(self.p)
195 finally:
196 c.endUpdate()
190 197
191 198
192 199
193 200
194 201 class LeoWorkbook:
195 """ class for 'advanced' node access """
202 """ class for 'advanced' node access
203
204 Has attributes for all "discoverable" nodes. Node is discoverable if it
205 either
206
207 - has a valid python name (Foo, bar_12)
208 - is a parent of an anchor node (if it has a child '@a foo', it is visible as foo)
209
210 """
196 211 def __getattr__(self, key):
197 212 if key.startswith('_') or key == 'trait_names' or not valid_attribute(key):
198 213 raise AttributeError
@@ -209,6 +224,12 b' class LeoWorkbook:'
209 224 raise AttributeError("Direct assignment to workbook denied, try wb.%s.v = %s" % (key,val))
210 225
211 226 __repr__ = __str__
227
228 def __iter__(self):
229 """ Iterate all (even non-exposed) nodes """
230 cells = all_cells()
231 return (LeoNode(p) for p in c.allNodes_iter())
232
212 233 ip.user_ns['wb'] = LeoWorkbook()
213 234
214 235
General Comments 0
You need to be logged in to leave comments. Login now