|
def | __init__ (self, dbfile, corrtop, dryrun=False, domagic=True) |
|
def | get_all_folders (self, corrtop) |
|
def | run (self, generation=None) |
|
def | make_tag (self, version, toollist, generation) |
|
def | make_magic (self, generation) |
|
def | make_magic_target (self, folder, g, vlist, generation) |
|
def | copy_tag (self, folder, src, target) |
|
def | set_tag (self, folder, tag, htag, check=True) |
|
Definition at line 27 of file MakeHierTags.py.
◆ __init__()
def MakeHierTags.MakeHierTags.__init__ |
( |
|
self, |
|
|
|
dbfile, |
|
|
|
corrtop, |
|
|
|
dryrun = False , |
|
|
|
domagic = True |
|
) |
| |
Definition at line 28 of file MakeHierTags.py.
28 def __init__ (self, dbfile, corrtop, dryrun = False, domagic = True):
29 self.corrtop = corrtop
31 self.domagic = domagic
32 cool.DatabaseSvcFactory.databaseService()
34 if dbfile.endswith (
'.db'):
35 connstring =
"sqlite://;schema=%s;dbname=OFLP200" % dbfile
41 self.db=AtlCoolLib.indirectOpen(connstring,
False,
False,
True)
52 self.get_all_folders (corrtop)
◆ copy_tag()
def MakeHierTags.MakeHierTags.copy_tag |
( |
|
self, |
|
|
|
folder, |
|
|
|
src, |
|
|
|
target |
|
) |
| |
Definition at line 169 of file MakeHierTags.py.
169 def copy_tag (self, folder, src, target):
171 print (
'--> Clone in', folder, src,
'->', target)
174 dbf = self.db.getFolder (folder)
175 objs = dbf.browseObjects (cool.ValidityKeyMin,
177 cool.ChannelSelection.all(),
180 while objs.goToNext():
181 objlist+=[objs.currentRef()]
182 if len(objlist) == 0:
183 print (
"ERROR: No objects cloning tag %s in folder %s" %
186 dbf.storeObject (obj.since(),
192 dbf.setTagDescription (target,
"Copied from " + src)
◆ get_all_folders()
def MakeHierTags.MakeHierTags.get_all_folders |
( |
|
self, |
|
|
|
corrtop |
|
) |
| |
Definition at line 56 of file MakeHierTags.py.
56 def get_all_folders (self, corrtop):
58 for tooldesc
in corrtop.versions[
'@']:
59 tool = tooldesc[0](
'', source=[CALOCORR_COOL, CALOCORR_JO])
62 folder = tool.detStoreKey
65 except AttributeError:
67 self.funcmap[tooldesc[0]] = folder
68 self.folders = ftmp.keys()
◆ make_magic()
def MakeHierTags.MakeHierTags.make_magic |
( |
|
self, |
|
|
|
generation |
|
) |
| |
Definition at line 127 of file MakeHierTags.py.
127 def make_magic (self, generation):
130 for g
in geom_strings:
131 (globver, tryhier) = self.corrtop.geom_match(
'MakeHierTags', g)
132 if globver[0] ==
'@':
continue
133 (vlist, version) = self.corrtop.lookup_version (globver,
None)
134 for f
in self.folders:
135 self.make_magic_target (f, g, vlist, generation)
136 print (
"Made magic targets for", g)
138 for f
in self.folders:
139 (dum1, dum2, corrclass, basename) = f.split (
'/')
140 magictag =
'TagInfo/' + corrclass +
"." + generation + basename + \
142 toptag = corrclass +
"-" + generation[:-1]
143 self.set_tag (f, magictag, toptag,
False)
144 print (
"Make magic", f)
◆ make_magic_target()
def MakeHierTags.MakeHierTags.make_magic_target |
( |
|
self, |
|
|
|
folder, |
|
|
|
g, |
|
|
|
vlist, |
|
|
|
generation |
|
) |
| |
Definition at line 148 of file MakeHierTags.py.
148 def make_magic_target (self, folder, g, vlist, generation):
149 (dum1, dum2, corrclass, basename) = folder.split (
'/')
152 (func, toolversion, order, extra) = split_version_spec (v)
153 if self.funcmap.
get(func) == folder:
156 toolversion =
'dummy'
158 src = corrclass +
"." + generation + basename
159 if len(toolversion) > 0:
160 src = src +
"-" + toolversion
162 target = corrclass +
"." + generation + basename +
"-" + g
164 self.copy_tag (folder, src, target)
◆ make_tag()
def MakeHierTags.MakeHierTags.make_tag |
( |
|
self, |
|
|
|
version, |
|
|
|
toollist, |
|
|
|
generation |
|
) |
| |
Definition at line 87 of file MakeHierTags.py.
87 def make_tag (self, version, toollist, generation):
89 for toolspec
in toollist:
90 toolfunc = toolspec[0]
91 if len(toolspec) >= 2
and isinstance(toolspec[1], str):
92 toolversion = toolspec[1]
96 if toolfunc
not in self.funcmap:
97 print (
"WARNING: skipping tagging for tool", toolfunc.__name__)
99 folder = self.funcmap[toolfunc]
100 if not folder:
continue
101 (dum1, dum2, corrclass, basename) = folder.split (
'/')
103 htmp = corrclass +
'-' + generation + version
110 tag = corrclass +
'.' + generation + basename
111 if len(toolversion) > 0:
112 tag = tag +
'-' + toolversion
114 self.set_tag (folder, tag, htag)
119 for folder
in self.folders:
120 if (folder, htag)
not in self.tags:
121 (dum1, dum2, corrclass, basename) = folder.split (
'/')
122 tag = corrclass +
'.' + generation + basename +
'-dummy'
123 self.set_tag (folder, tag, htag)
◆ run()
def MakeHierTags.MakeHierTags.run |
( |
|
self, |
|
|
|
generation = None |
|
) |
| |
Definition at line 72 of file MakeHierTags.py.
72 def run (self, generation=None):
73 if generation
is None:
74 generation = self.corrtop.correction_generation_default
76 generation = generation +
'-'
78 for (version, toollist)
in self.corrtop.versions.items():
79 if version[0] ==
'@':
continue
80 self.make_tag (version, toollist, generation)
83 self.make_magic (generation)
◆ set_tag()
def MakeHierTags.MakeHierTags.set_tag |
( |
|
self, |
|
|
|
folder, |
|
|
|
tag, |
|
|
|
htag, |
|
|
|
check = True |
|
) |
| |
Definition at line 197 of file MakeHierTags.py.
197 def set_tag (self, folder, tag, htag, check = True):
199 print (
'--> Set htag in', folder, tag, htag)
202 oldtag = self.tags.get ((folder, htag))
204 self.tags[(folder,htag)] = tag
205 if not self.db.existsFolder(folder):
206 print (
"ERROR: Folder %s doesn't exist" % folder)
208 dbf = self.db.getFolder(folder)
210 if tag
not in dbf.listTags():
211 print (
"ERROR: Tag %s doesn't exist in folder %s"
215 dbf.findTagRelation(htag)
216 dbf.deleteTagRelation(htag)
219 dbf.createTagRelation (htag, tag)
222 assert oldtag == tag, (tag, oldtag, folder, htag)
◆ corrtop
MakeHierTags.MakeHierTags.corrtop |
◆ db
MakeHierTags.MakeHierTags.db |
◆ domagic
MakeHierTags.MakeHierTags.domagic |
◆ dryrun
MakeHierTags.MakeHierTags.dryrun |
◆ folders
MakeHierTags.MakeHierTags.folders |
◆ funcmap
MakeHierTags.MakeHierTags.funcmap |
◆ makeleaf
MakeHierTags.MakeHierTags.makeleaf |
◆ tags
MakeHierTags.MakeHierTags.tags |
The documentation for this class was generated from the following file: