diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-04-19 18:58:30 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-04-19 18:58:30 +0000 |
commit | 8a31e29feafddc3c29bf1ca8ee378fb7b69c67b7 (patch) | |
tree | dcfeddc41b8e84dc49707e5b809ecbc91d6e9b83 /numpy/distutils/interactive.py | |
parent | 7ac6e2005976d03e25e723bacd59f27ad87e86dc (diff) | |
download | numpy-8a31e29feafddc3c29bf1ca8ee378fb7b69c67b7.tar.gz |
New feature: interactively set sys.argv when setup.py is called without arguments. At the moment the feature only can show system/platform/fcompiler information..
Diffstat (limited to 'numpy/distutils/interactive.py')
-rw-r--r-- | numpy/distutils/interactive.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/numpy/distutils/interactive.py b/numpy/distutils/interactive.py new file mode 100644 index 000000000..89d3d5612 --- /dev/null +++ b/numpy/distutils/interactive.py @@ -0,0 +1,65 @@ + +import os +import sys +from pprint import pformat + +__all__ = ['interactive_sys_argv'] + +def show_information(): + print 'Python',sys.version + for a in ['platform','prefix','byteorder','path']: + print 'sys.%s = %s' % (a,pformat(getattr(sys,a))) + if hasattr(os,'uname'): + print 'system,node,release,version,machine = ',os.uname() + +def show_environ(): + for k,i in os.environ.items(): + print ' %s = %s' % (k, i) + +def show_fortran_compilers(): + from fcompiler import show_fcompilers + show_fcompilers({}) + +def show_tasks(): + print """\ + +Tasks: + i - Show python/platform/machine information + e - Show environment information + f - Show Fortran compilers information + c - Continue with running setup + q - Quit setup script + """ + +def interactive_sys_argv(argv): + print '='*72 + print 'Starting interactive session' + print '-'*72 + + task_dict = {'i':show_information, + 'e':show_environ, + 'f':show_fortran_compilers} + + while 1: + show_tasks() + task = raw_input('Choose a task: ').lower() + if task=='c': break + if task=='q': sys.exit() + for t in task: + task_func = task_dict.get(t,None) + if task_func is None: + print 'Skipping task:',`t` + continue + print '-'*68 + try: + task_func() + except Exception,msg: + print 'Failed running task %s: %s' % (task,msg) + break + print '-'*68 + print + + print '-'*72 + argv.append('--help-commands') # for testing + return argv + |