Belle II Software
development
logfilter.py
1
8
"""
9
Log Filter class to replace string occurrences in log messages to simplify testing
10
"""
11
import
re
12
13
14
class
LogReplacementFilter
:
15
"""
16
Simple class to intercept anything written to python stdout and replace
17
a given set of strings with placehholders to improve reproducibility.
18
"""
19
20
def
__init__
(self, out, replacements):
21
"""Setup the forwarding and replacements
22
23
Parameters:
24
out (file object): Where to forward the output too
25
replacements (dict(str, str)): Dictionary of strings and their replacements
26
"""
27
28
self.
_out
= out
29
30
self.
_replacements
= replacements
31
32
self.
_regex
= re.compile(
"|"
.join(re.escape(e)
for
e
in
replacements))
33
34
def
write
(self, data):
35
"""Check all messages for strings to replace"""
36
replaced = self.
_regex
.sub(
lambda
m: self.
_replacements
[m[0]], data)
37
self.
_out
.
write
(replaced)
38
39
def
__getattr__
(self, name):
40
"""Forward all other methods from the out stream"""
41
return
getattr(self.
_out
, name)
b2test_utils.logfilter.LogReplacementFilter
Definition
logfilter.py:14
b2test_utils.logfilter.LogReplacementFilter._out
_out
where to forward output
Definition
logfilter.py:28
b2test_utils.logfilter.LogReplacementFilter.__getattr__
__getattr__(self, name)
Definition
logfilter.py:39
b2test_utils.logfilter.LogReplacementFilter.write
write(self, data)
Definition
logfilter.py:34
b2test_utils.logfilter.LogReplacementFilter._replacements
_replacements
what to replace
Definition
logfilter.py:30
b2test_utils.logfilter.LogReplacementFilter.__init__
__init__(self, out, replacements)
Definition
logfilter.py:20
b2test_utils.logfilter.LogReplacementFilter._regex
_regex
build a regular expression from dictionary keys
Definition
logfilter.py:32
framework
scripts
b2test_utils
logfilter.py
Generated on Mon Sep 1 2025 02:51:48 for Belle II Software by
1.13.2