[PySide] The Signature Module for PySide2
Christian Tismer
tismer at stackless.com
Sun Sep 24 17:10:59 CEST 2017
Oh thanks, you made my day :)
I'm used to niche projects, btw. Stackless Python was not very popular
as well, but much harder...
On 24.09.17 15:59, Bob Hood wrote:
> I think introspection is still a fairly uncommon area for most
> programmers,even professional software engineers. Like many things Qt
> does, it has leveraged introspection to great benefit, but there's no
> requirement to actually know about or understand introspection in order
> to use Qt(either via C++ or through PySide).Until it comes as a standard
> in a mainstream language,like C++, I don't think you will see widespread
> understanding or appreciation of its power.
>
> And if it's any consolation, I appreciate what you've done, Chris. :)
>
>
> On 9/23/2017 9:55 PM, Christian Tismer wrote:
>> Bob, you are right. The __signature__ object is a true object for
>> introspection and you can directly use it to build a function
>> call programmatically or find default arguments. Not as strings
>> but as life objects.
>>
>> I think that is a pretty unique feature. I know only of Cython
>> who creates signature objects from PyCFunctions. Therefore I expected
>> more enthusiastic reactions, the feature was very hard to implement.
>> And sure, the doc strings could be derived from it.
>>
>> Probably I should have pointed people at PEP 362 ff.
>>
>> Cheers -- Chris
>>
>>
>> On 23.09.17 04:49, Bob Hood wrote:
>>> I could be wrong, because I'm not familiar with the "__signature__"
>>> attribute, but I believe it is intended to facilitate /introspection/ of
>>> classes and methods. When Christian said "prints", I think he just
>>> meant you get to see what the attribute holds, not that it should be
>>> used as documentation.
>>>
>>> You could programmatically access the attributes data, and make run-time
>>> use of it. You can't really do that with the help() output unless you
>>> want go to great lengths to parse it.
>>>
>>> Sorry if I'm way off here.
>>>
>>>
>>> On 9/22/2017 8:36 PM, 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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________ PySide mailing list
>>>> PySide at qt-project.org
>>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>
>>>
>>> _______________________________________________
>>> PySide mailing list
>>> PySide at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/pyside
>>>
>>
>
--
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/20170924/8423a82c/attachment.sig>
More information about the PySide
mailing list