This fixes a crash in the grpc_performance_profile_* and grpc_e2e_performance_* tests.
Example failure: https://source.cloud.google.com/results/invocations/2112f2d5-db91-4901-87cb-cc9865f351f1/targets
The daily performance test passes with this fixit branch:
http://sponge2/23d4df20-f4dd-48ee-8789-4cd96b078ed5.
Additional fixes:
reorder imports according to the google style guide
replace deprecated cgi.escape library method with html.escape
In case it comes up, with respect to upgrading from py2 to py3, the iter{items,keys,values} methods are intentionally replaced with the less-efficient-in-python2 non-iter versions. This is a recommended practice even when supporting both python versions, and this is not performance-critical code.
Additional note: there is no performance difference btw py2 and py3 (~80 minutes to finish)
* Migrate the bm_diff benchmarks to python3
Includes a requirements.txt pinned at ~2017 versions, when this script
was first written.
* Replace p2 with p3 scipy/numpy dependencies.
* py2->3 for benchmark setup scripts
* upgrade pip to resolve python3 cryptography/setuptools-rust problem
* re-add jobset import (accidentally removed)
* re-add six's urllib import. This file is still used in py2 tests
* force py3 in run_if_c_cpp_modified.sh
* Fix another instance of subprocess.check_output binary mode
* Use the requirements.txt for CI perf environment setup
* Try to upgrade PyJWT. (v2.0.0 was problematic, #25053)
v2.x makes encode return strs from jwt.encode in both py2 and py3.
Previously, py3 would return bytes, and py2 a str.
* upgate cryptography lib version requirements for jwt.
* Wrap pip requirements specifier in quotes '>=x,<y'
* Decode subprocess output once instead of for every line
* Revert "Decode subprocess output once instead of for every line"
This reverts commit 28d14026431622ac7afd3535a8d7118e5be96628.
py2 doesn't support the `text` argument to subprocess.check_output.
* Address reviewer requests
* Pin a valid scipy version
* Remove scipy and tabulate dependencies from macos tests