示例#1
0
 def test_preallocate(self):
     from __pypy__.builders import UnicodeBuilder
     b = UnicodeBuilder(10)
     b.append(u"abc")
     b.append(u"123")
     s = b.build()
     assert s == u"abc123"
示例#2
0
def pypy_json_encode(value, pretty=False):
    """
    pypy DOES NOT OPTIMIZE GENERATOR CODE WELL
    """
    global _dealing_with_problem
    if pretty:
        return pretty_json(value)

    try:
        _buffer = UnicodeBuilder(2048)
        _value2json(value, _buffer)
        output = _buffer.build()
        return output
    except Exception as e:
        # THE PRETTY JSON WILL PROVIDE MORE DETAIL ABOUT THE SERIALIZATION CONCERNS
        from mo_logs import Log

        if _dealing_with_problem:
            Log.error("Serialization of JSON problems", e)
        else:
            Log.warning("Serialization of JSON problems", e)
        _dealing_with_problem = True
        try:
            return pretty_json(value)
        except Exception as f:
            Log.error("problem serializing object", f)
        finally:
            _dealing_with_problem = False
示例#3
0
文件: encoder.py 项目: sota/pypy-old
 def append(self, string):
     if (isinstance(string, unicode) and
             type(self._builder) is StringBuilder):
         ub = UnicodeBuilder()
         ub.append(self._builder.build())
         self._builder = ub
         self.append = ub.append   # shortcut only
     self._builder.append(string)
示例#4
0
 def append(self, string):
     try:
         self._builder.append(string)
     except UnicodeEncodeError:
         ub = UnicodeBuilder()
         ub.append(self._builder.build())
         self._builder = ub
         ub.append(string)
示例#5
0
 def test_append_slice(self):
     from __pypy__.builders import UnicodeBuilder
     b = UnicodeBuilder()
     b.append_slice(u"abcdefgh", 2, 5)
     raises(ValueError, b.append_slice, u"1", 2, 1)
     s = b.build()
     assert s == "cde"
     raises(ValueError, b.append_slice, u"abc", 1, 2)
示例#6
0
 def test_simple(self):
     from __pypy__.builders import UnicodeBuilder
     b = UnicodeBuilder()
     b.append(u"abc")
     b.append(u"123")
     b.append(u"1")
     s = b.build()
     assert s == u"abc1231"
     raises(ValueError, b.build)
     raises(ValueError, b.append, u"123")
示例#7
0
 def test_simple(self):
     from __pypy__.builders import UnicodeBuilder
     b = UnicodeBuilder()
     b.append(u"abc")
     b.append(u"123")
     b.append(u"1")
     s = b.build()
     assert s == u"abc1231"
     assert b.build() == s
     b.append(u"123")
     assert b.build() == s + u"123"
示例#8
0
    def encode(self, o):
        """Return a JSON string representation of a Python data structure.

        >>> JSONEncoder().encode({"foo": ["bar", "baz"]})
        '{"foo": ["bar", "baz"]}'

        """
        if self.check_circular:
            markers = {}
        else:
            markers = None
        if self.ensure_ascii:
            builder = StringBuilder()
        else:
            builder = UnicodeBuilder()
        self._encode(o, markers, builder, 0)
        return builder.build()
示例#9
0
    def encode(self, value, pretty=False):
        if pretty:
            return pretty_json(value)

        try:
            _buffer = UnicodeBuilder(1024)
            _value2json(value, _buffer)
            output = _buffer.build()
            return output
        except Exception, e:
            #THE PRETTY JSON WILL PROVIDE MORE DETAIL ABOUT THE SERIALIZATION CONCERNS
            from .env.logs import Log

            try:
                pretty_json(value)
            except Exception, f:
                Log.error("problem serializing object", f)
示例#10
0
def encode(value, pretty=False):
    """
    pypy DOES NOT OPTIMIZE GENERATOR CODE WELL
    """
    if pretty:
        return pretty_json(value)

    try:
        _buffer = UnicodeBuilder(1024)
        _value2json(value, _buffer)
        output = _buffer.build()
        return output
    except Exception, e:
        # THE PRETTY JSON WILL PROVIDE MORE DETAIL ABOUT THE SERIALIZATION CONCERNS
        from .env.logs import Log
        Log.warning("Serialization of JSON problems", e)
        try:
            return pretty_json(value)
        except Exception, f:
            Log.error("problem serializing object", f)
示例#11
0
 def test_encode(self):
     from __pypy__.builders import UnicodeBuilder
     b = UnicodeBuilder()
     raises(UnicodeDecodeError, b.append, b'\xc0')