Skip to content

Commit

Permalink
python: wrap re-exported _py_builtins objects in Starlark functions.
Browse files Browse the repository at this point in the history
This is to avoid some stricter serialization checks failing for the Google-internal
version of Bazel.

PiperOrigin-RevId: 571954815
Change-Id: Ia62810898dec1f3d012dbd412186f81c1159669f
  • Loading branch information
rickeylev authored and copybara-github committed Oct 9, 2023
1 parent bfc2772 commit 917639b
Showing 1 changed file with 64 additions and 15 deletions.
79 changes: 64 additions & 15 deletions src/main/starlark/builtins_bzl/common/python/py_internal.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,64 @@ load(":common/cc/cc_helper.bzl", "cc_helper")
_py_builtins = _builtins.internal.py_builtins
PackageSpecificationInfo = _builtins.toplevel.PackageSpecificationInfo

# NOTE: Directly exporting the Java objects on _py_builtins results in some
# stricter serialization check failures within the Google implementation.
# Instead, they must be wrapped in a Starlark function.

def _add_py_extra_pseudo_action(*args, **kwargs):
return _py_builtins.add_py_extra_pseudo_action(*args, **kwargs)

def _are_action_listeners_enabled(*args, **kwargs):
return _py_builtins.are_action_listeners_enabled(*args, **kwargs)

def _compilation_outputs(cc_launcher_info):
return cc_launcher_info.compilation_outputs()

def _compile(*args, **kwargs):
return cc_common.compile(*args, **kwargs)

def _copy_without_caching(*args, **kwargs):
return _py_builtins.copy_without_caching(*args, **kwargs)

def _create_linking_context_from_compilation_outputs(*args, **kwargs):
return cc_common.create_linking_context_from_compilation_outputs(*args, **kwargs)

def _create_repo_mapping_manifest(*args, **kwargs):
return _py_builtins.create_repo_mapping_manifest(*args, **kwargs)

def _create_sources_only_manifest(*args, **kwargs):
return _py_builtins.create_sources_only_manifest(*args, **kwargs)

def _declare_constant_metadata_file(*args, **kwargs):
return _py_builtins.declare_constant_metadata_file(*args, **kwargs)

def _declare_shareable_artifact(ctx, *args, **kwargs):
return ctx.actions.declare_shareable_artifact(*args, **kwargs)

def _expand_location_and_make_variables(*args, **kwargs):
return _py_builtins.expand_location_and_make_variables(*args, **kwargs)

def _get_current_os_name(*args, **kwargs):
return _py_builtins.get_current_os_name(*args, **kwargs)

def _get_label_repo_runfiles_path(*args, **kwargs):
return _py_builtins.get_label_repo_runfiles_path(*args, **kwargs)

def _get_legacy_external_runfiles(*args, **kwargs):
return _py_builtins.get_legacy_external_runfiles(*args, **kwargs)

def _get_rule_name(*args, **kwargs):
return _py_builtins.get_rule_name(*args, **kwargs)

def _is_available_for(package_group_target, label):
return package_group_target[PackageSpecificationInfo].contains(label)

def _is_bzlmod_enabled(*args, **kwargs):
return _py_builtins.is_bzlmod_enabled(*args, **kwargs)

def _is_singleton_depset(*args, **kwargs):
return _py_builtins.is_singleton_depset(*args, **kwargs)

def _is_tool_configuration(ctx):
return ctx.configuration.is_tool_configuration()

Expand All @@ -48,12 +91,18 @@ def _runfiles_enabled(ctx):
def _link(*args, **kwargs):
return cc_common.link(*args, **kwargs)

def _make_runfiles_respect_legacy_external_runfiles(*args, **kwargs):
return _py_builtins.make_runfiles_respect_legacy_external_runfiles(*args, **kwargs)

def _merge_debug_context(*args, **kwargs):
return cc_common.merge_debug_context(*args, **kwargs)

def _merge_linking_contexts(*args, **kwargs):
return cc_common.merge_linking_contexts(*args, **kwargs)

def _merge_runfiles_with_generated_inits_empty_files_supplier(*args, **kwargs):
return _py_builtins.merge_runfiles_with_generated_inits_empty_files_supplier(*args, **kwargs)

def _share_native_deps(ctx):
return ctx.fragments.cpp.share_native_deps()

Expand All @@ -67,31 +116,31 @@ def _strip_opts(ctx):
py_internal = struct(
CcLauncherInfo = _builtins.internal.cc_internal.launcher_provider,
PackageSpecificationInfo = PackageSpecificationInfo,
add_py_extra_pseudo_action = _py_builtins.add_py_extra_pseudo_action,
are_action_listeners_enabled = _py_builtins.are_action_listeners_enabled,
add_py_extra_pseudo_action = _add_py_extra_pseudo_action,
are_action_listeners_enabled = _are_action_listeners_enabled,
cc_helper = cc_helper,
compilation_outputs = _compilation_outputs,
compile = _compile,
copy_without_caching = _py_builtins.copy_without_caching,
copy_without_caching = _copy_without_caching,
create_linking_context_from_compilation_outputs = _create_linking_context_from_compilation_outputs,
create_repo_mapping_manifest = _py_builtins.create_repo_mapping_manifest,
create_sources_only_manifest = _py_builtins.create_sources_only_manifest,
declare_constant_metadata_file = _py_builtins.declare_constant_metadata_file,
create_repo_mapping_manifest = _create_repo_mapping_manifest,
create_sources_only_manifest = _create_sources_only_manifest,
declare_constant_metadata_file = _declare_constant_metadata_file,
declare_shareable_artifact = _declare_shareable_artifact,
expand_location_and_make_variables = _py_builtins.expand_location_and_make_variables,
get_current_os_name = _py_builtins.get_current_os_name,
get_label_repo_runfiles_path = _py_builtins.get_label_repo_runfiles_path,
get_legacy_external_runfiles = _py_builtins.get_legacy_external_runfiles,
get_rule_name = _py_builtins.get_rule_name,
expand_location_and_make_variables = _expand_location_and_make_variables,
get_current_os_name = _get_current_os_name,
get_label_repo_runfiles_path = _get_label_repo_runfiles_path,
get_legacy_external_runfiles = _get_legacy_external_runfiles,
get_rule_name = _get_rule_name,
is_available_for = _is_available_for,
is_bzlmod_enabled = _py_builtins.is_bzlmod_enabled,
is_singleton_depset = _py_builtins.is_singleton_depset,
is_bzlmod_enabled = _is_bzlmod_enabled,
is_singleton_depset = _is_singleton_depset,
is_tool_configuration = _is_tool_configuration,
link = _link,
make_runfiles_respect_legacy_external_runfiles = _py_builtins.make_runfiles_respect_legacy_external_runfiles,
make_runfiles_respect_legacy_external_runfiles = _make_runfiles_respect_legacy_external_runfiles,
merge_debug_context = _merge_debug_context,
merge_linking_contexts = _merge_linking_contexts,
merge_runfiles_with_generated_inits_empty_files_supplier = _py_builtins.merge_runfiles_with_generated_inits_empty_files_supplier,
merge_runfiles_with_generated_inits_empty_files_supplier = _merge_runfiles_with_generated_inits_empty_files_supplier,
runfiles_enabled = _runfiles_enabled,
share_native_deps = _share_native_deps,
stamp_binaries = _stamp_binaries,
Expand Down

0 comments on commit 917639b

Please sign in to comment.