From ca696fbeac1f7be841bcc53f1f8aac3ec042979c Mon Sep 17 00:00:00 2001 From: mrishi Date: Tue, 12 May 2026 12:22:48 +0530 Subject: [PATCH 1/5] fix(feature_store): safely parse bq:// URIs using removeprefix The previous implementation used `.lstrip("bq://")`, which greedily dropped valid characters (like 'b' or 'q') from the beginning of Google Cloud Project IDs. Replaced `lstrip` with `removeprefix` to explicitly remove only the protocol string without mutating the project ID. --- vertexai/resources/preview/feature_store/offline_store.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vertexai/resources/preview/feature_store/offline_store.py b/vertexai/resources/preview/feature_store/offline_store.py index 3a785711e4..ad5bf193e7 100644 --- a/vertexai/resources/preview/feature_store/offline_store.py +++ b/vertexai/resources/preview/feature_store/offline_store.py @@ -118,7 +118,8 @@ def _feature_to_data_source( bq_uri = feature_group._gca_resource.big_query.big_query_source.input_uri assert bq_uri - fully_qualified_table = bq_uri.lstrip("bq://") + fully_qualified_table = bq_uri.removeprefix("bq://") + assert fully_qualified_table query = ( From 804ce2fa1cc164e13855432382044f0d06568d4d Mon Sep 17 00:00:00 2001 From: mrishi Date: Thu, 11 Jun 2026 06:55:29 +0530 Subject: [PATCH 2/5] fix(offline_store): safely parse bq:// URIs using removeprefix --- agentplatform/resources/preview/feature_store/offline_store.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agentplatform/resources/preview/feature_store/offline_store.py b/agentplatform/resources/preview/feature_store/offline_store.py index 4ba369d168..1e55ae127c 100644 --- a/agentplatform/resources/preview/feature_store/offline_store.py +++ b/agentplatform/resources/preview/feature_store/offline_store.py @@ -116,7 +116,7 @@ def _feature_to_data_source( bq_uri = feature_group._gca_resource.big_query.big_query_source.input_uri assert bq_uri - fully_qualified_table = bq_uri.lstrip("bq://") + fully_qualified_table = bq_uri.removeprefix("bq://") assert fully_qualified_table query = ( From 9bb798fbea333b3ff4ac6f290320a0646e0c7c81 Mon Sep 17 00:00:00 2001 From: mrishi Date: Thu, 11 Jun 2026 06:55:54 +0530 Subject: [PATCH 3/5] fix(offline_store): safely parse bq:// URIs using removeprefix --- google/cloud/aiplatform/preview/datasets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/cloud/aiplatform/preview/datasets.py b/google/cloud/aiplatform/preview/datasets.py index 1616abb991..5e0bde0340 100644 --- a/google/cloud/aiplatform/preview/datasets.py +++ b/google/cloud/aiplatform/preview/datasets.py @@ -1409,7 +1409,7 @@ def assemble( ) result = assemble_lro.result(timeout=None) _LOGGER.log_action_completed_against_resource("data", "assembled", self) - table_id = result.bigquery_destination.lstrip("bq://") + table_id = result.bigquery_destination.removeprefix("bq://") if load_dataframe: session_options = bigframes.BigQueryOptions( credentials=initializer.global_config.credentials, From f7e9447ad259eca1bfc7b719142dafecc346d349 Mon Sep 17 00:00:00 2001 From: mrishi Date: Fri, 12 Jun 2026 12:23:02 +0530 Subject: [PATCH 4/5] fix(aiplatform): safely parse bq:// URIs using removeprefix --- google/cloud/aiplatform/preview/datasets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/cloud/aiplatform/preview/datasets.py b/google/cloud/aiplatform/preview/datasets.py index 5e0bde0340..cc7d11d5c6 100644 --- a/google/cloud/aiplatform/preview/datasets.py +++ b/google/cloud/aiplatform/preview/datasets.py @@ -1122,7 +1122,7 @@ def to_bigframes(self) -> "bigframes.pandas.DataFrame": # type: ignore # noqa: A BigFrames dataframe. """ bigframes = _try_import_bigframes() - return bigframes.pandas.read_gbq_table(self.bigquery_table.lstrip("bq://")) + return bigframes.pandas.read_gbq_table(self.bigquery_table.removeprefix("bq://")) @classmethod @base.optional_sync() From 8f7aa97109ee06b8f3175461b0df795f1e2c3e48 Mon Sep 17 00:00:00 2001 From: mrishi Date: Thu, 18 Jun 2026 20:47:30 +0530 Subject: [PATCH 5/5] fix(ai_platform): Black check --- google/cloud/aiplatform/preview/datasets.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/google/cloud/aiplatform/preview/datasets.py b/google/cloud/aiplatform/preview/datasets.py index cc7d11d5c6..2a19876e8b 100644 --- a/google/cloud/aiplatform/preview/datasets.py +++ b/google/cloud/aiplatform/preview/datasets.py @@ -39,7 +39,6 @@ from google.protobuf import struct_pb2 from google.protobuf import json_format - _MULTIMODAL_METADATA_SCHEMA_URI = ( "gs://google-cloud-aiplatform/schema/dataset/metadata/multimodal_1.0.0.yaml" ) @@ -1122,7 +1121,9 @@ def to_bigframes(self) -> "bigframes.pandas.DataFrame": # type: ignore # noqa: A BigFrames dataframe. """ bigframes = _try_import_bigframes() - return bigframes.pandas.read_gbq_table(self.bigquery_table.removeprefix("bq://")) + return bigframes.pandas.read_gbq_table( + self.bigquery_table.removeprefix("bq://") + ) @classmethod @base.optional_sync()