Skip to content

Commit 4c5b6ab

Browse files
sararobcopybara-github
authored andcommitted
chore: Resolve mypy errors in Gen AI Modules
PiperOrigin-RevId: 862235861
1 parent 1bbf7bb commit 4c5b6ab

13 files changed

+87
-65
lines changed

vertexai/_genai/_agent_engines_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
try:
8282
from google.cloud import storage
8383

84-
_StorageBucket: type[Any] = storage.Bucket # type: ignore[attr-defined]
84+
_StorageBucket: type[Any] = storage.Bucket
8585
except (ImportError, AttributeError):
8686
_StorageBucket: type[Any] = Any # type: ignore[no-redef]
8787

vertexai/_genai/_evals_common.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@
4848
try:
4949
import litellm
5050
except ImportError:
51-
litellm = None # type: ignore[assignment]
51+
litellm = None
5252

5353
try:
5454
from google.adk.agents import LlmAgent
5555
from google.adk.runners import Runner
5656
from google.adk.sessions import InMemorySessionService
5757
except ImportError:
58-
LlmAgent = None # type: ignore[assignment]
59-
Runner = None # type: ignore[assignment]
60-
InMemorySessionService = None # type: ignore[assignment]
58+
LlmAgent = None
59+
Runner = None
60+
InMemorySessionService = None
6161

6262

6363
logger = logging.getLogger(__name__)

vertexai/_genai/_evals_metric_loaders.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class LazyLoadedPrebuiltMetric:
4444
"gs://vertex-ai-generative-ai-eval-sdk-resources/metrics/{metric_name}/"
4545
)
4646

47-
def __init__(self, name: str, version: Optional[str] = None, **kwargs):
47+
def __init__(self, name: str, version: Optional[str] = None, **kwargs: Any):
4848
self.name = name.upper()
4949
self.version = version
5050
self.metric_kwargs = kwargs
@@ -248,7 +248,7 @@ def resolve(self, api_client: Any) -> "types.Metric":
248248
) from e
249249

