@@ -1778,10 +1778,15 @@ def render_doc(thing, title='Python Library Documentation: %s', forceload=0,
1778
1778
return title % desc + '\n \n ' + renderer .document (object , name )
1779
1779
1780
1780
def doc (thing , title = 'Python Library Documentation: %s' , forceload = 0 ,
1781
- output = None ):
1781
+ output = None , is_cli = False ):
1782
1782
"""Display text documentation, given an object or a path to an object."""
1783
1783
if output is None :
1784
- pager (render_doc (thing , title , forceload ))
1784
+ try :
1785
+ pager (render_doc (thing , title , forceload ))
1786
+ except ImportError as exc :
1787
+ if is_cli :
1788
+ raise
1789
+ print (exc )
1785
1790
else :
1786
1791
output .write (render_doc (thing , title , forceload , plaintext ))
1787
1792
@@ -2042,8 +2047,8 @@ def getline(self, prompt):
2042
2047
self .output .flush ()
2043
2048
return self .input .readline ()
2044
2049
2045
- def help (self , request ):
2046
- if type (request ) is type ( '' ):
2050
+ def help (self , request , is_cli = False ):
2051
+ if isinstance (request , str ):
2047
2052
request = request .strip ()
2048
2053
if request == 'keywords' : self .listkeywords ()
2049
2054
elif request == 'symbols' : self .listsymbols ()
@@ -2054,13 +2059,13 @@ def help(self, request):
2054
2059
elif request in self .symbols : self .showsymbol (request )
2055
2060
elif request in ['True' , 'False' , 'None' ]:
2056
2061
# special case these keywords since they are objects too
2057
- doc (eval (request ), 'Help on %s:' )
2062
+ doc (eval (request ), 'Help on %s:' , is_cli = is_cli )
2058
2063
elif request in self .keywords : self .showtopic (request )
2059
2064
elif request in self .topics : self .showtopic (request )
2060
- elif request : doc (request , 'Help on %s:' , output = self ._output )
2061
- else : doc (str , 'Help on %s:' , output = self ._output )
2065
+ elif request : doc (request , 'Help on %s:' , output = self ._output , is_cli = is_cli )
2066
+ else : doc (str , 'Help on %s:' , output = self ._output , is_cli = is_cli )
2062
2067
elif isinstance (request , Helper ): self ()
2063
- else : doc (request , 'Help on %s:' , output = self ._output )
2068
+ else : doc (request , 'Help on %s:' , output = self ._output , is_cli = is_cli )
2064
2069
self .output .write ('\n ' )
2065
2070
2066
2071
def intro (self ):
@@ -2798,7 +2803,7 @@ class BadUsage(Exception): pass
2798
2803
else :
2799
2804
writedoc (arg )
2800
2805
else :
2801
- help .help (arg )
2806
+ help .help (arg , is_cli = True )
2802
2807
except (ImportError , ErrorDuringImport ) as value :
2803
2808
print (value )
2804
2809
sys .exit (1 )
0 commit comments