ATLAS Offline Software
Loading...
Searching...
No Matches
python.Helpers.ShutUp Class Reference
Inheritance diagram for python.Helpers.ShutUp:
Collaboration diagram for python.Helpers.ShutUp:

Public Member Functions

 __init__ (self, filters=DefaultFilter)
 __del__ (self)
 mute (self)
 unMute (self)
 __enter__ (self)
 __exit__ (self, exc_type, exc_val, exc_tb)

Public Attributes

 save_err = open( '/dev/null', 'w' )
 save_out = open( '/dev/null', 'w' )
 quiet_err = NamedTemporaryFile( suffix = ".msg.log" )
 quiet_out = NamedTemporaryFile( suffix = ".msg.log" )
 filters = filters

Static Public Attributes

list DefaultFilter

Protected Attributes

bool _dummy = False

Private Member Functions

 __filterRootMessages (self, fd)

Detailed Description

A little helper class to keep ROOT silent...

Definition at line 32 of file Tools/PyUtils/python/Helpers.py.

Constructor & Destructor Documentation

◆ __init__()

python.Helpers.ShutUp.__init__ ( self,
filters = DefaultFilter )

Definition at line 41 of file Tools/PyUtils/python/Helpers.py.

41 def __init__(self, filters = DefaultFilter):
42 self._dummy = False # if dummy, we don't really shut-up ROOT...
43 if os.environ.get('PYUTILS_SHUTUP_DEBUG', '0') == '1':
44 self._dummy = True
45
46 self.save_err = open( '/dev/null', 'w' )
47 self.save_out = open( '/dev/null', 'w' )
48 try:
49 self.quiet_err = NamedTemporaryFile( suffix = ".msg.log" )
50 self.quiet_out = NamedTemporaryFile( suffix = ".msg.log" )
51 except OSError:
52 # load problem ?
53 # retry a bit later... (in 2 seconds)
54 import time
55 time.sleep(2) #
56 try:
57 self.quiet_err = NamedTemporaryFile( suffix = ".msg.log" )
58 self.quiet_out = NamedTemporaryFile( suffix = ".msg.log" )
59 except OSError:
60 # then (implicitly) fallback on sys.stderr
61 self._dummy = True
62
63 self.filters = filters
64
65 if not self._dummy:
66 os.dup2( sys.stderr.fileno(), self.save_err.fileno() )
67 os.dup2( sys.stdout.fileno(), self.save_out.fileno() )
68 return
69

◆ __del__()

python.Helpers.ShutUp.__del__ ( self)

Definition at line 70 of file Tools/PyUtils/python/Helpers.py.

70 def __del__ (self):
71 self.save_err.close()
72 self.save_out.close()
73 return
74

Member Function Documentation

◆ __enter__()

python.Helpers.ShutUp.__enter__ ( self)

Definition at line 105 of file Tools/PyUtils/python/Helpers.py.

105 def __enter__(self):
106 return self.mute()

◆ __exit__()

python.Helpers.ShutUp.__exit__ ( self,
exc_type,
exc_val,
exc_tb )

Definition at line 107 of file Tools/PyUtils/python/Helpers.py.

107 def __exit__(self,exc_type, exc_val, exc_tb):
108 return self.unMute()
109
110
111@cache

◆ __filterRootMessages()

python.Helpers.ShutUp.__filterRootMessages ( self,
fd )
private

Definition at line 91 of file Tools/PyUtils/python/Helpers.py.

91 def __filterRootMessages(self, fd):
92 fd.seek(0)
93 for l in fd.readlines():
94 l = l.decode()
95 printOut = True
96 for filter in self.filters:
97 if re.match(filter, l):
98 printOut = False
99 if printOut:
100 print ("PyRoot:",l.replace("\n",""))
101 pass
102 return
103

◆ mute()

python.Helpers.ShutUp.mute ( self)

Definition at line 75 of file Tools/PyUtils/python/Helpers.py.

75 def mute(self):
76 if not self._dummy:
77 os.dup2( self.quiet_err.fileno(), sys.stderr.fileno() )
78 os.dup2( self.quiet_out.fileno(), sys.stdout.fileno() )
79 return
80

◆ unMute()

python.Helpers.ShutUp.unMute ( self)

Definition at line 81 of file Tools/PyUtils/python/Helpers.py.

81 def unMute(self):
82 if not self._dummy:
83 os.dup2( self.save_err.fileno(), sys.stderr.fileno() )
84 os.dup2( self.save_out.fileno(), sys.stdout.fileno() )
85 self.__filterRootMessages(self.quiet_err)
86 self.quiet_err.seek(0)
87 self.__filterRootMessages(self.quiet_out)
88 self.quiet_out.seek(0)
89 return
90

Member Data Documentation

◆ _dummy

bool python.Helpers.ShutUp._dummy = False
protected

Definition at line 42 of file Tools/PyUtils/python/Helpers.py.

◆ DefaultFilter

list python.Helpers.ShutUp.DefaultFilter
static
Initial value:
= [
re.compile("Warning in <TClass::TClass>: no dictionary for class."),
re.compile("Warning in <TEnvRec::ChangeValue>: duplicate entry."),
re.compile("Error in <TStreamerInfo::BuildOld>:."),
]

Definition at line 36 of file Tools/PyUtils/python/Helpers.py.

◆ filters

python.Helpers.ShutUp.filters = filters

Definition at line 63 of file Tools/PyUtils/python/Helpers.py.

◆ quiet_err

python.Helpers.ShutUp.quiet_err = NamedTemporaryFile( suffix = ".msg.log" )

Definition at line 49 of file Tools/PyUtils/python/Helpers.py.

◆ quiet_out

python.Helpers.ShutUp.quiet_out = NamedTemporaryFile( suffix = ".msg.log" )

Definition at line 50 of file Tools/PyUtils/python/Helpers.py.

◆ save_err

python.Helpers.ShutUp.save_err = open( '/dev/null', 'w' )

Definition at line 46 of file Tools/PyUtils/python/Helpers.py.

◆ save_out

python.Helpers.ShutUp.save_out = open( '/dev/null', 'w' )

Definition at line 47 of file Tools/PyUtils/python/Helpers.py.


The documentation for this class was generated from the following file: