Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(701)

Unified Diff: third_party/grpc/tools/buildgen/plugins/transitive_dependencies.py

Issue 1932353002: Initial checkin of gRPC to third_party/ Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/grpc/tools/buildgen/plugins/transitive_dependencies.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py b/third_party/grpc/tools/buildgen/plugins/transitive_dependencies.py
similarity index 52%
copy from third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py
copy to third_party/grpc/tools/buildgen/plugins/transitive_dependencies.py
index edc5332797497b580e3b7eff2f88d188d7041f13..01e7f61ea9d630c4537cb4201d1f78bd9330f215 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py
+++ b/third_party/grpc/tools/buildgen/plugins/transitive_dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2011, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -27,31 +27,44 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""Buildgen transitive dependencies
+
+This takes the list of libs, node_modules, and targets from our
+yaml dictionary, and adds to each the transitive closure
+of the list of dependencies.
-"""This file exports public symbols.
"""
+def get_lib(libs, name):
+ try:
+ return next(lib for lib in libs if lib['name']==name)
+ except StopIteration:
+ return None
+
+def transitive_deps(lib, libs):
+ if lib is not None and 'deps' in lib:
+ # Recursively call transitive_deps on each dependency, and take the union
+ return set.union(set(lib['deps']),
+ *[set(transitive_deps(get_lib(libs, dep), libs))
+ for dep in lib['deps']])
+ else:
+ return set()
+
+def mako_plugin(dictionary):
+ """The exported plugin code for transitive_dependencies.
+
+ Each item in libs, node_modules, and targets can have a deps list.
+ We add a transitive_deps property to each with the transitive closure
+ of those dependency lists.
+ """
+ libs = dictionary.get('libs')
+ node_modules = dictionary.get('node_modules')
+ targets = dictionary.get('targets')
+
+ for target_list in (libs, targets, node_modules):
+ for target in target_list:
+ target['transitive_deps'] = transitive_deps(target, libs)
-from mod_pywebsocket._stream_base import BadOperationException
-from mod_pywebsocket._stream_base import ConnectionTerminatedException
-from mod_pywebsocket._stream_base import InvalidFrameException
-from mod_pywebsocket._stream_base import InvalidUTF8Exception
-from mod_pywebsocket._stream_base import UnsupportedFrameException
-from mod_pywebsocket._stream_hixie75 import StreamHixie75
-from mod_pywebsocket._stream_hybi import Frame
-from mod_pywebsocket._stream_hybi import Stream
-from mod_pywebsocket._stream_hybi import StreamOptions
-
-# These methods are intended to be used by WebSocket client developers to have
-# their implementations receive broken data in tests.
-from mod_pywebsocket._stream_hybi import create_close_frame
-from mod_pywebsocket._stream_hybi import create_header
-from mod_pywebsocket._stream_hybi import create_length_header
-from mod_pywebsocket._stream_hybi import create_ping_frame
-from mod_pywebsocket._stream_hybi import create_pong_frame
-from mod_pywebsocket._stream_hybi import create_binary_frame
-from mod_pywebsocket._stream_hybi import create_text_frame
-from mod_pywebsocket._stream_hybi import create_closing_handshake_body
-
-
-# vi:sts=4 sw=4 et
+ python_dependencies = dictionary.get('python_dependencies')
+ python_dependencies['transitive_deps'] = (
+ transitive_deps(python_dependencies, libs))
« no previous file with comments | « third_party/grpc/tools/buildgen/plugins/list_protos.py ('k') | third_party/grpc/tools/codegen/core/gen_header_frame.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698