<div dir="ltr"><div dir="ltr">One other issue I forgot to mention - QByteArray can't be pickled on Python 10:<div><br></div><div>>>> from PyQt6.QtCore import QByteArray<br>>>> import pickle<br>>>> pickle.dumps(QByteArray(b"test"))<br>Traceback (most recent call last):<br>  File "<stdin>", line 1, in <module><br>SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
> - the macos_amd64 wheels should probably use 11_0 - they are currently<br>
> 10_14, and pip refuses to install them with 'no matching distributions' <br>
> on<br>
> an Apple M1 machine.<br>
<br>
That sounds like a pip bug as 10.4 is the minimum required version. What <br>
is the output of 'pip --verbose debug'?<br></blockquote><div><br></div><div>Sorry, that should have read _arm64 above. </div><div><br></div>dae@armmini ~ % ./venv2/bin/pip install pyqt6-webengine<br>Collecting pyqt6-webengine<br>  Using cached PyQt6_WebEngine-6.2.0-cp36-abi3-macosx_10_14_universal2.whl (357 kB)<br>Collecting PyQt6-sip<14,>=13.1<br>  Using cached PyQt6_sip-13.1.0-cp39-cp39-macosx_11_0_arm64.whl<br>ERROR: Could not find a version that satisfies the requirement PyQt6-WebEngine-Qt6>=6.2.0 (from pyqt6-webengine) (from versions: none)<br><div>ERROR: No matching distribution found for PyQt6-WebEngine-Qt6>=6.2.0</div><div><br></div>dae@armmini ~ % ./venv2/bin/pip --verbose debug | grep cp39 | grep arm<br>WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.<br>  cp39-cp39-macosx_11_0_arm64<br>  cp39-abi3-macosx_11_0_arm64<br><div>  cp39-none-macosx_11_0_arm64</div><div><br></div>dae@armmini ~ % ./venv2/bin/pip --verbose debug | grep cp39 | grep universal<br>WARNING: This command is only meant for debugging. Do not use this with automation for parsing and getting these details, since the output and options of this command may change without notice.<br>  cp39-cp39-macosx_11_0_universal2<br>  cp39-cp39-macosx_10_16_universal2<br>  cp39-cp39-macosx_10_15_universal2<br>  cp39-cp39-macosx_10_14_universal2<br>  cp39-cp39-macosx_10_13_universal2<br>  cp39-cp39-macosx_10_12_universal2<br>  cp39-cp39-macosx_10_11_universal2<br>  cp39-cp39-macosx_10_10_universal2<br><div>  cp39-cp39-macosx_10_9_universal2</div><div>[...]</div><div><br></div><div>Workaround for now is to specify the older arch:<br><br></div><div>./venv2/bin/pip install pyqt6-qt6 pyqt6-webengine-qt6 --platform=macosx_10_14_arm64 --only-binary=:all: --no-deps --target venv2/ext</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="gmail-Apple-interchange-newline">> codesign -s  - \<br>> PyQt6/Qt6/lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess<br><br>I can't reproduce this (on an Intel Mac). The original file is not<br>signed.<br></blockquote><div><br></div><div>I misspoke - the issue is arm64-specific - on arm64, unsigned code won't run at all, so XCode will automatically</div><div>give outputs an 'ad-hoc' signature when they are created:</div><div><br></div><div>dae@armmini ~ % codesign -dvv venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Versions/A/QtWebEngineCore<br>Executable=/Users/dae/venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Versions/A/QtWebEngineCore<br>Identifier=QtWebEngineCore<br>Format=Mach-O thin (arm64)<br>CodeDirectory v=20400 size=1122728 flags=0x20002(adhoc,linker-signed) hashes=35082+0 location=embedded<br>Signature=adhoc<br></div><div>[...]</div><div>dae@armmini ~ % codesign -vv venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Versions/A/QtWebEngineCore<br>venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Versions/A/QtWebEngineCore: valid on disk<br>venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Versions/A/QtWebEngineCore: satisfies its Designated Requirement<br></div><div><br></div><div>The helper has an ad-hoc signature too, but it's malformed:</div><div><br></div><div>dae@armmini ~ % codesign -vv venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess<br>venv2/ext/PyQt6/Qt6/lib/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess: invalid signature (code or signature have been modified)<br>In architecture: arm64</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
> 60-      <widget class="QComboBox" name="field"><br>
> 61-       <property name="sizeAdjustPolicy"><br>
> 62:        <br>
> <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum><br>
> 63-       </property><br>
> 64-      </widget><br>
<br>
Fixed for QAction.MenuRole but QComboBox.SizeAdjustPolicy should be <br>
fine. Do you have a .ui file that demonstrates the problem?<br></blockquote><div><br></div><div>Sorry, I mistakenly lumped this one in with the other one, but it was a different</div><div>issue that was not PyQt's fault (QComboBox::AdjustToMinimumContentsLength</div><div>needed to be changed to QComboBox::AdjustToMinimumContentsLengthWithIcon</div><div>in the UI file)</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>> # inheriting from the missing sip.sipwrapper definition<br>
> # causes missing attributes not to be detected, as it's treating<br>
> # the class as inheriting from Any<br>
> line = line.replace("PyQt6.sip.wrapper", "object")<br>
<br>
sip.wrapper is not missing, it is defined in sip.pyi.<br></blockquote><div><br></div><div>I thought I checked this after updating to PyQt6, but I can't reproduce the issue now.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> We also automatically add '# type: ignore' comments to any '.connect(' <br>
> line<br>
> in generated uic files, as the types don't currently cover the signals.<br>
> Apart from that, the typing is working great.<br>
<br>
Can you give me an example of a modified file - just so that I get it <br>
right first time.<br></blockquote><div><br></div><div>Here's a few:</div><div><br></div>        self.buttonBox.accepted.connect(ChangeMap.accept)  # type: ignore<br>        self.fields.doubleClicked['QModelIndex'].connect(ChangeMap.accept)  # type: ignore<br>        self.activeCheck.toggled['bool'].connect(self.activeList.setEnabled)  # type: ignore<br><div><br></div><div>Without them, we get errors like:</div><div><br></div><div>aqt/forms/taglimit_qt6.py:54: error: "Callable[[], None]" has no attribute "connect"  [attr-defined]<br>aqt/forms/taglimit_qt6.py:55: error: Value of type "Callable[[bool], None]" is not indexable  [index]</div><div><br></div><div>Cheers,</div><div>Damien</div></div></div>