CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
pkg.AbstractPkg Class Reference
Inheritance diagram for pkg.AbstractPkg:

Public Member Functions

def __init__ (self, config=None)
 
def generate (self)
 
def get_kwds (self)
 
def parse_etags (self, line)
 
def print_etags (self)
 
def print_tags (self)
 
def tmpl_etags (self)
 
def tmpl_tags (self)
 
def write (self, fname, tmpl_name, kwds)
 

Public Attributes

 author
 
 config
 
 date
 
 debug
 
 not_in_dir
 
 pname
 
 tdir
 
 tmpl
 
 working_dir
 

Detailed Description

AbstractPkg takes care how to generate code from template/PKG
package area. The PKG can be any directory which may include
any types of files, e.g. C++ (.cc), python (.py), etc.
This class relies on specific logic which we outline here:

    - each template may use tags defined with double underscores
      enclosure, e.g. __class__, __record__, etc.
    - each template may have example tags, such tags should
      start with @example_. While processing template user may
      choose to strip them off or keep the code behind those tags
    - in addition user may specify pure python code which can
      operate with user defined tags. This code snipped should
      be enclosed with #python_begin and #python_end lines
      which declares start and end of python block

Definition at line 22 of file pkg.py.

Constructor & Destructor Documentation

◆ __init__()

def pkg.AbstractPkg.__init__ (   self,
  config = None 
)

Definition at line 39 of file pkg.py.

39  def __init__(self, config=None):
40  super(AbstractPkg, self).__init__()
41  if not config:
42  self.config = {}
43  else:
44  self.config = config
45  self.pname = self.config.get('pname', None)
46  self.tmpl = self.config.get('tmpl', None)
47  self.debug = self.config.get('debug', 0)
48  self.tdir = template_directory()
49  self.author = user_info(self.config.get('author', None))
50  self.date = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime())
51  self.not_in_dir = self.config.get('not_in_dir', [])
52  self.working_dir = self.config.get('working_dir')
53 

Member Function Documentation

◆ generate()

def pkg.AbstractPkg.generate (   self)

Definition at line 159 of file pkg.py.

