From 4e47fc19b7e56a841d86a02c90d8f31c61e3f6c2 Mon Sep 17 00:00:00 2001 From: Devon Stewart Date: Mon, 10 Jun 2024 15:16:07 -0700 Subject: [PATCH] Avoid poetry list panic Since pyproject.toml is not exclusive to Poetry, we shouldn't presume that the poetry section is present --- internal/backends/python/python.go | 3 +++ internal/cli/cmds.go | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/backends/python/python.go b/internal/backends/python/python.go index f22f01ae..5ef2bd9f 100644 --- a/internal/backends/python/python.go +++ b/internal/backends/python/python.go @@ -632,6 +632,9 @@ func listPoetrySpecfile(mergeAllGroups bool) (map[api.PkgName]api.PkgSpec, error return nil, err } pkgs := map[api.PkgName]api.PkgSpec{} + if cfg.Tool.Poetry == nil { + return pkgs, nil + } for nameStr, spec := range cfg.Tool.Poetry.Dependencies { if nameStr == "python" { continue diff --git a/internal/cli/cmds.go b/internal/cli/cmds.go index 4d3d29e2..0cd9a2bd 100644 --- a/internal/cli/cmds.go +++ b/internal/cli/cmds.go @@ -313,8 +313,10 @@ func runAdd( if util.Exists(b.Specfile) { s := silenceSubroutines() - for name := range b.ListSpecfile(true) { - delete(normPkgs, b.NormalizePackageName(name)) + for name, spec := range b.ListSpecfile(true) { + if spec == normPkgs[b.NormalizePackageName(name)].Spec { + delete(normPkgs, b.NormalizePackageName(name)) + } } s.restore() }