@@ -1310,6 +1310,11 @@ def docother(self, object, name=None, mod=None, parent=None, maxlen=None, doc=No
13101310 line += '\n ' + self .indent (str (doc ))
13111311 return line
13121312
1313+ class _PlainTextDoc (TextDoc ):
1314+ """Subclass of TextDoc which overrides string styling"""
1315+ def bold (self , text ):
1316+ return text
1317+
13131318# --------------------------------------------------------- user interfaces
13141319
13151320def pager (text ):
@@ -1464,6 +1469,7 @@ def locate(path, forceload=0):
14641469# --------------------------------------- interactive interpreter interface
14651470
14661471text = TextDoc ()
1472+ plaintext = _PlainTextDoc ()
14671473html = HTMLDoc ()
14681474
14691475def resolve (thing , forceload = 0 ):
@@ -1476,8 +1482,11 @@ def resolve(thing, forceload=0):
14761482 else :
14771483 return thing , getattr (thing , '__name__' , None )
14781484
1479- def render_doc (thing , title = 'Python Library Documentation: %s' , forceload = 0 ):
1485+ def render_doc (thing , title = 'Python Library Documentation: %s' , forceload = 0 ,
1486+ renderer = None ):
14801487 """Render text documentation, given an object or a path to an object."""
1488+ if renderer is None :
1489+ renderer = text
14811490 object , name = resolve (thing , forceload )
14821491 desc = describe (object )
14831492 module = inspect .getmodule (object )
@@ -1496,12 +1505,16 @@ def render_doc(thing, title='Python Library Documentation: %s', forceload=0):
14961505 # document its available methods instead of its value.
14971506 object = type (object )
14981507 desc += ' object'
1499- return title % desc + '\n \n ' + text .document (object , name )
1508+ return title % desc + '\n \n ' + renderer .document (object , name )
15001509
1501- def doc (thing , title = 'Python Library Documentation: %s' , forceload = 0 ):
1510+ def doc (thing , title = 'Python Library Documentation: %s' , forceload = 0 ,
1511+ output = None ):
15021512 """Display text documentation, given an object or a path to an object."""
15031513 try :
1504- pager (render_doc (thing , title , forceload ))
1514+ if output is None :
1515+ pager (render_doc (thing , title , forceload ))
1516+ else :
1517+ output .write (render_doc (thing , title , forceload , plaintext ))
15051518 except (ImportError , ErrorDuringImport ) as value :
15061519 print (value )
15071520
@@ -1755,9 +1768,9 @@ def help(self, request):
17551768 elif request in self .symbols : self .showsymbol (request )
17561769 elif request in self .keywords : self .showtopic (request )
17571770 elif request in self .topics : self .showtopic (request )
1758- elif request : doc (request , 'Help on %s:' )
1771+ elif request : doc (request , 'Help on %s:' , output = self . _output )
17591772 elif isinstance (request , Helper ): self ()
1760- else : doc (request , 'Help on %s:' )
1773+ else : doc (request , 'Help on %s:' , output = self . _output )
17611774 self .output .write ('\n ' )
17621775
17631776 def intro (self ):
0 commit comments