2121 ResultsResponse ,
2222 ExecutionState ,
2323)
24- from dune_client . types import DuneRecord
24+
2525from dune_client .query import Query
2626
2727log = logging .getLogger (__name__ )
@@ -112,7 +112,7 @@ def cancel_execution(self, job_id: str) -> bool:
112112 except KeyError as err :
113113 raise DuneError (response_json , "CancellationResponse" , err ) from err
114114
115- def refresh (self , query : Query , ping_frequency : int = 5 ) -> list [ DuneRecord ] :
115+ def refresh (self , query : Query , ping_frequency : int = 5 ) -> ResultsResponse :
116116 """
117117 Executes a Dune `query`, waits until execution completes,
118118 fetches and returns the results.
@@ -125,16 +125,8 @@ def refresh(self, query: Query, ping_frequency: int = 5) -> list[DuneRecord]:
125125 time .sleep (ping_frequency )
126126 status = self .get_status (job_id )
127127
128- if status .state == ExecutionState .COMPLETED :
129- full_response = self .get_result (job_id )
130- assert (
131- full_response .result is not None
132- ), f"Expected Results on completed execution status { full_response } "
133- return full_response .result .rows
134-
135- if status .state == ExecutionState .CANCELLED :
136- log .info ("Execution Cancelled, returning empty record set" )
137- return []
138-
139- log .error (status )
140- raise Exception (f"{ status } . Perhaps your query took too long to run!" )
128+ full_response = self .get_result (job_id )
129+ if status .state == ExecutionState .FAILED :
130+ log .error (status )
131+ raise Exception (f"{ status } . Perhaps your query took too long to run!" )
132+ return full_response
0 commit comments