[PyQt] PyQt/PyCharm/PEP problem with PyQt types
me at the-compiler.org
Wed Nov 22 10:29:52 GMT 2017
On Wed, Nov 22, 2017 at 10:18:16AM +0000, Phil Thompson wrote:
> On 22 Nov 2017, at 10:13 am, J Barchan <jnbarchan at gmail.com> wrote:
> > @Florian & @Phil,
> > Your posts crossed with my last one above.
> > Technically as I wrote there, one does not have to "go through Qt reading whether a "QObject *" does or does not accept NULL/None, because it automatically does. As I wrote, if it does not, the correct Qt C++ declaration would have been "QObject &", and that was up to the Qt people, not PyQt to guess.
> > Having said that, I realise we are where we are. (Unless PyQt wants to change the declarations at the next release.) I am concerned about what I can do moving on. You guys have clarified to me that I am not "missing something" which would have solved this neatly. I now can declare my own function parameters/returns with Union; I am stuck with where a PyQt function does not do so and so I will get a warning on my calling code, but at least I know where I am. So thank you all.
> I'm happy to change things so they work better. I don't use them myself so other people need to come to a consensus about any changes. When I added support I tried to get the PyCharm people to comment and/or verify the decisions I took but they were completely unresponsive.
IIRC the reason you didn't want to do mypy related changes for other issues
is because they'd make autocompletion in IDEs work worse with the annotations,
which is probably a good reason.
Here I don't really see downsides to using Optional[T] for everywhere C++ has
a *T, as long as autocompletion in e.g. PyCharm will still work (I'd expect it to).
This means some mistakes can't be prevented, but that's because the PyQt/Qt
typesystem can't prevent them - so I think that'd be fine.
https://www.qutebrowser.org | me at the-compiler.org (Mail/XMPP)
GPG: 916E B0C8 FD55 A072 | https://the-compiler.org/pubkey.asc
I love long mails! | https://email.is-not-s.ms/
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 833 bytes
Desc: not available
More information about the PyQt