summaryrefslogtreecommitdiff
path: root/python/vyos
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2022-11-17 07:46:39 +0100
committerGitHub <noreply@github.com>2022-11-17 07:46:39 +0100
commit4545c51f37e89bc876da759c26e85eb2d65da004 (patch)
tree3d34bdb87c781c1b5c5c3463abd0d67565e02bf8 /python/vyos
parent15a8c72391ba7be439a17f453c77b18e6d06ce5e (diff)
parentd2ed8e2863138f2d4df1012f90f187a823812917 (diff)
downloadvyos-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
Diffstat (limited to 'python/vyos')
-rw-r--r--python/vyos/base.py44
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):