44
55from dateutil .tz import gettz
66from gspread import service_account_from_dict , Worksheet , Spreadsheet
7+ from gspread .exceptions import WorksheetNotFound
78from gspread_formatting import set_column_width
89
910from config .env_config import envs
@@ -58,7 +59,7 @@ def _create_worksheet(
5859
5960 return worksheet .id
6061
61- @with_retry ()
62+ @with_retry (non_retryable_exceptions = ( WorksheetNotFound ,) )
6263 def append_row (
6364 self ,
6465 worksheet_id : int ,
@@ -73,12 +74,12 @@ def append_row(
7374
7475 worksheet .append_row (_values )
7576
76- @with_retry ()
77+ @with_retry (non_retryable_exceptions = ( WorksheetNotFound ,) )
7778 def get_values (self , worksheet_id : int , cell_range = None ) -> List [List [str ]]:
7879 worksheet = self ._get_worksheet (worksheet_id )
7980 return worksheet .get_values (cell_range )
8081
81- @with_retry ()
82+ @with_retry (non_retryable_exceptions = ( WorksheetNotFound ,) )
8283 def get_worksheet_title (self , worksheet_id : int ) -> str :
8384 return self ._get_worksheet (worksheet_id ).title
8485
@@ -97,7 +98,7 @@ def _yyyymmddhhmmss(timezone: str = "Asia/Seoul") -> str:
9798 def _get_spreadsheet (self ) -> Spreadsheet :
9899 return self .gs_client .open_by_key (self .spreadsheet_id )
99100
100- @with_retry ()
101+ @with_retry (non_retryable_exceptions = ( WorksheetNotFound ,) )
101102 def _get_worksheet (self , worksheet_id : int ) -> Worksheet :
102103 spreadsheet = self ._get_spreadsheet ()
103104 worksheet = spreadsheet .get_worksheet_by_id (worksheet_id )
@@ -118,7 +119,7 @@ def create_bigchat_sheet(self, title=None) -> Optional[int]:
118119
119120 return worksheet_id
120121
121- @with_retry ()
122+ @with_retry (non_retryable_exceptions = ( WorksheetNotFound ,) )
122123 def delete_row (self , worksheet_id : int , query : str ):
123124 """
124125 XXX: 실제로 삭제할 정보가 없어서 아무 동작을 하지 않아도 에러를 뱉지 않는다.
0 commit comments