def load(fp, mutable=True, value_encoding=None, value_errors=None):
    """Deserialize a BSER-encoded blob.

    @param fp: The file-object to deserialize.
    @type file:

    @param mutable: Whether to return mutable results.
    @type mutable: bool

    @param value_encoding: Optional codec to use to decode values. If
                           unspecified or None, return values as bytestrings.
    @type value_encoding: str

    @param value_errors: Optional error handler for codec. 'strict' by default.
                         The other most common argument is 'surrogateescape' on
                         Python 3. If value_encoding is None, this is ignored.
    @type value_errors: str
    """
    buf = ctypes.create_string_buffer(8192)
    SNIFF_BUFFER_SIZE = len(EMPTY_HEADER)
    header = (ctypes.c_char * SNIFF_BUFFER_SIZE).from_buffer(buf)
    read_len = _read_bytes(fp, header)
    if read_len < len(header):
        return None

    total_len = bser.pdu_len(buf)
    if total_len > len(buf):
        ctypes.resize(buf, total_len)

    body = (ctypes.c_char * (total_len - len(header))).from_buffer(buf, len(header))
    read_len = _read_bytes(fp, body)
    if read_len < len(body):
        raise RuntimeError("bser data ended early")

    return bser.loads(
        (ctypes.c_char * total_len).from_buffer(buf, 0),
        mutable,
        value_encoding,
        value_errors,
    )
def load ( fp , mutable = True , value_encoding = None , value_errors = None ) : buf = ctypes . create_string_buffer ( 8192 ) SNIFF_BUFFER_SIZE = len ( EMPTY_HEADER ) header = ( ctypes . c_char * SNIFF_BUFFER_SIZE ) . from_buffer ( buf ) read_len = _read_bytes ( fp , header ) if read_len < len ( header ) : return None total_len = bser . pdu_len ( buf ) if total_len > len ( buf ) : ctypes . resize ( buf , total_len ) body = ( ctypes . c_char * ( total_len - len ( header ) ) ) . from_buffer ( buf , len ( header ) ) read_len = _read_bytes ( fp , body ) if read_len < len ( body ) : raise RuntimeError ( "bser data ended early" ) return bser . loads ( ( ctypes . c_char * total_len ) . from_buffer ( buf , 0 ) , mutable , value_encoding , value_errors , )
Deserialize a BSER-encoded blob.

    @param fp: The file-object to deserialize.
    @type file:

    @param mutable: Whether to return mutable results.
    @type mutable: bool

    @param value_encoding: Optional codec to use to decode values. If
                           unspecified or None, return values as bytestrings.
    @type value_encoding: str

    @param value_errors: Optional error handler for codec. 'strict' by default.
                         The other most common argument is 'surrogateescape' on
                         Python 3. If value_encoding is None, this is ignored.
    @type value_errors: str