Package Ganga :: Package Runtime :: Module IPythonMagic
[hide private]
[frames] | no frames]

Source Code for Module Ganga.Runtime.IPythonMagic

 1  # File: Magic.py 
 2  # Author: K. Harrison 
 3  # Created: 060328 
 4   
 5  """Module containing IPython magic functions for Ganga""" 
 6   
 7  __author__  = "K.Harrison <Harrison@hep.phy.cam.ac.uk>" 
 8  __date__    = "28 March 2006" 
 9  __version__ = "1.0" 
10   
11  from Ganga.Utility.logging import getLogger 
12  from Ganga.Utility.Runtime import getScriptPath 
13  from Ganga.Utility.Runtime import getSearchPath 
14   
15  from IPython.iplib import InteractiveShell 
16   
17  import sys 
18   
19  logger = getLogger( modulename = 1 ) 
20   
21 -def magic_ganga( self, parameter_s = '' ):
22 """ 23 IPython magic function for executing Python scripts in Ganga namespace 24 25 Usage: 26 ganga <script> <arguments> 27 28 <script> - Python script in Ganga search path 29 <arguments> - Arguments to be passed to <script> 30 """ 31 32 # Obtain list of arguments from input parameter string 33 argList = parameter_s.split() 34 35 # Determine path to script, using Ganga search rules 36 if argList: 37 path = getSearchPath() 38 script = getScriptPath( argList[ 0 ], path ) 39 40 # Use mechanism based on that used in magic_run function of IPython 41 # for executing script 42 if script: 43 save_argv = sys.argv 44 sys.argv = [ script ] + argList[ 1 : ] 45 prog_ns = self.shell.user_ns 46 runner = self.shell.safe_execfile 47 runner( script, prog_ns, prog_ns ) 48 sys.argv = save_argv 49 else: 50 logger.warning( "Script '%s' not found in search path '%s'" %\ 51 ( argList[ 0 ], path ) ) 52 else: 53 print magic_ganga.__doc__ 54 55 return None
56 57 InteractiveShell.magic_ganga = magic_ganga 58