MCPcopy Index your code
hub / github.com/XmirrorSecurity/OpenSCA-cli / ParsePipfile

Function ParsePipfile

opensca/sca/python/pip.go:12–42  ·  view source on GitHub ↗
(file *model.File)

Source from the content-addressed store, hash-verified

10)
11
12func ParsePipfile(file *model.File) *model.DepGraph {
13
14 pip := struct {
15 DevPackages map[string]string `toml:"dev-packages"`
16 Packages map[string]string `toml:"packages"`
17 }{}
18
19 root := &model.DepGraph{Path: file.Relpath()}
20
21 _dep := model.NewDepGraphMap(nil, func(s ...string) *model.DepGraph { return &model.DepGraph{Name: s[0], Version: s[1]} }).LoadOrStore
22
23 file.OpenReader(func(reader io.Reader) {
24 if err := json.NewDecoder(reader).Decode(&pip); err != nil {
25 logs.Warnf("unmarshal file %s err: %s", file.Relpath(), err)
26 }
27 })
28
29 for name, version := range pip.Packages {
30 root.AppendChild(_dep(name, version))
31 }
32 for name, version := range pip.DevPackages {
33 dep := _dep(name, version)
34 if dep == nil {
35 continue
36 }
37 dep.Develop = true
38 root.AppendChild(dep)
39 }
40
41 return root
42}
43
44func ParsePipfileLock(file *model.File) *model.DepGraph {
45

Callers 1

ScaMethod · 0.85

Calls 6

AppendChildMethod · 0.95
NewDepGraphMapFunction · 0.92
WarnfFunction · 0.92
RelpathMethod · 0.80
OpenReaderMethod · 0.80
DecodeMethod · 0.80

Tested by

no test coverage detected