39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
class PrintingObject:
|
|
|
|
class SilenceSignal():
|
|
def __init__(self, obj, value):
|
|
self.obj = obj
|
|
self.new_silent = value
|
|
def __enter__(self):
|
|
self.old_silent = self.obj.get_silence()
|
|
self.obj.set_silence(self.new_silent)
|
|
def __exit__(self, exception_type, exception_value, traceback):
|
|
self.obj.set_silence(self.old_silent)
|
|
|
|
def __init__(self):
|
|
self.silent = True
|
|
|
|
def is_silent(self):
|
|
return self.silent
|
|
|
|
def get_silence(self):
|
|
return self.is_silent()
|
|
|
|
def set_silence(self, value=True):
|
|
self.silent = value
|
|
return self
|
|
|
|
def unset_silence(self):
|
|
self.silent = False
|
|
return self
|
|
|
|
def with_silence(self, value=True):
|
|
self.set_silence(value)
|
|
return self
|
|
|
|
def silence(self, value=True):
|
|
return self.__class__.SilenceSignal(self, value)
|
|
|
|
def _print(self, *args, **kwargs):
|
|
if not self.silent:
|
|
print(*args, **kwargs) |