diff --git a/sdks/go.mod b/sdks/go.mod index b7094dc368cf..d4af72b09a5c 100644 --- a/sdks/go.mod +++ b/sdks/go.mod @@ -60,9 +60,9 @@ require ( golang.org/x/sync v0.21.0 golang.org/x/sys v0.46.0 golang.org/x/text v0.38.0 - google.golang.org/api v0.286.0 + google.golang.org/api v0.287.0 google.golang.org/genproto v0.0.0-20260523011958-0a33c5d7ca68 - google.golang.org/grpc v1.81.1 + google.golang.org/grpc v1.82.0 google.golang.org/protobuf v1.36.11 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 @@ -174,7 +174,7 @@ require ( github.com/google/pprof v0.0.0-20260507013755-92041b743c96 // indirect github.com/google/renameio/v2 v2.0.0 // indirect github.com/google/s2a-go v0.1.9 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.16 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.17 // indirect github.com/googleapis/gax-go/v2 v2.22.0 // indirect github.com/gorilla/handlers v1.5.2 // indirect github.com/gorilla/mux v1.8.1 // indirect @@ -204,5 +204,5 @@ require ( golang.org/x/tools v0.45.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260615183401-62b3387ff324 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260615183401-62b3387ff324 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260622175928-b703f567277d // indirect ) diff --git a/sdks/go.sum b/sdks/go.sum index 03df389b0e56..1c5d04cfdaf9 100644 --- a/sdks/go.sum +++ b/sdks/go.sum @@ -538,8 +538,8 @@ github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= -github.com/googleapis/enterprise-certificate-proxy v0.3.16 h1:F/VPrx0YPBdksZJQdCAp0WUsqnNmZpUZszzfYt0M5Dw= -github.com/googleapis/enterprise-certificate-proxy v0.3.16/go.mod h1:9Yb0eAkH/Xqhvv3zbeKf/+wMJqCeocWc6KIhDvEAuYE= +github.com/googleapis/enterprise-certificate-proxy v0.3.17 h1:73NfMHdiqo9JFU9+7a5ExpVa10/R29pXfZIaW559nrg= +github.com/googleapis/enterprise-certificate-proxy v0.3.17/go.mod h1:rSEsBUemEBZEexP2y6jPp16LUmUbjmSbcPMQizR0o4k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -1326,8 +1326,8 @@ google.golang.org/api v0.69.0/go.mod h1:boanBiw+h5c3s+tBPgEzLDRHfFLWV0qXxRHz3ws7 google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.286.0 h1:TdTXMvzYKnWV1/lPbCdbXRqBrkDqjPto22H2xeZZ8LI= -google.golang.org/api v0.286.0/go.mod h1:NlOlUIr8MPoIhT9Bb/oUnRuHbJOLwxb6JSYJM8Yz+jQ= +google.golang.org/api v0.287.0 h1:CQDMqUiqZZ0U/Yge3zyjAhNQ0OSYEH0PaA7l4xtEen4= +google.golang.org/api v0.287.0/go.mod h1:pPW85yt3Iuc3unkpaMhFtMmOqnTdCwCqEOaUlnuxRlQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1425,8 +1425,8 @@ google.golang.org/genproto v0.0.0-20260523011958-0a33c5d7ca68 h1:cTHF8xtqtBN5sQ4 google.golang.org/genproto v0.0.0-20260523011958-0a33c5d7ca68/go.mod h1:RRHjglSYABVCWpQ7USCpdfhcd9t4PkajvVwyynZizTc= google.golang.org/genproto/googleapis/api v0.0.0-20260615183401-62b3387ff324 h1:g0RAkxK/smSu/iRwC/KIX1mwUoVJtk2OjbgaeS4DmUM= google.golang.org/genproto/googleapis/api v0.0.0-20260615183401-62b3387ff324/go.mod h1:Z4WJ5pJOYWFWcHEQUelD5QaZDknIQkpIL/+fyJOT9+A= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260615183401-62b3387ff324 h1:9HZDLIdYBJXAnaFOr9WHrKVycfpY+75s9HGadC0305A= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260615183401-62b3387ff324/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260622175928-b703f567277d h1:mpAgMyM9vQHxycBlDq50y1VHpfSfVwzXvrQKtYbXuUY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260622175928-b703f567277d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1456,8 +1456,8 @@ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9K google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/grpc v1.82.0 h1:vguDnZUPjE26w09A63VoxZPnvPjB5Riyc0mkXPFmAIU= +google.golang.org/grpc v1.82.0/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RemoteInference.java b/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RemoteInference.java index 9092fc9910d4..193c83d7b3ec 100644 --- a/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RemoteInference.java +++ b/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RemoteInference.java @@ -20,13 +20,11 @@ import static org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.base.Preconditions.checkArgument; import com.google.auto.value.AutoValue; -import java.util.Collections; import java.util.List; +import org.apache.beam.sdk.transforms.BatchElements; import org.apache.beam.sdk.transforms.DoFn; -import org.apache.beam.sdk.transforms.MapElements; import org.apache.beam.sdk.transforms.PTransform; import org.apache.beam.sdk.transforms.ParDo; -import org.apache.beam.sdk.transforms.SimpleFunction; import org.apache.beam.sdk.values.PCollection; import org.checkerframework.checker.nullness.qual.Nullable; @@ -82,6 +80,8 @@ public abstract static class Invoke builder(); @AutoValue.Builder @@ -92,6 +92,8 @@ abstract Builder setHandler( abstract Builder setParameters(BaseModelParameters modelParameters); + abstract Builder setBatchConfig(BatchElements.BatchConfig batchConfig); + abstract Invoke build(); } @@ -106,21 +108,26 @@ public Invoke withParameters(BaseModelParameters modelParameter return builder().setParameters(modelParameters).build(); } + /** Configures the batching behavior for the inputs. */ + public Invoke withBatchConfig(BatchElements.BatchConfig batchConfig) { + return builder().setBatchConfig(batchConfig).build(); + } + @Override public PCollection>> expand( PCollection input) { checkArgument(handler() != null, "handler() is required"); checkArgument(parameters() != null, "withParameters() is required"); - return input - .apply( - "WrapInputInList", - MapElements.via( - new SimpleFunction>() { - @Override - public List apply(InputT element) { - return Collections.singletonList(element); - } - })) + + BatchElements.BatchConfig config = batchConfig(); + PCollection> batchedInput; + if (config != null) { + batchedInput = input.apply("BatchElements", BatchElements.withConfig(config)); + } else { + batchedInput = input.apply("BatchElements", BatchElements.withDefaults()); + } + + return batchedInput // Pass the list to the inference function .apply("RemoteInference", ParDo.of(new RemoteInferenceFn(this))); } diff --git a/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RetryHandler.java b/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RetryHandler.java index cf1b2f282c6c..b124840c8ba3 100644 --- a/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RetryHandler.java +++ b/sdks/java/ml/inference/remote/src/main/java/org/apache/beam/sdk/ml/inference/remote/RetryHandler.java @@ -34,13 +34,25 @@ public class RetryHandler implements Serializable { private final Duration initialBackoff; private final Duration maxBackoff; private final Duration maxCumulativeBackoff; + private final RetryFilter retryFilter; + + @FunctionalInterface + public interface RetryFilter extends Serializable { + boolean shouldRetry(Exception e); + } private RetryHandler( - int maxRetries, Duration initialBackoff, Duration maxBackoff, Duration maxCumulativeBackoff) { + int maxRetries, + Duration initialBackoff, + Duration maxBackoff, + Duration maxCumulativeBackoff, + RetryFilter retryFilter) { this.maxRetries = maxRetries; this.initialBackoff = initialBackoff; this.maxBackoff = maxBackoff; this.maxCumulativeBackoff = maxCumulativeBackoff; + this.retryFilter = + java.util.Objects.requireNonNull(retryFilter, "retryFilter must not be null"); } public static RetryHandler withDefaults() { @@ -48,10 +60,16 @@ public static RetryHandler withDefaults() { 3, // maxRetries Duration.standardSeconds(1), // initialBackoff Duration.standardSeconds(10), // maxBackoff per retry - Duration.standardMinutes(1) // maxCumulativeBackoff + Duration.standardMinutes(1), // maxCumulativeBackoff + e -> true // retryFilter default to retrying all exceptions ); } + public RetryHandler withRetryFilter(RetryFilter retryFilter) { + return new RetryHandler( + maxRetries, initialBackoff, maxBackoff, maxCumulativeBackoff, retryFilter); + } + public T execute(RetryableRequest request) throws Exception { BackOff backoff = FluentBackoff.DEFAULT @@ -72,6 +90,11 @@ public T execute(RetryableRequest request) throws Exception { } catch (Exception e) { lastException = e; + if (retryFilter != null && !retryFilter.shouldRetry(e)) { + LOG.warn("Exception not eligible for retry. Failing immediately.", e); + throw e; + } + long backoffMillis = backoff.nextBackOffMillis(); if (backoffMillis == BackOff.STOP) { diff --git a/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RemoteInferenceTest.java b/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RemoteInferenceTest.java index eef47dddfcdd..261b87bfe3a2 100644 --- a/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RemoteInferenceTest.java +++ b/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RemoteInferenceTest.java @@ -518,36 +518,54 @@ public void testPredictionResultMapping() { pipeline.run().waitUntilFinish(); } - // Temporary behaviour until we introduce java BatchElements transform - // to batch elements in RemoteInference - @Test - public void testMultipleInputsProduceSeparateBatches() { - List inputs = Arrays.asList(new TestInput("input1"), new TestInput("input2")); + private static class GenerateInputsFn + extends org.apache.beam.sdk.transforms.DoFn { + @ProcessElement + public void processElement(ProcessContext c) { + c.output(new TestInput("input1")); + c.output(new TestInput("input2")); + } + } + @Test + public void testBatchingProducesCombinedBatches() { TestParameters params = TestParameters.builder().setConfig("test-config").build(); + // Use a single element to trigger generation of inputs within the same bundle, + // ensuring DirectRunner doesn't split them before BatchElements processes them. PCollection inputCollection = - pipeline.apply( - "CreateInputs", Create.of(inputs).withCoder(SerializableCoder.of(TestInput.class))); + pipeline + .apply("CreateTrigger", Create.of(1)) + .apply( + "GenerateInputs", org.apache.beam.sdk.transforms.ParDo.of(new GenerateInputsFn())) + .setCoder(SerializableCoder.of(TestInput.class)); + + // Configure BatchElements to force a batch of exactly 2 + org.apache.beam.sdk.transforms.BatchElements.BatchConfig batchConfig = + org.apache.beam.sdk.transforms.BatchElements.BatchConfig.builder() + .withMinBatchSize(2) + .withMaxBatchSize(2) + .build(); PCollection>> results = inputCollection.apply( "RemoteInference", RemoteInference.invoke() .handler(MockSuccessHandler.class) + .withBatchConfig(batchConfig) .withParameters(params)); PAssert.that(results) .satisfies( batches -> { int batchCount = 0; + int totalElements = 0; for (Iterable> batch : batches) { batchCount++; - int elementCount = (int) StreamSupport.stream(batch.spliterator(), false).count(); - // Each batch should contain exactly 1 element - assertEquals("Each batch should contain 1 element", 1, elementCount); + totalElements += (int) StreamSupport.stream(batch.spliterator(), false).count(); } - assertEquals("Expected 2 batches", 2, batchCount); + assertEquals("Expected 1 batch", 1, batchCount); + assertEquals("Total output elements should be 2", 2, totalElements); return null; }); diff --git a/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RetryHandlerTest.java b/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RetryHandlerTest.java new file mode 100644 index 000000000000..30f93dbdc0ee --- /dev/null +++ b/sdks/java/ml/inference/remote/src/test/java/org/apache/beam/sdk/ml/inference/remote/RetryHandlerTest.java @@ -0,0 +1,145 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.beam.sdk.ml.inference.remote; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import java.util.concurrent.atomic.AtomicInteger; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public class RetryHandlerTest { + + private static class NonRetryableException extends Exception { + NonRetryableException(String message) { + super(message); + } + } + + private static class RetryableException extends Exception { + RetryableException(String message) { + super(message); + } + } + + @Test + public void testRetryWithDefaultFilter() throws Exception { + RetryHandler handler = RetryHandler.withDefaults(); + AtomicInteger attempts = new AtomicInteger(0); + + RuntimeException thrown = + assertThrows( + RuntimeException.class, + () -> + handler.execute( + () -> { + attempts.incrementAndGet(); + throw new Exception("Always fails"); + })); + + assertTrue(thrown.getMessage().contains("exhausting retries")); + assertEquals(4, attempts.get()); // 1 initial attempt + 3 retries + } + + @Test + public void testRetryWithCustomFilter_ShouldNotRetry() { + RetryHandler handler = + RetryHandler.withDefaults() + .withRetryFilter( + e -> { + if (e instanceof NonRetryableException) { + return false; + } + return true; + }); + + AtomicInteger attempts = new AtomicInteger(0); + + NonRetryableException thrown = + assertThrows( + NonRetryableException.class, + () -> + handler.execute( + () -> { + attempts.incrementAndGet(); + throw new NonRetryableException("Should not retry"); + })); + + assertEquals("Should not retry", thrown.getMessage()); + assertEquals(1, attempts.get()); // 1 initial attempt, no retries + } + + @Test + public void testRetryWithCustomFilter_ShouldRetry() { + RetryHandler handler = + RetryHandler.withDefaults() + .withRetryFilter( + e -> { + if (e instanceof NonRetryableException) { + return false; + } + return true; + }); + + AtomicInteger attempts = new AtomicInteger(0); + + RuntimeException thrown = + assertThrows( + RuntimeException.class, + () -> + handler.execute( + () -> { + attempts.incrementAndGet(); + throw new RetryableException("Should retry"); + })); + + assertTrue(thrown.getMessage().contains("exhausting retries")); + assertEquals(4, attempts.get()); // 1 initial attempt + 3 retries + } + + @Test + public void testRetryWithCustomFilter_EventualSuccess() throws Exception { + RetryHandler handler = + RetryHandler.withDefaults() + .withRetryFilter( + e -> { + if (e instanceof NonRetryableException) { + return false; + } + return true; + }); + + AtomicInteger attempts = new AtomicInteger(0); + + String result = + handler.execute( + () -> { + if (attempts.incrementAndGet() < 3) { + throw new RetryableException("Temporary failure"); + } + return "success"; + }); + + assertEquals("success", result); + assertEquals(3, attempts.get()); // 1 initial attempt + 2 retries + } +} diff --git a/sdks/python/apache_beam/coders/coder_impl.pxd b/sdks/python/apache_beam/coders/coder_impl.pxd index e64177e6fd34..89730c17fe1d 100644 --- a/sdks/python/apache_beam/coders/coder_impl.pxd +++ b/sdks/python/apache_beam/coders/coder_impl.pxd @@ -135,7 +135,6 @@ cdef class TimestampCoderImpl(StreamCoderImpl): cdef list small_ints cdef class VarIntCoderImpl(StreamCoderImpl): - @cython.locals(ivalue=libc.stdint.int64_t) cpdef bytes encode(self, value) diff --git a/sdks/python/apache_beam/coders/coder_impl.py b/sdks/python/apache_beam/coders/coder_impl.py index 0bded25e05d2..e6b1fb6c37cd 100644 --- a/sdks/python/apache_beam/coders/coder_impl.py +++ b/sdks/python/apache_beam/coders/coder_impl.py @@ -90,6 +90,20 @@ is_compiled = False fits_in_64_bits = lambda x: -(1 << 63) <= x <= (1 << 63) - 1 + +def _as_signed_int64(value): + # type: (int) -> int + + """Folds a uint64 to the signed int64 with the same bits (and VarInt + encoding), which the Cython int64_t stream params accept. Values outside the + 64-bit range raise here so the pure-Python path matches Cython's overflow.""" + if (1 << 63) <= value < (1 << 64): + return int(value) - (1 << 64) + if not fits_in_64_bits(value): + raise OverflowError("%d is out of range for a 64-bit integer." % value) + return value + + if TYPE_CHECKING or SLOW_STREAM: from .slow_stream import ByteCountingOutputStream from .slow_stream import InputStream as create_InputStream @@ -1044,12 +1058,14 @@ class VarIntCoderImpl(StreamCoderImpl): def encode_to_stream(self, value, out, nested): # type: (int, create_OutputStream, bool) -> None try: - out.write_var_int64(value) + # Fold uint64 values into signed int64 so Cython doesn't overflow. + out.write_var_int64(_as_signed_int64(value)) except OverflowError as e: raise OverflowError( f"Integer value '{value}' is out of the encodable range for " - f"VarIntCoder. This coder is limited to values that fit " - f"within a 64-bit signed integer (-(2**63) to 2**63 - 1). " + f"VarIntCoder. This coder is limited to 64-bit integers: the " + f"signed range -(2**63) to 2**63 - 1, plus unsigned values up to " + f"2**64 - 1 which share the same wire encoding. " f"Original error: {e}") from e def decode_from_stream(self, in_stream, nested): @@ -1057,9 +1073,11 @@ def decode_from_stream(self, in_stream, nested): return in_stream.read_var_int64() def encode(self, value): - ivalue = value # type cast - if 0 <= ivalue < len(small_ints): - return small_ints[ivalue] + # Compare as a Python object: a uint64 value overflows the int64_t cast + # the compiled fast path used to do here. Non-small values (including + # uint64) fall through to encode_to_stream, which folds them. + if 0 <= value < len(small_ints): + return small_ints[value] return StreamCoderImpl.encode(self, value) def decode(self, encoded): @@ -1073,11 +1091,11 @@ def estimate_size(self, value, nested=False): # type: (Any, bool) -> int # Note that VarInts are encoded the same way regardless of nesting. try: - return get_varint_size(value) + return get_varint_size(_as_signed_int64(value)) except OverflowError as e: raise OverflowError( f"Cannot estimate size for integer value '{value}'. " - f"Value is out of the range for VarIntCoder (64-bit signed integer). " + f"Value is out of the range for VarIntCoder (64-bit integer). " f"Original error: {e}") from e diff --git a/sdks/python/apache_beam/coders/coders_test_common.py b/sdks/python/apache_beam/coders/coders_test_common.py index 422d494b61c7..939e44aff468 100644 --- a/sdks/python/apache_beam/coders/coders_test_common.py +++ b/sdks/python/apache_beam/coders/coders_test_common.py @@ -437,6 +437,24 @@ def test_varint_coder(self): for k in range(0, int(math.log(MAX_64_BIT_INT))) ]) + def test_varint_coder_uint64(self): + # uint64 values [2**63, 2**64) must encode like the signed int64 with the + # same bits instead of overflowing Cython's int64_t. Decoding is signed, + # matching Java's VarIntCoder. + coder = coders.VarIntCoder() + impl = coder.get_impl() + for v in [1 << 63, (1 << 63) + 12345, (1 << 64) - 1]: + signed_twin = v - (1 << 64) + encoded = coder.encode(v) + self.assertEqual(encoded, coder.encode(signed_twin)) + self.assertEqual(impl.estimate_size(v), len(encoded)) + self.assertEqual(coder.decode(encoded), signed_twin) + + # Values outside the 64-bit range stay out of range on both paths. + for v in [1 << 64, (1 << 70), -(1 << 63) - 1]: + with self.assertRaises(OverflowError): + coder.encode(v) + def test_varint32_coder(self): # Small ints. self.check_coder(coders.VarInt32Coder(), *range(-10, 10)) diff --git a/sdks/python/apache_beam/io/gcp/pubsub_integration_test.py b/sdks/python/apache_beam/io/gcp/pubsub_integration_test.py index 12b200764578..89fd4461beb3 100644 --- a/sdks/python/apache_beam/io/gcp/pubsub_integration_test.py +++ b/sdks/python/apache_beam/io/gcp/pubsub_integration_test.py @@ -363,7 +363,6 @@ def test_batch_write_with_ordering_key(self): # Retry pulling to handle PubSub delivery delays received_messages = [] received_message_ids = set() - ack_ids = [] deadline = time.time() + 60 # wait up to 60 seconds while time.time() < deadline: response = self.sub_client.pull( @@ -371,8 +370,18 @@ def test_batch_write_with_ordering_key(self): 'subscription': ordering_sub.name, 'max_messages': 10, }) + # Acknowledge received messages immediately. This is critical when message + # ordering is enabled because outstanding (unacknowledged) messages block + # the delivery of subsequent messages with the same ordering key. + ack_ids = [msg.ack_id for msg in response.received_messages] + if ack_ids: + self.sub_client.acknowledge( + request={ + 'subscription': ordering_sub.name, + 'ack_ids': ack_ids, + }) + for msg in response.received_messages: - ack_ids.append(msg.ack_id) # Pub/Sub guarantees at-least-once delivery, so we must deduplicate # messages by message_id to handle potential duplicate deliveries. if msg.message.message_id not in received_message_ids: @@ -391,13 +400,6 @@ def test_batch_write_with_ordering_key(self): self.assertEqual(received_map[b'order_data001'].ordering_key, 'key1') self.assertEqual(received_map[b'order_data002'].ordering_key, 'key1') self.assertEqual(received_map[b'order_data003'].ordering_key, 'key2') - - if ack_ids: - self.sub_client.acknowledge( - request={ - 'subscription': ordering_sub.name, - 'ack_ids': ack_ids, - }) finally: self.sub_client.delete_subscription( request={'subscription': ordering_sub.name}) diff --git a/sdks/python/container/ml/py310/base_image_requirements.txt b/sdks/python/container/ml/py310/base_image_requirements.txt index 415b7579dc8b..85a199d9b2a4 100644 --- a/sdks/python/container/ml/py310/base_image_requirements.txt +++ b/sdks/python/container/ml/py310/base_image_requirements.txt @@ -27,7 +27,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astunparse==1.6.3 async-timeout==5.0.1 @@ -42,11 +42,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -65,15 +65,15 @@ fsspec==2026.6.0 future==1.0.0 gast==0.7.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -86,16 +86,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -106,7 +106,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.14.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -125,7 +125,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.12.2 +keras==3.12.3 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 libclang==18.1.1 @@ -147,10 +147,10 @@ nltk==3.9.4 numpy==2.2.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -203,7 +203,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.15.3 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/ml/py310/gpu_image_requirements.txt b/sdks/python/container/ml/py310/gpu_image_requirements.txt index a1ece225e0c6..9121ebe54150 100644 --- a/sdks/python/container/ml/py310/gpu_image_requirements.txt +++ b/sdks/python/container/ml/py310/gpu_image_requirements.txt @@ -28,7 +28,7 @@ aiohttp==3.14.1 aiosignal==1.4.0 annotated-doc==0.0.4 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astor==0.8.1 astunparse==1.6.3 @@ -46,8 +46,8 @@ cbor2==6.1.2 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 cloudpickle==3.1.2 compressed-tensors==0.10.2 crcmod==1.7 @@ -56,7 +56,7 @@ cuda-bindings==13.3.1 cuda-pathfinder==1.5.5 cuda-toolkit==13.0.2 cupy-cuda12x==14.1.1 -Cython==3.2.5 +Cython==3.2.6 depyf==0.19.0 detect-installer==0.1.0 dill==0.3.1.1 @@ -70,9 +70,9 @@ email-validator==2.3.0 envoy-data-plane==0.2.6 exceptiongroup==1.3.1 execnet==2.1.2 -fastapi==0.138.0 +fastapi==0.138.1 fastapi-cli==0.0.27 -fastapi-cloud-cli==0.20.0 +fastapi-cloud-cli==0.21.0 fastar==0.11.0 fastavro==1.12.2 fasteners==0.20 @@ -85,15 +85,15 @@ future==1.0.0 gast==0.7.0 gguf==0.19.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -106,16 +106,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -126,7 +126,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.16.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httptools==0.8.0 @@ -148,7 +148,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.12.2 +keras==3.12.3 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 lark==1.2.2 @@ -163,7 +163,7 @@ MarkupSafe==3.0.3 mdit-py-plugins==0.6.1 mdurl==0.1.2 memray==1.19.3 -mistral_common==1.11.3 +mistral_common==1.11.5 ml_dtypes==0.5.4 mmh3==5.2.1 mock==5.2.0 @@ -212,10 +212,10 @@ objsize==0.7.1 openai==1.107.1 openai-harmony==0.0.8 opencv-python-headless==4.13.0.92 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -231,7 +231,7 @@ pip==26.1.2 platformdirs==4.10.0 pluggy==1.6.0 portalocker==3.2.0 -prometheus-fastapi-instrumentator==8.0.1 +prometheus-fastapi-instrumentator==8.0.2 prometheus_client==0.25.0 propcache==0.5.2 proto-plus==1.28.0 @@ -283,7 +283,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.15.3 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 sentencepiece==0.2.1 sentry-sdk==2.63.0 @@ -319,7 +319,7 @@ torchvision==0.22.1 tqdm==4.68.3 transformers==4.55.4 triton==3.3.1 -typer==0.26.7 +typer==0.26.8 typing-inspection==0.4.2 typing_extensions==4.15.0 tzdata==2026.2 diff --git a/sdks/python/container/ml/py311/base_image_requirements.txt b/sdks/python/container/ml/py311/base_image_requirements.txt index feafa1d64d02..1e17df93a2fd 100644 --- a/sdks/python/container/ml/py311/base_image_requirements.txt +++ b/sdks/python/container/ml/py311/base_image_requirements.txt @@ -27,7 +27,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astunparse==1.6.3 attrs==26.1.0 @@ -41,11 +41,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -63,15 +63,15 @@ fsspec==2026.6.0 future==1.0.0 gast==0.7.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -84,16 +84,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -105,7 +105,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.14.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -124,7 +124,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.14.1 +keras==3.15.0 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 libclang==18.1.1 @@ -146,10 +146,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -202,7 +202,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.17.1 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/ml/py311/gpu_image_requirements.txt b/sdks/python/container/ml/py311/gpu_image_requirements.txt index ca6b47fa87b5..a36dc5c84f9e 100644 --- a/sdks/python/container/ml/py311/gpu_image_requirements.txt +++ b/sdks/python/container/ml/py311/gpu_image_requirements.txt @@ -28,7 +28,7 @@ aiohttp==3.14.1 aiosignal==1.4.0 annotated-doc==0.0.4 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astor==0.8.1 astunparse==1.6.3 @@ -45,8 +45,8 @@ cbor2==6.1.2 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 cloudpickle==3.1.2 compressed-tensors==0.10.2 crcmod==1.7 @@ -55,7 +55,7 @@ cuda-bindings==13.3.1 cuda-pathfinder==1.5.5 cuda-toolkit==13.0.2 cupy-cuda12x==14.1.1 -Cython==3.2.5 +Cython==3.2.6 depyf==0.19.0 detect-installer==0.1.0 dill==0.3.1.1 @@ -68,9 +68,9 @@ einops==0.8.2 email-validator==2.3.0 envoy_data_plane==1.0.3 execnet==2.1.2 -fastapi==0.138.0 +fastapi==0.138.1 fastapi-cli==0.0.27 -fastapi-cloud-cli==0.20.0 +fastapi-cloud-cli==0.21.0 fastar==0.11.0 fastavro==1.12.2 fasteners==0.20 @@ -83,15 +83,15 @@ future==1.0.0 gast==0.7.0 gguf==0.19.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -104,16 +104,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -125,7 +125,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.16.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httptools==0.8.0 @@ -147,7 +147,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.14.1 +keras==3.15.0 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 lark==1.2.2 @@ -162,7 +162,7 @@ MarkupSafe==3.0.3 mdit-py-plugins==0.6.1 mdurl==0.1.2 memray==1.19.3 -mistral_common==1.11.3 +mistral_common==1.11.5 ml_dtypes==0.5.4 mmh3==5.2.1 mock==5.2.0 @@ -211,10 +211,10 @@ objsize==0.7.1 openai==1.107.1 openai-harmony==0.0.8 opencv-python-headless==4.13.0.92 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -230,7 +230,7 @@ pip==26.1.2 platformdirs==4.10.0 pluggy==1.6.0 portalocker==3.2.0 -prometheus-fastapi-instrumentator==8.0.1 +prometheus-fastapi-instrumentator==8.0.2 prometheus_client==0.25.0 propcache==0.5.2 proto-plus==1.28.0 @@ -282,7 +282,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.17.1 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 sentencepiece==0.2.1 sentry-sdk==2.63.0 @@ -317,7 +317,7 @@ torchvision==0.22.1 tqdm==4.68.3 transformers==4.55.4 triton==3.3.1 -typer==0.26.7 +typer==0.26.8 typing-inspection==0.4.2 typing_extensions==4.15.0 tzdata==2026.2 diff --git a/sdks/python/container/ml/py312/base_image_requirements.txt b/sdks/python/container/ml/py312/base_image_requirements.txt index a65289f9212b..378d80b7f7f2 100644 --- a/sdks/python/container/ml/py312/base_image_requirements.txt +++ b/sdks/python/container/ml/py312/base_image_requirements.txt @@ -27,7 +27,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astunparse==1.6.3 attrs==26.1.0 @@ -40,11 +40,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -62,15 +62,15 @@ fsspec==2026.6.0 future==1.0.0 gast==0.7.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -83,16 +83,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -104,7 +104,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.14.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -122,7 +122,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.14.1 +keras==3.15.0 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 libclang==18.1.1 @@ -144,10 +144,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -200,7 +200,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/ml/py312/gpu_image_requirements.txt b/sdks/python/container/ml/py312/gpu_image_requirements.txt index 8ae5c75d981d..1887e1ea19d3 100644 --- a/sdks/python/container/ml/py312/gpu_image_requirements.txt +++ b/sdks/python/container/ml/py312/gpu_image_requirements.txt @@ -28,7 +28,7 @@ aiohttp==3.14.1 aiosignal==1.4.0 annotated-doc==0.0.4 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astor==0.8.1 astunparse==1.6.3 @@ -44,8 +44,8 @@ cbor2==6.1.2 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 cloudpickle==3.1.2 compressed-tensors==0.10.2 crcmod==1.7 @@ -54,7 +54,7 @@ cuda-bindings==13.3.1 cuda-pathfinder==1.5.5 cuda-toolkit==13.0.2 cupy-cuda12x==14.1.1 -Cython==3.2.5 +Cython==3.2.6 depyf==0.19.0 detect-installer==0.1.0 dill==0.3.1.1 @@ -67,9 +67,9 @@ einops==0.8.2 email-validator==2.3.0 envoy_data_plane==1.0.3 execnet==2.1.2 -fastapi==0.138.0 +fastapi==0.138.1 fastapi-cli==0.0.27 -fastapi-cloud-cli==0.20.0 +fastapi-cloud-cli==0.21.0 fastar==0.11.0 fastavro==1.12.2 fasteners==0.20 @@ -82,15 +82,15 @@ future==1.0.0 gast==0.7.0 gguf==0.19.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -103,16 +103,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -124,7 +124,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.16.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httptools==0.8.0 @@ -145,7 +145,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.14.1 +keras==3.15.0 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 lark==1.2.2 @@ -160,7 +160,7 @@ MarkupSafe==3.0.3 mdit-py-plugins==0.6.1 mdurl==0.1.2 memray==1.19.3 -mistral_common==1.11.3 +mistral_common==1.11.5 ml_dtypes==0.5.4 mmh3==5.2.1 mock==5.2.0 @@ -209,10 +209,10 @@ objsize==0.7.1 openai==1.107.1 openai-harmony==0.0.8 opencv-python-headless==4.13.0.92 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -228,7 +228,7 @@ pip==26.1.2 platformdirs==4.10.0 pluggy==1.6.0 portalocker==3.2.0 -prometheus-fastapi-instrumentator==8.0.1 +prometheus-fastapi-instrumentator==8.0.2 prometheus_client==0.25.0 propcache==0.5.2 proto-plus==1.28.0 @@ -280,7 +280,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 sentencepiece==0.2.1 sentry-sdk==2.63.0 @@ -315,7 +315,7 @@ torchvision==0.22.1 tqdm==4.68.3 transformers==4.55.4 triton==3.3.1 -typer==0.26.7 +typer==0.26.8 typing-inspection==0.4.2 typing_extensions==4.15.0 tzdata==2026.2 diff --git a/sdks/python/container/ml/py313/base_image_requirements.txt b/sdks/python/container/ml/py313/base_image_requirements.txt index 704ede901eae..083945f304b9 100644 --- a/sdks/python/container/ml/py313/base_image_requirements.txt +++ b/sdks/python/container/ml/py313/base_image_requirements.txt @@ -27,7 +27,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 astunparse==1.6.3 attrs==26.1.0 @@ -40,11 +40,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -62,15 +62,15 @@ fsspec==2026.6.0 future==1.0.0 gast==0.7.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.35 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -82,16 +82,16 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-pasta==0.2.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -103,7 +103,7 @@ h11==0.16.0 h2==4.3.0 h5py==3.14.0 hf-xet==1.5.1 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -121,7 +121,7 @@ joblib==1.5.3 jsonpickle==4.1.2 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 -keras==3.14.1 +keras==3.15.0 keyring==25.7.0 keyrings.google-artifactregistry-auth==1.1.2 libclang==18.1.1 @@ -143,10 +143,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 opt_einsum==3.4.0 optree==0.19.1 oracledb==4.0.1 @@ -199,7 +199,7 @@ rsa==4.9.1 safetensors==0.8.0 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/py310/base_image_requirements.txt b/sdks/python/container/py310/base_image_requirements.txt index acbc3447f464..beb5b4125551 100644 --- a/sdks/python/container/py310/base_image_requirements.txt +++ b/sdks/python/container/py310/base_image_requirements.txt @@ -26,7 +26,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 async-timeout==5.0.1 attrs==26.1.0 @@ -40,11 +40,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -59,15 +59,15 @@ freezegun==1.5.5 frozenlist==1.8.0 future==1.0.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -80,15 +80,15 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -97,7 +97,7 @@ grpclib==0.4.9 guppy3==3.1.7 h11==0.16.0 h2==4.3.0 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -131,10 +131,10 @@ nltk==3.9.4 numpy==2.2.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 oracledb==4.0.1 orjson==3.11.9 packaging==26.2 @@ -184,7 +184,7 @@ rpds-py==0.30.0 rsa==4.9.1 scikit-learn==1.7.2 scipy==1.15.3 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/py311/base_image_requirements.txt b/sdks/python/container/py311/base_image_requirements.txt index 4401c8ecd65f..0572aa4e6f04 100644 --- a/sdks/python/container/py311/base_image_requirements.txt +++ b/sdks/python/container/py311/base_image_requirements.txt @@ -26,7 +26,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 attrs==26.1.0 backports.tarfile==1.2.0 @@ -39,11 +39,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -57,15 +57,15 @@ freezegun==1.5.5 frozenlist==1.8.0 future==1.0.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -78,15 +78,15 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -96,7 +96,7 @@ grpclib==0.4.9 guppy3==3.1.7 h11==0.16.0 h2==4.3.0 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -130,10 +130,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 oracledb==4.0.1 orjson==3.11.9 packaging==26.2 @@ -183,7 +183,7 @@ rpds-py==2026.5.1 rsa==4.9.1 scikit-learn==1.7.2 scipy==1.17.1 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/py312/base_image_requirements.txt b/sdks/python/container/py312/base_image_requirements.txt index 2b13a0b3d5e8..0dfea19f1501 100644 --- a/sdks/python/container/py312/base_image_requirements.txt +++ b/sdks/python/container/py312/base_image_requirements.txt @@ -26,7 +26,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 attrs==26.1.0 beartype==0.22.9 @@ -38,11 +38,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -56,15 +56,15 @@ freezegun==1.5.5 frozenlist==1.8.0 future==1.0.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.31 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -77,15 +77,15 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -95,7 +95,7 @@ grpclib==0.4.9 guppy3==3.1.7 h11==0.16.0 h2==4.3.0 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -128,10 +128,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 oracledb==4.0.1 orjson==3.11.9 packaging==26.2 @@ -181,7 +181,7 @@ rpds-py==2026.5.1 rsa==4.9.1 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/py313/base_image_requirements.txt b/sdks/python/container/py313/base_image_requirements.txt index 469d4c55dbdb..eb667db2120b 100644 --- a/sdks/python/container/py313/base_image_requirements.txt +++ b/sdks/python/container/py313/base_image_requirements.txt @@ -26,7 +26,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 attrs==26.1.0 beartype==0.22.9 @@ -38,11 +38,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -56,15 +56,15 @@ freezegun==1.5.5 frozenlist==1.8.0 future==1.0.0 google-api-core==2.31.0 -google-api-python-client==2.197.0 +google-api-python-client==2.198.0 google-apitools==0.5.35 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -76,15 +76,15 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -94,7 +94,7 @@ grpclib==0.4.9 guppy3==3.1.7 h11==0.16.0 h2==4.3.0 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -127,10 +127,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 oracledb==4.0.1 orjson==3.11.9 packaging==26.2 @@ -180,7 +180,7 @@ rpds-py==2026.5.1 rsa==4.9.1 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0 diff --git a/sdks/python/container/py314/base_image_requirements.txt b/sdks/python/container/py314/base_image_requirements.txt index 2317e26f305c..1065c6b4b45a 100644 --- a/sdks/python/container/py314/base_image_requirements.txt +++ b/sdks/python/container/py314/base_image_requirements.txt @@ -26,7 +26,7 @@ aiohappyeyeballs==2.6.2 aiohttp==3.14.1 aiosignal==1.4.0 annotated-types==0.7.0 -anyio==4.14.0 +anyio==4.14.1 asn1crypto==1.5.1 attrs==26.1.0 beartype==0.22.9 @@ -38,11 +38,11 @@ cachetools==6.2.6 certifi==2026.6.17 cffi==2.0.0 charset-normalizer==3.4.7 -click==8.4.1 -cloud-sql-python-connector==1.20.3 +click==8.4.2 +cloud-sql-python-connector==1.20.4 crcmod==1.7 cryptography==47.0.0 -Cython==3.2.5 +Cython==3.2.6 dill==0.3.1.1 distro==1.9.0 dnspython==2.8.0 @@ -57,13 +57,13 @@ frozenlist==1.8.0 future==1.0.0 google-api-core==2.31.0 google-apitools==0.5.35 -google-auth==2.55.0 +google-auth==2.55.1 google-auth-httplib2==0.2.1 google-cloud-aiplatform==1.158.0 google-cloud-bigquery==3.42.1 google-cloud-bigquery-storage==2.39.0 -google-cloud-bigtable==2.39.0 -google-cloud-build==3.37.0 +google-cloud-bigtable==2.40.0 +google-cloud-build==3.38.0 google-cloud-core==2.6.0 google-cloud-dataflow-client==0.13.0 google-cloud-datastore==2.25.0 @@ -75,15 +75,15 @@ google-cloud-pubsub==2.39.0 google-cloud-recommendations-ai==0.10.18 google-cloud-resource-manager==1.18.0 google-cloud-secret-manager==2.29.0 -google-cloud-spanner==3.68.0 +google-cloud-spanner==3.69.0 google-cloud-storage==3.12.0 google-cloud-videointelligence==2.20.0 google-cloud-vision==3.15.0 google-crc32c==1.8.0 -google-genai==2.9.0 +google-genai==2.10.0 google-resumable-media==2.10.0 googleapis-common-protos==1.75.0 -greenlet==3.5.2 +greenlet==3.5.3 grpc-google-iam-v1==0.14.4 grpc-interceptor==0.15.4 grpcio==1.81.1 @@ -93,7 +93,7 @@ grpclib==0.4.9 guppy3==3.1.7 h11==0.16.0 h2==4.3.0 -hpack==4.1.0 +hpack==4.2.0 httpcore==1.0.9 httplib2==0.31.2 httpx==0.28.1 @@ -126,10 +126,10 @@ nltk==3.9.4 numpy==2.4.6 oauth2client==4.1.3 objsize==0.7.1 -opentelemetry-api==1.42.1 +opentelemetry-api==1.43.0 opentelemetry-resourcedetector-gcp==1.12.0a0 -opentelemetry-sdk==1.42.1 -opentelemetry-semantic-conventions==0.63b1 +opentelemetry-sdk==1.43.0 +opentelemetry-semantic-conventions==0.64b0 oracledb==4.0.1 orjson==3.11.9 packaging==26.2 @@ -179,7 +179,7 @@ rpds-py==2026.5.1 rsa==4.9.1 scikit-learn==1.7.2 scipy==1.18.0 -scramp==1.4.9 +scramp==1.4.10 SecretStorage==3.5.0 setuptools==82.0.1 six==1.17.0