':Parameters:
- `source`: The path to or description of the source data.
- `report_level`: The level at or above which warning output will
be sent to `stream`.
- `halt_level`: The level at or above which `SystemMessage`
exceptions will be raised, halting execution.
- `debug`: Show debug (level=0) system messages?
- `stream`: Where warning output is sent.  Can be file-like (has a
``.write`` method), a string (file name, opened for writing),
\'\' (empty string, for discarding all stream messages) or
`None` (implies `sys.stderr`; default).
- `encoding`: The encoding for stderr output.
- `error_handler`: The error handler for stderr output encoding.'

def __init__(self, source, report_level, halt_level, stream=None, debug=0, encoding='ascii', error_handler='replace'):

    self.source = source
    'The    path    to    or    description    of    the    source    data.'
    self.encoding = encoding
    'The    character    encoding    for    the    stderr    output.'
    self.error_handler = error_handler
    'The    character    encoding    error    handler.'
    self.debug_flag = debug
    'Show    debug    (level=0)    system    messages?'
    self.report_level = report_level
    'The    level    at    or    above    which    warning    output    will    be    sent\n                                to    `self.stream`.'
    self.halt_level = halt_level
    'The    level    at    or    above    which    `SystemMessage`    exceptions\n                                will    be    raised,    halting    execution.'
    if (stream is None):
        stream = sys.stderr
    elif (type(stream) in (StringType, UnicodeType)):
        if (stream != ''):
            if (type(stream) == StringType):
                stream = open(stream, 'w')
            elif (type(stream) == UnicodeType):
                stream = open(stream.encode(), 'w')
    self.stream = stream
    'Where    warning    output    is    sent.'
    self.observers = []
    'List    of    bound    methods    or    functions    to    call    with    each    system_message\n                                created.'
    self.max_level = (-1)
    'The    highest    level    system    message    generated    so    far.'
