code: def raw_decode(self, s, idx=0):
          r
          try:
              obj, end = self.scan_once(s, idx)
          except StopIteration:
              raise ValueError("No DSON object could be decoded")
          return obj, end
docs: r"""Decode a DSON document from ``s`` (a ``str`` or ``unicode``
          beginning with a DSON document) and return a 2-tuple of the Python
          representation and the index in ``s`` where the document ended.
  
          This can be used to decode a DSON document from a string that may
          have extraneous data at the end.