gaudirun Namespace Reference

Classes

class  FakeModule
 

Functions

def getArgsWithoutoProfilerInfo (args)
 
def setLibraryPreload (newpreload)
 
def rationalizepath (path)
 
def getArgsFromQmt (qmtfile)
 
def option_cb (option, opt, value, parser)
 

Variables

list _qmt_tmp_opt_files = []
 
tuple parser = OptionParser(usage = "%prog [options] <opts_file> ...")
 
string help = "do not run the application, just parse option files"
 
string metavar = "FILE"
 
string type = "string"
 
string dest = "old_conf_user_apply"
 
 tcmalloc = False,
 
string profilerName = ''
 
string profilerOutput = ''
 
string profilerExtraOptions = ''
 
list preload = []
 
 ncpus = None,
 
string old_conf_user_apply = 'GAUDI_FIXED_APPLY_CONF'
 
 run_info_file = None)
 
list argv = []
 
tuple sys_cpus = cpu_count()
 
string s = "Invalid value : --ncpus : only %i cpus available"
 
 level = logging.INFO
 
tuple root_logger = logging.getLogger()
 
list to_load
 
list args = [ a for a in sys.argv if a != '-T' and not '--tcmalloc'.startswith(a) ]
 
string profilerExecName = ""
 
string igprofPerfOptions = "-d -pp -z -o igprof.pp.gz"
 
string profilerOptions = ""
 
tuple toolname = profilerName.replace('valgrind','')
 
string outoption = "--log-file"
 
tuple profilerPath = distutils.spawn.find_executable(profilerExecName)
 
list to_reload = []
 
list arglist = [profilerPath]
 
tuple c = gaudimain()
 
list options = [ "importOptions(%r)" % f for f in args ]
 
tuple optlines = list(opts.options)
 
dictionary g = {}
 
dictionary l = {}
 
tuple retcode = c.run(opts.gdb,opts.ncpus)
 
dictionary run_info = {}
 

Function Documentation

def gaudirun.getArgsFromQmt (   qmtfile)
Given a .qmt file, return the command line arguments of the corresponding
test.

Definition at line 71 of file gaudirun.py.

71 def getArgsFromQmt(qmtfile):
72  '''
73  Given a .qmt file, return the command line arguments of the corresponding
74  test.
75  '''
76  from xml.etree import ElementTree as ET
77  global _qmt_tmp_opt_files
78  # parse the .qmt file and extract args and options
79  qmt = ET.parse(qmtfile)
80  args = [a.text for a in qmt.findall("argument[@name='args']//text")]
81  options = qmt.find("argument[@name='options']/text")
82 
83  if options is not None: # options need to be dumped in a temporary file
84  from tempfile import NamedTemporaryFile
85  import re
86  if re.search(r"from\s+Gaudi.Configuration\s+import\s+\*"
87  r"|from\s+Configurables\s+import", options.text):
88  tmp_opts = NamedTemporaryFile(suffix='.py')
89  else:
90  tmp_opts = NamedTemporaryFile(suffix='.opts')
91  tmp_opts.write(options.text)
92  tmp_opts.flush()
93  args.append(tmp_opts.name)
94  _qmt_tmp_opt_files.append(tmp_opts)
95 
96  # relative paths in a .qmt are rooted in the qmtest directory, so
97  # - find where the .qmt lives
98  qmtfile = os.path.abspath(qmtfile)
99  if 'qmtest' in qmtfile.split(os.path.sep):
100  # this return the path up to the 'qmtest' entry in qmtfile
101  testdir = qmtfile
102  while os.path.basename(testdir) != 'qmtest':
103  testdir = os.path.dirname(testdir)
104  else:
105  testdir = '.'
106  # - temporarily switch to that directory and rationalize the paths
107  old_cwd = os.getcwd()
108  os.chdir(testdir)
109  args = map(rationalizepath, args)
110  os.chdir(old_cwd)
111 
112  return args
113 
114 #---------------------------------------------------------------------
def getArgsFromQmt(qmtfile)
Definition: gaudirun.py:71
struct GAUDI_API map
Parametrisation class for map-like implementation.
def gaudirun.getArgsWithoutoProfilerInfo (   args)
Remove from the arguments the presence of the profiler and its output in
order to relaunch the script w/o infinite loops.

