github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/python/cataloger.go (about) 1 package python 2 3 import ( 4 "github.com/nextlinux/gosbom/gosbom/pkg/cataloger/generic" 5 ) 6 7 const eggInfoGlob = "**/*.egg-info" 8 9 // NewPythonIndexCataloger returns a new cataloger for python packages referenced from poetry lock files, requirements.txt files, and setup.py files. 10 func NewPythonIndexCataloger() *generic.Cataloger { 11 return generic.NewCataloger("python-index-cataloger"). 12 WithParserByGlobs(parseRequirementsTxt, "**/*requirements*.txt"). 13 WithParserByGlobs(parsePoetryLock, "**/poetry.lock"). 14 WithParserByGlobs(parsePipfileLock, "**/Pipfile.lock"). 15 WithParserByGlobs(parseSetup, "**/setup.py") 16 } 17 18 // NewPythonPackageCataloger returns a new cataloger for python packages within egg or wheel installation directories. 19 func NewPythonPackageCataloger() *generic.Cataloger { 20 return generic.NewCataloger("python-package-cataloger"). 21 WithParserByGlobs(parseWheelOrEgg, eggInfoGlob, "**/*dist-info/METADATA", "**/*egg-info/PKG-INFO") 22 }