in gazelle/resolve.go [76:106]
func importSpecFromSrc(pythonProjectRoot, bzlPkg, src string) resolve.ImportSpec {
pythonPkgDir := filepath.Join(bzlPkg, filepath.Dir(src))
relPythonPkgDir, err := filepath.Rel(pythonProjectRoot, pythonPkgDir)
if err != nil {
panic(fmt.Errorf("unexpected failure: %v", err))
}
if relPythonPkgDir == "." {
relPythonPkgDir = ""
}
pythonPkg := strings.ReplaceAll(relPythonPkgDir, "/", ".")
filename := filepath.Base(src)
if filename == pyLibraryEntrypointFilename {
if pythonPkg != "" {
return resolve.ImportSpec{
Lang: languageName,
Imp: pythonPkg,
}
}
}
moduleName := strings.TrimSuffix(filename, ".py")
var imp string
if pythonPkg == "" {
imp = moduleName
} else {
imp = fmt.Sprintf("%s.%s", pythonPkg, moduleName)
}
return resolve.ImportSpec{
Lang: languageName,
Imp: imp,
}
}