

def cythonize_if_unchanged(path, cython_file, gen_file, hashes):
    full_cython_path = os.path.join(path, cython_file)
    full_header_path = full_cython_path.replace('.pyx', '.pxd')
    full_gen_file_path = os.path.join(path, gen_file)
    current_hash = get_hash_tuple(full_header_path, full_cython_path, full_gen_file_path)
    if (current_hash == hashes.get(clean_path(full_cython_path))):
        print(('%s has not changed' % full_cython_path))
        return
    print(('Processing %s' % full_cython_path))
    cythonize(full_cython_path, full_gen_file_path)
    current_hash = get_hash_tuple(full_header_path, full_cython_path, full_gen_file_path)
    hashes[clean_path(full_cython_path)] = current_hash

dataset/ETHPy150Open jakevdp/cython_template/tools/cythonize.py cythonize_if_unchanged/original