[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