[Pythonmac-SIG] AppleEvents in MacPython 2.3?

Stonewall Ballard sb.list at sb.org
Mon Aug 11 16:25:37 EDT 2003


On 8/11/03 2:58 PM, "Paul Berkowitz" <berkowit at silcom.com> wrote:

> On 8/11/03 11:13 AM, "Stonewall Ballard" <sb.list at sb.org> wrote:
> 
>> I spent many hours yesterday trying to figure out how to use the AppleScript
>> support that comes with MacPython 2.3, and wasn't able to make much
>> progress. Even a simple script like this:
>> 
>> tell application "TextEdit"
>>     get word 1 of document 1
>> end tell
> 
> No, this shouldn't really work in AppleScript either. There must be some
> sort of coercion going on. 'document' class in TextEdit has no 'word'
> element, nor does the AppleScript reserved 'word' know anything other than
> strings and Unicode text. (TextEdit, like most of the new Cocoa Apple apps,
> had its scripting implemented by people who knew next to nothing about
> AppleScript and did not study well-thought-out AppleScript dictionaries such
> as Tex-Edit Plus or BBEdit (sticking to text editors).)
> 
> The correct script is:
> 
> tell application "TextEdit"
>   get word 1 of text of document 1
> end tell
> 
> 
> 'text' is a property of 'document' and 'word' is an element of 'text'.
> 
> Try this version using Python - in fact how exactly are you trying to do
> AppleScript in Python? Or maybe stick with well-behaved apps to start
> with...

I guess this is just broken. I tried:

import TextEdit
app = TextEdit.TextEdit()
# why is this necessary?
app._start()
app.get( app.document(1).text.word(1) )

and it failed. with
AttributeError: _Prop_text instance has no attribute 'word'.

I can believe that this is just a messed up AS dictionary in TextEdit. The
object model shown by ScriptDebugger indicates that something in the
inheritance tree in TextEdit is broken.

Thanks for your help.

 - Stoney




More information about the Pythonmac-SIG mailing list