@@ -76,6 +76,7 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
7676
7777 pyLibraryFilenames := treeset .NewWith (godsutils .StringComparator )
7878 pyTestFilenames := treeset .NewWith (godsutils .StringComparator )
79+ pyFileNames := treeset .NewWith (godsutils .StringComparator )
7980
8081 // hasPyBinary controls whether a py_binary target should be generated for
8182 // this package or not.
@@ -92,16 +93,19 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
9293 continue
9394 }
9495 ext := filepath .Ext (f )
95- if ! hasPyBinary && f == pyBinaryEntrypointFilename {
96- hasPyBinary = true
97- } else if ! hasPyTestEntryPointFile && f == pyTestEntrypointFilename {
98- hasPyTestEntryPointFile = true
99- } else if f == conftestFilename {
100- hasConftestFile = true
101- } else if strings .HasSuffix (f , "_test.py" ) || (strings .HasPrefix (f , "test_" ) && ext == ".py" ) {
102- pyTestFilenames .Add (f )
103- } else if ext == ".py" {
104- pyLibraryFilenames .Add (f )
96+ if ext == ".py" {
97+ pyFileNames .Add (f )
98+ if ! hasPyBinary && f == pyBinaryEntrypointFilename {
99+ hasPyBinary = true
100+ } else if ! hasPyTestEntryPointFile && f == pyTestEntrypointFilename {
101+ hasPyTestEntryPointFile = true
102+ } else if f == conftestFilename {
103+ hasConftestFile = true
104+ } else if strings .HasSuffix (f , "_test.py" ) || strings .HasPrefix (f , "test_" ) {
105+ pyTestFilenames .Add (f )
106+ } else {
107+ pyLibraryFilenames .Add (f )
108+ }
105109 }
106110 }
107111
@@ -223,8 +227,7 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
223227 }
224228 }
225229
226- pyLibrary = newTargetBuilder (pyLibraryKind , pyLibraryTargetName , pythonProjectRoot , args .Rel , pyLibraryFilenames .Union (pyTestFilenames )).
227- setUUID (label .New ("" , args .Rel , pyLibraryTargetName ).String ()).
230+ pyLibrary = newTargetBuilder (pyLibraryKind , pyLibraryTargetName , pythonProjectRoot , args .Rel , pyFileNames ).
228231 addVisibility (visibility ).
229232 addSrcs (pyLibraryFilenames ).
230233 addModuleDependencies (deps ).
@@ -260,17 +263,13 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
260263 }
261264 }
262265
263- pyBinaryTarget := newTargetBuilder (pyBinaryKind , pyBinaryTargetName , pythonProjectRoot , args .Rel , pyLibraryFilenames . Union ( pyTestFilenames ) ).
266+ pyBinaryTarget := newTargetBuilder (pyBinaryKind , pyBinaryTargetName , pythonProjectRoot , args .Rel , pyFileNames ).
264267 setMain (pyBinaryEntrypointFilename ).
265268 addVisibility (visibility ).
266269 addSrc (pyBinaryEntrypointFilename ).
267270 addModuleDependencies (deps ).
268271 generateImportsAttribute ()
269272
270- if pyLibrary != nil {
271- pyBinaryTarget .addModuleDependency (module {Name : pyLibrary .PrivateAttr (uuidKey ).(string )})
272- }
273-
274273 pyBinary := pyBinaryTarget .build ()
275274
276275 result .Gen = append (result .Gen , pyBinary )
@@ -300,8 +299,7 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
300299 }
301300 }
302301
303- conftestTarget := newTargetBuilder (pyLibraryKind , conftestTargetname , pythonProjectRoot , args .Rel , pyLibraryFilenames .Union (pyTestFilenames )).
304- setUUID (label .New ("" , args .Rel , conftestTargetname ).String ()).
302+ conftestTarget := newTargetBuilder (pyLibraryKind , conftestTargetname , pythonProjectRoot , args .Rel , pyFileNames ).
305303 addSrc (conftestFilename ).
306304 addModuleDependencies (deps ).
307305 addVisibility (visibility ).
@@ -315,8 +313,8 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
315313 }
316314
317315 var pyTestTargets []* targetBuilder
318- newPyTestTargetBuilder := func (pyTestFilenames * treeset.Set , pyTestTargetName string ) * targetBuilder {
319- deps , err := parser .parse (pyTestFilenames )
316+ newPyTestTargetBuilder := func (srcs * treeset.Set , pyTestTargetName string ) * targetBuilder {
317+ deps , err := parser .parse (srcs )
320318 if err != nil {
321319 log .Fatalf ("ERROR: %v\n " , err )
322320 }
@@ -336,8 +334,8 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
336334 }
337335 }
338336 }
339- return newTargetBuilder (pyTestKind , pyTestTargetName , pythonProjectRoot , args .Rel , pyLibraryFilenames . Union ( pyTestFilenames ) ).
340- addSrcs (pyTestFilenames ).
337+ return newTargetBuilder (pyTestKind , pyTestTargetName , pythonProjectRoot , args .Rel , pyFileNames ).
338+ addSrcs (srcs ).
341339 addModuleDependencies (deps ).
342340 generateImportsAttribute ()
343341 }
@@ -371,14 +369,9 @@ func (py *Python) GenerateRules(args language.GenerateArgs) language.GenerateRes
371369 }
372370
373371 for _ , pyTestTarget := range pyTestTargets {
374- if pyLibrary != nil {
375- pyTestTarget .addModuleDependency (module {Name : pyLibrary .PrivateAttr (uuidKey ).(string )})
376- }
377-
378372 if conftest != nil {
379- pyTestTarget .addModuleDependency (module {Name : conftest . PrivateAttr ( uuidKey ).( string )})
373+ pyTestTarget .addModuleDependency (module {Name : strings . TrimSuffix ( conftestFilename , ".py" )})
380374 }
381-
382375 pyTest := pyTestTarget .build ()
383376
384377 result .Gen = append (result .Gen , pyTest )
0 commit comments