159  def generate(self):
160  "Generate package templates in a given directory"
161 
162  # keep current location, since generate will switch directories
163  cdir = os.getcwd()
164 
165  # read from configutation which template files to create
166  tmpl_files = self.config.get('tmpl_files', 'all')
167 
168  # setup keyword arguments which we'll pass to write method
169  kwds = self.get_kwds()
170 
171  # create template package dir and cd into it
172  if tmpl_files == 'all' and self.tmpl not in self.not_in_dir:
173  if os.path.isdir(self.pname):
174  msg = "Can't create package '%s'\n" % self.pname
175  msg += "Directory %s is already exists" % self.pname
176  print(msg)
177  sys.exit(1)
178  os.makedirs(self.pname)
179  os.chdir(self.pname)
180 
181  # read directory driver information and create file list to generate
182  sdir = os.path.join(self.tdir, self.tmpl)
183  sources = [s for s in os.listdir(sdir) \
184  if s != 'Driver.dir' and s.find('~') == -1]
185  driver = os.path.join(sdir, 'Driver.dir')
186  if os.path.isfile(driver):
187  sources = [s.replace('\n', '') for s in open(driver, 'r').readlines()]
188  if 'CVS' in sources:
189  sources.remove('CVS')
190 
191  # special case of Skeleton, which requires to generate only given
192  # file type if self.pname has extension of that type
193  names = set([s.split('.')[0] for s in sources])
194  if names == set(['Skeleton']):
195  if self.pname.find('.') != -1:
196  _, ext = os.path.splitext(self.pname)
197  sources = [s for s in sources if s.rfind(ext) != -1]
198  self.pname = self.pname.replace(ext, '')
199  kwds = self.get_kwds()
200  if not sources:
201  msg = 'Unable to find skeleton for extension "%s"' % ext
202  print(msg)
203  sys.exit(1)
204  bdir = os.environ.get('CMSSW_BASE', '')
205  dirs = os.getcwd().replace(bdir, '').split('/')
206  ldir = os.getcwd().split('/')[-1]
207  idir = ''
208  subsys = kwds['__subsys__']
209  pkgname = kwds['__pkgname__']
210  if sources == ['Skeleton.cc', 'Skeleton.h']:
211  if ldir == 'interface' and os.getcwd().find(bdir) != -1:
212  idir = '%s/%s/interface/' % (subsys, pkgname)
213  # run within some directory of the Sybsystem/Pkg area
214  # and only for mkskel <file>.cc
215  elif sources == ['Skeleton.cc'] and \
216  len(dirs) == 5 and dirs[0] == '' and dirs[1] == 'src':
217  idir = '%s/%s/interface/' % (subsys, pkgname)
218  elif sources == ['Skeleton.h'] and ldir == 'interface' and \
219  len(dirs) == 5 and dirs[0] == '' and dirs[1] == 'src':
220  idir = '%s/%s/interface/' % (subsys, pkgname)
221  kwds.update({'__incdir__': idir})
222 
223  # loop over source files, create dirs as necessary and generate files
224  # names for writing templates
225  gen_files = []
226  for src in sources:
227  if tmpl_files != 'all':
228  fname, ext = os.path.splitext(src)
229  if tmpl_files != ext:
230  continue
231  #also reject if this is the wrong directory
232  if self.working_dir and src.split('/')[-2] != self.working_dir:
233  continue
234  src = src.split('/')[-1]
235  if self.debug:
236  print("Read", src)
237  items = src.split('/')
238  if items[-1] == '/':
239  items = items[:-1]
240  tname = items[-1] # template file name
241  tmpl_name = os.path.join(sdir, items[-1]) # full tmpl file name
242  if os.path.isfile(tmpl_name):
243  ftype = 'file'
244  else:
245  ftype = 'dir'
246  name2gen = src # new file we'll create
247  if items[-1] == 'testBuildFile.xml':
248  name2gen = '/'.join(src.split('/')[:-1])+'/BuildFile.xml'
249  if -1 !=tname.split('.')[0].find(self.tmpl): # need to substitute
250  name2gen = name2gen.replace(self.tmpl, self.pname)
251  name2gen = os.path.join(os.getcwd(), name2gen)
252  if self.debug:
253  print("Create", name2gen)
254  if ftype == 'dir':
255  if not os.path.isdir(name2gen):
256  os.makedirs(name2gen)
257  continue # we're done with dir
258  fdir = os.path.dirname(name2gen)
259  if not os.path.isdir(fdir):
260  os.makedirs(fdir)
261  self.write(name2gen, tmpl_name, kwds)
262  gen_files.append(name2gen.split('/')[-1])
263  if tmpl_files == 'all' and self.tmpl not in self.not_in_dir:
264  msg = 'New package "%s" of %s type is successfully generated' \
265  % (self.pname, self.tmpl)
266  else:
267  msg = 'Generated %s file' % ', '.join(gen_files)
268  if len(gen_files) > 1:
269  msg += 's'
270  print(msg)
271  # return back where we started
272  os.chdir(cdir)
273  if msg.find('New package') != -1:
274  tree(self.pname)

