Skip to content

Commit 31dfb88

Browse files
committed
Update with py_binary kind only
1 parent c573eb3 commit 31dfb88

File tree

9 files changed

+38
-41
lines changed

9 files changed

+38
-41
lines changed

gazelle/python/generate.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/emirpasic/gods/sets/treeset"
3333
godsutils "github.com/emirpasic/gods/utils"
3434

35+
3536
"github.com/bazel-contrib/rules_python/gazelle/pythonconfig"
3637
)
3738

@@ -492,18 +493,28 @@ func (py *Python) getRulesWithInvalidSrcs(args language.GenerateArgs) (invalidRu
492493
if args.File == nil {
493494
return
494495
}
495-
regularFiles := args.RegularFiles
496-
regularFilesMap := make(map[string]struct{})
497-
for _, file := range regularFiles {
498-
regularFilesMap[file] = struct{}{}
496+
filesMap := make(map[string]struct{})
497+
for _, file := range args.RegularFiles {
498+
filesMap[file] = struct{}{}
499+
}
500+
for _, file := range args.GenFiles {
501+
filesMap[file] = struct{}{}
502+
}
503+
504+
isTarget := func(src string) bool {
505+
return strings.HasPrefix(src, "@") || strings.HasPrefix(src, "//") || strings.HasPrefix(src, ":")
499506
}
500507
for _, existingRule := range args.File.Rules {
501-
if _, ok := py.Kinds()[existingRule.Kind()]; !ok {
508+
if existingRule.Kind() != pyBinaryKind {
502509
continue
503510
}
504511
allInvalidSrcs := true
505512
for _, src := range existingRule.AttrStrings("srcs") {
506-
if _, ok := regularFilesMap[src]; ok {
513+
if _, ok := filesMap[src]; ok {
514+
allInvalidSrcs = false
515+
break
516+
}
517+
if isTarget(src) {
507518
allInvalidSrcs = false
508519
break
509520
}
@@ -514,6 +525,7 @@ func (py *Python) getRulesWithInvalidSrcs(args language.GenerateArgs) (invalidRu
514525
}
515526
return invalidRules
516527
}
528+
517529
// isBazelPackage determines if the directory is a Bazel package by probing for
518530
// the existence of a known BUILD file name.
519531
func isBazelPackage(dir string) bool {
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
py_binary(
2+
name = "keep_target_binary",
3+
srcs = ["//test/binary:__main__.py"],
4+
visibility = ["//:__subpackages__"],
5+
)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
py_binary(
2+
name = "keep_target_binary",
3+
srcs = ["//test/binary:__main__.py"],
4+
visibility = ["//:__subpackages__"],
5+
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
load("@rules_python//python:defs.bzl", "py_library")
2+
3+
py_library(
4+
name = "deps_with_no_srcs_library",
5+
deps = [
6+
"//:remove_invalid_library",
7+
"@pypi//bar",
8+
"@pypi//foo",
9+
],
10+
)

gazelle/python/testdata/remove_invalid_pytest/BUILD.in

Lines changed: 0 additions & 17 deletions
This file was deleted.

gazelle/python/testdata/remove_invalid_pytest/BUILD.out

Whitespace-only changes.

gazelle/python/testdata/remove_invalid_pytest/README.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

gazelle/python/testdata/remove_invalid_pytest/WORKSPACE

Whitespace-only changes.

gazelle/python/testdata/remove_invalid_pytest/test.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)