summaryrefslogtreecommitdiff
path: root/python/vyos/base.py
diff options
context:
space:
mode:
authoraapostoliuk <a.apostoliuk@vyos.io>2022-11-15 18:59:48 +0200
committeraapostoliuk <a.apostoliuk@vyos.io>2022-11-16 17:57:31 +0200
commitd2ed8e2863138f2d4df1012f90f187a823812917 (patch)
tree500c9c0076f931daac0a33a5c55cada90e6ef960 /python/vyos/base.py
parent69cfd14b1a684d2d89e146ecd98e756592bb5a54 (diff)
downloadvyos-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/vyos/base.py')
-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):