11import logging
2+ from typing import List , Optional , Tuple , TYPE_CHECKING
23
34from tableauserverclient .server .endpoint .endpoint import Endpoint , api
45from tableauserverclient .server .endpoint .exceptions import MissingRequiredFieldError
78
89from tableauserverclient .helpers .logging import logger
910
11+ if TYPE_CHECKING :
12+ from tableauserverclient .server .request_options import RequestOptions
13+
1014
1115class Tasks (Endpoint ):
1216 @property
13- def baseurl (self ):
17+ def baseurl (self ) -> str :
1418 return "{0}/sites/{1}/tasks" .format (self .parent_srv .baseurl , self .parent_srv .site_id )
1519
16- def __normalize_task_type (self , task_type ) :
20+ def __normalize_task_type (self , task_type : str ) -> str :
1721 """
1822 The word for extract refresh used in API URL is "extractRefreshes".
1923 It is different than the tag "extractRefresh" used in the request body.
@@ -24,7 +28,9 @@ def __normalize_task_type(self, task_type):
2428 return task_type
2529
2630 @api (version = "2.6" )
27- def get (self , req_options = None , task_type = TaskItem .Type .ExtractRefresh ):
31+ def get (
32+ self , req_options : Optional ["RequestOptions" ] = None , task_type : str = TaskItem .Type .ExtractRefresh
33+ ) -> Tuple [List [TaskItem ], PaginationItem ]:
2834 if task_type == TaskItem .Type .DataAcceleration :
2935 self .parent_srv .assert_at_least_version ("3.8" , "Data Acceleration Tasks" )
3036
@@ -38,7 +44,7 @@ def get(self, req_options=None, task_type=TaskItem.Type.ExtractRefresh):
3844 return all_tasks , pagination_item
3945
4046 @api (version = "2.6" )
41- def get_by_id (self , task_id ) :
47+ def get_by_id (self , task_id : str ) -> TaskItem :
4248 if not task_id :
4349 error = "No Task ID provided"
4450 raise ValueError (error )
@@ -63,7 +69,7 @@ def create(self, extract_item: TaskItem) -> TaskItem:
6369 return server_response .content
6470
6571 @api (version = "2.6" )
66- def run (self , task_item ) :
72+ def run (self , task_item : TaskItem ) -> bytes :
6773 if not task_item .id :
6874 error = "Task item missing ID."
6975 raise MissingRequiredFieldError (error )
@@ -79,7 +85,7 @@ def run(self, task_item):
7985
8086 # Delete 1 task by id
8187 @api (version = "3.6" )
82- def delete (self , task_id , task_type = TaskItem .Type .ExtractRefresh ):
88+ def delete (self , task_id : str , task_type : str = TaskItem .Type .ExtractRefresh ) -> None :
8389 if task_type == TaskItem .Type .DataAcceleration :
8490 self .parent_srv .assert_at_least_version ("3.8" , "Data Acceleration Tasks" )
8591
0 commit comments