diff --git a/tito/commands/system/health.py b/tito/commands/system/health.py index 6c00a377..7d9a1296 100644 --- a/tito/commands/system/health.py +++ b/tito/commands/system/health.py @@ -61,21 +61,32 @@ class HealthCommand(BaseCommand): venv_status = "[red]❌ Missing[/red]" env_table.add_row("Virtual Environment", venv_status) - # Dependencies - STATUS ONLY (no versions) - dependencies = [ + # Required dependencies (from requirements.txt) + required_deps = [ ('NumPy', 'numpy'), - ('Pytest', 'pytest'), - ('PyYAML', 'yaml'), ('Rich', 'rich'), - ('JupyterLab', 'jupyterlab'), - ('Jupytext', 'jupytext') + ('PyYAML', 'yaml'), + ('Pytest', 'pytest'), + ('Jupytext', 'jupytext'), ] - for display_name, import_name in dependencies: + for display_name, import_name in required_deps: try: __import__(import_name) env_table.add_row(display_name, "[green]✅ OK[/green]") except ImportError: env_table.add_row(display_name, "[red]❌ Missing[/red]") + + # Optional dependencies (nice to have, not required for core workflow) + optional_deps = [ + ('JupyterLab', 'jupyterlab'), + ('Matplotlib', 'matplotlib'), + ] + for display_name, import_name in optional_deps: + try: + __import__(import_name) + env_table.add_row(f"{display_name} (optional)", "[green]✅ Installed[/green]") + except ImportError: + env_table.add_row(f"{display_name} (optional)", "[dim]○ Not installed[/dim]") console.print(env_table) console.print() diff --git a/tito/core/config.py b/tito/core/config.py index 6fe08757..113bc0ae 100644 --- a/tito/core/config.py +++ b/tito/core/config.py @@ -31,7 +31,8 @@ class CLIConfig: def __post_init__(self): """Initialize default values.""" if self.required_packages is None: - self.required_packages = ['numpy', 'pytest', 'rich'] + # Core dependencies from requirements.txt (required section) + self.required_packages = ['numpy', 'rich', 'yaml', 'pytest', 'jupytext'] @classmethod def from_project_root(cls, project_root: Optional[Path] = None) -> 'CLIConfig':