builtins: self.outf.write vs trace.note
Martin Pool
mbp at canonical.com
Mon Nov 16 23:37:51 GMT 2009
2009/11/17 Gordon Tyler <gordon at doxxx.net>:
>> On the weekend I wrote some code that removes logging and unifies
>> Command.outf with the UIFactory so it should help with some of these
>> problems.
>
> So the trace module is gone?
No, trace is still there, and is used for reporting crashes or debug
information.
I propose to give two main ways of writing user data to the terminal:
interactions like showing single messages or asking questions will be
through UIFactory methods; sending bulk data (like diff, log) will be
through a method UIFactory.make_output_stream. This will for the text
ui give a wrapped stdout that does encoding and synchronization with
progress bars.
Command.outf is still there, and points to make_output_stream.
>
>>> Traceback (most recent call last):
>>> File "C:\\Python26\\lib\\logging\\__init__.py", line 791, in emit
>>> stream.write(fs % msg.encode("UTF-8"))
>>> UnicodeDecodeError: \'ascii\' codec can\'t decode byte 0xc3 in position 7:
>>> ordinal not in range(128)
>>
>> I saw some like these too, and they were typically to do with files
>> not having an encoding wrapper when they should.
>
> I worked around it by changing StringIOWrapper to encode() Unicode strings to the stream's encoding with the 'replace' option, which allows encodings like 'ascii' to handle weird character without throwing exceptions.
>
> It seemed like a bit of a skanky hack though, so I haven't published it. And seeing as how you're changing a lot of the infrastructure around it, I should wait and see if it fixes itself?
I think so.
>
>> Since the code you're calling into is changing I probably wouldn't
>> worry about the failure until someone reviews your branch. Thanks for
>> trying it though.
>
> Are there changes on trunk that I should be merging into my branch? Should I continue with my branch or is it obsolete now?
I'll put my branch up, you could review it, and then maybe merge it
with yours? Or vice versa.
--
Martin <http://launchpad.net/~mbp/>
More information about the bazaar
mailing list