There’s a new pre-alpha release of Python for Series 60 available on Forum Nokia today! Since it’s finally available, I thought I’d take a chance to talk a little bit about what’s in this release, why it’s not finished (ie., a pre-alpha), and what the version numbering scheme is all about.
The first Python for Series 60 release (the 1.0) was a final, stable, tested release. It was focused primarily on bringing the Python language and standard libraries to the phones. Since then, the team has been listening to feedback and feature requests on b l o g s -, the wiki, and the Python for Series 60 discussion boards, and using this feedback to drive new API development and expanding the standard library collection. Some of these ideas were demoed at ETech and PyCon back in March, including PIM API’s (contacts and calendar), camera API’s, access to system information (like the IMEI number and free disk space), and even a new 2D graphics API for direct-screen drawing. All together this is a LOT of new functionality. But the trouble with adding all these new modules is that someone has to define the new API’s, and this shouldn’t be done in isolation. So before all these new API’s are set in stone, we’re packaging up a pre-alpha build so that everyone has a chance to give feedback and help define how this stuff should work.
It was suggested at PyCon that we setup a Python for Series 60 mailing list (hosted on python.org), which is a good idea but hasn’t been done yet. (If you’re thinking about doing this on your own, please wait just a tag longer as we’re working on an alternate solution that should end up being a little more appropriate.) But even without a project mailing list, there are a couple good ways to give feedback. First, if you like the stuff you’re seeing, blog about it. The blogoshpere has a way trickling good posts up for everyone to see, and even if it doesn’t, posts about the project typically end up on del.icio.us or technorati at some point, so we generally see them.
If you have suggestions for improving the API’s, post to the discussion boards so that we have it documented in a single place. If you’re uncomfortable with that, send me an email (<first_name> [dot] <last_name> [at] <company_name> [dot] com — I’m sure you can figure it out.)
Now, about that version number. We’re trying out a new version-number scheme. It’s nothing too exotic, but it will use an even/odd system for differentiating between preview and stable releases. It’s an ‘x.y.z’ system where ‘y’ is odd for preview/unstable/developer releases, or even for final/stable/tested releases. So, the release that came out today is 1.1.0, meaning, it’s the first preview release for the upcoming 1.2 stable release. Make sense? Like I said, it’s nothing fancy, but it gives us something to work with that actually has a little meaning behind it.
June 4th, 2005 at 12:00 am
I read in the discussion forum about 1.1.2 version.
Will 1.1.2 be released first, then 1.2?
I can’t find calendar API in 1.1.0. Why is it missing?
Overall, a great release. Thanks!
June 4th, 2005 at 7:01 pm
The discussion boards are correct. We’re up to 1.1.2 internally, which includes the Calendar API. If all goes as planned, 1.1.2 will be on Forum Nokia within a week or two.
So why is the Calendar API missing from 1.1.0? The short answer is that 1.1.0 is actually a little bit old. No reason to bother with the details, but we were a little delayed getting 1.1.0 out the door. 1.1.2 will be a better reflection of where the project is at. (We’ll skip 1.1.1 since 1.1.2 is just about ready.) By the new naming convention, 1.1.2 will also be a pre-alpha (or preview) release.
Glad you’re enjoying the release! There’s tons of new stuff in there.
June 5th, 2005 at 2:57 pm
Finally!Very cool!
I don’t have so much time to play with the pre-alpha but I will do very soon!
It’s very interesting.
Do you know if it is possible to drawImage on the canvas?
will it be possible to create a kind of (sourcecode) protection for the python apps?
thanks!
June 6th, 2005 at 10:45 am
Drawing images to the canvas should be in 1.1.2. For 1.1.0 the canvas only supports drawing primitives.
There is nothing specific in the release for source- or byte-code protection, nor am I aware of a reliable, pure-Python solution for this. However, this may end up being solved by the Platform instead of Python. The Forum Nokia document “Series 60 Platform 3rd Edition: What’s New for Developers” has a section on “data caging” that might be of interest. Of course, 3rd Edition isn’t available yet.
June 7th, 2005 at 1:04 am
is there API for messaging, such reading inbox, delete message, etc
June 7th, 2005 at 10:59 am
Sending SMS, yes. Reading the inbox and deleting messages, no. There are Symbian C++ API’s for this, so it’s possible to write a Python extension to do it, but the Nokia release doesn’t have it yet. I have read some posts on the discussion boards about manually scanning the inbox directory structure for messages using Python code. Not ideal, but it works.
June 7th, 2005 at 4:21 pm
Hi Erik,
PreAlpha_Phone_2ndEd_Python_v1.1.0.SIS (available on the website) for 2nd Ed devices does not contain the camera module! Instead, users have to install the PythonForSeries60.SIS in PreAlpha_SDK_2ndEd_Python_v1.1.0.zip to get it working.
Cheers,
Sandeep
June 8th, 2005 at 9:25 am
Hmm.. not good. Thanks for letting me know Sandeep!
[update]
I looked into this, and you’re right. The link to download the phone installer is pointing at the wrong file (you’re actually getting the 1st Edition installer instead of the 2nd Edition one — and the camera module doesn’t work on 1st Edition.) The download link should be fixed by tomorrow. Thanks again!
September 23rd, 2005 at 6:33 am
Is it possible to call appuifw functions such as note etc from an embedded CSPyInterpreter object. I am trying the following but it does not work:
CSPyInterpreter* py = CSPyInterpreter::NewInterpreterL();
CleanupStack::PushL(py);
TBuf8 outputBuffer = _L8(”c:\\system\\apps\\python\\filebrowser.py”);
char *argv[1];
int argc;
argv[0] = (char*)outputBuffer.PtrZ();
argc = 1;
py->RunScript(argc, argv);
//py->iStdO = &PythonOutput;
CleanupStack::PopAndDestroy(); //CAppConfig, test2
I also tried putting the above code in an app. That did not work either. How do I launch UI based scripts within a controlled environment (where I can set variables etc….)
if any one has any clue pls mail me at rishi dot israni at gmail dot com.