Re: Please tell how it was that you got the Leo Aha
My excitement about Leo has only increased since this post: http://longrun.zwiki.org/LeoLog On Fri, Sep 4, 2009 at 2:25 PM, Ville M. Vainiovivai...@gmail.com wrote: On Thu, Sep 3, 2009 at 8:40 AM, Edward K. Ream edream...@gmail.com wrote: Inspired by Terry's recent post, I'm wondering how many of you can tell the story of what you were doing and thinking when you first got what Leo was all about. Such stories might help newbies, and they will help me understand the pathways people take to understanding Leo. My story: - I bumped into leo 5 years back. This tutorial sparked my fascination: http://www.3dtree.com/ev/e/sbooks/leo/sbframetoc_ie.htm (yeah, they are not really up-to-date anymore. The best tutorial is probably the Outlining one, with Friends, Enemies and People that owe me money) I played around with it a bit, but found myself unable to use it for programming (the @root thing is not all that practical). Also, back then Leo was too slow for large projects (we've come a long way since). Still, a weird charm about the whole thing stuck to the back of my head. Here are some of my c.l.p postings from 2004: http://mail.python.org/pipermail/python-list/2004-July/270849.html http://mail.python.org/pipermail/python-list/2004-July/270910.html I guess I found myself not needing Leo that much back then - my job was boring at the time, and I didn't have all that much to keep track off. Later, a colleague introduced me to Freemind (and my job had got interesting enough to actually keep track of what i'm doing). I used that for a while to keep notes about my defect fixing work (with chat logs, tracebacks, interesting functions etc. associated with each defect). However, I soon hit the glass ceiling with Freemind - it just didn't scale for lots of text and complex graphs. It was more of an attractive toy, really. I then remembered Leo, and switched to using that. Leo was a much better fit for my needs. This was coupled with Edwards post to ipython mailing list: http://osdir.com/ml/python.ipython.devel/2005-07/msg00015.html This resulted in ILeo, which solved some of the woes of using %edit in IPython, and revealed a whole new avenue of thinking about interactive programming. I got seriously sucked into development of Leo itself when the Qt ui started happening. I had a very selfish motive for promoting the Qt ui stuff - I had started working on Linux at the time (on the maemo/Nokia N900 stuff I posted the link about), and the Tk ui was bad enough on Linux that I either had to reimplement a Leo-like program myself (possibly based on qleolite, branch still on LP), or wait for other GUI plugin to emerge. But here we are. -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: clone-marked command on trunk
On Sun, Sep 6, 2009 at 4:24 PM, Kent Tenney kten...@gmail.com wrote: I haven't been using marks, I think I will. Note that one thing making them more useful now is marking/unmarking in the rclick menu - it also supports multiselection. Also, by typing m + enter in nav tab, you get a clickable list of marked nodes. -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
Hey, what's the latest and greatest version of Leo that can run on Python 2.5? That's the last Python for Win98. Seth On Sun, Sep 6, 2009 at 11:05 AM, VRviktor.ransm...@gmail.com wrote: Hi Edward, On 6 Sep., 07:50, VR viktor.ransm...@gmail.com wrote: Hi Edward, On 5 Sep., 18:45, VR viktor.ransm...@gmail.com wrote: Hi Edward You wrote: Leo 4.6.3 final is now available at:http://sourceforge.net/project/showfiles.php?group_id=3458package_id... Leo 4.6.3 fixes a significant caching bug in Leo 4.6.2. Leo 4.6.3 also comes with an executable installer for Windows. Please report any problems immediately. Installing Leo-4.6.3 from the executable installer for Windows does not work for me. Platform is Windows XP Pro SP3 and Python 2.6, no PyQt. Even when changing the file-association for '*.leo' from '...pythonw ...' to '...python...', the program does not leave any traces :-( I was able to get Leo working again from the latest '46-main' branch. However I do get the following tracebacks, when starting Leo: Log Leo Log Window Leo 4.6.3 final, build 2286, September 4, 2009 Python 2.6.2, Tk 8.5, Pmw 1.3 Windows 5, 1, 2600, 2, Service Pack 3 leoID=vr20080830 (in C:\Dokumente und Einstellungen\VR\.leo) load dir: C:\46-maint\leo\core global config dir: C:\46-maint\leo\config home dir: C:\Dokumente und Einstellungen\VR reading settings in C:\46-maint\leo\config\leoSettings.leo using menus from: leoSettings.leo reading settings in C:\Dokumente und Einstellungen\VR\Eigene Dateien \PWL\PWL-on-Neptune.leo unexpected exception in g.importFromPath(quicksearch) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\quicksearch.py, line 40, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import quicksearch from plugin quicksearch unexpected exception in g.importFromPath(contextmenu) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\contextmenu.py, line 58, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import contextmenu from plugin contextmenu unexpected exception in g.importFromPath(nav_qt) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\nav_qt.py, line 33, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import nav_qt from plugin nav_qt @enabled-plugins found in leoSettings.leo unexpected exception in g.importFromPath(quicksearch) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\quicksearch.py, line 40, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import quicksearch from plugin quicksearch unexpected exception in g.importFromPath(contextmenu) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\contextmenu.py, line 58, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import contextmenu from plugin contextmenu unexpected exception in g.importFromPath(nav_qt) Traceback (most recent call last): File C:\46-maint\leo\core\leoGlobals.py, line 6723, in importFromPath module = imp.load_module(moduleName,theFile,pathname,description) File C:\46-maint\leo\plugins\nav_qt.py, line 33, in module g.assertUi('qt') File C:\46-maint\leo\core\leoGlobals.py, line 6779, in assertUi assert g.app.gui.guiName() == uitype AssertionError Can not import nav_qt from plugin nav_qt Can not load c:\aspell\bin\aspell-15.dll reading: C:\Dokumente und Einstellungen\VR\Eigene Dateien\PWL\PWL-on- Neptune.leo /Log I did retry the windows installer again. - The problem can be resolved manually in a simple way: * Change the content of the 'open-action' in windows explorer for filetype 'leo' * from C:\Python26\\pythonw.exe
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 7:53 PM, Edward K. Ream edream...@gmail.com wrote: 2. Generators returning (unified)nodes simply use the corresponding position generators. Thus, all such generators must be members of the commands or position class, *not* the vnode class. def allNodes(c): for p in allPositions(c): yield p.v raise StopIteration I think it would be a better idea to bypass positions for this generator, because we can implement *much* more efficient generators by using nodes alone. Also, the node generator could return the whole parent stack (because it maintains it anyway). -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
On Sun, Sep 6, 2009 at 8:50 AM, VR viktor.ransm...@gmail.com wrote: I was able to get Leo working again from the latest '46-main' branch. However I do get the following tracebacks, when starting Leo: Do you have pyqt installed from http://riverbankcomputing.co.uk/software/pyqt/download The file you want is http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-Py2.6-gpl-4.5.4-1.exe -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
On Sun, Sep 6, 2009 at 7:55 PM, Seth Johnson seth.p.john...@gmail.com wrote: :-) Hmm, so I wonder why it's not working for me. I'll fiddle with it some more later. Also for you - do you have PyQt installed? You may also want to install something more modern than windows 98 ;-). If you are dependent on particular program, it may well be that Wine can run it on Linux... -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Difficult to Install
Dear All, I've following error when execute the batch file as suggested: - Traceback (most recent call last): File C:\Python31\Lib\site-packages\leo\launchLeo.py, line 7, in module import leo.core.runLeo File C:\Python31\Lib\site-packages\leo\leo\core\runLeo.py, line 35, in module import leo.core.leoGlobals as leoGlobals File C:\Python31\Lib\site-packages\leo\leo\core\leoGlobals.py, line 119 print '** leoGlobals.py: caching disabled' ^ SyntaxError: invalid syntax OS: Microsoft Windows 7 Paython installed: 3.1 amd 64 PyQt4 installed Leo-4-6-3-final Any suggestion? Best regards, Teres On Aug 21, 2:30 pm, Vicent uve...@gmail.com wrote: Hi, On 20 Ago, 21:49, Matt Wilkie map...@gmail.com wrote: ... I've installed Leo several times on windows, yet this morning still took me a few minutes to find the section you reference above because there are at least two other document sections with phrases similar to installing leo... I suppose that it proofs again that some documentation has to be rewritten. That's a work in progress and we (users) can report bugs, mistakes, inconsistencies, etc. Vicent --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Difficult to Install
On Sun, Sep 6, 2009 at 8:08 PM, Teres W teres.w...@gmail.com wrote: Dear All, I've following error when execute the batch file as suggested: You have Python 3.1 installed. Please use Python 2.6 for Leo (it's not yet ported for 3.1) -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
:-) Hmm, so I wonder why it's not working for me. I'll fiddle with it some more later. Seth On Sun, Sep 6, 2009 at 11:23 AM, Ville M. Vainiovivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 6:15 PM, Seth Johnson seth.p.john...@gmail.com wrote: Hey, what's the latest and greatest version of Leo that can run on Python 2.5? That's the last Python for Win98. 4.6.3 ;-). --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
4.6.3 final tag
I see that there is a 4.6.3 final tag in 46-maint. However, there is prepare for 4.6.3 final checkin comment after it. So what's the actual revision for 4.6.3 final? Also, it appears 46-maint is not currently merged to trunk (i.e. trunk doesn't have the tag). -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Cleaning up Leo's iterators
As part of the clean-one-node world I am going to clean up Leo's iterators using Python generators. As always, the old names will remain for compatibility with scripts and plugins. 1. Position generators are the base of the scheme. For example, here is a partially tested rewrite of c.allNodes_iter, called, much more properly, allPositions(). These functions will eventually become generators of the commands and positions classes, so the 'c' arg will turn into 'self': def allPositions(c): this,next = None,c.rootPosition() while next: this = next next = this.threadNext() yield this raise StopIteration 2. Generators returning (unified)nodes simply use the corresponding position generators. Thus, all such generators must be members of the commands or position class, *not* the vnode class. def allNodes(c): for p in allPositions(c): yield p.v raise StopIteration This scheme will eliminate all lambda bindings in the iterators, something that must be done for Python 3k. More importantly, the new code is substantially simpler than the old. The new scheme will retain the unique iterators that return positions p such that p.v appears only once. These will use the moveToThreadNextUnique pretty much unchanged, except we can dispense with the unique lambda binding. Edward P.S. I have, once again, to thank the late great Bernhard Mulder for this work. It was he who wanted to use generators years ago. I do wish he were here to see it. EKR --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 7:53 PM, Edward K. Ream edream...@gmail.com wrote: 1. Position generators are the base of the scheme. For example, here is a partially tested rewrite of c.allNodes_iter, called, much more properly, allPositions(). These functions will eventually become Could we have more pythonic shorter names for these methods that don't use camelCase? Something like c.walk() and c.walknodes() In general following pep-8 would be nice. http://www.python.org/dev/peps/pep-0008/ -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 12:06 PM, Ville M. Vainio vivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 7:53 PM, Edward K. Ream edream...@gmail.com wrote: 2. Generators returning (unified)nodes simply use the corresponding position generators. Thus, all such generators must be members of the commands or position class, *not* the vnode class. def allNodes(c): for p in allPositions(c): yield p.v raise StopIteration I think it would be a better idea to bypass positions for this generator, because we can implement *much* more efficient generators by using nodes alone. Also, the node generator could return the whole parent stack (because it maintains it anyway). This can't be correct, for several reasons. Most importantly, iterators are naturally related to positions, not nodes. It would thus be bad design to have iterators be part of a node class. Except for some unusual special cases in the read logic (when positions don't yet exist), Leo (properly) treats position as the essential data to have, and nodes as derived from positions. Changing this would greatly (and wrongly) change Leo's core. I'm not going to do it. Instead, the contemplated revision merely replaces clumsy code by elegant code. Second, (v)nodes are never enough, by themselves, to generate most kinds of next positions. Two more data are needed for the next position to be well defined: the specific parent of the node and the node's child index. The p.moveToX methods used by the present (and future) iterators pass such data to the low-level vnode methods. Finally, the data structures needed by your suggested node iterators are available to positions via p.v. Thus, if need be, we could implement the same optimizations you contemplate for vnode-based iterators in the position class. I have no appetite for further optimizations. The code is good, and previous optimizations have been complex. However, I won't rule them out entirely, if it turns out that optimizations are much easier to do in the one-node world. Edward --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 1:16 PM, Edward K. Ream edream...@gmail.com wrote: This can't be correct, for several reasons. Actually, I can be even more emphatic about this statement. It is not immediately obvious from the code, but it is a fact nonetheless, that Leo's present iterators are already highly optimized. A loop such as: for p in c.allNodes_iter(): whatever generates *exactly one* position p, and this position is moved by the iterator using p.moveToX methods. This is a crucial space optimization. The comment in the p.moveToX node says: QQQ These routines change self to a new position in place. That is, these methods must _never_ call p.copy(). QQQ Furthermore, p.stack turns out to be essential in computing the next position. To contemplate optimized vnode iterators is misguided: they would have to simulate p.stack in order to work properly. Edward --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Difficult to Install
Dear All, Tried to install: OS: Win Xp x86 Python: 2.5.4 PyQt-Py2.5-gpl-4.4.3-1 Leo-4-6-3-final Now having the following error: --- Traceback (most recent call last): File C:\Python25\Lib\site-packages\leo\launchLeo.py, line 8, in module leo.core.runLeo.run(fileName=test) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 88, in run fn,relFn,script = doPrePluginsInit(fileName,pymacs) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 111, in doPre PluginsInit initApp(verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 234, in initA pp g.app.setLeoID(verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 651, in setLe oID g.app.createTkGui(startup) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 358, in creat eTkGui leoPlugins.loadOnePlugin ('tkGui',verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoPlugins.py, line 398, in l oadOnePlugin verbose = False or verbose or g.app.config.getBool (c=None,setting='trace_plu gins') AttributeError: 'NoneType' object has no attribute 'getBool' --- Need a break for hours of testing. Any suggestion? Best regards, Teres On Sep 7, 2:01 am, Ville M. Vainio vivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 8:08 PM, Teres W teres.w...@gmail.com wrote: Dear All, I've following error when execute the batch file as suggested: You have Python 3.1 installed. Please use Python 2.6 for Leo (it's not yet ported for 3.1) -- Ville M. Vainiohttp://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 9:25 PM, Edward K. Ream edream...@gmail.com wrote: Actually, I can be even more emphatic about this statement. It is not immediately obvious from the code, but it is a fact nonetheless, that Leo's present iterators are already highly optimized. A loop such as: for p in c.allNodes_iter(): whatever generates *exactly one* position p, and this position is moved by the iterator using p.moveToX methods. This is a crucial space optimization. The Yeah, a space optimization. I'm thinking of time optimization here. comment in the p.moveToX node says: QQQ These routines change self to a new position in place. That is, these methods must _never_ call p.copy(). QQQ Furthermore, p.stack turns out to be essential in computing the next position. To contemplate optimized vnode iterators is misguided: they would have to simulate p.stack in order to work properly. I'm thinking of using a recursive generator for this. OTOH, emulating the position stack is easy. Don't bother too much about this yet, just implement the straightforward version in terms of positions as you suggested and I'll provide benchmark the optimized version later. My gut feeling tells me significant speedup can be achieved, but of course I might be wrong. This is a harmless optimization in that no changes outside of this function will be needed. -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Difficult to Install
Dear All, Get Solved with the following combination: OS: Window XP x86 Python: 2.5.4 PyQt-Py2.5-gpl-4.4.3-1 Leo-4-6-2-final Actuall, I should try only the version specified in the documentation mentioned here and not tried new version. Best regards, Teres P.S. I'll try back on Windows 7 x64 and the Python 2.5.4 AMD x64. On Sep 7, 2:27 am, Teres W teres.w...@gmail.com wrote: Dear All, Tried to install: OS: Win Xp x86 Python: 2.5.4 PyQt-Py2.5-gpl-4.4.3-1 Leo-4-6-3-final Now having the following error: --- Traceback (most recent call last): File C:\Python25\Lib\site-packages\leo\launchLeo.py, line 8, in module leo.core.runLeo.run(fileName=test) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 88, in run fn,relFn,script = doPrePluginsInit(fileName,pymacs) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 111, in doPre PluginsInit initApp(verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 234, in initA pp g.app.setLeoID(verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 651, in setLe oID g.app.createTkGui(startup) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 358, in creat eTkGui leoPlugins.loadOnePlugin ('tkGui',verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoPlugins.py, line 398, in l oadOnePlugin verbose = False or verbose or g.app.config.getBool (c=None,setting='trace_plu gins') AttributeError: 'NoneType' object has no attribute 'getBool' --- Need a break for hours of testing. Any suggestion? Best regards, Teres On Sep 7, 2:01 am, Ville M. Vainio vivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 8:08 PM, Teres W teres.w...@gmail.com wrote: Dear All, I've following error when execute the batch file as suggested: You have Python 3.1 installed. Please use Python 2.6 for Leo (it's not yet ported for 3.1) -- Ville M. Vainiohttp://tinyurl.com/vainio- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
On Sun, Sep 6, 2009 at 9:43 PM, VR viktor.ransm...@gmail.com wrote: No, as I stated in my initial email to Edward, that I do not use PyQt. I do not use it, since until now there is no compelling reason for me to introduce yet another dependency ... That's why you get those messages. To get rid of them, remove the reported plugins from LeoSettings.leo @enabled-plugins. However I may have been wrongly under the impression that Leo is treating PyQt and Tkinter with equal priorities as a supported GUI-TK ... Of course we want to avoid introducing new bugs in Tk side (e.g. these messages were not indication of a bug), but it certainly doesn't have equivalent priority in the sense of receiving new GUI features (or regular testing, apart from that done by those who actually use Tk). -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Cleaning up Leo's iterators
On Sun, Sep 6, 2009 at 1:12 PM, Ville M. Vainio vivai...@gmail.com wrote: 1. Position generators are the base of the scheme. For example, here is a partially tested rewrite of c.allNodes_iter, called, much more properly, allPositions(). These functions will eventually become Could we have more pythonic shorter names for these methods that don't use camelCase? Something like c.walk() and c.walknodes() I agree, it would be good to shorten and clarify names. The names of some of the new unique iterators are way too long. Let me think about a scheme that will be relatively consistent across all iterators. I would like to get rid of the _iter suffix, but it's not clear that can be done cleanly. As for camelCase, I usually prefer xY to x_y, but not always, and Leo uses both without much plan. That's not likely to change, absent a safe script for making the changes. Edward --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
I have GNU/Linux on my laptop. I'll fiddle later. On Sun, Sep 6, 2009 at 1:51 PM, Ville M. Vainiovivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 7:55 PM, Seth Johnson seth.p.john...@gmail.com wrote: :-) Hmm, so I wonder why it's not working for me. I'll fiddle with it some more later. Also for you - do you have PyQt installed? You may also want to install something more modern than windows 98 ;-). If you are dependent on particular program, it may well be that Wine can run it on Linux... -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Difficult to Install
Dear All, Python 2.5.4 for AMX x64 doesn't work. Best regards, Teres On Sep 7, 2:40 am, Teres W teres.w...@gmail.com wrote: Dear All, Get Solved with the following combination: OS: Window XP x86 Python: 2.5.4 PyQt-Py2.5-gpl-4.4.3-1 Leo-4-6-2-final Actuall, I should try only the version specified in the documentation mentioned here and not tried new version. Best regards, Teres P.S. I'll try back on Windows 7 x64 and the Python 2.5.4 AMD x64. On Sep 7, 2:27 am, Teres W teres.w...@gmail.com wrote: Dear All, Tried to install: OS: Win Xp x86 Python: 2.5.4 PyQt-Py2.5-gpl-4.4.3-1 Leo-4-6-3-final Now having the following error: --- Traceback (most recent call last): File C:\Python25\Lib\site-packages\leo\launchLeo.py, line 8, in module leo.core.runLeo.run(fileName=test) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 88, in run fn,relFn,script = doPrePluginsInit(fileName,pymacs) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 111, in doPre PluginsInit initApp(verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\runLeo.py, line 234, in initA pp g.app.setLeoID(verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 651, in setLe oID g.app.createTkGui(startup) File C:\Program Files\Leo-4.6.3-final\leo\core\leoApp.py, line 358, in creat eTkGui leoPlugins.loadOnePlugin ('tkGui',verbose=verbose) File C:\Program Files\Leo-4.6.3-final\leo\core\leoPlugins.py, line 398, in l oadOnePlugin verbose = False or verbose or g.app.config.getBool (c=None,setting='trace_plu gins') AttributeError: 'NoneType' object has no attribute 'getBool' --- Need a break for hours of testing. Any suggestion? Best regards, Teres On Sep 7, 2:01 am, Ville M. Vainio vivai...@gmail.com wrote: On Sun, Sep 6, 2009 at 8:08 PM, Teres W teres.w...@gmail.com wrote: Dear All, I've following error when execute the batch file as suggested: You have Python 3.1 installed. Please use Python 2.6 for Leo (it's not yet ported for 3.1) -- Ville M. Vainiohttp://tinyurl.com/vainio-Hide quoted text - - Show quoted text -- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
On 5 sep, 16:02, Edward K. Ream edream...@gmail.com wrote: Leo 4.6.3 final is now available at:http://sourceforge.net/project/showfiles.php?group_id=3458package_id... Leo 4.6.3 fixes a significant caching bug in Leo 4.6.2. Leo 4.6.3 also comes with an executable installer for Windows. Please report any problems immediately. Edward Hello :) I may be back to Leo after a long time I get Leo 4.6.3 and installed it from ZIP. When I launched it for the first time, I get this message (detailed form) : Traceback (most recent call last): File launchLeo.py, line 8, in module leo.core.runLeo.run() File C:\Program Files\Leo\leo\core\runLeo.py, line 88, in run fn,relFn,script = doPrePluginsInit(fileName,pymacs) File C:\Program Files\Leo\leo\core\runLeo.py, line 111, in doPrePluginsInit initApp(verbose) File C:\Program Files\Leo\leo\core\runLeo.py, line 234, in initApp g.app.setLeoID(verbose=verbose) File C:\Program Files\Leo\leo\core\leoApp.py, line 651, in setLeoID g.app.createTkGui(startup) File C:\Program Files\Leo\leo\core\leoApp.py, line 358, in createTkGui leoPlugins.loadOnePlugin ('tkGui',verbose=verbose) File C:\Program Files\Leo\leo\core\leoPlugins.py, line 398, in loadOnePlugin verbose = False or verbose or g.app.config.getBool(c=None,setting='trace_plugins') AttributeError: 'NoneType' object has no attribute 'getBool' Searching the web, I've discovered that this had occurred with some prior versions of Leo, and has been solved. Perhaps it's finally back in 4.6.3 ? I've tried 4.6.2, and the trouble wasn't there, it is this way only with 4.6.3 Like suggested by conversations I've found on the web, it was due to the missing .leo\.leoID.txt, because when I manually created it, then I saw Leo 4.6.3 starting up fine, ... but only after another later stuff was revolved (see next). Another things which has surprised me : when I was using Leo some time ago (about two years ago), it was requiring Python and TclTk. It seems that now it requires QtPy ? What make me think about it, was the new startup error messages I get on the console after I've manually created the .leoID.txt file : it was then complaining something about QtGui or something like that. So I looked for QtPy, installed it, and finally, everything was really working normally. For the little story now and far apart of the latter. I had switched to another outline editor, called CodeBrowser, which is nice, but which also has some design flaw (I know it, because I had participated in some part of it). Along of that, I also used GPS, an IDE targeting Ada. Finally, I'm still not able to find what could exactly fits my needs : GPS as no literate capabilities, but has nice refactoring features (but only for Ada). CodeBrowser does not have customization facilities but it has nice literate-with-links features (literate head lines are browsable links in CB), Leo does not have link and editing facilities like CB, but it has easy customization and generates unique ID for nodes. LOL Do you think I've driving neurotic ? It's the third time I'm coming back to Leo : the first time was prior 2000 (at this time, Leo was not using XML and it was a Windows binary), then the second time, two years ago, and he third time now :) Have to say that since the first time, I could not forget it. While to be honest, CodeBrowser was looking a bit nearer to what I was imagining at the time I was seeking for this things and faced Leo, and GPS is nearest concerning some maintenance stuffs. So I'm still looking for the one which could make me have the three things at the time (surely not GPS... I'm at least sure about that as there is no way to make it a literate environment, so I will have to integrate its refactoring and entity search tools in either CodeBrowser or Leo) Well, this was 0.1 cent story --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Re: Leo 4.6.3 released
On Sun, Sep 6, 2009 at 10:15 PM, Yannick Duchêne Hibou57 yannick_duch...@yahoo.fr wrote: lines are browsable links in CB), Leo does not have link and editing facilities like CB, but it has easy customization and generates unique ID for nodes. Depending what you mean by link capability, backlink.py plugin might provide what you want. -- Ville M. Vainio http://tinyurl.com/vainio --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups leo-editor group. To post to this group, send email to leo-editor@googlegroups.com To unsubscribe from this group, send email to leo-editor+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en -~--~~~~--~~--~--~---
Revisiting the generation of the .nsi install script
Bear with me in this long essay. I have to convince Edward to abandon code that he has just written. I do have a replacement in mind, which I describe. I also have a Leo story to tell -- one that shows that my experience using Leo has soured me on working without it! With a new scheme for generating the .nsi file just launched with the release of Leo 4.6.3, my timing is poor, but I think the generation needs to be revisited;. The version just finished greatly simplifies the maintenance of the lists of files installed and files uninstalled, but it renders maintenance of the rest of the script painfully difficult, much more difficult than was the case with the .nsi install scripts used for Leo 4.4 and earlier. I propose an approach that would preserve Edward's automated generation of lists of files and allow the maintenance of the script source code in Leo. For the sake of the reader whose interest ends with the proposed approach, let us start with that. It is straightforward. The list of File commands and the list of Delete commands that represent the files to be installed or uninstalled go in separate LeoInstallManifest.nsi and LeoDeleteManifest.nsi files; the source code for leo.nsi uses !include commands to use the NSIS compiler's preprocessor to incorporate these two files. The definitions created by the Python script are written to a LeoDefinitions.nsi file; the source code for leo.nsi uses another !include command to pull in the contents of that file. This way, we can generate LeoInstallManifest.nsi and LeoDeleteManifest.nsi and LeoDefinitions.nsi using the Python code from the Leo 4.6.3 leoDist.leo. Edward retains the automation for which he worked; because we can abandon the special-purpose Python code that writes the source code for the rest of the .nsi file; because we can abandon the one-off preprocessor written in Python; and because the leoDist.leo outline becomes more stable because the ever- changing manifests and definitions are generated by code that does not change. Developers working on the logic of the installer gain because the .nsi file lives in a Leo outline. I have already hand-tested the use of the !include command to include a LeoInstallManifest.msi file, and the NSIS compiler runs to completion on the result, so I'm confident that this is feasable. The required changes to leoDist.leo should be minimal, a few hours' work at most. Any comments? I am willing to get started on the changes, beginning with a switch to my proposed approach incorporating no changes to the installer; with that accomplished, Edward, Rob Sheppard, any other interested folk and I can start enhancing the installer itself. Now, on to my Leo story. In working on the new Leo installer script, Edward went to some trouble to automate the generation of the lists of files that are to be installed or uninstalled -- because hand-editing those lists is at best a distraction from the work he really wants to do. That makes sense to me; I hate such distractions in my own development work. I ran into many such in making changes to the logic of the installer script as that script exists in the released Leo 4.6.3. This release of the script is broken into small pieces, each of which is altered to allow for preprocessing and stored in a Python string. The code in each string is no longer exactly in NSIS installer syntax, and any changes to it must be altered so that the preprocessor produces a legal .nsi file. The script is source code, and treating it as boilerplate text in Python strings prevents the use of Leo to maintain the source code. As the script grows more complicated, that becomes a barrier to development. Here I illustrate. The changes on which I am working introduce additional logic in a number of the sections of code. In the Leo outline that contains my installer for Version 4.4-rc1 of Leo, the added logic exists in nodes that are children of the sections to which they apply. How to add that logic to the Version 4.6.3 installer? I can think of two schemes for this. According to the first, I would simply paste the longer logic in the existing strings. That quickly buries the logic, rendering the code Really Hard to Read. According to the second scheme, I would replace the relevant guts of the generator. For each Python function that required new logic, I tear out the simple string assignment and put statement, and in its place I write more functions, each of which contains a simple string assignment and put statement. I tried this second scheme. For example, in place of the putOnInit function, I produced a new putOnInit, which calls ten functions, three of which also call functions. Why is this a Leo story? It is such because I am used to using Leo to break down long sections of code into comprehensible parts, and I was doing that by hand in this code. In short, I was mimicing the Leo outline in the hand-written source code in the hope of returning the code to Leo later! I was working very hard in