diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-11-17 07:46:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-17 07:46:39 +0100 |
commit | 4545c51f37e89bc876da759c26e85eb2d65da004 (patch) | |
tree | 3d34bdb87c781c1b5c5c3463abd0d67565e02bf8 | |
parent | 15a8c72391ba7be439a17f453c77b18e6d06ce5e (diff) | |
parent | d2ed8e2863138f2d4df1012f90f187a823812917 (diff) | |
download | vyos-1x-4545c51f37e89bc876da759c26e85eb2d65da004.tar.gz vyos-1x-4545c51f37e89bc876da759c26e85eb2d65da004.zip |
Merge pull request #1660 from aapostoliuk/T4819-sagitta
T4819: Allow printing Warning messages in multiple lines with \n
-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): |