title: Create Pandas Holiday for SIFMA Good Friday
body: <p>For SIFMA (bonds) market, Good Friday is NOT a holiday if it is the first Friday of the month because NFP (Non-Farm Payroll) numbers coming out.</p>
  <p>We can use a hack to take the existing holidays and not include them if day of month &lt;= 7, but this is ugly.  Is there a way to properly define rules where the NFP Fridays are taken into account?</p>
  <p>This works, but is ugly:</p>
  <pre><code>from pandas.tseries.holiday import (
      AbstractHolidayCalendar,
      Holiday,
      nearest_workday,
      sunday_to_monday,
      GoodFriday,
  )
  
  
  # occurs on the first Friday of every month
  sifma_good_friday_holidays = [
      Holiday('Good Friday', year=d.year, month=d.month, day=d.day)
      for d in GoodFriday.dates('1900-01-01', '2200-12-31')
      if d.day &gt; 7
  ]
  </code></pre>
  <p><strong>Note</strong> You cannot currently create a holiday where you both pass in an offset and an observance (so you can't simply add an observance that filters out the holidays where the day of the month &lt;= 7)</p>
  <p>The following does seem to work, but also seems like quite a kludge.</p>
  <pre><code>def not_NFP_GoodFriday(dt: datetime):
       possible = GoodFriday.dates(date(dt.year,1,1), date(dt.year,12,31))[0]
       if possible.day &lt;= 7:
             return None
       return datetime.fromtimestamp(possible.timestamp())
  
  sifma_good_friday_holidays = Holiday(&quot;NFP Good Friday&quot;, month=1, day=1, 
                                       observance=not_NFP_GoodFriday)
  </code></pre>
  <p>Is there no better way than one of these two functions?</p>