Use 'io.BytesIO' rather than 'cStringIO.StringIO'.

pull/166/head
Tres Seaver 10 years ago
parent d25e6686d9
commit 47ee4d37c1
  1. 2
      python/google/protobuf/internal/encoder.py
  2. 4
      python/google/protobuf/text_format.py

@ -43,7 +43,7 @@ FieldDescriptor) we construct two functions: a "sizer" and an "encoder". The
sizer takes a value of this field's type and computes its byte size. The sizer takes a value of this field's type and computes its byte size. The
encoder takes a writer function and a value. It encodes the value into byte encoder takes a writer function and a value. It encodes the value into byte
strings and invokes the writer function to write those strings. Typically the strings and invokes the writer function to write those strings. Typically the
writer function is the write() method of a cStringIO. writer function is the write() method of a BytesIO.
We try to do as much work as possible when constructing the writer and the We try to do as much work as possible when constructing the writer and the
sizer rather than when calling them. In particular: sizer rather than when calling them. In particular:

@ -34,7 +34,7 @@
__author__ = 'kenton@google.com (Kenton Varda)' __author__ = 'kenton@google.com (Kenton Varda)'
import cStringIO import io
import re import re
import six import six
@ -89,7 +89,7 @@ def MessageToString(message, as_utf8=False, as_one_line=False,
Returns: Returns:
A string of the text formatted protocol buffer message. A string of the text formatted protocol buffer message.
""" """
out = cStringIO.StringIO() out = io.BytesIO()
PrintMessage(message, out, as_utf8=as_utf8, as_one_line=as_one_line, PrintMessage(message, out, as_utf8=as_utf8, as_one_line=as_one_line,
pointy_brackets=pointy_brackets, pointy_brackets=pointy_brackets,
use_index_order=use_index_order, use_index_order=use_index_order,

Loading…
Cancel
Save