diff --git a/.librarian/generator-input/client-post-processing/spanner-integration.yaml b/.librarian/generator-input/client-post-processing/spanner-integration.yaml index a7b4846e64da..3468bd3f567f 100644 --- a/.librarian/generator-input/client-post-processing/spanner-integration.yaml +++ b/.librarian/generator-input/client-post-processing/spanner-integration.yaml @@ -41,7 +41,10 @@ replacements: - paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py] before: '(from grpc\.experimental import aio # type: ignore\n\n)(?!from google\.cloud\.spanner_v1\.metrics)' after: | - \g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import MetricsInterceptor + \g<1>from google.cloud.spanner_v1.metrics.metrics_interceptor import ( + AsyncMetricsInterceptor, + MetricsInterceptor, + ) count: 1 - paths: [packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc.py] @@ -156,6 +159,32 @@ replacements: \g<3>\g<4> count: 1 + - paths: + - packages/google-cloud-spanner/google/cloud/spanner_v1/services/spanner/transports/grpc_asyncio.py + before: '([ \t]+)(\("grpc\.keepalive_time_ms", 120000\),\n[ \t]+\](?:,\n[ \t]*|\n[ \t]*)\)\n+)([ \t]+)(self\._interceptor = _LoggingClientAIOInterceptor\(\)\n)' + after: | + \g<1>\g<2>\g<3>if metrics_interceptor is not None: + self._metrics_interceptor = AsyncMetricsInterceptor() + # Attach interceptor directly since grpc.aio does not provide intercept_channel. + if hasattr(self._grpc_channel, "_unary_unary_interceptors"): + self._grpc_channel._unary_unary_interceptors.append( + self._metrics_interceptor + ) + if hasattr(self._grpc_channel, "_unary_stream_interceptors"): + self._grpc_channel._unary_stream_interceptors.append( + self._metrics_interceptor + ) + if hasattr(self._grpc_channel, "_stream_unary_interceptors"): + self._grpc_channel._stream_unary_interceptors.append( + self._metrics_interceptor + ) + if hasattr(self._grpc_channel, "_stream_stream_interceptors"): + self._grpc_channel._stream_stream_interceptors.append( + self._metrics_interceptor + ) + + self._interceptor = _LoggingClientAIOInterceptor() + count: 1 - paths: [packages/google-cloud-spanner/setup.py] before: '(?s)dependencies = \[.*?\]\nextras = \{\s*\}' after: |