class_docstr: Define a layout with 2x2 regular grid.
  
  Parameters
  ----------
  
  top_left: instance of Widget
  top_right: instance of Widget
  bottom_left: instance of Widget
  bottom_right: instance of Widget
      widgets to fill the positions in the layout
  
  merge: bool
      flag to say whether the empty positions should be automatically merged
  
  {style_params}
  
  Examples
  --------
  
  >>> from ipywidgets import TwoByTwoLayout, Button
  >>> TwoByTwoLayout(top_left=Button(description="Top left"),
  ...                top_right=Button(description="Top right"),
  ...                bottom_left=Button(description="Bottom left"),
  ...                bottom_right=Button(description="Bottom right"))
code: def __init__(self, **kwargs):
      super(TwoByTwoLayout, self).__init__(**kwargs)
      self._update_layout()
  
imports: import re
  from collections import defaultdict
  from traitlets import Instance, Bool, Unicode, CUnicode, CaselessStrEnum, Tuple
  from traitlets import Integer
  from traitlets import HasTraits, TraitError
  from traitlets import observe, validate
  from .widget import Widget
  from .widget_box import GridBox
  from .docutils import doc_subst
label_desc: Use image node_id 1 to create a new TwoByTwoLayout object from inherited base classes: GridBox, LayoutProperties with example: obj = TwoByTwoLayout()