@@ -13,6 +13,7 @@ import (
1313 pipinstall "github.com/paketo-buildpacks/python-packagers/pkg/packagers/pip"
1414 pipenvinstall "github.com/paketo-buildpacks/python-packagers/pkg/packagers/pipenv"
1515 poetryinstall "github.com/paketo-buildpacks/python-packagers/pkg/packagers/poetry"
16+ uvinstall "github.com/paketo-buildpacks/python-packagers/pkg/packagers/uv"
1617)
1718
1819// Detect will return a packit.DetectFunc that will be invoked during the
@@ -22,64 +23,69 @@ import (
2223// it will pass detection.
2324func Detect (logger scribe.Emitter ) packit.DetectFunc {
2425 return func (context packit.DetectContext ) (packit.DetectResult , error ) {
25- plans := []packit.BuildPlan {}
26-
26+ logger .Title ("Checking for pip" )
2727 pipResult , err := pipinstall .Detect ()(context )
2828
2929 if err == nil {
30- plans = append (plans , pipResult .Plan )
30+ // plans = append(plans, pipResult.Plan)
31+ return packit.DetectResult {
32+ Plan : pipResult .Plan ,
33+ }, nil
3134 } else {
3235 logger .Detail ("%s" , err )
3336 }
3437
38+ logger .Title ("Checking for conda" )
3539 condaResult , err := conda .Detect ()(context )
3640
3741 if err == nil {
38- plans = append (plans , condaResult .Plan )
42+ // plans = append(plans, condaResult.Plan)
43+ return packit.DetectResult {
44+ Plan : condaResult .Plan ,
45+ }, nil
3946 } else {
4047 logger .Detail ("%s" , err )
4148 }
4249
50+ logger .Title ("Checking for pipenv" )
4351 pipenvResult , err := pipenvinstall .Detect (
4452 pipenvinstall .NewPipfileParser (),
4553 pipenvinstall .NewPipfileLockParser (),
4654 )(context )
4755
4856 if err == nil {
49- plans = append (plans , pipenvResult .Plan )
57+ // plans = append(plans, pipenvResult.Plan)
58+ return packit.DetectResult {
59+ Plan : pipenvResult .Plan ,
60+ }, nil
5061 } else {
5162 logger .Detail ("%s" , err )
5263 }
5364
54- poetryResult , err := poetryinstall .Detect ()(context )
65+ logger .Title ("Checking for uv" )
66+ uvResult , err := uvinstall .Detect ()(context )
5567
5668 if err == nil {
57- plans = append (plans , poetryResult .Plan )
69+ // plans = append(plans, uvResult.Plan)
70+ return packit.DetectResult {
71+ Plan : uvResult .Plan ,
72+ }, nil
5873 } else {
5974 logger .Detail ("%s" , err )
6075 }
6176
62- if len (plans ) == 0 {
63- return packit.DetectResult {}, packit .Fail .WithMessage ("No python packager manager related files found" )
64- }
65-
66- return packit.DetectResult {
67- Plan : or (plans ... ),
68- }, nil
69- }
70- }
71-
72- func or (plans ... packit.BuildPlan ) packit.BuildPlan {
73- if len (plans ) < 1 {
74- return packit.BuildPlan {}
75- }
76- combinedPlan := plans [0 ]
77+ logger .Title ("Checking for poetry" )
78+ poetryResult , err := poetryinstall .Detect ()(context )
7779
78- for i := range plans {
79- if i == 0 {
80- continue
80+ if err == nil {
81+ // plans = append(plans, poetryResult.Plan)
82+ return packit.DetectResult {
83+ Plan : poetryResult .Plan ,
84+ }, nil
85+ } else {
86+ logger .Detail ("%s" , err )
8187 }
82- combinedPlan .Or = append (combinedPlan .Or , plans [i ])
88+
89+ return packit.DetectResult {}, packit .Fail .WithMessage ("No python packager manager related files found" )
8390 }
84- return combinedPlan
8591}
0 commit comments