11import io
22import json
3+ import re
34from datetime import datetime , timedelta
45from urllib import parse
56from uuid import UUID
@@ -45,6 +46,9 @@ def parse_response(response):
4546 except :
4647 pass
4748
49+ def like_table_id (value ):
50+ return re .match (r'^[-0-9a-zA-Z]{4}$' , value )
51+
4852
4953class SeaTableAPI (object ):
5054 """SeaTable API
@@ -237,8 +241,11 @@ def list_rows(self, table_name, view_name=None, order_by=None, desc=False, start
237241 """
238242 url = self ._row_server_url ()
239243 params = {
240- 'table_name' : table_name ,
244+ 'table_name' : table_name
241245 }
246+
247+ if like_table_id (table_name ):
248+ params ['table_id' ] = table_name
242249 if view_name :
243250 params ['view_name' ] = view_name
244251 if order_by :
@@ -260,8 +267,11 @@ def get_row(self, table_name, row_id):
260267 """
261268 url = self ._row_server_url () + row_id + '/'
262269 params = {
263- 'table_name' : table_name ,
270+ 'table_name' : table_name
264271 }
272+
273+ if like_table_id (table_name ):
274+ params ['table_id' ] = table_name
265275 response = requests .get (url , params = params , headers = self .headers , timeout = self .timeout )
266276 data = parse_response (response )
267277 return data
@@ -276,6 +286,8 @@ def append_row(self, table_name, row_data):
276286 'table_name' : table_name ,
277287 'row' : row_data ,
278288 }
289+ if like_table_id (table_name ):
290+ json_data ['table_id' ] = table_name
279291 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
280292 return parse_response (response )
281293
@@ -289,6 +301,8 @@ def batch_append_rows(self, table_name, rows_data):
289301 'table_name' : table_name ,
290302 'rows' : rows_data ,
291303 }
304+ if like_table_id (table_name ):
305+ json_data ['table_id' ] = table_name
292306 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
293307 return parse_response (response )
294308
@@ -304,6 +318,8 @@ def insert_row(self, table_name, row_data, anchor_row_id):
304318 'row' : row_data ,
305319 'anchor_row_id' : anchor_row_id ,
306320 }
321+ if like_table_id (table_name ):
322+ json_data ['table_id' ] = table_name
307323 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
308324 return parse_response (response )
309325
@@ -319,6 +335,8 @@ def update_row(self, table_name, row_id, row_data):
319335 'row_id' : row_id ,
320336 'row' : row_data ,
321337 }
338+ if like_table_id (table_name ):
339+ json_data ['table_id' ] = table_name
322340 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
323341 return parse_response (response )
324342
@@ -333,6 +351,8 @@ def batch_update_rows(self, table_name, rows_data):
333351 'table_name' : table_name ,
334352 'updates' : rows_data ,
335353 }
354+ if like_table_id (table_name ):
355+ json_data ['table_id' ] = table_name
336356 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
337357 return parse_response (response )
338358
@@ -346,6 +366,8 @@ def delete_row(self, table_name, row_id):
346366 'table_name' : table_name ,
347367 'row_id' : row_id ,
348368 }
369+ if like_table_id (table_name ):
370+ json_data ['table_id' ] = table_name
349371 response = requests .delete (url , json = json_data , headers = self .headers , timeout = self .timeout )
350372 return parse_response (response )
351373
@@ -359,6 +381,8 @@ def batch_delete_rows(self, table_name, row_ids):
359381 'table_name' : table_name ,
360382 'row_ids' : row_ids ,
361383 }
384+ if like_table_id (table_name ):
385+ json_data ['table_id' ] = table_name
362386 response = requests .delete (url , json = json_data , headers = self .headers , timeout = self .timeout )
363387 return parse_response (response )
364388
@@ -442,6 +466,10 @@ def add_link(self, link_id, table_name, other_table_name, row_id, other_row_id):
442466 'table_row_id' : row_id ,
443467 'other_table_row_id' : other_row_id ,
444468 }
469+ if like_table_id (table_name ):
470+ json_data ['table_id' ] = table_name
471+ if like_table_id (other_table_name ):
472+ json_data ['other_table_id' ] = other_table_name
445473 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
446474 return parse_response (response )
447475
@@ -461,10 +489,14 @@ def remove_link(self, link_id, table_name, other_table_name, row_id, other_row_i
461489 'table_row_id' : row_id ,
462490 'other_table_row_id' : other_row_id ,
463491 }
492+ if like_table_id (table_name ):
493+ json_data ['table_id' ] = table_name
494+ if like_table_id (other_table_name ):
495+ json_data ['other_table_id' ] = other_table_name
464496 response = requests .delete (url , json = json_data , headers = self .headers , timeout = self .timeout )
465497 return parse_response (response )
466498
467- def update_link (self , link_id , table_id , other_table_id , row_id , other_rows_ids ):
499+ def update_link (self , link_id , table_name , other_table_name , row_id , other_rows_ids ):
468500 """
469501 :param link_id: str
470502 :param table_id: str
@@ -477,15 +509,19 @@ def update_link(self, link_id, table_id, other_table_id, row_id, other_rows_ids)
477509 url = self ._row_link_server_url ()
478510 json_data = {
479511 'link_id' : link_id ,
480- 'table_id ' : table_id ,
481- 'other_table_id ' : other_table_id ,
512+ 'table_name ' : table_name ,
513+ 'other_table_name ' : other_table_name ,
482514 'row_id' : row_id ,
483515 'other_rows_ids' : other_rows_ids ,
484516 }
517+ if like_table_id (table_name ):
518+ json_data ['table_id' ] = table_name
519+ if like_table_id (other_table_name ):
520+ json_data ['other_table_id' ] = other_table_name
485521 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
486522 return parse_response (response )
487523
488- def batch_update_links (self , link_id , table_id , other_table_id , row_id_list , other_rows_ids_map ):
524+ def batch_update_links (self , link_id , table_name , other_table_name , row_id_list , other_rows_ids_map ):
489525 """
490526 :param link_id: str
491527 :param table_id: str
@@ -496,11 +532,16 @@ def batch_update_links(self, link_id, table_id, other_table_id, row_id_list, oth
496532 url = self ._batch_update_row_link_server_url ()
497533 json_data = {
498534 'link_id' : link_id ,
499- 'table_id' : table_id ,
500- 'other_table_id' : other_table_id ,
535+ 'table_name' : table_name ,
536+ 'other_table_name' : other_table_name ,
537+
501538 'row_id_list' : row_id_list ,
502539 'other_rows_ids_map' : other_rows_ids_map ,
503540 }
541+ if like_table_id (table_name ):
542+ json_data ['table_id' ] = table_name
543+ if like_table_id (other_table_name ):
544+ json_data ['other_table_id' ] = other_table_name
504545
505546 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
506547 return parse_response (response )
@@ -530,6 +571,8 @@ def list_columns(self, table_name, view_name=None):
530571 params = {
531572 'table_name' : table_name ,
532573 }
574+ if like_table_id (table_name ):
575+ params ['table_id' ] = table_name
533576 if view_name :
534577 params ['view_name' ] = view_name
535578 response = requests .get (url , params = params , headers = self .headers , timeout = self .timeout )
@@ -560,6 +603,8 @@ def insert_column(self, table_name, column_name, column_type, column_key=None, c
560603 'column_name' : column_name ,
561604 'column_type' : column_type .value
562605 }
606+ if like_table_id (table_name ):
607+ json_data ['table_id' ] = table_name
563608 if column_key :
564609 json_data ['anchor_column' ] = column_key
565610 if column_data :
@@ -582,6 +627,8 @@ def rename_column(self, table_name, column_key, new_column_name):
582627 'column' : column_key ,
583628 'new_column_name' : new_column_name
584629 }
630+ if like_table_id (table_name ):
631+ json_data ['table_id' ] = table_name
585632 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
586633 data = parse_response (response )
587634 return data
@@ -601,6 +648,8 @@ def resize_column(self, table_name, column_key, new_column_width):
601648 'column' : column_key ,
602649 'new_column_width' : new_column_width
603650 }
651+ if like_table_id (table_name ):
652+ json_data ['table_id' ] = table_name
604653 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
605654 data = parse_response (response )
606655 return data
@@ -619,6 +668,8 @@ def freeze_column(self, table_name, column_key, frozen):
619668 'column' : column_key ,
620669 'frozen' : frozen
621670 }
671+ if like_table_id (table_name ):
672+ json_data ['table_id' ] = table_name
622673 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
623674 data = parse_response (response )
624675 return data
@@ -637,6 +688,8 @@ def move_column(self, table_name, column_key, target_column_key):
637688 'column' : column_key ,
638689 'target_column' : target_column_key
639690 }
691+ if like_table_id (table_name ):
692+ json_data ['table_id' ] = table_name
640693 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
641694 data = parse_response (response )
642695 return data
@@ -657,6 +710,8 @@ def modify_column_type(self, table_name, column_key, new_column_type):
657710 'column' : column_key ,
658711 'new_column_type' : new_column_type .value
659712 }
713+ if like_table_id (table_name ):
714+ json_data ['table_id' ] = table_name
660715 response = requests .put (url , json = json_data , headers = self .headers , timeout = self .timeout )
661716 data = parse_response (response )
662717 return data
@@ -673,6 +728,8 @@ def add_column_options(self, table_name, column, options):
673728 "column" : column ,
674729 "options" : options
675730 }
731+ if like_table_id (table_name ):
732+ json_data ['table_id' ] = table_name
676733 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
677734 data = parse_response (response )
678735 return data
@@ -693,7 +750,8 @@ def add_column_cascade_settings(self, table_name, child_column, parent_column, c
693750 "parent_column" : parent_column ,
694751 "cascade_settings" : cascade_settings
695752 }
696-
753+ if like_table_id (table_name ):
754+ json_data ['table_id' ] = table_name
697755 response = requests .post (url , json = json_data , headers = self .headers , timeout = self .timeout )
698756 data = parse_response (response )
699757 return data
@@ -709,6 +767,8 @@ def delete_column(self, table_name, column_key):
709767 'table_name' : table_name ,
710768 'column' : column_key
711769 }
770+ if like_table_id (table_name ):
771+ json_data ['table_id' ] = table_name
712772 response = requests .delete (url , json = json_data , headers = self .headers , timeout = self .timeout )
713773 data = parse_response (response )
714774 return data
0 commit comments