ATLAS Offline Software
Loading...
Searching...
No Matches
hist_bookkeep_utils Namespace Reference

Functions

 weed (line)
 get_val (_key, line)
 get_hbuff (_id, _infname, _withcomment=True)
 get_comm_def (_buff)
 is_xml_form (_line)

Function Documentation

◆ get_comm_def()

hist_bookkeep_utils.get_comm_def ( _buff)


take a buffer of histogram + comment, and split it in comment+xml def

Definition at line 77 of file hist_bookkeep_utils.py.

77def get_comm_def(_buff):
78 _comm_def=[[],[]]
79 _iscomm=False
80 for _bitem in _buff:
81 if _bitem.strip().startswith("<!--"):
82 _iscomm=True
83 _comm_def[0].append(_bitem)
84 if ( re.search("-->",_bitem) ):
85 _iscomm=False
86 elif ( _iscomm):
87 _comm_def[0].append(_bitem)
88 if re.search("-->",_bitem):
89 _iscomm=False
90 else:
91 _comm_def[1].append(_bitem)
92
93 return _comm_def
94

◆ get_hbuff()

hist_bookkeep_utils.get_hbuff ( _id,
_infname,
_withcomment = True )


Definition at line 30 of file hist_bookkeep_utils.py.

30def get_hbuff(_id,_infname,_withcomment=True):
31 # buffering the xml definition lines:
32 _buff=[]
33 _dobuff=False
34 # buffering the comment lines
35 _commbuff=[]
36 _docommbuff=False
37
38 # loop over file to find histo-s with id xml and comment:
39 with open(_infname, 'r') as _f:
40 for _line in _f:
41 _wline=weed(_line)
42 if _wline.startswith("<h id=\""+_id+"\""):
43 _dobuff=True
44 _buff=_commbuff
45 elif _wline.startswith("</h>"):
46 if (_dobuff):
47 _buff.append(_line)
48 # prepend comment
49 _dobuff=False
50 _commbuff=[]
51 _docommbuff=False
52 elif _withcomment and _wline.startswith("<!--"):
53 if not _dobuff:
54 _commbuff.append(_line)
55 if ( not re.search("-->",_wline) ):
56 # multi-line comment
57 _docommbuff=True
58 else:
59 _docommbuff=False
60 else:
61 if (_docommbuff):
62 _commbuff.append(_line)
63 if ( re.search("-->",_wline) ):
64 _docommbuff=False
65 elif not is_xml_form(_wline):
66 print('Warning', _infname, 'non-xml formatted line :', _line)
67
68 # buffer histo lines here:
69 if (_dobuff):
70 _buff.append(_line)
71
72 return _buff
void print(char *figname, TCanvas *c1)

◆ get_val()

hist_bookkeep_utils.get_val ( _key,
line )


Definition at line 19 of file hist_bookkeep_utils.py.

19def get_val(_key,line):
20 _val=""
21 line=weed(line)
22 pieces=line.split(" ")
23 for piece in pieces:
24 if piece.startswith(_key+"="):
25 _val=piece.split("\"")[1]
26 return _val

◆ is_xml_form()

hist_bookkeep_utils.is_xml_form ( _line)

check for non-xml formated lines:

Definition at line 97 of file hist_bookkeep_utils.py.

97def is_xml_form(_line):
98 _line=_line.strip()
99 if _line.startswith("<") or _line.endswith(">"):
100 # assume these are .xml-s
101 return True
102 if not _line:
103 # empty line, that is '' after strip
104 return True
105 # any other exceptions?
106 if _line.startswith("&"):
107 # including daughters
108 return True
109 else:
110 return False

◆ weed()

hist_bookkeep_utils.weed ( line)

Definition at line 10 of file hist_bookkeep_utils.py.

10def weed(line):
11 line=line.strip()
12 line=re.sub(' +',' ',line)
13 line=re.sub(' =','=',line)
14 line=re.sub('= ','=',line)
15 return line