[Python] Generate .pyi stub files when --python-typing is on. (#8312)

* [Python] Generate `.pyi` stub files when `--python-typing` is on.

To support this change, the following modifications were made:

-  added a new option to disable `numpy` helpers generation;
-  added a new flag to control the target Python version:

   `--python-version` can be one of the following:

   - `0.x.x` – compatible with any Python version;
   - `2.x.x` – compatible with Python 2;
   - `3.x.x` – compatible with Python 3.
-  added codegen utilities for Python;
-  added a note that the generated .py file is empty.

* [Python] Update Bazel build rules.

* [Python] Update Bazel build rules.

* [Python] Run buildifier on BUILD.bazel files.

---------

Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
Anton Bobukh
2024-05-29 12:47:29 -07:00
committed by GitHub
parent 58c8eb5847
commit 3b27f5396e
27 changed files with 2865 additions and 34 deletions

View File

@@ -706,8 +706,26 @@ struct IDLOptions {
bool no_leak_private_annotations;
bool require_json_eof;
bool keep_proto_id;
/********************************** Python **********************************/
bool python_no_type_prefix_suffix;
bool python_typing;
// The target Python version. Can be one of the following:
// - "0"
// - "2"
// - "3"
// - "2.<minor>"
// - "3.<minor>"
// - "2.<minor>.<micro>"
// - "3.<minor>.<micro>"
//
// https://docs.python.org/3/faq/general.html#how-does-the-python-version-numbering-scheme-work
std::string python_version;
// Whether to generate numpy helpers.
bool python_gen_numpy;
bool ts_omit_entrypoint;
ProtoIdGapAction proto_id_gap_action;
@@ -828,6 +846,7 @@ struct IDLOptions {
keep_proto_id(false),
python_no_type_prefix_suffix(false),
python_typing(false),
python_gen_numpy(true),
ts_omit_entrypoint(false),
proto_id_gap_action(ProtoIdGapAction::WARNING),
mini_reflect(IDLOptions::kNone),