The following bug report has been submitted:
Platform: Windows-10-10.0.17134
ChimeraX Version: 0.9 (2019-06-06)
Description
Attempting to uninstall my Clipper the "official" way in order to investigate #2038 leads to the traceback below.
Log:
Startup Messages
---
warning | 'clip' is a prefix of an existing command 'clipper'
UCSF ChimeraX version: 0.9 (2019-06-06)
© 2016-2019 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> usage toolshed
Subcommands are:
* toolshed cache
* toolshed hide
* toolshed install
* toolshed list
* toolshed reload
* toolshed show
* toolshed uninstall
* toolshed url
> toolshed uninstall clipper
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 730, in __init__
self._data = json.loads(data)
File "C:\Program Files\ChimeraX\bin\lib\json\\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Program Files\ChimeraX\bin\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\ChimeraX\bin\lib\json\decoder.py", line 355, in
raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\cmd_line\tool.py", line 254, in execute
cmd.run(cmd_text)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2632, in run
result = ci.function(session, **kw_args)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\toolshed.py", line 254, in toolshed_uninstall
deps = bi.dependents(logger)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 667, in dependents
for d in DistributionPath().get_distributions():
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 213, in get_distributions
self._generate_cache()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 167, in _generate_cache
for dist in self._yield_distributions():
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 148, in _yield_distributions
metadata = Metadata(fileobj=stream, scheme='legacy')
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 741, in __init__
self.validate()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 958, in validate
missing, warnings = self._legacy.check(True)
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 522, in check
self.set_metadata_version()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 289, in set_metadata_version
self._fields['Metadata-Version'] = _best_version(self._fields)
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 167, in _best_version
raise MetadataConflictError('Unknown metadata set')
distlib.metadata.MetadataConflictError: Unknown metadata set
distlib.metadata.MetadataConflictError: Unknown metadata set
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 167, in _best_version
raise MetadataConflictError('Unknown metadata set')
See log for complete Python traceback.
> toolshed list
List of installed bundles:
-himerax-clipper (0.4): Clipper: Efficient handling of volumetric data and symmetry AddH (1.0): Add hydrogens AlignmentAlgorithms (1.0): Sequence alignment algorithms AlignmentHdrs (1.0): Alignment header support AlignmentMatrices (1.0): Sequence alignment similarity matrices Alignments (1.0): Sequence alignment support Atom-Search (1.0): 3D atom search Atomic (1.0): Atomic-structure functionality BILD (0.1): BILD file reader BasicActions (0.1): Basic actions for user-defined specifier names BlastProtein (0.1): Search PDB/NR using BLAST BondRot (1.0): Bond rotation support Bug-Reporter (1.0): Report bugs when an error occurs Bumps (1.0): Find protrusions in density maps ButtonPanel (1.0): Create custom user interface panels Cage-Builder (1.0): Build polygonal meshes for oligomeric molecular assemblies CellPack (1.0): Fetch cellPACK models from web ChemGroup (1.0): Detect chemically functional groups Clashes (1.0): Find clashes/contacts in structures Clipper (0.9.1): Clipper: Efficient handling of volumetric data and symmetry ColorGlobe (1.0): Show directional resolution colored sphere CommandLine (1.0): Command line support Connect-Structure (1.0): Add bonds to structures that lack them Contacts (1.0): Display chain contact maps Core (0.9): ChimeraX Core Package Crosslinks (1.0): Analyze crosslinks Crystal (1.0): Crystal symmetries Dicom (1.0): Read medical imaging and segmentations in DICOM format Dist-Monitor (1.0): Interactive distance display Dist-UI (1.0): Distance measurement user interface Dssp (1.0): Compute/assign secondary structure ExperimentalCommands (1.0): Experimental commands FileHistory (1.0): File History Panel Hbonds (1.0): Identify hydrogen bonds in and among structures Help (0.9a1): Show ChimeraX Help IHM (1.0): Integrative Hybrid Models file reader ISOLDE (1.0b2.dev1): ISOLDE: Interactive Structure Optimisation by Local Direct Exploration Label (1.0): Add text labels to graphics List-Info (0.1): Report attributes for selected atomic data Log (1.0): Log support MD-crds (1.0): Molecular dynamics support MLP (1.0): Molecular lipophilicity calculation MMTF (1.0): MMTF format read/write Map (1.0): Density maps MapData (1.0): Volume data file formats MapFilter (1.0): Operations on maps MapFit (1.0): Fit molecules into maps MapSeries (1.0): Volume series Markers (1.0): Place markers on density maps Mask (1.0): Mask a volume to a surface MatchMaker (1.0): Superimpose structures Meeting (1.0): Shared interactive VR sessions. ModelPanel (1.0): ChimeraX Model Panel ModelSeries (1.0): Display sequences of models one by one Modeller (1.0): Interface to Modeller Mol2 (1.0): Mol2 reader/writer Morph (1.0): Morph atomic structures MouseModes (1.0): Provide right button mouse mode tool Movie (1.0): Commands to record movies Nucleotides (0.1): Create nucleotide-specific displays PDB (1.0): PDB format read/write Preset-Mgr (1.0): Preset management Read-Pbonds (1.0): Read in pseudobonds from a file Registration (0.1): Register ChimeraX RemoteControl (1.0): Control ChimeraX from other apps ResidueFit (1.0): Display fit of residues to density map RestServer (0.1): Starts REST server to execute commands from network requests STL (1.0): STL file read/write Scheme-Mgr (1.0): HTTP scheme management SeqView (1.0): Sequence viewer Shell (1.0): Interactive Python shell Shortcuts (1.0): Button and keyboard shortcuts ShowAttr (1.0): Render/select by attribute SideView (1.0): Side view of scene SmoothLines (1.0): Smooth network of lines SpaceNavigator (1.0): Space Navigator device support Std-Commands (1.0): Standard commands Storm (1.0): STORM file reader Struts (1.0): struts for 3D printing Surface (1.0): Surface calculations SwapAA (1.0): Swap amino acid Test (1.0): simple regression test Texture (1.0): Apply images to surfaces Toolbar (0.1): Toolbar Tug (1.0): Tug on atoms with molecular dynamics UI (1.0): ChimeraX user interface VTK (1.0): Legacy VTK file reader ViewDockX (0.1): View docking results Vive (1.0): Virtual reality headset support WavefrontOBJ (1.0): Wavefront OBJ file read/write WebServices (1.0): Web service and HTTP request support Zone (1.0): Mouse mode to show atom and map zones gltf (1.0): Read/write glTF 3d scene files mmCIF (1.1): mmCIF format read/write uniprot (1.0): UniProt database support
> toolshed uninstall Clipper
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 730, in __init__
self._data = json.loads(data)
File "C:\Program Files\ChimeraX\bin\lib\json\\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Program Files\ChimeraX\bin\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\ChimeraX\bin\lib\json\decoder.py", line 355, in
raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\cmd_line\tool.py", line 254, in execute
cmd.run(cmd_text)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2632, in run
result = ci.function(session, **kw_args)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\toolshed.py", line 254, in toolshed_uninstall
deps = bi.dependents(logger)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 667, in dependents
for d in DistributionPath().get_distributions():
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 213, in get_distributions
self._generate_cache()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 167, in _generate_cache
for dist in self._yield_distributions():
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\database.py",
line 148, in _yield_distributions
metadata = Metadata(fileobj=stream, scheme='legacy')
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 741, in __init__
self.validate()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 958, in validate
missing, warnings = self._legacy.check(True)
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 522, in check
self.set_metadata_version()
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 289, in set_metadata_version
self._fields['Metadata-Version'] = _best_version(self._fields)
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 167, in _best_version
raise MetadataConflictError('Unknown metadata set')
distlib.metadata.MetadataConflictError: Unknown metadata set
distlib.metadata.MetadataConflictError: Unknown metadata set
File "C:\Program Files\ChimeraX\bin\lib\site-packages\distlib\metadata.py",
line 167, in _best_version
raise MetadataConflictError('Unknown metadata set')
See log for complete Python traceback.
OpenGL version: 3.3.0 NVIDIA 398.11
OpenGL renderer: GeForce GTX 1070/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Hacked fix in 5c6c03148.
distlib, since 0.2.8, does not recognize "Obsoletes" as a legal metadata classifier. jurko 0.6 (SOAP package) claims to be Metadata-Version 2.1 but specifies Obsolete. Hack adds "Obsoletes" as a legal classifier in that context in distlib and "toolshed uninstall" happily continues.