Python API: Current State?

Hi All,

I’ve been looking through the forum for about an hour trying to find out the current (or at least close to current) state of the Blender Python API.

a. Is it stable?
b. Is it complete?
c. Which Blender release will mark (or HAS marked) the ‘final’ version of the Python API we’ll be using for the next few years?

Would it be possible for some kind soul (developer or otherwise) to start a thread that then might be made sticky in this section of the forum, something to keep us all up-to-date?

Is it stable?
It is stable as long as you don’t crash it. Avoid the Gotchas pitfalls here.

Is it complete?
No, it will never be complete the developers are always changing the base code. My last AddOn, Bleeble, was stable for about 3 months then it has fallen out of scope and no longer functions. So any code you write may have a similar lifetime. About 3 months before a re-write will be needed.
NOTE: You can always run your code on old versions of Blender when needed but you may not be able to leverage new features.

Which Blender release…
There will never be a final version of Blender.

Hi Atom,

Thanks for the information and my apologies for taking so long to reply.

Having only started using Blender after the 2.5 release, I’m not familiar with development history.

In regards to your reply about the final-ish version of the Python API:
Was this the case when 2.4x was current? I’m just trying to get some idea of how much work I’d be facing if I learn the API, write some code, and then have to “keep up” with the changes.
I’m not so much concerned about taking new features into account; I just want to find out if the API hooks to features I do include will change.

For instance, Rigify did break a couple of times between 2.54 and 2.59, but I don’t think it broke from 2.59 to 2.62 which makes me think the API calls Rigify uses didn’t really change and may now be pretty much locked in except for minor tweaks.

Do you know if this is the case? Or is it just luck that nothing changed this time around?

-Ron T.

The api is (mostly) stable where there shouldn’t be any changes other than bug fixing and new stuff here and there, the 2.5x time period saw some major changes that shouldn’t happen again since the whole thing has already been ‘rewritten’.

Having said that, blender is a moving target so scripts will probably need to be updated now and again to work with the latest and greatest but I wouldn’t worry too much about having stuff break daily/weekly again. Really depends on where the dev activity is and how the new stuff works compared to the old.

It should also be noted that the py-api has some really, really rough edges that are in need of some serious fixing so when someone gets around to those the hacky code to work around these might not work anymore.

I’ve found this page helpful when trying to track down if something in the API has changed. It’s a huge document, so I usually start with the bottom since that’s the more recent changes.
http://www.blender.org/documentation/blender_python_api_2_62_3/change_log.html

The great thing about the API is that is constantly evolving , the worse thing about the API is that is constantly evolving…

And no that wont be changing any time soon.