ANN: SPE 0.8.4.c Python IDE editor

As SPE was being developed for more than a year in subversion, I thought it is time for a release again. This is a major bugfix release. It ships updated plugins and also some new features, especially if you use Linux or Blender, for which Witold did a great job. I would also like to thank in particular the webhost Zindep.com for their support and patience. New features: * new versions of WinPdb debugger, PyChecker, wxGlade & XRCed gui designer * clear output pane * support for wxPython 2.8 * linux support for nautilus, gnome-terminal, konqueror, konsole, thunar * improved blender support up to 2.45 (by Witold) Fixes: * sidebar sash more tolerant * show path in title (linux) * run with filename with spaces * nicer debug dialog box * kill process fix * notebook * insert signature * numpad keys (by isolationism) * find tab with nonexisting files * add environment to SPE.py (linux) * better warning for documentation for unsaved files * better handling of new empty files * many more… Installing on Debian(unstable) and Ubuntu Hardy: sudo apt-get install spe Installing on all other platforms: 1. Download either the zip or tar ball from here 2. Unzip it where you want and do NOT rename the _spe folder 3. Start SPE from within the _spe folder with “python SPE.py” About SPE: SPE is a python IDE with auto-indentation, auto completion, call tips, syntax coloring, uml viewer, syntax highlighting, class explorer, source index, auto todo list, sticky notes, integrated pycrust shell, python file browser, recent file browser, drag&drop, context help, … Special is its blender support with a blender 3d object browser and its ability to run interactively inside blender. Spe integrates with XRCed (gui designer) and ships with wxGlade (gui designer), PyChecker (source code doctor), Kiki (regular expression console) and WinPdb (remote, multi-threaded debugger). The development of SPE is driven by its donations. Anyone who donates can ask for an nice pdf version of the manual without ads (74 pages). For more info go to http://pythonide.stani.be

Hmm, first to vote… and I voted both linux and windows!

Linux is my platform of choice, but I often have to use windows because of other peoples toolchains (right now working on a project that uses Maya and a whole load of custom .net reliant plugins) I used SPE to help write plugins to pre condition data in blender before export and also with maya on windows to post process data using python in maya.

Funnily enough on windows the main script window has recently become very aliased! don’t have a clue why!

The tutorial, describing use of SPE inside Blender is published at Bledner Wiki.

SPE works pretty nicely with blender. Pity about the way wxWindows deals with the message pump (I guess its unavoidable though).
Is there why “load into blender” would do nothing, though? Everything else works, even attaching the debugger, just the Load Into Blender button does nothing… it does not add it to the drop down list of referenced blocks. But its still fine, I just manually load it.

Vek,

