Beispiel #1
0
 def parse(self, text, session):
     modes = session.ui.mouse_modes.modes
     from chimerax.core.commands import EnumOf
     mode_arg = EnumOf(tuple(m.name for m in modes))
     value, used, rest = mode_arg.parse(text, session)
     mmap = {m.name: m for m in modes}
     return mmap[value], used, rest
Beispiel #2
0
 def _dispatch_header_command(self, subcommand_text):
     from chimerax.core.errors import UserError
     from chimerax.core.commands import EnumOf
     enum = EnumOf(self.headers,
                   ids=[header.ident for header in self._headers])
     header, ident_text, remainder = enum.parse(subcommand_text,
                                                self.session)
     header.process_command(remainder)
Beispiel #3
0
 def _process_setting_command(self, session, setting_arg_text):
     from chimerax.core.commands import EnumOf
     enum = EnumOf(list(self._setting_cmd_annotations.keys()))
     attr_name, arg_text, remainder = enum.parse(setting_arg_text, session)
     remainder = remainder.strip()
     if not remainder:
         from chimerax.core.errors import UserError
         raise UserError("No value provided for setting")
     val, val_text, remainder = self._setting_cmd_annotations[attr_name].parse(remainder, session)
     if remainder and not remainder.isspace():
         from chimerax.core.errors import UserError
         raise UserError("Extraneous text after command")
     setattr(self.settings, attr_name, val)