def _format_option_strings(self, option: optparse.Option, mvarfmt: str = " <{}>", optsep: str = ", ") -> str: """ Return a comma-separated list of option strings and metavars. :param option: tuple of (short opt, long opt), e.g: ('-f', '--format') :param mvarfmt: metavar format string :param optsep: separator """ opts = [] if option._short_opts: opts.append(option._short_opts[0]) if option._long_opts: opts.append(option._long_opts[0]) if len(opts) > 1: opts.insert(1, optsep) if option.takes_value(): assert option.dest is not None metavar = option.metavar or option.dest.lower() opts.append(mvarfmt.format(metavar.lower())) return "".join(opts)
def _format_option(self, option: optparse.Option, cmd_name: Optional[str] = None) -> List[str]: bookmark_line = (f".. _`{cmd_name}_{option._long_opts[0]}`:" if cmd_name else f".. _`{option._long_opts[0]}`:") line = ".. option:: " if option._short_opts: line += option._short_opts[0] if option._short_opts and option._long_opts: line += ", " + option._long_opts[0] elif option._long_opts: line += option._long_opts[0] if option.takes_value(): metavar = option.metavar or option.dest assert metavar is not None line += f" <{metavar.lower()}>" # fix defaults assert option.help is not None opt_help = option.help.replace("%default", str(option.default)) # fix paths with sys.prefix opt_help = opt_help.replace(sys.prefix, "<sys.prefix>") return [bookmark_line, "", line, "", " " + opt_help, ""]
def takes_value(self): # Deprecated options don't take a value. return Option.takes_value(self) and not self.deprecated