CMS 3D CMS Logo

crabConfigParser.py
Go to the documentation of this file.
1 
5 
6 
7 from ConfigParser import *
8 
9 
14 
15 
16  def __init__(self):
17  ConfigParser.__init__(self)
18  self.optionxform = str
19 
24  def writeCrabConfig(self,filename):
25  sections = self.sections()
26  fixedsections = ['General','JobType','Data','Site','User','Debug']
27  outlines = []
28  # Add inital header for crab config file
29  outlines.append('from WMCore.Configuration import Configuration \n')
30  outlines.append('config = Configuration()')
31  # we will first add the main crab3 config sections in the given order
32  for fixedsection in fixedsections:
33  if fixedsection in sections:
34  outlines.extend(self.getSectionLines(fixedsection))
35  sections.remove(fixedsection)
36  # add additional sections (may be added in future crab3 versions ?)
37  for section in sections:
38  outlines.extend(self.getSectionLines(section))
39  #print filename
40  with open(filename,'wb') as outfile:
41  outfile.write('\n'.join(outlines) + '\n')
42 
49  def getSectionLines(self,section):
50  sectionLines = []
51  sectionLines.append('\nconfig.section_("%s")'%section)
52  configItems = self.items(section)
53  for configItem in configItems:
54  if not isinstance(configItem[1], str):
55  sectionLines.append('config.%s.%s = %s'%(section,configItem[0],configItem[1]))
56  elif "True" in configItem[1] or "False" in configItem[1]:
57  sectionLines.append('config.%s.%s = %s'%(section,configItem[0],configItem[1]))
58  else:
59  parsed = False
60  if configItem[0]=="runRange" :
61  sectionLines.append('config.%s.%s = \'%s\''%(section,configItem[0],configItem[1]))
62  parsed = True
63  if not parsed:
64  try:
65  sectionLines.append('config.%s.%s = %d'%(section,configItem[0],int(configItem[1])))
66  parsed = True
67  except:
68  pass
69  if not parsed:
70  try:
71  sectionLines.append('config.%s.%s = %.2f'%(section,configItem[0],float(configItem[1])))
72  parsed = True
73  except:
74  pass
75  if not parsed:
76  if isinstance(configItem[1], list):
77  sectionLines.append('config.%s.%s = %s'%(section,configItem[0],str(configItem[1])))
78  parsed = True
79  if not parsed:
80  sectionLines.append('config.%s.%s = \'%s\''%(section,configItem[0],configItem[1]))
81 
82  return sectionLines
def writeCrabConfig(self, filename)
Write CrabConfigParser object to file self: CrabConfigParser.
def getSectionLines(self, section)
Helper function to retrieve crab config output lines for one section self: CrabConfigParser.
static std::string join(char **cmd)
Definition: RemoteFile.cc:19
def __init__(self)
The constructor.
The CrabConfigParser class.
#define str(s)