<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Hi Jakub,</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">The PyQt5/6 default stubs are not
suitable for type verification with mypy. This is known and this
is why we have created external stubs .</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Currently, there are official stubs
released for PyQt5 and PySide2. Stubs for PySide6 and PyQt6 are
coming but quite slowly.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">As Kyle mentionned, you can already
benefit from PyQt6 stubs by using the git version. I recreated
your example and it type-checks correctly with PyQt6-stubs on git
: <br>
</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">
<blockquote><font face="monospace"><img
src="cid:part1.B1aQf7DE.BMiRKDmv@freehackers.org" alt=""></font></blockquote>
<br>
</div>
<div class="moz-cite-prefix">So, I suggest you do just that.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">And don't hesitate to open issues on
the GitHub PyQt6-stubs if you see something not correctly typed.</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Cheers,</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Philippe</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Le 16/11/2022 à 15:33, Kyle Altendorf a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:38c491d6-2ba7-4066-a0d5-e139c86595e1@app.fastmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
<div>mm, shortcuts that send the email early...</div>
<div><br>
</div>
<div><a
href="https://github.com/python-qt-tools/PyQt6-stubs/blob/f623a641cd5cdff53342177e4fbbf9cae8172336/PyQt6-stubs/QtCore.pyi#L29-L52"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/python-qt-tools/PyQt6-stubs/blob/f623a641cd5cdff53342177e4fbbf9cae8172336/PyQt6-stubs/QtCore.pyi#L29-L52</a><br>
</div>
<div><br>
</div>
<div>The PyQt6-stubs haven't made it to PyPI yet so you'll have to
install via `pyqt6-stubs @ git+<a
href="https://github.com/python-qt-tools/pyqt6-stubs"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/python-qt-tools/pyqt6-stubs</a>`
or similar.</div>
<div><br>
</div>
<div>On Wed, Nov 16, 2022, at 09:31, Kyle Altendorf wrote:<br>
</div>
<blockquote type="cite" id="qt" style="">
<div>The PyQt (and PySide for that matter) official hints need a
good bit of help. The pyqt5-stubs and pyqt6-stubs are
attempts to 1) offer better hints to users and 2) offer a
reference for Phil to work from to fix the official hints. I
spent a couple years working on PyQt5 stuff but presently have
moved on. There's some other interest in maintenance, but not
a lot of active work (maybe my fault).<br>
</div>
<div><br>
</div>
<div>For signals, well, we don't have a complete solution but we
at least have something a lot better.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>On Wed, Nov 16, 2022, at 09:24, JakobDev wrote:<br>
</div>
<blockquote type="cite" id="qt-qt" style="">
<div>I demonstrate it with the attached example. It's a very
simple Program<br>
</div>
<div>that just shows a Button. If you click the Button, it
prints Hello<br>
</div>
<div>World. So pretty normal. Now let's run mypy on this. It
gives you this<br>
</div>
<div>error:<br>
</div>
<div><br>
</div>
<div>testtype.py:13: error: "Callable[[], None]" has no
attribute "connect"<br>
</div>
<div>Found 1 error in 1 file (checked 1 source file)<br>
</div>
<div><br>
</div>
<div>Now let's open this in PyCharm. PyCharm also shows a
error here. Signals<br>
</div>
<div>are not correctly typed. It looks like they are typed as
function. To be<br>
</div>
<div>clear: This here is just a example. It happens with every
Signals, which<br>
</div>
<div>is annoying if you work on a bigger Project in PyCharm.<br>
</div>
<div><br>
</div>
<div>What makes this these even worse, is that PyQt6 comes
with a py.typed<br>
</div>
<div>(see PEP561). It basically means, that this package can
be considered as<br>
</div>
<div>statically and correctly typed.<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><b>Attachments:</b><br>
</div>
<ul>
<li>testtype.py<br>
</li>
<li>PyCharm.png<br>
</li>
</ul>
</blockquote>
<div><br>
</div>
</blockquote>
<div><br>
</div>
</blockquote>
<p><br>
</p>
</body>
</html>