@@ -456,7 +456,6 @@ def update_row(self, index, values, col_offset=0):
456456 """
457457 if type (values [0 ]) is not list :
458458 values = [values ]
459- # colrange = format_addr((row_offset, index), 'label') + ":" + format_addr((row_offset+len(values[0])-1,
460459 colrange = format_addr ((index , col_offset + 1 ), 'label' ) + ':' + format_addr ((index + len (values )- 1 ,
461460 col_offset + len (values [0 ])), 'label' )
462461 self .update_cells (crange = colrange , values = values , majordim = 'ROWS' )
@@ -558,8 +557,7 @@ def insert_rows(self, row, number=1, values=None, inherit=False):
558557 self .update_row (row + 1 , values )
559558
560559 def clear (self , start = 'A1' , end = None ):
561- """
562- clears the worksheet by default, if range given then clears range
560+ """clears the worksheet by default, if range given then clears range
563561
564562 :param start: topright cell address
565563 :param end: bottom left cell of range
@@ -571,11 +569,12 @@ def clear(self, start='A1', end=None):
571569 self .client .sh_batch_clear (self .spreadsheet .id , body )
572570
573571 def adjust_column_width (self , start , end = None , pixel_size = 100 ):
574- """
575- Adjust the width of one or more columns
572+ """Adjust the width of one or more columns
573+
576574 :param start: index of the column to be resized
577575 :param end: index of the end column that will be resized
578576 :param pixel_size: width in pixels
577+
579578 """
580579 if end is None or end <= start :
581580 end = start + 1
@@ -598,11 +597,12 @@ def adjust_column_width(self, start, end=None, pixel_size=100):
598597 self .client .sh_batch_update (self .spreadsheet .id , request , batch = self .spreadsheet .batch_mode )
599598
600599 def adjust_row_height (self , start , end = None , pixel_size = 100 ):
601- """
602- Adjust the height of one or more rows
600+ """Adjust the height of one or more rows
601+
603602 :param start: index of the row to be resized
604603 :param end: index of the end row that will be resized
605604 :param pixel_size: height in pixels
605+
606606 """
607607 if end is None or end <= start :
608608 end = start + 1
@@ -673,6 +673,8 @@ def create_named_range(self, name, start, end):
673673 :param end: bottom right cell adress
674674
675675 """
676+ start = format_addr (start , 'tuple' )
677+ end = format_addr (end , 'tuple' )
676678 request = {"addNamedRange" : {
677679 "namedRange" : {
678680 "name" : name ,
@@ -685,42 +687,43 @@ def create_named_range(self, name, start, end):
685687 }
686688 }}}
687689 self .client .sh_batch_update (self .spreadsheet .id , request , batch = self .spreadsheet .batch_mode )
688- self .spreadsheet .named_ranges .append (request ['addNamedRange' ]['namedRange' ])
689690 return DataRange (start , end , self , name )
690691
691692 def get_named_ranges (self , name = '' ):
692693 """
693694 get a named range given name
694- :param name: Name of the named range to be retrived
695- :return: :class: DataRange
695+
696+ :param name: Name of the named range to be retrived, if omitted all ranges are retrived
697+ :return: :class:`DataRange`
698+
696699 """
697700 if name == '' :
698701 self .spreadsheet .update_properties ()
699- nrange = [DataRange (namedjson = x , name = x ['name' ], worksheet = self ) for x in self .spreadsheet .named_ranges if
700- x ['range' ].get ('sheetId' , 0 ) == self .id ]
702+ nrange = [x for x in self .spreadsheet .named_ranges if x .worksheet .id == self .id ]
701703 return nrange
702704 else :
703- nrange = [x for x in self .spreadsheet .named_ranges if x [ ' name' ] == name and x [ 'range' ]. get ( 'sheetId' , 0 ) == self .id ]
705+ nrange = [x for x in self .spreadsheet .named_ranges if x . name == name and x . worksheet . id == self .id ]
704706 if len (nrange ) == 0 :
705707 self .spreadsheet .update_properties ()
706- nrange = [x for x in self .spreadsheet .named_ranges if
707- x ['name' ] == name and x ['range' ].get ('sheetId' , 0 ) == self .id ]
708+ nrange = [x for x in self .spreadsheet .named_ranges if x .name == name and x .worksheet .id == self .id ]
708709 if len (nrange ) == 0 :
709710 raise RangeNotFound (name )
710- return DataRange ( namedjson = nrange [0 ], name = nrange [ 0 ][ 'name' ], worksheet = self )
711+ return nrange [0 ]
711712
712713 def delete_named_range (self , name , range_id = '' ):
713- """
714- delete a named range
714+ """delete a named range
715+
715716 :param name: name of named range to be deleted
716717 :param range_id: id of the named range
718+
717719 """
718720 if not range_id :
719721 range_id = self .get_named_ranges (name = name ).name_id
720722 request = {'deleteNamedRange' : {
721723 "namedRangeId" : range_id ,
722724 }}
723725 self .client .sh_batch_update (self .spreadsheet .id , request , batch = self .spreadsheet .batch_mode )
726+ self .spreadsheet ._named_ranges = [x for x in self .spreadsheet ._named_ranges if x ["namedRangeId" ] != range_id ]
724727
725728 def set_dataframe (self , df , start , copy_index = False , copy_head = True , fit = False , escape_formulae = False , nan = 'NaN' ):
726729 """
@@ -733,7 +736,6 @@ def set_dataframe(self, df, start, copy_index=False, copy_head=True, fit=False,
733736 :param fit: should the worksheet should be resized to fit the dataframe
734737 :param escape_formulae: If any value starts with an equals sign =, it will be
735738 prefixed with a apostrophe ', to avoid being interpreted as a formula.
736-
737739 :param nan: value to replace NaN with
738740 """
739741 start = format_addr (start , 'tuple' )
@@ -835,10 +837,9 @@ def export(self, fformat=ExportType.CSV, filename=None):
835837 raise InvalidArgumentValue ("fformat should be of ExportType Enum" )
836838
837839 def copy_to (self , spreadsheet_id ):
838- """
839- copy the worksheet to specified spreadsheet
840- :param spreadsheet_id: id to the spreadsheet to copy
840+ """copy the worksheet to specified spreadsheet
841841
842+ :param spreadsheet_id: id of the spreadsheet to copy
842843 """
843844 self .client .sh_copy_worksheet (self .spreadsheet .id , self .id , spreadsheet_id )
844845
0 commit comments