pyguis

Langue: en

Version: GUIS widget server (mandriva - 01/05/08)

Section: 1 (Commandes utilisateur)

NAME

pyguis - a Python GUI widget server

ruguis - a Ruby GUI widget server

pyguis-scripter - to run a script

ruguis-scripter - to run a script

SYNOPSIS

pyguis [-i inputchan] [-o outputchan] [-s initialscript] [-p pipecommand] #without any input or output chan [-h] #help [-L logfile] [ ..other gtk arguments.. ] [-T] #show trace window [-D] #debug (huge) output -if not disabled at compile time

ruguis ... #like above for Ruby

pyguis-scripter initialscript [-i inputchan] [-o outputchan] [-p pipecommand] [-T] [-D] [ ..other gtk arguments.. ]

ruguis-scripter #like above for Ruby

DESCRIPTION

pyguis is a GTK2 graphic user interface "server" which interpret requests (terminated by a double-newline or a formfeed) in Python and send replies to an applications. the guis Python module provides the primitives to exchange with the client application, eg send replies, etc..; an initial Python script may be used to initialise pyguis (eg define functions, make widgets, ...). pyguis requires the pygtk (>= 1.99.18) Python binding to GTK2.

ruguis is an experimental port to Ruby, using the Ruby-Gnome2 Ruby binding to GTK2.

OPTIONS

-i input channel
Gets input Python requests (terminated by double-newline or formfeed) from this channel. A channel is a file name (usually a FIFO), or a file descriptor number (if it contains only digits). So -i /path/to/fifo get inputs from the file /path/to/fifo while -i 0 read input from stdin (fd0). If the input channel is a single dash i.e. - then stdin is taken as the input channel. Don't use -i when giving a pipe command thru -p
-s initial script
Make the Python interpreter load the initial script file. If the first argument (argv[0]) ends with -scripter then the second argument is the initial script. Hence, pyguis scripts might start with the magic line #! /usr/bin/env pyguis-scripter provided that pyguis-scripter exist in your path (e.g. as a symbolic link to pyguis).
-o output channel
Send (newline terminated) output replied to this channel. A channel is a file name (usually a FIFO), or a file descriptor number (if it contains only digits). So -o /path/to/fifo send output to file /path/to/fifo while -o 1 send output to stdout (fd1). Don't use -o when giving a pipe command thru -p, and don't send output to stderr. If the output channel is a single dash i.e. - then stdout is taken as the output channel.
-p piped command
Fork the specified command and read python requests from its stdout and send replies to its stdin. (Don't use this option with -i or -o). If the command name contain no spaces, it is just forked and execvp(3)-ed, otherwise a shell (your $SHELL or else /bin/sh) is forked (with -c) to execute it.
-T
Open a window for tracing the protocol (both requests & replies). You can enable or disable tracing (and debugging messages) thru menus. The GGUIS_TRACE environment variable may also be used (set it to 1 or clear it to 0).
-D
Output lots of debug information on stderr. Debug may be disabled at compile time thru the -DNDEBUG compile flag. The GGUIS_DEBUG environment variable may also be used (set it to 1 or clear it to 0)
-L logfile
Write to the given logfile every request just before it is interpreted (and flush the logfile at every request).
-v
version info
-h
help message
Usual GTK arguments are also accepted.

DETAILS

See pygtk and GTK documentation for GTK2 and it bindings in Python. This program should probably be compiled and used without any thread support in Python (or GTK).

This program add a small guis module to Python, which provides notably the raw_send primitive (which sends it argument -a string- back thru the output channel). The to_send primitive convert Python strings and numbers to a sendable representation, or try to use a to_send attribute or method otherwise. The end_of_input_hook primitive gets or sets the callable hook (called at end of input). The end_timeout primitives gets or sets the end timeout (in milliseconds) - delay after which pyguis exits after end of input.

There are no default for input or output channels. You always need to specify both -i and -o (in slave mode, when the application start pyguis) or the -p piped command (in master mode, when pyguis starts your application).

An experimental port to Ruby is available since version 1.3; Use the ruguis command or ruguis-scripter trick.

SEE ALSO

python(1), the python site on http://www.python.org/ the GTK site on http://www.gtk.org/ and the pygtk page on http://www.daa.com.au/~james/pygtk/ and look for updates on pyguis either on http://freshmeat.net/projects/guis or on http://starynkevitch.net/Basile/guisintro.html

ruby(1), the ruby site on http://www.ruby-lang.org/ and the Gnome2 (hence Gtk2) binding on http://ruby-gnome2.sourceforge.jp/

AUTHOR

Basile STARYNKEVITCH wrote guis and this man page. pyguis is free opensource software under Gnu GPL license. This man page can be reused freely. Please send comments, patches, suggestions, by email to <basile@starynkevitch.net> mentioning Guis in the subject.