<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>