Opened 7 years ago

Closed 6 years ago

#1445 closed defect (fixed)

"Usage" needs to be more bulletproof

Reported by: Conrad Huang Owned by: Greg Couch
Priority: normal Milestone: 0.9
Component: Command Line Version:
Keywords: Cc: Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.17134
ChimeraX Version: 0.8 (2018-11-11)
Description
Typed "usage" and got traceback.  The offending command should be fixed, but "usage" should still give information about the working commands.

Log:
UCSF ChimeraX version: 0.8 (2018-11-11)  
How to cite UCSF ChimeraX  

> open 2gbp

2gbp title:  
Sugar and signal-transducer binding sites of the escherichia coli galactose
chemoreceptor protein [more info...]  
  
Chain information for 2gbp #1  
---  
Chain | Description  
A | D-galactose/D-glucose binding protein  
  
  

> usage

Use 'usage <command>' for a command synopsis.  
Use 'help <command>' to learn more about a command.  
Traceback (most recent call last):  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 272, in _register_cmd  
api._api_caller.register_command(api, self, ci, logger)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1189, in register_command  
return cls._get_func(api, "register_command")(ci.name, logger)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\cage_builder\\__init__.py", line 28, in register_command  
cmd.register_cage_command(logger)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\cage_builder\cmd.py", line 84, in register_cage_command  
required_arguments = [place_model],  
NameError: name 'place_model' is not defined  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 1886, in lazy_register  
deferred.call()  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 1816, in call  
return self.proxy()  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 265, in cb  
s._register_cmd(ci, l)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 275, in _register_cmd  
"register_command() failed for command %s in bundle %s:\n%s" % (ci.name,
self.name, str(e)))  
chimerax.core.toolshed.ToolshedError: register_command() failed for command
cage in bundle ChimeraX-Cage-Builder:  
name 'place_model' is not defined  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\cmd_line\tool.py", line 220, in execute  
cmd.run(cmd_text)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2581, in run  
result = ci.function(session, **kw_args)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\std_commands\usage.py", line 31, in usage  
cmds = cli.registered_commands(multiword=True)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2997, in registered_commands  
return list(cmds('', parent_info))  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2980, in cmds  
word_info.lazy_register(word)  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 1888, in lazy_register  
raise RuntimeError("delayed command registration for %r failed (%s)" %
(cmd_name, e))  
RuntimeError: delayed command registration for 'cage' failed
(register_command() failed for command cage in bundle ChimeraX-Cage-Builder:  
name 'place_model' is not defined)  
  
RuntimeError: delayed command registration for 'cage' failed
(register_command() failed for command cage in bundle ChimeraX-Cage-Builder:  
name 'place_model' is not defined)  
  
File "E:\chimerax\ChimeraX.app\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 1888, in lazy_register  
raise RuntimeError("delayed command registration for %r failed (%s)" %
(cmd_name, e))  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.13521 Core Profile Forward-Compatible Context 24.20.11001.5003
OpenGL renderer: Radeon (TM) RX 480 Graphics
OpenGL vendor: ATI Technologies Inc.

Change History (4)

comment:1 by pett, 7 years ago

Cc: Tom Goddard added
Component: UnassignedCommand Line
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submission"Usage" needs to be more bulletproof

Cc'ed Tom Goddard since the actual traceback is from the "cage" command code.

comment:2 by Tom Goddard, 7 years ago

I fixed the code registering the cage command.

comment:3 by Greg Couch, 7 years ago

Milestone: 0.9

comment:4 by Greg Couch, 6 years ago

Resolution: fixed
Status: assignedclosed

usage and usage all skip commands that can't be registered. If you directly try to use an unregisterible command, then an exception is shown.

Note: See TracTickets for help on using tickets.