diff options
author | aapostoliuk <a.apostoliuk@vyos.io> | 2022-11-15 18:59:48 +0200 |
---|---|---|
committer | aapostoliuk <a.apostoliuk@vyos.io> | 2022-11-16 17:57:31 +0200 |
commit | d2ed8e2863138f2d4df1012f90f187a823812917 (patch) | |
tree | 500c9c0076f931daac0a33a5c55cada90e6ef960 /python | |
parent | 69cfd14b1a684d2d89e146ecd98e756592bb5a54 (diff) | |
download | vyos-1x-d2ed8e2863138f2d4df1012f90f187a823812917.tar.gz vyos-1x-d2ed8e2863138f2d4df1012f90f187a823812917.zip |
T4819: Allow printing Warning messages in multiple lines with \n
Allow printing Warning messages and DeprecationWarning
in multiple lines with \n
Diffstat (limited to 'python')
-rw-r--r-- | python/vyos/base.py | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/python/vyos/base.py b/python/vyos/base.py index 78067d5b2..9b93cb2f2 100644 --- a/python/vyos/base.py +++ b/python/vyos/base.py @@ -15,17 +15,47 @@ from textwrap import fill + +class BaseWarning: + def __init__(self, header, message, **kwargs): + self.message = message + self.kwargs = kwargs + if 'width' not in kwargs: + self.width = 72 + if 'initial_indent' in kwargs: + del self.kwargs['initial_indent'] + if 'subsequent_indent' in kwargs: + del self.kwargs['subsequent_indent'] + self.textinitindent = header + self.standardindent = '' + + def print(self): + messages = self.message.split('\n') + isfirstmessage = True + initial_indent = self.textinitindent + print('') + for mes in messages: + mes = fill(mes, initial_indent=initial_indent, + subsequent_indent=self.standardindent, **self.kwargs) + if isfirstmessage: + isfirstmessage = False + initial_indent = self.standardindent + print(f'{mes}') + print('') + + class Warning(): - def __init__(self, message): - # Reformat the message and trim it to 72 characters in length - message = fill(message, width=72) - print(f'\nWARNING: {message}') + def __init__(self, message, **kwargs): + self.BaseWarn = BaseWarning('WARNING: ', message, **kwargs) + self.BaseWarn.print() + class DeprecationWarning(): - def __init__(self, message): + def __init__(self, message, **kwargs): # Reformat the message and trim it to 72 characters in length - message = fill(message, width=72) - print(f'\nDEPRECATION WARNING: {message}\n') + self.BaseWarn = BaseWarning('DEPRECATION WARNING: ', message, **kwargs) + self.BaseWarn.print() + class ConfigError(Exception): def __init__(self, message): |