Commit Graph

98 Commits

Author SHA1 Message Date
Esun Kim 32dd034675
[Build] Shortened python_build to pyb (#34913)
To mitigate the following windows long path issue found in
https://github.com/grpc/grpc/pull/34513. Using `pyb` instead of
`python_build` saves 9 characters.

---

`Distribution Tests Python Windows` failed because of 

`T:\altsrc\github\grpc\workspace_python_windows_x86_Python38_32bit\python_build\\temp.win-amd64-cpython-312\\Release\\src\core\ext\upb-gen\envoy\extensions\load_balancing_policies\client_side_weighted_round_robin\v3\client_side_weighted_round_robin.upb_minitable.obj`
2023-11-09 22:31:40 -08:00
Xuan Wang 4dd42478d5
[Python Misc] Remove fetch_build_eggs & Fix run_test (#34270)
* Remove `fetch_build_eggs` since they're deprecated and those deps will
be installed by `setuptools`.
* Fix indentation on `run_test` so we don't miss `native` test cases.

<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-09-07 12:35:28 -07:00
Xuan Wang c7a1336566
[Python 3.12] Deprecate distutil (#34186)
### Background

* `distutils` is deprecated with removal planned for Python 3.12
([pep-0632](https://peps.python.org/pep-0632/)), thus we're trying to
replace all distutils usage with setuptools.
* Please note that user still have access to `distutils` if setuptools
is installed and `SETUPTOOLS_USE_DISTUTILS` is set to `local` (The
default in setuptools, more details can be found [in this
discussion](https://github.com/pypa/setuptools/issues/2806#issuecomment-1193336591)).

### How we decide the replacement

* We're following setuptools [Porting from Distutils
guide](https://setuptools.pypa.io/en/latest/deprecated/distutils-legacy.html#porting-from-distutils)
when deciding the replacement.

#### Replacement not mentioned in the guide

* Replaced `distutils.utils.get_platform()` with
`sysconfig.get_platform()`.
* Based on the [answer
here](https://stackoverflow.com/questions/71664875/what-is-the-replacement-for-distutils-util-get-platform),
and also checked the document that `sysconfig.get_platform()` is good
enough for our use cases.
* Replaced `DistutilsOptionError` with `OptionError`.
* `setuptools.error` is exporting it as `OptionError` [in the
code](https://github.com/pypa/setuptools/blob/v59.6.0/setuptools/errors.py).
* Upgrade `setuptools` in `test_packages.sh` and changed the version
ping to `59.6.0` in `build_artifact_python.bat`.
* `distutils.errors.*` is not fully re-exported until `59.0.0` (See
[this issue](https://github.com/pypa/setuptools/issues/2698) for more
details).

### Changes not included in this PR

* We're patching some compiler related functions provided by distutils
in our code
([example](ee4efc31c1/src/python/grpcio/_spawn_patch.py (L30))),
but since `setuptools` doesn't have similar interface (See [this issue
for more details](https://github.com/pypa/setuptools/issues/2806)), we
don't have a clear path to replace them yet.


<!--

If you know who should review your pull request, please assign it to
that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the
appropriate
lang label.

-->
2023-09-06 14:32:30 -07:00
Sergii Tkachenko de6ed9ba9f
[Python] Migrate from yapf to black (#33138)
- Switched  from yapf to black
- Reconfigure isort for black
- Resolve black/pylint idiosyncrasies 

Note: I used `--experimental-string-processing` because black was
producing "implicit string concatenation", similar to what described
here: https://github.com/psf/black/issues/1837. While currently this
feature is experimental, it will be enabled by default:
https://github.com/psf/black/issues/2188. After running black with the
new string processing so that the generated code merges these `"hello" "
world"` strings concatenations, then I removed
`--experimental-string-processing` for stability, and regenerated the
code again.

To the reviewer: don't even try to open "Files Changed" tab 😄 It's
better to review commit-by-commit, and ignore `run black and isort`.
2023-06-09 15:08:55 -07:00
Georgy Yakovlev 31fc452b68
respect CC variable (#26480)
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>

Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
2022-11-28 15:07:36 -08:00
Xuan Wang 823378dfe2
[Python][Remove Six] Remove Six dependency part II (#31309)
* [Python][Remove Six] Remove Six dependency

* Change import format
2022-10-12 13:10:11 -07:00
Esun Kim 03e9ac6f1f
Requiring C++14 (#29589) 2022-05-12 21:17:32 -07:00
Lidi Zheng 83e7cb24fe
Fix the setuptools distutils overriding issue (#28393)
* Fix the distutil install issue

* Try to move setuptools install forward

* Try pin the distribution tools

* Enforce local distutil

* Fix script order of definition

* Add comment

* Try to fix the setuptool monkey patch

* Clean-up imports for commands.py

* Pin 59.6.0 instead of 59.7.0 (incomplete release)
2021-12-21 12:27:01 -08:00
Lidi Zheng 2231c2ba77
Introduce Python import sorting to our sanity test suite (#26768)
* Add isort_code.sh to sanity tests

* Run tools/distrib/isort_code.sh

* Fine tune the import order for relative imports

* Make pylint and project generation happy

* Fix a few corner cases

* Use --check instead of --diff

* The import order impacts test result somehow

* Make isort print diff and check output at the same time

* Let tools/run_tests/python_utils be firstparty library

* Run isort against latest HEAD
2021-07-26 12:31:21 -07:00
Lidi Zheng 05ae3c5a87
Remove -std=gnu99 CFlag when compiling C++ with clang (#25778)
* Remove -std=gnu99 CFlag when compiling C++ with clang

* Use endswith instead of hard-coded slices

* Fix a typo
2021-04-06 06:50:40 -07:00
Jan Tattermusch fcd43e9030
Crosscompile python aarch64 wheels with dockcross (#25418)
* build aarch64 python wheels via crosscompilation

* yapf format code

* fix shellcheck complaints

* fix python37 aarch64 wheel build

* build python wheels on linux aarch64 with static libstdc++

* yapf format code
2021-03-02 07:32:28 +01:00
Lidi Zheng 511af22c78 Hopefully fixed 27 build on winserver2016
* Download the working msys64 and use it to compile 27
* Remove the cygwin detection override logic
* Only install Python interpreters in jobs running on winserver2016
* Fix the batch script substring check
* Increase the timeout for related jobs
* TIL that there is an allow list for Kokoro env vars
2020-11-23 14:17:58 -08:00
Lidi Zheng 1eedd0a693 Add extra safe guard to prevent this function misbehave again 2020-10-30 10:15:33 -07:00
Lidi Zheng ca2b0f5f07 Fix typo in Python's Windows build 2020-10-29 17:15:31 -07:00
Lidi Zheng 9e0b427893 Use != with literals 2020-09-29 14:44:59 -07:00
Lidi Zheng 9a54627c0b Include re2 in source wheel && solve the missing --all complain 2020-07-20 17:06:26 -07:00
Richard Belleville 4fcf9d01d2 Address review comments 2020-06-19 15:31:55 -07:00
Richard Belleville af222241a7 Give up on getting compiler executable from distutils 2020-06-18 10:40:31 -07:00
Richard Belleville edcf210050 Use proper compiler 2020-06-17 22:00:54 -07:00
Richard Belleville 08e117ae80 Improve build slightly 2020-06-17 16:12:59 -07:00
Lidi Zheng e5ff58ed85 Make YAPF happy 2020-01-28 15:43:13 -08:00
Lidi Zheng 50ed111cde Pack the platform check into the compiler check function 2020-01-28 15:41:29 -08:00
Lidi Zheng 09d121f65e Fix the windows build failure 2020-01-28 13:32:59 -08:00
Esun Kim 7be821ac47 Yapf all target python sources 2020-01-03 09:25:10 -08:00
Lidi Zheng bb38187221 Add a TODO to remove a.out 2019-11-26 11:18:00 -08:00
Richard Belleville efa1f8b993 Remove debug prints 2019-03-05 16:11:05 -08:00
Richard Belleville 07bfbec8f9 Fix hanging build 2019-03-05 16:09:31 -08:00
Nikolai Lifanov 580b720a39 address comments by ericgribkoff@
o re-add USE_PREBUILT_GRPC_CORE option that was erroneously removed
o fix typo in comment
2019-02-22 15:55:59 -08:00
Nikolai Lifanov a916a53347 use str instead of Text to appease Python 2.7
The Python 2.7 Linux test runner doesn't have typing module available.
2019-02-22 11:32:26 -08:00
Nikolai Lifanov 9eb1171dfb be compatible with Python 2 and Python 3
In Python 3, cc_err is going to be bytes().
2019-02-21 17:54:27 -08:00
Nikolai Lifanov ad093660ff format with yapf
This was already formatted with yapf, but perhaps I didn't do this
correctly. I copied the diff directly from kokoro build log this
time.
2019-02-21 16:15:33 -08:00
Nikolai Lifanov c1451e83d5 generalize macOS workaround for -std=c++11 passed in C mode
GCC allows this, but notably clang does not. Other systems,
like FreeBSD and some Linux distros ship with clang as default
compiler. While here, switch the approach to filtering out std
flag since the make workaround relies on GNU make syntax and
'make' binary could be bmake and/or gmake could be absent.

The idea to filter the flags was taken from an answer to this
Stack Overflow question:
https://stackoverflow.com/questions/15527611/how-do-i-specify-different-compiler-flags-in-distutils-for-just-one-python-c-ext
2019-02-21 15:49:04 -08:00
Lidi Zheng a7a3f5b42e
Merge pull request #17074 from lidizheng/python-doc-gen
The new gRPC Python documentation generator
2018-11-07 11:08:19 -08:00
Lidi Zheng cabe8d8f10 New Python documentation generation
* Use templates instead of generating them every time
* Theme changed
* Add grpc_* modules
* APIs grouped
* No documentation for class members without docstring
* Add docstring for status code
2018-11-06 18:07:03 -08:00
Lidi Zheng 03841be6ce Add background about the special condition 2018-11-06 16:12:27 -08:00
Lidi Zheng 4e5ee57000 Change flag to `REQUIRE_CUSTOM_LIBRARIES_opt` 2018-10-30 10:00:55 -07:00
Lidi Zheng 7502a2311a
Try cleaner separation
* reduce possible contamination of environment variables
2018-10-29 22:48:35 -07:00
Lidi Zheng 688db0ec5b
Remove the environment variable changing line
* This commit failed `tools/run_tests/artifacts/build_artifact_csharp.sh`
* It doesn't make any sense!
2018-10-29 21:14:49 -07:00
Lidi Zheng 9569ebe770 Add reference to the issue 2018-10-29 16:38:20 -07:00
Lidi Zheng 465886533f Ensure libboringssl.a is always built for Python 2018-10-29 16:35:21 -07:00
Eric Gribkoff 0ff641a246 Define the allow pthread atfork macro for gRPC Python MacOS builds 2018-08-22 12:25:08 -07:00
Mehrdad Afshari 87cd994b04 Upgrade yapf to 0.20.0
Upgrade yapf version to 0.20.0 and reformat Python files.
2018-01-02 14:40:00 -08:00
Jan Tattermusch 7897ae9308 auto-fix most of licenses 2017-06-08 11:22:41 +02:00
Ken Payson b91c5fb8ba Fix python artifact build 2017-05-09 13:28:32 -07:00
Ken Payson 0eac8aa220 Yapf_code 2017-04-17 01:58:15 -07:00
Ken Payson 63b0d11ca8 Final changes 2017-04-17 00:03:40 -07:00
Ken Payson ae5ca1b447 Fixes 2017-04-14 16:34:26 -07:00
Ken Payson 5b034e6a4f Windows + mac dbg fix 2017-04-14 16:25:51 -07:00
Ken Payson 571c75aa33 Switch to Makefile based build on mac 2017-04-13 16:39:37 -07:00
Ken Payson 3b90055f2c Fix mac build 2017-04-10 15:53:17 -07:00