1
2
3
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
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
33 argList = parameter_s.split()
34
35
36 if argList:
37 path = getSearchPath()
38 script = getScriptPath( argList[ 0 ], path )
39
40
41
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