References geometry.Alignables.config, preexistingValidation.PreexistingValidation.config, plottingOptions.BasePlottingOptions.config, pkg.AbstractPkg.config, cscdqm::EventProcessorMutex.config, genericValidation.GenericValidation.config, CSCOfflineClient.config, validateAlignments.ValidationBase.config, CSCMonitorModule.config, cscdqm::Collection.config, cscdqm::Dispatcher.config, cscdqm::EventProcessor.config, validateAlignments.ValidationJobMultiIOV.config, DigiComparisonTask.debug, TPComparisonTask.debug, ZDCTask.debug, HcalOfflineHarvesting.debug, HcalOnlineHarvesting.debug, HFRaddamTask.debug, LaserTask.debug, NoCQTask.debug, PedestalTask.debug, QIE10Task.debug, QIE11Task.debug, RecHitTask.debug, UMNioTask.debug, RawTask.debug, TPTask.debug, DigiTask.debug, LEDTask.debug, DTDigiToRawModule.debug, CSCRPCData.debug, CSCTMBScope.debug, DTDigiToRaw.debug, ALIUtils.debug, crabFunctions.CrabController.debug, DTSegmentsTask.debug, DTOccupancyEfficiency.debug, DTTTrigCorrectionFirst.debug, DTDDUUnpacker.debug, pkg.AbstractPkg.debug, DTTPDeadWriter.debug, DTTTrigWriter.debug, CSCDCCEventData.debug, DTT0CalibrationRMS.debug, SiPixelRawToDigi.debug, DTNoiseComputation.debug, DTOccupancyPoint.debug, DTTTrigSyncT0Only.debug, DTROS25Unpacker.debug, util.rrapi.RRApi.debug, DTEfficiencyTask.debug, DTT0Calibration.debug, DTTTrigCalibration.debug, DTRunConditionVar.debug, CSCDDUEventData.debug, PPSAlignmentConfigESSource.debug, DTChamberEfficiencyTask.debug, HCALResponse.debug, DTChamberEfficiency.debug, FCDTask.debug, CSCDCCUnpacker.debug, CSCComparatorData.debug, DTTMax.debug, DTVDriftCalibration.debug, DTTTrigSyncFromDB.debug, CSCTMBData.debug, PixelDataFormatter.debug, DTTTrigSyncTOFCorr.debug, CSCTMBHeader.debug, CSCEventData.debug, BaseParticlePropagator.debug, CSCALCTTrailer.debug, CSCALCTHeader.debug, crabFunctions.CrabTask.debug, spr.find(), pkg.AbstractPkg.get_kwds(), join(), pkg.AbstractPkg.not_in_dir, pkg.AbstractPkg.pname, print(), python.rootplot.root2matplotlib.replace(), submitPVValidationJobs.split(), pkg.AbstractPkg.tdir, pkg.AbstractPkg.tmpl, pkg.AbstractPkg.working_dir, edm::ThreadSafeOutputFileStream.write(), Json::Writer.write(), AlignmentCorrelationsIO.write(), edm::RunLumiEntryInfo.write(), edm::RunAuxiliary.write(), pos::PixelConfig.write(), AlignmentCorrelationsIORoot.write(), SurveyOutput.write(), FileBlob.write(), ExTestEcalChannelStatusAnalyzer.write(), HcalSiPMCharacteristicsPopConAnalyzer.write(), edm::EventEntryInfo.write(), HcalTPChannelParametersPopConAnalyzer.write(), HcalSiPMParametersPopConAnalyzer.write(), HcalTPParametersPopConAnalyzer.write(), HcalFrontEndMapPopConAnalyzer.write(), HcalPedestalsPopConAnalyzer.write(), HcalL1TriggerObjectsPopConAnalyzer.write(), HcalLUTCorrsPopConAnalyzer.write(), HcalPedestalWidthsPopConAnalyzer.write(), HcalQIEDataPopConAnalyzer.write(), HcalRecoParamsPopConAnalyzer.write(), HcalValidationCorrsPopConAnalyzer.write(), HcalGainWidthsPopConAnalyzer.write(), HcalZSThresholdsPopConAnalyzer.write(), HcalPFCorrsPopConAnalyzer.write(), HcalLutMetadataPopConAnalyzer.write(), HcalElectronicsMapPopConAnalyzer.write(), HcalMCParamsPopConAnalyzer.write(), CastorSaturationCorrsPopConAnalyzer.write(), CastorPedestalsPopConAnalyzer.write(), HcalRespCorrsPopConAnalyzer.write(), HcalTimeCorrsPopConAnalyzer.write(), HcalTimingParamsPopConAnalyzer.write(), HcalLongRecoParamsPopConAnalyzer.write(), CastorChannelQualityPopConAnalyzer.write(), HcalQIETypesPopConAnalyzer.write(), CastorElectronicsMapPopConAnalyzer.write(), CastorGainsPopConAnalyzer.write(), CastorGainWidthsPopConAnalyzer.write(), HcalGainsPopConAnalyzer.write(), CastorPedestalWidthsPopConAnalyzer.write(), HcalDcsValuesPopConAnalyzer.write(), CastorQIEDataPopConAnalyzer.write(), CastorRecoParamsPopConAnalyzer.write(), HcalChannelQualityPopConAnalyzer.write(), HcalDcsMapPopConAnalyzer.write(), HcalFlagHFDigiTimeParamsPopConAnalyzer.write(), edm::LuminosityBlockAuxiliary.write(), HcalZDCLowGainFractionsPopConAnalyzer.write(), MultiFileBlob.write(), personalPlayback.Applet.write(), edm::AsciiOutputModule.write(), SiPixelConfigWriter.write(), SiStripConfigWriter.write(), AlignmentParametersIO.write(), popcon::PopConAnalyzer< S >.write(), AlignmentUserVariablesIO.write(), edm::ProductProvenance.write(), Json::FastWriter.write(), edm::EventEntryDescription.write(), edm::ModuleDescription.write(), popcon::PopCon.write(), edm::ProvenanceCheckerOutputModule.write(), edm::GetProductCheckerOutputModule.write(), edm::Parentage.write(), RawEventOutputModuleForBU< Consumer >.write(), MuonAlignmentOutputXML.write(), electronCompare.flushfile.write(), edm::StableProvenance.write(), l1t::LUT.write(), electronStore.flushfile.write(), XMLDOMBlock.write(), edmplugin::CacheParser.write(), Benchmark.write(), edm::EventAuxiliary.write(), CSCPairResidualsConstraint.write(), edm::BranchDescription.write(), uploads.output.write(), Json::StyledWriter.write(), edm::Provenance.write(), evf::EvFOutputModule.write(), ztee.GZipLog.write(), amc13::Packet.write(), presentation.SubsectionBase.write(), edm::FileInPath.write(), MuonResidualsTwoBin.write(), DTWorkflow.DTWorkflow.write(), pkg.AbstractPkg.write(), Json::StyledStreamWriter.write(), edm::ProductResolverBase.write(), XMLProcessor.write(), esMonitoring.LineHistoryEnd.write(), MuonResidualsFitter.write(), esMonitoring.LineHistoryStart.write(), DQMRootOutputModule.write(), StraightTrackAlignment::RPSetPlots.write(), edm::global::OutputModuleBase.write(), betterConfigParser.BetterConfigParser.write(), edm::limited::OutputModuleBase.write(), edm::one::OutputModuleBase.write(), and querying.connection.write().

