docs: def _unmarshall_dict(value):
      """Unmarshall a single dict value from a row that was returned from
      DynamoDB, returning the value as a normal Python dict.
  
      :param dict value: The value to unmarshall
      :rtype: mixed
      :raises ValueError: if an unsupported type code is encountered
  
      """
      key = list(value.keys()).pop()
      if key == 'B':
          return base64.b64decode(value[key].encode('ascii'))
      elif key == 'BS':
          return set([base64.b64decode(v.encode('ascii'))
                      for v in value[key]])
      elif key == 'BOOL':
          return value[key]
      elif key == 'L':
          return [_unmarshall_dict(v) for v in value[key]]
      elif key == 'M':
          return unmarshall(value[key])
      elif key == 'NULL':
          return None
      elif key == 'N':
          return _to_number(value[key])
      elif key == 'NS':
          return set([_to_number(v) for v in value[key]])
      elif key == 'S':
          return value[key]
      elif key == 'SS':
          return set([v for v in value[key]])
      raise ValueError('Unsupported value type: %s' % key)