import os import sys import traceback if os.environ.has_key('LD_PRELOAD'): del os.environ['LD_PRELOAD'] import argparse from casa_system_defaults import casa from IPython import start_ipython from traitlets.config.loader import Config __pylib = os.path.dirname(os.path.realpath(__file__)) __init_scripts = [ "init_begin_startup.py", "init_system.py", "init_telemetry.py", "init_logger.py", "init_user_pre.py", "init_dbus.py", "init_tools.py", "init_tasks.py", "init_funcs.py", "init_pipeline.py", "init_mpi.py", "init_docs.py", "init_user_post.py", "init_crashrpt.py", "init_end_startup.py", "init_welcome.py", ] ## ## this is filled via register_builtin (from casa_builtin.py) ## casa_builtins = { } ## ## this is filled via add_shutdown_hook (from casa_shutdown.py) ## casa_shutdown_handlers = [ ] ## ## final interactive exit status... ## runs using "-c ..." exit from init_welcome.py ## _exit_status=0 try: __startup_scripts = filter( os.path.isfile, map(lambda f: __pylib + '/' + f, __init_scripts ) ) __parse = argparse.ArgumentParser(description='CASA bootstrap',add_help=False) __parse.add_argument( '--rcdir',dest='rcdir',default=casa['dirs']['rc'], help='location for startup files' ) __parse.add_argument( '--pipeline',dest='backend',default='tk', const=None,action='store_const', help='startup with pipeline context' ) __parse.add_argument( '--agg',dest='backend',default='tk', const=None,action='store_const', help='startup without tkagg' ) __parse.add_argument( '--iplog',dest='ipython_log',default=False, const=True,action='store_const', help='create ipython log' ) __defaults,__trash = __parse.parse_known_args( ) from IPython import __version__ as _ipython_version_ __configs = Config( ) __configs.TerminalInteractiveShell.ipython_dir = __defaults.rcdir.decode('unicode-escape') + "/ipython" __configs.TerminalInteractiveShell.banner1 = 'IPython %s -- An enhanced Interactive Python.\n\n' % _ipython_version_ __configs.TerminalInteractiveShell.banner2 = '' __configs.HistoryManager.hist_file = __configs.TerminalInteractiveShell.ipython_dir + "/history.sqlite" __configs.TerminalIPythonApp.matplotlib = __defaults.backend ### what does this do? ### (1) exec each of the startup files ### (2) invoke matplotlib (for interactive grapics) ### unless --agg flag has been supplied start_ipython( config=__configs, argv= (['--logfile='+casa['files']['iplogfile']] if __defaults.ipython_log else []) + ['--ipython-dir='+__defaults.rcdir+"/ipython", '--autocall=2', "-c", "for i in " + str(__startup_scripts) + ": execfile( i )"+("\n%matplotlib" if __defaults.backend is not None else ""), "-i" ] ) except: _exit_status = 1 print "Unexpected error:" traceback.print_exc(file=sys.stdout) pass ### this should (perhaps) be placed in an 'atexit' hook... for handler in casa_shutdown_handlers: handler( ) from init_welcome_helpers import immediate_exit_with_handlers immediate_exit_with_handlers(_exit_status)