Thursday, October 17, 2002


PyObjC news

This'll be brief as I have a lot to do today. A lot has happened.

  • A debate has been in progress regarding naming conventions in the PythonMac SIG. I.e. how should ObjC method names be mapped into Python. Currently, the colons in the selector (i.e. setObject:forKey:) are turned into underbars (i.e. setObject_forKey_) and the name-with-underbars is used as a function. The full thread starts with this message.
  • Ronald patched the exception handling code in the pyobjc module such that exceptions are bridged transparently. That is, if an NSException is raised from the Python code (or from an ObjC method that the Python code invoked), it will be converted to/from a PyException as the transition is made between the two languages as it is passed up the call stack.
  • I fixed a bunch of bugs and added some features in the Project Builder Python Project Template. I haven't had time to update the disk image. You will have to download it from the cvs repository directly. If you are actively working with PyObjC, I recommend building from CVS because the version in CVS has a number of improvements over the version that was last pseudo-released (real release soon).
  • Ronald and I have been maintaining the ChangeLog of the pyobjc as we commit changes. It is a very good way to keep track of how the module is evolving.
  • I wrote a python function propertyListFromPythonCollection() to convert between Python collections and Obj-C collections [property lists]. It can take a helper function to help with the conversion of types that may be found in the Python collection that are specific to the context within which conversion takes place.

Finally, I have been using the PyObjC bridge in a relatively major application that is destined to support a commercial product. In particular, I'm building a fully featured Cocoa client that uses Python to communicate with a server. By moving to Python, I have eliminated roughly 70% of the client/server code on the client side.

In other words, I'm eating my own dog food. If I wasn't, I wouldn't have the time to contribute to PyObjC...
12:03:56 PM