Precompile python sources

This signifigantly improves the startup time of soong-built
python binaries. For example, running
`m apexer && time out/host/linux-x86/bin/apexer` gives
0.734s before this cl, and 0.094s after.

Fixes: 259718110
Test: Presubmits
Change-Id: Ib19e83e2c60c39a849525be117279c318de3afa7
This commit is contained in:
Cole Faust
2023-01-24 11:48:08 -08:00
parent 3420d978cf
commit 5c503d1c43
11 changed files with 295 additions and 96 deletions

View File

@@ -359,7 +359,8 @@ func (oz *OutputZip) getUninitializedPythonPackages(inputZips []InputZip) ([]str
}
for _, file := range inputZip.Entries() {
pyPkg := getPackage(file.Name)
if filepath.Base(file.Name) == "__init__.py" {
baseName := filepath.Base(file.Name)
if baseName == "__init__.py" || baseName == "__init__.pyc" {
if _, found := initedPackages[pyPkg]; found {
panic(fmt.Errorf("found __init__.py path duplicates during pars merging: %q", file.Name))
}