Show More
@@ -28,6 +28,7 def init_ipython(ipy): | |||
|
28 | 28 | ip.expose_magic('lee',lee_f) |
|
29 | 29 | ip.expose_magic('leoref',leoref_f) |
|
30 | 30 | ip.expose_magic('lleo',lleo_f) |
|
31 | ip.expose_magic('lshadow', lshadow_f) | |
|
31 | 32 | # Note that no other push command should EVER have lower than 0 |
|
32 | 33 | expose_ileo_push(push_mark_req, -1) |
|
33 | 34 | expose_ileo_push(push_cl_node,100) |
@@ -649,12 +650,85 def lleo_f(selg, args): | |||
|
649 | 650 | lleo |
|
650 | 651 | """ |
|
651 | 652 | |
|
652 | import shlex, sys | |
|
653 |
argv = |
|
|
654 | sys.argv = argv | |
|
653 | import shlex, sys,os | |
|
654 | argv = shlex.split(args) | |
|
655 | ||
|
656 | # when run without args, leo will open ipython_notebook for | |
|
657 | # quick note taking / experimentation | |
|
658 | ||
|
659 | if not argv: | |
|
660 | argv = [os.path.join(ip.options.ipythondir,'ipython_notebook.leo')] | |
|
661 | ||
|
662 | sys.argv = ['leo'] + argv | |
|
655 | 663 | # if this var exists and is true, leo will "launch" (connect) |
|
656 | 664 | # ipython immediately when it's started |
|
657 | 665 | global _request_immediate_connect |
|
658 | 666 | _request_immediate_connect = True |
|
659 | 667 | import leo.core.runLeo |
|
660 | 668 | leo.core.runLeo.run() |
|
669 | ||
|
670 | def lshadow_f(self, arg): | |
|
671 | """ lshadow [path] | |
|
672 | ||
|
673 | Create shadow nodes for path (default .) | |
|
674 | ||
|
675 | """ | |
|
676 | if not arg.split(): | |
|
677 | arg = '.' | |
|
678 | ||
|
679 | p = c.currentPosition().insertAfter() | |
|
680 | c.setCurrentPosition(p) | |
|
681 | shadow_walk(arg) | |
|
682 | c.redraw() | |
|
683 | ||
|
684 | ||
|
685 | def shadow_walk(directory, parent=None, isroot=True): | |
|
686 | """ source: http://leo.zwiki.org/CreateShadows | |
|
687 | ||
|
688 | """ | |
|
689 | ||
|
690 | from os import listdir | |
|
691 | from os.path import join, abspath, basename, normpath, isfile | |
|
692 | from fnmatch import fnmatch | |
|
693 | ||
|
694 | RELATIVE_PATHS = False | |
|
695 | ||
|
696 | patterns_to_ignore = ['*.pyc', '*.leo', '*.gif', '*.png', '*.jpg', '*.json'] | |
|
697 | ||
|
698 | match = lambda s: any(fnmatch(s, p) for p in patterns_to_ignore) | |
|
699 | ||
|
700 | is_ignorable = lambda s: any([ s.startswith('.'), match(s) ]) | |
|
701 | ||
|
702 | p = c.currentPosition() | |
|
703 | ||
|
704 | if not RELATIVE_PATHS: directory = abspath(directory) | |
|
705 | if isroot: | |
|
706 | body = "@path %s" % normpath(directory) | |
|
707 | c.setHeadString(p, body) | |
|
708 | for name in listdir(directory): | |
|
709 | if is_ignorable(name): | |
|
710 | continue | |
|
711 | path = join(directory, name) | |
|
712 | if isfile(path): | |
|
713 | g.es('file:', path) | |
|
714 | headline = '@shadow %s' % basename(path) | |
|
715 | if parent: | |
|
716 | node = parent | |
|
717 | else: | |
|
718 | node = p | |
|
719 | child = node.insertAsLastChild() | |
|
720 | child.initHeadString(headline) | |
|
721 | else: | |
|
722 | g.es('dir:', path) | |
|
723 | headline = basename(path) | |
|
724 | body = "@path %s" % normpath(path) | |
|
725 | if parent: | |
|
726 | node = parent | |
|
727 | else: | |
|
728 | node = p | |
|
729 | child = node.insertAsLastChild() | |
|
730 | child.initHeadString(headline) | |
|
731 | child.initBodyString(body) | |
|
732 | shadow_walk(path, parent=child, isroot=False) | |
|
733 | ||
|
734 |
General Comments 0
You need to be logged in to leave comments.
Login now