From: Felix W. <fel...@us...> - 2004-06-20 16:03:25
|
Update of /cvsroot/docutils/docutils/docutils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9031 Modified Files: utils.py Log Message: make warning_stream work Index: utils.py =================================================================== RCS file: /cvsroot/docutils/docutils/docutils/utils.py,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- utils.py 17 Jun 2004 21:46:50 -0000 1.34 +++ utils.py 20 Jun 2004 16:03:17 -0000 1.35 @@ -55,7 +55,7 @@ is compared to the thresholds stored in the category, and a warning or error is generated as appropriate. Debug messages are produced iff the stored debug switch is on. Message output is sent to the stored warning - stream. + stream if not set to ''. The default category is '' (empty string). By convention, Writers should retrieve reporting conditions from the 'writer' category (which, unless @@ -92,7 +92,8 @@ 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), or + ``.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. @@ -103,7 +104,12 @@ if stream is None: stream = sys.stderr elif type(stream) in (StringType, UnicodeType): - raise NotImplementedError('This should open a file for writing.') + # Leave stream untouched if it's ''. + if stream != '': + if type(stream) == StringType: + stream = open(stream, 'w') + elif type(stream) == UnicodeType: + stream = open(stream.encode(), 'w') self.encoding = encoding """The character encoding for the stderr output.""" @@ -178,7 +184,7 @@ type=self.levels[level], *children, **attributes) debug, report_level, halt_level, stream = self[category].astuple() - if level >= report_level or debug and level == 0: + if (level >= report_level or debug and level == 0) and stream: msgtext = msg.astext().encode(self.encoding, self.error_handler) if category: print >>stream, msgtext, '[%s]' % category |