summaryrefslogtreecommitdiffstats
path: root/Doc/mac/scripting.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/mac/scripting.tex')
-rw-r--r--Doc/mac/scripting.tex101
1 files changed, 0 insertions, 101 deletions
diff --git a/Doc/mac/scripting.tex b/Doc/mac/scripting.tex
deleted file mode 100644
index 5ec4978..0000000
--- a/Doc/mac/scripting.tex
+++ /dev/null
@@ -1,101 +0,0 @@
-\chapter{MacPython OSA Modules \label{scripting}}
-
-This chapter describes the current implementation of the Open Scripting
-Architecure (OSA, also commonly referred to as AppleScript) for Python, allowing
-you to control scriptable applications from your Python program,
-and with a fairly pythonic interface. Development on this set of modules
-has stopped, and a replacement is expected for Python 2.5.
-
-For a description of the various components of AppleScript and OSA, and
-to get an understanding of the architecture and terminology, you should
-read Apple's documentation. The "Applescript Language Guide" explains
-the conceptual model and the terminology, and documents the standard
-suite. The "Open Scripting Architecture" document explains how to use
-OSA from an application programmers point of view. In the Apple Help
-Viewer these books are located in the Developer Documentation, Core
-Technologies section.
-
-
-As an example of scripting an application, the following piece of
-AppleScript will get the name of the frontmost \program{Finder} window
-and print it:
-
-\begin{verbatim}
-tell application "Finder"
- get name of window 1
-end tell
-\end{verbatim}
-
-In Python, the following code fragment will do the same:
-
-\begin{verbatim}
-import Finder
-
-f = Finder.Finder()
-print f.get(f.window(1).name)
-\end{verbatim}
-
-As distributed the Python library includes packages that implement the
-standard suites, plus packages that interface to a small number of
-common applications.
-
-To send AppleEvents to an application you must first create the Python
-package interfacing to the terminology of the application (what
-\program{Script Editor} calls the "Dictionary"). This can be done from
-within the \program{PythonIDE} or by running the
-\file{gensuitemodule.py} module as a standalone program from the command
-line.
-
-The generated output is a package with a number of modules, one for
-every suite used in the program plus an \module{__init__} module to glue
-it all together. The Python inheritance graph follows the AppleScript
-inheritance graph, so if a program's dictionary specifies that it
-includes support for the Standard Suite, but extends one or two verbs
-with extra arguments then the output suite will contain a module
-\module{Standard_Suite} that imports and re-exports everything from
-\module{StdSuites.Standard_Suite} but overrides the methods that have
-extra functionality. The output of \module{gensuitemodule} is pretty
-readable, and contains the documentation that was in the original
-AppleScript dictionary in Python docstrings, so reading it is a good
-source of documentation.
-
-The output package implements a main class with the same name as the
-package which contains all the AppleScript verbs as methods, with the
-direct object as the first argument and all optional parameters as
-keyword arguments. AppleScript classes are also implemented as Python
-classes, as are comparisons and all the other thingies.
-
-The main
-Python class implementing the verbs also allows access to the properties
-and elements declared in the AppleScript class "application". In the
-current release that is as far as the object orientation goes, so
-in the example above we need to use
-\code{f.get(f.window(1).name)} instead of the more Pythonic
-\code{f.window(1).name.get()}.
-
-
-If an AppleScript identifier is not a Python identifier the name is
-mangled according to a small number of rules:
-\begin{itemize}
- \item spaces are replaced with underscores
- \item other non-alphanumeric characters are replaced with
- \code{_xx_} where \code{xx} is the hexadecimal character value
- \item any Python reserved word gets an underscore appended
-\end{itemize}
-
-Python also has support for creating scriptable applications
-in Python, but
-The following modules are relevant to MacPython AppleScript support:
-
-\localmoduletable
-
-In addition, support modules have been pre-generated for
-\module{Finder}, \module{Terminal}, \module{Explorer},
-\module{Netscape}, \module{CodeWarrior}, \module{SystemEvents} and
-\module{StdSuites}.
-
-\input{libgensuitemodule}
-\input{libaetools}
-\input{libaepack}
-\input{libaetypes}
-\input{libminiae}