pulumi/sdk/python/cmd/pulumi-language-python
Anton Tayanovskyy d6db21dd55
Avoid repeatedly invoking `pip show` in Python lang host (#7831)
* Avoid repeatedly invoking `pip show` in Python lang host

The Python language host invokes `pip show` for each Pulumi package in a
project at startup. But `pip show` is quite slow in large projects: it
takes 2+ seconds per invocation in a project at @MaterializeInc.

`pip show` is invoked to compute the installed location of each plugin
package. But it turns out `pip list` takes a `-v` flag that can supply
this information in one shot, avoiding the need to ever invoke `pip
show`.

This patch shaves about 20s off our boot time for `pulumi up`.

(There's probably a separate bug in Pip that causes `pip show` to be so
slow, because `pip list` is an order of magnitude faster and does a lot
more work, but I didn't bother tracking that down.)

* Test and fix issue with parsing non-JSON trailer returned by pip

* Fix issues found by Go lint

* CHANGELOG entry

Co-authored-by: Nikhil Benesch <nikhil.benesch@gmail.com>
2021-08-25 11:40:58 -04:00
..
main.go Avoid repeatedly invoking `pip show` in Python lang host (#7831) 2021-08-25 11:40:58 -04:00
main_test.go Avoid repeatedly invoking `pip show` in Python lang host (#7831) 2021-08-25 11:40:58 -04:00