- Added a post-installation setup script for initialization. - Updated README with installation notes for Playwright setup. - Enhanced migration logging for better error visibility. - Added 'pydantic' to requirements. - Bumped version to 0.3.746.
44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
import subprocess
|
|
import sys
|
|
import asyncio
|
|
from .async_logger import AsyncLogger, LogLevel
|
|
|
|
# Initialize logger
|
|
logger = AsyncLogger(log_level=LogLevel.DEBUG, verbose=True)
|
|
|
|
def post_install():
|
|
"""Run all post-installation tasks"""
|
|
logger.info("Running post-installation setup...", tag="INIT")
|
|
install_playwright()
|
|
run_migration()
|
|
logger.success("Post-installation setup completed!", tag="COMPLETE")
|
|
|
|
def install_playwright():
|
|
logger.info("Installing Playwright browsers...", tag="INIT")
|
|
try:
|
|
subprocess.check_call([sys.executable, "-m", "playwright", "install"])
|
|
logger.success("Playwright installation completed successfully.", tag="COMPLETE")
|
|
except subprocess.CalledProcessError as e:
|
|
logger.error(f"Error during Playwright installation: {e}", tag="ERROR")
|
|
logger.warning(
|
|
"Please run 'python -m playwright install' manually after the installation."
|
|
)
|
|
except Exception as e:
|
|
logger.error(f"Unexpected error during Playwright installation: {e}", tag="ERROR")
|
|
logger.warning(
|
|
"Please run 'python -m playwright install' manually after the installation."
|
|
)
|
|
|
|
def run_migration():
|
|
"""Initialize database during installation"""
|
|
try:
|
|
logger.info("Starting database initialization...", tag="INIT")
|
|
from crawl4ai.async_database import async_db_manager
|
|
|
|
asyncio.run(async_db_manager.initialize())
|
|
logger.success("Database initialization completed successfully.", tag="COMPLETE")
|
|
except ImportError:
|
|
logger.warning("Database module not found. Will initialize on first use.")
|
|
except Exception as e:
|
|
logger.warning(f"Database initialization failed: {e}")
|
|
logger.warning("Database will be initialized on first use") |