class BaseException:
fixed_args=()
fixed_msg=None
default_msg=''
args_sep=','
repr_func=str
capitalize_msg=False
sign_after_msg=''
fancy_output=False
def __init__(self,*args,**kwargs):
self.args=args
self.kwargs=kwargs
def __call__(self,*args,**kwargs):
self.__init__(args,kwargs)
return self
def __str__(self):
self.process_opts()
output=self.process_args()
if self.fancy_output:
return '\n\n'+output+'\n'
return output
def process_opts(self):
for name,value in self.kwargs:
setattr(self,name,value)
def process_args(self):
args=self.fixed_args+self.args
if args:
if self.fixed_msg:
msg=self.fixed_msg
_args=args
else:
msg=args[-1]
_args=args[:-1]
if self.capitalize_msg:
msg=msg.capitalize()
if self.sign_after_msg:
msg+=self.sign_after_msg
str_args=self.args_sep.join(self.repr_func(arg) for arg in _args)
if str_args:
return "%(str_args)s: %(msg)s" %locals()
return self.repr_func(msg)
return self.repr_func(self.default_msg)