@@ -145,7 +145,8 @@ def parser(self) -> ArgumentParser:
145145 self ._parser .prog = new_prog
146146 _update_sub_parser_prog (self ._parser , old_prog , new_prog )
147147
148- self ._raw_format = self ._parser .formatter_class == RawDescriptionHelpFormatter
148+ formatter = self ._parser .formatter_class
149+ self ._raw_format = isinstance (formatter , type ) and issubclass (formatter , RawDescriptionHelpFormatter )
149150 return self ._parser
150151
151152 def _load_sub_parsers (
@@ -224,7 +225,7 @@ def _pre_format(self, block: None | str) -> None | paragraph | literal_block:
224225 if block is None :
225226 return None
226227 if self ._raw_format and "\n " in block :
227- lit = literal_block ("" , Text (block ))
228+ lit = literal_block ("" , Text (block ), classes = [ "sphinx-argparse-cli-wrap" ] )
228229 lit ["language" ] = "none"
229230 return lit
230231 return paragraph ("" , Text (block ))
@@ -424,7 +425,7 @@ def _mk_usage(self, parser: ArgumentParser) -> literal_block:
424425 with self .no_color ():
425426 texts = parser .format_usage ()[len ("usage: " ) :].splitlines ()
426427 texts = [line if at == 0 else f"{ ' ' * (len (parser .prog ) + 1 )} { line .lstrip ()} " for at , line in enumerate (texts )]
427- return literal_block ("" , Text ("\n " .join (texts )))
428+ return literal_block ("" , Text ("\n " .join (texts )), classes = [ "sphinx-argparse-cli-wrap" ] )
428429
429430 @contextmanager
430431 def no_color (self ) -> Iterator [None ]:
0 commit comments