Blend3d appears to have the same problem and Witold is helping him over on this thread(http://blenderartists.org/forum/showthread.php?t=116297). I am wondering if there was a change between the earlier svn versions and the current svn/final version of SPE that is causing this. Why don’t you post your OS, blender, python and wxpython versions at the other thread to compare with blend3d.

Stani:
Thank you for all of your EXCELLENT work on SPE. This is a wonderful program! Keep up the excellent work! And a big thanks to Witold for the integration work with blender and for the tutorial that we have at the wiki which he references above!

Thanks Guys!!!

Jeff

Thanks, Jeff, that you have noticed this coincidence.
Here is a quick patch for the SPE version 0.8.4.c from 14th February 2008:

  1. Open the Child.py file. It is part of SPE, located in the _spe directory. (You can use SPE to do it!)
    Actually it has modification date: 14th February 2008, time: 01:06, and size: 59 464 bytes.

  2. Find in definition of Panel class a method named load_in_blender. It begins like this:


def load_in_blender(self):

“”“Load in blender”""

if self.confirmSave():[INDENT]return
if self.isNew(): return
[/INDENT]

if self.parentPanel.checkBlender():[INDENT]child = self.app.childActive

answer = child.confirmSave(‘Only saved contents will be loaded in Blender.’)

if answer:[INDENT]import Blender

… further code …

[/INDENT][/INDENT]
3. Comment following lines: (636, 637, 638)

def load_in_blender(self):

“”“Load in blender”""

#if self.confirmSave(): !commented line[INDENT]#return !commented line
#if self.isNew(): return !commented line
[/INDENT]

if self.parentPanel.checkBlender():[INDENT]child = self.app.childActive

answer = child.confirmSave(‘Only saved contents will be loaded in Blender.’)

if answer:[INDENT]import Blender

… further code …

[/INDENT][/INDENT]4. Save the updated Child.py file.

That’s all. I hope, that Stani will update the version he published, soon

Witold

Thanks Witold,
Your patch works fine for me.
David

Hi Witold and everyone,
Thanks for reporting this bug. Luckily Witold filed a bug in SPE’s bug tracker, otherwise I would not have noticed!! These lines were added in case you start SPE without previous files open. You should have in this case only an empty unnamed. If you press ‘Load in Blender’, I am afraid this patch generates an error and that is why these lines should be changed in something which works (I agree currently it doesn’t) and why they can not be just commented out.
Witold can you propose a new patch which can handle this special situation. (The reason was in order to admit the new version to Ubuntu, the Ubuntu MOTU release team tested SPE in all possible situations and noticed that SPE had errors with empty files. This of course doesn’t make sense, but having errors also not. Maybe I tried to solve it too quickly.)
Can you do it in the coming days (before the 3rd of march), than I can include it in the next version of SPE. Please everyone else, help Witold with testing.
I was wondering: Is the SPE Blender Browser (in the bottom pane) up to date with all the latest Blender internals/objects? Could otherwise someone propose a patch for tabs/Blender.py?
Thanks a lot in advance!
Stani

According your suggestion, I have updated the Panel.load_in_Blender and Panel.reference_in_Blender functions. I have tested them on a new (blank) file situation. I have fixed some improper behavior, and now they work properly on an unnamed (new) file.
The modified Child.py file was sent by the e-mail, as usual.
About the Blender objects in Blender tab: I have updated their list on October, 2007. In that time I left there only these items, that return their collections in the Blender API through the Get() function. I have looked at the Blender API reference, and actually that is all, what can be shown. At this moment they are more less up to date
Witold

Don’t you just love these threads.

It does not even mention what SPE is?

Ok, I’ll ask, what is SPE?

Ok, I’ll ask, what is SPE?
Stani’s Python editor. It integrates particularly well with Blender and offers a wide range of features. See http://pythonide.stani.be/ for more information.

Atom,
As previously stated it is a full featured python IDE editor that works wonderfully with blender.
It also adds a full fledged python debugger (Winpdb) to your programming article. There is a tutorial on the blender wiki (http://wiki.blender.org/index.php/Tutorials/Using_SPE_with_Blender) for using (and installing) both SPE and Winpdb from within Blender.

Cheers.

Jeff

Hi Witold,
My router broke down and I am forced now to use a crappy wireless internet connection. Thanks very much for your patch, it will be in the next version of SPE which will be released normally 6th of march the latest. I will update the bug tracker, when I have better internet.
Thanks a lot,
Stani

Hi stani
Is there a mirror for downloading newtest SPE?
Because I can’t access http://pythonide.stani.be/
thanks

I just downloaded 0.8.4.c and it did not work on my machine.
I open the spe.blend file and press ALT-P and it crashes blender on windows 2.45 and 2.45.12SVN

I applied the fix of Witold in subversion. Please test if you know how to use subversion. It will be released soon as 0.8.4.d

I’m trying to debug the collada exporter script in blender but I’ve followed these guides and cannot attach!?!

If I launch winpdb form within Blender it says it is “attaching” and then says “not attached”.

I’ve tried putting:

import rpdb2; rpdb2.start_embedded_debugger("password")

…at the beginning of the script and it just locks my machine up unresponsively even if I have already been into winpdb and set the password to “password”, I cannot even alt-tab to winpdb to get it to try to attach.

Is this a bug that anyone else gets? I’m not exactly comfortable with debugging with something that hard-locks my pc so easily!

Have just removed winpdb and SPE and checked them out from SVN.

Have now got winpdb 1.3.6 and this is the output I get when attaching:

*** Attaching to debuggee…
*** Failed to attach to ‘<string>’.
*** Command returned the following error:
*** <class ‘socket.timeout’>, timed out.
*** Please check stderr for stack trace and report to support.

edit: I’ve now found that it was timing out after 5 minutes but if I try again or change the order I open winpdb up, it locks up permanently.

Is there some sequence I am missing? Load blender, load script into text editor, add debugger launch code as earlier in the thread, run winpdb and configure the password and open the attach window, run blender script - lockup for 5 mins then disconnected. Any attempt to retry causes a permanent lockup.

Being a newbie to blender scripting I follow SPE Tuttrorial in BlenderWiki.
But I have the same problem - winpdb can’t find script when I start debugger from Blender.
Here is command line output:

*** NEW: Use CTRL-N for auto completion in the following commands: launch,
*** eval and exec.
*** Attaching to debuggee…
*** Failed to attach to ‘<string>’.
*** Failed to find script.

What should i do to fix it?
Thank you for your help in advance!