class_docstr: Domain interface.
      
class_docstr_tok: ["Domain","interface","."]
docstr: Given a date, align it to the calendar of the pipeline's domain.
  
  Parameters
  ----------
  dt : pd.Timestamp
  
  Returns
  -------
  pd.Timestamp
code: def roll_forward(self, dt):
      """
      Given a date, align it to the calendar of the pipeline's domain.
  
      Parameters
      ----------
      dt : pd.Timestamp
  
      Returns
      -------
      pd.Timestamp
      """
      dt = pd.Timestamp(dt, tz="UTC")
  
      trading_days = self.all_sessions()
      try:
          return trading_days[trading_days.searchsorted(dt)]
      except IndexError:
          raise ValueError(
              "Date {} was past the last session for domain {}. "
              "The last session for this domain is {}.".format(
                  dt.date(), self, trading_days[-1].date()
              )
          )
  
imports: import datetime
  from textwrap import dedent
  from interface import default, implements, Interface
  import numpy
  import pandas
  import pytz
  from trading_calendars import get_calendar
  from zipline.country import CountryCode
  from zipline.utils.formatting import bulleted_list
  from zipline.utils.input_validation import expect_types, optional
  from zipline.utils.memoize import lazyval
  from zipline.utils.pandas_utils import days_at_time
label_desc: Use image node_id 4 for calling the IDomain obj's underlying member method code with example usage: obj.roll_forward(dt) and returns: trading_days