Show More
@@ -12,7 +12,7 b' from IPython.ipapi import TryNext' | |||
|
12 | 12 | import IPython.macro |
|
13 | 13 | import IPython.Shell |
|
14 | 14 | |
|
15 |
|
|
|
15 | _leo_push_history = set() | |
|
16 | 16 | |
|
17 | 17 | def init_ipython(ipy): |
|
18 | 18 | """ This will be run by _ip.load('ipy_leo') |
@@ -27,6 +27,8 b' def init_ipython(ipy):' | |||
|
27 | 27 | ip.expose_magic('mb',mb_f) |
|
28 | 28 | ip.expose_magic('lee',lee_f) |
|
29 | 29 | ip.expose_magic('leoref',leoref_f) |
|
30 | # Note that no other push command should EVER have lower than 0 | |
|
31 | expose_ileo_push(push_mark_req, -1) | |
|
30 | 32 | expose_ileo_push(push_cl_node,100) |
|
31 | 33 | # this should be the LAST one that will be executed, and it will never raise TryNext |
|
32 | 34 | expose_ileo_push(push_ipython_script, 1000) |
@@ -338,6 +340,7 b' class LeoWorkbook:' | |||
|
338 | 340 | if re.match(cmp, node.h, re.IGNORECASE): |
|
339 | 341 | yield node |
|
340 | 342 | return |
|
343 | ||
|
341 | 344 | def require(self, req): |
|
342 | 345 | """ Used to control node push dependencies |
|
343 | 346 | |
@@ -346,8 +349,9 b' class LeoWorkbook:' | |||
|
346 | 349 | E.g. wb.require('foo') will do wb.foo.ipush() if it hasn't been done already |
|
347 | 350 | """ |
|
348 | 351 | |
|
349 |
if req not in |
|
|
350 | getattr(self.req).ipush() | |
|
352 | if req not in _leo_push_history: | |
|
353 | es('Require: ' + req) | |
|
354 | getattr(self,req).ipush() | |
|
351 | 355 | |
|
352 | 356 | |
|
353 | 357 | @IPython.generics.complete_object.when_type(LeoWorkbook) |
@@ -458,6 +462,14 b' def push_ev_node(node):' | |||
|
458 | 462 | res = ip.ev(expr) |
|
459 | 463 | node.v = res |
|
460 | 464 | |
|
465 | def push_mark_req(node): | |
|
466 | """ This should be the first one that gets called. | |
|
467 | ||
|
468 | It will mark the node as 'pushed', for wb.require. | |
|
469 | """ | |
|
470 | _leo_push_history.add(node.h) | |
|
471 | raise TryNext | |
|
472 | ||
|
461 | 473 | |
|
462 | 474 | def push_position_from_leo(p): |
|
463 | 475 | try: |
General Comments 0
You need to be logged in to leave comments.
Login now