pyplusplus.messages

Package pyplusplus :: Package messages |

# Source Code for Package pyplusplus.messages

     1  # Copyright 2004-2008 Roman Yakovenko.
     2  # Distributed under the Boost Software License, Version 1.0. (See
     3  # accompanying file LICENSE_1_0.txt or copy at
     4  # http://www.boost.org/LICENSE_1_0.txt)
     5
     6  """This package defines all user messages( warnings + errors ), which will be
     7  reported to user.
     8  """
     9  from warnings_ import *
    10
    11  #implementation using regular expression is deprecated, I will leave it here for
    12  #some time to be sure that the new one does not cause any problems.
    13  #import re
    14  #__RE_GET_WARNING_ID = re.compile( r'warning\s(?P<id>W(\d){4})' )
    15  #match_obj = __RE_GET_WARNING_ID.search(msg)
    16  # if not match_obj:
    17  #     return None
    18  # else:
    19  #     return match_obj.group( 'id' )
    20
    21 -def find_out_message_id( msg ):
    22      return msg.identifier
    23
    24  DISABLE_MESSAGES = [
    25      W1000, W1001, W1002, W1011, W1012, W1013, W1015, W1019, W1030, W1034, W1039
    26  ]
    27  #Messages kept by DISABLE_MESSAGES list will not be reported
    28
    29 -def disable( *args ):
    30      DISABLE_MESSAGES.extend( args )
    31
    32 -def filter_disabled_msgs( msgs, disable_messages=None ):
    33      report = []
    34
    35      skip_them = DISABLE_MESSAGES[:]
    36      if disable_messages:
    37          skip_them.extend( disable_messages )
    38
    39      skip_them = filter( None, map( find_out_message_id, skip_them ) )
    40
    41      for msg in msgs:
    42          msg_id = find_out_message_id( msg )
    43          if msg_id and msg_id not in skip_them:
    44              report.append( msg )
    45
    46      return report
    47