code: def trailing_range_window(preceding, order_by, group_by=None):
      
      return Window(
          preceding=preceding,
          following=0,
          group_by=group_by,
          order_by=order_by,
          how='range',
      )
docs: Create a trailing time window for use with aggregate window functions.
  
      Parameters
      ----------
      preceding : float or expression of intervals, i.e.
          ibis.interval(days=1) + ibis.interval(hours=5)
      order_by : expressions, default None
          For analytic functions requiring an ordering, specify here, or let Ibis
          determine the default ordering (for functions like rank)
      group_by : expressions, default None
          Either specify here or with TableExpr.group_by
  
      Returns
      -------
      Window