Skip to content

Commit 8ec57f4

Browse files
sararobcopybara-github
authored andcommitted
chore: Resolve mypy errors in prompts and datasets modules
PiperOrigin-RevId: 863383842
1 parent d8cc50d commit 8ec57f4

File tree

3 files changed

+62
-43
lines changed

3 files changed

+62
-43
lines changed

vertexai/_genai/datasets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,7 @@ def assemble(
998998
operation=operation,
999999
timeout_seconds=config.timeout,
10001000
)
1001-
return response["bigqueryDestination"]
1001+
return response["bigqueryDestination"] # type: ignore[no-any-return]
10021002

10031003
def assess_tuning_resources(
10041004
self,
@@ -1820,7 +1820,7 @@ async def assemble(
18201820
operation=operation,
18211821
timeout_seconds=config.timeout,
18221822
)
1823-
return response["bigqueryDestination"]
1823+
return response["bigqueryDestination"] # type: ignore[no-any-return]
18241824

18251825
async def assess_tuning_resources(
18261826
self,

vertexai/_genai/prompt_optimizer.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -619,12 +619,11 @@ def _custom_optimize_prompt(
619619
response=response_dict, kwargs=parameter_model.model_dump()
620620
)
621621
self._api_client._verify_response(response_value)
622-
if (
623-
response_value.content is not None
624-
and len(response_value.content.parts) > 0
625-
and response_value.content.parts[0].text is not None
626-
):
627-
return_value.append(response_value.content.parts[0].text)
622+
content = response_value.content
623+
if content is not None:
624+
parts = content.parts
625+
if parts and parts[0].text is not None:
626+
return_value.append(parts[0].text)
628627

629628
output = "".join(return_value)
630629
final_response = types.OptimizeResponse(raw_text_response=output)
@@ -972,12 +971,11 @@ async def _custom_optimize_prompt(
972971
response=response_dict, kwargs=parameter_model.model_dump()
973972
)
974973
self._api_client._verify_response(response_value)
975-
if (
976-
response_value.content is not None
977-
and len(response_value.content.parts) > 0
978-
and response_value.content.parts[0].text is not None
979-
):
980-
return_value.append(response_value.content.parts[0].text)
974+
content = response_value.content
975+
if content is not None:
976+
parts = content.parts
977+
if parts and parts[0].text is not None:
978+
return_value.append(parts[0].text)
981979

982980
output = "".join(return_value)
983981
final_response = types.OptimizeResponse(raw_text_response=output)

vertexai/_genai/prompts.py

Lines changed: 50 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,6 +1267,9 @@ def create(
12671267

12681268
_prompt_management_utils._raise_for_invalid_prompt(prompt)
12691269

1270+
if prompt.prompt_data is None:
1271+
raise ValueError("Prompt data is required to create a prompt.")
1272+
12701273
prompt_metadata = _prompt_management_utils._create_dataset_metadata_from_prompt(
12711274
prompt,
12721275
variables=(
@@ -1334,6 +1337,9 @@ def create_version(
13341337

13351338
_prompt_management_utils._raise_for_invalid_prompt(prompt)
13361339

1340+
if prompt.prompt_data is None:
1341+
raise ValueError("Prompt data is required to create a prompt.")
1342+
13371343
if config and config.version_display_name:
13381344
version_name = config.version_display_name
13391345
else:
@@ -1405,6 +1411,9 @@ def _wait_for_operation(
14051411
prompt_dataset_operation: Optional[types.DatasetOperation] = None
14061412

14071413
response_operation_name = operation.name
1414+
if response_operation_name is None:
1415+
raise ValueError("Invalid operation name.")
1416+
14081417
dataset_id = response_operation_name.split("/datasets/")[1].split("/")[0]
14091418
operation_id = response_operation_name.split("/")[-1]
14101419

@@ -1430,7 +1439,7 @@ def _wait_for_operation(
14301439
operation_id=operation_id,
14311440
)
14321441
done = (
1433-
prompt_dataset_operation.done
1442+
(prompt_dataset_operation.done or False)
14341443
if hasattr(prompt_dataset_operation, "done")
14351444
else False
14361445
)
@@ -1447,7 +1456,7 @@ def _wait_for_operation(
14471456
raise ValueError(
14481457
f"Error creating prompt version resource: {prompt_dataset_operation.error}"
14491458
)
1450-
return prompt_dataset_operation.response.get("name")
1459+
return prompt_dataset_operation.response.get("name") # type: ignore[return-value]
14511460

14521461
def get(
14531462
self,
@@ -1565,6 +1574,8 @@ def list(
15651574
elif not config:
15661575
config = types.ListPromptsConfig()
15671576
for dataset in self._list_prompts_pager(config=config):
1577+
if not dataset.name:
1578+
continue
15681579
prompt_ref = types.PromptRef(
15691580
model=dataset.model_reference, prompt_id=dataset.name.split("/")[-1]
15701581
)
@@ -1609,6 +1620,12 @@ def list_versions(
16091620
for dataset_version in self._list_versions_pager(
16101621
config=config, prompt_id=prompt_id
16111622
):
1623+
if (
1624+
not dataset_version
1625+
or not dataset_version.model_reference
1626+
or not dataset_version.name
1627+
):
1628+
continue
16121629
prompt_version_ref = types.PromptVersionRef(
16131630
model=dataset_version.model_reference,
16141631
version_id=dataset_version.name.split("/")[-1],
@@ -1618,7 +1635,7 @@ def list_versions(
16181635

16191636
def _wait_for_project_operation(
16201637
self,
1621-
operation: types.DatasetOperation,
1638+
operation: genai_types.ProjectOperation,
16221639
timeout: int,
16231640
) -> None:
16241641
"""Waits for a dataset deletion operation to complete.
@@ -1652,10 +1669,12 @@ def _wait_for_project_operation(
16521669
time.sleep(sleep_duration)
16531670
operations_module = operations.Operations(api_client_=self._api_client)
16541671

1672+
if operation.name is None:
1673+
raise ValueError("Invalid operation name.")
16551674
operation = operations_module._get(
16561675
operation_id=operation.name.split("/")[-1],
16571676
)
1658-
done = operation.done if hasattr(operation, "done") else False
1677+
done = (operation.done or False) if hasattr(operation, "done") else False
16591678
if hasattr(operation, "error") and operation.error is not None:
16601679
raise ValueError(f"Error in delete operation: {operation.error}")
16611680

@@ -1738,7 +1757,7 @@ def restore_version(
17381757
)
17391758
self._wait_for_project_operation(
17401759
operation=restore_prompt_operation,
1741-
timeout=config.timeout if config else 90,
1760+
timeout=90,
17421761
)
17431762
dataset_version_resource = self._get_dataset_version_resource(
17441763
dataset_id=prompt_id,
@@ -2008,12 +2027,11 @@ def _custom_optimize(
20082027
response=response_dict, kwargs=parameter_model.model_dump()
20092028
)
20102029
self._api_client._verify_response(response_value)
2011-
if (
2012-
response_value.content is not None
2013-
and len(response_value.content.parts) > 0
2014-
and response_value.content.parts[0].text is not None
2015-
):
2016-
return_value.append(response_value.content.parts[0].text)
2030+
content = response_value.content
2031+
if content is not None:
2032+
parts = content.parts
2033+
if parts and parts[0].text is not None:
2034+
return_value.append(parts[0].text)
20172035

20182036
output = "".join(return_value)
20192037
final_response = types.OptimizeResponse(raw_text_response=output)
@@ -2869,6 +2887,9 @@ async def create(
28692887

28702888
_prompt_management_utils._raise_for_invalid_prompt(prompt)
28712889

2890+
if prompt.prompt_data is None:
2891+
raise ValueError("Prompt data is required to create a prompt.")
2892+
28722893
prompt_metadata = _prompt_management_utils._create_dataset_metadata_from_prompt(
28732894
prompt,
28742895
variables=(
@@ -2936,6 +2957,9 @@ async def create_version(
29362957

29372958
_prompt_management_utils._raise_for_invalid_prompt(prompt)
29382959

2960+
if prompt.prompt_data is None:
2961+
raise ValueError("Prompt data is required to create a prompt.")
2962+
29392963
if config and config.version_display_name:
29402964
version_name = config.version_display_name
29412965
else:
@@ -3007,6 +3031,9 @@ async def _wait_for_operation(
30073031
prompt_dataset_operation: Optional[types.DatasetOperation] = None
30083032

30093033
response_operation_name = operation.name
3034+
if response_operation_name is None:
3035+
raise ValueError("Invalid operation name.")
3036+
30103037
dataset_id = response_operation_name.split("/datasets/")[1].split("/")[0]
30113038
operation_id = response_operation_name.split("/")[-1]
30123039

@@ -3032,7 +3059,7 @@ async def _wait_for_operation(
30323059
operation_id=operation_id,
30333060
)
30343061
done = (
3035-
prompt_dataset_operation.done
3062+
(prompt_dataset_operation.done or False)
30363063
if hasattr(prompt_dataset_operation, "done")
30373064
else False
30383065
)
@@ -3049,7 +3076,7 @@ async def _wait_for_operation(
30493076
raise ValueError(
30503077
f"Error creating prompt version resource: {prompt_dataset_operation.error}"
30513078
)
3052-
return prompt_dataset_operation.response.get("name")
3079+
return prompt_dataset_operation.response.get("name") # type: ignore[return-value]
30533080

30543081
async def get(
30553082
self,
@@ -3073,13 +3100,6 @@ async def get(
30733100
)
30743101
prompt._dataset = prompt_dataset_resource
30753102

3076-
if config and config.version_id:
3077-
prompt_version_resource = await self._get_dataset_version_resource(
3078-
dataset_id=prompt_id,
3079-
dataset_version_id=config.version_id,
3080-
)
3081-
prompt._dataset_version = prompt_version_resource
3082-
30833103
return prompt
30843104

30853105
async def get_version(
@@ -3116,7 +3136,7 @@ async def get_version(
31163136

31173137
async def _wait_for_project_operation(
31183138
self,
3119-
operation: types.DatasetOperation,
3139+
operation: genai_types.ProjectOperation,
31203140
timeout: int,
31213141
) -> None:
31223142
"""Waits for a dataset deletion operation to complete.
@@ -3150,10 +3170,12 @@ async def _wait_for_project_operation(
31503170
await asyncio.sleep(sleep_duration)
31513171
operations_module = operations.AsyncOperations(api_client_=self._api_client)
31523172

3173+
if operation.name is None:
3174+
raise ValueError("Invalid operation name.")
31533175
operation = await operations_module._get(
31543176
operation_id=operation.name.split("/")[-1],
31553177
)
3156-
done = operation.done if hasattr(operation, "done") else False
3178+
done = (operation.done or False) if hasattr(operation, "done") else False
31573179
if hasattr(operation, "error") and operation.error is not None:
31583180
raise ValueError(f"Error in delete operation: {operation.error}")
31593181

@@ -3345,7 +3367,7 @@ async def restore_version(
33453367
)
33463368
await self._wait_for_project_operation(
33473369
operation=restore_prompt_operation,
3348-
timeout=config.timeout if config else 90,
3370+
timeout=90,
33493371
)
33503372
dataset_version_resource = await self._get_dataset_version_resource(
33513373
dataset_id=prompt_id,
@@ -3524,12 +3546,11 @@ async def _custom_optimize(
35243546
response=response_dict, kwargs=parameter_model.model_dump()
35253547
)
35263548
self._api_client._verify_response(response_value)
3527-
if (
3528-
response_value.content is not None
3529-
and len(response_value.content.parts) > 0
3530-
and response_value.content.parts[0].text is not None
3531-
):
3532-
return_value.append(response_value.content.parts[0].text)
3549+
content = response_value.content
3550+
if content is not None:
3551+
parts = content.parts
3552+
if parts and parts[0].text is not None:
3553+
return_value.append(parts[0].text)
35333554

35343555
output = "".join(return_value)
35353556
final_response = types.OptimizeResponse(raw_text_response=output)

0 commit comments

Comments
 (0)