44import functools
55from collections import defaultdict
66from enum import Enum
7- from typing import Any , Optional , Union , cast
7+ from typing import Any , Optional , Tuple , Union , cast
88
99from gooddata_sdk .client import GoodDataApiClient
1010from gooddata_sdk .compute .model .attribute import Attribute
@@ -736,14 +736,20 @@ def get_visualizations(self, workspace_id: str) -> list[Visualization]:
736736
737737 return [Visualization (vis_obj , side_loads ) for vis_obj in vis_objects .data ]
738738
739- def get_visualization (self , workspace_id : str , visualization_id : str ) -> Visualization :
739+ def get_visualization (
740+ self , workspace_id : str , visualization_id : str , timeout : Optional [Union [int , float , Tuple ]] = None
741+ ) -> Visualization :
740742 """Gets a single visualization from a workspace.
741743
742744 Args:
743745 workspace_id (str):
744746 Workspace identification string e.g. "demo"
745747 visualization_id (str):
746748 Visualization identifier string e.g. "bikes"
749+ timeout (int | float | tuple):
750+ Timeout in seconds for the request. If a tuple is provided, the first element is the connect timeout
751+ and the second element is the read timeout. If a single value is provided, it is used as both connect
752+ and read timeout. If None, the default timeout is used.
747753
748754 Returns:
749755 Visualization:
@@ -754,6 +760,7 @@ def get_visualization(self, workspace_id: str, visualization_id: str) -> Visuali
754760 object_id = visualization_id ,
755761 include = ["ALL" ],
756762 _check_return_type = False ,
763+ _request_timeout = timeout ,
757764 )
758765 side_loads = SideLoads (vis_obj .included )
759766
0 commit comments