@@ -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