>>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', 'myopts.py'])
['myopts.py']

>>> getArgsWithoutoProfilerInfo(['--profilerName=igprof', 'myopts.py'])
['myopts.py']

>>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', '--profilerExtraOptions', 'a b c', 'myopts.py'])
['myopts.py']

>>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', '--options', 'a b c', 'myopts.py'])
['--options', 'a b c', 'myopts.py']

Definition at line 7 of file gaudirun.py.

8  """
9  Remove from the arguments the presence of the profiler and its output in
10  order to relaunch the script w/o infinite loops.
11 
12  >>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', 'myopts.py'])
13  ['myopts.py']
14 
15  >>> getArgsWithoutoProfilerInfo(['--profilerName=igprof', 'myopts.py'])
16  ['myopts.py']
17 
18  >>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', '--profilerExtraOptions', 'a b c', 'myopts.py'])
19  ['myopts.py']
20 
21  >>> getArgsWithoutoProfilerInfo(['--profilerName', 'igprof', '--options', 'a b c', 'myopts.py'])
22  ['--options', 'a b c', 'myopts.py']
23  """
24  newargs = []
25  args = list(args) # make a temp copy
26  while args:
27  o = args.pop(0)
28  if o.startswith('--profile'):
29  if '=' not in o:
30  args.pop(0)
31  else:
32  newargs.append(o)
33  return newargs
34 
def getArgsWithoutoProfilerInfo(args)
Definition: gaudirun.py:7
def gaudirun.option_cb (   option,
  opt,
  value,
  parser 
)
Add the option line to a list together with its position in the
argument list.

Definition at line 145 of file gaudirun.py.

145  def option_cb(option, opt, value, parser):
146  """Add the option line to a list together with its position in the
147  argument list.
148  """
149  parser.values.options.append((len(parser.largs), value))
def option_cb(option, opt, value, parser)
Definition: gaudirun.py:145
def gaudirun.rationalizepath (   path)
Convert the given path to a real path if the pointed file exists, otherwise
just normalize it.

Definition at line 59 of file gaudirun.py.

59 def rationalizepath(path):
60  '''
61  Convert the given path to a real path if the pointed file exists, otherwise
62  just normalize it.
63  '''
64  path = os.path.normpath(os.path.expandvars(path))
65  if os.path.exists(path):
66  path = os.path.realpath(path)
67  return path
68 
69 # variable used to keep alive the temporary option files extracted from the .qmt
def rationalizepath(path)
Definition: gaudirun.py:59
def gaudirun.setLibraryPreload (   newpreload)
Adds  a list of libraries to LD_PRELOAD 

Definition at line 35 of file gaudirun.py.

35 def setLibraryPreload(newpreload):
36  ''' Adds a list of libraries to LD_PRELOAD '''
37  preload = os.environ.get("LD_PRELOAD", "")
38  if preload:
39  preload = preload.replace(" ", ":").split(":")
40  else:
41  preload = []
42 
43  for libname in set(preload).intersection(newpreload):
44  logging.warning("Ignoring preload of library %s because it is "
45  "already in LD_PRELOAD.", libname)
46 
47  to_load = [libname
48  for libname in newpreload
49  if libname not in set(preload)]
50 
51  if to_load:
52  preload += to_load
53  preload = ":".join(preload)
54  os.environ["LD_PRELOAD"] = preload
55  logging.info("Setting LD_PRELOAD='%s'", preload)
56 
57  return to_load
58 
def setLibraryPreload(newpreload)
Definition: gaudirun.py:35

