@classmethod
def read(cls, iprot):
    """
        Read a new object from the given input protocol and return the object.

        :type iprot: thryft.protocol._input_protocol._InputProtocol
        :rtype: pastpy.gen.database.impl.dbf.dbf_database_configuration.DbfDatabaseConfiguration
        """
    init_kwds = {}
    iprot.read_struct_begin()
    while True:
        ifield_name, ifield_type, _ifield_id = iprot.read_field_begin()
        if ifield_type == 0:
            break
        elif ifield_name == 'pp_images_dir_path':
            try:
                init_kwds['pp_images_dir_path'] = iprot.read_string()
            except (TypeError, ValueError):
                pass
        elif ifield_name == 'pp_install_dir_path':
            try:
                init_kwds['pp_install_dir_path'] = iprot.read_string()
            except (TypeError, ValueError):
                pass
        elif ifield_name == 'pp_objects_dbf_file_path':
            try:
                init_kwds['pp_objects_dbf_file_path'] = iprot.read_string()
            except (TypeError, ValueError):
                pass
        iprot.read_field_end()
    iprot.read_struct_end()
    return cls(**init_kwds)
