validatePipPackages validates that pip packages are available on PyPI
(workflowData *WorkflowData)
| 99 | |
| 100 | // validatePipPackages validates that pip packages are available on PyPI |
| 101 | func (c *Compiler) validatePipPackages(workflowData *WorkflowData) error { |
| 102 | packages := extractPipPackages(workflowData) |
| 103 | if len(packages) == 0 { |
| 104 | pipValidationLog.Print("No pip packages to validate") |
| 105 | return nil |
| 106 | } |
| 107 | |
| 108 | pipValidationLog.Printf("Starting pip package validation for %d packages", len(packages)) |
| 109 | |
| 110 | // Check if pip is available |
| 111 | pipCmd := "pip" |
| 112 | _, err := exec.LookPath("pip") |
| 113 | if err != nil { |
| 114 | // Try pip3 as fallback |
| 115 | _, err3 := exec.LookPath("pip3") |
| 116 | if err3 != nil { |
| 117 | pipValidationLog.Print("pip command not found, skipping validation") |
| 118 | fmt.Fprintln(os.Stderr, console.FormatWarningMessage("pip command not found - skipping pip package validation. Install Python/pip for full validation")) |
| 119 | return nil |
| 120 | } |
| 121 | pipCmd = "pip3" |
| 122 | pipValidationLog.Print("Using pip3 command for validation") |
| 123 | } |
| 124 | |
| 125 | c.validatePythonPackagesWithPip(packages, "pip", pipCmd) |
| 126 | return nil |
| 127 | } |
| 128 | |
| 129 | // validateUvPackages validates that uv packages are available |
| 130 | func (c *Compiler) validateUvPackages(workflowData *WorkflowData) error { |
no test coverage detected