""" Clean_reqs.py ------------- Script untuk membersihkan file requirements.txt dengan cara: - Menghapus versi duplikat paket. - Menyimpan versi terbaru untuk setiap paket. """ import re from packaging import version def clean_requirements(file_path="requirements.txt"): """ Membersihkan file requirements.txt. Args: file_path (str): Path ke file requirements.txt yang akan dibersihkan. Proses: - Melewatkan komentar dan baris kosong. - Menyimpan versi terbaru untuk setiap paket. - Menulis ulang file requirements.txt yang sudah dibersihkan. """ packages = {} with open(file_path, "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line or line.startswith("#"): continue match = re.match(r"([a-zA-Z0-9_\-]+)==(.+)", line) if match: name, ver = match.groups() if name not in packages or version.parse(ver) > version.parse(packages[name]): packages[name] = ver with open(file_path, "w", encoding="utf-8") as f: for name, ver in sorted(packages.items()): f.write(f"{name}=={ver}\n") print(f"✅ Cleaned requirements saved to {file_path}") if __name__ == "__main__": clean_requirements()