◆ get_kwds()

def pkg.AbstractPkg.get_kwds (   self)

Definition at line 143 of file pkg.py.

143  def get_kwds(self):
144  "Return keyword arguments to be used in methods"
145  kwds = {'__pkgname__': self.config.get('pkgname', 'Package'),
146  '__author__': self.author,
147  '__date__': self.date,
148  '__class__': self.pname,
149  '__class_lowercase__': self.pname.lower(),
150  '__name__': self.pname,
151  '__subsys__': self.config.get('subsystem', 'Subsystem')}
152  args = self.config.get('args', None)
153  kwds.update(args)
154  if self.debug:
155  print("Template tags:")
156  pprint.pprint(kwds)
157  return kwds
158 

References pkg.AbstractPkg.author, geometry.Alignables.config, preexistingValidation.PreexistingValidation.config, plottingOptions.BasePlottingOptions.config, pkg.AbstractPkg.config, cscdqm::EventProcessorMutex.config, genericValidation.GenericValidation.config, CSCOfflineClient.config, validateAlignments.ValidationBase.config, CSCMonitorModule.config, cscdqm::Collection.config, cscdqm::Dispatcher.config, cscdqm::EventProcessor.config, validateAlignments.ValidationJobMultiIOV.config, pkg.AbstractPkg.date, DigiComparisonTask.debug, TPComparisonTask.debug, HcalOfflineHarvesting.debug, HcalOnlineHarvesting.debug, HFRaddamTask.debug, LaserTask.debug, NoCQTask.debug, PedestalTask.debug, QIE10Task.debug, QIE11Task.debug, RecHitTask.debug, UMNioTask.debug, ZDCTask.debug, RawTask.debug, TPTask.debug, DigiTask.debug, LEDTask.debug, DTDigiToRawModule.debug, CSCRPCData.debug, CSCTMBScope.debug, ALIUtils.debug, DTDigiToRaw.debug, crabFunctions.CrabController.debug, DTSegmentsTask.debug, DTOccupancyEfficiency.debug, DTTTrigCorrectionFirst.debug, DTDDUUnpacker.debug, pkg.AbstractPkg.debug, DTTPDeadWriter.debug, DTTTrigWriter.debug, DTT0CalibrationRMS.debug, CSCDCCEventData.debug, SiPixelRawToDigi.debug, DTNoiseComputation.debug, DTOccupancyPoint.debug, DTTTrigSyncT0Only.debug, DTROS25Unpacker.debug, util.rrapi.RRApi.debug, DTT0Calibration.debug, DTEfficiencyTask.debug, DTTTrigCalibration.debug, DTRunConditionVar.debug, CSCDDUEventData.debug, PPSAlignmentConfigESSource.debug, DTChamberEfficiencyTask.debug, HCALResponse.debug, FCDTask.debug, DTChamberEfficiency.debug, CSCDCCUnpacker.debug, CSCComparatorData.debug, DTTMax.debug, DTTTrigSyncFromDB.debug, DTVDriftCalibration.debug, CSCTMBData.debug, PixelDataFormatter.debug, DTTTrigSyncTOFCorr.debug, CSCTMBHeader.debug, CSCEventData.debug, BaseParticlePropagator.debug, CSCALCTTrailer.debug, CSCALCTHeader.debug, crabFunctions.CrabTask.debug, pkg.AbstractPkg.pname, and print().

