[PyKDE] signatures for qt-classes?

Gerard Vermeulen gvermeul at grenoble.cnrs.fr
Mon Sep 15 09:13:01 BST 2003


On Sun, 14 Sep 2003 12:57:08 -0400
Gordon Tyler <gordon at doxxx.net> wrote:

> Phil Thompson wrote:
> 
> > On Sunday 14 September 2003 10:51 am, holger krekel wrote:
> 
> >>However, i am missing two things, mainly docstrings and
> >>signature information.  While i can imagine that providing
> >>docstrings is a major task i wonder if it's possible to
> >>maintain a more telling signature than '*args'.  I really like
> >>to learn libraries from the cmdline (with rlcompleter2-completion)
> >>and i think i am not alone.
> >>
> >>Or is this "uncurable" with current binding-technologies?
> > 
> > 
> > rlcompleter works fine with PyQt as far as I know.
> 
> I think the problem is more that there are no docstrings in the PyQt 
> bindings. I was actually wondering myself whether it would be possible 
> to automatically generate docstrings based on the docs in the C++ comments?
> 
Or generate part of the doc-strings automatically, for instance

>>> print filter.__doc__
filter(function or None, sequence) -> list, tuple, or string

Return those items of sequence for which function(item) is true.  If
function is None, return the items that are true.  If sequence is a tuple
or string, return the same type, else return a list.
>>>

here the first line is used by Idle as a tooltip hint (this is a feature which
seems to be missing from Eric-3.2).

Such first lines could be automatically generated by sip; so a class declaration

class QwtCompass: QwtDial
{ 
    QwtCompass(QWidget * /TransferThis/ = 0, const char * = 0);
    void setRose(QwtCompassRose * /Transfer/);
    QwtCompassRose *rose();
    QMap<double, QString> &labelMap();
    void setLabelMap(const QMap<double, QString> &);
}

would give the doc-strings:
    """__init__(self[, QWidget[, string]])"""
    """setRose(self, QwtCompassRose)"""
    """rose(self) -> QwtCompaseRose"""
    """labelMap(self) -> dict"""
    """setLabel(self, dict)"""

Of course there remains the problem of calls with more than 1 function signature.

This could be supplemented with a directive

%DocTail
Return those items of sequence for which function(item) is true.  If
function is None, return the items that are true.  If sequence is a tuple
or string, return the same type, else return a list.
%End

to supplement the documentation for the really courageous (or crazy) library
wrappers.

Gerard




More information about the PyQt mailing list