* Add cpp macro to append wrapped language info to xDS user agent
* Add Python xDS user agent
* fix redefinition error and add macro for wrapped lang version
* clang-format
* Revert xds_api.cc changes
* Use two separate macros
* Yapf
* Regenerate projects
* Include _metadata.py in source distributions
* Attempt to fix quote escaping on Windows
Co-authored-by: Mark D. Roth <roth@google.com>
Before this change, running Python tests individually required
building a tox environment via the run_tests script and then specifying
long environment variables to filter out just the test we wanted to run
(and then we wouldn't be able to get the output on interrupt, nor would
we have an easy way of determining the PID of the process for debugger
attachment). Now invoking the build_python.sh script creates a workable
python virtual environment that includes all necessary libraries and
tests (s.t. running a single test is now possible by just knowing the
module name). This does not change existing supported means of running
tests (e.g. through run_tests.py).
An additional way of running individual tests has been introduced.
Following invocation of `./tools/run_tests/build_python.sh` (or
run_tests.py), one may invoke
./$VENV/bin/python -m $TEST_MODULE_NAME
and acquire a single running process that *is* the test process (rather
than a parent of the process). $VENV is the virtual environment name
specified to `build_python.sh` (defaults to `py27`) and
$TEST_MODULE_NAME is what it says on the tin.
Currently, grpcio cannot be used as a dependency for egg packages
(https://github.com/grpc/grpc/issues/6939)
There is likely a better solution, but this is intended as a patch
for the 0.15.0 release.