text: from datetime import time
  from itertools import chain
  
  from pandas.tseries.holiday import (
      GoodFriday,
      USLaborDay,
      USPresidentsDay,
      USThanksgivingDay,
  )
  from pytz import timezone
  
  from .exchange_calendar import ExchangeCalendar
  from exchange_calendars.exchange_calendar import HolidayCalendar
  from exchange_calendars.us_holidays import (
      Christmas,
      HurricaneSandyClosings,
      USBlackFridayInOrAfter1993,
      USIndependenceDay,
      USMartinLutherKingJrAfter1998,
      USMemorialDay,
      USNationalDaysofMourning,
      USNewYearsDay,
  )
  
  
  class XCBFExchangeCalendar(ExchangeCalendar):
      """
      Exchange calendar for the CBOE Futures Exchange (XCBF).
  
      http://cfe.cboe.com/aboutcfe/expirationcalendar.aspx
  
      Open Time: 8:30am, America/Chicago
      Close Time: 3:15pm, America/Chicago
  
      (We are ignoring extended trading hours for now)
      """
  
      name = "XCBF"
  
      tz = timezone("America/Chicago")
  
      open_times = ((None, time(8, 30)),)
  
      close_times = ((None, time(15, 15)),)
  
      @property
      def regular_holidays(self):
          return HolidayCalendar(
              [
                  USNewYearsDay,
                  USMartinLutherKingJrAfter1998,
                  USPresidentsDay,
                  GoodFriday,
                  USIndependenceDay,
                  USMemorialDay,
                  USLaborDay,
                  USThanksgivingDay,
                  Christmas,
              ]
          )
  
      @property
      def special_closes(self):
          return [
              (
                  time(12, 15),
                  HolidayCalendar(
                      [
                          USBlackFridayInOrAfter1993,
                      ]
                  ),
              )
          ]
  
      @property
      def adhoc_holidays(self):
          return list(
              chain(
                  HurricaneSandyClosings,
                  USNationalDaysofMourning,
              )
          )
  