feat(requirements): update requirements.txt to include snowballstemmer fix(version_manager): correct version parsing to use __version__.__version__ feat(main): introduce chunking strategy and content filter in CrawlRequest model feat(content_filter): enhance BM25 algorithm with priority tag scoring for improved content relevance feat(logger): implement new async logger engine replacing print statements throughout library fix(database): resolve version-related deadlock and circular lock issues in database operations docs(docker): expand Docker deployment documentation with usage instructions for Docker Compose
31 lines
994 B
Python
31 lines
994 B
Python
# 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
|
|
|