250250
def __call__(
251-
self, version: Optional[str] = None, **kwargs
251+
self, version: Optional[str] = None, **kwargs: Any
252252
) -> "LazyLoadedPrebuiltMetric":
253253
"""Allows setting a specific version and other metric attributes."""
254254
updated_kwargs = self.metric_kwargs.copy()
@@ -271,7 +271,7 @@ class PrebuiltMetricLoader:
271271
"""
272272

273273
def __getattr__(
274-
self, name: str, version: Optional[str] = None, **kwargs
274+
self, name: str, version: Optional[str] = None, **kwargs: Any
275275
) -> LazyLoadedPrebuiltMetric:
276276
return LazyLoadedPrebuiltMetric(name=name, version=version, **kwargs)
277277

vertexai/_genai/_evals_visualization.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,7 +1063,7 @@ def display_evaluation_dataset(eval_dataset_obj: types.EvaluationDataset) -> Non
10631063
# Special handling for rubric_groups to keep it as a dict
10641064
if isinstance(cell_value, dict):
10651065
processed_row[col_name] = {
1066-
k: [
1066+
k: [ # type: ignore[misc]
10671067
(
10681068
v_item.model_dump(mode="json")
10691069
if hasattr(v_item, "model_dump")
@@ -1077,7 +1077,7 @@ def display_evaluation_dataset(eval_dataset_obj: types.EvaluationDataset) -> Non
10771077
processed_row[col_name] = cell_value
10781078
else:
10791079
if isinstance(cell_value, (dict, list)):
1080-
processed_row[col_name] = json.dumps(
1080+
processed_row[col_name] = json.dumps( # type: ignore[assignment]
10811081
cell_value, ensure_ascii=False, default=_pydantic_serializer
10821082
)
10831083
else:

vertexai/_genai/_gcs_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import logging
1919
from typing import Any, Union
2020

21-
from google.cloud import storage
21+
from google.cloud import storage # type: ignore[attr-defined]
2222
from google.cloud.aiplatform.utils.gcs_utils import blob_from_uri
2323
from google.genai._api_client import BaseApiClient
2424
import pandas as pd
@@ -36,7 +36,7 @@ class GcsUtils:
3636

3737
def __init__(self, api_client: BaseApiClient):
3838
self.api_client = api_client
39-
self.storage_client = storage.Client( # type: ignore[attr-defined]
39+
self.storage_client = storage.Client(
4040
project=self.api_client.project,
4141
credentials=self.api_client._credentials,
4242
)

vertexai/_genai/_prompt_management_utils.py

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -99,24 +99,32 @@ def _create_prompt_from_dataset_metadata(
9999
api_schema = dataset.metadata.prompt_api_schema
100100
prompt = types.Prompt()
101101

102+
if api_schema is None:
103+
return prompt
104+
102105
if api_schema.multimodal_prompt:
103106

104107
prompt_message = api_schema.multimodal_prompt.prompt_message
105108
prompt.prompt_data = prompt_message
106109

107-
executions = api_schema.executions
108-
if executions:
109-
prompt.prompt_data.variables = []
110-
for execution in executions:
111-
if execution.arguments:
112-
args = execution.arguments
113-
var_map = {}
114-
for key, val in args.items():
115-
part_list = val.part_list.parts
116-
if part_list and part_list[0].text:
117-
var_map[key] = part_list[0]
118-
if var_map:
119-
prompt.prompt_data.variables.append(var_map)
110+
if api_schema.executions:
111+
executions = api_schema.executions
112+
if executions and prompt.prompt_data is not None:
113+
prompt.prompt_data.variables = []
114+
for execution in executions:
115+
if execution.arguments:
116+
args = execution.arguments
117+
var_map = {}
118+
for key, val in args.items():
119+
if (
120+
val.part_list is not None
121+
and val.part_list.parts is not None
122+
):
123+
part_list = val.part_list.parts
124+
if part_list and part_list[0].text:
125+
var_map[key] = part_list[0]
126+
if var_map and prompt.prompt_data.variables is not None:
127+
prompt.prompt_data.variables.append(var_map)
120128

121129
return prompt
122130

vertexai/_genai/_prompt_optimizer_utils.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import json
1818
from typing import Any, Optional, Union
19+
from typing_extensions import TypeAlias
1920

2021
from pydantic import ValidationError
2122

@@ -24,10 +25,10 @@
2425
try:
2526
import pandas as pd # pylint: disable=g-import-not-at-top
2627

27-
PandasDataFrame = pd.DataFrame
28+
PandasDataFrame: TypeAlias = pd.DataFrame
2829
except ImportError:
2930
pd = None
30-
PandasDataFrame = Any
31+
PandasDataFrame = Any # type: ignore[misc]
3132

3233

3334
def _construct_input_prompt(
@@ -80,6 +81,12 @@ def _get_few_shot_prompt(
8081
) -> str:
8182
"""Builds the few shot prompt."""
8283

84+
if config.examples_dataframe is None:
85+
raise ValueError("The 'examples_dataframe' is required in the config.")
86+
87+
if "prompt" not in config.examples_dataframe.columns:
88+
raise ValueError("'prompt' is required in the examples_dataframe.")
89+
8390
if "prompt" not in config.examples_dataframe.columns:
8491
raise ValueError("'prompt' is required in the examples_dataframe.")
8592
prompt_col_name = "prompt"
@@ -164,7 +171,7 @@ def _get_service_account(
164171
)
165172

166173

167-
def _clean_and_parse_optimized_prompt(output_str: str):
174+
def _clean_and_parse_optimized_prompt(output_str: str) -> Optional[Any]:
168175
"""Cleans a string response returned from the prompt optimizer endpoint.
169176
170177
Args:

vertexai/_genai/_transformers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#
1515

1616
"""Transformers module for Vertex addons."""
17-
from typing import Any # type: ignore[attr-defined]
17+
from typing import Any
1818

1919
from google.genai._common import get_value_by_path as getv
2020

@@ -75,7 +75,7 @@ def t_metrics(
7575
pointwise_spec["system_instruction"] = system_instruction
7676
return_raw_output = getv(metric, ["return_raw_output"])
7777
if return_raw_output:
78-
pointwise_spec["custom_output_format_config"] = { # type: ignore[assignment]
78+
pointwise_spec["custom_output_format_config"] = {
7979
"return_raw_output": return_raw_output
8080
}
8181
metric_payload_item["pointwise_metric_spec"] = pointwise_spec

vertexai/_genai/client.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def evals(self) -> "evals_module.AsyncEvals":
9292
"Please install them using pip install "
9393
"google-cloud-aiplatform[evaluation]"
9494
) from e
95-
return self._evals.AsyncEvals(self._api_client)
95+
return self._evals.AsyncEvals(self._api_client) # type: ignore[no-any-return]
9696

9797
@property
9898
@_common.experimental_warning(
@@ -104,7 +104,7 @@ def prompt_optimizer(self) -> "prompt_optimizer_module.AsyncPromptOptimizer":
104104
self._prompt_optimizer = importlib.import_module(
105105
".prompt_optimizer", __package__
106106
)
107-
return self._prompt_optimizer.AsyncPromptOptimizer(self._api_client)
107+
return self._prompt_optimizer.AsyncPromptOptimizer(self._api_client) # type: ignore[no-any-return]
108108

109109
@property
110110
def agent_engines(self) -> "agent_engines_module.AsyncAgentEngines":
@@ -122,7 +122,7 @@ def agent_engines(self) -> "agent_engines_module.AsyncAgentEngines":
122122
"Please install them using pip install "
123123
"google-cloud-aiplatform[agent_engines]"
124124
) from e
125-
return self._agent_engines.AsyncAgentEngines(self._api_client)
125+
return self._agent_engines.AsyncAgentEngines(self._api_client) # type: ignore[no-any-return]
126126

127127
@property
128128
def prompts(self) -> "prompts_module.AsyncPrompts":
@@ -131,7 +131,7 @@ def prompts(self) -> "prompts_module.AsyncPrompts":
131131
".prompts",
132132
__package__,
133133
)
134-
return self._prompts.AsyncPrompts(self._api_client)
134+
return self._prompts.AsyncPrompts(self._api_client) # type: ignore[no-any-return]
135135

