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 /python/vyos/base.py | |
| 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
Diffstat (limited to 'python/vyos/base.py')
| -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): | 
