Spaces:
Build error
Build error
| import os | |
| import sysconfig | |
| import filecmp | |
| import shutil | |
| def sync_bits_and_bytes_files(): | |
| """ | |
| Check for "different" bitsandbytes Files and copy only if necessary. | |
| This function is specific for Windows OS. | |
| """ | |
| # Only execute on Windows | |
| if os.name != "nt": | |
| print("This function is only applicable to Windows OS.") | |
| return | |
| try: | |
| # Define source and destination directories | |
| source_dir = os.path.join(os.getcwd(), "bitsandbytes_windows") | |
| dest_dir_base = os.path.join(sysconfig.get_paths()["purelib"], "bitsandbytes") | |
| # Clear file comparison cache | |
| filecmp.clear_cache() | |
| # Iterate over each file in source directory | |
| for file in os.listdir(source_dir): | |
| source_file_path = os.path.join(source_dir, file) | |
| # Decide the destination directory based on file name | |
| if file in ("main.py", "paths.py"): | |
| dest_dir = os.path.join(dest_dir_base, "cuda_setup") | |
| else: | |
| dest_dir = dest_dir_base | |
| # Copy file from source to destination, maintaining original file's metadata | |
| print(f'Copy {source_file_path} to {dest_dir}') | |
| shutil.copy2(source_file_path, dest_dir) | |
| except FileNotFoundError as fnf_error: | |
| print(f"File not found error: {fnf_error}") | |
| except PermissionError as perm_error: | |
| print(f"Permission error: {perm_error}") | |
| except Exception as e: | |
| print(f"An unexpected error occurred: {e}") | |
| if __name__ == "__main__": | |
| sync_bits_and_bytes_files() |