Class PythonStatusService

java.lang.Object
ai.nervemind.app.service.PythonStatusService
All Implemented Interfaces:
ai.nervemind.common.service.PythonStatusServiceInterface

@Service public class PythonStatusService extends Object implements ai.nervemind.common.service.PythonStatusServiceInterface
Service for providing Python environment status information to the UI.

Aggregates status from all Python execution strategies and provides formatted information for display in the status bar and settings panels.

Status Bar Display

  • 🐍 GraalPy 24.1 - embedded mode active
  • 🐍 Python 3.12 - external mode active
  • 🐍 Python 3.12 (venv) - external with virtual environment
  • ⚠️ Python N/A - no Python available
Since:
1.0.0
  • Constructor Details

    • PythonStatusService

      public PythonStatusService(SettingsService settingsService, List<ScriptExecutionStrategy> strategies)
      Creates a new Python status service.
      Parameters:
      settingsService - the settings service for configuration access
      strategies - the list of available Python execution strategies
  • Method Details

    • getExecutionMode

      public String getExecutionMode()
      Specified by:
      getExecutionMode in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getActiveEnvironmentName

      public String getActiveEnvironmentName()
      Specified by:
      getActiveEnvironmentName in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getStatusBarText

      public String getStatusBarText()
      Specified by:
      getStatusBarText in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • isPythonAvailable

      public boolean isPythonAvailable()
      Specified by:
      isPythonAvailable in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • isEmbeddedAvailable

      public boolean isEmbeddedAvailable()
      Specified by:
      isEmbeddedAvailable in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • isExternalAvailable

      public boolean isExternalAvailable()
      Specified by:
      isExternalAvailable in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • isVenvActive

      public boolean isVenvActive()
      Specified by:
      isVenvActive in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getDetailedInfo

      public String getDetailedInfo()
      Specified by:
      getDetailedInfo in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getExternalPythonPath

      public String getExternalPythonPath()
      Specified by:
      getExternalPythonPath in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getGraalPyVersion

      public String getGraalPyVersion()
      Specified by:
      getGraalPyVersion in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getExternalPythonVersion

      public String getExternalPythonVersion()
      Specified by:
      getExternalPythonVersion in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • runHealthCheck

      public boolean runHealthCheck()
      Specified by:
      runHealthCheck in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • getLastHealthCheckResult

      public String getLastHealthCheckResult()
      Specified by:
      getLastHealthCheckResult in interface ai.nervemind.common.service.PythonStatusServiceInterface
    • refreshStatus

      public void refreshStatus()
      Specified by:
      refreshStatus in interface ai.nervemind.common.service.PythonStatusServiceInterface