A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2001-June/015464.html below:

[Python-Dev] example of module interface to a varargs function?

[Python-Dev] example of module interface to a varargs function?Skip Montanaro skip@pobox.com (Skip Montanaro)
Tue, 19 Jun 2001 12:44:47 -0500
I am trying to add a module interface to some of the bits missing from
PyGtk2.  Some functions I'm interested in have varargs signatures, e.g.:

    void
    gtk_binding_entry_add_signal (GtkBindingSet  *binding_set,
				  guint           keyval,
				  guint           modifiers,
				  const gchar    *signal_name,
				  guint           n_args,
				  ...)

>From Python, this would be called something like

    bs = gtk.GtkBindingSet("somename")
    bs.add_signal(gtk.GDK.K_Up, 0, "scroll_vertical",
                  gtk.TYPE_ENUM, gtk.SCROLL_STEP_BACKWARD,
		  gtk.TYPE_FLOAT, 0.0)

with n_args inferred from the number of arguments following the
"scroll_vertical" parameter.  I'm a bit stumped how to handle this with the
PyArg_Parse* routines.  (I'll worry about calling
gtk_binding_entry_add_signal after I figure out how to marshal the args.)
The only place in the standard modules I saw that processed a truly
arbitrary number of arguments is the struct_pack method of the struct
module, and it doesn't use PyArg_Parse* to process them.  Can someone point
me to an example of marshalling arbitrary numbers of arguments then calling
a varargs function?

Thx,

Skip



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4