New submission from David Evans:

The pager functions used by help() in StdLib's pydoc.py don't detect IronPython 
correctly and the result is a lack of functionality or in some cases a hang. 
This is similar to issue 8110 in that the code attempts to detect windows with 
a check for "win32" from sys.platform and needs to check for "cli" as well to 
detect IronPython running on mono on linux/mac os or on windows.

My naive change to workaround the problem was to add the two line test for 
"cli" amidst getpager() here:

    if sys.platform == 'win32' or sys.platform.startswith('os2'):
        return lambda text: tempfilepager(plain(text), 'more <')
    if sys.platform == 'cli':
        return plainpager # IronPython
    if hasattr(os, 'system') and os.system('(less) 2>/dev/null') == 0:
        return lambda text: pipepager(text, 'less')

That two line addition allowed basic function and prevents the hang though 
maybe there is a better pager type that would work on IronPython. In our linux 
and windows tests though neither the tempfilepager nor pipepager would function 
on either platform.

I submitted the report to the IronPython issues tracker and someone there 
suggested posting the patch here.

----------
components: Windows
messages: 201750
nosy: owlmonkey
priority: normal
severity: normal
status: open
title: pydoc.py doesn't detect IronPython, help(foo) can hang
type: crash
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue19453>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to