class_docstr: A renderable to divide a fixed height in to rows or columns.
  
  Args:
      renderable (RenderableType, optional): Renderable content, or None for placeholder. Defaults to None.
      name (str, optional): Optional identifier for Layout. Defaults to None.
      size (int, optional): Optional fixed size of layout. Defaults to None.
      minimum_size (int, optional): Minimum size of layout. Defaults to 1.
      ratio (int, optional): Optional ratio for flexible layout. Defaults to 1.
      visible (bool, optional): Visibility of layout. Defaults to True.
class_docstr_tok: ["A","renderable","to","divide","a","fixed","height","in","to","rows","or","columns",".","Args",":","renderable","(","RenderableType",",","optional",")",":","Renderable","content",",","or","None","for","placeholder",".","Defaults","to","None",".","name","(","str",",","optional",")",":","Optional","identifier","for","Layout",".","Defaults","to","None",".","size","(","int",",","optional",")",":","Optional","fixed","size","of","layout",".","Defaults","to","None",".","minimum_size","(","int",",","optional",")",":","Minimum","size","of","layout",".","Defaults","to","1.","ratio","(","int",",","optional",")",":","Optional","ratio","for","flexible","layout",".","Defaults","to","1.","visible","(","bool",",","optional",")",":","Visibility","of","layout",".","Defaults","to","True","."]
code: def __rich_console__(
      self, console: Console, options: ConsoleOptions
  ) -> RenderResult:
      with self._lock:
          width = options.max_width or console.width
          height = options.height or console.height
          render_map = self.render(
              console, options.update_dimensions(width, height)
          )
          self._render_map = render_map
          layout_lines: List[List[Segment]] = [
              [] for _ in range(height)
          ]
          _islice = islice
          for region, lines in render_map.values():
              _x, y, _layout_width, layout_height = region
              for row, line in zip(
                  _islice(layout_lines, y, y + layout_height), lines
              ):
                  row.extend(line)
  
          new_line = Segment.line()
          for layout_row in layout_lines:
              yield from layout_row
              yield new_line
  
imports: from abc import ABC, abstractmethod
  from itertools import islice
  from operator import itemgetter
  from threading import RLock
  from typing import TYPE_CHECKING, Dict, Iterable, List, NamedTuple, Optional, Sequence, Tuple, Union
  from ._ratio import ratio_resolve
  from .align import Align
  from .console import Console, ConsoleOptions, RenderableType, RenderResult
  from .highlighter import ReprHighlighter
  from .panel import Panel
  from .pretty import Pretty
  from .region import Region
  from .repr import Result, rich_repr
  from .segment import Segment
  from .style import StyleType
label_desc: Use image node_id 18 for calling the Layout obj's underlying member method code with example usage: obj.__rich_console__(console, options) without return types