Referenced by pkg.AbstractPkg.generate().

◆ parse_etags()

def pkg.AbstractPkg.parse_etags (   self,
  line 
)
Determine either skip or keep given line based on class tags
meta-strings

Definition at line 97 of file pkg.py.

97  def parse_etags(self, line):
98  """
99  Determine either skip or keep given line based on class tags
100  meta-strings
101  """
102  tmpl_etags = self.tmpl_etags()
103  keep_etags = self.config.get('tmpl_etags', [])
104  for tag in tmpl_etags:
105  for valid_tag in keep_etags:
106  if line.find(valid_tag) != -1:
107  line = line.replace(valid_tag, '')
108  return line
109  if line.find(tag) != -1:
110  line = ''
111  return line
112  return line
113 

References geometry.Alignables.config, preexistingValidation.PreexistingValidation.config, plottingOptions.BasePlottingOptions.config, pkg.AbstractPkg.config, cscdqm::EventProcessorMutex.config, genericValidation.GenericValidation.config, CSCOfflineClient.config, validateAlignments.ValidationBase.config, CSCMonitorModule.config, cscdqm::Collection.config, cscdqm::Dispatcher.config, cscdqm::EventProcessor.config, validateAlignments.ValidationJobMultiIOV.config, and pkg.AbstractPkg.tmpl_etags().

Referenced by pkg.AbstractPkg.write().

◆ print_etags()

def pkg.AbstractPkg.print_etags (   self)

Definition at line 71 of file pkg.py.

71  def print_etags(self):
72  "Print out template example tags"
73  for key in self.tmpl_etags():
74  print(key)
75 

References print(), and pkg.AbstractPkg.tmpl_etags().

◆ print_tags()

def pkg.AbstractPkg.print_tags (   self)

Definition at line 92 of file pkg.py.

92  def print_tags(self):
93  "Print out template keys"
94  for key in self.tmpl_tags():
95  print(key)
96 

References print(), and pkg.AbstractPkg.tmpl_tags().

◆ tmpl_etags()

def pkg.AbstractPkg.tmpl_etags (   self)

Definition at line 54 of file pkg.py.

54  def tmpl_etags(self):
55  "Scan template files and return example tags"
56  keys = []
57  sdir = '%s/%s' % (self.tdir, self.tmpl)
58  for name in os.listdir(sdir):
59  if name[-1] == '~':
60  continue
61  if name == 'CVS':
62  continue
63  fname = os.path.join(sdir, name)
64  with open(fname, 'r') as stream:
65  for line in stream.readlines():
66  if line.find('@example_') != -1: # possible tag
67  keys += [k for k in line.split() if \
68  k.find('@example_') != -1]
69  return set(keys)
70 

References pkg.AbstractPkg.tdir, and pkg.AbstractPkg.tmpl.

Referenced by pkg.AbstractPkg.parse_etags(), and pkg.AbstractPkg.print_etags().

◆ tmpl_tags()

def pkg.AbstractPkg.tmpl_tags (   self)

Definition at line 76 of file pkg.py.

76  def tmpl_tags(self):
77  "Scan template files and return template tags"
78  keys = []
79  sdir = '%s/%s' % (self.tdir, self.tmpl)
80  for name in os.listdir(sdir):
81  if name[-1] == '~':
82  continue
83  if name == 'CVS':
84  continue
85  fname = os.path.join(sdir, name)
86  with open(fname, 'r') as stream:
87  for line in stream.readlines():
88  if line.find('__') != -1: # possible key
89  keys += [k for k in parse_word(line)]
90  return set(keys)
91 

References utils.parse_word(), pkg.AbstractPkg.tdir, and pkg.AbstractPkg.tmpl.

Referenced by pkg.AbstractPkg.print_tags().

◆ write()

def pkg.AbstractPkg.write (   self,
  fname,
  tmpl_name,
  kwds 
)

Definition at line 114 of file pkg.py.

