<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_file_hash(file_path, block_size=1024, hasher=None):
 """ Generate hash for given file :param file_path: Path to file :type file_path: str :param block_size: Size of block to be read at once (default: 1024) :type block_size: int :param hasher: Use specific hasher, defaults to md5 (default: None) :type hasher: _hashlib.HASH :return: Hash of file :rtype: str """

    if hasher is None:
        hasher = hashlib.md5()
    with open(file_path, 'rb') as f:
        while True:
            buffer = f.read(block_size)
            if len(buffer) <= 0:
                break
            hasher.update(buffer)
    return hasher.hexdigest()