Opened 3 years ago

Last modified 3 years ago

#7415 assigned defect

SEQCROW: argument 2 has unexpected type 'MatchFlag'

Reported by: goddard@… Owned by: Tony Schaefer
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc: pett
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-12.5-arm64-arm-64bit
ChimeraX Version: 1.5.dev202207311904 (2022-07-31 19:04:24 UTC)
Description
Using SEQCROW 1.2.2 from Toolshed.
Start ChimeraX and choose Tools / AaronTools / Build QM Input produces this error.  I was trying to reproduce the crash in ticket #7410.

Log:
UCSF ChimeraX version: 1.5.dev202207311904 (2022-07-31)  
© 2016-2022 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> ui tool show "Build QM Input"

Traceback (most recent call last):  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/toolshed/info.py", line 559, in start_tool  
ti = api._api_caller.start_tool(api, session, self, tool_info)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/toolshed/__init__.py", line 1325, in start_tool  
return cls._get_func(api, "start_tool")(session, bi, ti)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/__init__.py", line 257, in start_tool  
tool = BuildQM(session, ti.name)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 127, in __init__  
self._build_ui()  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 196, in _build_ui  
self.basis_widget = BasisWidget(self.settings, init_form=init_form)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 3521, in __init__  
self.new_basis(use_saved=i)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 3578, in new_basis  
new_basis = BasisOption(self, self.settings, self.form)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 3035, in __init__  
self.setOptions(self.form)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 3069, in setOptions  
self.setAux(aux)  
File "/Users/goddard/Library/Application Support/ChimeraX/1.5/site-
packages/SEQCROW/tools/input_generator.py", line 3420, in setAux  
ndx = self.aux_type.findData(name, Qt.MatchExactly)  
TypeError: findData(self, Any, role: int = Qt.UserRole, flags: Qt.MatchFlag =
static_cast<QFlags<Qt.MatchFlag>>(Qt.MatchExactly|Qt.MatchCaseSensitive)):
argument 2 has unexpected type 'MatchFlag'  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/ui/gui.py", line 1655, in <lambda>  
run(ses, "ui tool show %s" % StringArg.unparse(tool_name)))  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/commands/run.py", line 38, in run  
results = command.run(text, log=log, return_json=return_json)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/commands/cli.py", line 2897, in run  
result = ci.function(session, **kw_args)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/ui/cmd.py", line 219, in ui_tool_show  
bi.start_tool(session, name)  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/toolshed/info.py", line 564, in start_tool  
raise ToolshedError(  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool Build QM
Input in bundle SEQCROW:  
findData(self, Any, role: int = Qt.UserRole, flags: Qt.MatchFlag =
static_cast&lt;QFlags&lt;Qt.MatchFlag&gt;&gt;(Qt.MatchExactly|Qt.MatchCaseSensitive)):
argument 2 has unexpected type 'MatchFlag'  
  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool Build QM
Input in bundle SEQCROW:  
findData(self, Any, role: int = Qt.UserRole, flags: Qt.MatchFlag =
static_cast<QFlags<Qt.MatchFlag>>(Qt.MatchExactly|Qt.MatchCaseSensitive)):
argument 2 has unexpected type 'MatchFlag'  
  
File
"/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/toolshed/info.py", line 564, in start_tool  
raise ToolshedError(  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 Metal - 76.3
OpenGL renderer: Apple M1 Max
OpenGL vendor: Apple

Python: 3.9.11
Locale: UTF-8
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.1
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro18,2
      Chip: Apple M1 Max
      Total Number of Cores: 10 (8 performance and 2 efficiency)
      Memory: 32 GB
      System Firmware Version: 7459.141.1
      OS Loader Version: 7459.141.1

Software:

    System Software Overview:

      System Version: macOS 12.5 (21G72)
      Kernel Version: Darwin 21.6.0
      Time since boot: 8 days 16:42

Graphics/Displays:

    Apple M1 Max:

      Chipset Model: Apple M1 Max
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 32
      Vendor: Apple (0x106b)
      Metal Family: Supported, Metal GPUFamily Apple 7
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3456 x 2234 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: No
          Connection Type: Internal


Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    appnope: 0.1.3
    asttokens: 2.0.5
    Babel: 2.10.3
    backcall: 0.2.0
    blockdiag: 3.0.0
    build: 0.7.0
    certifi: 2021.10.8
    cftime: 1.6.1
    charset-normalizer: 2.1.0
    ChimeraX-AddCharge: 1.2.3
    ChimeraX-AddH: 2.1.11
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2.1
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.5.2
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.3
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-ArtiaX: 0.1
    ChimeraX-Atomic: 1.39.7
    ChimeraX-AtomicLibrary: 7.0.2
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.1
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.1
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.7.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.2
    ChimeraX-ChangeChains: 1.0
    ChimeraX-CheckWaters: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.4
    ChimeraX-ColorActions: 1.0.1
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.2
    ChimeraX-CommandLine: 1.2.4
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.5.dev202207311904
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.2
    ChimeraX-Dicom: 1.1
    ChimeraX-DistMonitor: 1.1.6
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.2
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1
    ChimeraX-Hbonds: 2.2.1
    ChimeraX-Help: 1.2.1
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-Label: 1.1.5
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.1.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.1
    ChimeraX-MatchMaker: 2.0.6
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.7
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.5.6
    ChimeraX-ModelPanel: 1.3.6
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.1.1
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.9.1
    ChimeraX-PDB: 2.6.7
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0.1
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.7.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.1
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.8
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.0.2
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.1.2
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.21.4
    ChimeraX-uniprot: 2.2.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.1.3
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.1
    ChimeraX-WebServices: 1.1.0
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.5
    cxservices: 1.2
    cycler: 0.11.0
    Cython: 0.29.32
    debugpy: 1.6.2
    decorator: 5.1.1
    docutils: 0.19
    entrypoints: 0.4
    executing: 0.9.1
    filelock: 3.4.2
    fonttools: 4.34.4
    funcparserlib: 1.0.0
    grako: 3.16.5
    h5py: 3.7.0
    html2text: 2020.1.16
    idna: 3.3
    ihm: 0.33
    imagecodecs: 2022.2.22
    imagesize: 1.4.1
    importlib-metadata: 4.12.0
    ipykernel: 6.15.1
    ipython: 8.4.0
    ipython-genutils: 0.2.0
    jedi: 0.18.1
    Jinja2: 3.1.2
    jupyter-client: 7.3.4
    jupyter-core: 4.11.1
    kiwisolver: 1.4.4
    line-profiler: 3.4.0
    lxml: 4.9.1
    lz4: 4.0.2
    MarkupSafe: 2.1.1
    matplotlib: 3.5.2
    matplotlib-inline: 0.1.3
    msgpack: 1.0.4
    nest-asyncio: 1.5.5
    netCDF4: 1.6.0
    networkx: 2.8.5
    numexpr: 2.8.3
    numpy: 1.23.1
    openvr: 1.16.802
    packaging: 21.0
    pandas: 1.4.3
    ParmEd: 3.4.3
    parso: 0.8.3
    pep517: 0.12.0
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 9.2.0
    pip: 21.3.1
    pkginfo: 1.8.2
    prompt-toolkit: 3.0.30
    psutil: 5.9.1
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.12.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.9
    PyQt6: 6.3.1
    PyQt6-Qt6: 6.3.1
    PyQt6-sip: 13.4.0
    PyQt6-WebEngine: 6.3.1
    PyQt6-WebEngine-Qt6: 6.3.1
    python-dateutil: 2.8.2
    pytz: 2022.1
    pyzmq: 23.2.0
    qtconsole: 5.3.1
    QtPy: 2.1.0
    RandomWords: 0.3.0
    requests: 2.28.1
    scipy: 1.9.0
    Send2Trash: 1.8.0
    SEQCROW: 1.2.2
    setuptools: 62.6.0
    sfftk-rw: 0.7.2
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 5.1.1
    sphinx-autodoc-typehints: 1.19.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    stack-data: 0.3.0
    starfile: 0.4.11
    superqt: 0.3.3
    tables: 3.7.0
    tifffile: 2022.7.31
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.2
    traitlets: 5.3.0
    typing-extensions: 4.3.0
    urllib3: 1.26.11
    wcwidth: 0.2.5
    webcolors: 1.12
    wheel: 0.37.1
    wheel-filename: 1.3.0
    zipp: 3.8.1

Change History (6)

comment:1 by Tom Goddard, 3 years ago

Cc: pett added
Component: UnassignedThird Party
Owner: set to Tony Schaefer
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSEQCROW: argument 2 has unexpected type 'MatchFlag'

Trying to reproduce the crash in ticket #7410 but instead got this traceback.

in reply to:  2 ; comment:2 by Tony Schaefer, 3 years ago

The issue with SEQCROW 1.2.2 is that that version was not written to work with Qt6. They changed the regular expression to need a keyword argument for the match flag (or changed the order of positional arguments, I don't remember which). SEQCROW 1.2.2 should work just fine with Qt5 versions of ChimeraX. I suppose you shouldn't be able to install that version of SEQCROW with ChimeraX 1.4 or newer, but I was not very careful about which versions of ChimeraX were in my dependency list. I don't think that's something I can change after it's on the toolshed unless I delete the old SEQCROW versions.

Basically, just switch the daily builds back to PyQt5 and everything should work 🙃

Tony
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Monday, August 8, 2022 6:24 PM
Cc: goddard@sonic.net <goddard@sonic.net>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Anthony James Schaefer <tony.schaefer@uga.edu>
Subject: Re: [ChimeraX] #7415: SEQCROW: argument 2 has unexpected type 'MatchFlag' (was: ChimeraX bug report submission)

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#7415: SEQCROW: argument 2 has unexpected type 'MatchFlag'
----------------------------------+---------------------------
          Reporter:  goddard@…    |      Owner:  Tony Schaefer
              Type:  defect       |     Status:  assigned
          Priority:  normal       |  Milestone:
         Component:  Third Party  |    Version:
        Resolution:               |   Keywords:
        Blocked By:               |   Blocking:
Notify when closed:               |   Platform:  all
           Project:  ChimeraX     |
----------------------------------+---------------------------
Changes (by Tom Goddard):

 * status:  new => assigned
 * cc: pett (added)
 * component:  Unassigned => Third Party
 * project:   => ChimeraX
 * platform:   => all
 * owner:  (none) => Tony Schaefer


Comment:

 Trying to reproduce the crash in ticket #7410 but instead got this
 traceback.

--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/7415#comment:1>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker

in reply to:  3 ; comment:3 by goddard@…, 3 years ago

Hi Greg,

 Tony has a problem that Toolshed offers to install an old SEQCROW version 1.2.2 into current daily builds because that old version did not limit which future ChimeraX core versions it is compatible with, and it turns out it doesn't work with Qt6, only Qt5.

  Is there any way Tony can fix the core dependency on SEQCROW 1.2.2 so it is is not accidentally installed in ChimeraX 1.5 daily builds?

	Tom

in reply to:  4 ; comment:4 by Greg Couch, 3 years ago

Yes, it is possible to change so the Toolshed sees a different 
dependency from what the bundle actually has.  The correct dependency 
for SEQROW 1.2.* is ChimeraX ~=1.2.0.  That matches ChimeraX 1.2.*.   
It's going to take me a little while to figure out.  I need to modify 
the admin interface a little bit to make it easy to fix.  But it should 
be done within an hour.

     -- Greg

On 8/8/2022 4:26 PM, Tom Goddard wrote:

in reply to:  5 ; comment:5 by Greg Couch, 3 years ago

All of the older SEQCROW releases now have their ChimeraX dependency 
listed in the toolshed in the form ~=1.2.0 instead of ~=1.2 (or 1.1 as 
appropriate).  That means that they match ChimeraX 1.2 and 1.2.X where X 
is >= 0, instead of 1.2 and 1.X where X is >= 2.  Please let me know if 
you would like it to be something different.

     -- Greg

in reply to:  6 ; comment:6 by Tony Schaefer, 3 years ago

Thanks, looks good!
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: Monday, August 8, 2022 9:49 PM
To: Anthony James Schaefer <tony.schaefer@uga.edu>; goddard@sonic.net <goddard@sonic.net>
Cc: pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>
Subject: Re: [ChimeraX] #7415: SEQCROW: argument 2 has unexpected type 'MatchFlag'

[EXTERNAL SENDER - PROCEED CAUTIOUSLY]


#7415: SEQCROW: argument 2 has unexpected type 'MatchFlag'
----------------------------------+---------------------------
          Reporter:  goddard@…    |      Owner:  Tony Schaefer
              Type:  defect       |     Status:  assigned
          Priority:  normal       |  Milestone:
         Component:  Third Party  |    Version:
        Resolution:               |   Keywords:
        Blocked By:               |   Blocking:
Notify when closed:               |   Platform:  all
           Project:  ChimeraX     |
----------------------------------+---------------------------

Comment (by Greg Couch):

 {{{
 All of the older SEQCROW releases now have their ChimeraX dependency
 listed in the toolshed in the form ~=1.2.0 instead of ~=1.2 (or 1.1 as
 appropriate).  That means that they match ChimeraX 1.2 and 1.2.X where X
 is >= 0, instead of 1.2 and 1.X where X is >= 2.  Please let me know if
 you would like it to be something different.

      -- Greg
 }}}

--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/7415#comment:5>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
Note: See TracTickets for help on using tickets.