| # |
| # Public targets: |
| # ":platform" - Low-level and platform-specific Python code. |
| |
| load("//tensorflow:strict.default.bzl", "py_strict_library") |
| load("//tensorflow:tensorflow.bzl", "VERSION", "cc_header_only_library", "clean_dep", "if_google", "if_mlir", "if_oss", "if_windows", "if_xla_available", "tf_enable_mlir_bridge", "tf_python_pybind_static_deps", "tsl_async_value_deps") |
| load("//tensorflow:tensorflow.default.bzl", "get_compatible_with_portable", "pywrap_tensorflow_macro", "tf_external_workspace_visible", "tf_monitoring_python_deps", "tf_pybind_cc_library_wrapper", "tf_python_pybind_extension") |
| load( |
| "//tensorflow/core/platform:build_config.bzl", |
| "tf_additional_binary_deps", |
| "tf_proto_library", |
| ) |
| load( |
| "//tensorflow/core/platform:build_config_root.bzl", |
| "if_static", |
| "tf_additional_plugin_deps", |
| "tf_additional_profiler_deps", |
| ) |
| load("//third_party/mkl_dnn:build_defs.bzl", "if_onednn_v3") |
| |
| # TODO(mdan): Break into per-directory files. |
| |
| visibility = [ |
| "//engedu/ml/tf_from_scratch:__pkg__", |
| "//third_party/cloud_tpu/convergence_tools:__subpackages__", |
| "//third_party/mlperf:__subpackages__", |
| "//tensorflow:internal", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/lite/toco/python:__pkg__", |
| "//tensorflow_models:__subpackages__", |
| "//tensorflow_model_optimization:__subpackages__", |
| "//third_party/py/cleverhans:__subpackages__", |
| "//third_party/courier:__subpackages__", |
| "//third_party/py/courier:__subpackages__", |
| "//third_party/py/lingvo:__subpackages__", |
| "//third_party/py/reverb:__subpackages__", |
| "//third_party/py/tensorfn:__subpackages__", |
| "//third_party/py/neural_structured_learning:__subpackages__", |
| "//third_party/py/tensorflow_docs:__subpackages__", |
| "//third_party/py/tensorflow_examples:__subpackages__", |
| "//third_party/py/tensorflow_recommenders:__subpackages__", |
| "//third_party/py/tf_agents:__subpackages__", # For benchmarks. |
| "//third_party/py/tf_slim:__subpackages__", |
| "//third_party/py/keras:__subpackages__", |
| "//third_party/py/starcraft2:__subpackages__", |
| "//third_party/py/tensorflow_gnn:__subpackages__", |
| "//third_party/py/tensorflow_numerics:__subpackages__", |
| "//third_party/py/tensorflow_privacy:__subpackages__", |
| "//third_party/reverb:__subpackages__", |
| "//tensorflow_minigo:__subpackages__", |
| "//research/graph/fairness/inproc_fair_reg:__subpackages__", |
| ] |
| |
| package( |
| # copybara:uncomment default_applicable_licenses = ["//tensorflow:license"], |
| default_visibility = visibility, |
| licenses = ["notice"], |
| ) |
| |
| # Description: |
| |
| py_library( |
| name = "python", |
| srcs = ["__init__.py"], |
| srcs_version = "PY3", |
| visibility = [ |
| "//tensorflow:__pkg__", |
| "//tensorflow/compiler/aot/tests:__pkg__", # TODO(b/34059704): remove when fixed |
| "//tensorflow/lite/toco/python:__pkg__", # TODO(b/34059704): remove when fixed |
| "//tensorflow/python/debug:__subpackages__", |
| "//tensorflow/python/tools:__pkg__", # TODO(b/34059704): remove when fixed |
| "//tensorflow/tools/quantization:__pkg__", # TODO(b/34059704): remove when fixed |
| ], |
| deps = [ |
| ":gradient_checker_v2", |
| ":no_contrib", |
| ":stateful_random_ops", |
| "//tensorflow/python/estimator:estimator_py", |
| "//tensorflow/python/ops/structured:structured_ops", |
| "//tensorflow/python/platform:app", |
| "//tensorflow/python/platform:client_testlib", |
| "//tensorflow/python/platform:flags", |
| "//tensorflow/python/platform:gfile", |
| "//tensorflow/python/platform:resource_loader", |
| "//tensorflow/python/platform:sysconfig", |
| "//tensorflow/python/platform:tf_logging", |
| "//tensorflow/python/summary:summary_py", |
| "//tensorflow/python/tpu:tpu_estimator", |
| "//tensorflow/python/util:all_util", |
| "//tensorflow/python/util:compat", |
| "//tensorflow/python/util:dispatch", |
| "//tensorflow/python/util:tf_export", |
| ], |
| ) |
| |
| # Some of the dependencies in keras_lib are possibly outdated or not generally |
| # useful, so a future task is to determine a good set of dependencies. |
| # keras_lib may be removed in the future, it should NOT be used as |
| # a direct dependency. |
| # TODO(b/199420795) investigate minimal set of dependencies ... |
| py_strict_library( |
| name = "keras_lib", |
| srcs_version = "PY3", |
| visibility = [ |
| "//tensorflow:__pkg__", |
| "//tensorflow:internal", |
| "//tensorflow/python/estimator:__subpackages__", |
| "//tensorflow/python/keras:__subpackages__", |
| "//tensorflow/python/tools:__pkg__", |
| "//tensorflow/python/tools/api/generator:__pkg__", |
| "//tensorflow/tools/api/tests:__pkg__", |
| "//tensorflow/tools/compatibility/update:__pkg__", |
| "//tensorflow_estimator:__subpackages__", |
| "//third_party/py/tensorflow_privacy:__subpackages__", # TODO(b/163395075): remove when fixed |
| ], |
| deps = [ |
| ":layers", |
| ":rnn", |
| "//tensorflow/python/feature_column:feature_column_py", |
| "//tensorflow/python/keras", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "tmp_alias_for_pip", |
| tags = ["avoid_dep"], |
| visibility = ["//visibility:private"], |
| deps = [ |
| ":array_grad", |
| ":batch_ops", |
| ":candidate_sampling_ops", |
| ":composite_tensor_ops_gen", |
| ":critical_section_ops", |
| ":data_flow_grad", |
| ":data_flow_ops_gen", |
| ":functional_ops_gen", |
| ":inplace_ops", |
| ":linalg_ops_impl", |
| ":math_grad", |
| ":numerics", |
| ":parsing_config", |
| ":random_grad", |
| ":random_index_shuffle_ops_gen", |
| ":set_ops_gen", |
| ":shape_util", |
| ":sparse_grad", |
| ":state_ops_gen", |
| ":stateful_random_ops_gen", |
| ], |
| ) |
| |
| py_library( |
| name = "no_contrib", |
| srcs = ["__init__.py"], |
| srcs_version = "PY3", |
| visibility = [ |
| "//tensorflow:__pkg__", |
| "//tensorflow/python/estimator:__subpackages__", |
| "//tensorflow/python/keras:__subpackages__", |
| "//tensorflow/python/tools:__pkg__", |
| "//tensorflow/python/tools/api/generator:__pkg__", |
| "//tensorflow/tools/api/tests:__pkg__", |
| "//tensorflow/tools/compatibility/update:__pkg__", |
| "//third_party/py/keras:__subpackages__", |
| "//third_party/py/tensorflow_core:__subpackages__", |
| ], |
| deps = [ |
| ":_pywrap_py_exception_registry", |
| ":_pywrap_quantize_training", |
| ":_pywrap_utils", |
| ":array_ops", |
| ":array_ops_stack", |
| ":audio_ops_gen", |
| ":bincount_ops", |
| ":bitwise_ops", |
| ":boosted_trees_ops", |
| ":check_ops", |
| ":client_testlib", |
| ":clustering_ops", |
| ":collective_ops", |
| ":composite_tensor_ops", |
| ":cond", |
| ":cond_v2", |
| ":confusion_matrix", |
| ":control_flow_assert", |
| ":control_flow_case", |
| ":control_flow_ops", |
| ":control_flow_switch_case", |
| ":cudnn_rnn_ops_gen", |
| ":distributed_framework_test_lib", |
| ":dtensor", |
| ":filesystem_ops", |
| ":functional_ops", |
| ":gradient_checker", |
| ":gradient_checker_v2", |
| ":histogram_ops", |
| ":image_ops", |
| ":initializers_ns", |
| ":io_ops", |
| ":keras_lib", |
| ":lib", |
| ":list_ops", |
| ":manip_ops", |
| ":map_fn", |
| ":map_ops", |
| ":math_ops", |
| ":metrics", |
| ":nccl_ops", |
| ":nn", |
| ":ops", |
| ":proto_ops", |
| ":pywrap_tensorflow", |
| ":pywrap_tfe", |
| ":random_crop_ops", |
| ":ref_variable", |
| ":rnn_cell", |
| ":rnn_ops_gen", |
| ":saver", |
| ":script_ops", |
| ":sendrecv_ops_gen", |
| ":session_ops", |
| ":sets", |
| ":sparse_ops", |
| ":standard_ops", |
| ":state_ops", |
| ":stateful_random_ops", |
| ":string_ops", |
| ":tensor_array_ops", |
| ":tensor_spec", |
| ":tmp_alias_for_pip", |
| ":training", |
| ":uniform_quant_ops_gen", |
| ":variable_v1", |
| ":weights_broadcast_ops", |
| ":while_loop", |
| ":while_v2", |
| "//tensorflow/core:protos_all_py", |
| "//tensorflow/python/autograph", |
| "//tensorflow/python/autograph/utils:testing", |
| "//tensorflow/python/client", |
| "//tensorflow/python/client:_pywrap_events_writer", |
| "//tensorflow/python/client:pywrap_tf_session", |
| "//tensorflow/python/compat", |
| "//tensorflow/python/compat:v2_compat", |
| "//tensorflow/python/compiler/mlir", |
| "//tensorflow/python/compiler/tensorrt:init_py", |
| "//tensorflow/python/compiler/xla:compiler_py", |
| "//tensorflow/python/data", |
| "//tensorflow/python/debug:debug_py", |
| "//tensorflow/python/distribute", |
| "//tensorflow/python/distribute:combinations", # For tf.__internal__ API. |
| "//tensorflow/python/distribute:distribute_config", |
| "//tensorflow/python/distribute:estimator_training", |
| "//tensorflow/python/distribute:strategy_combinations", # For tf.__internal__, |
| "//tensorflow/python/distribute/experimental/rpc:rpc_ops", |
| "//tensorflow/python/dlpack", |
| "//tensorflow/python/eager:def_function", |
| "//tensorflow/python/eager:monitoring", |
| "//tensorflow/python/eager:profiler", |
| "//tensorflow/python/eager:profiler_client", |
| "//tensorflow/python/eager:remote", |
| "//tensorflow/python/framework", |
| "//tensorflow/python/framework:_pywrap_python_op_gen", |
| "//tensorflow/python/framework:_test_metrics_util", |
| "//tensorflow/python/framework:combinations", |
| "//tensorflow/python/framework:config", |
| "//tensorflow/python/framework:errors", |
| "//tensorflow/python/framework:extension_type", |
| "//tensorflow/python/framework:for_generated_wrappers", |
| "//tensorflow/python/framework:graph_util", |
| "//tensorflow/python/framework:kernels", |
| "//tensorflow/python/framework:subscribe", |
| "//tensorflow/python/framework:test_ops", # TODO(b/183988750): Break testing code out into separate rule. |
| "//tensorflow/python/grappler:tf_cluster", |
| "//tensorflow/python/grappler:tf_item", |
| "//tensorflow/python/grappler:tf_optimizer", |
| "//tensorflow/python/module", |
| "//tensorflow/python/ops/distributions", |
| "//tensorflow/python/ops/distributions:bijector_test_util", |
| "//tensorflow/python/ops/distributions:identity_bijector", |
| "//tensorflow/python/ops/linalg", |
| "//tensorflow/python/ops/linalg:linear_operator_test_util", |
| "//tensorflow/python/ops/linalg/sparse:sparse_py", |
| "//tensorflow/python/ops/losses", |
| "//tensorflow/python/ops/numpy_ops:np_config", |
| "//tensorflow/python/ops/numpy_ops:np_random", |
| "//tensorflow/python/ops/numpy_ops:numpy", |
| "//tensorflow/python/ops/parallel_for", |
| "//tensorflow/python/ops/ragged", |
| "//tensorflow/python/ops/signal", |
| "//tensorflow/python/ops/signal:dct_ops", |
| "//tensorflow/python/ops/signal:fft_ops", |
| "//tensorflow/python/ops/signal:mel_ops", |
| "//tensorflow/python/ops/signal:mfcc_ops", |
| "//tensorflow/python/ops/signal:reconstruction_ops", |
| "//tensorflow/python/ops/signal:shape_ops", |
| "//tensorflow/python/ops/signal:spectral_ops", |
| "//tensorflow/python/ops/signal:util_ops", |
| "//tensorflow/python/ops/signal:window_ops", |
| "//tensorflow/python/ops/structured:structured_ops", |
| "//tensorflow/python/platform:_pywrap_stacktrace_handler", |
| "//tensorflow/python/platform:app", |
| "//tensorflow/python/platform:flags", |
| "//tensorflow/python/platform:gfile", |
| "//tensorflow/python/platform:resource_loader", |
| "//tensorflow/python/platform:sysconfig", |
| "//tensorflow/python/platform:tf_logging", |
| "//tensorflow/python/profiler", |
| "//tensorflow/python/profiler:profiler_client", |
| "//tensorflow/python/profiler:profiler_v2", |
| "//tensorflow/python/profiler:trace", |
| "//tensorflow/python/saved_model", |
| "//tensorflow/python/summary:summary_py", |
| "//tensorflow/python/summary/writer", |
| "//tensorflow/python/tools:module_util", |
| "//tensorflow/python/tools/api/generator:create_python_api", |
| "//tensorflow/python/tpu:datasets", |
| "//tensorflow/python/tpu:functional", |
| "//tensorflow/python/tpu:preempted_hook_py", |
| "//tensorflow/python/tpu:tpu_noestimator", |
| "//tensorflow/python/training:saver_test_utils", |
| "//tensorflow/python/types:core", |
| "//tensorflow/python/types:data", |
| "//tensorflow/python/types:distribute", |
| "//tensorflow/python/types:trace", |
| "//tensorflow/python/util:_pywrap_checkpoint_reader", |
| "//tensorflow/python/util:_pywrap_kernel_registry", |
| "//tensorflow/python/util:_pywrap_nest", |
| "//tensorflow/python/util:_pywrap_stat_summarizer", |
| "//tensorflow/python/util:_pywrap_tfprof", |
| "//tensorflow/python/util:_pywrap_transform_graph", |
| "//tensorflow/python/util:_pywrap_util_port", |
| "//tensorflow/python/util:all_util", |
| "//tensorflow/python/util:compat", |
| "//tensorflow/python/util:dispatch", |
| "//tensorflow/python/util:module_wrapper", |
| "//tensorflow/python/util:tf_export", |
| "//third_party/py/numpy", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "core", |
| visibility = [ |
| "//tensorflow:__pkg__", |
| ], |
| deps = [ |
| "//tensorflow/python/types:core", |
| "//tensorflow/python/util:core", |
| ], |
| ) |
| |
| # This target should only be used for API generation. |
| py_library( |
| name = "modules_with_exports", |
| srcs = ["modules_with_exports.py"], |
| srcs_version = "PY3", |
| visibility = [ |
| "//tensorflow:__pkg__", |
| "//tensorflow/python/tools/api/generator:__pkg__", |
| "//tensorflow/tools/compatibility/update:__pkg__", |
| "//third_party/py/tensorflow_core:__subpackages__", |
| ], |
| deps = [ |
| ":no_contrib", |
| "//tensorflow/core/function/trace_type", |
| "//tensorflow/python/data", |
| "//tensorflow/python/distribute:merge_call_interim", |
| "//tensorflow/python/distribute:multi_process_runner", |
| "//tensorflow/python/distribute:multi_worker_test_base", |
| "//tensorflow/python/distribute:sharded_variable", |
| "//tensorflow/python/distribute/failure_handling:failure_handling_lib", |
| "//tensorflow/python/distribute/failure_handling:preemption_watcher", |
| "//tensorflow/python/ops/numpy_ops:np_array_ops", |
| "//tensorflow/python/ops/numpy_ops:np_arrays", |
| "//tensorflow/python/ops/numpy_ops:np_config", |
| "//tensorflow/python/ops/numpy_ops:np_dtypes", |
| "//tensorflow/python/ops/numpy_ops:np_math_ops", |
| "//tensorflow/python/ops/numpy_ops:np_random", |
| "//tensorflow/python/ops/numpy_ops:np_utils", |
| "//tensorflow/python/util:tf_decorator", |
| "//tensorflow/python/util:tf_export", |
| ], |
| ) |
| |
| alias( |
| name = "tf_decorator", |
| actual = "//tensorflow/python/util:tf_decorator", |
| ) |
| |
| # Deprecated. Use |
| # //third_party/tensorflow/tsl/python/lib/core:bfloat16_lib |
| # for the bfloat16-specific dependency, or |
| # //third_party/tensorflow/tsl/python/lib/core |
| # for all custom types and python utilities. |
| alias( |
| name = "bfloat16_lib", |
| actual = "//tensorflow/python/lib/core:bfloat16_lib", |
| ) |
| |
| # Necessary for the pywrap inclusion below. |
| tf_pybind_cc_library_wrapper( |
| name = "tfcompile_headers_lib", |
| compatible_with = [], |
| deps = [ |
| "//tensorflow/compiler/aot:tfcompile_lib", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_tfcompile", |
| srcs = ["tfcompile_wrapper.cc"], |
| dynamic_deps = [":_pywrap_tensorflow_internal.so"] + select({ |
| "//tensorflow:macos": ["//tensorflow:libtensorflow_framework.%s.dylib" % VERSION], |
| "//conditions:default": ["//tensorflow:libtensorflow_framework.so.%s" % VERSION], |
| "//tensorflow:windows": [], |
| }), |
| features = ["-layering_check"], |
| static_deps = tf_python_pybind_static_deps(), |
| deps = [ |
| ":tfcompile_headers_lib", |
| "@pybind11", |
| "//third_party/python_runtime:headers", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status", |
| # The headers here cannot be brought in via cc_header_only_library |
| "//tensorflow/compiler/aot:llvm_targets", |
| ], |
| ) |
| |
| alias( |
| name = "pywrap_tf_session", |
| actual = "//tensorflow/python/client:pywrap_tf_session", |
| ) |
| |
| alias( |
| name = "_pywrap_utils", |
| actual = "//tensorflow/python/util:_pywrap_utils", |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_quantize_training", |
| srcs = [ |
| "//tensorflow/python/training:quantize_training_wrapper.cc", |
| ], |
| hdrs = ["//tensorflow/core/common_runtime:quantize_training_hdrs"], |
| deps = [ |
| "//tensorflow/core:framework_headers_lib", |
| "//tensorflow/core:lib_headers_for_pybind", |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/core/common_runtime:core_cpu_headers_lib", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_proto", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/strings", |
| "@pybind11", |
| ], |
| ) |
| |
| # TODO(yanhuasun): Move this back and the source file back to lib/core directory. |
| tf_python_pybind_extension( |
| name = "_pywrap_py_exception_registry", |
| srcs = ["py_exception_registry_wrapper.cc"], |
| dynamic_deps = [":_pywrap_tensorflow_internal.so"] + select({ |
| "//tensorflow:macos": ["//tensorflow:libtensorflow_framework.%s.dylib" % VERSION], |
| "//conditions:default": ["//tensorflow:libtensorflow_framework.so.%s" % VERSION], |
| "//tensorflow:windows": [], |
| }), |
| static_deps = tf_python_pybind_static_deps(), |
| deps = [ |
| ":py_exception_registry", |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/core/platform:status", |
| "//tensorflow/python/lib/core:py_exception_registry", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/container:fixed_array", |
| "@pybind11", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_toco_api", |
| srcs = [ |
| "lite/toco_python_api_wrapper.cc", |
| ], |
| hdrs = ["//tensorflow/lite/toco/python:toco_python_api_hdrs"], |
| deps = [ |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//third_party/python_runtime:headers", |
| "@pybind11", |
| ], |
| ) |
| |
| # TODO(edloper): Remove unused dependency on safe_ptr. (Blocker: there are |
| # targets that depend are relying on cpp_python_util to pull in safe_ptr's |
| # third_party/tensorflow/c:c_api_no_xla dependency, which registers |
| # ops/gradients, rather than depending on it themselves.) |
| cc_header_only_library( |
| name = "py_func_headers_lib", |
| features = ["-parse_headers"], |
| tags = ["no-ide"], |
| deps = [ |
| "//tensorflow/python/lib/core:py_func_lib", |
| ], |
| ) |
| |
| cc_header_only_library( |
| name = "python_op_gen_headers_lib", |
| extra_deps = [ |
| "//tensorflow/core:protos_all_cc", |
| ], |
| features = ["-parse_headers"], |
| tags = ["no-ide"], |
| deps = [ |
| "//tensorflow/python/framework:python_op_gen", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "map_fn", |
| actual = "//tensorflow/python/ops:map_fn", |
| tags = ["avoid_dep"], |
| ) |
| |
| py_strict_library( |
| name = "extra_py_tests_deps", |
| srcs_version = "PY3", |
| # extra_py_tests_deps is public to allow the use of tf_py_test or |
| # cuda_py_test build rules for out-of-tree custom ops. |
| # extra_py_tests_deps should NOT be used as dependency directly |
| # in out-of-tree BUILD files. |
| # Some of the dependencies in :keras_lib are possibly outdated |
| # or not generally useful, so a future task is to determine a good |
| # set of dependencies. |
| # TODO(b/199420795) investigate minimal set of dependencies ... |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":keras_lib", |
| "//third_party/py/numpy", |
| "@six_archive//:six", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "distributed_framework_test_lib", |
| srcs_version = "PY3", |
| deps = ["//tensorflow/python/framework:test_lib"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "functional_ops_gen", |
| actual = "//tensorflow/python/ops:functional_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/eager/polymorphic_function:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "functional_ops", |
| actual = "//tensorflow/python/ops:functional_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "debug_ops_gen", |
| actual = "//tensorflow/python/ops:debug_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/python/debug:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "array_ops_gen", |
| actual = "//tensorflow/python/ops:array_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/array_ops:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| "//tensorflow/python/kernel_tests/v1_compat_tests:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| "//tensorflow/security/fuzzing/google:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "bitwise_ops_gen", |
| actual = "//tensorflow/python/ops:bitwise_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/contrib/quantization:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "boosted_trees_ops_gen", |
| actual = "//tensorflow/python/ops:boosted_trees_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "summary_ops_gen", |
| actual = "//tensorflow/python/ops:summary_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:__subpackages__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "audio_ops_gen", |
| actual = "//tensorflow/python/ops:audio_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//learning/brain/python/ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "cudnn_rnn_ops_gen", |
| actual = "//tensorflow/python/ops:cudnn_rnn_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "candidate_sampling_ops_gen", |
| actual = "//tensorflow/python/ops:candidate_sampling_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//learning/brain/python/ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "checkpoint_ops_gen", |
| actual = "//tensorflow/python/ops:checkpoint_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/io_ops:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "clustering_ops_gen", |
| actual = "//tensorflow/python/ops:clustering_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "collective_ops_gen", |
| actual = "//tensorflow/python/ops:collective_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_ops_gen", |
| actual = "//tensorflow/python/ops:control_flow_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow:__subpackages__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ctc_ops_gen", |
| actual = "//tensorflow/python/ops:ctc_ops_gen", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "data_flow_ops_gen", |
| actual = "//tensorflow/python/ops:data_flow_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| "//tensorflow/python/kernel_tests/data_structures:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "dataset_ops_gen", |
| actual = "//tensorflow/python/ops:dataset_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow:__subpackages__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "optional_ops_gen", |
| actual = "//tensorflow/python/ops:optional_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow:__subpackages__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "experimental_dataset_ops_gen", |
| actual = "//tensorflow/python/ops:experimental_dataset_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow:__subpackages__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "filesystem_ops_gen", |
| actual = "//tensorflow/python/ops:filesystem_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "image_ops_gen", |
| actual = "//tensorflow/python/ops:image_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/kernel_tests/image_ops:__pkg__", |
| "//tensorflow/python/ops/parallel_for:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "io_ops_gen", |
| actual = "//tensorflow/python/ops:io_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/checkpoint:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/array_ops:__pkg__", |
| "//tensorflow/python/kernel_tests/io_ops:__pkg__", |
| "//tensorflow/python/trackable:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "linalg_ops_gen", |
| actual = "//tensorflow/python/ops:linalg_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "logging_ops_gen", |
| actual = "//tensorflow/python/ops:logging_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/python/framework:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| "//tensorflow/python/summary:__pkg__", |
| "//tensorflow/python/summary/writer:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "lookup_ops_gen", |
| actual = "//tensorflow/python/ops:lookup_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/data_structures:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "batch_ops_gen", |
| actual = "//tensorflow/python/ops:batch_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "batch_ops", |
| actual = "//tensorflow/python/ops:batch_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "manip_ops_gen", |
| actual = "//tensorflow/python/ops:manip_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "math_ops_gen", |
| actual = "//tensorflow/python/ops:math_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/google/python/ops:__pkg__", |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/math_ops:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "nn_ops_gen", |
| actual = "//tensorflow/python/ops:nn_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/nn_ops:__pkg__", |
| "//tensorflow/python/kernel_tests/sparse_ops:__pkg__", |
| "//tensorflow/python/tools:__pkg__", |
| "//tensorflow/security/fuzzing/google:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "count_ops_gen", |
| actual = "//tensorflow/python/ops:count_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/security/fuzzing/google:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "parsing_ops_gen", |
| actual = "//tensorflow/python/ops:parsing_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/python/autograph/operators:__pkg__", |
| "//tensorflow/python/data/ops:__pkg__", |
| "//tensorflow/python/ops/parallel_for:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "random_ops_gen", |
| actual = "//tensorflow/python/ops:random_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/eager/polymorphic_function:__pkg__", |
| "//tensorflow/python/kernel_tests/random:__pkg__", |
| "//tensorflow/python/ops/parallel_for:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "special_math_ops_gen", |
| actual = "//tensorflow/python/ops:special_math_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//learning/brain/python/ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "stateful_random_ops_gen", |
| actual = "//tensorflow/python/ops:stateful_random_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/kernel_tests/random:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "resource_variable_ops_gen", |
| actual = "//tensorflow/python/ops:resource_variable_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/compiler/tf2xla:internal", |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/distribute:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "stateless_random_ops_gen", |
| actual = "//tensorflow/python/ops:stateless_random_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/data/experimental/ops:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "stateless_random_ops_v2_gen", |
| actual = "//tensorflow/python/ops:stateless_random_ops_v2_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/dtensor:dtensor-internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "random_index_shuffle_ops_gen", |
| actual = "//tensorflow/python/ops:random_index_shuffle_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/python/kernel_tests/random:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "list_ops_gen", |
| actual = "//tensorflow/python/ops:list_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/dtensor:dtensor-internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "map_ops_gen", |
| actual = "//tensorflow/python/ops:map_ops_gen", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "script_ops_gen", |
| actual = "//tensorflow/python/ops:script_ops_gen", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sdca_ops_gen", |
| actual = "//tensorflow/python/ops:sdca_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow_estimator/python/estimator/canned/linear_optimizer:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "set_ops_gen", |
| actual = "//tensorflow/python/ops:set_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/python/kernel_tests/math_ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "state_ops_gen", |
| actual = "//tensorflow/python/ops:state_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//learning/brain/python/ops:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/framework:__pkg__", |
| "//tensorflow/python/kernel_tests:__pkg__", |
| "//tensorflow/python/kernel_tests/array_ops:__pkg__", |
| "//tensorflow/python/kernel_tests/control_flow:__pkg__", |
| "//tensorflow/python/kernel_tests/variables:__pkg__", |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sparse_ops_gen", |
| actual = "//tensorflow/python/ops:sparse_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/python/kernel_tests/sparse_ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "spectral_ops_gen", |
| actual = "//tensorflow/python/ops:spectral_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/dtensor:dtensor-internal", |
| "//tensorflow/python/ops/signal:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "string_ops_gen", |
| actual = "//tensorflow/python/ops:string_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/dtensor:dtensor-internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "training_ops_gen", |
| actual = "//tensorflow/python/ops:training_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/python/training:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "composite_tensor_ops_gen", |
| actual = "//tensorflow/python/ops:composite_tensor_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//tensorflow/python/kernel_tests:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ragged_array_ops_gen", |
| actual = "//tensorflow/python/ops:ragged_array_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow/python/ops/ragged:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ragged_math_ops_gen", |
| actual = "//tensorflow/python/ops:ragged_math_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow/python/ops/ragged:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ragged_conversion_ops_gen", |
| actual = "//tensorflow/python/ops:ragged_conversion_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow/python/ops/ragged:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "risc_ops_gen", |
| actual = "//tensorflow/python/ops:risc_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow/python/ops/risc:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "rnn_ops_gen", |
| actual = "//tensorflow/python/ops:rnn_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow/python/kernel_tests/nn_ops:__pkg__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sendrecv_ops_gen", |
| actual = "//tensorflow/python/ops:sendrecv_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "tpu_ops_gen", |
| actual = "//tensorflow/python/ops:tpu_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//smartass/brain/configure/python:__pkg__", |
| "//tensorflow/compiler/tests:__pkg__", |
| "//tensorflow/python/tpu:__pkg__", |
| "//tensorflow/python/tpu/ops:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "tpu_partition_ops_gen", |
| actual = "//tensorflow/python/ops:tpu_partition_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:internal", |
| "//tensorflow/python/tpu:__pkg__", |
| "//tensorflow/python/tpu/ops:__pkg__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "uniform_quant_ops_gen", |
| actual = "//tensorflow/python/ops:uniform_quant_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sync_ops_gen", |
| actual = "//tensorflow/python/ops:sync_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = [ |
| "//tensorflow:internal", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "array_grad", |
| actual = "//tensorflow/python/ops:array_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "array_ops", |
| actual = "//tensorflow/python/ops:array_ops", |
| tags = ["avoid_dep"], |
| visibility = visibility, |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "array_ops_stack", |
| actual = "//tensorflow/python/ops:array_ops_stack", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "inplace_ops", |
| actual = "//tensorflow/python/ops:inplace_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "bitwise_ops", |
| actual = "//tensorflow/python/ops:bitwise_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "boosted_trees_ops", |
| actual = "//tensorflow/python/ops:boosted_trees_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "optional_grad", |
| actual = "//tensorflow/python/ops:optional_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "sets", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:sets", |
| "//tensorflow/python/ops:sets_impl", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "candidate_sampling_ops", |
| actual = "//tensorflow/python/ops:candidate_sampling_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "check_ops", |
| actual = "//tensorflow/python/ops:check_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "clip_ops", |
| actual = "//tensorflow/python/ops:clip_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "clustering_ops", |
| actual = "//tensorflow/python/ops:clustering_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "collective_ops", |
| actual = "//tensorflow/python/ops:collective_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_assert", |
| actual = "//tensorflow/python/ops:control_flow_assert", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_grad", |
| actual = "//tensorflow/python/ops:control_flow_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_ops", |
| actual = "//tensorflow/python/ops:control_flow_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_case", |
| actual = "//tensorflow/python/ops:control_flow_case", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_switch_case", |
| actual = "//tensorflow/python/ops:control_flow_switch_case", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "cond", |
| actual = "//tensorflow/python/ops:cond", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "while_loop", |
| actual = "//tensorflow/python/ops:while_loop", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_util", |
| actual = "//tensorflow/python/ops:control_flow_util", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_util_v2", |
| actual = "//tensorflow/python/ops:control_flow_util_v2", |
| tags = ["avoid_dep"], |
| visibility = visibility + ["//waymo/ml:__subpackages__"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_v2_func_graphs", |
| actual = "//tensorflow/python/ops:control_flow_v2_func_graphs", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_v2_toggles", |
| actual = "//tensorflow/python/ops:control_flow_v2_toggles", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "cond_v2", |
| actual = "//tensorflow/python/ops:cond_v2", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "while_v2", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:while_v2", |
| "//tensorflow/python/ops:while_v2_indexed_slices_rewriter", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "bincount_ops", |
| actual = "//tensorflow/python/ops:bincount_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ctc_ops", |
| actual = "//tensorflow/python/ops:ctc_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "cudnn_rnn_grad", |
| actual = "//tensorflow/python/ops:cudnn_rnn_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "data_flow_grad", |
| actual = "//tensorflow/python/ops:data_flow_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "data_flow_ops", |
| actual = "//tensorflow/python/ops:data_flow_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "embedding_ops", |
| actual = "//tensorflow/python/ops:embedding_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "handle_data_util", |
| actual = "//tensorflow/python/ops:handle_data_util", |
| tags = ["avoid_dep"], |
| ) |
| |
| py_strict_library( |
| name = "gradients", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:custom_gradient", |
| "//tensorflow/python/ops:gradients", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "gradients_impl", |
| actual = "//tensorflow/python/ops:gradients_impl", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "gradients_util", |
| actual = "//tensorflow/python/ops:gradients_util", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "default_gradient", |
| actual = "//tensorflow/python/ops:default_gradient", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "control_flow_state", |
| actual = "//tensorflow/python/ops:control_flow_state", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "unconnected_gradients", |
| actual = "//tensorflow/python/ops:unconnected_gradients", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "filesystem_ops", |
| actual = "//tensorflow/python/ops:filesystem_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "histogram_ops", |
| actual = "//tensorflow/python/ops:histogram_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "image_grad", |
| actual = "//tensorflow/python/ops:image_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "image_ops", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:image_ops", |
| "//tensorflow/python/ops:image_ops_impl", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "init_ops", |
| actual = "//tensorflow/python/ops:init_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "init_ops_v2", |
| actual = "//tensorflow/python/ops:init_ops_v2", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "initializers_ns", |
| actual = "//tensorflow/python/ops:initializers_ns", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "io_ops", |
| actual = "//tensorflow/python/ops:io_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "linalg_grad", |
| actual = "//tensorflow/python/ops:linalg_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "linalg_ops", |
| actual = "//tensorflow/python/ops:linalg_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "linalg_ops_impl", |
| actual = "//tensorflow/python/ops:linalg_ops_impl", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "manip_grad", |
| actual = "//tensorflow/python/ops:manip_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "manip_ops", |
| actual = "//tensorflow/python/ops:manip_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "logging_ops", |
| actual = "//tensorflow/python/ops:logging_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "lookup_ops", |
| actual = "//tensorflow/python/ops:lookup_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "math_grad", |
| actual = "//tensorflow/python/ops:math_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "op_selector", |
| actual = "//tensorflow/python/ops:op_selector", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "math_ops", |
| actual = "//tensorflow/python/ops:math_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "resources", |
| actual = "//tensorflow/python/ops:resources", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "resource_variable_ops", |
| actual = "//tensorflow/python/ops:resource_variable_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "critical_section_ops", |
| actual = "//tensorflow/python/ops:critical_section_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "list_ops", |
| actual = "//tensorflow/python/ops:list_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "map_ops", |
| actual = "//tensorflow/python/ops:map_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "nn", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:nn", |
| "//tensorflow/python/ops:nn_impl", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "nn_grad", |
| actual = "//tensorflow/python/ops:nn_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "nn_ops", |
| actual = "//tensorflow/python/ops:nn_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "numerics", |
| actual = "//tensorflow/python/ops:numerics", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "parsing_config", |
| actual = "//tensorflow/python/ops:parsing_config", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "parsing_ops", |
| actual = "//tensorflow/python/ops:parsing_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "partitioned_variables", |
| actual = "//tensorflow/python/ops:partitioned_variables", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "random_grad", |
| actual = "//tensorflow/python/ops:random_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "random_ops", |
| actual = "//tensorflow/python/ops:random_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "random_crop_ops", |
| actual = "//tensorflow/python/ops:random_crop_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "stateful_random_ops", |
| actual = "//tensorflow/python/ops:stateful_random_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "stateless_random_ops", |
| actual = "//tensorflow/python/ops:stateless_random_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "rnn", |
| actual = "//tensorflow/python/ops:rnn", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "rnn_cell", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:rnn_cell", |
| "//tensorflow/python/ops:rnn_cell_impl", |
| "//tensorflow/python/ops:rnn_cell_wrapper_impl", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "script_ops", |
| actual = "//tensorflow/python/ops:script_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sdca_ops", |
| actual = "//tensorflow/python/ops:sdca_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "session_ops", |
| actual = "//tensorflow/python/ops:session_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "shape_util", |
| actual = "//tensorflow/python/ops:shape_util", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sparse_grad", |
| actual = "//tensorflow/python/ops:sparse_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sparse_ops", |
| actual = "//tensorflow/python/ops:sparse_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "sort_ops", |
| actual = "//tensorflow/python/ops:sort_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "confusion_matrix", |
| actual = "//tensorflow/python/ops:confusion_matrix", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "weights_broadcast_ops", |
| actual = "//tensorflow/python/ops:weights_broadcast_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| py_strict_library( |
| name = "metrics", |
| tags = ["avoid_dep"], |
| deps = [ |
| "//tensorflow/python/ops:metrics", |
| "//tensorflow/python/ops:metrics_impl", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "special_math_ops", |
| actual = "//tensorflow/python/ops:special_math_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "rnn_grad", |
| actual = "//tensorflow/python/ops:rnn_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "standard_ops", |
| actual = "//tensorflow/python/ops:standard_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "state_grad", |
| actual = "//tensorflow/python/ops:state_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "state_ops", |
| actual = "//tensorflow/python/ops:state_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "string_ops", |
| actual = "//tensorflow/python/ops:string_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "summary_ops_v2", |
| actual = "//tensorflow/python/ops:summary_ops_v2", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "template", |
| actual = "//tensorflow/python/ops:template", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "tensor_array_grad", |
| actual = "//tensorflow/python/ops:tensor_array_grad", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "tensor_array_ops", |
| actual = "//tensorflow/python/ops:tensor_array_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "composite_tensor_ops", |
| actual = "//tensorflow/python/ops:composite_tensor_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "variable_scope", |
| actual = "//tensorflow/python/ops:variable_scope", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "variables", |
| actual = "//tensorflow/python/ops:variables", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "ref_variable", |
| actual = "//tensorflow/python/ops:ref_variable", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "variable_v1", |
| actual = "//tensorflow/python/ops:variable_v1", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "gradient_checker", |
| actual = "//tensorflow/python/ops:gradient_checker", |
| tags = ["avoid_dep"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "gradient_checker_v2", |
| actual = "//tensorflow/python/ops:gradient_checker_v2", |
| tags = ["avoid_dep"], |
| ) |
| |
| alias( |
| name = "client", |
| actual = "//tensorflow/python/client:client", |
| ) |
| |
| # Note: this is a heavyweight library specialized for TensorFlow graphs. Do not use for |
| # other purposes. |
| |
| py_strict_library( |
| name = "global_test_configuration", |
| compatible_with = get_compatible_with_portable(), |
| srcs_version = "PY3", |
| deps = if_mlir(["//tensorflow/compiler/mlir/tensorflow:mlir_roundtrip_pass_registration"]) + |
| tf_enable_mlir_bridge(), |
| ) |
| |
| # `tree.compat` requires visibility exception to test against `nest_test` |
| # to facilitate convergence between `tree.compat` and `nest`. |
| |
| tf_proto_library( |
| name = "protos_all", |
| srcs = glob( |
| ["**/*.proto"], |
| exclude = [ |
| "//tensorflow/python/util:compare_test_proto_src", |
| "framework/cpp_shape_inference.proto", |
| ], |
| ), |
| protodeps = ["//tensorflow/python/training:checkpoint_state"], |
| visibility = visibility, |
| ) |
| |
| alias( |
| name = "device_lib", |
| actual = "//tensorflow/python/client:device_lib", |
| ) |
| |
| py_strict_library( |
| name = "pywrap_tensorflow", |
| srcs = [ |
| "pywrap_tensorflow.py", |
| ] + if_static( |
| ["pywrap_dlopen_global_flags.py"], |
| # Import will fail, indicating no global dlopen flags |
| otherwise = [], |
| ), # b/153585257 |
| srcs_version = "PY3", |
| deps = [ |
| ":pywrap_tensorflow_internal", |
| "//tensorflow/python/platform:self_check", |
| ], |
| ) |
| |
| pywrap_tensorflow_macro( |
| name = "pywrap_tensorflow_internal", |
| srcs = ["pywrap_tensorflow_internal.cc"], |
| dynamic_deps = ["//tensorflow/tsl/python/lib/core:bfloat16.so"] + select({ |
| "//tensorflow:macos": [ |
| "//tensorflow:libtensorflow_cc.%s.dylib" % VERSION, |
| "//tensorflow:libtensorflow_framework.%s.dylib" % VERSION, |
| ], |
| "//conditions:default": [ |
| "//tensorflow:libtensorflow_cc.so.%s" % VERSION, |
| "//tensorflow:libtensorflow_framework.so.%s" % VERSION, |
| ], |
| "//tensorflow:windows": [], |
| }), |
| exports_filter = [ |
| "@pybind11", |
| "@local_config_python//:python_headers", |
| ] + if_windows([ |
| "//:__subpackages__", |
| "@nsync//:__subpackages__", |
| "@com_google_absl//:__subpackages__", |
| "@com_google_protobuf//:__subpackages__", |
| "@double_conversion//:__subpackages__", |
| "@eigen_archive//:__subpackages__", |
| ]), |
| roots = [ |
| ":py_exception_registry", |
| ], |
| static_deps = [ |
| "@arm_neon_2_x86_sse//:__subpackages__", |
| "@bazel_tools//:__subpackages__", |
| "@boringssl//:__subpackages__", |
| "@clog//:__subpackages__", |
| "@com_github_cares_cares//:__subpackages__", |
| "@com_github_googlecloudplatform_tensorflow_gcp_tools//:__subpackages__", |
| "@com_github_grpc_grpc//:__subpackages__", |
| "@com_google_absl//:__subpackages__", |
| "@com_google_googleapis//:__subpackages__", |
| "@com_google_protobuf//:__subpackages__", |
| "@com_googlesource_code_re2//:__subpackages__", |
| "@compute_library//:__subpackages__", |
| "@cpuinfo//:__subpackages__", |
| "@cudnn_frontend_archive//:__subpackages__", |
| "@curl//:__subpackages__", |
| "@dlpack//:__subpackages__", |
| "@double_conversion//:__subpackages__", |
| "@eigen_archive//:__subpackages__", |
| "@farmhash_archive//:__subpackages__", |
| "@farmhash_gpu_archive//:__subpackages__", |
| "@fft2d//:__subpackages__", |
| "@flatbuffers//:__subpackages__", |
| "@FP16//:__subpackages__", |
| "@FXdiv//:__subpackages__", |
| "@gemmlowp//:__subpackages__", |
| "@gif//:__subpackages__", |
| "@highwayhash//:__subpackages__", |
| "@hwloc//:__subpackages__", |
| "@icu//:__subpackages__", |
| "@jsoncpp_git//:__subpackages__", |
| "@libjpeg_turbo//:__subpackages__", |
| "@llvm_openmp//:__subpackages__", |
| "@llvm-project//:__subpackages__", |
| "@llvm_terminfo//:__subpackages__", |
| "@llvm_zlib//:__subpackages__", |
| "@local_config_cuda//:__subpackages__", |
| "@local_config_git//:__subpackages__", |
| "@local_config_nccl//:__subpackages__", |
| "@local_config_python//:__subpackages__", |
| "@local_config_rocm//:__subpackages__", |
| "@local_config_tensorrt//:__subpackages__", |
| "@local_execution_config_platform//:__subpackages__", |
| "@mkl_dnn_acl_compatible//:__subpackages__", |
| "@mkl_dnn_v1//:__subpackages__", |
| "@nccl_archive//:__subpackages__", |
| "@nsync//:__subpackages__", |
| "@nvtx_archive//:__subpackages__", |
| "@org_sqlite//:__subpackages__", |
| "@platforms//:__subpackages__", |
| "@png//:__subpackages__", |
| "@pthreadpool//:__subpackages__", |
| "@pybind11//:__subpackages__", |
| "@ruy//:__subpackages__", |
| "@snappy//:__subpackages__", |
| "@sobol_data//:__subpackages__", |
| "@stablehlo//:__subpackages__", |
| "@tf_runtime//:__subpackages__", |
| "//:__subpackages__", |
| "@upb//:__subpackages__", |
| "@XNNPACK//:__subpackages__", |
| "@zlib//:__subpackages__", |
| ] + tsl_async_value_deps() + if_onednn_v3(["@onednn_v3//:__subpackages__"]), |
| win_def_file = ":pywrap_tensorflow_filtered_def_file", |
| deps = [ |
| ":safe_pyobject_ptr", |
| "//tensorflow/c:c_api", |
| "//tensorflow/c:c_api_experimental", |
| "//tensorflow/c:checkpoint_reader", |
| "//tensorflow/c:env", |
| "//tensorflow/c:kernels", |
| "//tensorflow/c:kernels_experimental", |
| "//tensorflow/c:logging", |
| "//tensorflow/c:ops", |
| "//tensorflow/c:python_api", |
| "//tensorflow/c:safe_ptr", |
| "//tensorflow/c:tf_status_helper", |
| "//tensorflow/c/eager:c_api", |
| "//tensorflow/c/eager:c_api_experimental", |
| "//tensorflow/c/experimental/filesystem:filesystem_interface", |
| "//tensorflow/c/experimental/gradients", |
| "//tensorflow/c/experimental/gradients/tape", |
| "//tensorflow/c/experimental/ops", |
| "//tensorflow/c/experimental/stream_executor", |
| "//tensorflow/cc/saved_model:fingerprinting_impl", |
| "//tensorflow/cc/saved_model:loader_lite_impl", |
| "//tensorflow/cc/saved_model:metrics_impl", |
| "//tensorflow/compiler/mlir/python:mlir", |
| "//tensorflow/compiler/mlir/quantization/tensorflow/python:quantize_model_cc", |
| "//tensorflow/compiler/mlir/tensorflow/c:mlir_c_api_registration", |
| "//tensorflow/compiler/tf2tensorrt:op_converter_registry_impl", |
| "//tensorflow/compiler/tf2xla:tf2xla_opset", |
| "//tensorflow/compiler/xla/stream_executor:stream_executor_impl", |
| "//tensorflow/core:framework_internal_impl", |
| "//tensorflow/core:lib", |
| "//tensorflow/core:lib_internal_impl", |
| "//tensorflow/core:reader_base", |
| "//tensorflow/core/common_runtime:core_cpu_impl", |
| "//tensorflow/core/common_runtime/gpu:gpu_runtime_impl", |
| "//tensorflow/core/common_runtime/pluggable_device:pluggable_device_runtime_impl", |
| "//tensorflow/core/config:flag_defs", |
| "//tensorflow/core/config:flags", |
| "//tensorflow/core/data/service:dispatcher_client", |
| "//tensorflow/core/data/service:grpc_util", |
| "//tensorflow/core/data/service:py_utils", |
| "//tensorflow/core/data/service:server_lib", |
| "//tensorflow/core/debug", |
| "//tensorflow/core/distributed_runtime:server_lib", |
| "//tensorflow/core/function/runtime_client:runtime_client_cc", |
| "//tensorflow/core/grappler:grappler_item", |
| "//tensorflow/core/grappler:grappler_item_builder", |
| "//tensorflow/core/grappler/clusters:cluster", |
| "//tensorflow/core/grappler/clusters:single_machine", |
| "//tensorflow/core/grappler/clusters:virtual_cluster", |
| "//tensorflow/core/grappler/costs:graph_memory", |
| "//tensorflow/core/grappler/graph_analyzer:graph_analyzer_tool", |
| "//tensorflow/core/grappler/optimizers:custom_graph_optimizer_registry_impl", |
| "//tensorflow/core/grappler/optimizers:meta_optimizer", |
| "//tensorflow/core/kernels:data_service_ops", |
| "//tensorflow/core/platform:stacktrace_handler", |
| "//tensorflow/core/profiler:profiler_impl", |
| "//tensorflow/core/profiler/backends/cpu:python_tracer", |
| "//tensorflow/core/profiler/internal:print_model_analysis", |
| "//tensorflow/core/util:determinism", |
| "//tensorflow/distribute/experimental/rpc/kernels:rpc_ops", |
| "//tensorflow/dtensor/cc:dtensor_device_cc", |
| "//tensorflow/dtensor/cc:tensor_layout", |
| "//tensorflow/lite/delegates/flex:delegate", |
| "//tensorflow/lite/kernels/shim:tf_kernel_shim", |
| "//tensorflow/lite/toco/python:toco_python_api", |
| "//tensorflow/python/client:tf_session_helper", |
| "//tensorflow/python/eager:pywrap_tfe_lib", |
| "//tensorflow/python/framework:op_def_util_cc", |
| "//tensorflow/python/framework:python_api_dispatcher", |
| "//tensorflow/python/framework:python_api_info", |
| "//tensorflow/python/framework:python_api_parameter_converter", |
| "//tensorflow/python/framework:python_op_gen", |
| "//tensorflow/python/framework:python_tensor_converter", |
| "//tensorflow/python/grappler:cost_analyzer_lib", |
| "//tensorflow/python/grappler:model_analyzer_lib", |
| "//tensorflow/python/lib/core:py_func_lib", |
| "//tensorflow/python/lib/core:pybind11_absl", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_proto", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| "//tensorflow/python/util:cpp_nest", |
| "//tensorflow/python/util:cpp_python_util", |
| "//tensorflow/python/util:function_parameter_canonicalizer", |
| "//tensorflow/python/util:kernel_registry", |
| "//tensorflow/tools/graph_transforms:transform_graph_lib", |
| "//tensorflow/tsl/profiler/rpc:profiler_server_impl", |
| "//tensorflow/tsl/profiler/rpc/client:profiler_client_impl", |
| "//tensorflow/tsl/python/lib/core", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/base", |
| "@com_google_absl//absl/container:inlined_vector", |
| "@com_google_absl//absl/types:optional", |
| "@com_google_absl//absl/types:span", |
| ] + if_static([ |
| "//tensorflow/core/platform:tensor_float_32_utils", |
| "//tensorflow/core/platform:enable_tf2_utils", |
| ]) + if_google([ |
| "//base", |
| "//tensorflow/core/util/tensor_bundle", |
| ]) + if_oss(if_static( |
| [clean_dep("@nsync//:nsync_headers")], |
| )) + if_oss([ |
| "//tensorflow/core/distributed_runtime/rpc:grpc_server_lib", |
| "//tensorflow/core/distributed_runtime/rpc:grpc_session", |
| ]) + if_xla_available([ |
| "//tensorflow/compiler/aot:tfcompile_lib", |
| ]) + tf_monitoring_python_deps() + tf_additional_plugin_deps() + tf_additional_profiler_deps() + tf_additional_binary_deps(), |
| ) |
| |
| # ** Targets for Windows build (start) ** |
| # We need the following targets to expose symbols from _pywrap_tensorflow.dll |
| |
| filegroup( |
| name = "win_lib_files_for_exported_symbols", |
| srcs = [ |
| ":ndarray_tensor", # checkpoint_reader |
| ":py_exception_registry", # py_exception_registry |
| ":safe_pyobject_ptr", # checkpoint_reader |
| "//tensorflow/c:checkpoint_reader", # checkpoint_reader |
| "//tensorflow/c:python_api", # tf_session |
| "//tensorflow/c:safe_ptr", # checkpoint_reader |
| "//tensorflow/c:tf_status_helper", # tfe |
| "//tensorflow/cc/saved_model:fingerprinting_impl", # SavedModel fingerprinting |
| "//tensorflow/cc/saved_model:metrics_impl", # SavedModel metrics |
| "//tensorflow/compiler/jit:flags", # tfe |
| "//tensorflow/compiler/jit:get_compiler_ir", # tfe |
| "//tensorflow/compiler/mlir/python:mlir", # mlir |
| "//tensorflow/compiler/mlir/quantization/tensorflow/python:quantize_model_cc_impl", # quantization |
| "//tensorflow/compiler/tf2xla:tf2xla_opset", # pywrap_xla_ops |
| "//tensorflow/compiler/xla/stream_executor:stream_executor_pimpl", # stat_summarizer |
| "//tensorflow/core:framework_internal_impl", # op_def_registry |
| "//tensorflow/core:lib_internal_impl", # device_lib |
| "//tensorflow/core:op_gen_lib", # tf_session |
| "//tensorflow/core/common_runtime:graph_constructor", # tf_session |
| "//tensorflow/core/common_runtime:quantize_training", # quantize_training |
| "//tensorflow/core/common_runtime:session_options", # device_lib, tfe, tf_session |
| "//tensorflow/core/common_runtime:session_state", # tf_session |
| "//tensorflow/core/common_runtime/eager:context", # tfe |
| "//tensorflow/core/common_runtime/eager:eager_executor", # tfe |
| "//tensorflow/core/common_runtime/eager:tensor_handle", # tfe |
| "//tensorflow/core/config:flag_defs", # flags_api |
| "//tensorflow/core/config:flags", # flags_api |
| "//tensorflow/core/data/service:dispatcher_client", # dispatcher_client |
| "//tensorflow/core/data/service:grpc_util", # grpc_util |
| "//tensorflow/core/data/service:server_lib", # server_lib |
| "//tensorflow/core/framework:attr_value_proto_cc", # tf_text |
| "//tensorflow/core/framework:op_def_proto_cc", # tf_text |
| "//tensorflow/core/function/runtime_client:runtime_client_cc", # runtime_client_pybind |
| "//tensorflow/core/grappler:devices", # tf_cluster |
| "//tensorflow/core/grappler:grappler_item", # tf_item |
| "//tensorflow/core/grappler:grappler_item_builder", # tf_item |
| "//tensorflow/core/grappler/clusters:cluster", # tf_cluster |
| "//tensorflow/core/grappler/clusters:single_machine", # tf_cluster |
| "//tensorflow/core/grappler/clusters:utils", # tf_optimizer |
| "//tensorflow/core/grappler/clusters:virtual_cluster", # tf_cluster |
| "//tensorflow/core/grappler/costs:analytical_cost_estimator", # cost analyzer |
| "//tensorflow/core/grappler/costs:graph_memory", # tf_cluster |
| "//tensorflow/core/grappler/costs:graph_properties", # tf_item |
| "//tensorflow/core/grappler/costs:measuring_cost_estimator", # tf_cluster |
| "//tensorflow/core/grappler/costs:op_level_cost_estimator", # tf_cluster |
| "//tensorflow/core/grappler/costs:utils", # tf_cluster |
| "//tensorflow/core/grappler/graph_analyzer:graph_analyzer_tool", # graph_analyzer |
| "//tensorflow/core/grappler/optimizers:meta_optimizer", # tf_optimizer |
| "//tensorflow/core/grappler/utils:topological_sort", # tf_item |
| "//tensorflow/core/platform:cpu_feature_guard", # cpu_feature_guard |
| "//tensorflow/core/platform:statusor", # tfe |
| "//tensorflow/core/profiler/backends/cpu:traceme_recorder_impl", # profiler |
| "//tensorflow/core/profiler/internal:print_model_analysis", # tfprof |
| "//tensorflow/core/profiler/rpc/client:profiler_client_impl", # profiler |
| "//tensorflow/core/util:determinism", # determinism |
| "//tensorflow/core/util:port", # util_port |
| "//tensorflow/core/util/tensor_bundle", # checkpoint_reader |
| "//tensorflow/dtensor/cc:dtensor_device_cc", # DTensor |
| "//tensorflow/dtensor/cc:tensor_layout", # DTensor |
| "//tensorflow/lite/kernels/shim:shape", # tf_text |
| "//tensorflow/lite/kernels/shim:tf_op_shim", # tf_text |
| "//tensorflow/lite/toco/python:toco_python_api", # toco |
| "//tensorflow/python/client:tf_session_helper", # tf_session |
| "//tensorflow/python/eager:pywrap_tfe_lib", # pywrap_tfe_lib |
| "//tensorflow/python/framework:op_def_util_cc", # op_def_util |
| "//tensorflow/python/framework:python_api_dispatcher", # python_api_dispatcher |
| "//tensorflow/python/framework:python_api_info", # python_api_info |
| "//tensorflow/python/framework:python_api_parameter_converter", # python_api_parameter_converter |
| "//tensorflow/python/framework:python_op_gen", # python_op_gen |
| "//tensorflow/python/framework:python_tensor_converter", # python_tensor_converter |
| "//tensorflow/python/grappler:cost_analyzer_lib", |
| "//tensorflow/python/grappler:model_analyzer_lib", # model_analyzer |
| "//tensorflow/python/lib/core:py_func_lib", |
| "//tensorflow/python/util:cpp_nest", |
| "//tensorflow/python/util:cpp_python_util", |
| "//tensorflow/python/util:kernel_registry", |
| "//tensorflow/tools/graph_transforms:transform_graph_lib", # transform_graph |
| "//tensorflow/tsl/platform:tensor_float_32_utils", # tensor_float_32 |
| "//tensorflow/tsl/profiler/lib:profiler_session_impl", # profiler |
| "//tensorflow/tsl/profiler/rpc:profiler_server_impl", # profiler |
| "//tensorflow/tsl/profiler/rpc/client:profiler_client_impl", |
| "//tensorflow/tsl/python/lib/core:bfloat16_lib", # bfloat16 |
| "//tensorflow/tsl/python/lib/core:custom_casts_lib", |
| "//tensorflow/tsl/python/lib/core:float8_lib", # float8_e4m3fn, float8_e5m2 |
| "//tensorflow/tsl/python/lib/core:numpy", # checkpoint_reader |
| ] + if_xla_available([ |
| "//tensorflow/compiler/aot:tfcompile_lib", # tfcompile |
| "//tensorflow/compiler/xla:status_macros", # tfcompile |
| "//tensorflow/compiler/xla/hlo/ir:hlo", # tfcompile |
| ]), |
| visibility = ["//visibility:private"], |
| ) |
| |
| # Filter the DEF file to reduce the number of symbols to 64K or less. |
| # Note that we also write the name of the pyd file into DEF file so that |
| # the dynamic libraries of custom ops can find it at runtime. |
| genrule( |
| name = "pywrap_tensorflow_filtered_def_file", |
| srcs = select({ |
| "//tensorflow:windows": [ |
| ":pybind_symbol_target_libs_file", |
| ":win_lib_files_for_exported_symbols", |
| "//tensorflow:tensorflow_def_file", |
| "//tensorflow/tools/def_file_filter:symbols_pybind", |
| ], |
| "//conditions:default": [], |
| }), |
| outs = ["pywrap_tensorflow_filtered_def_file.def"], |
| cmd = select({ |
| "//tensorflow:windows": """ |
| $(location @local_config_def_file_filter//:def_file_filter) \\ |
| --input $(location //tensorflow:tensorflow_def_file) \\ |
| --output $@ \\ |
| --target _pywrap_tensorflow_internal.pyd \\ |
| --symbols $(location //tensorflow/tools/def_file_filter:symbols_pybind) \\ |
| --lib_paths_file $(location :pybind_symbol_target_libs_file) |
| """, |
| "//conditions:default": "touch $@", # Just a placeholder for Unix platforms |
| }), |
| tools = ["@local_config_def_file_filter//:def_file_filter"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Write to a file a list of all cc_library targets that we need for exporting symbols on Windows. |
| genrule( |
| name = "pybind_symbol_target_libs_file", |
| srcs = [":win_lib_files_for_exported_symbols"], |
| outs = ["pybind_symbol_target_libs_file.txt"], |
| cmd = select({ |
| "//tensorflow:windows": """ |
| for SRC in $(SRCS); do |
| echo $$SRC | sed 's/third_party\\///g' >> $@ |
| done |
| """, |
| "//conditions:default": "touch $@", # Just a placeholder for Unix platforms |
| }), |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Get the import library of _pywrap_tensorflow_internal.pyd, platform-specific to Windows. |
| filegroup( |
| name = "get_pywrap_tensorflow_import_lib_file", |
| srcs = [":_pywrap_tensorflow_internal.so"], |
| output_group = "interface_library", |
| ) |
| |
| cc_import( |
| name = "_pywrap_tensorflow_internal_linux", |
| shared_library = "//tensorflow/python:lib_pywrap_tensorflow_internal.so", |
| visibility = tf_external_workspace_visible(visibility), |
| ) |
| |
| cc_import( |
| name = "_pywrap_tensorflow_internal_macos", |
| shared_library = "//tensorflow/python:lib_pywrap_tensorflow_internal.dylib", |
| visibility = tf_external_workspace_visible(visibility), |
| ) |
| |
| cc_import( |
| name = "_pywrap_tensorflow_internal_windows", |
| interface_library = "//tensorflow/python:pywrap_tensorflow_import_lib_file", |
| shared_library = "//tensorflow/python:_pywrap_tensorflow_internal.dll", |
| visibility = tf_external_workspace_visible(visibility), |
| ) |
| |
| # Rename the import library for _pywrap_tensorflow_internal.pyd to _pywrap_tensorflow_internal.lib |
| # (It was _pywrap_tensorflow_internal.so.if.lib). |
| genrule( |
| name = "pywrap_tensorflow_import_lib_file", |
| srcs = [":get_pywrap_tensorflow_import_lib_file"], |
| outs = ["_pywrap_tensorflow_internal.lib"], |
| cmd = select({ |
| "//tensorflow:windows": "cp -f $< $@", |
| "//conditions:default": "touch $@", # Just a placeholder for Unix platforms |
| }), |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Create a cc_import rule for the import library of _pywrap_tensorflow_internal.dll |
| # so that custom ops' dynamic libraries can link against it. |
| cc_import( |
| name = "pywrap_tensorflow_import_lib", |
| interface_library = select({ |
| "//tensorflow:windows": ":pywrap_tensorflow_import_lib_file", |
| "//conditions:default": "not_existing_on_unix.lib", # Just a placeholder for Unix platforms |
| }), |
| system_provided = 1, |
| ) |
| |
| # ** Targets for Windows build (end) ** |
| |
| alias( |
| name = "session", |
| actual = "//tensorflow/python/client:session", |
| ) |
| |
| alias( |
| name = "timeline", |
| actual = "//tensorflow/python/client:timeline", |
| visibility = [ |
| "//visibility:public", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "summary_op_util", |
| actual = "//tensorflow/python/ops:summary_op_util", |
| tags = ["avoid_dep"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "fake_summary_writer", |
| actual = "//tensorflow/python/summary/writer:fake_summary_writer", |
| visibility = ["//visibility:public"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "nccl_ops_gen", |
| actual = "//tensorflow/python/ops:nccl_ops_gen", |
| tags = ["avoid_dep"], |
| visibility = ["//tensorflow:internal"], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "nccl_ops", |
| actual = "//tensorflow/python/ops:nccl_ops", |
| tags = ["avoid_dep"], |
| visibility = visibility + [ |
| "//learning/deepmind/tensorflow:__subpackages__", |
| "//third_party/car/deep_nets/tensorflow:__subpackages__", |
| ], |
| ) |
| |
| # TODO(b/285020435): Update usages and then remove. |
| alias( |
| name = "proto_ops", |
| actual = "//tensorflow/python/ops:proto_ops", |
| tags = ["avoid_dep"], |
| ) |
| |
| py_strict_library( |
| name = "pywrap_mlir", |
| srcs = ["pywrap_mlir.py"], |
| srcs_version = "PY3", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":_pywrap_mlir", |
| ":pywrap_tensorflow", |
| "//tensorflow/python/eager:context", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_mlir", |
| srcs = ["mlir_wrapper.cc"], |
| hdrs = [ |
| "//tensorflow/c:headers", |
| "//tensorflow/c:safe_ptr_hdr", |
| "//tensorflow/c/eager:headers", |
| "//tensorflow/compiler/mlir/python:pywrap_mlir_hdrs", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr_required_hdrs", |
| ], |
| deps = [ |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/core/platform:status", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/strings", |
| "@pybind11", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "pywrap_sanitizers", |
| srcs = ["pywrap_sanitizers.py"], |
| srcs_version = "PY3", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":_pywrap_sanitizers", |
| ":pywrap_tensorflow", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "flags_pybind", |
| srcs = ["//tensorflow/core/config:flags_api_wrapper.cc"], |
| visibility = ["//tensorflow/core/config:__subpackages__"], |
| deps = [ |
| ":pybind11_lib", |
| "//tensorflow/core:lib_headers_for_pybind", |
| "//tensorflow/core/config:flags_headers", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/types:optional", |
| "@pybind11", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_sanitizers", |
| srcs = ["sanitizers_wrapper.cc"], |
| deps = [ |
| "@pybind11", |
| ], |
| ) |
| |
| cc_library( |
| name = "unified_api_pywrap_required_headers", |
| textual_hdrs = [ |
| "//tensorflow/python/lib/core:basic_hdrs", |
| "//tensorflow/tsl/python/lib/core:basic_hdrs", |
| "//tensorflow/c:headers", |
| "//tensorflow/c:safe_ptr_hdr", |
| "//tensorflow/c/eager:headers", |
| "//tensorflow/c/eager:pywrap_required_hdrs", |
| "//tensorflow/c/experimental/ops:pywrap_required_hdrs", |
| "//tensorflow/c/experimental/gradients:pywrap_required_hdrs", |
| "//tensorflow/c/experimental/gradients/tape:pywrap_required_hdrs", |
| "//tensorflow/core/common_runtime/eager:pywrap_required_hdrs", |
| "//tensorflow/python/eager:pywrap_required_hdrs", |
| "//tensorflow/core/common_runtime:core_cpu_lib_headers", |
| "//tensorflow/core/public:session.h", |
| "//tensorflow/core/public:session_options.h", |
| ], |
| visibility = ["//tensorflow/python/framework/experimental:__pkg__"], |
| deps = [ |
| "//tensorflow/c:pywrap_required_hdrs", |
| "//tensorflow/core/config:flags_headers", |
| "//tensorflow/core/framework:pywrap_required_hdrs", |
| "//third_party/py/numpy:headers", |
| "//third_party/python_runtime:headers", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "pywrap_tfe", |
| srcs = ["pywrap_tfe.py"], |
| srcs_version = "PY3", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":_pywrap_tfe", |
| ":pywrap_tensorflow", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_tfe", |
| srcs = ["tfe_wrapper.cc"], |
| hdrs = [ |
| "//tensorflow/c:headers", |
| "//tensorflow/c:safe_ptr_hdr", |
| "//tensorflow/c/eager:headers", |
| "//tensorflow/c/eager:pywrap_required_hdrs", |
| "//tensorflow/c/experimental/ops:pywrap_required_hdrs", |
| "//tensorflow/core/common_runtime/eager:pywrap_required_hdrs", |
| "//tensorflow/core/distributed_runtime:pywrap_required_hdrs", |
| "//tensorflow/core/distributed_runtime/coordination:pywrap_required_hdrs", |
| "//tensorflow/core/distributed_runtime/eager:pywrap_required_hdrs", |
| "//tensorflow/python/eager:pywrap_required_hdrs", |
| "//tensorflow/python/lib/core:py_exception_registry_hdr", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr_required_hdrs", |
| "//tensorflow/python/util:util_hdr", |
| "//tensorflow/tsl/distributed_runtime:pywrap_required_hdrs", |
| "//tensorflow/tsl/distributed_runtime/coordination:pywrap_required_hdrs", |
| "//tensorflow/tsl/python/lib/core:numpy_hdr", |
| ], |
| dynamic_deps = [":_pywrap_tensorflow_internal.so"] + select({ |
| "//tensorflow:macos": ["//tensorflow:libtensorflow_framework.%s.dylib" % VERSION], |
| "//conditions:default": ["//tensorflow:libtensorflow_framework.so.%s" % VERSION], |
| "//tensorflow:windows": [], |
| }), |
| static_deps = tf_python_pybind_static_deps(), |
| deps = [ |
| "//tensorflow/c:pywrap_required_hdrs", |
| "//tensorflow/c/eager:tfe_tensorhandle_internal_hdrs_only", |
| "//tensorflow/compiler/jit:flags_headers_only", |
| "//tensorflow/compiler/jit:get_compiler_ir_hdrs_only", |
| "//tensorflow/core:framework_headers_lib", |
| "//tensorflow/core:lib_headers_for_pybind", |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/core/common_runtime:core_cpu_headers_lib", |
| "//tensorflow/core/config:flags_headers", |
| "//tensorflow/core/framework:pywrap_required_hdrs", |
| "//tensorflow/core/lib/llvm_rtti", |
| "//tensorflow/core/platform", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| "//third_party/py/numpy:headers", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/hash", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/strings:str_format", |
| "@com_google_absl//absl/types:optional", |
| "@pybind11", |
| ] + if_static( |
| extra_deps = [ |
| "//tensorflow/core/protobuf:eager_service_proto_cc", |
| "//tensorflow/core/protobuf:master_proto_cc", |
| "//tensorflow/core/protobuf:worker_proto_cc", |
| "//tensorflow/tsl/protobuf:coordination_service_proto_cc", |
| ], |
| otherwise = [ |
| "//tensorflow/core/protobuf:eager_service_proto_cc_headers_only", |
| "//tensorflow/core/protobuf:master_proto_cc_headers_only", |
| "//tensorflow/core/protobuf:worker_proto_cc_headers_only", |
| "//tensorflow/tsl/protobuf:coordination_service_proto_cc_headers_only", |
| ], |
| ), |
| ) |
| |
| py_strict_library( |
| name = "pywrap_tfe_monitoring_reader", |
| testonly = True, |
| srcs = ["pywrap_tfe_monitoring_reader.py"], |
| srcs_version = "PY3", |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":_pywrap_tfe_monitoring_reader", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_tfe_monitoring_reader", |
| testonly = True, |
| srcs = ["tfe_wrapper_monitoring_reader.cc"], |
| hdrs = [ |
| "//tensorflow/c/eager:headers_monitoring_reader", |
| "//tensorflow/c/eager:pywrap_headers_monitoring_reader", |
| "//tensorflow/python/util:util_hdr", |
| ], |
| deps = [ |
| "//tensorflow/c:c_api", |
| "//tensorflow/c/eager:c_api", |
| "//tensorflow/c/eager:c_api_experimental_reader", |
| "//tensorflow/c/eager:tfe_tensorhandle_internal_hdrs_only", |
| "//tensorflow/compiler/jit:flags_headers_only", |
| "//tensorflow/compiler/jit:get_compiler_ir_hdrs_only", |
| "//tensorflow/core:framework_headers_lib", |
| "//tensorflow/core:lib_headers_for_pybind", |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/core/common_runtime:core_cpu_headers_lib", |
| "//tensorflow/core/config:flags_headers", |
| "//tensorflow/core/framework:pywrap_required_hdrs", |
| "//tensorflow/core/lib/llvm_rtti", |
| "//tensorflow/core/platform", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| "//third_party/py/numpy:headers", |
| "//third_party/python_runtime:headers", |
| "@com_google_absl//absl/container:flat_hash_map", |
| "@com_google_absl//absl/hash", |
| "@com_google_absl//absl/memory", |
| "@com_google_absl//absl/strings", |
| "@com_google_absl//absl/strings:str_format", |
| "@com_google_absl//absl/types:optional", |
| "@pybind11", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_parallel_device", |
| srcs = [ |
| "//tensorflow/c:headers", |
| "//tensorflow/c:safe_ptr_hdr", |
| "//tensorflow/c/eager:headers", |
| "//tensorflow/c/eager/parallel_device:headers", |
| "//tensorflow/c/eager/parallel_device:sources", |
| "//tensorflow/python/distribute/parallel_device:pywrap_parallel_device.cc", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr_required_hdrs", |
| ], |
| visibility = ["//tensorflow/python/distribute/parallel_device:__pkg__"], |
| deps = [ |
| "//tensorflow/c:pywrap_required_hdrs", |
| "//tensorflow/c/eager:tfe_cancellationmanager_internal_hdrs_only", |
| "//tensorflow/c/eager:tfe_op_internal", |
| "//tensorflow/c/eager:tfe_tensorhandle_internal_hdrs_only", |
| "//tensorflow/core:framework_headers_lib", |
| "//tensorflow/core:lib_headers_for_pybind", |
| "//tensorflow/core:protos_all_cc", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| "//third_party/python_runtime:headers", |
| "@pybind11", |
| ], |
| ) |
| |
| tf_python_pybind_extension( |
| name = "_pywrap_dtensor_device", |
| srcs = ["pywrap_dtensor_device.cc"], |
| features = ["-layering_check"], |
| deps = [ |
| ":pywrap_densor_device_headers", |
| "//tensorflow/dtensor/proto:layout_proto_cc", |
| "//tensorflow/python/lib/core:pybind11_lib", |
| "//tensorflow/python/lib/core:pybind11_status_headers", |
| "//third_party/python_runtime:headers", # buildcleaner: keep |
| "@pybind11", |
| "@pybind11_abseil//pybind11_abseil:absl_casters", |
| "@pybind11_protobuf//pybind11_protobuf:native_proto_caster", |
| ], |
| ) |
| |
| tf_pybind_cc_library_wrapper( |
| name = "pywrap_densor_device_headers", |
| deps = [ |
| "//tensorflow/c:c_api", |
| "//tensorflow/c/eager:c_api", |
| "//tensorflow/c/eager:c_api_internal", |
| "//tensorflow/dtensor/cc:dtensor_device_cc", |
| "//tensorflow/dtensor/cc:tensor_layout", |
| "//tensorflow/python/eager:pywrap_tfe_lib", |
| "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "tf2", |
| srcs = ["tf2.py"], |
| srcs_version = "PY3", |
| deps = [ |
| "//tensorflow/python/platform:_pywrap_tf2", |
| "//tensorflow/python/util:tf_export", |
| ], |
| ) |
| |
| alias( |
| name = "platform_benchmark", |
| actual = "//tensorflow/python/platform:benchmark", |
| ) |
| |
| alias( |
| name = "platform_analytics", |
| actual = "//tensorflow/python/platform:analytics", |
| ) |
| |
| py_strict_library( |
| name = "platform_test", |
| srcs_version = "PY3", |
| deps = ["//tensorflow/python/platform:test"], |
| ) |
| |
| alias( |
| name = "client_testlib", |
| actual = "//tensorflow/python/platform:client_testlib", |
| ) |
| |
| alias( |
| name = "pybind11_absl", |
| actual = "//tensorflow/python/lib/core:pybind11_absl", |
| ) |
| |
| alias( |
| name = "pybind11_proto", |
| actual = "//tensorflow/python/lib/core:pybind11_proto", |
| ) |
| |
| alias( |
| name = "py_func_lib", |
| actual = "//tensorflow/python/lib/core:py_func_lib", |
| ) |
| |
| alias( |
| name = "py_seq_tensor", |
| actual = "//tensorflow/python/lib/core:py_seq_tensor", |
| ) |
| |
| alias( |
| name = "py_util", |
| actual = "//tensorflow/python/lib/core:py_util", |
| ) |
| |
| alias( |
| name = "py_exception_registry", |
| actual = "//tensorflow/python/lib/core:py_exception_registry", |
| ) |
| |
| alias( |
| name = "pybind11_lib", |
| actual = "//tensorflow/python/lib/core:pybind11_lib", |
| ) |
| |
| alias( |
| name = "pybind11_status_headers", |
| actual = "//tensorflow/python/lib/core:pybind11_status_headers", |
| ) |
| |
| alias( |
| name = "pybind11_status", |
| actual = "//tensorflow/python/lib/core:pybind11_status", |
| ) |
| |
| alias( |
| name = "lib", |
| actual = "//tensorflow/python/lib/io:lib", |
| ) |
| |
| alias( |
| name = "safe_pyobject_ptr", |
| actual = "//tensorflow/python/lib/core:safe_pyobject_ptr", |
| ) |
| |
| alias( |
| name = "ndarray_tensor", |
| actual = "//tensorflow/python/lib/core:ndarray_tensor", |
| ) |
| |
| alias( |
| name = "ndarray_tensor_bridge", |
| actual = "//tensorflow/python/lib/core:ndarray_tensor_bridge", |
| ) |
| |
| alias( |
| name = "ndarray_tensor_headers", |
| actual = "//tensorflow/python/lib/core:ndarray_tensor_headers", |
| ) |
| |
| alias( |
| name = "python_op_gen_main", |
| actual = "//tensorflow/python/framework:python_op_gen_main", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "framework", |
| actual = "//tensorflow/python/framework", |
| ) |
| |
| alias( |
| name = "c_api_util", |
| actual = "//tensorflow/python/framework:c_api_util", |
| ) |
| |
| alias( |
| name = "constant_op", |
| actual = "//tensorflow/python/framework:constant_op", |
| ) |
| |
| alias( |
| name = "device_spec", |
| actual = "//tensorflow/python/framework:device_spec", |
| ) |
| |
| alias( |
| name = "device", |
| actual = "//tensorflow/python/framework:device", |
| ) |
| |
| alias( |
| name = "_dtypes", |
| actual = "//tensorflow/python/framework:_dtypes", |
| ) |
| |
| alias( |
| name = "dtypes", |
| actual = "//tensorflow/python/framework:dtypes", |
| visibility = visibility + ["//smartass:__subpackages__"], |
| ) |
| |
| alias( |
| name = "errors", |
| actual = "//tensorflow/python/framework:errors", |
| ) |
| |
| alias( |
| name = "error_interpolation", |
| actual = "//tensorflow/python/framework:error_interpolation", |
| ) |
| |
| alias( |
| name = "function", |
| actual = "//tensorflow/python/framework:function", |
| visibility = visibility + ["//smartass/brain:__subpackages__"], |
| ) |
| |
| alias( |
| name = "graph_to_function_def", |
| actual = "//tensorflow/python/framework:graph_to_function_def", |
| ) |
| |
| alias( |
| name = "function_def_to_graph", |
| actual = "//tensorflow/python/framework:function_def_to_graph", |
| visibility = visibility + ["//waymo/ml:__subpackages__"], |
| ) |
| |
| alias( |
| name = "graph_util", |
| actual = "//tensorflow/python/framework:graph_util", |
| ) |
| |
| alias( |
| name = "convert_to_constants", |
| actual = "//tensorflow/python/framework:convert_to_constants", |
| visibility = visibility + ["//waymo/ml:__subpackages__"], |
| ) |
| |
| alias( |
| name = "kernels", |
| actual = "//tensorflow/python/framework:kernels", |
| ) |
| |
| alias( |
| name = "op_def_registry", |
| actual = "//tensorflow/python/framework:op_def_registry", |
| ) |
| |
| alias( |
| name = "framework_ops", |
| actual = "//tensorflow/python/framework:ops", |
| ) |
| |
| alias( |
| name = "framework_indexed_slices", |
| actual = "//tensorflow/python/framework:indexed_slices", |
| ) |
| |
| alias( |
| name = "framework_for_generated_wrappers", |
| actual = "//tensorflow/python/framework:for_generated_wrappers", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "framework_for_generated_wrappers_v2", |
| actual = "//tensorflow/python/framework:for_generated_wrappers_v2", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "op_callbacks", |
| actual = "//tensorflow/python/framework:op_callbacks", |
| ) |
| |
| alias( |
| name = "indexed_slices", |
| actual = "//tensorflow/python/framework:indexed_slices", |
| ) |
| |
| alias( |
| name = "func_graph", |
| actual = "//tensorflow/python/framework:func_graph", |
| ) |
| |
| alias( |
| name = "auto_control_deps", |
| actual = "//tensorflow/python/framework:auto_control_deps", |
| ) |
| |
| alias( |
| name = "config", |
| actual = "//tensorflow/python/framework:config", |
| ) |
| |
| alias( |
| name = "random_seed", |
| actual = "//tensorflow/python/framework:random_seed", |
| ) |
| |
| alias( |
| name = "smart_cond", |
| actual = "//tensorflow/python/framework:smart_cond", |
| ) |
| |
| alias( |
| name = "sparse_tensor", |
| actual = "//tensorflow/python/framework:sparse_tensor", |
| ) |
| |
| alias( |
| name = "composite_tensor", |
| actual = "//tensorflow/python/framework:composite_tensor", |
| visibility = visibility, |
| ) |
| |
| alias( |
| name = "graph_building_benchmark", |
| actual = "//tensorflow/python/framework:graph_building_benchmark", |
| ) |
| |
| alias( |
| name = "tensor_shape", |
| actual = "//tensorflow/python/framework:tensor_shape", |
| visibility = visibility + ["//smartass/brain/configure/python:__pkg__"], |
| ) |
| |
| alias( |
| name = "type_spec", |
| actual = "//tensorflow/python/framework:type_spec", |
| visibility = visibility, |
| ) |
| |
| alias( |
| name = "tensor_spec", |
| actual = "//tensorflow/python/framework:tensor_spec", |
| ) |
| |
| alias( |
| name = "tensor_util", |
| actual = "//tensorflow/python/framework:tensor_util", |
| ) |
| |
| alias( |
| name = "versions", |
| actual = "//tensorflow/python/framework:versions", |
| ) |
| |
| alias( |
| name = "framework_test_lib", |
| actual = "//tensorflow/python/framework:test_lib", |
| visibility = visibility + [ |
| "//tensorflow_estimator/python/estimator:__subpackages__", |
| ], |
| ) |
| |
| alias( |
| name = "is_mlir_bridge_test_true", |
| actual = "//tensorflow/python/framework:is_mlir_bridge_test_true", |
| visibility = visibility + ["//tensorflow/compiler/tests:friends"], |
| ) |
| |
| alias( |
| name = "tfrt_utils", |
| actual = "//tensorflow/python/framework:tfrt_utils", |
| ) |
| |
| alias( |
| name = "framework_combinations", |
| actual = "//tensorflow/python/framework:combinations", |
| ) |
| |
| alias( |
| name = "framework_importer_test", |
| actual = "//tensorflow/python/framework:importer_test", |
| ) |
| |
| alias( |
| name = "framework_test_combinations_lib", |
| actual = "//tensorflow/python/framework:test_combinations_lib", |
| ) |
| |
| alias( |
| name = "framework_kernels_test", |
| actual = "//tensorflow/python/framework:kernels_test", |
| ) |
| |
| alias( |
| name = "framework_ops_test", |
| actual = "//tensorflow/python/framework:ops_test", |
| ) |
| |
| alias( |
| name = "framework_test_util_test", |
| actual = "//tensorflow/python/framework:test_util_test", |
| ) |
| |
| alias( |
| name = "function_def_to_graph_test", |
| actual = "//tensorflow/python/framework:function_def_to_graph_test", |
| ) |
| |
| alias( |
| name = "op_def_library_test", |
| actual = "//tensorflow/python/framework:op_def_library_test", |
| ) |
| |
| alias( |
| name = "config_test", |
| actual = "//tensorflow/python/framework:config_test", |
| ) |
| |
| alias( |
| name = "is_mlir_bridge_test_false", |
| actual = "//tensorflow/python/framework:is_mlir_bridge_test_false", |
| visibility = visibility + ["//tensorflow/compiler/tests:friends"], |
| ) |
| |
| alias( |
| name = "memory_checker", |
| actual = "//tensorflow/python/framework:memory_checker", |
| ) |
| |
| alias( |
| name = "test_ops", |
| actual = "//tensorflow/python/framework:test_ops", |
| ) |
| |
| alias( |
| name = "test_ops_kernels", |
| actual = "//tensorflow/python/framework:test_ops_kernels", |
| ) |
| |
| alias( |
| name = "basic_session_run_hooks", |
| actual = "//tensorflow/python/training:basic_session_run_hooks", |
| ) |
| |
| alias( |
| name = "checkpoint_management", |
| actual = "//tensorflow/python/training:checkpoint_management", |
| ) |
| |
| alias( |
| name = "py_checkpoint_reader", |
| actual = "//tensorflow/python/training:py_checkpoint_reader", |
| ) |
| |
| alias( |
| name = "saver", |
| actual = "//tensorflow/python/training:saver", |
| ) |
| |
| alias( |
| name = "session_run_hook", |
| actual = "//tensorflow/python/training:session_run_hook", |
| ) |
| |
| alias( |
| name = "checkpoint", |
| actual = "//tensorflow/python/checkpoint:checkpoint", |
| ) |
| |
| alias( |
| name = "checkpoint_lib", |
| actual = "//tensorflow/python/checkpoint:checkpoint_lib", |
| ) |
| |
| alias( |
| name = "trackable", |
| actual = "//tensorflow/python/trackable:trackable", |
| ) |
| |
| alias( |
| name = "training", |
| actual = "//tensorflow/python/training:training", |
| ) |
| |
| alias( |
| name = "training_lib", |
| actual = "//tensorflow/python/training:training_lib", |
| ) |
| |
| alias( |
| name = "training_server_lib", |
| actual = "//tensorflow/python/training:server_lib", |
| ) |
| |
| alias( |
| name = "training_util", |
| actual = "//tensorflow/python/training:training_util", |
| ) |
| |
| alias( |
| name = "loss_scale", |
| actual = "//tensorflow/python/training/experimental:loss_scale", |
| ) |
| |
| alias( |
| name = "loss_scale_optimizer", |
| actual = "//tensorflow/python/training/experimental:loss_scale_optimizer", |
| ) |
| |
| alias( |
| name = "mixed_precision", |
| actual = "//tensorflow/python/training/experimental:mixed_precision", |
| ) |
| |
| alias( |
| name = "mixed_precision_global_state", |
| actual = "//tensorflow/python/training/experimental:mixed_precision_global_state", |
| ) |
| |
| alias( |
| name = "tf_optimizer", |
| actual = "//tensorflow/python/grappler:tf_optimizer", |
| visibility = ["//visibility:public"], |
| ) |
| |
| alias( |
| name = "ops", |
| actual = "//tensorflow/python/user_ops:ops", |
| ) |
| |
| alias( |
| name = "layers_base", |
| actual = "//tensorflow/python/layers:layers_base", |
| ) |
| |
| alias( |
| name = "layers_util", |
| actual = "//tensorflow/python/layers:layers_util", |
| ) |
| |
| alias( |
| name = "layers", |
| actual = "//tensorflow/python/layers:layers", |
| ) |
| |
| py_strict_library( |
| name = "dtensor", |
| deps = [ |
| "//tensorflow/dtensor/python:dtensor", |
| ], |
| ) |
| |
| py_strict_library( |
| name = "learning_rate_decay", |
| # This rule depends on a target that only python:__pkg__ has visibility for. |
| srcs = ["//tensorflow/python/training:learning_rate_decay.py"], |
| srcs_version = "PY3", |
| deps = ["//tensorflow/python/keras/optimizer_v2:legacy_learning_rate_decay"], |
| ) |
| |
| # copybara:uncomment_begin(google-only) |
| # py_proto_library( |
| # name = "protos_all_py_pb2", |
| # has_services = 0, |
| # api_version = 2, |
| # deps = [":protos_all"], |
| # ) |
| # |
| # # Special build rule for jax2tf. |
| # # TODO(b/239052279): remove once TF->TFLite dependency cycle is resolved |
| # py_strict_library( |
| # name = "jax2tf_support", |
| # visibility = ["//third_party/py/jax/experimental/jax2tf:__subpackages__"], |
| # deps = [ |
| # "//tensorflow/python/dlpack", |
| # "//tensorflow/python/ops/ragged:ragged_array_ops", |
| # "//tensorflow/python/saved_model", |
| # ], |
| # ) |
| # copybara:uncomment_end |