11import logging
2+ from typing import List , Optional , Tuple , TYPE_CHECKING
23
3- from .endpoint import Endpoint , api
4- from .exceptions import MissingRequiredFieldError
4+ from tableauserverclient . server . endpoint .endpoint import Endpoint , api
5+ from tableauserverclient . server . endpoint .exceptions import MissingRequiredFieldError
56from tableauserverclient .models import TaskItem , PaginationItem
67from tableauserverclient .server import RequestFactory
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,11 +28,13 @@ 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
31- logger .info ("Querying all {} tasks for the site" . format ( task_type ) )
37+ logger .info ("Querying all %s tasks for the site" , task_type )
3238
3339 url = "{0}/{1}" .format (self .baseurl , self .__normalize_task_type (task_type ))
3440 server_response = self .get_request (url , req_options )
@@ -38,11 +44,11 @@ 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 )
45- logger .info ("Querying a single task by id ({})" . format ( task_id ) )
51+ logger .info ("Querying a single task by id %s" , task_id )
4652 url = "{}/{}/{}" .format (
4753 self .baseurl ,
4854 self .__normalize_task_type (TaskItem .Type .ExtractRefresh ),
@@ -56,14 +62,14 @@ def create(self, extract_item: TaskItem) -> TaskItem:
5662 if not extract_item :
5763 error = "No extract refresh provided"
5864 raise ValueError (error )
59- logger .info ("Creating an extract refresh ({})" . format ( extract_item ) )
65+ logger .info ("Creating an extract refresh %s" , extract_item )
6066 url = "{0}/{1}" .format (self .baseurl , self .__normalize_task_type (TaskItem .Type .ExtractRefresh ))
6167 create_req = RequestFactory .Task .create_extract_req (extract_item )
6268 server_response = self .post_request (url , create_req )
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
@@ -88,4 +94,4 @@ def delete(self, task_id, task_type=TaskItem.Type.ExtractRefresh):
8894 raise ValueError (error )
8995 url = "{0}/{1}/{2}" .format (self .baseurl , self .__normalize_task_type (task_type ), task_id )
9096 self .delete_request (url )
91- logger .info ("Deleted single task (ID: {0})" . format ( task_id ) )
97+ logger .info ("Deleted single task (ID: %s)" , task_id )
0 commit comments