Refactor python BUILD targets.

The deps of the "framework" target did not reflect the actual imports
used in those files. Adding the missing deps causes circular
dependencies, so this patch refactors "framework" into per-file
targets. It still exposes the "framework" and
"framework_for_generated_wrappers" to avoid breaking the many targets
that have these as dependencies.
Change: 148834459
This commit is contained in:
Skye Wanderman-Milne 2017-02-28 16:58:45 -08:00 committed by TensorFlower Gardener
parent 4c0bd97d68
commit cd5d96735f
2 changed files with 268 additions and 52 deletions

View File

@ -329,59 +329,112 @@ cc_library(
deps = [":python_op_gen"],
)
# What is needed for tf_gen_op_wrapper_py.
py_library(
name = "framework_for_generated_wrappers",
srcs = [
"framework/constant_op.py",
"framework/device.py",
"framework/dtypes.py",
"framework/function.py",
"framework/op_def_library.py",
"framework/op_def_registry.py",
"framework/ops.py",
"framework/registry.py",
"framework/tensor_shape.py",
"framework/versions.py",
],
srcs_version = "PY2AND3",
visibility = ["//visibility:public"],
deps = [
":platform",
":util",
"//tensorflow/core:protos_all_py",
"//third_party/py/numpy",
"@six_archive//:six",
":constant_op",
":device",
":dtypes",
":framework_ops",
":function",
":op_def_library",
":op_def_registry",
":registry",
":tensor_shape",
":versions",
],
)
# What is needed for tf_gen_op_wrapper_py. This is the same as
# "framework_for_generated_wrappers" minus the "function" dep. This is to avoid
# circular dependencies, as "function" uses generated op wrappers.
py_library(
name = "framework_for_generated_wrappers_v2",
srcs_version = "PY2AND3",
visibility = ["//visibility:public"],
deps = [
":constant_op",
":device",
":dtypes",
":framework_ops",
":op_def_library",
":op_def_registry",
":registry",
":tensor_shape",
":versions",
],
)
py_library(
name = "framework",
srcs = [
"framework/common_shapes.py",
"framework/framework_lib.py",
"framework/graph_io.py",
"framework/graph_util.py",
"framework/graph_util_impl.py",
"framework/importer.py",
"framework/load_library.py",
"framework/meta_graph.py",
"framework/random_seed.py",
"framework/sparse_tensor.py",
"framework/subscribe.py",
"framework/tensor_util.py",
],
srcs_version = "PY2AND3",
deps = [
":common_shapes",
":cpp_shape_inference_proto_py",
":errors",
":framework_for_generated_wrappers",
":graph_util",
":lib",
":platform",
":pywrap_tensorflow",
":random_seed",
":sparse_tensor",
":tensor_util",
":util",
"//third_party/py/numpy",
"@six_archive//:six",
],
)
py_library(
name = "common_shapes",
srcs = ["framework/common_shapes.py"],
srcs_version = "PY2AND3",
deps = [
":cpp_shape_inference_proto_py",
":errors",
":framework_for_generated_wrappers",
":lib",
":platform",
":framework_ops",
":pywrap_tensorflow",
":util",
"//third_party/py/numpy",
"@six_archive//:six",
":tensor_shape",
":tensor_util",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "constant_op",
srcs = ["framework/constant_op.py"],
srcs_version = "PY2AND3",
deps = [
":dtypes",
":framework_ops",
":tensor_shape",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "device",
srcs = ["framework/device.py"],
srcs_version = "PY2AND3",
)
py_library(
name = "dtypes",
srcs = ["framework/dtypes.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/core:protos_all_py",
],
)
@ -395,6 +448,139 @@ py_library(
deps = [":util"],
)
py_library(
name = "function",
srcs = ["framework/function.py"],
srcs_version = "PY2AND3",
deps = [
":array_ops",
":dtypes",
":framework_ops",
":op_def_registry",
":util",
":variable_scope",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "graph_util",
srcs = [
"framework/graph_util.py",
"framework/graph_util_impl.py",
],
srcs_version = "PY2AND3",
deps = [
":dtypes",
":framework_ops",
":platform",
":tensor_util",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "op_def_library",
srcs = ["framework/op_def_library.py"],
srcs_version = "PY2AND3",
deps = [
":dtypes",
":framework_ops",
":platform",
":tensor_shape",
":util",
"//tensorflow/core:protos_all_py",
"@six_archive//:six",
],
)
py_library(
name = "op_def_registry",
srcs = ["framework/op_def_registry.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "framework_ops", # "ops" is already the name of a deprecated target
srcs = ["framework/ops.py"],
srcs_version = "PY2AND3",
deps = [
":device",
":dtypes",
":op_def_registry",
":platform",
":registry",
":tensor_shape",
":util",
":versions",
"//tensorflow/core:protos_all_py",
"@six_archive//:six",
],
)
py_library(
name = "random_seed",
srcs = ["framework/random_seed.py"],
srcs_version = "PY2AND3",
deps = [
":framework_ops",
],
)
py_library(
name = "registry",
srcs = ["framework/registry.py"],
srcs_version = "PY2AND3",
deps = [
":platform",
":util",
],
)
py_library(
name = "sparse_tensor",
srcs = ["framework/sparse_tensor.py"],
srcs_version = "PY2AND3",
deps = [
":dtypes",
":framework_ops",
":tensor_util",
],
)
py_library(
name = "tensor_shape",
srcs = ["framework/tensor_shape.py"],
srcs_version = "PY2AND3",
deps = [
":util",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "tensor_util",
srcs = ["framework/tensor_util.py"],
srcs_version = "PY2AND3",
deps = [
":tensor_shape",
":util",
"//tensorflow/core:protos_all_py",
],
)
py_library(
name = "versions",
srcs = ["framework/versions.py"],
srcs_version = "PY2AND3",
deps = [
":pywrap_tensorflow",
],
)
# load("//third_party/py/cython:build_defs.bzl", "pyx_library")
py_library(
@ -514,11 +700,13 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops",
":constant_op",
":control_flow_ops",
":framework",
":framework_for_generated_wrappers",
":framework_ops",
":functional_ops_gen",
":sparse_tensor",
":tensor_array_ops",
":tensor_shape",
":util",
":variable_scope",
],
@ -997,9 +1185,14 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops_gen",
":framework",
":framework_for_generated_wrappers",
":common_shapes",
":constant_op",
":dtypes",
":framework_ops",
":math_ops_gen",
":sparse_tensor",
":tensor_shape",
":tensor_util",
":util",
"//third_party/py/numpy",
"@six_archive//:six",
@ -1079,17 +1272,21 @@ py_library(
srcs = ["ops/control_flow_ops.py"],
srcs_version = "PY2AND3",
deps = [
"tensor_shape",
":array_ops",
":array_ops_gen",
":constant_op",
":control_flow_ops_gen",
":data_flow_ops_gen",
":framework",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":logging_ops_gen",
":math_ops",
":platform",
":sparse_tensor",
":tensor_array_ops",
":util",
"//tensorflow/core:protos_all_py",
"@six_archive//:six",
],
)
@ -1232,7 +1429,8 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops",
":framework_for_generated_wrappers",
":constant_op",
":dtypes",
":linalg_ops",
":math_ops",
":nn_ops",
@ -1270,7 +1468,8 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":linalg_ops_gen",
":math_ops",
"//third_party/py/numpy",
@ -1308,15 +1507,20 @@ py_library(
srcs = ["ops/math_ops.py"],
srcs_version = "PY2AND3",
deps = [
"constant_op",
":array_ops",
":common_shapes",
":control_flow_ops_gen",
":data_flow_ops_gen",
":framework",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":graph_util",
":math_ops_gen",
":sparse_ops_gen",
":sparse_tensor",
":state_ops",
":state_ops_gen",
":tensor_shape",
":util",
"//third_party/py/numpy",
],
@ -1340,10 +1544,12 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops",
":framework_for_generated_wrappers",
":framework_ops",
":resource_variable_ops_gen",
":tensor_shape",
":util",
":variables",
"//tensorflow/core:protos_all_py",
],
)
@ -1390,11 +1596,14 @@ py_library(
srcs_version = "PY2AND3",
deps = [
":array_ops",
":framework",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":graph_util",
":math_ops",
":nn_ops_gen",
":random_ops",
":tensor_shape",
":tensor_util",
"//third_party/py/numpy",
],
)
@ -1443,10 +1652,11 @@ py_library(
deps = [
":array_ops",
":control_flow_ops",
":framework",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":math_ops",
":random_ops_gen",
":random_seed",
],
)
@ -1669,9 +1879,10 @@ py_library(
srcs = ["ops/state_ops.py"],
srcs_version = "PY2AND3",
deps = [
":framework_for_generated_wrappers",
":framework_ops",
":resource_variable_ops_gen",
":state_ops_gen",
":tensor_shape",
],
)
@ -1726,9 +1937,10 @@ py_library(
deps = [
":array_ops",
":data_flow_ops_gen",
":framework",
":framework_for_generated_wrappers",
":framework_ops",
":math_ops",
":tensor_shape",
":tensor_util",
":util",
],
)
@ -1738,11 +1950,12 @@ py_library(
srcs = ["ops/variable_scope.py"],
srcs_version = "PY2AND3",
deps = [
":array_ops",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":init_ops",
":platform",
":resource_variable_ops",
":tensor_shape",
":variables",
"@six_archive//:six",
],
@ -1755,10 +1968,13 @@ py_library(
deps = [
":array_ops",
":control_flow_ops",
":framework_for_generated_wrappers",
":dtypes",
":framework_ops",
":math_ops",
":state_ops",
":tensor_shape",
":util",
"//tensorflow/core:protos_all_py",
],
)

View File

@ -328,7 +328,7 @@ def tf_gen_op_wrapper_py(name, out=None, hidden=None, visibility=None, deps=[],
srcs_version="PY2AND3",
visibility=visibility,
deps=[
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:framework_for_generated_wrappers_v2",
],)
# Define a bazel macro that creates cc_test for tensorflow.