diff --git a/.bazelrc b/.bazelrc index 86182129958..6b9d548f851 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,5 +1,7 @@ # Global bazelrc file, see https://docs.bazel.build/versions/master/guide.html#bazelrc. +common --noenable_bzlmod --enable_workspace + # Use strict action env to prevent leaks of env vars. build --incompatible_strict_action_env diff --git a/.bazelversion b/.bazelversion index 6abaeb2f907..5942a0d3a0e 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -6.2.0 +7.7.1 diff --git a/BUILD.bazel b/BUILD.bazel index 177a71158a6..368352cad2b 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -14,6 +14,7 @@ # # SPDX-License-Identifier: Apache-2.0 + load("@bazel_gazelle//:def.bzl", "gazelle") load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier") load("@io_bazel_rules_docker//container:container.bzl", "container_image") diff --git a/WORKSPACE b/WORKSPACE index ff0cd59c4e6..4b6c4f86e5f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -19,6 +19,14 @@ pl_register_cc_toolchains() # Install Pixie Labs Dependencies. pl_deps() +load("@bazel_features//:deps.bzl", "bazel_features_deps") + +bazel_features_deps() + +load("@rules_cc//cc:extensions.bzl", "compatibility_proxy_repo") + +compatibility_proxy_repo() + # Order is important. Try to go from most basic/primitive to higher level packages. # - go_rules_dependencies # - protobuf_deps @@ -45,6 +53,10 @@ go_register_toolchains() # gazelle:repository_macro go_deps.bzl%pl_go_dependencies pl_go_dependencies() +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") protobuf_deps() @@ -53,17 +65,39 @@ load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps") grpc_deps() -load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config") +load("@io_bazel_rules_scala//scala:deps.bzl", "rules_scala_dependencies") -scala_version = "2.13.6" +rules_scala_dependencies() -scala_config(scala_version = scala_version) +load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config") -load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories") +scala_version = "2.13.16" -scala_repositories() +scala_config(scala_version = scala_version) -load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains") +load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains", "scala_toolchains") + +# Configure twitter_scrooge toolchain with custom dependencies from thrift_deps. +# Note: thrift_deps must be loaded before this is evaluated. +# The finagle dependencies (finagle-thrift, finagle-core) are needed as compile +# dependencies for the generated scrooge code when thrift services are defined. +# We use scrooge_core_with_finagle which bundles finagle deps with scrooge_core. +scala_toolchains( + fetch_sources = True, + twitter_scrooge = { + "libthrift": "@thrift_deps//:org_apache_thrift_libthrift", + # Use scrooge_core_with_finagle to include finagle on the compile classpath + # for generated thrift service code. Must use @px// prefix to reference + # the main workspace from within the generated @rules_scala_toolchains repo. + "scrooge_core": "@px//src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux:scrooge_core_with_finagle", + "scrooge_generator": "@thrift_deps//:com_twitter_scrooge_generator_2_13", + "util_core": "@thrift_deps//:com_twitter_util_core_2_13", + "util_logging": "@thrift_deps//:com_twitter_util_logging_2_13", + "javax_annotation_api": "@thrift_deps//:javax_annotation_javax_annotation_api", + "mustache": "@thrift_deps//:com_github_spullara_mustache_java_compiler", + "scopt": "@thrift_deps//:com_github_scopt_scopt_2_13", + }, +) scala_register_toolchains() @@ -141,17 +175,17 @@ tf_workspace0() pl_model_files() python_register_toolchains( - name = "python3_10", + name = "python3_12", # Allow the root user to build the code base since this is a current requirement for # building in a containerized environment. See https://github.com/bazelbuild/rules_python/pull/713 # for more details. ignore_root_user_error = True, # Available versions are listed in @rules_python//python:versions.bzl. # We recommend using the same version your team is already standardized on. - python_version = "3.10", + python_version = "3.12", ) -load("@python3_10//:defs.bzl", "interpreter") +load("@python3_12//:defs.bzl", "interpreter") # Setup the environment for the open-source python API. pip_parse( @@ -183,26 +217,6 @@ load("@thrift_deps//:defs.bzl", thrift_pinned_maven_install = "pinned_maven_inst thrift_pinned_maven_install() -# twitter_scrooge will use incompatible versions of @scrooge_jars and @thrift_jars. -# These bind statements ensure that the correct versions of finagle libthrift, scrooge core -# and scrooge generator are used to ensure successful compilation. -# See https://github.com/bazelbuild/rules_scala/issues/592 and -# https://github.com/bazelbuild/rules_scala/pull/847 for more details. -bind( - name = "io_bazel_rules_scala/dependency/thrift/scrooge_core", - actual = "//src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux:scrooge_jars", -) - -bind( - name = "io_bazel_rules_scala/dependency/thrift/scrooge_generator", - actual = "//src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux:scrooge_jars", -) - -bind( - name = "io_bazel_rules_scala/dependency/thrift/libthrift", - actual = "//src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux:thrift_jars", -) - # gazelle:repo bazel_gazelle # Gazelle depes need to be loaded last to make sure they don't override our dependencies. # The first one wins when it comes to package declaration. diff --git a/bazel/cc_toolchains/sysroots/images.bzl b/bazel/cc_toolchains/sysroots/images.bzl index a56583f55ba..9de1aa0f603 100644 --- a/bazel/cc_toolchains/sysroots/images.bzl +++ b/bazel/cc_toolchains/sysroots/images.bzl @@ -65,7 +65,6 @@ def _sysroot_variant_image_factory(variant): return _image_from_sysroot_info(ctx, sysroot_toolchain.sysroot) return rule( - name = "sysroot_{variant}_image".format(variant = variant), implementation = _impl, attrs = dicts.add(_container.image.attrs, { "default_image": attr.label(mandatory = True, doc = "Default container_image to use if no sysroot toolchain is found"), diff --git a/bazel/cc_toolchains/toolchain_features.bzl b/bazel/cc_toolchains/toolchain_features.bzl index e8032a6f0a1..3dd0e8b30fa 100644 --- a/bazel/cc_toolchains/toolchain_features.bzl +++ b/bazel/cc_toolchains/toolchain_features.bzl @@ -66,9 +66,10 @@ def pl_toolchain_pre_features(ctx): # pl_toolchain_post_features are added to the command line after all of the default features. def pl_toolchain_post_features(ctx): features = [] - features += _libstdcpp(ctx) if ctx.attr.compiler == "clang": features += _clang_features(ctx) + else: + features += _libstdcpp(ctx) features += _external_dep(ctx) @@ -148,6 +149,10 @@ def _libcpp(ctx): return [ feature( name = "libc++", + # Enable by default for clang toolchains since they bundle libc++ and don't have libstdc++. + # This is especially important for exec toolchains where --features=libc++ from bazelrc + # may not be applied in Bazel 7+. + enabled = True, flag_sets = [ flag_set( actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], diff --git a/bazel/cc_toolchains/unix_cc_toolchain_config.patch b/bazel/cc_toolchains/unix_cc_toolchain_config.patch index dff0b5f2d9c..ce03bcb94f6 100644 --- a/bazel/cc_toolchains/unix_cc_toolchain_config.patch +++ b/bazel/cc_toolchains/unix_cc_toolchain_config.patch @@ -1,24 +1,25 @@ -diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ---- a/cc_toolchain_config.bzl 2023-01-06 15:34:50.000000000 -0800 -+++ b/cc_toolchain_config.bzl 2023-01-22 15:33:16.794758043 -0800 -@@ -27,6 +27,7 @@ +diff --git a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl +index 0b77afc..a046faf 100644 +--- a/cc_toolchain_config.bzl ++++ b/cc_toolchain_config.bzl +@@ -27,6 +27,7 @@ load( "with_feature_set", ) load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") +load(":toolchain_features.bzl", "pl_toolchain_pre_features", "PL_EXTRA_CC_CONFIG_ATTRS", "pl_toolchain_post_features", "pl_action_configs") - + def layering_check_features(compiler): if compiler != "clang": -@@ -147,7 +148,7 @@ +@@ -147,7 +148,7 @@ def _impl(ctx): tool_path(name = name, path = path) for name, path in ctx.attr.tool_paths.items() ] - action_configs = [] + action_configs = pl_action_configs(ctx) - + llvm_cov_action = action_config( action_name = ACTION_NAMES.llvm_cov, -@@ -168,6 +169,10 @@ +@@ -168,6 +169,10 @@ def _impl(ctx): name = "supports_start_end_lib", enabled = True, ) @@ -26,10 +27,10 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl + name = "default_opt_level_flags", + enabled = True, + ) - + default_compile_flags_feature = feature( name = "default_compile_flags", -@@ -203,7 +208,7 @@ +@@ -203,7 +208,7 @@ def _impl(ctx): flags = ctx.attr.dbg_compile_flags, ), ] if ctx.attr.dbg_compile_flags else []), @@ -38,7 +39,7 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ), flag_set( actions = all_compile_actions, -@@ -212,7 +217,7 @@ +@@ -212,7 +217,7 @@ def _impl(ctx): flags = ctx.attr.opt_compile_flags, ), ] if ctx.attr.opt_compile_flags else []), @@ -47,7 +48,7 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ), flag_set( actions = all_cpp_compile_actions + [ACTION_NAMES.lto_backend], -@@ -244,7 +249,7 @@ +@@ -244,7 +249,7 @@ def _impl(ctx): flags = ctx.attr.opt_link_flags, ), ] if ctx.attr.opt_link_flags else []), @@ -56,7 +57,7 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ), ], ) -@@ -1255,6 +1260,7 @@ +@@ -1255,6 +1260,7 @@ def _impl(ctx): strip_debug_symbols_feature, coverage_feature, supports_pic_feature, @@ -64,7 +65,7 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ] + ( [ supports_start_end_lib_feature, -@@ -1276,6 +1282,7 @@ +@@ -1276,6 +1282,7 @@ def _impl(ctx): else: features = [ supports_pic_feature, @@ -72,28 +73,41 @@ diff --color -Naur a/cc_toolchain_config.bzl b/cc_toolchain_config.bzl ] + ( [ supports_start_end_lib_feature, -@@ -1294,6 +1301,7 @@ +@@ -1294,6 +1301,17 @@ def _impl(ctx): unfiltered_compile_flags_feature, ] + layering_check_features(ctx.attr.compiler) - + + features = pl_toolchain_pre_features(ctx) + features + pl_toolchain_post_features(ctx) ++ ++ sysroot_path = ctx.attr.builtin_sysroot ++ # Only override with toolchain sysroot if this cc_toolchain is configured to use a sysroot ++ # (i.e., builtin_sysroot is non-empty). This prevents exec toolchains from incorrectly ++ # inheriting the target sysroot. ++ if sysroot_path: ++ sysroot_toolchain = ctx.toolchains["@px//bazel/cc_toolchains/sysroots/build:toolchain_type"] ++ if sysroot_toolchain: ++ sysroot_path = sysroot_toolchain.sysroot.path ++ return cc_common.create_cc_toolchain_config_info( ctx = ctx, features = features, -@@ -1313,7 +1321,7 @@ - +@@ -1308,7 +1322,7 @@ def _impl(ctx): + abi_version = ctx.attr.abi_version, + abi_libc_version = ctx.attr.abi_libc_version, + tool_paths = tool_paths, +- builtin_sysroot = ctx.attr.builtin_sysroot, ++ builtin_sysroot = sysroot_path, + ) + cc_toolchain_config = rule( - implementation = _impl, -- attrs = { -+ attrs = dict({ - "cpu": attr.string(mandatory = True), - "compiler": attr.string(mandatory = True), - "toolchain_identifier": attr.string(mandatory = True), -@@ -1336,6 +1344,6 @@ +@@ -1336,5 +1350,8 @@ cc_toolchain_config = rule( "coverage_link_flags": attr.string_list(), "supports_start_end_lib": attr.bool(), "builtin_sysroot": attr.string(), - }, -+ }, **PL_EXTRA_CC_CONFIG_ATTRS), ++ } | PL_EXTRA_CC_CONFIG_ATTRS, provides = [CcToolchainConfigInfo], ++ toolchains = [ ++ config_common.toolchain_type("@px//bazel/cc_toolchains/sysroots/build:toolchain_type", mandatory = False), ++ ], ) diff --git a/bazel/external/flatbuffers_local_changes.patch b/bazel/external/flatbuffers_local_changes.patch new file mode 100644 index 00000000000..bc44bd57b6a --- /dev/null +++ b/bazel/external/flatbuffers_local_changes.patch @@ -0,0 +1,35 @@ +diff --git a/BUILD.bazel b/BUILD.bazel +index b4f015a0..70848962 100644 +--- a/BUILD.bazel ++++ b/BUILD.bazel +@@ -1,5 +1,3 @@ +-load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") +-load("@npm//:defs.bzl", "npm_link_all_packages") + load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + + licenses(["notice"]) +@@ -8,12 +6,7 @@ package( + default_visibility = ["//visibility:public"], + ) + +-npm_link_all_packages(name = "node_modules") + +-npm_link_package( +- name = "node_modules/flatbuffers", +- src = "//ts:flatbuffers", +-) + + exports_files([ + "LICENSE", +@@ -40,11 +33,9 @@ filegroup( + "BUILD.bazel", + "WORKSPACE", + "build_defs.bzl", +- "typescript.bzl", + "//grpc/src/compiler:distribution", + "//reflection:distribution", + "//src:distribution", +- "//ts:distribution", + ] + glob([ + "include/flatbuffers/*.h", + ]), diff --git a/bazel/external/grpc_go_toolchain.patch b/bazel/external/grpc_go_toolchain.patch index ec53b23de78..4d0c29c85c8 100644 --- a/bazel/external/grpc_go_toolchain.patch +++ b/bazel/external/grpc_go_toolchain.patch @@ -2,12 +2,12 @@ diff --git a/bazel/grpc_extra_deps.bzl b/bazel/grpc_extra_deps.bzl index 4d8afa3131..514189f9a5 100644 --- a/bazel/grpc_extra_deps.bzl +++ b/bazel/grpc_extra_deps.bzl -@@ -53,7 +53,7 @@ def grpc_extra_deps(ignore_version_differences = False): +@@ -63,7 +63,7 @@ def grpc_extra_deps(ignore_version_differences = False): api_dependencies() - + go_rules_dependencies() -- go_register_toolchains(version = "1.18") +- go_register_toolchains(version = "1.22.5") + go_register_toolchains() gazelle_dependencies() - + # Pull-in the go 3rd party dependencies for protoc_gen_validate, which is diff --git a/bazel/external/protobuf_javascript.patch b/bazel/external/protobuf_javascript.patch index 7241159e2c6..c150ccc6797 100644 --- a/bazel/external/protobuf_javascript.patch +++ b/bazel/external/protobuf_javascript.patch @@ -1,11 +1,24 @@ +diff --git a/generator/BUILD.bazel b/generator/BUILD.bazel +index ac7756d..a3480c8 100644 +--- a/generator/BUILD.bazel ++++ b/generator/BUILD.bazel +@@ -2,7 +2,7 @@ genrule( + name = "generate_version_header", + srcs = ["//:package.json"], + outs = ["version.h"], +- cmd = "node $(location //:generate-version-header.js) $(OUTS)", ++ cmd = "/opt/px_dev/tools/node/bin/node $(location //:generate-version-header.js) $(OUTS)", + tools = ["//:generate-version-header.js"], + ) + diff --git a/generator/js_generator.cc b/generator/js_generator.cc -index 97b5844..1351a54 100644 +index 7ba8bf0..09b1391 100644 --- a/generator/js_generator.cc +++ b/generator/js_generator.cc -@@ -3650,6 +3650,9 @@ void Generator::GenerateFile(const GeneratorOptions& options, +@@ -3647,6 +3647,9 @@ void Generator::GenerateFile(const GeneratorOptions& options, for (int i = 0; i < file->dependency_count(); i++) { - const std::string& name = file->dependency(i)->name(); + const std::string name = std::string(file->dependency(i)->name()); + if (ModuleAlias(name) == "gogoproto_gogo_pb") { + continue; + } diff --git a/bazel/external/protobuf_py_proto_library.patch b/bazel/external/protobuf_py_proto_library.patch new file mode 100644 index 00000000000..de49f2359ad --- /dev/null +++ b/bazel/external/protobuf_py_proto_library.patch @@ -0,0 +1,25 @@ +diff --git a/protobuf.bzl b/protobuf.bzl +--- a/protobuf.bzl ++++ b/protobuf.bzl +@@ -637,6 +637,21 @@ def internal_py_proto_library( + **kargs + ) + ++def py_proto_library(**kargs): ++ """Deprecated alias for use before Bazel 5.3. ++ ++ This is provided for backwards compatibility only. Users should migrate ++ to the py_proto_library rule from bazel/py_proto_library.bzl instead. ++ ++ Args: ++ **kargs: arguments that are passed to internal_py_proto_library. ++ ++ """ ++ ++ # buildifier: disable=native-py-proto ++ internal_py_proto_library(**kargs) ++ ++ + def _source_proto_library( + name, + srcs = [], diff --git a/bazel/external/protobuf_text_format_v31_part1.patch b/bazel/external/protobuf_text_format_v31_part1.patch new file mode 100644 index 00000000000..951dc9b8bda --- /dev/null +++ b/bazel/external/protobuf_text_format_v31_part1.patch @@ -0,0 +1,24 @@ +--- a/src/google/protobuf/text_format.cc ++++ b/src/google/protobuf/text_format.cc +@@ -91,6 +91,18 @@ inline void TrimTrailingSpace(std::string& debug_string) { + // Single line mode currently might have an extra space at the end. + if (!debug_string.empty() && debug_string.back() == ' ') { + debug_string.pop_back(); + } + } + ++// Returns true if truncation occurred. ++bool TruncateStringView(int64_t max_length, absl::string_view* s) { ++ if (max_length > 0) { ++ int64_t excess = static_cast(s->size()) - max_length; ++ if (excess > 0) { ++ s->remove_suffix(excess); ++ return true; ++ } ++ } ++ return false; ++} ++ + } // namespace + + namespace internal { diff --git a/bazel/external/protobuf_text_format_v31_part2.patch b/bazel/external/protobuf_text_format_v31_part2.patch new file mode 100644 index 00000000000..5d851212902 --- /dev/null +++ b/bazel/external/protobuf_text_format_v31_part2.patch @@ -0,0 +1,18 @@ +--- a/src/google/protobuf/text_format.cc ++++ b/src/google/protobuf/text_format.cc +@@ -2947,7 +2947,14 @@ void TextFormat::Printer::PrintUnknownFields( + break; + } + generator->PrintMaybeWithMarker(MarkerToken(), ": ", "\""); +- generator->PrintString(absl::CEscape(value)); ++ absl::string_view value_to_print = value; ++ bool truncated = TruncateStringView(truncate_string_field_longer_than_, &value_to_print); ++ ++ if (truncated) { ++ generator->PrintString(absl::StrCat(absl::CEscape(value_to_print), "......")); ++ } else { ++ generator->PrintString(absl::CEscape(value)); ++ } + if (single_line_mode_) { + generator->PrintLiteral("\" "); + } else { diff --git a/bazel/external/tensorflow_disable_py_v2.20.patch b/bazel/external/tensorflow_disable_py_v2.20.patch new file mode 100644 index 00000000000..017593461a0 --- /dev/null +++ b/bazel/external/tensorflow_disable_py_v2.20.patch @@ -0,0 +1,110 @@ +diff --git a/tensorflow/tensorflow.bzl b/tensorflow/tensorflow.bzl +index f28f12927db..cc1b1ea29b9 100644 +--- a/tensorflow/tensorflow.bzl ++++ b/tensorflow/tensorflow.bzl +@@ -3027,9 +3027,7 @@ _local_genrule_internal = rule( + # Wrap the rule in a macro so we can pass in exec_compatible_with. + def _local_genrule(**kwargs): + _local_genrule_internal( +- exec_compatible_with = [ +- "@local_execution_config_platform//:platform_constraint", +- ], ++ exec_compatible_with = [], + **kwargs + ) + +diff --git a/tensorflow/tensorflow.default.bzl b/tensorflow/tensorflow.default.bzl +index fc6793e5d74..1585754a602 100644 +--- a/tensorflow/tensorflow.default.bzl ++++ b/tensorflow/tensorflow.default.bzl +@@ -1,15 +1,5 @@ + """Default (OSS) build versions of TensorFlow general-purpose build extensions.""" + +-load( +- "@local_xla//third_party/py/rules_pywrap:pywrap.default.bzl", +- _pywrap_aware_cc_import = "pywrap_aware_cc_import", +- _pywrap_aware_filegroup = "pywrap_aware_filegroup", +- _pywrap_aware_genrule = "pywrap_aware_genrule", +- _pywrap_binaries = "pywrap_binaries", +- _pywrap_common_library = "pywrap_common_library", +- _pywrap_library = "pywrap_library", +- _stripped_cc_info = "stripped_cc_info", +-) + load( + "//tensorflow:tensorflow.bzl", + _ADDITIONAL_API_INDEXABLE_SETTINGS = "ADDITIONAL_API_INDEXABLE_SETTINGS", +@@ -107,10 +97,15 @@ tf_disable_ptxas_warning_flags = _tf_disable_ptxas_warning_flags + replace_with_portable_tf_lib_when_required = _replace_with_portable_tf_lib_when_required + tf_python_framework_friends = _tf_python_framework_friends + pywrap_aware_tf_cc_shared_object = _pywrap_aware_tf_cc_shared_object +-pywrap_aware_filegroup = _pywrap_aware_filegroup +-pywrap_aware_genrule = _pywrap_aware_genrule +-pywrap_aware_cc_import = _pywrap_aware_cc_import +-pywrap_library = _pywrap_library +-pywrap_common_library = _pywrap_common_library +-stripped_cc_info = _stripped_cc_info +-pywrap_binaries = _pywrap_binaries ++ ++# Stub out pywrap symbols that require @python_version_repo ++def _not_implemented(*args, **kwargs): ++ fail("pywrap rules are disabled") ++ ++pywrap_aware_filegroup = _not_implemented ++pywrap_aware_genrule = _not_implemented ++pywrap_aware_cc_import = _not_implemented ++pywrap_library = _not_implemented ++pywrap_common_library = _not_implemented ++stripped_cc_info = _not_implemented ++pywrap_binaries = _not_implemented +diff --git a/tensorflow/tf_version.default.bzl b/tensorflow/tf_version.default.bzl +index 6b2374cc96c..95cbf574544 100644 +--- a/tensorflow/tf_version.default.bzl ++++ b/tensorflow/tf_version.default.bzl +@@ -1,10 +1,5 @@ + """Default (OSS) TensorFlow wheel version suffix data.""" + +-load( +- "@tf_wheel_version_suffix//:wheel_version_suffix.bzl", +- "SEMANTIC_WHEEL_VERSION_SUFFIX", +- "WHEEL_VERSION_SUFFIX", +-) +- +-VERSION_SUFFIX = WHEEL_VERSION_SUFFIX +-SEMANTIC_VERSION_SUFFIX = SEMANTIC_WHEEL_VERSION_SUFFIX ++# Stub out wheel version suffix (not needed for TF Lite builds) ++VERSION_SUFFIX = "" ++SEMANTIC_VERSION_SUFFIX = "" +diff --git a/tensorflow/workspace1.bzl b/tensorflow/workspace1.bzl +index 399ff8f7579..af35b6d1972 100644 +--- a/tensorflow/workspace1.bzl ++++ b/tensorflow/workspace1.bzl +@@ -15,8 +15,8 @@ def workspace(with_rules_cc = True): + Args: + with_rules_cc: Unused, to be removed soon. + """ +- llvm_setup(name = "llvm-project") +- native.register_toolchains("@local_config_python//:py_toolchain") ++ # llvm_setup(name = "llvm-project") ++ # native.register_toolchains("@local_config_python//:py_toolchain") + rules_pkg_dependencies() + + closure_repositories() +diff --git a/tensorflow/workspace2.bzl b/tensorflow/workspace2.bzl +index 9e49ab40b25..fc13a5172d7 100644 +--- a/tensorflow/workspace2.bzl ++++ b/tensorflow/workspace2.bzl +@@ -105,11 +105,11 @@ def _initialize_third_party(): + + # Toolchains & platforms required by Tensorflow to build. + def _tf_toolchains(): +- native.register_execution_platforms("@local_execution_config_platform//:platform") +- native.register_toolchains("@local_execution_config_python//:py_toolchain") ++ # native.register_execution_platforms("@local_execution_config_platform//:platform") ++ # native.register_toolchains("@local_execution_config_python//:py_toolchain") + + # Loads all external repos to configure RBE builds. +- initialize_rbe_configs() ++ # initialize_rbe_configs() + + # Note that we check the minimum bazel version in WORKSPACE. + clang6_configure(name = "local_config_clang6") diff --git a/bazel/external/tensorflow_local_changes.patch b/bazel/external/tensorflow_local_changes.patch new file mode 100644 index 00000000000..39b8e43d9fb --- /dev/null +++ b/bazel/external/tensorflow_local_changes.patch @@ -0,0 +1,443 @@ +diff --git a/tensorflow/tf_version.bzl b/tensorflow/tf_version.bzl +index e92c2d2ce2a..bc2ea14e48b 100644 +--- a/tensorflow/tf_version.bzl ++++ b/tensorflow/tf_version.bzl +@@ -1,14 +1,8 @@ + """Provides project and wheel version data for TensorFlow.""" + +-load( +- "//tensorflow:tf_version.default.bzl", +- "SEMANTIC_VERSION_SUFFIX", +- "VERSION_SUFFIX", +-) +- + # These constants are used by the targets //third_party/tensorflow/core/public:release_version, + # //third_party/tensorflow:tensorflow_bzl and //third_party/tensorflow/tools/pip_package:setup_py. + TF_VERSION = "2.20.0" + MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION = TF_VERSION.split(".") +-TF_WHEEL_VERSION_SUFFIX = VERSION_SUFFIX +-TF_SEMANTIC_VERSION_SUFFIX = SEMANTIC_VERSION_SUFFIX ++TF_WHEEL_VERSION_SUFFIX = "" ++TF_SEMANTIC_VERSION_SUFFIX = "" +diff --git a/tensorflow/workspace1.bzl b/tensorflow/workspace1.bzl +index 399ff8f7579..b6755a6e68b 100644 +--- a/tensorflow/workspace1.bzl ++++ b/tensorflow/workspace1.bzl +@@ -16,7 +16,7 @@ def workspace(with_rules_cc = True): + with_rules_cc: Unused, to be removed soon. + """ + llvm_setup(name = "llvm-project") +- native.register_toolchains("@local_config_python//:py_toolchain") ++ # native.register_toolchains("@local_config_python//:py_toolchain") + rules_pkg_dependencies() + + closure_repositories() +diff --git a/tensorflow/workspace2.bzl b/tensorflow/workspace2.bzl +index 9e49ab40b25..e91df06041d 100644 +--- a/tensorflow/workspace2.bzl ++++ b/tensorflow/workspace2.bzl +@@ -20,6 +20,7 @@ load("@local_xla//third_party/FP16:workspace.bzl", FP16 = "repo") + load("@local_xla//third_party/gemmlowp:workspace.bzl", gemmlowp = "repo") + load("@local_xla//third_party/git:git_configure.bzl", "git_configure") + load("@local_xla//third_party/gpus:rocm_configure.bzl", "rocm_configure") ++load("@local_xla//third_party/gpus:cuda_configure.bzl", "cuda_configure") + load("@local_xla//third_party/gpus:sycl_configure.bzl", "sycl_configure") + load("@local_xla//third_party/highwayhash:workspace.bzl", highwayhash = "repo") + load("@local_xla//third_party/hwloc:workspace.bzl", hwloc = "repo") +@@ -105,11 +106,11 @@ def _initialize_third_party(): + + # Toolchains & platforms required by Tensorflow to build. + def _tf_toolchains(): +- native.register_execution_platforms("@local_execution_config_platform//:platform") +- native.register_toolchains("@local_execution_config_python//:py_toolchain") ++ # native.register_execution_platforms("@local_execution_config_platform//:platform") ++ # native.register_toolchains("@local_execution_config_python//:py_toolchain") + + # Loads all external repos to configure RBE builds. +- initialize_rbe_configs() ++ # initialize_rbe_configs() + + # Note that we check the minimum bazel version in WORKSPACE. + clang6_configure(name = "local_config_clang6") +@@ -117,9 +118,10 @@ def _tf_toolchains(): + tensorrt_configure(name = "local_config_tensorrt") + git_configure(name = "local_config_git") + syslibs_configure(name = "local_config_syslibs") +- python_configure(name = "local_config_python") ++ # python_configure(name = "local_config_python") ++ cuda_configure(name = "local_config_cuda") + rocm_configure(name = "local_config_rocm") +- sycl_configure(name = "local_config_sycl") ++ # sycl_configure(name = "local_config_sycl") + remote_execution_configure(name = "local_config_remote_execution") + + # For windows bazel build +diff --git a/third_party/xla/third_party/gpus/cuda_configure.bzl b/third_party/xla/third_party/gpus/cuda_configure.bzl +index d110fa81460..80fccbfa234 100644 +--- a/third_party/xla/third_party/gpus/cuda_configure.bzl ++++ b/third_party/xla/third_party/gpus/cuda_configure.bzl +@@ -278,7 +278,7 @@ def _cuda_include_path(repository_ctx, cuda_config): + + def enable_cuda(repository_ctx): + """Returns whether to build with CUDA support.""" +- return int(get_host_environ(repository_ctx, "TF_NEED_CUDA", False)) ++ return int(False) + + def matches_version(environ_version, detected_version): + """Checks whether the user-specified version matches the detected version. +diff --git a/third_party/xla/third_party/gpus/rocm_configure.bzl b/third_party/xla/third_party/gpus/rocm_configure.bzl +index 80c151cde4d..b044e061473 100644 +--- a/third_party/xla/third_party/gpus/rocm_configure.bzl ++++ b/third_party/xla/third_party/gpus/rocm_configure.bzl +@@ -158,12 +158,6 @@ def _rocm_include_path(repository_ctx, rocm_config, bash_bin): + return inc_dirs + + def _enable_rocm(repository_ctx): +- enable_rocm = get_host_environ(repository_ctx, "TF_NEED_ROCM") +- if enable_rocm == "1": +- if get_cpu_value(repository_ctx) != "Linux": +- auto_configure_warning("ROCm configure is only supported on Linux") +- return False +- return True + return False + + def _amdgpu_targets(repository_ctx, rocm_toolkit_path, bash_bin): +diff --git a/third_party/xla/third_party/gpus/sycl_configure.bzl b/third_party/xla/third_party/gpus/sycl_configure.bzl +index ee63624f8e4..d60a10b10d6 100644 +--- a/third_party/xla/third_party/gpus/sycl_configure.bzl ++++ b/third_party/xla/third_party/gpus/sycl_configure.bzl +@@ -63,7 +63,7 @@ def _sycl_include_path(repository_ctx, sycl_config, bash_bin): + + def enable_sycl(repository_ctx): + """Returns whether to build with SYCL support.""" +- return int(get_host_environ(repository_ctx, "TF_NEED_SYCL", False)) ++ return int(False) + + def auto_configure_fail(msg): + """Output failure message when auto configuration fails.""" +diff --git a/third_party/xla/third_party/py/rules_pywrap/pywrap.default.bzl b/third_party/xla/third_party/py/rules_pywrap/pywrap.default.bzl +index 9bbee965b57..39897ba2ef0 100644 +--- a/third_party/xla/third_party/py/rules_pywrap/pywrap.default.bzl ++++ b/third_party/xla/third_party/py/rules_pywrap/pywrap.default.bzl +@@ -1,5 +1,4 @@ + # TODO(b/356020232): remove entire file and all usages after migration is done +-load("@python_version_repo//:py_version.bzl", "USE_PYWRAP_RULES") + load( + "//third_party/py/rules_pywrap:pywrap.impl.bzl", + _pybind_extension = "pybind_extension", +@@ -91,7 +90,7 @@ def pybind_extension( + ) + + def use_pywrap_rules(): +- return USE_PYWRAP_RULES ++ return False + + def pywrap_library(name, **kwargs): + if use_pywrap_rules(): +diff --git a/third_party/xla/third_party/py/rules_pywrap/pywrap.impl.bzl b/third_party/xla/third_party/py/rules_pywrap/pywrap.impl.bzl +index 2f2f1906932..3ba3cdbf10a 100644 +--- a/third_party/xla/third_party/py/rules_pywrap/pywrap.impl.bzl ++++ b/third_party/xla/third_party/py/rules_pywrap/pywrap.impl.bzl +@@ -131,222 +131,7 @@ def pywrap_library( + testonly: The testonly argument of the resultant py_library target. + compatible_with: The compatible_with of the py_library target. + """ +- +- # 0) If pywrap_count is not specified, assume we pass pybind_extension, +- # targets directly, so actual pywrap_count should just be equal to number +- # of deps. +- actual_pywrap_count = len(deps) if pywrap_count == None else pywrap_count +- if starlark_only_deps: +- starlark_only_pywrap_count = len(starlark_only_deps) +- actual_deps = deps + starlark_only_deps +- +- # 1) Create common libraries cc-only (C API) and py-specific (parts reused +- # by different pywrap libraries but dependin on Python symbols). +- # The common library should link in everything except the object file with +- # Python Extension's init function PyInit_. +- info_collector_name = "_%s_info_collector" % name +- collected_pywrap_infos( +- name = info_collector_name, +- deps = actual_deps, +- pywrap_count = actual_pywrap_count, +- starlark_only_pywrap_count = starlark_only_pywrap_count, +- ) +- +- linker_input_filters_name = "_%s_linker_input_filters" % name +- +- cur_pkg = native.package_name() +- cur_pkg = cur_pkg + "/" if native.package_name() else cur_pkg +- starlark_only_filter_full_name = None +- if starlark_only_pywrap_count > 0: +- starlark_only_filter_full_name = "%s%s__starlark_only_common" % (cur_pkg, name) +- +- inverse_common_lib_filters = _construct_inverse_common_lib_filters( +- common_lib_filters, +- ) +- +- _linker_input_filters( +- name = linker_input_filters_name, +- dep = ":%s" % info_collector_name, +- pywrap_lib_filter = pywrap_lib_filter, +- pywrap_lib_exclusion_filter = pywrap_lib_exclusion_filter, +- common_lib_filters = inverse_common_lib_filters, +- starlark_only_filter_name = starlark_only_filter_full_name, +- enable_common_lib_starlark_only_filter = enable_common_lib_starlark_only_filter, +- ) +- +- common_deps = [] + extra_deps +- starlark_only_common_deps = [] +- binaries_data = {} +- starlark_only_binaries_data = {} +- win_binaries_data = {} +- win_starlark_only_binaries_data = {} +- internal_binaries = [] +- win_internal_binaries = [] +- +- common_lib_full_names = [] +- common_lib_full_names.extend(common_lib_filters.keys()) +- common_lib_full_names.append("%s%s_common" % (cur_pkg, name)) +- if starlark_only_filter_full_name: +- common_lib_full_names.append(starlark_only_filter_full_name) +- +- for common_lib_full_name in common_lib_full_names: +- common_lib_pkg, common_lib_name = _get_common_lib_package_and_name( +- common_lib_full_name, +- ) +- common_split_name = "_%s_split" % common_lib_name +- _pywrap_common_split_library( +- name = common_split_name, +- dep = ":%s" % info_collector_name, +- common_lib_full_name = common_lib_full_name, +- linker_input_filters = "%s" % linker_input_filters_name, +- testonly = testonly, +- compatible_with = compatible_with, +- collect_objects = select({ +- "@bazel_tools//src/conditions:windows": True, +- "//conditions:default": False, +- }), +- ) +- +- win_def_name = "_%s_def" % common_lib_name +- def_file_or_filter = common_lib_def_files_or_filters.get( +- common_lib_full_name, +- None, +- ) +- generated_common_win_def_file( +- name = win_def_name, +- dep = ":%s" % common_split_name, +- filter = def_file_or_filter, +- ) +- +- linkopts = common_lib_linkopts.get(common_lib_full_name, []) +- ver_script = common_lib_version_scripts.get(common_lib_full_name, None) +- common_cc_binary_name = "%s" % common_lib_name +- +- common_import_name, win_import_library_name = _construct_common_binary( +- common_cc_binary_name, +- common_deps + [":%s" % common_split_name], +- linkopts, +- testonly, +- compatible_with, +- ":%s" % win_def_name, +- None, +- binaries_data.values(), +- common_lib_pkg, +- ver_script, +- [":%s" % common_split_name], +- common_lib_versions.get(common_lib_full_name, ""), +- ) +- actual_binaries_data = binaries_data +- actual_common_deps = common_deps +- actual_win_binaries_data = win_binaries_data +- if common_lib_full_name == starlark_only_filter_full_name: +- actual_binaries_data = starlark_only_binaries_data +- actual_common_deps = starlark_only_common_deps +- actual_win_binaries_data = win_starlark_only_binaries_data +- internal_binaries.append(":%s" % common_cc_binary_name) +- win_internal_binaries.append(":%s" % win_import_library_name) +- actual_binaries_data[":%s" % common_cc_binary_name] = common_lib_pkg +- actual_win_binaries_data[":%s" % win_import_library_name] = common_lib_pkg +- actual_common_deps.append(":%s" % common_import_name) +- +- # 2) Create individual super-thin pywrap libraries, which depend on the +- # common one. The individual libraries must link in statically only the +- # object file with Python Extension's init function PyInit_ +- # +- shared_objects = [] +- for pywrap_index in range(0, actual_pywrap_count + starlark_only_pywrap_count): +- dep_name = "_%s_%s" % (name, pywrap_index) +- shared_object_name = "%s_shared_object" % dep_name +- win_def_name = "%s_win_def" % dep_name +- pywrap_name = "%s_pywrap" % dep_name +- +- _pywrap_split_library( +- name = pywrap_name, +- dep = ":%s" % info_collector_name, +- linker_input_filters = "%s" % linker_input_filters_name, +- pywrap_index = pywrap_index, +- testonly = testonly, +- compatible_with = compatible_with, +- ) +- +- _generated_win_def_file( +- name = win_def_name, +- dep = ":%s" % info_collector_name, +- pywrap_index = pywrap_index, +- testonly = testonly, +- compatible_with = compatible_with, +- ) +- +- actual_common_deps = common_deps +- if pywrap_index >= actual_pywrap_count: +- actual_common_deps = common_deps + starlark_only_common_deps +- +- native.cc_binary( +- name = shared_object_name, +- srcs = [], +- deps = [":%s" % pywrap_name] + actual_common_deps, +- linkshared = True, +- linkstatic = True, +- win_def_file = ":%s" % win_def_name, +- testonly = testonly, +- compatible_with = compatible_with, +- ) +- shared_objects.append(":%s" % shared_object_name) +- +- # 3) Construct final binaries with proper names and put them as data +- # attribute in a py_library, which is the final and only public artifact of +- # this macro +- # +- pywrap_binaries_name = "%s_common_binaries" % name +- wheel_locations_json_name = ":%s_wheel_locations.json" % pywrap_binaries_name +- +- win_binaries_data.update(binaries_data) +- win_starlark_only_binaries_data.update(starlark_only_binaries_data) +- +- _pywrap_binaries( +- name = pywrap_binaries_name, +- collected_pywraps = ":%s" % info_collector_name, +- deps = shared_objects, +- common_binaries = select({ +- "@bazel_tools//src/conditions:windows": win_binaries_data, +- "//conditions:default": binaries_data, +- }), +- starlark_only_common_binaries = select({ +- "@bazel_tools//src/conditions:windows": win_starlark_only_binaries_data, +- "//conditions:default": starlark_only_binaries_data, +- }), +- extension = select({ +- "@bazel_tools//src/conditions:windows": ".pyd", +- "//conditions:default": ".so", +- }), +- wheel_locations_json = wheel_locations_json_name, +- testonly = testonly, +- compatible_with = compatible_with, +- ) +- internal_binaries.append(":%s" % pywrap_binaries_name) +- internal_binaries.append(wheel_locations_json_name) +- +- all_binaries_data = list(binaries_data.keys()) +- all_binaries_data.extend(starlark_only_binaries_data.keys()) +- all_binaries_data.append(":%s" % pywrap_binaries_name) +- all_binaries_data.extend([shared_objects[-1]]) +- +- py_library( +- name = name, +- srcs = [":%s" % info_collector_name], +- data = all_binaries_data, +- testonly = testonly, +- compatible_with = compatible_with, +- visibility = visibility, +- ) +- +- native.filegroup( +- name = name + "_all_binaries", +- srcs = select({ +- "@bazel_tools//src/conditions:windows": internal_binaries + win_internal_binaries, +- "//conditions:default": internal_binaries, +- }), +- ) ++ pass + + def _construct_common_binary( + name, +@@ -1005,54 +790,11 @@ def pybind_extension(name, default_deps = None, **kwargs): + dependency on pybind11 will be added. + **kwargs: Additional arguments to pass to the python_extension. + """ ++ pass + +- actual_default_deps = ["@pybind11//:pybind11"] +- if default_deps != None: +- actual_default_deps = default_deps +- python_extension( +- name = name, +- default_deps = actual_default_deps, +- **kwargs +- ) + + def _pywrap_info_wrapper_impl(ctx): +- #the attribute is called deps not dep to match aspect's attr_aspects +- if len(ctx.attr.deps) != 1: +- fail("deps attribute must contain exactly one dependency") +- +- py_stub = ctx.actions.declare_file("%s.py" % ctx.attr.name) +- substitutions = {} +- py_pkgs = [] +- for pkg in ctx.attr.common_lib_packages: +- if pkg: +- py_pkgs.append(pkg.replace("/", ".") + "." + ctx.attr.name) +- +- if py_pkgs: +- val = "imports_paths = %s # template_val" % py_pkgs +- substitutions["imports_paths = [] # template_val"] = val +- +- ctx.actions.expand_template( +- template = ctx.file.py_stub_src, +- output = py_stub, +- substitutions = substitutions, +- ) +- +- default_runfiles = ctx.runfiles().merge( +- ctx.attr.deps[0][DefaultInfo].default_runfiles, +- ) +- +- return [ +- PyInfo(transitive_sources = depset()), +- PywrapInfo( +- cc_info = ctx.attr.deps[0][CcInfo], +- default_runfiles = default_runfiles, +- owner = ctx.label, +- common_lib_packages = ctx.attr.common_lib_packages, +- py_stub = py_stub, +- cc_only = False, +- starlark_only = ctx.attr.starlark_only, +- ), +- ] ++ pass + + _pywrap_info_wrapper = rule( + attrs = { +diff --git a/third_party/xla/third_party/tensorrt/tensorrt_configure.bzl b/third_party/xla/third_party/tensorrt/tensorrt_configure.bzl +index 32c6d96f161..169df9b2a8b 100644 +--- a/third_party/xla/third_party/tensorrt/tensorrt_configure.bzl ++++ b/third_party/xla/third_party/tensorrt/tensorrt_configure.bzl +@@ -154,7 +154,7 @@ def _create_dummy_repository(repository_ctx): + + def enable_tensorrt(repository_ctx): + """Returns whether to build with TensorRT support.""" +- return int(get_host_environ(repository_ctx, _TF_NEED_TENSORRT, False)) ++ return int(False) + + def _get_tensorrt_static_path(repository_ctx): + """Returns the path for TensorRT static libraries.""" +@@ -284,7 +284,7 @@ def _py_tmpl_dict(d): + def _tensorrt_configure_impl(repository_ctx): + """Implementation of the tensorrt_configure repository rule.""" + +- if get_host_environ(repository_ctx, _TF_TENSORRT_CONFIG_REPO) != None: ++ if False: + # Forward to the pre-configured remote repository. + remote_config_repo = repository_ctx.os.environ[_TF_TENSORRT_CONFIG_REPO] + repository_ctx.template("BUILD", config_repo_label(remote_config_repo, ":BUILD"), {}) diff --git a/bazel/grpc_web.bzl b/bazel/grpc_web.bzl index 097a9bb5995..322e494a5fb 100644 --- a/bazel/grpc_web.bzl +++ b/bazel/grpc_web.bzl @@ -184,7 +184,7 @@ pl_grpc_web_library = rule( default = Label("@com_google_protobuf//:well_known_protos"), ), "_protoc": attr.label( - default = Label("//external:protocol_compiler"), + default = Label("@com_google_protobuf//:protoc"), executable = True, cfg = "host", ), diff --git a/bazel/pl_build_system.bzl b/bazel/pl_build_system.bzl index 161784bd11b..82b6acb5e07 100644 --- a/bazel/pl_build_system.bzl +++ b/bazel/pl_build_system.bzl @@ -95,7 +95,8 @@ def pl_common_linkopts(): "-lunwind", ], # The OSX system library transitively links common libraries (e.g., pthread). - "@bazel_tools//tools/osx:darwin": [], + "@bazel_tools//tools/osx:darwin_arm64": [], + "@bazel_tools//tools/osx:darwin_x86_64": [], "//conditions:default": [ "-pthread", "-lunwind", diff --git a/bazel/proto_compile.bzl b/bazel/proto_compile.bzl index 6969a23e681..74a26a2a50a 100644 --- a/bazel/proto_compile.bzl +++ b/bazel/proto_compile.bzl @@ -85,7 +85,7 @@ def pl_cc_proto_library(name, proto, deps = [], **kwargs): ) grpc_deps = [ "@com_github_grpc_grpc//:grpc++_codegen_proto", - "//external:protobuf", + "@com_google_protobuf//:protoc", ] pl_cc_library_internal( name = name, diff --git a/bazel/repositories.bzl b/bazel/repositories.bzl index 55d23e61323..b3819cbec96 100644 --- a/bazel/repositories.bzl +++ b/bazel/repositories.bzl @@ -121,18 +121,24 @@ def _cc_deps(): # Dependencies with native bazel build files. _bazel_repo("upb") - _bazel_repo("com_google_protobuf", patches = ["//bazel/external:protobuf_text_format.patch", "//bazel/external:protobuf_warning.patch"], patch_args = ["-p1"]) - _bazel_repo("com_github_grpc_grpc", patches = ["//bazel/external:grpc.patch", "//bazel/external:grpc_go_toolchain.patch", "//bazel/external:grpc_test_visibility.patch"], patch_args = ["-p1"]) + _bazel_repo("com_google_flatbuffers", patches = ["//bazel/external:flatbuffers_local_changes.patch"], patch_args = ["-p1"]) + _bazel_repo("com_google_protobuf", patches = ["//bazel/external:protobuf_text_format_v31_part1.patch", "//bazel/external:protobuf_text_format_v31_part2.patch", "//bazel/external:protobuf_py_proto_library.patch"], patch_args = ["-p1"]) + # _bazel_repo("com_google_protobuf", patches = ["//bazel/external:protobuf_text_format.patch", "//bazel/external:protobuf_warning.patch"], patch_args = ["-p1"]) + _bazel_repo("com_github_grpc_grpc", patches = ["//bazel/external:grpc_go_toolchain.patch"], patch_args = ["-p1"]) _bazel_repo("boringssl", patches = ["//bazel/external:boringssl.patch"], patch_args = ["-p0"]) _bazel_repo("com_google_benchmark") _bazel_repo("com_google_googletest") + _bazel_repo("googletest") # Alias for deps that use this name _bazel_repo("com_github_gflags_gflags") _bazel_repo("com_github_google_glog") _bazel_repo("com_google_absl") - _bazel_repo("com_google_flatbuffers") + _bazel_repo("abseil-cpp") # Alias for gRPC/Protobuf _bazel_repo("cpuinfo", patches = ["//bazel/external:cpuinfo.patch"], patch_args = ["-p1"]) - _bazel_repo("org_tensorflow", patches = ["//bazel/external:tensorflow_disable_llvm.patch", "//bazel/external:tensorflow_disable_mirrors.patch", "//bazel/external:tensorflow_disable_py.patch"], patch_args = ["-p1"]) + # _bazel_repo("org_tensorflow", patches = ["//bazel/external:tensorflow_disable_llvm.patch", "//bazel/external:tensorflow_disable_mirrors.patch", "//bazel/external:tensorflow_disable_py.patch"], patch_args = ["-p1"]) + # _bazel_repo("org_tensorflow", patches = ["//bazel/external:tensorflow_disable_py_v2.20.patch"], patch_args = ["-p1"]) + _bazel_repo("org_tensorflow", patches = ["//bazel/external:tensorflow_local_changes.patch"], patch_args = ["-p1"]) + _bazel_repo("com_github_neargye_magic_enum") _bazel_repo("com_github_thoughtspot_threadstacks") _bazel_repo("com_googlesource_code_re2", patches = ["//bazel/external:re2_warning.patch"], patch_args = ["-p1"]) @@ -241,7 +247,10 @@ def _pl_cc_toolchain_deps(): def _pl_deps(): _bazel_repo("bazel_gazelle") _bazel_repo("io_bazel_rules_go", patches = ["//bazel/external:rules_go.patch"], patch_args = ["-p1"]) + _bazel_repo("rules_cc") + _bazel_repo("rules_java") _bazel_repo("io_bazel_rules_scala") + _bazel_repo("rules_scala") _bazel_repo("rules_jvm_external") _bazel_repo("rules_foreign_cc") _bazel_repo("io_bazel_rules_k8s") @@ -252,6 +261,8 @@ def _pl_deps(): _bazel_repo("com_github_bazelbuild_buildtools") _bazel_repo("com_github_fmeum_rules_meta") _bazel_repo("com_google_protobuf_javascript", patches = ["//bazel/external:protobuf_javascript.patch"], patch_args = ["-p1"]) + _bazel_repo("bazel_features") + _bazel_repo("with_cfg.bzl") _com_llvm_lib() _cc_deps() diff --git a/bazel/repository_locations.bzl b/bazel/repository_locations.bzl index 3252648e6d7..91f7de2c16e 100644 --- a/bazel/repository_locations.bzl +++ b/bazel/repository_locations.bzl @@ -23,10 +23,10 @@ REPOSITORY_LOCATIONS = dict( ], ), bazel_skylib = dict( - sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728", + sha256 = "51b5105a760b353773f904d2bbc5e664d0987fbaf22265164de65d43e910d8ac", urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", - "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.8.1/bazel-skylib-1.8.1.tar.gz", ], ), # Must be called boringssl to make sure the deps pick it up correctly. @@ -106,9 +106,9 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gz"], ), com_github_grpc_grpc = dict( - sha256 = "b55696fb249669744de3e71acc54a9382bea0dce7cd5ba379b356b12b82d4229", - strip_prefix = "grpc-1.51.1", - urls = ["https://github.com/grpc/grpc/archive/refs/tags/v1.51.1.tar.gz"], + sha256 = "7bf97c11cf3808d650a3a025bbf9c5f922c844a590826285067765dfd055d228", + strip_prefix = "grpc-1.74.1", + urls = ["https://github.com/grpc/grpc/archive/refs/tags/v1.74.1.tar.gz"], ), # August 19, 2020. com_github_google_sentencepiece = dict( @@ -232,14 +232,14 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/pixie-io/libpypa/archive/eba8ec485a6c5e566d0d7a0716a06c91837c9d2f.tar.gz"], ), com_google_absl = dict( - sha256 = "91ac87d30cc6d79f9ab974c51874a704de9c2647c40f6932597329a282217ba8", - strip_prefix = "abseil-cpp-20220623.1", - urls = ["https://github.com/abseil/abseil-cpp/archive/refs/tags/20220623.1.tar.gz"], + sha256 = "9b7a064305e9fd94d124ffa6cc358592eb42b5da588fb4e07d09254aa40086db", + strip_prefix = "abseil-cpp-20250512.1", + urls = ["https://github.com/abseil/abseil-cpp/archive/refs/tags/20250512.1.tar.gz"], ), com_google_benchmark = dict( - sha256 = "3aff99169fa8bdee356eaa1f691e835a6e57b1efeadb8a0f9f228531158246ac", - strip_prefix = "benchmark-1.7.0", - urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.7.0.tar.gz"], + sha256 = "d26789a2b46d8808a48a4556ee58ccc7c497fcd4c0af9b90197674a81e04798a", + strip_prefix = "benchmark-1.8.5", + urls = ["https://github.com/google/benchmark/archive/refs/tags/v1.8.5.tar.gz"], ), com_google_double_conversion = dict( sha256 = "3dbcdf186ad092a8b71228a5962009b5c96abde9a315257a3452eb988414ea3b", @@ -252,28 +252,33 @@ REPOSITORY_LOCATIONS = dict( urls = ["https://github.com/google/farmhash/archive/2f0e005b81e296fa6963e395626137cf729b710c.tar.gz"], ), com_google_flatbuffers = dict( - sha256 = "e2dc24985a85b278dd06313481a9ca051d048f9474e0f199e372fea3ea4248c9", - strip_prefix = "flatbuffers-2.0.6", - urls = ["https://github.com/google/flatbuffers/archive/refs/tags/v2.0.6.tar.gz"], + sha256 = "4157c5cacdb59737c5d627e47ac26b140e9ee28b1102f812b36068aab728c1ed", + strip_prefix = "flatbuffers-24.3.25", + urls = ["https://github.com/google/flatbuffers/archive/refs/tags/v24.3.25.tar.gz"], ), com_google_googletest = dict( - sha256 = "81964fe578e9bd7c94dfdb09c8e4d6e6759e19967e397dbea48d1c10e45d0df2", - strip_prefix = "googletest-release-1.12.1", - urls = ["https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz"], + sha256 = "65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c", + strip_prefix = "googletest-1.17.0", + urls = ["https://github.com/google/googletest/archive/refs/tags/v1.17.0.tar.gz"], ), com_google_protobuf = dict( - sha256 = "63c5539a8506dc6bccd352a857cea106e0a389ce047a3ff0a78fe3f8fede410d", - strip_prefix = "protobuf-24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb", + # sha256 = "63c5539a8506dc6bccd352a857cea106e0a389ce047a3ff0a78fe3f8fede410d", + # strip_prefix = "protobuf-24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb", + sha256 = "12bfd76d27b9ac3d65c00966901609e020481b9474ef75c7ff4601ac06fa0b82", + strip_prefix = "protobuf-31.1", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb.tar.gz", - "https://github.com/protocolbuffers/protobuf/archive/24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb.tar.gz", + # "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/protobuf/archive/24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb.tar.gz", + "https://github.com/protocolbuffers/protobuf/releases/download/v31.1/protobuf-31.1.tar.gz", + # "https://github.com/protocolbuffers/protobuf/archive/24487dd1045c7f3d64a21f38a3f0c06cc4cf2edb.tar.gz", ], ), + # I needed to `apt-get install -y nodejs` for this install to work. This wasn't the + # case for the ddelnano/debugging-bazel-7-and-bzlmod-missing-system-includes-isolated branch com_google_protobuf_javascript = dict( - sha256 = "35bca1729532b0a77280bf28ab5937438e3dcccd6b31a282d9ae84c896b6f6e3", - strip_prefix = "protobuf-javascript-3.21.2", + sha256 = "123fac2e86109b24e80ccd356aa914e268bf5863ad1354d224d6ceaed6f5c45b", + strip_prefix = "protobuf-javascript-4.0.1", urls = [ - "https://github.com/protocolbuffers/protobuf-javascript/archive/refs/tags/v3.21.2.tar.gz", + "https://github.com/protocolbuffers/protobuf-javascript/archive/refs/tags/v4.0.1.tar.gz", ], ), com_googlesource_code_re2 = dict( @@ -410,6 +415,11 @@ REPOSITORY_LOCATIONS = dict( ], manual_license_name = "oracle/openjdk", ), + rules_cc = dict( + sha256 = "a2fdfde2ab9b2176bd6a33afca14458039023edb1dd2e73e6823810809df4027", + strip_prefix = "rules_cc-0.2.14", + urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.2.14/rules_cc-0.2.14.tar.gz"], + ), io_bazel_rules_closure = dict( sha256 = "5b00383d08dd71f28503736db0500b6fb4dda47489ff5fc6bed42557c07c6ba9", strip_prefix = "rules_closure-308b05b2419edb5c8ee0471b67a40403df940149", @@ -434,16 +444,23 @@ REPOSITORY_LOCATIONS = dict( ], ), io_bazel_rules_scala = dict( - sha256 = "6e9191363357d30b144e7306fec74deea2c7f1de63f3ed32028838116c239e8a", + sha256 = "6a900a39bf643c5c9308c8200f9a61e27588dc54a67aa08fcfc798f25add4f7b", + urls = [ + "https://github.com/bazelbuild/rules_scala/releases/download/v7.1.0/rules_scala-v7.1.0.tar.gz", + ], + strip_prefix = "rules_scala-7.1.0", + ), + rules_scala = dict( + sha256 = "6a900a39bf643c5c9308c8200f9a61e27588dc54a67aa08fcfc798f25add4f7b", urls = [ - "https://github.com/bazelbuild/rules_scala/archive/4ba3780fcba8d26980daff4639abc6f18517308b.tar.gz", + "https://github.com/bazelbuild/rules_scala/releases/download/v7.1.0/rules_scala-v7.1.0.tar.gz", ], - strip_prefix = "rules_scala-4ba3780fcba8d26980daff4639abc6f18517308b", + strip_prefix = "rules_scala-7.1.0", ), org_tensorflow = dict( - sha256 = "99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48", - strip_prefix = "tensorflow-2.11.0", - urls = ["https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.11.0.tar.gz"], + sha256 = "a640d1f97be316a09301dfc9347e3d929ad4d9a2336e3ca23c32c93b0ff7e5d0", + strip_prefix = "tensorflow-2.20.0", + urls = ["https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.20.0.tar.gz"], ), org_libc_musl = dict( sha256 = "7d5b0b6062521e4627e099e4c9dc8248d32a30285e959b7eecaa780cf8cfd4a4", @@ -456,6 +473,13 @@ REPOSITORY_LOCATIONS = dict( strip_prefix = "rules_foreign_cc-0.8.0", urls = ["https://github.com/bazelbuild/rules_foreign_cc/archive/refs/tags/0.8.0.tar.gz"], ), + rules_java = dict( + sha256 = "a64ab04616e76a448c2c2d8165d836f0d2fb0906200d0b7c7376f46dd62e59cc", + urls = [ + "https://github.com/bazelbuild/rules_java/releases/download/8.6.2/rules_java-8.6.2.tar.gz", + ], + # strip_prefix = "rules_java-8.6.1", + ), rules_python = dict( sha256 = "9d04041ac92a0985e344235f5d946f71ac543f1b1565f2cdbc9a2aaee8adf55b", strip_prefix = "rules_python-0.26.0", @@ -495,6 +519,32 @@ REPOSITORY_LOCATIONS = dict( ), ) +# TODO(ddelnano): Remove once bzlmod is used. +# Alias for gRPC/Protobuf which use "abseil-cpp" as the repo name +REPOSITORY_LOCATIONS["abseil-cpp"] = dict( + sha256 = "9b7a064305e9fd94d124ffa6cc358592eb42b5da588fb4e07d09254aa40086db", + strip_prefix = "abseil-cpp-20250512.1", + urls = ["https://github.com/abseil/abseil-cpp/archive/refs/tags/20250512.1.tar.gz"], +) + +REPOSITORY_LOCATIONS["with_cfg.bzl"] = dict( + sha256 = "c7af6227d24499438fa0bb96fe4034e163d8c807b06f7c0645f3654448268b84", + strip_prefix = "with_cfg.bzl-0.11.0", + urls = ["https://github.com/fmeum/with_cfg.bzl/releases/download/v0.11.0/with_cfg.bzl-v0.11.0.tar.gz"], +) + +REPOSITORY_LOCATIONS["bazel_features"] = dict( + sha256 = "07271d0f6b12633777b69020c4cb1eb67b1939c0cf84bb3944dc85cc250c0c01", + strip_prefix = "bazel_features-1.38.0", + urls = ["https://github.com/bazel-contrib/bazel_features/releases/download/v1.38.0/bazel_features-v1.38.0.tar.gz"], +) + +REPOSITORY_LOCATIONS["googletest"] = dict( + sha256 = "65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c", + strip_prefix = "googletest-1.17.0", + urls = ["https://github.com/google/googletest/archive/refs/tags/v1.17.0.tar.gz"], +) + # To modify one of the forked repos below: # 1. Make the changes to the repo and push the changes to the `pixie` on github. # 2. Update the commit below to point to the commit hash of the new `pixie` branch. diff --git a/bazel/thrift.bzl b/bazel/thrift.bzl index 3b535d8a078..ca0fb2b9015 100644 --- a/bazel/thrift.bzl +++ b/bazel/thrift.bzl @@ -14,11 +14,10 @@ # # SPDX-License-Identifier: Apache-2.0 -load("@io_bazel_rules_scala//twitter_scrooge:twitter_scrooge.bzl", "twitter_scrooge") load("@rules_jvm_external//:defs.bzl", "maven_install") def thrift_deps(scala_version): - twitter_scrooge() + # twitter_scrooge is now set up via scala_toolchains(twitter_scrooge = {...}) in WORKSPACE finagle_version = "22.7.0" scala_minor_version = ".".join(scala_version.split(".")[:2]) @@ -26,13 +25,24 @@ def thrift_deps(scala_version): maven_install( name = "thrift_deps", artifacts = [ + # Finagle dependencies (needed for generated service code) "com.twitter:finagle-thriftmux_%s:%s" % (scala_minor_version, finagle_version), + "com.twitter:finagle-thrift_%s:%s" % (scala_minor_version, finagle_version), "com.twitter:finagle-mux_%s:%s" % (scala_minor_version, finagle_version), "com.twitter:finagle-core_%s:%s" % (scala_minor_version, finagle_version), + "com.twitter:finagle-http_%s:%s" % (scala_minor_version, finagle_version), + # Scrooge dependencies (needed for code generation toolchain) "com.twitter:scrooge-core_%s:%s" % (scala_minor_version, finagle_version), "com.twitter:scrooge-generator_%s:%s" % (scala_minor_version, finagle_version), - "com.twitter:finagle-http_%s:%s" % (scala_minor_version, finagle_version), + "com.twitter:util-core_%s:%s" % (scala_minor_version, finagle_version), + "com.twitter:util-logging_%s:%s" % (scala_minor_version, finagle_version), + # Scrooge generator dependencies + "com.github.spullara.mustache.java:compiler:0.8.18", + "com.github.scopt:scopt_%s:4.0.0-RC2" % scala_minor_version, + "javax.annotation:javax.annotation-api:1.3.2", + # Thrift "org.apache.thrift:libthrift:0.10.0", + # Logging "org.slf4j:slf4j-api:1.7.36", "ch.qos.logback:logback-core:1.2.10", "ch.qos.logback:logback-classic:1.2.10", diff --git a/bazel/toolchain_transitions.bzl b/bazel/toolchain_transitions.bzl index 5578af5dada..e1e402a479d 100644 --- a/bazel/toolchain_transitions.bzl +++ b/bazel/toolchain_transitions.bzl @@ -14,30 +14,15 @@ # # SPDX-License-Identifier: Apache-2.0 -load("@com_github_fmeum_rules_meta//meta:defs.bzl", "meta") +load("@with_cfg.bzl", "with_cfg") load("//bazel/test_runners/qemu_with_kernel:runner.bzl", "qemu_with_kernel_interactive_runner") -java_graal_binary = meta.wrap_with_transition( - native.java_binary, - { - "java_runtime_version": meta.replace_with("remotejdk_openjdk_graal_17"), - }, - executable = True, -) +java_graal_binary, _java_graal_binary_internal = with_cfg(native.java_binary).set( + "java_runtime_version", "remotejdk_openjdk_graal_17").build() -cc_clang_binary = meta.wrap_with_transition( - native.cc_binary, - { - "@//bazel/cc_toolchains:compiler": meta.replace_with("clang"), - "@//bazel/cc_toolchains:libc_version": meta.replace_with("glibc2_36"), - }, - executable = True, -) +cc_clang_binary, _cc_clang_binary_internal = with_cfg(native.cc_binary).set( + Label("@//bazel/cc_toolchains:compiler"), "clang").set( + Label("@//bazel/cc_toolchains:libc_version"), "glibc2_36").build() -qemu_interactive_runner = meta.wrap_with_transition( - qemu_with_kernel_interactive_runner, - { - "@//bazel/cc_toolchains:libc_version": meta.replace_with("glibc2_36"), - }, - executable = True, -) +qemu_interactive_runner, _qemu_interactive_runner_internal = with_cfg(qemu_with_kernel_interactive_runner).set( + Label("@//bazel/cc_toolchains:libc_version"), "glibc2_36").build() diff --git a/ci/cquery_ignore_non_target_and_incompatible.bzl b/ci/cquery_ignore_non_target_and_incompatible.bzl index ca748eebf77..3630b0c218c 100644 --- a/ci/cquery_ignore_non_target_and_incompatible.bzl +++ b/ci/cquery_ignore_non_target_and_incompatible.bzl @@ -17,8 +17,9 @@ def format(target): build_opts = build_options(target) - # We only want to get targets that are in the target configuration. So we ignore exec and host targets. - if build_opts["//command_line_option:is exec configuration"] or build_opts["//command_line_option:is host configuration"]: + # We only want to get targets that are in the target configuration. So we ignore exec targets. + # Note: "is host configuration" was removed in Bazel 7 as host configuration was fully replaced by exec configuration. + if build_opts["//command_line_option:is exec configuration"]: return None # Ignore targets that are incompatible with the target configuration. diff --git a/docker.properties b/docker.properties index 82ea19c1351..bb7696c727f 100644 --- a/docker.properties +++ b/docker.properties @@ -1,4 +1,4 @@ -DOCKER_IMAGE_TAG=202508131912 -LINTER_IMAGE_DIGEST=db3238ae3ab3f0fe307aef8920a29b5f0df808248c16a1650baa228c4cefbd4c -DEV_IMAGE_DIGEST=42c7f00b68db0835c266c5aceb6f67ec7e43342336f95218af14e19858e08854 -DEV_IMAGE_WITH_EXTRAS_DIGEST=bbcd6dc6d269231163be9782d42bdf2b2855a34ab384a853fa67e13e946948ec +DOCKER_IMAGE_TAG=202512082352 +LINTER_IMAGE_DIGEST=441fc5a65697dab0b38627d5afde9e38da6812f1a5b98732b224161c23238e73 +DEV_IMAGE_DIGEST=cac2e8a1c3e70dde4e5089b2383b2e11cc022af467ee430c12416eb42066fbb7 +DEV_IMAGE_WITH_EXTRAS_DIGEST=e84f82d62540e1ca72650f8f7c9c4fe0b32b64a33f04cf0b913b9961527c9e30 diff --git a/src/api/python/BUILD.bazel b/src/api/python/BUILD.bazel index 32d2ae302e9..b231b42fa5d 100644 --- a/src/api/python/BUILD.bazel +++ b/src/api/python/BUILD.bazel @@ -23,11 +23,9 @@ py_wheel( author_email = "maintainers@px.dev", classifiers = [ "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Operating System :: OS Independent", "License :: OSI Approved :: Apache Software License", "Typing :: Typed", @@ -36,13 +34,13 @@ py_wheel( distribution = "pxapi", license = "Apache-2.0", platform = "any", - python_requires = ">=3.9, < 3.14", + python_requires = ">=3.12, < 3.14", python_tag = "py3", requires = [ "Authlib==1.5.1", - "grpcio==1.70.0", - "grpcio-tools==1.70.0", - "protobuf==5.29.3", + "grpcio==1.76.0", + "grpcio-tools==1.76.0", + "protobuf==6.33.1", ], strip_path_prefixes = ["src/api/python/"], version = "0.9.0", diff --git a/src/api/python/doc/BUILD.bazel b/src/api/python/doc/BUILD.bazel index af1b85788ff..c2e8cd72370 100644 --- a/src/api/python/doc/BUILD.bazel +++ b/src/api/python/doc/BUILD.bazel @@ -26,6 +26,7 @@ py_binary( imports = [ "../", ], + python_version = "PY3", srcs_version = "PY3", deps = [ "//src/api/python/pxapi:pxapi_library", diff --git a/src/api/python/requirements.bazel.txt b/src/api/python/requirements.bazel.txt index 58cab4f864a..8fd2684fe68 100644 --- a/src/api/python/requirements.bazel.txt +++ b/src/api/python/requirements.bazel.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile --allow-unsafe --generate-hashes --output-file=requirements.bazel.txt requirements.txt @@ -8,244 +8,301 @@ authlib==1.5.1 \ --hash=sha256:5cbc85ecb0667312c1cdc2f9095680bb735883b123fb509fde1e65b1c5df972e \ --hash=sha256:8408861cbd9b4ea2ff759b00b6f02fd7d81ac5a56d0b2b22c08606c6049aae11 # via -r requirements.txt -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 +cffi==2.0.0 \ + --hash=sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb \ + --hash=sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b \ + --hash=sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f \ + --hash=sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9 \ + --hash=sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44 \ + --hash=sha256:0f6084a0ea23d05d20c3edcda20c3d006f9b6f3fefeac38f59262e10cef47ee2 \ + --hash=sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c \ + --hash=sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75 \ + --hash=sha256:1cd13c99ce269b3ed80b417dcd591415d3372bcac067009b6e0f59c7d4015e65 \ + --hash=sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e \ + --hash=sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a \ + --hash=sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e \ + --hash=sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25 \ + --hash=sha256:2081580ebb843f759b9f617314a24ed5738c51d2aee65d31e02f6f7a2b97707a \ + --hash=sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe \ + --hash=sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b \ + --hash=sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91 \ + --hash=sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592 \ + --hash=sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187 \ + --hash=sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c \ + --hash=sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1 \ + --hash=sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94 \ + --hash=sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba \ + --hash=sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb \ + --hash=sha256:3f4d46d8b35698056ec29bca21546e1551a205058ae1a181d871e278b0b28165 \ + --hash=sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529 \ + --hash=sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca \ + --hash=sha256:4647afc2f90d1ddd33441e5b0e85b16b12ddec4fca55f0d9671fef036ecca27c \ + --hash=sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6 \ + --hash=sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c \ + --hash=sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0 \ + --hash=sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743 \ + --hash=sha256:61d028e90346df14fedc3d1e5441df818d095f3b87d286825dfcbd6459b7ef63 \ + --hash=sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5 \ + --hash=sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5 \ + --hash=sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4 \ + --hash=sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d \ + --hash=sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b \ + --hash=sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93 \ + --hash=sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205 \ + --hash=sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27 \ + --hash=sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512 \ + --hash=sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d \ + --hash=sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c \ + --hash=sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037 \ + --hash=sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26 \ + --hash=sha256:89472c9762729b5ae1ad974b777416bfda4ac5642423fa93bd57a09204712322 \ + --hash=sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb \ + --hash=sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c \ + --hash=sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8 \ + --hash=sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4 \ + --hash=sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414 \ + --hash=sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9 \ + --hash=sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664 \ + --hash=sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9 \ + --hash=sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775 \ + --hash=sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739 \ + --hash=sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc \ + --hash=sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062 \ + --hash=sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe \ + --hash=sha256:b882b3df248017dba09d6b16defe9b5c407fe32fc7c65a9c69798e6175601be9 \ + --hash=sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92 \ + --hash=sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5 \ + --hash=sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13 \ + --hash=sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d \ + --hash=sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26 \ + --hash=sha256:cb527a79772e5ef98fb1d700678fe031e353e765d1ca2d409c92263c6d43e09f \ + --hash=sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495 \ + --hash=sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b \ + --hash=sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6 \ + --hash=sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c \ + --hash=sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef \ + --hash=sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5 \ + --hash=sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18 \ + --hash=sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad \ + --hash=sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3 \ + --hash=sha256:de8dad4425a6ca6e4e5e297b27b5c824ecc7581910bf9aee86cb6835e6812aa7 \ + --hash=sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5 \ + --hash=sha256:e6e73b9e02893c764e7e8d5bb5ce277f1a009cd5243f8228f75f842bf937c534 \ + --hash=sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49 \ + --hash=sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2 \ + --hash=sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5 \ + --hash=sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453 \ + --hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf # via cryptography -cryptography==42.0.4 \ - --hash=sha256:01911714117642a3f1792c7f376db572aadadbafcd8d75bb527166009c9f1d1b \ - --hash=sha256:0e89f7b84f421c56e7ff69f11c441ebda73b8a8e6488d322ef71746224c20fce \ - --hash=sha256:12d341bd42cdb7d4937b0cabbdf2a94f949413ac4504904d0cdbdce4a22cbf88 \ - --hash=sha256:15a1fb843c48b4a604663fa30af60818cd28f895572386e5f9b8a665874c26e7 \ - --hash=sha256:1cdcdbd117681c88d717437ada72bdd5be9de117f96e3f4d50dab3f59fd9ab20 \ - --hash=sha256:1df6fcbf60560d2113b5ed90f072dc0b108d64750d4cbd46a21ec882c7aefce9 \ - --hash=sha256:3c6048f217533d89f2f8f4f0fe3044bf0b2090453b7b73d0b77db47b80af8dff \ - --hash=sha256:3e970a2119507d0b104f0a8e281521ad28fc26f2820687b3436b8c9a5fcf20d1 \ - --hash=sha256:44a64043f743485925d3bcac548d05df0f9bb445c5fcca6681889c7c3ab12764 \ - --hash=sha256:4e36685cb634af55e0677d435d425043967ac2f3790ec652b2b88ad03b85c27b \ - --hash=sha256:5f8907fcf57392cd917892ae83708761c6ff3c37a8e835d7246ff0ad251d9298 \ - --hash=sha256:69b22ab6506a3fe483d67d1ed878e1602bdd5912a134e6202c1ec672233241c1 \ - --hash=sha256:6bfadd884e7280df24d26f2186e4e07556a05d37393b0f220a840b083dc6a824 \ - --hash=sha256:6d0fbe73728c44ca3a241eff9aefe6496ab2656d6e7a4ea2459865f2e8613257 \ - --hash=sha256:6ffb03d419edcab93b4b19c22ee80c007fb2d708429cecebf1dd3258956a563a \ - --hash=sha256:810bcf151caefc03e51a3d61e53335cd5c7316c0a105cc695f0959f2c638b129 \ - --hash=sha256:831a4b37accef30cccd34fcb916a5d7b5be3cbbe27268a02832c3e450aea39cb \ - --hash=sha256:887623fe0d70f48ab3f5e4dbf234986b1329a64c066d719432d0698522749929 \ - --hash=sha256:a0298bdc6e98ca21382afe914c642620370ce0470a01e1bef6dd9b5354c36854 \ - --hash=sha256:a1327f280c824ff7885bdeef8578f74690e9079267c1c8bd7dc5cc5aa065ae52 \ - --hash=sha256:c1f25b252d2c87088abc8bbc4f1ecbf7c919e05508a7e8628e6875c40bc70923 \ - --hash=sha256:c3a5cbc620e1e17009f30dd34cb0d85c987afd21c41a74352d1719be33380885 \ - --hash=sha256:ce8613beaffc7c14f091497346ef117c1798c202b01153a8cc7b8e2ebaaf41c0 \ - --hash=sha256:d2a27aca5597c8a71abbe10209184e1a8e91c1fd470b5070a2ea60cafec35bcd \ - --hash=sha256:dad9c385ba8ee025bb0d856714f71d7840020fe176ae0229de618f14dae7a6e2 \ - --hash=sha256:db4b65b02f59035037fde0998974d84244a64c3265bdef32a827ab9b63d61b18 \ - --hash=sha256:e09469a2cec88fb7b078e16d4adec594414397e8879a4341c6ace96013463d5b \ - --hash=sha256:e53dc41cda40b248ebc40b83b31516487f7db95ab8ceac1f042626bc43a2f992 \ - --hash=sha256:f1e85a178384bf19e36779d91ff35c7617c885da487d689b05c1366f9933ad74 \ - --hash=sha256:f47be41843200f7faec0683ad751e5ef11b9a56a220d57f300376cd8aba81660 \ - --hash=sha256:fb0cef872d8193e487fc6bdb08559c3aa41b659a7d9be48b2e10747f47863925 \ - --hash=sha256:ffc73996c4fca3d2b6c1c8c12bfd3ad00def8621da24f547626bf06441400449 +cryptography==46.0.3 \ + --hash=sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217 \ + --hash=sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d \ + --hash=sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc \ + --hash=sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71 \ + --hash=sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971 \ + --hash=sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a \ + --hash=sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926 \ + --hash=sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc \ + --hash=sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d \ + --hash=sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b \ + --hash=sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20 \ + --hash=sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044 \ + --hash=sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3 \ + --hash=sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715 \ + --hash=sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4 \ + --hash=sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506 \ + --hash=sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f \ + --hash=sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0 \ + --hash=sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683 \ + --hash=sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3 \ + --hash=sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21 \ + --hash=sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91 \ + --hash=sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c \ + --hash=sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8 \ + --hash=sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df \ + --hash=sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c \ + --hash=sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb \ + --hash=sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7 \ + --hash=sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04 \ + --hash=sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db \ + --hash=sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459 \ + --hash=sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea \ + --hash=sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914 \ + --hash=sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717 \ + --hash=sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9 \ + --hash=sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac \ + --hash=sha256:a23582810fedb8c0bc47524558fb6c56aac3fc252cb306072fd2815da2a47c32 \ + --hash=sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec \ + --hash=sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1 \ + --hash=sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb \ + --hash=sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac \ + --hash=sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665 \ + --hash=sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e \ + --hash=sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb \ + --hash=sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5 \ + --hash=sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936 \ + --hash=sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de \ + --hash=sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372 \ + --hash=sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54 \ + --hash=sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422 \ + --hash=sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849 \ + --hash=sha256:e7aec276d68421f9574040c26e2a7c3771060bc0cff408bae1dcb19d3ab1e63c \ + --hash=sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963 \ + --hash=sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018 # via authlib -grpcio==1.70.0 \ - --hash=sha256:0495c86a55a04a874c7627fd33e5beaee771917d92c0e6d9d797628ac40e7655 \ - --hash=sha256:07269ff4940f6fb6710951116a04cd70284da86d0a4368fd5a3b552744511f5a \ - --hash=sha256:0a5c78d5198a1f0aa60006cd6eb1c912b4a1520b6a3968e677dbcba215fabb40 \ - --hash=sha256:0ba0a173f4feacf90ee618fbc1a27956bfd21260cd31ced9bc707ef551ff7dc7 \ - --hash=sha256:0cd430b9215a15c10b0e7d78f51e8a39d6cf2ea819fd635a7214fae600b1da27 \ - --hash=sha256:0de706c0a5bb9d841e353f6343a9defc9fc35ec61d6eb6111802f3aa9fef29e1 \ - --hash=sha256:17325b0be0c068f35770f944124e8839ea3185d6d54862800fc28cc2ffad205a \ - --hash=sha256:2394e3381071045a706ee2eeb6e08962dd87e8999b90ac15c55f56fa5a8c9597 \ - --hash=sha256:27cc75e22c5dba1fbaf5a66c778e36ca9b8ce850bf58a9db887754593080d839 \ - --hash=sha256:2b0d02e4b25a5c1f9b6c7745d4fa06efc9fd6a611af0fb38d3ba956786b95199 \ - --hash=sha256:374d014f29f9dfdb40510b041792e0e2828a1389281eb590df066e1cc2b404e5 \ - --hash=sha256:3b0f01f6ed9994d7a0b27eeddea43ceac1b7e6f3f9d86aeec0f0064b8cf50fdb \ - --hash=sha256:4119fed8abb7ff6c32e3d2255301e59c316c22d31ab812b3fbcbaf3d0d87cc68 \ - --hash=sha256:412faabcc787bbc826f51be261ae5fa996b21263de5368a55dc2cf824dc5090e \ - --hash=sha256:4f1937f47c77392ccd555728f564a49128b6a197a05a5cd527b796d36f3387d0 \ - --hash=sha256:5413549fdf0b14046c545e19cfc4eb1e37e9e1ebba0ca390a8d4e9963cab44d2 \ - --hash=sha256:558c386ecb0148f4f99b1a65160f9d4b790ed3163e8610d11db47838d452512d \ - --hash=sha256:58ad9ba575b39edef71f4798fdb5c7b6d02ad36d47949cd381d4392a5c9cbcd3 \ - --hash=sha256:5ea67c72101d687d44d9c56068328da39c9ccba634cabb336075fae2eab0d04b \ - --hash=sha256:7385b1cb064734005204bc8994eed7dcb801ed6c2eda283f613ad8c6c75cf873 \ - --hash=sha256:7c73c42102e4a5ec76608d9b60227d917cea46dff4d11d372f64cbeb56d259d0 \ - --hash=sha256:8058667a755f97407fca257c844018b80004ae8035565ebc2812cc550110718d \ - --hash=sha256:879a61bf52ff8ccacbedf534665bb5478ec8e86ad483e76fe4f729aaef867cab \ - --hash=sha256:880bfb43b1bb8905701b926274eafce5c70a105bc6b99e25f62e98ad59cb278e \ - --hash=sha256:8d1584a68d5922330025881e63a6c1b54cc8117291d382e4fa69339b6d914c56 \ - --hash=sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851 \ - --hash=sha256:9e654c4b17d07eab259d392e12b149c3a134ec52b11ecdc6a515b39aceeec898 \ - --hash=sha256:a31d7e3b529c94e930a117b2175b2efd179d96eb3c7a21ccb0289a8ab05b645c \ - --hash=sha256:aa47688a65643afd8b166928a1da6247d3f46a2784d301e48ca1cc394d2ffb40 \ - --hash=sha256:aa573896aeb7d7ce10b1fa425ba263e8dddd83d71530d1322fd3a16f31257b4a \ - --hash=sha256:aba19419aef9b254e15011b230a180e26e0f6864c90406fdbc255f01d83bc83c \ - --hash=sha256:ac073fe1c4cd856ebcf49e9ed6240f4f84d7a4e6ee95baa5d66ea05d3dd0df7f \ - --hash=sha256:b3c76701428d2df01964bc6479422f20e62fcbc0a37d82ebd58050b86926ef8c \ - --hash=sha256:b745d2c41b27650095e81dea7091668c040457483c9bdb5d0d9de8f8eb25e59f \ - --hash=sha256:bb491125103c800ec209d84c9b51f1c60ea456038e4734688004f377cfacc113 \ - --hash=sha256:c1af8e15b0f0fe0eac75195992a63df17579553b0c4af9f8362cc7cc99ccddf4 \ - --hash=sha256:c78b339869f4dbf89881e0b6fbf376313e4f845a42840a7bdf42ee6caed4b11f \ - --hash=sha256:cb5277db254ab7586769e490b7b22f4ddab3876c490da0a1a9d7c695ccf0bf77 \ - --hash=sha256:cbce24409beaee911c574a3d75d12ffb8c3e3dd1b813321b1d7a96bbcac46bf4 \ - --hash=sha256:cd24d2d9d380fbbee7a5ac86afe9787813f285e684b0271599f95a51bce33528 \ - --hash=sha256:ce7df14b2dcd1102a2ec32f621cc9fab6695effef516efbc6b063ad749867295 \ - --hash=sha256:d24035d49e026353eb042bf7b058fb831db3e06d52bee75c5f2f3ab453e71aca \ - --hash=sha256:d405b005018fd516c9ac529f4b4122342f60ec1cee181788249372524e6db429 \ - --hash=sha256:d63764963412e22f0491d0d32833d71087288f4e24cbcddbae82476bfa1d81fd \ - --hash=sha256:dbe41ad140df911e796d4463168e33ef80a24f5d21ef4d1e310553fcd2c4a386 \ - --hash=sha256:dfa089a734f24ee5f6880c83d043e4f46bf812fcea5181dcb3a572db1e79e01c \ - --hash=sha256:e27585831aa6b57b9250abaf147003e126cd3a6c6ca0c531a01996f31709bed1 \ - --hash=sha256:e7831a0fc1beeeb7759f737f5acd9fdcda520e955049512d68fda03d91186eea \ - --hash=sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf \ - --hash=sha256:ef4c14508299b1406c32bdbb9fb7b47612ab979b04cf2b27686ea31882387cff \ - --hash=sha256:f19375f0300b96c0117aca118d400e76fede6db6e91f3c34b7b035822e06c35f \ - --hash=sha256:f2af68a6f5c8f78d56c145161544ad0febbd7479524a59c16b3e25053f39c87f \ - --hash=sha256:f32090238b720eb585248654db8e3afc87b48d26ac423c8dde8334a232ff53c9 \ - --hash=sha256:fe9dbd916df3b60e865258a8c72ac98f3ac9e2a9542dcb72b7a34d236242a5ce \ - --hash=sha256:ff4a8112a79464919bb21c18e956c54add43ec9a4850e3949da54f61c241a4a6 +grpcio==1.76.0 \ + --hash=sha256:035d90bc79eaa4bed83f524331d55e35820725c9fbb00ffa1904d5550ed7ede3 \ + --hash=sha256:04bbe1bfe3a68bbfd4e52402ab7d4eb59d72d02647ae2042204326cf4bbad280 \ + --hash=sha256:063065249d9e7e0782d03d2bca50787f53bd0fb89a67de9a7b521c4a01f1989b \ + --hash=sha256:06c3d6b076e7b593905d04fdba6a0525711b3466f43b3400266f04ff735de0cd \ + --hash=sha256:08caea849a9d3c71a542827d6df9d5a69067b0a1efbea8a855633ff5d9571465 \ + --hash=sha256:0aaa82d0813fd4c8e589fac9b65d7dd88702555f702fb10417f96e2a2a6d4c0f \ + --hash=sha256:0b7604868b38c1bfd5cf72d768aedd7db41d78cb6a4a18585e33fb0f9f2363fd \ + --hash=sha256:0c37db8606c258e2ee0c56b78c62fc9dee0e901b5dbdcf816c2dd4ad652b8b0c \ + --hash=sha256:1c9b93f79f48b03ada57ea24725d83a30284a012ec27eab2cf7e50a550cbbbcc \ + --hash=sha256:2107b0c024d1b35f4083f11245c0e23846ae64d02f40b2b226684840260ed054 \ + --hash=sha256:2229ae655ec4e8999599469559e97630185fdd53ae1e8997d147b7c9b2b72cba \ + --hash=sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03 \ + --hash=sha256:26ef06c73eb53267c2b319f43e6634c7556ea37672029241a056629af27c10e2 \ + --hash=sha256:2e1743fbd7f5fa713a1b0a8ac8ebabf0ec980b5d8809ec358d488e273b9cf02a \ + --hash=sha256:32483fe2aab2c3794101c2a159070584e5db11d0aa091b2c0ea9c4fc43d0d749 \ + --hash=sha256:3bf0f392c0b806905ed174dcd8bdd5e418a40d5567a05615a030a5aeddea692d \ + --hash=sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb \ + --hash=sha256:40ad3afe81676fd9ec6d9d406eda00933f218038433980aa19d401490e46ecde \ + --hash=sha256:4215d3a102bd95e2e11b5395c78562967959824156af11fa93d18fdd18050990 \ + --hash=sha256:45d59a649a82df5718fd9527ce775fd66d1af35e6d31abdcdc906a49c6822958 \ + --hash=sha256:45e0111e73f43f735d70786557dc38141185072d7ff8dc1829d6a77ac1471468 \ + --hash=sha256:479496325ce554792dba6548fae3df31a72cef7bad71ca2e12b0e58f9b336bfc \ + --hash=sha256:490fa6d203992c47c7b9e4a9d39003a0c2bcc1c9aa3c058730884bbbb0ee9f09 \ + --hash=sha256:49ce47231818806067aea3324d4bf13825b658ad662d3b25fada0bdad9b8a6af \ + --hash=sha256:4baf3cbe2f0be3289eb68ac8ae771156971848bb8aaff60bad42005539431980 \ + --hash=sha256:522175aba7af9113c48ec10cc471b9b9bd4f6ceb36aeb4544a8e2c80ed9d252d \ + --hash=sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f \ + --hash=sha256:615ba64c208aaceb5ec83bfdce7728b80bfeb8be97562944836a7a0a9647d882 \ + --hash=sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae \ + --hash=sha256:65a20de41e85648e00305c1bb09a3598f840422e522277641145a32d42dcefcc \ + --hash=sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77 \ + --hash=sha256:747fa73efa9b8b1488a95d0ba1039c8e2dca0f741612d80415b1e1c560febf4e \ + --hash=sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73 \ + --hash=sha256:81fd9652b37b36f16138611c7e884eb82e0cec137c40d3ef7c3f9b3ed00f6ed8 \ + --hash=sha256:83d57312a58dcfe2a3a0f9d1389b299438909a02db60e2f2ea2ae2d8034909d3 \ + --hash=sha256:8843114c0cfce61b40ad48df65abcfc00d4dba82eae8718fab5352390848c5da \ + --hash=sha256:8cc3309d8e08fd79089e13ed4819d0af72aa935dd8f435a195fd152796752ff2 \ + --hash=sha256:8ebe63ee5f8fa4296b1b8cfc743f870d10e902ca18afc65c68cf46fd39bb0783 \ + --hash=sha256:8eddfb4d203a237da6f3cc8a540dad0517d274b5a1e9e636fd8d2c79b5c1d397 \ + --hash=sha256:922fa70ba549fce362d2e2871ab542082d66e2aaf0c19480ea453905b01f384e \ + --hash=sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42 \ + --hash=sha256:971fd5a1d6e62e00d945423a567e42eb1fa678ba89072832185ca836a94daaa6 \ + --hash=sha256:980a846182ce88c4f2f7e2c22c56aefd515daeb36149d1c897f83cf57999e0b6 \ + --hash=sha256:9d9adda641db7207e800a7f089068f6f645959f2df27e870ee81d44701dd9db3 \ + --hash=sha256:9f8f757bebaaea112c00dba718fc0d3260052ce714e25804a03f93f5d1c6cc11 \ + --hash=sha256:a6ae758eb08088d36812dd5d9af7a9859c05b1e0f714470ea243694b49278e7b \ + --hash=sha256:a8c2cf1209497cf659a667d7dea88985e834c24b7c3b605e6254cbb5076d985c \ + --hash=sha256:acab0277c40eff7143c2323190ea57b9ee5fd353d8190ee9652369fae735668a \ + --hash=sha256:b331680e46239e090f5b3cead313cc772f6caa7d0fc8de349337563125361a4a \ + --hash=sha256:c088e7a90b6017307f423efbb9d1ba97a22aa2170876223f9709e9d1de0b5347 \ + --hash=sha256:d099566accf23d21037f18a2a63d323075bebace807742e4b0ac210971d4dd70 \ + --hash=sha256:d388087771c837cdb6515539f43b9d4bf0b0f23593a24054ac16f7a960be16f4 \ + --hash=sha256:dcfe41187da8992c5f40aa8c5ec086fa3672834d2be57a32384c08d5a05b4c00 \ + --hash=sha256:e6d1db20594d9daba22f90da738b1a0441a7427552cc6e2e3d1297aeddc00378 \ + --hash=sha256:ebea5cc3aa8ea72e04df9913492f9a96d9348db876f9dda3ad729cfedf7ac416 \ + --hash=sha256:ebebf83299b0cb1721a8859ea98f3a77811e35dce7609c5c963b9ad90728f886 \ + --hash=sha256:f0e34c2079d47ae9f6188211db9e777c619a21d4faba6977774e8fa43b085e48 \ + --hash=sha256:f92f88e6c033db65a5ae3d97905c8fea9c725b63e28d5a75cb73b49bda5024d8 \ + --hash=sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8 \ + --hash=sha256:fd5ef5932f6475c436c4a55e4336ebbe47bd3272be04964a03d316bbf4afbcbc \ + --hash=sha256:ff8a59ea85a1f2191a0ffcc61298c571bc566332f82e5f5be1b83c9d8e668a62 # via # -r requirements.txt # grpcio-tools -grpcio-tools==1.70.0 \ - --hash=sha256:02e3bf55fb569fe21b54a32925979156e320f9249bb247094c4cbaa60c23a80d \ - --hash=sha256:04bf30c0eb2741defe3ab6e0a6102b022d69cfd39d68fab9b954993ceca8d346 \ - --hash=sha256:076f71c6d5adcf237ebca63f1ed51098293261dab9f301e3dfd180e896e5fa89 \ - --hash=sha256:0f7ed0372afd9f5eb938334e84681396257015ab92e03de009aa3170e64b24d0 \ - --hash=sha256:114a42e566e5b16a47e98f7910a6c0074b37e2d1faacaae13222e463d0d0d43c \ - --hash=sha256:1ab788afced2d2c59bef86479967ce0b28485789a9f2cc43793bb7aa67f9528b \ - --hash=sha256:1c0917dce12af04529606d437def83962d51c59dcde905746134222e94a2ab1b \ - --hash=sha256:1de6c71833d36fb8cc8ac10539681756dc2c5c67e5d4aa4d05adb91ecbdd8474 \ - --hash=sha256:1fa9a81621d7178498dedcf94eb8f276a7594327faf3dd5fd1935ce2819a2bdb \ - --hash=sha256:22024caee36ab65c2489594d718921dcbb5bd18d61c5417a9ede94fd8dc8a589 \ - --hash=sha256:24a5b0328ffcfe0c4a9024f302545abdb8d6f24921409a5839f2879555b96fea \ - --hash=sha256:3020c97f03b30eee3c26aa2a55fbe003f1729c6f879a378507c2c78524db7c12 \ - --hash=sha256:3875543d74ce1a698a11f498f83795216ce929cb29afa5fac15672c7ba1d6dd2 \ - --hash=sha256:4545264e06e1cd7fb21b9447bb5126330bececb4bc626c98f793fda2fd910bf8 \ - --hash=sha256:4cae365d7e3ba297256216a9a256458b286f75c64603f017972b3ad1ee374437 \ - --hash=sha256:4d456521290e25b1091975af71604facc5c7db162abdca67e12a0207b8bbacbe \ - --hash=sha256:4ebf09733545a69c166b02caa14c34451e38855544820dab7fdde5c28e2dbffe \ - --hash=sha256:52d7e7ef11867fe7de577076b1f2ac6bf106b2325130e3de66f8c364c96ff332 \ - --hash=sha256:54ceffef59a059d2c7304554a8bbb20eedb05a3f937159ab1c332c1b28e12c9f \ - --hash=sha256:5cb0baa52d4d44690fac6b1040197c694776a291a90e2d3c369064b4d5bc6642 \ - --hash=sha256:5f5aba12d98d25c7ab2dd983939e2c21556a7d15f903b286f24d88d2c6e30c0a \ - --hash=sha256:6034a0579fab2aed8685fa1a558de084668b1e9b01a82a4ca7458b9bedf4654c \ - --hash=sha256:63f367363a4a1489a0046b19f9d561216ea0d206c40a6f1bf07a58ccfb7be480 \ - --hash=sha256:6eeb86864e1432fc1ab61e03395a2a4c04e9dd9c89db07e6fe68c7c2ac8ec24f \ - --hash=sha256:701bbb1ff406a21a771f5b1df6be516c0a59236774b6836eaad7696b1d128ea8 \ - --hash=sha256:70234b592af17050ec30cf35894790cef52aeae87639efe6db854a7fa783cc8c \ - --hash=sha256:740b3741d124c5f390dd50ad1c42c11788882baf3c202cd3e69adee0e3dde559 \ - --hash=sha256:79b723ce30416e8e1d7ff271f97ade79aaf30309a595d80c377105c07f5b20fd \ - --hash=sha256:7a90a66a46821140a2a2b0be787dfabe42e22e9a5ba9cc70726b3e5c71a3b785 \ - --hash=sha256:7d45067e6efd20881e98a0e1d7edd7f207b1625ad7113321becbfe0a6ebee46c \ - --hash=sha256:836293dcbb1e59fa52aa8aa890bd7a32a8eea7651cd614e96d86de4f3032fe73 \ - --hash=sha256:840ec536ab933db2ef8d5acaa6b712d0e9e8f397f62907c852ec50a3f69cdb78 \ - --hash=sha256:88a3ec6fa2381f616d567f996503e12ca353777941b61030fd9733fd5772860e \ - --hash=sha256:8eae17c920d14e2e451dbb18f5d8148f884e10228061941b33faa8fceee86e73 \ - --hash=sha256:904f13d2d04f88178b09d8ef89549b90cbf8792b684a7c72540fc1a9887697e2 \ - --hash=sha256:9387b30f3b2f46942fb5718624d7421875a6ce458620d6e15817172d78db1e1a \ - --hash=sha256:99caa530242a0a832d8b6a6ab94b190c9b449d3e237f953911b4d56207569436 \ - --hash=sha256:9c021b040d0a9f5bb96a725c4d2b95008aad127d6bed124a7bbe854973014f5b \ - --hash=sha256:a130c24d617a3a57369da784080dfa8848444d41b7ae1250abc06e72e706a8d9 \ - --hash=sha256:ae139a8d3ddd8353f62af3af018e99ebcd2f4a237bd319cb4b6f58dd608aaa54 \ - --hash=sha256:b5a9beadd1e24772ffa2c70f07d72f73330d356b78b246e424f4f2ed6c6713f3 \ - --hash=sha256:b9e4a12b862ba5e42d8028da311e8d4a2c307362659b2f4141d0f940f8c12b49 \ - --hash=sha256:bb8135eef160a62505f074bf7a3d62f3b13911c3c14037c5392bf877114213b5 \ - --hash=sha256:c6da2585c0950cdb650df1ff6d85b3fe31e22f8370b9ee11f8fe641d5b4bf096 \ - --hash=sha256:d1fc2112e9c40167086e2e6a929b253e5281bffd070fab7cd1ae019317ffc11d \ - --hash=sha256:d47a6c6cfc526b290b7b53a37dd7e6932983f7a168b56aab760b4b597c47f30f \ - --hash=sha256:d50080bca84f53f3a05452e06e6251cbb4887f5a1d1321d1989e26d6e0dc398d \ - --hash=sha256:d53c8c45e843b5836781ad6b82a607c72c2f9a3f556e23d703a0e099222421fa \ - --hash=sha256:d7fd472fce3b33bdf7fbc24d40da7ab10d7a088bcaf59c37433c2c57330fbcb6 \ - --hash=sha256:e578fee7c1c213c8e471750d92631d00f178a15479fb2cb3b939a07fc125ccd3 \ - --hash=sha256:ec5d6932c3173d7618267b3b3fd77b9243949c5ec04302b7338386d4f8544e0b \ - --hash=sha256:f024688d04e7a9429489ed695b85628075c3c6d655198ba3c6ccbd1d8b7c333b \ - --hash=sha256:f22852da12f53b02a3bdb29d0c32fcabab9c7c8f901389acffec8461083f110d \ - --hash=sha256:f7ac9b3e13ace8467a586c53580ee22f9732c355583f3c344ef8c6c0666219cc \ - --hash=sha256:fd04c93af460b1456cd12f8f85502503e1db6c4adc1b7d4bd775b12c1fd94fee +grpcio-tools==1.76.0 \ + --hash=sha256:0071b1c0bd0f5f9d292dca4efab32c92725d418e57f9c60acdc33c0172af8b53 \ + --hash=sha256:0b018a4b7455a7e8c16d0fdb3655a6ba6c9536da6de6c5d4f11b6bb73378165b \ + --hash=sha256:0cd489016766b05f9ed8a6b6596004b62c57d323f49593eac84add032a6d43f7 \ + --hash=sha256:0d4e4afe9a0e3c24fad2f1af45f98cf8700b2bfc4d790795756ba035d2ea7bdc \ + --hash=sha256:105e53435b2eed3961da543db44a2a34479d98d18ea248219856f30a0ca4646b \ + --hash=sha256:12e1186b0256414a9153d414e4852e7282863a8173ebcee67b3ebe2e1c47a755 \ + --hash=sha256:14c17014d2349b9954385bee487f51979b4b7f9067017099ae45c4f93360d373 \ + --hash=sha256:243af7c8fc7ff22a40a42eb8e0f6f66963c1920b75aae2a2ec503a9c3c8b31c1 \ + --hash=sha256:2ccd2c8d041351cc29d0fc4a84529b11ee35494a700b535c1f820b642f2a72fc \ + --hash=sha256:2ce5e87ec71f2e4041dce4351f2a8e3b713e3bca6b54c69c3fbc6c7ad1f4c386 \ + --hash=sha256:2d7679680a456528b9a71a2589cb24d3dd82ec34327281f5695077a567dee433 \ + --hash=sha256:30f1d2dda6ece285b3d9084e94f66fa721ebdba14ae76b2bc4c581c8a166535c \ + --hash=sha256:3dafa34c2626a6691d103877e8a145f54c34cf6530975f695b396ed2fc5c98f8 \ + --hash=sha256:454a1232c7f99410d92fa9923c7851fd4cdaf657ee194eac73ea1fe21b406d6e \ + --hash=sha256:479ce02dff684046f909a487d452a83a96b4231f7c70a3b218a075d54e951f56 \ + --hash=sha256:4ad555b8647de1ebaffb25170249f89057721ffb74f7da96834a07b4855bb46a \ + --hash=sha256:4b77ce6b6c17869858cfe14681ad09ed3a8a80e960e96035de1fd87f78158740 \ + --hash=sha256:5c120c2cf4443121800e7f9bcfe2e94519fa25f3bb0b9882359dd3b252c78a7b \ + --hash=sha256:630cd7fd3e8a63e20703a7ad816979073c2253e591b5422583c27cae2570de73 \ + --hash=sha256:63551f371082173e259e7f6ec24b5f1fe7d66040fadd975c966647bca605a2d3 \ + --hash=sha256:6a9818ff884796b12dcf8db32126e40ec1098cacf5697f27af9cfccfca1c1fae \ + --hash=sha256:6ae1d11477b05baead0fce051dece86a0e79d9b592245e0026c998da11c278c4 \ + --hash=sha256:75a2c34584c99ff47e5bb267866e7dec68d30cd3b2158e1ee495bfd6db5ad4f0 \ + --hash=sha256:7fefd41fc4ca11fab36f42bdf0f3812252988f8798fca8bec8eae049418deacd \ + --hash=sha256:8207b890f423142cc0025d041fb058f7286318df6a049565c27869d73534228b \ + --hash=sha256:888346b8b3f4152953626e38629ade9d79940ae85c8fd539ce39b72602191fb2 \ + --hash=sha256:8b7df5591d699cd9076065f1f15049e9c3597e0771bea51c8c97790caf5e4197 \ + --hash=sha256:8d95b5c2394bbbe911cbfc88d15e24c9e174958cb44dad6aa8c46fe367f6cc2a \ + --hash=sha256:908758789b0a612102c88e8055b7191eb2c4290d5d6fc50fb9cac737f8011ef1 \ + --hash=sha256:9b99086080ca394f1da9894ee20dedf7292dd614e985dcba58209a86a42de602 \ + --hash=sha256:9ba4bb539936642a44418b38ee6c3e8823c037699e2cb282bd8a44d76a4be833 \ + --hash=sha256:a25048c5f984d33e3f5b6ad7618e98736542461213ade1bd6f2fcfe8ce804e3d \ + --hash=sha256:a83c87513b708228b4cad7619311daba65b40937745103cadca3db94a6472d9c \ + --hash=sha256:a889af059dc6dbb82d7b417aa581601316e364fe12eb54c1b8d95311ea50916d \ + --hash=sha256:aa2f030fd0ef17926026ee8e2b700e388d3439155d145c568fa6b32693277613 \ + --hash=sha256:b05efe5a59883ab8292d596657273a60e0c3e4f5a9723c32feb9fc3a06f2f3ef \ + --hash=sha256:b598fdcebffa931c7da5c9e90b5805fff7e9bc6cf238319358a1b85704c57d33 \ + --hash=sha256:b8da4d828883913f1852bdd67383713ae5c11842f6c70f93f31893eab530aead \ + --hash=sha256:bacbf3c54f88c38de8e28f8d9b97c90b76b105fb9ddef05d2c50df01b32b92af \ + --hash=sha256:be480142fae0d986d127d6cb5cbc0357e4124ba22e96bb8b9ece32c48bc2c8ea \ + --hash=sha256:be483b90e62b7892eb71fa1fc49750bee5b2ee35b5ec99dd2b32bed4bedb5d71 \ + --hash=sha256:c3f2c3c44c56eb5d479ab178f0174595d0a974c37dade442f05bb73dfec02f31 \ + --hash=sha256:c53c5719ef2a435997755abde3826ba4087174bd432aa721d8fac781fcea79e4 \ + --hash=sha256:c6480f6af6833850a85cca1c6b435ef4ffd2ac8e88ef683b4065233827950243 \ + --hash=sha256:c7c23fe1dc09818e16a48853477806ad77dd628b33996f78c05a293065f8210c \ + --hash=sha256:c83f39f64c2531336bd8d5c846a2159c9ea6635508b0f8ed3ad0d433e25b53c9 \ + --hash=sha256:ca9ccf667afc0268d45ab202af4556c72e57ea36ebddc93535e1a25cbd4f8aba \ + --hash=sha256:cb0cc0b3edf1f076b2475a98122a51f3f3358b9a740dedff1a9a4dec6477ef96 \ + --hash=sha256:cbc16156ba2533e5bad16ff1648213dc3b0a0b0e4de6d17b65e8d60578014002 \ + --hash=sha256:ce80169b5e6adf3e8302f3ebb6cb0c3a9f08089133abca4b76ad67f751f5ad88 \ + --hash=sha256:d54e9ce2ffc5d01341f0c8898c1471d887ae93d77451884797776e0a505bd503 \ + --hash=sha256:e3db1300d7282264639eeee7243f5de7e6a7c0283f8bf05d66c0315b7b0f0b36 \ + --hash=sha256:eb2567280f9f6da5444043f0e84d8408c7a10df9ba3201026b30e40ef3814736 \ + --hash=sha256:ec6e49e7c4b2a222eb26d1e1726a07a572b6e629b2cf37e6bb784c9687904a52 \ + --hash=sha256:ec6e4de3866e47cfde56607b1fae83ecc5aa546e06dec53de11f88063f4b5275 \ + --hash=sha256:f919e480983e610263846dbeab22ad808ad0fac6d4bd15c52e9f7f80d1f08479 \ + --hash=sha256:fbbd4e1fc5af98001ceef5e780e8c10921d94941c3809238081e73818ef707f1 \ + --hash=sha256:fcdce7f7770ff052cd4e60161764b0b3498c909bde69138f8bd2e7b24a3ecd8f \ + --hash=sha256:fdd8b382ed21d7d429a9879198743abead0b08ad2249b554fd2f2395450bcdf1 \ + --hash=sha256:fe0cc10dd31ac01cadc8af1ce7877cc770bc2a71aa96569bc3c1897c1eac0116 \ + --hash=sha256:ff48969f81858397ef33a36b326f2dbe2053a48b254593785707845db73c8f44 # via -r requirements.txt -protobuf==5.29.3 \ - --hash=sha256:0a18ed4a24198528f2333802eb075e59dea9d679ab7a6c5efb017a59004d849f \ - --hash=sha256:0eb32bfa5219fc8d4111803e9a690658aa2e6366384fd0851064b963b6d1f2a7 \ - --hash=sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888 \ - --hash=sha256:5da0f41edaf117bde316404bad1a486cb4ededf8e4a54891296f648e8e076620 \ - --hash=sha256:6ce8cc3389a20693bfde6c6562e03474c40851b44975c9b2bf6df7d8c4f864da \ - --hash=sha256:84a57163a0ccef3f96e4b6a20516cedcf5bb3a95a657131c5c3ac62200d23252 \ - --hash=sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a \ - --hash=sha256:a8434404bbf139aa9e1300dbf989667a83d42ddda9153d8ab76e0d5dcaca484e \ - --hash=sha256:b89c115d877892a512f79a8114564fb435943b59067615894c3b13cd3e1fa107 \ - --hash=sha256:c027e08a08be10b67c06bf2370b99c811c466398c357e615ca88c91c07f0910f \ - --hash=sha256:daaf63f70f25e8689c072cfad4334ca0ac1d1e05a92fc15c54eb9cf23c3efd84 +protobuf==6.33.1 \ + --hash=sha256:023af8449482fa884d88b4563d85e83accab54138ae098924a985bcbb734a213 \ + --hash=sha256:0f4cf01222c0d959c2b399142deb526de420be8236f22c71356e2a544e153c53 \ + --hash=sha256:8fd7d5e0eb08cd5b87fd3df49bc193f5cfd778701f47e11d127d0afc6c39f1d1 \ + --hash=sha256:923aa6d27a92bf44394f6abf7ea0500f38769d4b07f4be41cb52bd8b1123b9ed \ + --hash=sha256:97f65757e8d09870de6fd973aeddb92f85435607235d20b2dfed93405d00c85b \ + --hash=sha256:d595a9fd694fdeb061a62fbe10eb039cc1e444df81ec9bb70c7fc59ebcb1eafa \ + --hash=sha256:df051de4fd7e5e4371334e234c62ba43763f15ab605579e04c7008c05735cd82 \ + --hash=sha256:f8adba2e44cde2d7618996b3fc02341f03f5bc3f2748be72dc7b063319276178 \ + --hash=sha256:f8d3fdbc966aaab1d05046d0240dd94d40f2a8c62856d41eaa141ff64a79de6b \ + --hash=sha256:fe34575f2bdde76ac429ec7b570235bf0c788883e70aee90068e9981806f2490 # via # -r requirements.txt # grpcio-tools -pycparser==2.21 \ - --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ - --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 +pycparser==2.23 \ + --hash=sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2 \ + --hash=sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934 # via cffi +typing-extensions==4.15.0 \ + --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 + # via grpcio # The following packages are considered to be unsafe in a requirements file: -setuptools==65.6.3 \ - --hash=sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54 \ - --hash=sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75 +setuptools==80.9.0 \ + --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ + --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c # via grpcio-tools diff --git a/src/api/python/requirements.txt b/src/api/python/requirements.txt index 8bb46b49186..7bea60bb5cd 100644 --- a/src/api/python/requirements.txt +++ b/src/api/python/requirements.txt @@ -1,4 +1,4 @@ Authlib==1.5.1 -grpcio==1.70.0 -grpcio-tools==1.70.0 -protobuf==5.29.3 +grpcio==1.76.0 +grpcio-tools==1.76.0 +protobuf==6.33.1 diff --git a/src/carnot/exec/BUILD.bazel b/src/carnot/exec/BUILD.bazel index 228b352501c..3f8732f705a 100644 --- a/src/carnot/exec/BUILD.bazel +++ b/src/carnot/exec/BUILD.bazel @@ -259,7 +259,7 @@ pl_cc_test( ":cc_library", ":test_utils", "//src/carnot/planpb:plan_testutils", - "@com_github_grpc_grpc//test/core/util:grpc_test_util_base", + "@com_github_grpc_grpc//test/core/test_util:grpc_test_util_base", ], ) diff --git a/src/carnot/exec/grpc_router.h b/src/carnot/exec/grpc_router.h index 37303a4676b..ba40c66dd97 100644 --- a/src/carnot/exec/grpc_router.h +++ b/src/carnot/exec/grpc_router.h @@ -110,14 +110,14 @@ class GRPCRouter final : public carnotpb::ResultSinkService::Service { */ struct SourceNodeTracker { SourceNodeTracker() = default; - GRPCSourceNode* source_node GUARDED_BY(node_lock) = nullptr; + GRPCSourceNode* source_node ABSL_GUARDED_BY(node_lock) = nullptr; // connection_initiated_by_sink and connection_closed_by_sink are true when the // grpc sink (aka the client) initiates the query result stream or closes a query result stream, // respectively. - bool connection_initiated_by_sink GUARDED_BY(node_lock) = false; - bool connection_closed_by_sink GUARDED_BY(node_lock) = false; + bool connection_initiated_by_sink ABSL_GUARDED_BY(node_lock) = false; + bool connection_closed_by_sink ABSL_GUARDED_BY(node_lock) = false; std::vector> response_backlog - GUARDED_BY(node_lock); + ABSL_GUARDED_BY(node_lock); absl::base_internal::SpinLock node_lock; }; @@ -126,17 +126,18 @@ class GRPCRouter final : public carnotpb::ResultSinkService::Service { */ struct QueryTracker { QueryTracker() : create_time(std::chrono::steady_clock::now()) {} - absl::node_hash_map source_node_trackers GUARDED_BY(query_lock); - const std::chrono::steady_clock::time_point create_time GUARDED_BY(query_lock); - std::function restart_execution_func_ GUARDED_BY(query_lock); + absl::node_hash_map source_node_trackers + ABSL_GUARDED_BY(query_lock); + const std::chrono::steady_clock::time_point create_time ABSL_GUARDED_BY(query_lock); + std::function restart_execution_func_ ABSL_GUARDED_BY(query_lock); // The set of agents we've seen for the query. - absl::flat_hash_set seen_agents GUARDED_BY(query_lock); - absl::flat_hash_set<::grpc::ServerContext*> active_agent_contexts GUARDED_BY(query_lock); + absl::flat_hash_set seen_agents ABSL_GUARDED_BY(query_lock); + absl::flat_hash_set<::grpc::ServerContext*> active_agent_contexts ABSL_GUARDED_BY(query_lock); // The execution stats for agents that are clients to this service. - std::vector agent_exec_stats GUARDED_BY(query_lock); + std::vector agent_exec_stats ABSL_GUARDED_BY(query_lock); // Errors that occur during execution from parent_agents. - std::vector upstream_exec_errors GUARDED_BY(query_lock); + std::vector upstream_exec_errors ABSL_GUARDED_BY(query_lock); absl::base_internal::SpinLock query_lock; void ResetRestartExecutionFunc() ABSL_EXCLUSIVE_LOCKS_REQUIRED(query_lock) { @@ -178,7 +179,7 @@ class GRPCRouter final : public carnotpb::ResultSinkService::Service { SourceNodeTracker* GetSourceNodeTracker(QueryTracker* query_tracker, int64_t source_id); absl::node_hash_map> id_to_query_tracker_map_ - GUARDED_BY(id_to_query_tracker_map_lock_); + ABSL_GUARDED_BY(id_to_query_tracker_map_lock_); mutable absl::base_internal::SpinLock id_to_query_tracker_map_lock_; }; diff --git a/src/carnot/exec/ml/BUILD.bazel b/src/carnot/exec/ml/BUILD.bazel index b2fce524782..9582b2c49eb 100644 --- a/src/carnot/exec/ml/BUILD.bazel +++ b/src/carnot/exec/ml/BUILD.bazel @@ -40,7 +40,7 @@ pl_cc_library( "@com_github_tencent_rapidjson//:rapidjson", "@org_tensorflow//tensorflow/lite:framework", "@org_tensorflow//tensorflow/lite/kernels:builtin_ops", - "@org_tensorflow//third_party/eigen3", + "@eigen_archive//:eigen3", ], ) @@ -51,7 +51,7 @@ pl_cc_test_library( "eigen_test_utils.h", ], deps = [ - "@org_tensorflow//third_party/eigen3", + "@eigen_archive//:eigen3", ], ) diff --git a/src/carnot/exec/ml/coreset.h b/src/carnot/exec/ml/coreset.h index 552c233f0b8..08329f4f3f4 100644 --- a/src/carnot/exec/ml/coreset.h +++ b/src/carnot/exec/ml/coreset.h @@ -28,7 +28,7 @@ #include #include -#include "third_party/eigen3/Eigen/Core" +#include "Eigen/Core" #include "src/common/base/base.h" diff --git a/src/carnot/exec/ml/eigen_test_utils.h b/src/carnot/exec/ml/eigen_test_utils.h index 13fb5c3f4c6..eabec471bd2 100644 --- a/src/carnot/exec/ml/eigen_test_utils.h +++ b/src/carnot/exec/ml/eigen_test_utils.h @@ -23,7 +23,7 @@ #include -#include "third_party/eigen3/Eigen/Core" +#include "Eigen/Core" MATCHER_P2(IsApproxMatrix, matrix, tol, "") { return matrix.isApprox(arg, static_cast(tol)); diff --git a/src/carnot/exec/ml/sampling.cc b/src/carnot/exec/ml/sampling.cc index 196ae6c56f0..987a540f611 100644 --- a/src/carnot/exec/ml/sampling.cc +++ b/src/carnot/exec/ml/sampling.cc @@ -22,7 +22,7 @@ #include #include "src/common/base/base.h" -#include "third_party/eigen3/Eigen/Core" +#include "Eigen/Core" #include "src/carnot/exec/ml/sampling.h" diff --git a/src/carnot/exec/ml/sampling.h b/src/carnot/exec/ml/sampling.h index 6d58dcc8c90..76990f6bd9d 100644 --- a/src/carnot/exec/ml/sampling.h +++ b/src/carnot/exec/ml/sampling.h @@ -19,7 +19,7 @@ #pragma once #include "src/common/base/base.h" -#include "third_party/eigen3/Eigen/Core" +#include "Eigen/Core" namespace px { namespace carnot { diff --git a/src/carnot/udf/borrow_pool.h b/src/carnot/udf/borrow_pool.h index ef96a0b1a2d..92e3b8e82a0 100644 --- a/src/carnot/udf/borrow_pool.h +++ b/src/carnot/udf/borrow_pool.h @@ -66,7 +66,7 @@ class BorrowPool { } private: - std::vector pool_ GUARDED_BY(pool_lock_); + std::vector pool_ ABSL_GUARDED_BY(pool_lock_); absl::base_internal::SpinLock pool_lock_; }; diff --git a/src/experimental/standalone_pem/sink_server.h b/src/experimental/standalone_pem/sink_server.h index 4f38e69e9b7..eb822009fe8 100644 --- a/src/experimental/standalone_pem/sink_server.h +++ b/src/experimental/standalone_pem/sink_server.h @@ -180,7 +180,7 @@ class StandaloneResultSinkServer final : public carnotpb::ResultSinkService::Ser } absl::flat_hash_map*> - consumer_map_ GUARDED_BY(id_to_query_consumer_map_lock_); + consumer_map_ ABSL_GUARDED_BY(id_to_query_consumer_map_lock_); mutable absl::base_internal::SpinLock id_to_query_consumer_map_lock_; }; diff --git a/src/stirling/protocol_inference/requirements.bazel.txt b/src/stirling/protocol_inference/requirements.bazel.txt index 2b9e6f96ae1..29f04460f98 100644 --- a/src/stirling/protocol_inference/requirements.bazel.txt +++ b/src/stirling/protocol_inference/requirements.bazel.txt @@ -1,106 +1,156 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --allow-unsafe --generate-hashes --output-file=src/stirling/protocol_inference/requirements.bazel.txt src/stirling/protocol_inference/requirements.txt -# +# This file was autogenerated by uv via the following command: +# uv pip compile --generate-hashes -o src/stirling/protocol_inference/requirements.bazel.txt src/stirling/protocol_inference/requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu - -numpy==1.24.2 \ - --hash=sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22 \ - --hash=sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f \ - --hash=sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9 \ - --hash=sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96 \ - --hash=sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0 \ - --hash=sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a \ - --hash=sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281 \ - --hash=sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04 \ - --hash=sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468 \ - --hash=sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253 \ - --hash=sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756 \ - --hash=sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a \ - --hash=sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb \ - --hash=sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d \ - --hash=sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0 \ - --hash=sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910 \ - --hash=sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978 \ - --hash=sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5 \ - --hash=sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f \ - --hash=sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a \ - --hash=sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5 \ - --hash=sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2 \ - --hash=sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d \ - --hash=sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95 \ - --hash=sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5 \ - --hash=sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d \ - --hash=sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780 \ - --hash=sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa +filelock==3.19.1 \ + --hash=sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d + # via torch +fsspec==2025.9.0 \ + --hash=sha256:530dc2a2af60a414a832059574df4a6e10cce927f6f4a78209390fe38955cfb7 + # via torch +jinja2==3.1.6 \ + --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 + # via torch +markupsafe==2.1.5 \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 + # via jinja2 +mpmath==1.3.0 \ + --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c + # via sympy +networkx==3.5 \ + --hash=sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec + # via torch +numpy==2.3.3 \ + --hash=sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20 # via pandas -pandas==1.5.3 \ - --hash=sha256:14e45300521902689a81f3f41386dc86f19b8ba8dd5ac5a3c7010ef8d2932813 \ - --hash=sha256:26d9c71772c7afb9d5046e6e9cf42d83dd147b5cf5bcb9d97252077118543792 \ - --hash=sha256:3749077d86e3a2f0ed51367f30bf5b82e131cc0f14260c4d3e499186fccc4406 \ - --hash=sha256:41179ce559943d83a9b4bbacb736b04c928b095b5f25dd2b7389eda08f46f373 \ - --hash=sha256:478ff646ca42b20376e4ed3fa2e8d7341e8a63105586efe54fa2508ee087f328 \ - --hash=sha256:50869a35cbb0f2e0cd5ec04b191e7b12ed688874bd05dd777c19b28cbea90996 \ - --hash=sha256:565fa34a5434d38e9d250af3c12ff931abaf88050551d9fbcdfafca50d62babf \ - --hash=sha256:5f2b952406a1588ad4cad5b3f55f520e82e902388a6d5a4a91baa8d38d23c7f6 \ - --hash=sha256:5fbcb19d6fceb9e946b3e23258757c7b225ba450990d9ed63ccceeb8cae609f7 \ - --hash=sha256:6973549c01ca91ec96199e940495219c887ea815b2083722821f1d7abfa2b4dc \ - --hash=sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1 \ - --hash=sha256:7a0a56cef15fd1586726dace5616db75ebcfec9179a3a55e78f72c5639fa2a23 \ - --hash=sha256:7cec0bee9f294e5de5bbfc14d0573f65526071029d036b753ee6507d2a21480a \ - --hash=sha256:87bd9c03da1ac870a6d2c8902a0e1fd4267ca00f13bc494c9e5a9020920e1d51 \ - --hash=sha256:972d8a45395f2a2d26733eb8d0f629b2f90bebe8e8eddbb8829b180c09639572 \ - --hash=sha256:9842b6f4b8479e41968eced654487258ed81df7d1c9b7b870ceea24ed9459b31 \ - --hash=sha256:9f69c4029613de47816b1bb30ff5ac778686688751a5e9c99ad8c7031f6508e5 \ - --hash=sha256:a50d9a4336a9621cab7b8eb3fb11adb82de58f9b91d84c2cd526576b881a0c5a \ - --hash=sha256:bc4c368f42b551bf72fac35c5128963a171b40dce866fb066540eeaf46faa003 \ - --hash=sha256:c39a8da13cede5adcd3be1182883aea1c925476f4e84b2807a46e2775306305d \ - --hash=sha256:c3ac844a0fe00bfaeb2c9b51ab1424e5c8744f89860b138434a363b1f620f354 \ - --hash=sha256:c4c00e0b0597c8e4f59e8d461f797e5d70b4d025880516a8261b2817c47759ee \ - --hash=sha256:c74a62747864ed568f5a82a49a23a8d7fe171d0c69038b38cedf0976831296fa \ - --hash=sha256:dd05f7783b3274aa206a1af06f0ceed3f9b412cf665b7247eacd83be41cf7bf0 \ - --hash=sha256:dfd681c5dc216037e0b0a2c821f5ed99ba9f03ebcf119c7dac0e9a7b960b9ec9 \ - --hash=sha256:e474390e60ed609cec869b0da796ad94f420bb057d86784191eefc62b65819ae \ - --hash=sha256:f76d097d12c82a535fda9dfe5e8dd4127952b45fea9b0276cb30cca5ea313fbc +pandas==2.3.3 \ + --hash=sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7 \ + --hash=sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593 \ + --hash=sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5 \ + --hash=sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791 \ + --hash=sha256:23ebd657a4d38268c7dfbdf089fbc31ea709d82e4923c5ffd4fbd5747133ce73 \ + --hash=sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec \ + --hash=sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4 \ + --hash=sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5 \ + --hash=sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac \ + --hash=sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084 \ + --hash=sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c \ + --hash=sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87 \ + --hash=sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35 \ + --hash=sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250 \ + --hash=sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c \ + --hash=sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826 \ + --hash=sha256:5554c929ccc317d41a5e3d1234f3be588248e61f08a74dd17c9eabb535777dc9 \ + --hash=sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713 \ + --hash=sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1 \ + --hash=sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523 \ + --hash=sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3 \ + --hash=sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78 \ + --hash=sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53 \ + --hash=sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c \ + --hash=sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21 \ + --hash=sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5 \ + --hash=sha256:854d00d556406bffe66a4c0802f334c9ad5a96b4f1f868adf036a21b11ef13ff \ + --hash=sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45 \ + --hash=sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110 \ + --hash=sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493 \ + --hash=sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b \ + --hash=sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450 \ + --hash=sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86 \ + --hash=sha256:a637c5cdfa04b6d6e2ecedcb81fc52ffb0fd78ce2ebccc9ea964df9f658de8c8 \ + --hash=sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98 \ + --hash=sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89 \ + --hash=sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66 \ + --hash=sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b \ + --hash=sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8 \ + --hash=sha256:bf1f8a81d04ca90e32a0aceb819d34dbd378a98bf923b6398b9a3ec0bf44de29 \ + --hash=sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6 \ + --hash=sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc \ + --hash=sha256:c503ba5216814e295f40711470446bc3fd00f0faea8a086cbc688808e26f92a2 \ + --hash=sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788 \ + --hash=sha256:d3e28b3e83862ccf4d85ff19cf8c20b2ae7e503881711ff2d534dc8f761131aa \ + --hash=sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151 \ + --hash=sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838 \ + --hash=sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b \ + --hash=sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a \ + --hash=sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d \ + --hash=sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908 \ + --hash=sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0 \ + --hash=sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b \ + --hash=sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c \ + --hash=sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee # via -r src/stirling/protocol_inference/requirements.txt -prettytable==3.6.0 \ - --hash=sha256:2e0026af955b4ea67b22122f310b90eae890738c08cb0458693a49b6221530ac \ - --hash=sha256:3b767129491767a3a5108e6f305cbaa650f8020a7db5dfe994a2df7ef7bad0fe +prettytable==3.17.0 \ + --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \ + --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287 # via -r src/stirling/protocol_inference/requirements.txt -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 +python-dateutil==2.9.0.post0 \ + --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ + --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 # via pandas -pytz==2022.7.1 \ - --hash=sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0 \ - --hash=sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a +pytz==2025.2 \ + --hash=sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3 \ + --hash=sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00 # via pandas -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 +setuptools==70.2.0 \ + --hash=sha256:b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05 + # via torch +six==1.17.0 \ + --hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \ + --hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81 # via python-dateutil -termcolor==2.2.0 \ - --hash=sha256:91ddd848e7251200eac969846cbae2dacd7d71c2871e92733289e7e3666f48e7 \ - --hash=sha256:dfc8ac3f350788f23b2947b3e6cfa5a53b630b612e6cd8965a015a776020b99a +sympy==1.14.0 \ + --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 + # via torch +termcolor==3.2.0 \ + --hash=sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58 \ + --hash=sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6 # via -r src/stirling/protocol_inference/requirements.txt -torch==1.13.1+cpu \ - --hash=sha256:02e387834a3489396f1871f83f7a795610d09ef3da01aa431493b08eac5c6666 \ - --hash=sha256:11692523b87c45b79ddfb5148b12a713d85235d399915490d94e079521f7e014 \ - --hash=sha256:207ab3700cd9c4349f4fd1892597eb3d385eb78221c0f2974ec54b8ea903aa00 \ - --hash=sha256:2dd7e5f584c7ea5d8f038fd1fa40465785f797df0c7d06c432f5e72d9817115a \ - --hash=sha256:43394e66487543c112044194e9bdecc6f48c869d692a9d0c755b95d642b29535 \ - --hash=sha256:4a8b84834eb12b3428c24e9f264c9bd6a2cf449fffc191374e7dbb2b950fc6d7 \ - --hash=sha256:71636a5c21927236f4974d2355fb3f66a0b707c28219b0135ff65ed0f0e61287 \ - --hash=sha256:988ee77c0975b4c3f570dfc62277b1e300bbbe7cc000ce2720e2e8c730fb9ce5 \ - --hash=sha256:dc185f2fdbb1f84855929d3ba7b36c74f218789d26a0e0268cb0586d466c8c24 +torch==2.9.1+cpu \ + --hash=sha256:7417d8c565f219d3455654cb431c6d892a3eb40246055e14d645422de13b9ea1 # via -r src/stirling/protocol_inference/requirements.txt -typing-extensions==4.4.0 \ - --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ - --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e +typing-extensions==4.15.0 \ + --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via torch -wcwidth==0.2.6 \ - --hash=sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e \ - --hash=sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0 +tzdata==2025.2 \ + --hash=sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8 \ + --hash=sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9 + # via pandas +wcwidth==0.2.14 \ + --hash=sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605 \ + --hash=sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1 # via prettytable diff --git a/src/stirling/protocol_inference/requirements.txt b/src/stirling/protocol_inference/requirements.txt index 1672e8408c1..e4880eaa946 100644 --- a/src/stirling/protocol_inference/requirements.txt +++ b/src/stirling/protocol_inference/requirements.txt @@ -1,5 +1,5 @@ --extra-index-url https://download.pytorch.org/whl/cpu -pandas==1.5.3 -prettytable==3.6.0 -termcolor==2.2.0 -torch==1.13.1+cpu +pandas>=2.2.0 +prettytable>=3.9.0 +termcolor>=2.4.0 +torch==2.9.1+cpu diff --git a/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.bazel.txt b/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.bazel.txt index 250493ed54e..34596df7499 100644 --- a/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.bazel.txt +++ b/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.bazel.txt @@ -1,156 +1,267 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --generate-hashes --output-file=requirements.bazel.txt requirements.txt -# +# This file was autogenerated by uv via the following command: +# uv pip compile --generate-hashes -o src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.bazel.txt src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt appdirs==1.4.4 \ --hash=sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41 \ --hash=sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128 # via pyshark -dill==0.3.6 \ - --hash=sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0 \ - --hash=sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373 - # via -r requirements.txt -fire==0.4.0 \ - --hash=sha256:c5e2b8763699d1142393a46d0e3e790c5eb2f0706082df8f647878842c216a62 - # via -r requirements.txt -jinja2==3.1.3 \ - --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ - --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 - # via -r requirements.txt -lxml==4.9.1 \ - --hash=sha256:04da965dfebb5dac2619cb90fcf93efdb35b3c6994fea58a157a834f2f94b318 \ - --hash=sha256:0538747a9d7827ce3e16a8fdd201a99e661c7dee3c96c885d8ecba3c35d1032c \ - --hash=sha256:0645e934e940107e2fdbe7c5b6fb8ec6232444260752598bc4d09511bd056c0b \ - --hash=sha256:079b68f197c796e42aa80b1f739f058dcee796dc725cc9a1be0cdb08fc45b000 \ - --hash=sha256:0f3f0059891d3254c7b5fb935330d6db38d6519ecd238ca4fce93c234b4a0f73 \ - --hash=sha256:10d2017f9150248563bb579cd0d07c61c58da85c922b780060dcc9a3aa9f432d \ - --hash=sha256:1355755b62c28950f9ce123c7a41460ed9743c699905cbe664a5bcc5c9c7c7fb \ - --hash=sha256:13c90064b224e10c14dcdf8086688d3f0e612db53766e7478d7754703295c7c8 \ - --hash=sha256:1423631e3d51008871299525b541413c9b6c6423593e89f9c4cfbe8460afc0a2 \ - --hash=sha256:1436cf0063bba7888e43f1ba8d58824f085410ea2025befe81150aceb123e345 \ - --hash=sha256:1a7c59c6ffd6ef5db362b798f350e24ab2cfa5700d53ac6681918f314a4d3b94 \ - --hash=sha256:1e1cf47774373777936c5aabad489fef7b1c087dcd1f426b621fda9dcc12994e \ - --hash=sha256:206a51077773c6c5d2ce1991327cda719063a47adc02bd703c56a662cdb6c58b \ - --hash=sha256:21fb3d24ab430fc538a96e9fbb9b150029914805d551deeac7d7822f64631dfc \ - --hash=sha256:27e590352c76156f50f538dbcebd1925317a0f70540f7dc8c97d2931c595783a \ - --hash=sha256:287605bede6bd36e930577c5925fcea17cb30453d96a7b4c63c14a257118dbb9 \ - --hash=sha256:2aaf6a0a6465d39b5ca69688fce82d20088c1838534982996ec46633dc7ad6cc \ - --hash=sha256:32a73c53783becdb7eaf75a2a1525ea8e49379fb7248c3eeefb9412123536387 \ - --hash=sha256:41fb58868b816c202e8881fd0f179a4644ce6e7cbbb248ef0283a34b73ec73bb \ - --hash=sha256:4780677767dd52b99f0af1f123bc2c22873d30b474aa0e2fc3fe5e02217687c7 \ - --hash=sha256:4878e667ebabe9b65e785ac8da4d48886fe81193a84bbe49f12acff8f7a383a4 \ - --hash=sha256:487c8e61d7acc50b8be82bda8c8d21d20e133c3cbf41bd8ad7eb1aaeb3f07c97 \ - --hash=sha256:4beea0f31491bc086991b97517b9683e5cfb369205dac0148ef685ac12a20a67 \ - --hash=sha256:4cfbe42c686f33944e12f45a27d25a492cc0e43e1dc1da5d6a87cbcaf2e95627 \ - --hash=sha256:4d5bae0a37af799207140652a700f21a85946f107a199bcb06720b13a4f1f0b7 \ - --hash=sha256:4e285b5f2bf321fc0857b491b5028c5f276ec0c873b985d58d7748ece1d770dd \ - --hash=sha256:57e4d637258703d14171b54203fd6822fda218c6c2658a7d30816b10995f29f3 \ - --hash=sha256:5974895115737a74a00b321e339b9c3f45c20275d226398ae79ac008d908bff7 \ - --hash=sha256:5ef87fca280fb15342726bd5f980f6faf8b84a5287fcc2d4962ea8af88b35130 \ - --hash=sha256:603a464c2e67d8a546ddaa206d98e3246e5db05594b97db844c2f0a1af37cf5b \ - --hash=sha256:6653071f4f9bac46fbc30f3c7838b0e9063ee335908c5d61fb7a4a86c8fd2036 \ - --hash=sha256:6ca2264f341dd81e41f3fffecec6e446aa2121e0b8d026fb5130e02de1402785 \ - --hash=sha256:6d279033bf614953c3fc4a0aa9ac33a21e8044ca72d4fa8b9273fe75359d5cca \ - --hash=sha256:6d949f53ad4fc7cf02c44d6678e7ff05ec5f5552b235b9e136bd52e9bf730b91 \ - --hash=sha256:6daa662aba22ef3258934105be2dd9afa5bb45748f4f702a3b39a5bf53a1f4dc \ - --hash=sha256:6eafc048ea3f1b3c136c71a86db393be36b5b3d9c87b1c25204e7d397cee9536 \ - --hash=sha256:830c88747dce8a3e7525defa68afd742b4580df6aa2fdd6f0855481e3994d391 \ - --hash=sha256:86e92728ef3fc842c50a5cb1d5ba2bc66db7da08a7af53fb3da79e202d1b2cd3 \ - --hash=sha256:8caf4d16b31961e964c62194ea3e26a0e9561cdf72eecb1781458b67ec83423d \ - --hash=sha256:8d1a92d8e90b286d491e5626af53afef2ba04da33e82e30744795c71880eaa21 \ - --hash=sha256:8f0a4d179c9a941eb80c3a63cdb495e539e064f8054230844dcf2fcb812b71d3 \ - --hash=sha256:9232b09f5efee6a495a99ae6824881940d6447debe272ea400c02e3b68aad85d \ - --hash=sha256:927a9dd016d6033bc12e0bf5dee1dde140235fc8d0d51099353c76081c03dc29 \ - --hash=sha256:93e414e3206779ef41e5ff2448067213febf260ba747fc65389a3ddaa3fb8715 \ - --hash=sha256:98cafc618614d72b02185ac583c6f7796202062c41d2eeecdf07820bad3295ed \ - --hash=sha256:9c3a88d20e4fe4a2a4a84bf439a5ac9c9aba400b85244c63a1ab7088f85d9d25 \ - --hash=sha256:9f36de4cd0c262dd9927886cc2305aa3f2210db437aa4fed3fb4940b8bf4592c \ - --hash=sha256:a60f90bba4c37962cbf210f0188ecca87daafdf60271f4c6948606e4dabf8785 \ - --hash=sha256:a614e4afed58c14254e67862456d212c4dcceebab2eaa44d627c2ca04bf86837 \ - --hash=sha256:ae06c1e4bc60ee076292e582a7512f304abdf6c70db59b56745cca1684f875a4 \ - --hash=sha256:b122a188cd292c4d2fcd78d04f863b789ef43aa129b233d7c9004de08693728b \ - --hash=sha256:b570da8cd0012f4af9fa76a5635cd31f707473e65a5a335b186069d5c7121ff2 \ - --hash=sha256:bcaa1c495ce623966d9fc8a187da80082334236a2a1c7e141763ffaf7a405067 \ - --hash=sha256:bd34f6d1810d9354dc7e35158aa6cc33456be7706df4420819af6ed966e85448 \ - --hash=sha256:be9eb06489bc975c38706902cbc6888f39e946b81383abc2838d186f0e8b6a9d \ - --hash=sha256:c4b2e0559b68455c085fb0f6178e9752c4be3bba104d6e881eb5573b399d1eb2 \ - --hash=sha256:c62e8dd9754b7debda0c5ba59d34509c4688f853588d75b53c3791983faa96fc \ - --hash=sha256:c852b1530083a620cb0de5f3cd6826f19862bafeaf77586f1aef326e49d95f0c \ - --hash=sha256:d9fc0bf3ff86c17348dfc5d322f627d78273eba545db865c3cd14b3f19e57fa5 \ - --hash=sha256:dad7b164905d3e534883281c050180afcf1e230c3d4a54e8038aa5cfcf312b84 \ - --hash=sha256:e5f66bdf0976ec667fc4594d2812a00b07ed14d1b44259d19a41ae3fff99f2b8 \ - --hash=sha256:e8f0c9d65da595cfe91713bc1222af9ecabd37971762cb830dea2fc3b3bb2acf \ - --hash=sha256:edffbe3c510d8f4bf8640e02ca019e48a9b72357318383ca60e3330c23aaffc7 \ - --hash=sha256:eea5d6443b093e1545ad0210e6cf27f920482bfcf5c77cdc8596aec73523bb7e \ - --hash=sha256:ef72013e20dd5ba86a8ae1aed7f56f31d3374189aa8b433e7b12ad182c0d2dfb \ - --hash=sha256:f05251bbc2145349b8d0b77c0d4e5f3b228418807b1ee27cefb11f69ed3d233b \ - --hash=sha256:f1be258c4d3dc609e654a1dc59d37b17d7fef05df912c01fc2e15eb43a9735f3 \ - --hash=sha256:f9ced82717c7ec65a67667bb05865ffe38af0e835cdd78728f1209c8fffe0cad \ - --hash=sha256:fe17d10b97fdf58155f858606bddb4e037b805a60ae023c009f760d8361a4eb8 \ - --hash=sha256:fe749b052bb7233fe5d072fcb549221a8cb1a16725c47c37e42b0b9cb3ff2c3f - # via pyshark -markupsafe==2.1.1 \ - --hash=sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003 \ - --hash=sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88 \ - --hash=sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5 \ - --hash=sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7 \ - --hash=sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a \ - --hash=sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603 \ - --hash=sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1 \ - --hash=sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135 \ - --hash=sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247 \ - --hash=sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6 \ - --hash=sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601 \ - --hash=sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77 \ - --hash=sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02 \ - --hash=sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e \ - --hash=sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63 \ - --hash=sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f \ - --hash=sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980 \ - --hash=sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b \ - --hash=sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812 \ - --hash=sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff \ - --hash=sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96 \ - --hash=sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1 \ - --hash=sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925 \ - --hash=sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a \ - --hash=sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6 \ - --hash=sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e \ - --hash=sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f \ - --hash=sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4 \ - --hash=sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f \ - --hash=sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3 \ - --hash=sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c \ - --hash=sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a \ - --hash=sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417 \ - --hash=sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a \ - --hash=sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a \ - --hash=sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37 \ - --hash=sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452 \ - --hash=sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933 \ - --hash=sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a \ - --hash=sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7 +dill==0.4.0 \ + --hash=sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0 \ + --hash=sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049 + # via -r src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt +fire==0.7.1 \ + --hash=sha256:3b208f05c736de98fb343310d090dcc4d8c78b2a89ea4f32b837c586270a9cbf \ + --hash=sha256:e43fd8a5033a9001e7e2973bab96070694b9f12f2e0ecf96d4683971b5ab1882 + # via -r src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt +jinja2==3.1.6 \ + --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ + --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 + # via -r src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt +lxml==6.0.2 \ + --hash=sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba \ + --hash=sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8 \ + --hash=sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0 \ + --hash=sha256:08b9d5e803c2e4725ae9e8559ee880e5328ed61aa0935244e0515d7d9dbec0aa \ + --hash=sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f \ + --hash=sha256:0aa7070978f893954008ab73bb9e3c24a7c56c054e00566a21b553dc18105fca \ + --hash=sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf \ + --hash=sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607 \ + --hash=sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8 \ + --hash=sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452 \ + --hash=sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700 \ + --hash=sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d \ + --hash=sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b \ + --hash=sha256:1ea99340b3c729beea786f78c38f60f4795622f36e305d9c9be402201efdc3b7 \ + --hash=sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d \ + --hash=sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6 \ + --hash=sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a \ + --hash=sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d \ + --hash=sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca \ + --hash=sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb \ + --hash=sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed \ + --hash=sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d \ + --hash=sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e \ + --hash=sha256:2c8458c2cdd29589a8367c09c8f030f1d202be673f0ca224ec18590b3b9fb694 \ + --hash=sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd \ + --hash=sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659 \ + --hash=sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c \ + --hash=sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314 \ + --hash=sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5 \ + --hash=sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849 \ + --hash=sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938 \ + --hash=sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a \ + --hash=sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34 \ + --hash=sha256:3fee0851639d06276e6b387f1c190eb9d7f06f7f53514e966b26bae46481ec90 \ + --hash=sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6 \ + --hash=sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba \ + --hash=sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285 \ + --hash=sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553 \ + --hash=sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d \ + --hash=sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c \ + --hash=sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5 \ + --hash=sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601 \ + --hash=sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba \ + --hash=sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37 \ + --hash=sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f \ + --hash=sha256:5921d924aa5468c939d95c9814fa9f9b5935a6ff4e679e26aaf2951f74043512 \ + --hash=sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a \ + --hash=sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438 \ + --hash=sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153 \ + --hash=sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9 \ + --hash=sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d \ + --hash=sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6 \ + --hash=sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f \ + --hash=sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534 \ + --hash=sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46 \ + --hash=sha256:66328dabea70b5ba7e53d94aa774b733cf66686535f3bc9250a7aab53a91caaf \ + --hash=sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f \ + --hash=sha256:6cdaefac66e8b8f30e37a9b4768a391e1f8a16a7526d5bc77a7928408ef68e93 \ + --hash=sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8 \ + --hash=sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f \ + --hash=sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1 \ + --hash=sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322 \ + --hash=sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f \ + --hash=sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9 \ + --hash=sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f \ + --hash=sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7 \ + --hash=sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f \ + --hash=sha256:817ef43a0c0b4a77bd166dc9a09a555394105ff3374777ad41f453526e37f9cb \ + --hash=sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916 \ + --hash=sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec \ + --hash=sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9 \ + --hash=sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d \ + --hash=sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679 \ + --hash=sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0 \ + --hash=sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192 \ + --hash=sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917 \ + --hash=sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c \ + --hash=sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d \ + --hash=sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338 \ + --hash=sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d \ + --hash=sha256:995e783eb0374c120f528f807443ad5a83a656a8624c467ea73781fc5f8a8304 \ + --hash=sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77 \ + --hash=sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba \ + --hash=sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456 \ + --hash=sha256:a656ca105115f6b766bba324f23a67914d9c728dafec57638e2b92a9dcd76c62 \ + --hash=sha256:a6b5b39cc7e2998f968f05309e666103b53e2edd01df8dc51b90d734c0825444 \ + --hash=sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a \ + --hash=sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f \ + --hash=sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c \ + --hash=sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d \ + --hash=sha256:ac02dc29fd397608f8eb15ac1610ae2f2f0154b03f631e6d724d9e2ad4ee2c84 \ + --hash=sha256:af85529ae8d2a453feee4c780d9406a5e3b17cee0dd75c18bd31adcd584debc3 \ + --hash=sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe \ + --hash=sha256:b2142a376b40b6736dfc214fd2902409e9e3857eff554fed2d3c60f097e62a62 \ + --hash=sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8 \ + --hash=sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178 \ + --hash=sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0 \ + --hash=sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7 \ + --hash=sha256:b42f4d86b451c2f9d06ffb4f8bbc776e04df3ba070b9fe2657804b1b40277c48 \ + --hash=sha256:b738f7e648735714bbb82bdfd030203360cfeab7f6e8a34772b3c8c8b820568c \ + --hash=sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9 \ + --hash=sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7 \ + --hash=sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048 \ + --hash=sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c \ + --hash=sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4 \ + --hash=sha256:bc532422ff26b304cfb62b328826bd995c96154ffd2bac4544f37dbb95ecaa8f \ + --hash=sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b \ + --hash=sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0 \ + --hash=sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564 \ + --hash=sha256:c54d83a2188a10ebdba573f16bd97135d06c9ef60c3dc495315c7a28c80a263f \ + --hash=sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee \ + --hash=sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5 \ + --hash=sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62 \ + --hash=sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272 \ + --hash=sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9 \ + --hash=sha256:d4aec24d6b72ee457ec665344a29acb2d35937d5192faebe429ea02633151aad \ + --hash=sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321 \ + --hash=sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a \ + --hash=sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312 \ + --hash=sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0 \ + --hash=sha256:daf42de090d59db025af61ce6bdb2521f0f102ea0e6ea310f13c17610a97da4c \ + --hash=sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37 \ + --hash=sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964 \ + --hash=sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484 \ + --hash=sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e \ + --hash=sha256:e237b807d68a61fc3b1e845407e27e5eb8ef69bc93fe8505337c1acb4ee300b6 \ + --hash=sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078 \ + --hash=sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6 \ + --hash=sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388 \ + --hash=sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924 \ + --hash=sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2 \ + --hash=sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df \ + --hash=sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd \ + --hash=sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1 \ + --hash=sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c \ + --hash=sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31 \ + --hash=sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed \ + --hash=sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2 \ + --hash=sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092 \ + --hash=sha256:fe659f6b5d10fb5a17f00a50eb903eb277a71ee35df4615db573c069bcf967ac + # via + # -r src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt + # pyshark +markupsafe==3.0.3 \ + --hash=sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f \ + --hash=sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a \ + --hash=sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf \ + --hash=sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19 \ + --hash=sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf \ + --hash=sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c \ + --hash=sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175 \ + --hash=sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219 \ + --hash=sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb \ + --hash=sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6 \ + --hash=sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab \ + --hash=sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26 \ + --hash=sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1 \ + --hash=sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce \ + --hash=sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218 \ + --hash=sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634 \ + --hash=sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695 \ + --hash=sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad \ + --hash=sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73 \ + --hash=sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c \ + --hash=sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe \ + --hash=sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa \ + --hash=sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559 \ + --hash=sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa \ + --hash=sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37 \ + --hash=sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758 \ + --hash=sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f \ + --hash=sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8 \ + --hash=sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d \ + --hash=sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c \ + --hash=sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97 \ + --hash=sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a \ + --hash=sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19 \ + --hash=sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9 \ + --hash=sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9 \ + --hash=sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc \ + --hash=sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2 \ + --hash=sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4 \ + --hash=sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354 \ + --hash=sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50 \ + --hash=sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698 \ + --hash=sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9 \ + --hash=sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b \ + --hash=sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc \ + --hash=sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115 \ + --hash=sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e \ + --hash=sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485 \ + --hash=sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f \ + --hash=sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12 \ + --hash=sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025 \ + --hash=sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009 \ + --hash=sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d \ + --hash=sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b \ + --hash=sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a \ + --hash=sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5 \ + --hash=sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f \ + --hash=sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d \ + --hash=sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1 \ + --hash=sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287 \ + --hash=sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6 \ + --hash=sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f \ + --hash=sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581 \ + --hash=sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed \ + --hash=sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b \ + --hash=sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c \ + --hash=sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026 \ + --hash=sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8 \ + --hash=sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676 \ + --hash=sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6 \ + --hash=sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e \ + --hash=sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d \ + --hash=sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d \ + --hash=sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01 \ + --hash=sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7 \ + --hash=sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419 \ + --hash=sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795 \ + --hash=sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1 \ + --hash=sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5 \ + --hash=sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d \ + --hash=sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42 \ + --hash=sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe \ + --hash=sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda \ + --hash=sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e \ + --hash=sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737 \ + --hash=sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523 \ + --hash=sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591 \ + --hash=sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc \ + --hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \ + --hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50 # via jinja2 -packaging==21.3 \ - --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ - --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 +packaging==25.0 \ + --hash=sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484 \ + --hash=sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f # via pyshark -pyparsing==3.0.9 \ - --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ - --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via packaging pyshark==0.6 \ --hash=sha256:98e8a1ebdcbfbb6e8defd0c96736ea51bf8234339f980b15dd3545f87f5146d4 \ --hash=sha256:a424d83e0ca6224a96bbe30cd3f89d5491654d783faaaf90adaf45867a0bcb17 - # via -r requirements.txt -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via fire -termcolor==1.1.0 \ - --hash=sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b + # via -r src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt +termcolor==3.2.0 \ + --hash=sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58 \ + --hash=sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6 # via # fire # pyshark diff --git a/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt b/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt index c3fb4270321..8b6d15562db 100644 --- a/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt +++ b/src/stirling/source_connectors/socket_tracer/protocols/amqp/amqp_code_generator/requirements.txt @@ -1,4 +1,5 @@ -fire==0.4.0 -Jinja2==3.1.3 -pyshark==0.6 -dill==0.3.6 +fire>=0.5.0 +Jinja2>=3.1.4 +lxml>=5.0.0 +pyshark>=0.6 +dill>=0.3.8 diff --git a/src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux/BUILD.bazel index 178fb5dd354..40bc05de0fc 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/testing/containers/thriftmux/BUILD.bazel @@ -67,6 +67,19 @@ thrift_library( srcs = glob(["**/*.thrift"]), ) +# Scrooge core with finagle dependencies bundled. +# This is used as the scrooge_core for the toolchain, so that the generated +# service code has access to finagle classes at compile time. +scala_library( + name = "scrooge_core_with_finagle", + visibility = ["//visibility:public"], + exports = [ + "@thrift_deps//:com_twitter_finagle_core_2_13", + "@thrift_deps//:com_twitter_finagle_thrift_2_13", + "@thrift_deps//:com_twitter_scrooge_core_2_13", + ], +) + scala_library( name = "scrooge_jars", visibility = ["//visibility:public"], @@ -81,6 +94,31 @@ scala_library( ], ) +# Runtime dependencies for generated scrooge code (for downstream consumers) +scala_library( + name = "scrooge_runtime_deps", + visibility = ["//visibility:public"], + exports = [ + "@thrift_deps//:com_twitter_finagle_core_2_13", + "@thrift_deps//:com_twitter_finagle_thrift_2_13", + "@thrift_deps//:com_twitter_scrooge_core_2_13", + "@thrift_deps//:org_apache_thrift_libthrift", + ], +) + +# Full finagle dependencies for Server/Client scala files +scala_library( + name = "finagle_deps", + visibility = ["//visibility:public"], + exports = [ + "@thrift_deps//:com_twitter_finagle_core_2_13", + "@thrift_deps//:com_twitter_finagle_http_2_13", + "@thrift_deps//:com_twitter_finagle_mux_2_13", + "@thrift_deps//:com_twitter_finagle_thrift_2_13", + "@thrift_deps//:com_twitter_finagle_thriftmux_2_13", + ], +) + scala_library( name = "thrift_jars", visibility = ["//visibility:public"], @@ -94,6 +132,9 @@ scrooge_scala_library( deps = [ ":thrift_library", ], + exports = [ + ":scrooge_runtime_deps", + ], ) scala_library( @@ -110,6 +151,7 @@ scala_binary( srcs = glob(["**/*.scala"]), main_class = "Server", deps = [ + ":finagle_deps", ":thriftmux_scrooge", ], ) @@ -119,6 +161,7 @@ scala_binary( srcs = glob(["**/*.scala"]), main_class = "Client", deps = [ + ":finagle_deps", ":thriftmux_scrooge", ], ) @@ -144,6 +187,7 @@ scala_image( ], main_class = "Server", deps = [ + ":finagle_deps", ":logging", ":thriftmux_scrooge", ], diff --git a/src/stirling/source_connectors/socket_tracer/uprobe_manager.h b/src/stirling/source_connectors/socket_tracer/uprobe_manager.h index 41d6e3c8157..858b5d838f1 100644 --- a/src/stirling/source_connectors/socket_tracer/uprobe_manager.h +++ b/src/stirling/source_connectors/socket_tracer/uprobe_manager.h @@ -20,6 +20,7 @@ #include #include +#include #include #include #include diff --git a/src/vizier/services/agent/shared/manager/chan_cache.h b/src/vizier/services/agent/shared/manager/chan_cache.h index 00106a2e2f4..6520a1c03a9 100644 --- a/src/vizier/services/agent/shared/manager/chan_cache.h +++ b/src/vizier/services/agent/shared/manager/chan_cache.h @@ -83,7 +83,7 @@ class ChanCache { }; // The cache of channels (grpc conns) made to other agents. - absl::flat_hash_map chan_cache_ GUARDED_BY(chan_cache_lock_); + absl::flat_hash_map chan_cache_ ABSL_GUARDED_BY(chan_cache_lock_); absl::base_internal::SpinLock chan_cache_lock_; // Connections that are alive for shorter than warm_up_period_ won't be cleared. std::chrono::nanoseconds warm_up_period_; diff --git a/src/vizier/services/agent/shared/manager/relation_info_manager.h b/src/vizier/services/agent/shared/manager/relation_info_manager.h index 10c05039328..f4cf1080e3d 100644 --- a/src/vizier/services/agent/shared/manager/relation_info_manager.h +++ b/src/vizier/services/agent/shared/manager/relation_info_manager.h @@ -65,7 +65,8 @@ class RelationInfoManager { private: mutable std::atomic has_updates_ = false; mutable absl::base_internal::SpinLock relation_info_map_lock_; - absl::btree_map relation_info_map_ GUARDED_BY(relation_info_map_lock_); + absl::btree_map relation_info_map_ + ABSL_GUARDED_BY(relation_info_map_lock_); }; } // namespace agent diff --git a/third_party/protoc-gen-grpc-web/grpc_generator.cc b/third_party/protoc-gen-grpc-web/grpc_generator.cc index 276a00e73a8..8136afeca1f 100644 --- a/third_party/protoc-gen-grpc-web/grpc_generator.cc +++ b/third_party/protoc-gen-grpc-web/grpc_generator.cc @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -27,8 +28,10 @@ #include #include #include +#include using google::protobuf::Descriptor; +using google::protobuf::Edition; using google::protobuf::EnumDescriptor; using google::protobuf::FieldDescriptor; using google::protobuf::FileDescriptor; @@ -40,6 +43,7 @@ using google::protobuf::compiler::CodeGenerator; using google::protobuf::compiler::GeneratorContext; using google::protobuf::compiler::ParseGeneratorParameter; using google::protobuf::compiler::PluginMain; +using google::protobuf::compiler::Version; using google::protobuf::io::Printer; using google::protobuf::io::ZeroCopyOutputStream; @@ -50,9 +54,8 @@ namespace { using std::string; enum Mode { - OP = 0, // first party google3 one platform services - OPJSPB = 1, // first party google3 one platform services with JSPB - GRPCWEB = 2, // client using the application/grpc-web wire format + OP = 0, // first party google3 one platform services + GRPCWEB = 1, // client using the application/grpc-web wire format }; enum ImportStyle { @@ -64,66 +67,32 @@ enum ImportStyle { const char GRPC_PROMISE[] = "grpc.web.promise.GrpcWebPromise"; const char* kKeyword[] = { - "abstract", - "boolean", - "break", - "byte", - "case", - "catch", - "char", - "class", - "const", - "continue", - "debugger", - "default", - "delete", - "do", - "double", - "else", - "enum", - "export", - "extends", - "false", - "final", - "finally", - "float", - "for", - "function", - "goto", - "if", - "implements", - "import", - "in", - "instanceof", - "int", - "interface", - "long", - "native", - "new", - "null", - "package", - "private", - "protected", - "public", - "return", - "short", - "static", - "super", - "switch", - "synchronized", - "this", - "throw", - "throws", - "transient", - "try", - "typeof", - "var", - "void", - "volatile", - "while", - "with", + "abstract", "boolean", "break", "byte", "case", + "catch", "char", "class", "const", "continue", + "debugger", "default", "delete", "do", "double", + "else", "enum", "export", "extends", "false", + "final", "finally", "float", "for", "function", + "goto", "if", "implements", "import", "in", + "instanceof", "int", "interface", "long", "native", + "new", "null", "package", "private", "protected", + "public", "return", "short", "static", "super", + "switch", "synchronized", "this", "throw", "throws", + "transient", "try", "typeof", "var", "void", + "volatile", "while", "with", }; +// Edit the version here prior to release +static const std::string GRPC_WEB_VERSION = "2.0.2"; + +string GetProtocVersion(GeneratorContext* context) { + Version compiler_version; + context->GetCompilerVersion(&compiler_version); + return std::to_string(compiler_version.major()) + "." + + std::to_string(compiler_version.minor()) + "." + + std::to_string(compiler_version.patch()) + + compiler_version.suffix(); +} + bool IsReserved(const string& ident) { for (size_t i = 0; i < sizeof(kKeyword) / sizeof(kKeyword[0]); i++) { if (ident == kKeyword[i]) { @@ -137,36 +106,35 @@ string GetModeVar(const Mode mode) { switch (mode) { case OP: return "OP"; - case OPJSPB: - return "OPJspb"; case GRPCWEB: return "GrpcWeb"; } return ""; } -string GetDeserializeMethodName(const string& mode_var) { - if (mode_var == GetModeVar(Mode::OPJSPB)) { +string GetDeserializeMethodName(std::map vars) { + if (vars["mode"] == GetModeVar(Mode::OP) && vars["binary"] == "false") { return "deserialize"; } return "deserializeBinary"; } -string GetSerializeMethodName(const string& mode_var) { - if (mode_var == GetModeVar(Mode::OPJSPB)) { +string GetSerializeMethodName(std::map vars) { + if (vars["mode"] == GetModeVar(Mode::OP) && vars["binary"] == "false") { return "serialize"; } return "serializeBinary"; } -std::string GetSerializeMethodReturnType(const string& mode_var) { - if (mode_var == GetModeVar(Mode::OPJSPB)) { +std::string GetSerializeMethodReturnType(std::map vars) { + if (vars["mode"] == GetModeVar(Mode::OP) && vars["binary"] == "false") { return "string"; } return "!Uint8Array"; } -string LowercaseFirstLetter(string s) { +string LowercaseFirstLetter(std::string_view sv) { + string s(sv); if (s.empty()) { return s; } @@ -174,7 +142,8 @@ string LowercaseFirstLetter(string s) { return s; } -string Lowercase(string s) { +string Lowercase(std::string_view sv) { + string s(sv); if (s.empty()) { return s; } @@ -185,7 +154,8 @@ string Lowercase(string s) { return s; } -string UppercaseFirstLetter(string s) { +string UppercaseFirstLetter(std::string_view sv) { + string s(sv); if (s.empty()) { return s; } @@ -193,7 +163,8 @@ string UppercaseFirstLetter(string s) { return s; } -string Uppercase(string s) { +string Uppercase(std::string_view sv) { + string s(sv); if (s.empty()) { return s; } @@ -207,49 +178,51 @@ string Uppercase(string s) { // The following 5 functions were copied from // google/protobuf/src/google/protobuf/stubs/strutil.h -inline bool HasPrefixString(const string& str, - const string& prefix) { +inline bool HasPrefixString(std::string_view str, std::string_view prefix) { return str.size() >= prefix.size() && - str.compare(0, prefix.size(), prefix) == 0; + str.compare(0, prefix.size(), prefix) == 0; } -inline string StripPrefixString(const string& str, const string& prefix) { - if (HasPrefixString(str, prefix)) { - return str.substr(prefix.size()); - } else { - return str; +// Strips the given prefix from the string, as well as the remaining leading dot +// if it exists. +inline string StripPrefixString(std::string_view str, std::string_view prefix) { + if (!HasPrefixString(str, prefix)) { + return string(str); } + + string remaining_str(str.substr(prefix.size())); + if (!remaining_str.empty() && remaining_str[0] == '.') { + remaining_str = remaining_str.substr(1); + } + return remaining_str; } -inline bool HasSuffixString(const string& str, - const string& suffix) { +inline bool HasSuffixString(std::string_view str, std::string_view suffix) { return str.size() >= suffix.size() && - str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; + str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; } -inline string StripSuffixString(const string& str, const string& suffix) { +inline string StripSuffixString(std::string_view str, std::string_view suffix) { if (HasSuffixString(str, suffix)) { - return str.substr(0, str.size() - suffix.size()); + return string(str.substr(0, str.size() - suffix.size())); } else { - return str; + return string(str); } } -void ReplaceCharacters(string *s, const char *remove, char replacewith) { - const char *str_start = s->c_str(); - const char *str = str_start; - for (str = strpbrk(str, remove); - str != nullptr; +void ReplaceCharacters(string* s, const char* remove, char replacewith) { + const char* str_start = s->c_str(); + const char* str = str_start; + for (str = strpbrk(str, remove); str != nullptr; str = strpbrk(str + 1, remove)) { (*s)[str - str_start] = replacewith; } } - // The following function was copied from // google/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc -string StripProto(const string& filename) { +string StripProto(std::string_view filename) { if (HasSuffixString(filename, ".protodevel")) { return StripSuffixString(filename, ".protodevel"); } else { @@ -268,7 +241,7 @@ char ToLowerASCII(char c) { } } -std::vector ParseLowerUnderscore(const string& input) { +std::vector ParseLowerUnderscore(std::string_view input) { std::vector words; string running = ""; for (size_t i = 0; i < input.size(); i++) { @@ -301,7 +274,7 @@ string ToUpperCamel(const std::vector& words) { // Returns the alias we assign to the module of the given .proto filename // when importing. -string ModuleAlias(const string& filename) { +string ModuleAlias(std::string_view filename) { // This scheme could technically cause problems if a file includes any 2 of: // foo/bar_baz.proto // foo_bar_baz.proto @@ -316,12 +289,8 @@ string ModuleAlias(const string& filename) { return basename + "_pb"; } -string JSMessageType(const Descriptor *desc, const FileDescriptor *file) { - string class_name; - class_name = StripPrefixString(desc->full_name(), desc->file()->package()); - if (!class_name.empty() && class_name[0] == '.') { - class_name = class_name.substr(1); - } +string JSMessageType(const Descriptor* desc, const FileDescriptor* file) { + string class_name = StripPrefixString(desc->full_name(), desc->file()->package()); if (desc->file() == file) { // [for protobuf .d.ts files only] Do not add the module prefix for local // messages. @@ -330,11 +299,11 @@ string JSMessageType(const Descriptor *desc, const FileDescriptor *file) { return ModuleAlias(desc->file()->name()) + "." + class_name; } -string JSMessageType(const Descriptor *desc) { +string JSMessageType(const Descriptor* desc) { return JSMessageType(desc, nullptr); } -string JSElementType(const FieldDescriptor *desc, const FileDescriptor *file) { +string JSElementType(const FieldDescriptor* desc, const FileDescriptor* file) { switch (desc->type()) { case FieldDescriptor::TYPE_DOUBLE: case FieldDescriptor::TYPE_FLOAT: @@ -369,16 +338,12 @@ string JSElementType(const FieldDescriptor *desc, const FileDescriptor *file) { if (desc->enum_type()->file() == file) { // [for protobuf .d.ts files only] Do not add the module prefix for // local messages. - string enum_name = - StripPrefixString( - desc->enum_type()->full_name(), - desc->enum_type()->file()->package()); - return StripPrefixString(enum_name, "."); + return StripPrefixString(desc->enum_type()->full_name(), + desc->enum_type()->file()->package()); } - return ModuleAlias(desc->enum_type()->file()->name()) - + StripPrefixString( - desc->enum_type()->full_name(), - desc->enum_type()->file()->package()); + return ModuleAlias(desc->enum_type()->file()->name()) + "." + + StripPrefixString(desc->enum_type()->full_name(), + desc->enum_type()->file()->package()); case FieldDescriptor::TYPE_MESSAGE: return JSMessageType(desc->message_type(), file); @@ -388,22 +353,21 @@ string JSElementType(const FieldDescriptor *desc, const FileDescriptor *file) { } } -string JSFieldType(const FieldDescriptor *desc, const FileDescriptor *file) { +string JSFieldType(const FieldDescriptor* desc, const FileDescriptor* file) { string js_field_type = JSElementType(desc, file); if (desc->is_map()) { string key_type = JSFieldType(desc->message_type()->field(0), file); string value_type = JSFieldType(desc->message_type()->field(1), file); return "jspb.Map<" + key_type + ", " + value_type + ">"; } - if (desc->is_repeated()) - { + if (desc->is_repeated()) { return "Array<" + js_field_type + ">"; } return js_field_type; } -string AsObjectFieldType( - const FieldDescriptor *desc, const FileDescriptor *file) { +string AsObjectFieldType(const FieldDescriptor* desc, + const FileDescriptor* file) { if (desc->type() != FieldDescriptor::TYPE_MESSAGE) { return JSFieldType(desc, file); } @@ -420,11 +384,11 @@ string AsObjectFieldType( return field_type; } -string JSElementName(const FieldDescriptor *desc) { +string JSElementName(const FieldDescriptor* desc) { return ToUpperCamel(ParseLowerUnderscore(desc->name())); } -string JSFieldName(const FieldDescriptor *desc) { +string JSFieldName(const FieldDescriptor* desc) { string js_field_name = JSElementName(desc); if (desc->is_map()) { js_field_name += "Map"; @@ -435,20 +399,17 @@ string JSFieldName(const FieldDescriptor *desc) { } // Like ToUpperCamel except the first letter is not converted. -string ToCamelCase(const std::vector& words) -{ +string ToCamelCase(const std::vector& words) { if (words.empty()) { - return ""; + return ""; } string result = words[0]; return result + ToUpperCamel(std::vector( - words.begin()+1, - words.begin()+words.size())); + words.begin() + 1, words.begin() + words.size())); } // Like JSFieldName, but with first letter not uppercased -string CamelCaseJSFieldName(const FieldDescriptor *desc) -{ +string CamelCaseJSFieldName(const FieldDescriptor* desc) { string js_field_name = ToCamelCase(ParseLowerUnderscore(desc->name())); if (desc->is_map()) { js_field_name += "Map"; @@ -466,8 +427,8 @@ string GetNestedMessageName(const Descriptor* descriptor) { if (descriptor == nullptr) { return ""; } - string result = StripPrefixString(descriptor->full_name(), - descriptor->file()->package()); + string result = + StripPrefixString(descriptor->full_name(), descriptor->file()->package()); // Add a leading dot if one is not already present. if (!result.empty() && result[0] != '.') { result = "." + result; @@ -477,7 +438,7 @@ string GetNestedMessageName(const Descriptor* descriptor) { // Given a filename like foo/bar/baz.proto, returns the root directory // path ../../ -string GetRootPath(const string& from_filename, const string& to_filename) { +string GetRootPath(std::string_view from_filename, std::string_view to_filename) { if (HasPrefixString(to_filename, "google/protobuf")) { // Well-known types (.proto files in the google/protobuf directory) are // assumed to come from the 'google-protobuf' npm package. We may want to @@ -529,15 +490,37 @@ string GetBasename(string filename) { return basename; } -// Finds all message types used in all services in the file. -std::set GetAllMessages(const FileDescriptor* file) { - std::set messages; +//Adds $ suffix to reserved method names to avoid conflicts. +static bool IsReservedMethodName(const std::string& name) { + static const std::unordered_set reserved = { + "extension", + "jspbmessageid" + }; + + std::string lower_name = Lowercase(name); + + return reserved.count(lower_name) > 0; +} + +static std::string SafeAccessorName(const std::string& name) { + std::string result = name; + if (IsReservedMethodName(name)) { + result += "$"; + } + return result; +} + +// Finds all message types used in all services in the file. Return results as a +// map of full names to descriptors to get sorted results and deterministic +// build outputs. +std::map GetAllMessages(const FileDescriptor* file) { + std::map messages; for (int s = 0; s < file->service_count(); ++s) { const ServiceDescriptor* service = file->service(s); for (int m = 0; m < service->method_count(); ++m) { - const MethodDescriptor *method = service->method(m); - messages.insert(method->input_type()); - messages.insert(method->output_type()); + const MethodDescriptor* method = service->method(m); + messages[string(method->input_type()->full_name())] = method->input_type(); + messages[string(method->output_type()->full_name())] = method->output_type(); } } @@ -545,28 +528,24 @@ std::set GetAllMessages(const FileDescriptor* file) { } void PrintClosureDependencies(Printer* printer, const FileDescriptor* file) { - for (const Descriptor* message : GetAllMessages(file)) { - printer->Print( - "goog.require('proto.$full_name$');\n", - "full_name", message->full_name()); + for (const auto& entry : GetAllMessages(file)) { + printer->Print("goog.require('proto.$full_name$');\n", "full_name", + entry.second->full_name()); } - printer->Print("\n\n\n"); } void PrintCommonJsMessagesDeps(Printer* printer, const FileDescriptor* file) { std::map vars; for (int i = 0; i < file->dependency_count(); i++) { - const string& name = file->dependency(i)->name(); + const string name(file->dependency(i)->name()); vars["alias"] = ModuleAlias(name); vars["dep_filename"] = GetRootPath(file->name(), name) + StripProto(name); // we need to give each cross-file import an alias - printer->Print( - vars, - "\nvar $alias$ = require('$dep_filename$_pb.js')\n"); + printer->Print(vars, "\nvar $alias$ = require('$dep_filename$_pb.js')\n"); } - string package = file->package(); + const string package(file->package()); vars["package_name"] = package; if (!package.empty()) { @@ -580,7 +559,7 @@ void PrintCommonJsMessagesDeps(Printer* printer, const FileDescriptor* file) { printer->Print(vars, "proto.$current_package_ns$ = {};\n"); offset = dotIndex + 1; - dotIndex = package.find(".", offset); + dotIndex = package.find('.', offset); } } @@ -588,13 +567,10 @@ void PrintCommonJsMessagesDeps(Printer* printer, const FileDescriptor* file) { vars["filename"] = GetBasename(StripProto(file->name())); if (!package.empty()) { - printer->Print( - vars, - "proto.$package_name$ = require('./$filename$_pb.js');\n\n"); + printer->Print(vars, + "proto.$package_name$ = require('./$filename$_pb.js');\n\n"); } else { - printer->Print( - vars, - "const proto = require('./$filename$_pb.js');\n\n"); + printer->Print(vars, "const proto = require('./$filename$_pb.js');\n\n"); } } @@ -604,18 +580,18 @@ void PrintES6Imports(Printer* printer, const FileDescriptor* file) { printer->Print("import * as grpcWeb from 'grpc-web';\n\n"); std::set imports; - for (const Descriptor* message : GetAllMessages(file)) { - const string& name = message->file()->name(); - string dep_filename = GetRootPath(file->name(), name) + StripProto(name); + for (const auto& entry : GetAllMessages(file)) { + const string proto_filename(entry.second->file()->name()); + string dep_filename = GetRootPath(file->name(), proto_filename) + StripProto(proto_filename); if (imports.find(dep_filename) != imports.end()) { continue; } imports.insert(dep_filename); // We need to give each cross-file import an alias. - printer->Print( - "import * as $alias$ from '$dep_filename$_pb';\n", - "alias", ModuleAlias(name), - "dep_filename", dep_filename); + printer->Print("import * as $alias$ from '$dep_filename$_pb'; // proto import: \"$proto_filename$\"\n", + "alias", ModuleAlias(proto_filename), + "dep_filename", dep_filename, + "proto_filename", proto_filename); } printer->Print("\n\n"); } @@ -627,7 +603,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, ++service_index) { printer->Print("export class "); const ServiceDescriptor* service = file->service(service_index); - vars["service_name"] = service->name(); + vars["service_name"] = string(service->name()); printer->Print(vars, "$service_name$Client {\n"); printer->Indent(); printer->Print( @@ -646,7 +622,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, } printer->Print(vars, "this.client_ = new grpcWeb.$mode$ClientBase(options);\n" - "this.hostname_ = hostname;\n" + "this.hostname_ = hostname.replace(/\\/+$$/, '');\n" "this.credentials_ = credentials;\n" "this.options_ = options;\n"); printer->Outdent(); @@ -656,18 +632,23 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, ++method_index) { const MethodDescriptor* method = service->method(method_index); vars["js_method_name"] = LowercaseFirstLetter(method->name()); - vars["method_name"] = method->name(); + vars["method_name"] = string(method->name()); vars["input_type"] = JSMessageType(method->input_type()); vars["output_type"] = JSMessageType(method->output_type()); - vars["serialize_func_name"] = GetSerializeMethodName(vars["mode"]); - vars["deserialize_func_name"] = GetDeserializeMethodName(vars["mode"]); + vars["serialize_func_name"] = GetSerializeMethodName(vars); + vars["deserialize_func_name"] = GetDeserializeMethodName(vars); + vars["method_type"] = method->server_streaming() + ? "grpcWeb.MethodType.SERVER_STREAMING" + : "grpcWeb.MethodType.UNARY"; if (!method->client_streaming()) { - // TODO(jennyjiang): use methodDescriptor? printer->Print(vars, - "methodInfo$method_name$ = " - "new grpcWeb.AbstractClientBase.MethodInfo(\n"); + "methodDescriptor$method_name$ = " + "new grpcWeb.MethodDescriptor(\n"); printer->Indent(); printer->Print(vars, + "'/$package_dot$$service_name$/$method_name$',\n" + "$method_type$,\n" + "$input_type$,\n" "$output_type$,\n" "(request: $input_type$) => {\n" " return request.$serialize_func_name$();\n" @@ -680,16 +661,16 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, printer->Indent(); printer->Print(vars, "request: $input_type$,\n" - "metadata?: grpcWeb.Metadata) {\n"); + "metadata?: grpcWeb.Metadata): " + "grpcWeb.ClientReadableStream<$output_type$> {\n"); printer->Print(vars, "return this.client_.serverStreaming(\n"); printer->Indent(); - printer->Print( - vars, - "this.hostname_ +\n" - " '/$package_dot$$service_name$/$method_name$',\n" - "request,\n" - "metadata || {},\n" - "this.methodInfo$method_name$);\n"); + printer->Print(vars, + "this.hostname_ +\n" + " '/$package_dot$$service_name$/$method_name$',\n" + "request,\n" + "metadata || {},\n" + "this.methodDescriptor$method_name$);\n"); printer->Outdent(); printer->Outdent(); printer->Print("}\n\n"); @@ -698,7 +679,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, printer->Indent(); printer->Print(vars, "request: $input_type$,\n" - "metadata: grpcWeb.Metadata | null): " + "metadata?: grpcWeb.Metadata | null): " "$promise$<$output_type$>;\n\n"); printer->Outdent(); @@ -707,7 +688,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, printer->Print(vars, "request: $input_type$,\n" "metadata: grpcWeb.Metadata | null,\n" - "callback: (err: grpcWeb.Error,\n" + "callback: (err: grpcWeb.RpcError,\n" " response: $output_type$) => void): " "grpcWeb.ClientReadableStream<$output_type$>;\n\n"); printer->Outdent(); @@ -716,21 +697,20 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, printer->Indent(); printer->Print(vars, "request: $input_type$,\n" - "metadata: grpcWeb.Metadata | null,\n" - "callback?: (err: grpcWeb.Error,\n" + "metadata?: grpcWeb.Metadata | null,\n" + "callback?: (err: grpcWeb.RpcError,\n" " response: $output_type$) => void) {\n"); printer->Print(vars, "if (callback !== undefined) {\n"); printer->Indent(); printer->Print(vars, "return this.client_.rpcCall(\n"); printer->Indent(); - printer->Print( - vars, - "this.hostname_ +\n" - " '/$package_dot$$service_name$/$method_name$',\n" - "request,\n" - "metadata || {},\n" - "this.methodInfo$method_name$,\n" - "callback);\n"); + printer->Print(vars, + "this.hostname_ +\n" + " '/$package_dot$$service_name$/$method_name$',\n" + "request,\n" + "metadata || {},\n" + "this.methodDescriptor$method_name$,\n" + "callback);\n"); printer->Outdent(); printer->Outdent(); printer->Print(vars, @@ -741,7 +721,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, " '/$package_dot$$service_name$/$method_name$',\n" "request,\n" "metadata || {},\n" - "this.methodInfo$method_name$);\n"); + "this.methodDescriptor$method_name$);\n"); printer->Outdent(); printer->Print("}\n\n"); } @@ -753,7 +733,7 @@ void PrintTypescriptFile(Printer* printer, const FileDescriptor* file, } void PrintGrpcWebDtsClientClass(Printer* printer, const FileDescriptor* file, - const string &client_type) { + const string& client_type) { std::map vars; vars["client_type"] = client_type; vars["promise"] = "Promise"; @@ -761,7 +741,7 @@ void PrintGrpcWebDtsClientClass(Printer* printer, const FileDescriptor* file, ++service_index) { printer->Print("export class "); const ServiceDescriptor* service = file->service(service_index); - vars["service_name"] = service->name(); + vars["service_name"] = string(service->name()); printer->Print(vars, "$service_name$$client_type$ {\n"); printer->Indent(); printer->Print( @@ -799,7 +779,7 @@ void PrintGrpcWebDtsClientClass(Printer* printer, const FileDescriptor* file, printer->Print(vars, "request: $input_type$,\n" "metadata: grpcWeb.Metadata | undefined,\n" - "callback: (err: grpcWeb.Error,\n" + "callback: (err: grpcWeb.RpcError,\n" " response: $output_type$) => void\n"); printer->Outdent(); printer->Print(vars, @@ -820,15 +800,16 @@ void PrintGrpcWebDtsFile(Printer* printer, const FileDescriptor* file) { PrintGrpcWebDtsClientClass(printer, file, "PromiseClient"); } -void PrintProtoDtsEnum(Printer *printer, const EnumDescriptor *desc) -{ +void PrintProtoDtsEnum(Printer* printer, const EnumDescriptor* desc) { std::map vars; - vars["enum_name"] = desc->name(); + vars["enum_name"] = string(desc->name()); - printer->Print(vars, "export enum $enum_name$ { \n"); + // Use regular enums for broad TypeScript compatibility. `const enum` + // triggers TS2748 when `verbatimModuleSyntax` is enabled (default in + // TypeScript 5.9+), so prefer `enum` here. + printer->Print(vars, "export enum $enum_name$ {\n"); printer->Indent(); - for (int i = 0; i < desc->value_count(); i++) - { + for (int i = 0; i < desc->value_count(); i++) { vars["value_name"] = Uppercase(desc->value(i)->name()); vars["value_number"] = std::to_string(desc->value(i)->number()); printer->Print(vars, "$value_name$ = $value_number$,\n"); @@ -837,17 +818,18 @@ void PrintProtoDtsEnum(Printer *printer, const EnumDescriptor *desc) printer->Print("}\n"); } -void PrintProtoDtsOneofCase(Printer *printer, const OneofDescriptor *desc) -{ +void PrintProtoDtsOneofCase(Printer* printer, const OneofDescriptor* desc) { std::map vars; vars["oneof_name"] = ToUpperCamel(ParseLowerUnderscore(desc->name())); vars["oneof_name_upper"] = Uppercase(desc->name()); - printer->Print(vars, "export enum $oneof_name$Case { \n"); + // Oneof case enums also use regular enums to avoid ambient `const enum` + // issues under `verbatimModuleSyntax`. + printer->Print(vars, "export enum $oneof_name$Case {\n"); printer->Indent(); printer->Print(vars, "$oneof_name_upper$_NOT_SET = 0,\n"); for (int i = 0; i < desc->field_count(); i++) { - const FieldDescriptor *field = desc->field(i); + const FieldDescriptor* field = desc->field(i); vars["field_name"] = Uppercase(field->name()); vars["field_number"] = std::to_string(field->number()); printer->Print(vars, "$field_name$ = $field_number$,\n"); @@ -856,9 +838,9 @@ void PrintProtoDtsOneofCase(Printer *printer, const OneofDescriptor *desc) printer->Print("}\n"); } -void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, - const FileDescriptor *file) { - string class_name = desc->name(); +void PrintProtoDtsMessage(Printer* printer, const Descriptor* desc, + const FileDescriptor* file) { + const string class_name(desc->name()); std::map vars; vars["class_name"] = class_name; @@ -866,12 +848,12 @@ void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, printer->Indent(); for (int i = 0; i < desc->field_count(); i++) { const FieldDescriptor* field = desc->field(i); - vars["js_field_name"] = JSFieldName(field); + + vars["js_field_name"] = SafeAccessorName(JSFieldName(field)); vars["js_field_type"] = JSFieldType(field, file); if (field->type() != FieldDescriptor::TYPE_MESSAGE || field->is_repeated()) { - printer->Print(vars, - "get$js_field_name$(): $js_field_type$;\n"); + printer->Print(vars, "get$js_field_name$(): $js_field_type$;\n"); } else { printer->Print(vars, "get$js_field_name$(): $js_field_type$ | undefined;\n"); @@ -891,16 +873,16 @@ void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, "set$js_field_name$(value?: $js_field_type$): " "$class_name$;\n"); } - if (field->type() == FieldDescriptor::TYPE_MESSAGE && !field->is_repeated() - && !field->is_map()) { + if (field->has_presence()) { printer->Print(vars, "has$js_field_name$(): boolean;\n"); } if (field->type() == FieldDescriptor::TYPE_MESSAGE || - field->is_repeated() || field->is_map()) { + field->has_presence() || field->is_repeated() || field->is_map()) { printer->Print(vars, "clear$js_field_name$(): $class_name$;\n"); } if (field->is_repeated() && !field->is_map()) { - vars["js_field_name"] = JSElementName(field); + + vars["js_field_name"] = SafeAccessorName(JSElementName(field)); vars["js_field_type"] = JSElementType(field, file); if (field->type() != FieldDescriptor::TYPE_MESSAGE) { printer->Print(vars, @@ -916,12 +898,11 @@ void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, printer->Print("\n"); } - for (int i = 0; i < desc->oneof_decl_count(); i++) { - const OneofDescriptor* oneof = desc->oneof_decl(i); + for (int i = 0; i < desc->real_oneof_decl_count(); i++) { + const OneofDescriptor *oneof = desc->real_oneof_decl(i); vars["js_oneof_name"] = ToUpperCamel(ParseLowerUnderscore(oneof->name())); printer->Print( - vars, - "get$js_oneof_name$Case(): $class_name$.$js_oneof_name$Case;\n"); + vars, "get$js_oneof_name$Case(): $class_name$.$js_oneof_name$Case;\n"); printer->Print("\n"); } @@ -946,21 +927,22 @@ void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, printer->Indent(); for (int i = 0; i < desc->field_count(); i++) { const FieldDescriptor* field = desc->field(i); + string js_field_name = CamelCaseJSFieldName(field); if (IsReserved(js_field_name)) { js_field_name = "pb_" + js_field_name; } + vars["js_field_name"] = js_field_name; vars["js_field_type"] = AsObjectFieldType(field, file); - if (field->type() != FieldDescriptor::TYPE_MESSAGE || - field->is_repeated()) { - printer->Print(vars, "$js_field_name$: $js_field_type$,\n"); + if (!field->has_presence()) { + printer->Print(vars, "$js_field_name$: $js_field_type$;\n"); } else { - printer->Print(vars, "$js_field_name$?: $js_field_type$,\n"); + printer->Print(vars, "$js_field_name$?: $js_field_type$;\n"); } } printer->Outdent(); - printer->Print("}\n"); + printer->Print("};\n"); for (int i = 0; i < desc->nested_type_count(); i++) { if (desc->nested_type(i)->options().map_entry()) { @@ -984,17 +966,16 @@ void PrintProtoDtsMessage(Printer *printer, const Descriptor *desc, printer->Print("}\n\n"); } -void PrintProtoDtsFile(Printer *printer, const FileDescriptor *file) -{ +void PrintProtoDtsFile(Printer* printer, const FileDescriptor* file) { printer->Print("import * as jspb from 'google-protobuf'\n\n"); for (int i = 0; i < file->dependency_count(); i++) { - const string& name = file->dependency(i)->name(); + const string proto_filename(file->dependency(i)->name()); // We need to give each cross-file import an alias. - printer->Print( - "import * as $alias$ from '$dep_filename$_pb';\n", - "alias", ModuleAlias(name), - "dep_filename", GetRootPath(file->name(), name) + StripProto(name)); + printer->Print("import * as $alias$ from '$dep_filename$_pb'; // proto import: \"$proto_filename$\"\n", + "alias", ModuleAlias(proto_filename), + "dep_filename", GetRootPath(file->name(), proto_filename) + StripProto(proto_filename), + "proto_filename", proto_filename); } printer->Print("\n\n"); @@ -1015,7 +996,11 @@ void PrintFileHeader(Printer* printer, const std::map& vars) { " * @enhanceable\n" " * @public\n" " */\n\n" - "// GENERATED CODE -- DO NOT EDIT!\n\n\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n\n\n" "/* eslint-disable */\n" "// @ts-nocheck\n\n\n"); } @@ -1025,17 +1010,29 @@ void PrintMethodDescriptorFile(Printer* printer, printer->Print( vars, "/**\n" - " * @fileoverview gRPC-Web generated MethodDescriptors for $package$\n" - " * @enhanceable\n" + " * @fileoverview gRPC-Web generated MethodDescriptors for $package$\n"); + if (vars["plugins"].empty()) { + printer->Print(" * @enhanceable\n"); + } + printer->Print( " * @public\n" " */\n\n" - "// GENERATED CODE -- DO NOT EDIT!\n\n\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n\n\n" "/* eslint-disable */\n" "// @ts-nocheck\n\n\n"); printer->Print(vars, "goog.provide('proto.$package_dot$$class_name$.$" "method_name$MethodDescriptor');\n\n"); + if (!vars["plugins"].empty()) { + printer->Print(vars, + "goog.require('$plugins$.$package_dot$$class_name$.$" + "method_name$MethodDescriptor');\n"); + } printer->Print(vars, "goog.require('grpc.web.MethodDescriptor');\n"); printer->Print(vars, "goog.require('grpc.web.MethodType');\n"); printer->Print(vars, "goog.require('$in_type$');\n"); @@ -1067,16 +1064,15 @@ void PrintMethodDescriptorFile(Printer* printer, "/**\n" " * @param {!proto.$in$} request\n"); printer->Print( - (" * @return {" + GetSerializeMethodReturnType(vars["mode"]) + "}\n") - .c_str()); - printer->Print(" */\n" - "function(request) {\n"); + (" * @return {" + GetSerializeMethodReturnType(vars) + "}\n").c_str()); printer->Print( - (" return request." + GetSerializeMethodName(vars["mode"]) + "();\n") - .c_str()); - printer->Print("},\n"); + " */\n" + "function(request) {\n"); printer->Print( - vars, ("$out_type$." + GetDeserializeMethodName(vars["mode"])).c_str()); + (" return request." + GetSerializeMethodName(vars) + "();\n").c_str()); + printer->Print("},\n"); + printer->Print(vars, + ("$out_type$." + GetDeserializeMethodName(vars)).c_str()); printer->Print(vars, ");\n\n\n"); printer->Outdent(); printer->Outdent(); @@ -1085,132 +1081,77 @@ void PrintMethodDescriptorFile(Printer* printer, printer->Print("}); // goog.scope\n\n"); } -void PrintServiceConstructor(Printer* printer, - std::map vars) { - printer->Print( - vars, - "/**\n" - " * @param {string} hostname\n" - " * @param {?Object} credentials\n" - " * @param {?Object} options\n" - " * @constructor\n" - " * @struct\n" - " * @final\n" - " */\n" - "proto.$package_dot$$service_name$Client =\n" - " function(hostname, credentials, options) {\n" - " if (!options) options = {};\n"); - if (vars["mode"] == GetModeVar(Mode::GRPCWEB)) { - printer->Print( - vars, - " options['format'] = '$format$';\n\n"); - } - printer->Print( - vars, - " /**\n" - " * @private @const {!grpc.web.$mode$ClientBase} The client\n" - " */\n" - " this.client_ = new grpc.web.$mode$ClientBase(options);\n\n" - " /**\n" - " * @private @const {string} The hostname\n" - " */\n" - " this.hostname_ = hostname;\n\n" - "};\n\n\n"); -} - -void PrintPromiseServiceConstructor(Printer* printer, - std::map vars) { +void PrintServiceConstructor(Printer* printer, std::map vars, + bool is_promise) { + vars["is_promise"] = is_promise ? "Promise" : ""; printer->Print(vars, "/**\n" " * @param {string} hostname\n" " * @param {?Object} credentials\n" - " * @param {?Object} options\n" + " * @param {?grpc.web.ClientOptions} options\n" " * @constructor\n" " * @struct\n" " * @final\n" " */\n" - "proto.$package_dot$$service_name$PromiseClient =\n" + "proto.$package_dot$$service_name$$is_promise$Client =\n" " function(hostname, credentials, options) {\n" " if (!options) options = {};\n"); if (vars["mode"] == GetModeVar(Mode::GRPCWEB)) { - printer->Print(vars, " options['format'] = '$format$';\n\n"); + printer->Print(vars, " options.format = '$format$';\n\n"); } - printer->Print( - vars, - " /**\n" - " * @private @const {!grpc.web.$mode$ClientBase} The client\n" - " */\n" - " this.client_ = new grpc.web.$mode$ClientBase(options);\n\n" - " /**\n" - " * @private @const {string} The hostname\n" - " */\n" - " this.hostname_ = hostname;\n\n" - "};\n\n\n"); -} - -void PrintMethodInfo(Printer* printer, std::map vars) { - // Print MethodDescriptor. - printer->Print(vars, - "/**\n" - " * @const\n" - " * @type {!grpc.web.MethodDescriptor<\n" - " * !proto.$in$,\n" - " * !proto.$out$>}\n" - " */\n" - "const methodDescriptor_$service_name$_$method_name$ = " - "new grpc.web.MethodDescriptor(\n"); - printer->Indent(); - printer->Print(vars, - "'/$package_dot$$service_name$/$method_name$',\n" - "$method_type$,\n" - "$in_type$,\n"); - printer->Print(vars, - "$out_type$,\n" - "/**\n" - " * @param {!proto.$in$} request\n"); - printer->Print( - (" * @return {" + GetSerializeMethodReturnType(vars["mode"]) + "}\n") - .c_str()); - printer->Print(" */\n" - "function(request) {\n"); + if (vars["mode"] == GetModeVar(Mode::OP)) { printer->Print( - (" return request." + GetSerializeMethodName(vars["mode"]) + "();\n") - .c_str()); - printer->Print("},\n"); + vars, + " /**\n" + " * @private @const {!grpc.web.$mode$ClientBase} The client\n" + " */\n" + " this.client_ = new grpc.web.$mode$ClientBase(options, " + "$binary$);\n\n"); + } else { printer->Print( - vars, ("$out_type$." + GetDeserializeMethodName(vars["mode"]) + "\n") - .c_str()); - printer->Outdent(); - printer->Print(vars, ");\n\n\n"); + vars, + " /**\n" + " * @private @const {!grpc.web.$mode$ClientBase} The client\n" + " */\n" + " this.client_ = new grpc.web.$mode$ClientBase(options);\n\n"); + } + printer->PrintRaw( + " /**\n" + " * @private @const {string} The hostname\n" + " */\n" + " this.hostname_ = hostname.replace(/\\/+$/, '');\n\n" + "};\n\n\n"); +} - // Print AbstractClientBase.MethodInfo, which will be deprecated. +void PrintMethodDescriptor(Printer* printer, std::map vars) { printer->Print(vars, "/**\n" " * @const\n" - " * @type {!grpc.web.AbstractClientBase.MethodInfo<\n" + " * @type {!grpc.web.MethodDescriptor<\n" " * !proto.$in$,\n" " * !proto.$out$>}\n" " */\n" - "const methodInfo_$service_name$_$method_name$ = " - "new grpc.web.AbstractClientBase.MethodInfo(\n"); + "const methodDescriptor_$service_name$_$method_name$ = " + "new grpc.web.MethodDescriptor(\n"); printer->Indent(); - + printer->Print(vars, + "'/$package_dot$$service_name$/$method_name$',\n" + "$method_type$,\n" + "$in_type$,\n"); printer->Print(vars, "$out_type$,\n" "/**\n" " * @param {!proto.$in$} request\n"); printer->Print( - (" * @return {" + GetSerializeMethodReturnType(vars["mode"]) + "}\n") - .c_str()); - printer->Print(" */\n" - "function(request) {\n"); + (" * @return {" + GetSerializeMethodReturnType(vars) + "}\n").c_str()); + printer->Print( + " */\n" + "function(request) {\n"); printer->Print( - (" return request." + GetSerializeMethodName(vars["mode"]) + "();\n") - .c_str()); + (" return request." + GetSerializeMethodName(vars) + "();\n").c_str()); printer->Print("},\n"); printer->Print( - vars, - ("$out_type$." + GetDeserializeMethodName(vars["mode"]) + "\n").c_str()); + vars, ("$out_type$." + GetDeserializeMethodName(vars) + "\n").c_str()); printer->Outdent(); printer->Print(vars, ");\n\n\n"); } @@ -1223,7 +1164,7 @@ void PrintUnaryCall(Printer* printer, std::map vars) { " * request proto\n" " * @param {?Object} metadata User defined\n" " * call metadata\n" - " * @param {function(?grpc.web.Error," + " * @param {function(?grpc.web.RpcError," " ?proto.$out$)}\n" " * callback The callback function(error, response)\n" " * @return {!grpc.web.ClientReadableStream|undefined}\n" @@ -1236,8 +1177,7 @@ void PrintUnaryCall(Printer* printer, std::map vars) { "return this.client_.rpcCall(this.hostname_ +\n"); printer->Indent(); printer->Indent(); - if (vars["mode"] == GetModeVar(Mode::OP) || - vars["mode"] == GetModeVar(Mode::OPJSPB)) { + if (vars["mode"] == GetModeVar(Mode::OP)) { printer->Print(vars, "'/$$rpc/$package_dot$$service_name$/$method_name$',\n"); } else { @@ -1259,7 +1199,7 @@ void PrintPromiseUnaryCall(Printer* printer, std::map vars) { "/**\n" " * @param {!proto.$in$} request The\n" " * request proto\n" - " * @param {?Object} metadata User defined\n" + " * @param {?Object=} metadata User defined\n" " * call metadata\n" " * @return {!$promise$}\n" " * Promise that resolves to the response\n" @@ -1272,8 +1212,7 @@ void PrintPromiseUnaryCall(Printer* printer, std::map vars) { "return this.client_.unaryCall(this.hostname_ +\n"); printer->Indent(); printer->Indent(); - if (vars["mode"] == GetModeVar(Mode::OP) || - vars["mode"] == GetModeVar(Mode::OPJSPB)) { + if (vars["mode"] == GetModeVar(Mode::OP)) { printer->Print(vars, "'/$$rpc/$package_dot$$service_name$/$method_name$',\n"); } else { @@ -1290,25 +1229,23 @@ void PrintPromiseUnaryCall(Printer* printer, std::map vars) { } void PrintServerStreamingCall(Printer* printer, std::map vars) { - printer->Print( - vars, - "/**\n" - " * @param {!proto.$in$} request The request proto\n" - " * @param {?Object} metadata User defined\n" - " * call metadata\n" - " * @return {!grpc.web.ClientReadableStream}\n" - " * The XHR Node Readable Stream\n" - " */\n" - "proto.$package_dot$$service_name$$client_type$.prototype." - "$js_method_name$ =\n"); + printer->Print(vars, + "/**\n" + " * @param {!proto.$in$} request The request proto\n" + " * @param {?Object=} metadata User defined\n" + " * call metadata\n" + " * @return {!grpc.web.ClientReadableStream}\n" + " * The XHR Node Readable Stream\n" + " */\n" + "proto.$package_dot$$service_name$$client_type$.prototype." + "$js_method_name$ =\n"); printer->Indent(); printer->Print( " function(request, metadata) {\n" "return this.client_.serverStreaming(this.hostname_ +\n"); printer->Indent(); printer->Indent(); - if (vars["mode"] == GetModeVar(Mode::OP) || - vars["mode"] == GetModeVar(Mode::OPJSPB)) { + if (vars["mode"] == GetModeVar(Mode::OP)) { printer->Print(vars, "'/$$rpc/$package_dot$$service_name$/$method_name$',\n"); } else { @@ -1328,11 +1265,12 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, GeneratorContext* context, std::map vars) { std::map method_descriptors; + bool has_server_streaming = false; // Print MethodDescriptor files. for (int i = 0; i < file->service_count(); ++i) { const ServiceDescriptor* service = file->service(i); - vars["service_name"] = service->name(); + vars["service_name"] = string(service->name()); vars["class_name"] = LowercaseFirstLetter(service->name()); for (int method_index = 0; method_index < service->method_count(); @@ -1341,21 +1279,24 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, string method_file_name = Lowercase(service->name()) + "_" + Lowercase(method->name()) + "_methoddescriptor.js"; + if (method->server_streaming()) { + has_server_streaming = true; + } std::unique_ptr output( context->Open(method_file_name)); Printer printer(output.get(), '$'); - vars["method_name"] = method->name(); - vars["in"] = method->input_type()->full_name(); - vars["in_type"] = "proto." + method->input_type()->full_name(); - vars["out"] = method->output_type()->full_name(); - vars["out_type"] = "proto." + method->output_type()->full_name(); + vars["method_name"] = string(method->name()); + vars["in"] = string(method->input_type()->full_name()); + vars["in_type"] = "proto." + string(method->input_type()->full_name()); + vars["out"] = string(method->output_type()->full_name()); + vars["out_type"] = "proto." + string(method->output_type()->full_name()); vars["method_type"] = method->server_streaming() ? "grpc.web.MethodType.SERVER_STREAMING" : "grpc.web.MethodType.UNARY"; PrintMethodDescriptorFile(&printer, vars); - method_descriptors[service->name() + "." + method->name()] = + method_descriptors[string(service->name()) + "." + string(method->name())] = "proto." + vars["package_dot"] + vars["class_name"] + "." + vars["method_name"] + "MethodDescriptor"; } @@ -1374,7 +1315,7 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, // Print the Promise and callback client. for (int i = 0; i < file->service_count(); ++i) { const ServiceDescriptor* service = file->service(i); - vars["service_name"] = service->name(); + vars["service_name"] = string(service->name()); printer1.Print(vars, "goog.provide('proto.$package_dot$$service_name$" "Client');\n\n"); @@ -1394,23 +1335,29 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, } printer1.Print(vars, "goog.require('grpc.web.$mode$ClientBase');\n"); printer1.Print(vars, "goog.require('grpc.web.ClientReadableStream');\n"); - printer1.Print(vars, "goog.require('grpc.web.Error');\n"); + printer1.Print(vars, "goog.require('grpc.web.RpcError');\n"); printer2.Print(vars, "goog.require('grpc.web.$mode$ClientBase');\n"); - printer2.Print(vars, "goog.require('grpc.web.ClientReadableStream');\n"); - printer2.Print(vars, "goog.require('grpc.web.Error');\n"); + if (has_server_streaming) { + printer2.Print(vars, "goog.require('grpc.web.ClientReadableStream');\n"); + } PrintClosureDependencies(&printer1, file); PrintClosureDependencies(&printer2, file); + printer1.Print(vars, "\ngoog.requireType('grpc.web.ClientOptions');\n"); + printer2.Print(vars, "\ngoog.requireType('grpc.web.ClientOptions');\n"); + + printer1.Print("\n\n\n"); + printer2.Print("\n\n\n"); printer1.Print("goog.scope(function() {\n\n"); printer2.Print("goog.scope(function() {\n\n"); for (int service_index = 0; service_index < file->service_count(); ++service_index) { const ServiceDescriptor* service = file->service(service_index); - vars["service_name"] = service->name(); - PrintServiceConstructor(&printer1, vars); - PrintPromiseServiceConstructor(&printer2, vars); + vars["service_name"] = string(service->name()); + PrintServiceConstructor(&printer1, vars, false); + PrintServiceConstructor(&printer2, vars, true); for (int method_index = 0; method_index < service->method_count(); ++method_index) { @@ -1418,13 +1365,13 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, const Descriptor* input_type = method->input_type(); const Descriptor* output_type = method->output_type(); vars["js_method_name"] = LowercaseFirstLetter(method->name()); - vars["method_name"] = method->name(); - vars["in"] = input_type->full_name(); - vars["out"] = output_type->full_name(); + vars["method_name"] = string(method->name()); + vars["in"] = string(input_type->full_name()); + vars["out"] = string(output_type->full_name()); vars["method_descriptor"] = - method_descriptors[service->name() + "." + method->name()]; - vars["in_type"] = "proto." + input_type->full_name(); - vars["out_type"] = "proto." + output_type->full_name(); + method_descriptors[string(service->name()) + "." + string(method->name())]; + vars["in_type"] = "proto." + string(input_type->full_name()); + vars["out_type"] = "proto." + string(output_type->full_name()); // Client streaming is not supported yet if (!method->client_streaming()) { @@ -1446,35 +1393,39 @@ void PrintMultipleFilesMode(const FileDescriptor* file, string file_name, printer2.Print("}); // goog.scope\n\n"); } -void PrintClosureES6Imports( - Printer* printer, const FileDescriptor* file, string package_dot) { +void PrintClosureES6Imports(Printer* printer, const FileDescriptor* file, + string package_dot) { for (int i = 0; i < file->service_count(); ++i) { const ServiceDescriptor* service = file->service(i); - string service_namespace = "proto." + package_dot + service->name(); + string service_namespace = "proto." + package_dot + string(service->name()); printer->Print( "import $service_name$Client_import from 'goog:$namespace$';\n", - "service_name", service->name(), - "namespace", service_namespace + "Client"); + "service_name", string(service->name()), "namespace", + service_namespace + "Client"); printer->Print( "import $service_name$PromiseClient_import from 'goog:$namespace$';\n", - "service_name", service->name(), - "namespace", service_namespace + "PromiseClient"); + "service_name", string(service->name()), "namespace", + service_namespace + "PromiseClient"); } printer->Print("\n\n\n"); } void PrintGrpcWebClosureES6File(Printer* printer, const FileDescriptor* file) { - string package_dot = file->package().empty() ? "" : file->package() + "."; + string package_dot = file->package().empty() ? "" : string(file->package()) + "."; printer->Print( - "// GENERATED CODE -- DO NOT EDIT!\n" - "\n" "/**\n" " * @fileoverview gRPC-Web generated client stub for '$file$'\n" " */\n" "\n" + "// Code generated by protoc-gen-grpc-web. DO NOT EDIT.\n" + "// versions:\n" + "// \tprotoc-gen-grpc-web v$version$\n" + "// \tprotoc v$protoc_version$\n" + "// source: $source_file$\n" + "\n" "\n", "file", file->name()); @@ -1483,13 +1434,12 @@ void PrintGrpcWebClosureES6File(Printer* printer, const FileDescriptor* file) { for (int i = 0; i < file->service_count(); ++i) { const ServiceDescriptor* service = file->service(i); - string service_namespace = "proto." + package_dot + service->name(); - printer->Print( - "export const $name$Client = $name$Client_import;\n", - "name", service->name()); + string service_namespace = "proto." + package_dot + string(service->name()); + printer->Print("export const $name$Client = $name$Client_import;\n", "name", + string(service->name())); printer->Print( "export const $name$PromiseClient = $name$PromiseClient_import;\n", - "name", service->name()); + "name", string(service->name())); } } @@ -1505,6 +1455,7 @@ class GeneratorOptions { string OutputFile(const string& proto_file) const; string mode() const { return mode_; } + string plugins() const { return plugins_; } ImportStyle import_style() const { return import_style_; } bool generate_dts() const { return generate_dts_; } bool generate_closure_es6() const { return generate_closure_es6_; } @@ -1514,6 +1465,7 @@ class GeneratorOptions { private: string file_name_; string mode_; + string plugins_; ImportStyle import_style_; bool generate_dts_; bool generate_closure_es6_; @@ -1524,6 +1476,7 @@ class GeneratorOptions { GeneratorOptions::GeneratorOptions() : file_name_(""), mode_(""), + plugins_(""), import_style_(ImportStyle::CLOSURE), generate_dts_(false), generate_closure_es6_(false), @@ -1564,6 +1517,8 @@ bool GeneratorOptions::ParseFromOptions( } } else if ("multiple_files" == option.first) { multiple_files_ = "True" == option.second; + } else if ("plugins" == option.first) { + plugins_ = option.second; } else if ("goog_promise" == option.first) { goog_promise_ = "True" == option.second; } else { @@ -1602,9 +1557,13 @@ class GrpcCodeGenerator : public CodeGenerator { uint64_t GetSupportedFeatures() const override { // Code generators must explicitly support proto3 optional. - return CodeGenerator::FEATURE_PROTO3_OPTIONAL; + return CodeGenerator::FEATURE_PROTO3_OPTIONAL | CodeGenerator::FEATURE_SUPPORTS_EDITIONS; } + // Keep synced with protoc-gen-js: https://github.com/protocolbuffers/protobuf-javascript/blob/861c8020a5c0cba9b7cdf915dffde96a4421a1f4/generator/js_generator.h#L157-L158 + Edition GetMinimumEdition() const override { return Edition::EDITION_PROTO2; } + Edition GetMaximumEdition() const override { return Edition::EDITION_2023; } + bool Generate(const FileDescriptor* file, const string& parameter, GeneratorContext* context, string* error) const override { GeneratorOptions generator_options; @@ -1614,13 +1573,15 @@ class GrpcCodeGenerator : public CodeGenerator { std::map vars; std::map method_descriptors; - string package = file->package(); + string package(file->package()); vars["package"] = package; vars["package_dot"] = package.empty() ? "" : package + '.'; vars["promise"] = "Promise"; + vars["plugins"] = generator_options.plugins(); if ("binary" == generator_options.mode()) { vars["mode"] = GetModeVar(Mode::OP); + vars["binary"] = "true"; } else if ("grpcweb" == generator_options.mode()) { vars["mode"] = GetModeVar(Mode::GRPCWEB); vars["format"] = "binary"; @@ -1628,7 +1589,8 @@ class GrpcCodeGenerator : public CodeGenerator { vars["mode"] = GetModeVar(Mode::GRPCWEB); vars["format"] = "text"; } else if ("jspb" == generator_options.mode()) { - vars["mode"] = GetModeVar(Mode::OPJSPB); + vars["mode"] = GetModeVar(Mode::OP); + vars["binary"] = "false"; if (generator_options.goog_promise()) { vars["promise"] = GRPC_PROMISE; } @@ -1650,7 +1612,11 @@ class GrpcCodeGenerator : public CodeGenerator { return true; } - string file_name = generator_options.OutputFile(file->name()); + vars["version"] = GRPC_WEB_VERSION; + vars["protoc_version"] = GetProtocVersion(context); + vars["source_file"] = string(file->name()); + + string file_name = generator_options.OutputFile(string(file->name())); if (generator_options.multiple_files() && ImportStyle::CLOSURE == generator_options.import_style()) { PrintMultipleFilesMode(file, file_name, context, vars); @@ -1668,7 +1634,7 @@ class GrpcCodeGenerator : public CodeGenerator { for (int i = 0; i < file->service_count(); ++i) { const ServiceDescriptor* service = file->service(i); - vars["service_name"] = service->name(); + vars["service_name"] = string(service->name()); switch (generator_options.import_style()) { case ImportStyle::CLOSURE: printer.Print( @@ -1696,10 +1662,11 @@ class GrpcCodeGenerator : public CodeGenerator { printer.Print(vars, "goog.require('grpc.web.$mode$ClientBase');\n"); printer.Print(vars, "goog.require('grpc.web.AbstractClientBase');\n"); printer.Print(vars, "goog.require('grpc.web.ClientReadableStream');\n"); - printer.Print(vars, "goog.require('grpc.web.Error');\n"); + printer.Print(vars, "goog.require('grpc.web.RpcError');\n"); PrintClosureDependencies(&printer, file); - + printer.Print(vars, "\ngoog.requireType('grpc.web.ClientOptions');\n"); + printer.Print("\n\n\n"); printer.Print("goog.scope(function() {\n\n"); break; case ImportStyle::COMMONJS: @@ -1714,9 +1681,9 @@ class GrpcCodeGenerator : public CodeGenerator { for (int service_index = 0; service_index < file->service_count(); ++service_index) { const ServiceDescriptor* service = file->service(service_index); - vars["service_name"] = service->name(); - PrintServiceConstructor(&printer, vars); - PrintPromiseServiceConstructor(&printer, vars); + vars["service_name"] = string(service->name()); + PrintServiceConstructor(&printer, vars, false); + PrintServiceConstructor(&printer, vars, true); for (int method_index = 0; method_index < service->method_count(); ++method_index) { @@ -1724,11 +1691,11 @@ class GrpcCodeGenerator : public CodeGenerator { const Descriptor* input_type = method->input_type(); const Descriptor* output_type = method->output_type(); vars["js_method_name"] = LowercaseFirstLetter(method->name()); - vars["method_name"] = method->name(); - vars["in"] = input_type->full_name(); - vars["out"] = output_type->full_name(); + vars["method_name"] = string(method->name()); + vars["in"] = string(input_type->full_name()); + vars["out"] = string(output_type->full_name()); vars["method_descriptor"] = - "methodDescriptor_" + service->name() + "_" + method->name(); + "methodDescriptor_" + string(service->name()) + "_" + string(method->name()); // Cross-file ref in CommonJS needs to use the module alias instead // of the global name. @@ -1737,28 +1704,28 @@ class GrpcCodeGenerator : public CodeGenerator { vars["in_type"] = ModuleAlias(input_type->file()->name()) + GetNestedMessageName(input_type); } else { - vars["in_type"] = "proto." + input_type->full_name(); + vars["in_type"] = "proto." + string(input_type->full_name()); } if (ImportStyle::COMMONJS == generator_options.import_style() && output_type->file() != file) { vars["out_type"] = ModuleAlias(output_type->file()->name()) + GetNestedMessageName(output_type); } else { - vars["out_type"] = "proto." + output_type->full_name(); + vars["out_type"] = "proto." + string(output_type->full_name()); } // Client streaming is not supported yet if (!method->client_streaming()) { if (method->server_streaming()) { vars["method_type"] = "grpc.web.MethodType.SERVER_STREAMING"; - PrintMethodInfo(&printer, vars); + PrintMethodDescriptor(&printer, vars); vars["client_type"] = "Client"; PrintServerStreamingCall(&printer, vars); vars["client_type"] = "PromiseClient"; PrintServerStreamingCall(&printer, vars); } else { vars["method_type"] = "grpc.web.MethodType.UNARY"; - PrintMethodInfo(&printer, vars); + PrintMethodDescriptor(&printer, vars); PrintUnaryCall(&printer, vars); PrintPromiseUnaryCall(&printer, vars); } @@ -1812,6 +1779,11 @@ class GrpcCodeGenerator : public CodeGenerator { } // namespace grpc int main(int argc, char* argv[]) { + if (argc == 2 && std::string(argv[1]) == "--version") { + std::cout << argv[0] << " " << grpc::web::GRPC_WEB_VERSION << std::endl; + return 0; + } + grpc::web::GrpcCodeGenerator generator; PluginMain(argc, argv, &generator); return 0; diff --git a/tools/chef/base_image_version.txt b/tools/chef/base_image_version.txt index f8fcc96b15e..ebb1d31c4f4 100644 --- a/tools/chef/base_image_version.txt +++ b/tools/chef/base_image_version.txt @@ -1 +1 @@ -202503281433 +202512091427 diff --git a/tools/chef/cookbooks/px_dev/attributes/linux.rb b/tools/chef/cookbooks/px_dev/attributes/linux.rb index 2087ba5dbfb..7af82f14002 100644 --- a/tools/chef/cookbooks/px_dev/attributes/linux.rb +++ b/tools/chef/cookbooks/px_dev/attributes/linux.rb @@ -22,10 +22,10 @@ default['owner'] = 'root' default['group'] = 'root' -default['bazel']['download_path'] = - "https://github.com/bazelbuild/bazel/releases/download/6.2.0/bazel-6.2.0-linux-x86_64" -default['bazel']['sha256'] = - '3d11c26fb9ba12c833844450bb90165b176e8a19cb5cf5923f3cec855837f17c' +default['bazelisk']['download_path'] = + "https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-amd64" +default['bazelisk']['sha256'] = + 'e1508323f347ad1465a887bc5d2bfb91cffc232d11e8e997b623227c6b32fb76' default['codecov']['download_path'] = 'https://uploader.codecov.io/v0.2.3/linux/codecov' diff --git a/tools/chef/cookbooks/px_dev/attributes/mac_os_x.rb b/tools/chef/cookbooks/px_dev/attributes/mac_os_x.rb index f4b429f74ba..0df3d4e58ac 100644 --- a/tools/chef/cookbooks/px_dev/attributes/mac_os_x.rb +++ b/tools/chef/cookbooks/px_dev/attributes/mac_os_x.rb @@ -23,10 +23,10 @@ default['owner'] = node['current_user'] default['group'] = 'wheel' -default['bazel']['download_path'] = - "https://github.com/bazelbuild/bazel/releases/download/6.2.0/bazel-6.2.0-darwin-x86_64" -default['bazel']['sha256'] = - 'd2356012843ce3a2fbba89f88191673a6ad2f7716cc46ad43ec1bcee78d36b44' +default['bazelisk']['download_path'] = + "https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-darwin-amd64" +default['bazelisk']['sha256'] = + '8fcd7ba828f673ba4b1529425e01e15ac42599ef566c17f320d8cbfe7b96a167' default['codecov']['download_path'] = 'https://uploader.codecov.io/v0.2.3/macos/codecov' diff --git a/tools/chef/cookbooks/px_dev/recipes/linters.rb b/tools/chef/cookbooks/px_dev/recipes/linters.rb index 0ec7775a9a1..d59050bd2bc 100644 --- a/tools/chef/cookbooks/px_dev/recipes/linters.rb +++ b/tools/chef/cookbooks/px_dev/recipes/linters.rb @@ -47,8 +47,8 @@ action :create end -common_remote_bin 'bazel' do - bin_name 'bazel_core' +common_remote_bin 'bazelisk' do + bin_name 'bazelisk' end if platform_family?('debian') diff --git a/tools/chef/cookbooks/px_dev/templates/bazel.erb b/tools/chef/cookbooks/px_dev/templates/bazel.erb index 5b3b9573ffa..eef1189bed0 100755 --- a/tools/chef/cookbooks/px_dev/templates/bazel.erb +++ b/tools/chef/cookbooks/px_dev/templates/bazel.erb @@ -19,7 +19,7 @@ # * Adds a --config=clang by default if it's missing from the command line. # Check if this is this pixie repo, otherwise just passthrough to bazel_core. if ! grep 'workspace(name\s=\s"px")' "$(git rev-parse --show-toplevel 2> /dev/null)/WORKSPACE" &> /dev/null; then - /opt/px_dev/bin/bazel_core "$@" + /opt/px_dev/bin/bazelisk "$@" exit $? fi; @@ -36,4 +36,4 @@ fi; cmd=$1 shift -/opt/px_dev/bin/bazel_core ${cmd:+"$cmd"} ${config:+"$config"} "$@" +/opt/px_dev/bin/bazelisk ${cmd:+"$cmd"} ${config:+"$config"} "$@" diff --git a/tools/chef/cookbooks/px_dev_extras/attributes/default.rb b/tools/chef/cookbooks/px_dev_extras/attributes/default.rb index 5b672f6b597..66c7a0e5840 100644 --- a/tools/chef/cookbooks/px_dev_extras/attributes/default.rb +++ b/tools/chef/cookbooks/px_dev_extras/attributes/default.rb @@ -14,6 +14,7 @@ # # SPDX-License-Identifier: Apache-2.0 -default['bazel']['zsh_completions'] = - "https://raw.githubusercontent.com/bazelbuild/bazel/6.0.0/scripts/zsh_completion/_bazel" -default['bazel']['zcomp_sha256'] = '4094dc84add2f23823bc341186adf6b8487fbd5d4164bd52d98891c41511eba4' +# Fetch bazel version from Pixie's .bazelversion on main branch +bazel_version = Chef::HTTP.new('https://raw.githubusercontent.com').get('/pixie-io/pixie/main/.bazelversion').strip +default['bazel']['zsh_completions'] = + "https://raw.githubusercontent.com/bazelbuild/bazel/#{bazel_version}/scripts/zsh_completion/_bazel" diff --git a/tools/chef/cookbooks/px_dev_extras/recipes/default.rb b/tools/chef/cookbooks/px_dev_extras/recipes/default.rb index d74de0e7f5f..9e98de95d9e 100644 --- a/tools/chef/cookbooks/px_dev_extras/recipes/default.rb +++ b/tools/chef/cookbooks/px_dev_extras/recipes/default.rb @@ -42,8 +42,8 @@ remote_file '/usr/local/share/zsh/site-functions/_bazel' do source node['bazel']['zsh_completions'] - mode 0644 - checksum node['bazel']['zcomp_sha256'] + mode '0644' + action :create end common_remote_bin 'faq'