Variable Documentation

list gaudirun._qmt_tmp_opt_files = []

Definition at line 70 of file gaudirun.py.

list gaudirun.arglist = [profilerPath]

Definition at line 371 of file gaudirun.py.

tuple gaudirun.args = [ a for a in sys.argv if a != '-T' and not '--tcmalloc'.startswith(a) ]

Definition at line 291 of file gaudirun.py.

list gaudirun.argv = []

Definition at line 228 of file gaudirun.py.

tuple gaudirun.c = gaudimain()

Definition at line 392 of file gaudirun.py.

string gaudirun.dest = "old_conf_user_apply"

Definition at line 162 of file gaudirun.py.

dictionary gaudirun.g = {}

Definition at line 421 of file gaudirun.py.

string gaudirun.help = "do not run the application, just parse option files"

Definition at line 124 of file gaudirun.py.

string gaudirun.igprofPerfOptions = "-d -pp -z -o igprof.pp.gz"

Definition at line 303 of file gaudirun.py.

dictionary gaudirun.l = {}

Definition at line 422 of file gaudirun.py.

gaudirun.level = logging.INFO

Definition at line 262 of file gaudirun.py.

string gaudirun.metavar = "FILE"

Definition at line 126 of file gaudirun.py.

gaudirun.ncpus = None,

Definition at line 222 of file gaudirun.py.

string gaudirun.old_conf_user_apply = 'GAUDI_FIXED_APPLY_CONF'

Definition at line 224 of file gaudirun.py.

list gaudirun.options = [ "importOptions(%r)" % f for f in args ]

Definition at line 397 of file gaudirun.py.

tuple gaudirun.optlines = list(opts.options)

Definition at line 400 of file gaudirun.py.

string gaudirun.outoption = "--log-file"

Definition at line 329 of file gaudirun.py.

tuple gaudirun.parser = OptionParser(usage = "%prog [options] <opts_file> ...")

Definition at line 122 of file gaudirun.py.

string gaudirun.preload = []

Definition at line 221 of file gaudirun.py.

string gaudirun.profilerExecName = ""

Definition at line 297 of file gaudirun.py.

tuple gaudirun.profilerExtraOptions = ''

Definition at line 220 of file gaudirun.py.

string gaudirun.profilerName = ''

Definition at line 218 of file gaudirun.py.

string gaudirun.profilerOptions = ""

Definition at line 305 of file gaudirun.py.

tuple gaudirun.profilerOutput = ''

Definition at line 219 of file gaudirun.py.

tuple gaudirun.profilerPath = distutils.spawn.find_executable(profilerExecName)

Definition at line 350 of file gaudirun.py.

tuple gaudirun.retcode = c.run(opts.gdb,opts.ncpus)

Definition at line 479 of file gaudirun.py.

tuple gaudirun.root_logger = logging.getLogger()

Definition at line 266 of file gaudirun.py.

dictionary gaudirun.run_info = {}

Definition at line 485 of file gaudirun.py.

gaudirun.run_info_file = None)

Definition at line 225 of file gaudirun.py.

string gaudirun.s = "Invalid value : --ncpus : only %i cpus available"

Definition at line 246 of file gaudirun.py.

tuple gaudirun.sys_cpus = cpu_count()

Definition at line 244 of file gaudirun.py.

gaudirun.tcmalloc = False,

Definition at line 217 of file gaudirun.py.

list gaudirun.to_load
Initial value:
1 = [libname
2  for libname in opts.preload
3  if libname not in set(preload)]

Definition at line 281 of file gaudirun.py.

tuple gaudirun.to_reload = []

Definition at line 362 of file gaudirun.py.

tuple gaudirun.toolname = profilerName.replace('valgrind','')

Definition at line 328 of file gaudirun.py.

string gaudirun.type = "string"

Definition at line 151 of file gaudirun.py.