|
|
|
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 |
|
|
|
|