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  }