[PySide] The Signature Module for PySide2
Christian Tismer
tismer at stackless.com
Sat Sep 23 16:05:37 CEST 2017
Hi Zhao,
interesting. I looked into PyQt5 and found out that
- __text__signature__ is not used at all
- __doc__ contains what the help() shows.
That means I can use my signature to generate similar doc strings
quite easily.
The feature is a bit more than the help, because signature objects
are real objects, not just strings. I think people can do much
more with that than just reading out the signature.
Internally, we are going to base a huge test suite upon this that
goes thru every function about exactness, completeness, crashes,
correct arguments and the like, and we will maintain a registry that
holds this info.
I am starting very small to build this registry by hand and store
for instance
"you cannot create a QPixmap if you don't have a QApplication"
This is an area where both PySide2 and PyQt5 are simply crashing,
today, because Qt is not aware that it is used in interactive
environments.
To fix problems like these, I developed the signature package.
Thanks for your idea -- Chris
On 23.09.17 04:36, Zhao Lee wrote:
> Sorry, I just feel the feature is just like what help() function do in
> Python
> https://docs.python.org/3/library/functions.html#help
>
> an example with PyQt5
>>>> from PyQt5.QtWidgets import QApplication
>>>> help(QApplication.startTimer)
> Help on built-in function startTimer:
>
> startTimer(...)
> startTimer(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) -> int
>
>>>>
>
>
> 在2017年09月22 16时42分, "Christian Tismer"<tismer at stackless.com>写道:
>
>
> Hi,
>
> please re-submit your reply in a readable way.
> I could read it locally, but the mailing list does not
> have a readable answer from you, just my copied text.
>
> Can you please come up with more than just "why not?"?
> I need a proposal how the help should look like.
>
> Thanks in advance -- Chris
>
>
> On 22.09.17 07:07, Zhao Lee wrote:
> > why not?
> >>>> help(PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors)
> >>>> help(PySide2.QtWidgets.QGraphicsAnchorLayout)
> >
> >
> >
> > 在2017年09月21 21时04分, "Christian Tismer"<tismer at stackless.com
> <mailto:tismer at stackless.com>>写道:
> >
> >
> > Hi friends,
> >
> > there is the new signature module for PySide2.
> > It adds the __signature__ attribute to all PySide2
> > functions and constructors.
> >
> > Example usage:
> >
> > >>>
> PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors.__signature__
> > >>> PySide2.QtWidgets.QGraphicsAnchorLayout.__signature__
> >
> > will print all annotations, defaults and return values.
> >
> > The feature supports Python 2.7 and Python 3.4 and up.
> > See further info at
> >
> > https://bugreports.qt.io/browse/PYSIDE-510
> >
> >
> https://github.com/pyside/pyside2-setup/blob/5.6/sources/shiboken2/libshiboken/signature.cpp
> >
> >
> https://github.com/pyside/pyside2-setup/blob/5.6/sources/shiboken2/libshiboken/signature.cpp
> >
> > Cheers -- Chris
> >
> > --
> > Christian Tismer :^) tismer at stackless.com
> <mailto:tismer at stackless.com>
> > <mailto:tismer at stackless.com <mailto:tismer at stackless.com>>
> > Software Consulting : http://www.stackless.com/
> > Karl-Liebknecht-Str. 121 : https://github.com/PySide
> > 14482 Potsdam : GPG key -> 0xFB7BEE0E
> > phone +49 173 24 18 776 fax +49 (30) 700143-0023
> >
> >
> >
> >
> >
> >
> >
>
>
> --
> Christian Tismer :^) tismer at stackless.com
> <mailto:tismer at stackless.com>
> Software Consulting : http://www.stackless.com/
> Karl-Liebknecht-Str. 121 : https://github.com/PySide
> 14482 Potsdam : GPG key -> 0xFB7BEE0E
> phone +49 173 24 18 776 fax +49 (30) 700143-0023
>
>
>
>
>
--
Christian Tismer :^) tismer at stackless.com
Software Consulting : http://www.stackless.com/
Karl-Liebknecht-Str. 121 : https://github.com/PySide
14482 Potsdam : GPG key -> 0xFB7BEE0E
phone +49 173 24 18 776 fax +49 (30) 700143-0023
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 522 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20170923/6d4451d1/attachment.sig>
More information about the PySide
mailing list