Wily Python Programmers Manual

Summary

Create a Connection, use it to create and manipulate Wily windows.

See pythonpaper.html for a discussion of the design. (Unfortunately out of date).

Creating a Connection

import wily
con = wily.Connection()

methods of a Connection object

list()
Returns the names and IDs of all open windows. The values are returned in one big string, with names and IDs separated by a tab, and each (name,id) pair on its own line.
listing = con.list()
lines = string.split(listing, '\n')
winid = {}
for line in lines[:-1]:
	[name,id] = string.split(line, '\t')
	winid[name] = string.atoi(id)
... will give you a dictionary mapping names to numeric ids.
win(name:string, isBackedUp:integer)
Returns an integer window identifier, to be used for later operations on the window
event()
returns an event tuple (w, t, r0, r1, s), whose fields are:
w
window identifier
t
event type
r0, r1
affected range
s
string
The meaning (if any) of the values of r0, r1 and s depend on the event type 't'
eventwouldblock()
If eventwouldblock() returns true, calling event() might have to wait. If eventwouldblock() returns false, calling event() would return immediately because an event is already queued up and waiting.
bounce(tuple)
Called with an event tuple as returned by event(). Returns None. Used for returning an event we want Wily to handle instead of us.
attach(w:integer, mask:integer)
'w' is a window identifier as obtained by new() or list(). 'mask' is a bitmask of event types. Sets the mask of events to be sent to us.
setname(w:integer, s:string)
Set w's name to 's'
settools(w:integer, s:string)
Set w's tools to 's'
read(w:integer, from:integer, to:integer)
returns a (UTF) string
replace(w:integer, from:integer, to:integer, s:string)
replace the text in 'w' from 'from' to 'to' with 's'
run(w:integer, s:string)
has the same effect as sweeping 's' with B2 in window 'w'
goto(w:integer, from:long, to:long, s:string, flag:integer)
has the same effect as sweeping 's' with B3 in window 'w', and starting any search at range(from,to), except that we only warp and select text if 'flag' is set.
Returns a tuple (w:integer, from:long, to:long), which represents the window and selection that was opened.

Constants

GOTO, EXEC, DESTROY and REPLACE are event bitmask values, useful for comparing to the event type returned by event(), and for setting the bitmask in attach().
gary@cs.su.oz.au