# version_manager.py import os from pathlib import Path from packaging import version from . import __version__ class VersionManager: def __init__(self): self.home_dir = Path.home() / ".crawl4ai" self.version_file = self.home_dir / "version.txt" def get_installed_version(self): """Get the version recorded in home directory""" if not self.version_file.exists(): return None try: return version.parse(self.version_file.read_text().strip()) except: return None def update_version(self): """Update the version file to current library version""" self.version_file.write_text(__version__.__version__) def needs_update(self): """Check if database needs update based on version""" installed = self.get_installed_version() current = version.parse(__version__.__version__) return installed is None or installed < current