136136
@property
137137
@_common.experimental_warning(
@@ -144,7 +144,7 @@ def datasets(self) -> "datasets_module.AsyncDatasets":
144144
".datasets",
145145
__package__,
146146
)
147-
return self._datasets.AsyncDatasets(self._api_client)
147+
return self._datasets.AsyncDatasets(self._api_client) # type: ignore[no-any-return]
148148

149149
async def aclose(self) -> None:
150150
"""Closes the async client explicitly.
@@ -255,7 +255,7 @@ def evals(self) -> "evals_module.Evals":
255255
"Please install them using pip install "
256256
"google-cloud-aiplatform[evaluation]"
257257
) from e
258-
return self._evals.Evals(self._api_client)
258+
return self._evals.Evals(self._api_client) # type: ignore[no-any-return]
259259

260260
@property
261261
@_common.experimental_warning(
@@ -267,7 +267,7 @@ def prompt_optimizer(self) -> "prompt_optimizer_module.PromptOptimizer":
267267
self._prompt_optimizer = importlib.import_module(
268268
".prompt_optimizer", __package__
269269
)
270-
return self._prompt_optimizer.PromptOptimizer(self._api_client)
270+
return self._prompt_optimizer.PromptOptimizer(self._api_client) # type: ignore[no-any-return]
271271

272272
@property
273273
def aio(self) -> "AsyncClient":
@@ -317,7 +317,7 @@ def agent_engines(self) -> "agent_engines_module.AgentEngines":
317317
"Please install them using pip install "
318318
"google-cloud-aiplatform[agent_engines]"
319319
) from e
320-
return self._agent_engines.AgentEngines(self._api_client)
320+
return self._agent_engines.AgentEngines(self._api_client) # type: ignore[no-any-return]
321321

322322
@property
323323
def prompts(self) -> "prompts_module.Prompts":
@@ -327,7 +327,7 @@ def prompts(self) -> "prompts_module.Prompts":
327327
".prompts",
328328
__package__,
329329
)
330-
return self._prompts.Prompts(self._api_client)
330+
return self._prompts.Prompts(self._api_client) # type: ignore[no-any-return]
331331

332332
@property
333333
@_common.experimental_warning(
@@ -340,4 +340,4 @@ def datasets(self) -> "datasets_module.Datasets":
340340
".datasets",
341341
__package__,
342342
)
343-
return self._datasets.Datasets(self._api_client)
343+
return self._datasets.Datasets(self._api_client) # type: ignore[no-any-return]

vertexai/_genai/evals.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,7 @@ def create_evaluation_run(
16741674
if not name:
16751675
name = f"evaluation_run_{uuid.uuid4()}"
16761676

1677-
return self._create_evaluation_run( # type: ignore[no-any-return]
1677+
return self._create_evaluation_run(
16781678
name=name,
16791679
display_name=display_name or name,
16801680
data_source=dataset,
@@ -1782,7 +1782,7 @@ def create_evaluation_item(
17821782
Returns:
17831783
The evaluation item.
17841784
"""
1785-
return self._create_evaluation_item( # type: ignore[no-any-return]
1785+
return self._create_evaluation_item(
17861786
evaluation_item_type=evaluation_item_type,
17871787
gcs_uri=gcs_uri,
17881788
display_name=display_name,
@@ -1812,7 +1812,7 @@ def create_evaluation_set(
18121812
Returns:
18131813
The evaluation set.
18141814
"""
1815-
return self._create_evaluation_set( # type: ignore[no-any-return]
1815+
return self._create_evaluation_set(
18161816
evaluation_items=evaluation_items,
18171817
display_name=display_name,
18181818
config=config,

0 commit comments

Comments
 (0)