(Mac-specific) AppScript bug

George van den Driessche grebe at bigfoot.com
Wed Dec 22 20:46:41 EST 2004


(This is really for Hamish Sanderson, I think, but I can't find an 
e-mail address for him.)

On OS X 10.3.7, with XCode 1.5 and all the latest AppScript packages 
installed, writing this:

  a = appscript.app( 'XCode.app' )

causes a crash in terminology.py:

/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/appscript/terminology.py 
in parse(self, path)
    102                 osat.parse(path, self)
    103                 for code in self._elements.values():
--> 104                         name = self._pluralClassNames.get(code, 
self._singularClassNames[code])
    105                         self.referencebycode[code] = (kElement, name)
    106                         self.referencebyname[name] = (kElement, code)

KeyError: '****'

code is a FourCC identifying some part of XCode's script interface. You 
would imagine that every such part would have either a plural name or a 
singular name, but in this case somehow the FourCC '****' has ended up 
in self._elements and it has neither. Any idea how that might arise? I 
didn't investigate the origins of the FourCC, which looks like a 
placeholder or error.

 If you change the marked line (104) to read:

  			name = self._pluralClassNames.get(code, 
self._singularClassNames.get(code, '____'+code))

then the rest of the terminology seems to run fine, and you just end up 
with one bogus entry called '____****' in the app's attributes.

Cheers,
George




More information about the Python-list mailing list