8
8
9
9
logger = logging .getLogger ("tableau.endpoint.jobs" )
10
10
11
- from typing import List , Optional , Tuple , TYPE_CHECKING , TypeVar
11
+ from typing import List , Optional , Tuple , TYPE_CHECKING , Union
12
12
13
- T = TypeVar ("T" , int , float )
14
13
15
14
16
15
class Jobs (Endpoint ):
@@ -38,9 +37,11 @@ def get(
38
37
return jobs , pagination_item
39
38
40
39
@api (version = "3.1" )
41
- def cancel (self , job_id : str ):
42
- id_ = getattr (job_id , "id" , job_id )
43
- url = "{0}/{1}" .format (self .baseurl , id_ )
40
+ def cancel (self , job_id : Union [str , JobItem ]):
41
+ if isinstance (job_id , JobItem ):
42
+ job_id = job_id .id
43
+ assert isinstance (job_id , str )
44
+ url = "{0}/{1}" .format (self .baseurl , job_id )
44
45
return self .put_request (url )
45
46
46
47
@api (version = "2.6" )
@@ -51,7 +52,7 @@ def get_by_id(self, job_id: str) -> JobItem:
51
52
new_job = JobItem .from_response (server_response .content , self .parent_srv .namespace )[0 ]
52
53
return new_job
53
54
54
- def wait_for_job (self , job_id : str , * , timeout : Optional [T ] = None ) -> JobItem :
55
+ def wait_for_job (self , job_id : Union [ str , JobItem ], * , timeout : Optional [float ] = None ) -> JobItem :
55
56
if isinstance (job_id , JobItem ):
56
57
job_id = job_id .id
57
58
assert isinstance (job_id , str )
0 commit comments