114  def write(self, fname, tmpl_name, kwds):
115  "Create new file from given template name and set of arguments"
116  code = ""
117  read_code = False
118  if os.path.exists(fname):
119  return
120  with open(fname, 'w') as stream:
121  for line in open(tmpl_name, 'r').readlines():
122  line = self.parse_etags(line)
123  if not line:
124  continue
125  if line.find('#python_begin') != -1:
126  read_code = True
127  continue
128  if line.find('#python_end') != -1:
129  read_code = False
130  if read_code:
131  code += line
132  if code and not read_code:
133  res = functor(code, kwds, self.debug)
134  stream.write(res)
135  code = ""
136  continue
137  if not read_code:
138  for key, val in kwds.items():
139  if isinstance(val, str):
140  line = line.replace(key, val)
141  stream.write(line)
142 

References DigiComparisonTask.debug, TPComparisonTask.debug, NoCQTask.debug, PedestalTask.debug, QIE10Task.debug, QIE11Task.debug, RecHitTask.debug, LaserTask.debug, UMNioTask.debug, ZDCTask.debug, HcalOfflineHarvesting.debug, HcalOnlineHarvesting.debug, HFRaddamTask.debug, RawTask.debug, TPTask.debug, LEDTask.debug, DigiTask.debug, DTDigiToRawModule.debug, CSCRPCData.debug, CSCTMBScope.debug, ALIUtils.debug, DTDigiToRaw.debug, crabFunctions.CrabController.debug, DTSegmentsTask.debug, DTOccupancyEfficiency.debug, DTTTrigCorrectionFirst.debug, pkg.AbstractPkg.debug, DTTPDeadWriter.debug, DTDDUUnpacker.debug, DTTTrigWriter.debug, CSCDCCEventData.debug, DTT0CalibrationRMS.debug, SiPixelRawToDigi.debug, DTNoiseComputation.debug, DTOccupancyPoint.debug, DTTTrigSyncT0Only.debug, DTROS25Unpacker.debug, util.rrapi.RRApi.debug, DTT0Calibration.debug, DTEfficiencyTask.debug, DTTTrigCalibration.debug, DTRunConditionVar.debug, CSCDDUEventData.debug, PPSAlignmentConfigESSource.debug, DTChamberEfficiencyTask.debug, HCALResponse.debug, DTChamberEfficiency.debug, FCDTask.debug, CSCDCCUnpacker.debug, CSCComparatorData.debug, DTTMax.debug, DTTTrigSyncFromDB.debug, DTVDriftCalibration.debug, CSCTMBData.debug, PixelDataFormatter.debug, DTTTrigSyncTOFCorr.debug, CSCTMBHeader.debug, CSCEventData.debug, BaseParticlePropagator.debug, CSCALCTTrailer.debug, CSCALCTHeader.debug, crabFunctions.CrabTask.debug, utils.functor(), and pkg.AbstractPkg.parse_etags().

Referenced by pkg.AbstractPkg.generate().

Member Data Documentation

◆ author

pkg.AbstractPkg.author

Definition at line 49 of file pkg.py.

Referenced by pkg.AbstractPkg.get_kwds().

◆ config

pkg.AbstractPkg.config

◆ date

pkg.AbstractPkg.date

Definition at line 50 of file pkg.py.

Referenced by pkg.AbstractPkg.get_kwds().

◆ debug

pkg.AbstractPkg.debug

◆ not_in_dir

pkg.AbstractPkg.not_in_dir

Definition at line 51 of file pkg.py.

Referenced by pkg.AbstractPkg.generate().

◆ pname

pkg.AbstractPkg.pname

Definition at line 45 of file pkg.py.

Referenced by pkg.AbstractPkg.generate(), and pkg.AbstractPkg.get_kwds().

◆ tdir

pkg.AbstractPkg.tdir

◆ tmpl

pkg.AbstractPkg.tmpl

◆ working_dir

pkg.AbstractPkg.working_dir

Definition at line 52 of file pkg.py.

Referenced by pkg.AbstractPkg.generate().

utils.parse_word
def parse_word(word)
Definition: utils.py:37
tree
Definition: tree.py:1
utils.template_directory
def template_directory()
Definition: utils.py:23
join
static std::string join(char **cmd)
Definition: RemoteFile.cc:17
models.generate
def generate(map_blobs=False, class_name=None)
Definition: models.py:189
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
utils.user_info
def user_info(ainput=None)
Definition: utils.py:112
submitPVValidationJobs.split
def split(sequence, size)
Definition: submitPVValidationJobs.py:352
print
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:46
writeEcalDQMStatus.write
write
Definition: writeEcalDQMStatus.py:48
python.rootplot.root2matplotlib.replace
def replace(string, replacements)
Definition: root2matplotlib.py:444
utils.functor
def functor(code, kwds, debug=0)
Definition: utils.py:70