class_docstr: Defines characters to render boxes.
  
  ┌─┬┐ top
  │ ││ head
  ├─┼┤ head_row
  │ ││ mid
  ├─┼┤ row
  ├─┼┤ foot_row
  │ ││ foot
  └─┴┘ bottom
  
  Args:
      box (str): Characters making up box.
      ascii (bool, optional): True if this box uses ascii characters only. Default is False.
class_docstr_tok: ["Defines","characters","to","render","boxes",".","\u250c\u2500\u252c\u2510","top","\u2502","\u2502\u2502","head","\u251c\u2500\u253c\u2524","head_row","\u2502","\u2502\u2502","mid","\u251c\u2500\u253c\u2524","row","\u251c\u2500\u253c\u2524","foot_row","\u2502","\u2502\u2502","foot","\u2514\u2500\u2534\u2518","bottom","Args",":","box","(","str",")",":","Characters","making","up","box",".","ascii","(","bool",",","optional",")",":","True","if","this","box","uses","ascii","characters","only",".","Default","is","False","."]
docstr: Get the bottom of a simple box.
  
  Args:
      widths (List[int]): Widths of columns.
  
  Returns:
      str: A string of box characters.
docstr_tok: ["Get","the","bottom","of","a","simple","box",".","Args",":","widths","(","List","[","int","]",")",":","Widths","of","columns",".","Returns",":","str",":","A","string","of","box","characters","."]
code: def get_bottom(self, widths: Iterable[int]) -> str:
      """Get the bottom of a simple box.
  
      Args:
          widths (List[int]): Widths of columns.
  
      Returns:
          str: A string of box characters.
      """
  
      parts: List[str] = []
      append = parts.append
      append(self.bottom_left)
      for last, width in loop_last(widths):
          append(self.bottom * width)
          if not last:
              append(self.bottom_divider)
      append(self.bottom_right)
      return "".join(parts)
  
file_path: rich/rich/box.py
imports: import sys
  from typing import TYPE_CHECKING, Iterable, List
  from ._loop import loop_last
label_desc: Use image node_id 8 for calling the Box obj's underlying member method code with example usage: obj.get_bottom(widths) and returns: str