Esempio n. 1
0
def test_special_holidays(name, kwargs):
    base_date = [datetime(2012, 5, 28)]
    holiday = Holiday(name, **kwargs)

    start_date = datetime(2011, 1, 1)
    end_date = datetime(2020, 12, 31)

    assert base_date == holiday.dates(start_date, end_date)
Esempio n. 2
0
class MyBirthdayCalendar(AbstractHolidayCalendar):

    rules = [
        Holiday('My Birthday', month=7, day=6, observance=nearest_workday),
        Holiday('Dada'
                's Birthday',
                month=7,
                day=8,
                observance=nearest_workday)
    ]
Esempio n. 3
0
    def test_special_holidays(self):
        base_date = [datetime(2012, 5, 28)]
        holiday_1 = Holiday('One-Time', year=2012, month=5, day=28)
        holiday_2 = Holiday('Range', month=5, day=28,
                            start_date=datetime(2012, 1, 1),
                            end_date=datetime(2012, 12, 31),
                            offset=DateOffset(weekday=MO(1)))

        assert base_date == holiday_1.dates(self.start_date, self.end_date)
        assert base_date == holiday_2.dates(self.start_date, self.end_date)
Esempio n. 4
0
class MyCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMemorialDay,
        Holiday('USIndependenceDay',
                month=7,
                day=4,
                observance=nearest_workday), USLaborDay, USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]
Esempio n. 5
0
class USTradingCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay,
        Holiday('USIndependenceDay',
                month=7,
                day=4,
                observance=nearest_workday), USLaborDay, USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]
Esempio n. 6
0
class UsaWvCalendar(AbstractHolidayCalendar):
    """
    All the US and WV holidays my transit agencies may observe.

    """
    rules = [
        Holiday('New Years Day', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr,
        USPresidentsDay,
        USMemorialDay,
        Holiday('July 4th', month=7, day=4, observance=nearest_workday),
        Holiday('Independence Day', month=7, day=4,
                observance=nearest_workday),
        USLaborDay,
        USColumbusDay,
        Holiday('Veterans Day', month=11, day=11, observance=nearest_workday),
        USThanksgivingDay,
        Holiday('Day After Thanksgiving Day',
                month=11,
                day=1,
                offset=DateOffset(weekday=FR(4))),
        Holiday('Christmas', month=12, day=25, observance=nearest_workday),
        GoodFriday,
        EasterMonday,
        Holiday('US Election Day',
                month=11,
                day=1,
                observance=election_observance),
        Holiday('WV Primary Election Day',
                month=5,
                day=1,
                observance=election_observance),
        Holiday('WV Day', month=6, day=20),
        #Holiday('Canada Thanksgiving Day', month=10, offset=DateOffset(weekday=MO(2))),
    ]
Esempio n. 7
0
class FrBusinessCalendar(AbstractHolidayCalendar):
    """
      - 1 Janvier: Jour de l'an
      - Lundi de pâque (Monday after Easter Sunday)
      - 1 Mai: Fête du travail
      - 8 Mai: Victoire des alliés 1954
      - Jeudi de l'Ascension (Thursday, 39 days after Easter Sunday)
      - 14 Juillet: Fếte nationale
      - 15 Août: Assomption
      - 1 Novembre: Toussaint
      - 11 Novembre: Armistice
      - 25 Décembre: Noël
    """
    rules = [
        Holiday("Jour de l'an", month=1, day=1), EasterMonday,
        Holiday('Fête du travail', month=5, day=1),
        Holiday('Victoire des alliés 1954', month=5, day=8),
        Holiday("Jeudi de l'Ascension",
                month=1,
                day=1,
                offset=[Easter(), Day(39)]),
        Holiday('Fếte nationale', month=7, day=14),
        Holiday('Assomption', month=8, day=15),
        Holiday('Toussaint', month=11, day=1),
        Holiday('Armistice 1918', month=11, day=11),
        Holiday('Noël', month=12, day=25)
    ]
Esempio n. 8
0
 class custom_calendar(AbstractHolidayCalendar):
     new_rules = [
         Holiday('Halloween', month=10, day=31),
         Holiday('Christmas Eve', month=12, day=24),
         Holiday('New Years Eve', month=12, day=31),
         Holiday('DST time change',
                 month=3,
                 day=1,
                 offset=pd.DateOffset(weekday=SU(2)))
     ]
     rules = calendar().rules + new_rules
Esempio n. 9
0
 class trading_calendar(AbstractHolidayCalendar):
     rules = [
     Holiday('New Years Day', month=1,  day=1,  observance=nearest_workday),
     USMartinLutherKingJr,
     USPresidentsDay,
     GoodFriday,
     Holiday('MemorialDay', month=5, day=25, offset=pd.DateOffset(weekday=MO(1))),
     Holiday('July 4th', month=7,  day=4,  observance=nearest_workday),
     USLaborDay,
     USThanksgivingDay,
     Holiday('Christmas', month=12, day=25, observance=nearest_workday)]
Esempio n. 10
0
class RussianHolidayCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday("New Year", month=1, day=1), Holiday("New Year", month=1, day=2), Holiday("New Year", month=1, day=3),
        Holiday("New Year", month=1, day=4), Holiday("New Year", month=1, day=5), Holiday("New Year", month=1, day=6),
        Holiday("New Year", month=1, day=7),
        Holiday("Men's Day", month=2, day=23),
        Holiday("Women's Day", month=3, day=8),
    ]
Esempio n. 11
0
    def test_calendar_caching(self):
        # Test for issue #9552

        class TestCalendar(AbstractHolidayCalendar):
            def __init__(self, name=None, rules=None):
                super(TestCalendar, self).__init__(name=name, rules=rules)

        jan1 = TestCalendar(rules=[Holiday('jan1', year=2015, month=1, day=1)])
        jan2 = TestCalendar(rules=[Holiday('jan2', year=2015, month=1, day=2)])

        tm.assert_index_equal(jan1.holidays(), DatetimeIndex(['01-Jan-2015']))
        tm.assert_index_equal(jan2.holidays(), DatetimeIndex(['02-Jan-2015']))
Esempio n. 12
0
def test_calendar_caching():
    # see gh-9552.

    class TestCalendar(AbstractHolidayCalendar):
        def __init__(self, name=None, rules=None):
            super().__init__(name=name, rules=rules)

    jan1 = TestCalendar(rules=[Holiday("jan1", year=2015, month=1, day=1)])
    jan2 = TestCalendar(rules=[Holiday("jan2", year=2015, month=1, day=2)])

    # Getting holidays for Jan 1 should not alter results for Jan 2.
    tm.assert_index_equal(jan1.holidays(), DatetimeIndex(["01-Jan-2015"]))
    tm.assert_index_equal(jan2.holidays(), DatetimeIndex(["02-Jan-2015"]))
class USHolidayCalendar(AbstractHolidayCalendar):
        rules = [
            Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
            USMartinLutherKingJr,
            USPresidentsDay,
            USMemorialDay,
            Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday),
            USLaborDay,
            USThanksgivingDay,
            Holiday('DayAfterThanksgiving', month=11, day=1, offset=[DateOffset(weekday=TH(4)), DateOffset(1)]),
            Holiday('ChristmasEve', month=12, day=24, observance=previous_friday),
            Holiday('Christmas', month=12, day=25, observance=next_monday)
        ]
Esempio n. 14
0
class USBusinessHolidayCalendar(AbstractHolidayCalendar):
    """
    A US Holiday calendar with adjustments for Corporate-Honored Holidays.
    """
    rules = [
        Holiday('New Years Day', month=1, day=1),
        Holiday('New Years Day Observed',
                month=1,
                day=1,
                observance=nearest_workday),
        USMartinLutherKingJr,
        USPresidentsDay,
        USMemorialDay,
        Holiday('July 4th', month=7, day=4),
        Holiday('July 4th Observed',
                month=7,
                day=4,
                observance=nearest_workday),
        USLaborDay,
        USColumbusDay,
        Holiday('Veterans Day', month=11, day=11),
        Holiday('Veterans Day Observed',
                month=11,
                day=11,
                observance=nearest_workday),
        USThanksgivingDay,
        Holiday('Christmas', month=12, day=25),
        Holiday('Christmas Observed',
                month=12,
                day=25,
                observance=nearest_workday),
    ]
Esempio n. 15
0
class USTradingCalendar(AbstractHolidayCalendar):
    """
  This may not be constant.
  This is the Stock Exchange Holidays (not the US Bank Holidays)
  """
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay,
        Holiday('USIndependenceDay',
                month=7,
                day=4,
                observance=nearest_workday), USLaborDay, USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]
Esempio n. 16
0
class NERCHolidayCalendar(AbstractHolidayCalendar):
    """
    Creates a custom holiday calendar based on NERC schedule.
    Defined at https://www.nerc.com/comm/OC/RS%20Agendas%20Highlights%20and%20Minutes%20DL/Additional_Off-peak_Days.pdf
    """

    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=sunday_to_monday),
        USMemorialDay,
        Holiday('USIndependenceDay', month=7, day=4, observance=sunday_to_monday),
        USLaborDay,
        USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=sunday_to_monday)
    ]
Esempio n. 17
0
class EsBusinessCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('Año Nuevo', month=1, day=1, observance=sunday_to_monday),
        Holiday('Epifanía del Señor',
                month=1,
                day=6,
                observance=sunday_to_monday),
        Holiday('Viernes Santo', month=1, day=1, offset=[Easter(),
                                                         Day(-2)]),
        Holiday('Día del Trabajador',
                month=5,
                day=1,
                observance=sunday_to_monday),
        Holiday('Asunción de la Virgen',
                month=8,
                day=15,
                observance=sunday_to_monday),
        Holiday('Día de la Hispanidad',
                month=10,
                day=12,
                observance=sunday_to_monday),
        #Holiday('Todos los Santos', month=11, day=1, observance=sunday_to_monday),
        #Holiday('Día Constitución', month=12, day=6, observance=sunday_to_monday),
        Holiday('Inmaculada Concepción',
                month=12,
                day=8,
                observance=sunday_to_monday),
        Holiday('Navidad', month=12, day=25, observance=sunday_to_monday)
    ]

    def __init__(self, extra_rules):
        self.rules.extend(extra_rules)
Esempio n. 18
0
    def test_special_holidays(self):
        base_date = [datetime(2012, 5, 28)]
        holiday_1 = Holiday("One-Time", year=2012, month=5, day=28)
        holiday_2 = Holiday(
            "Range",
            month=5,
            day=28,
            start_date=datetime(2012, 1, 1),
            end_date=datetime(2012, 12, 31),
            offset=DateOffset(weekday=MO(1)),
        )

        self.assertEqual(base_date, holiday_1.dates(self.start_date, self.end_date))
        self.assertEqual(base_date, holiday_2.dates(self.start_date, self.end_date))
Esempio n. 19
0
 def test_non_observed_holiday(self):
     july_3rd = Holiday('July 4th Eve', month=7,  day=3)
     result = july_3rd.dates("2001-01-01", "2003-03-03")
     expected = [Timestamp('2001-07-03 00:00:00'),
                 Timestamp('2002-07-03 00:00:00')]
     self.assertEqual(list(result), expected)
     july_3rd = Holiday('July 4th Eve', month=7,  day=3, 
                        days_of_week=(0, 1, 2, 3))
     result = july_3rd.dates("2001-01-01", "2008-03-03")
     expected = [Timestamp('2001-07-03 00:00:00'),
                 Timestamp('2002-07-03 00:00:00'),
                 Timestamp('2003-07-03 00:00:00'),
                 Timestamp('2006-07-03 00:00:00'),
                 Timestamp('2007-07-03 00:00:00')]
     self.assertEqual(list(result), expected)
Esempio n. 20
0
class USTradingCalendar(AbstractHolidayCalendar):
    """
    The US trading day calendar behind the function :py:func:`tradedays`.
    """
    rules = [
        Holiday("NewYearsDay", month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr,
        USPresidentsDay,
        GoodFriday,
        USMemorialDay,
        Holiday("USIndependenceDay", month=7, day=4, observance=nearest_workday),
        USLaborDay,
        USThanksgivingDay,
        Holiday("Christmas", month=12, day=25, observance=nearest_workday),
    ]
Esempio n. 21
0
class USTradingCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr, USPresidentsDay, GoodFriday, USMemorialDay,
        Holiday('USIndependenceDay',
                month=7,
                day=4,
                observance=nearest_workday), USLaborDay, USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]

    LOCALTIME = pytz.timezone('US/Eastern')
    # unix time 0
    epoch = datetime.datetime.utcfromtimestamp(0)

    # startdate, enddate format is 'YYYY-MM-DD'
    @staticmethod
    def get_trading_close_holidays(startdate: str, enddate: str):
        inst = USTradingCalendar()

        return inst.holidays(pd.to_datetime(startdate, format='%Y-%m-%d'),
                             pd.to_datetime(enddate, format='%Y-%m-%d'))

    # date format is 'YYYY-MM-DD'
    @staticmethod
    def is_dst(date: str):

        _date = pd.to_datetime(date, format='%Y-%m-%d')

        _date = USTradingCalendar.LOCALTIME.localize(_date)

        return bool(_date.dst())

    # Convert datetime object to unix epoch nanoseconds
    # @param dt        The datetime object to convert
    # @return          Unix epoch nanoseconds form (as float)
    @staticmethod
    def unix_time_nanos(dt):
        return (dt - USTradingCalendar.epoch).total_seconds() * 1000000000.0

    # Convert unix epoch nanoseconds to datetime object
    # @param timestamp     The unix epoch nanoseconds to convert
    # @return              Equivalent datetime object
    @staticmethod
    def unix_time_nanos_to_datetime(unix_time):

        return datetime.datetime.fromtimestamp((unix_time / 1000000000.0),
                                               USTradingCalendar.LOCALTIME)
Esempio n. 22
0
def test_both_offset_observance_raises():
    # see gh-10217
    msg = "Cannot use both offset and observance"
    with pytest.raises(NotImplementedError, match=msg):
        Holiday("Cyber Monday", month=11, day=1,
                offset=[DateOffset(weekday=SA(4))],
                observance=next_monday)
Esempio n. 23
0
 def test_both_offset_observance_raises(self):
     with self.assertRaises(NotImplementedError):
         Holiday("Cyber Monday",
                 month=11,
                 day=1,
                 offset=[DateOffset(weekday=SA(4))],
                 observance=next_monday)
Esempio n. 24
0
class myBirthDayCalendar(AbstractHolidayCalendar):
    """
    my calendar
    """
    rules = [
        Holiday('Joaco"s birthday', month=7, day=4)
    ]
Esempio n. 25
0
class SCE_Holidays(AbstractHolidayCalendar):

    """
    Southern California Edison Holidays from the tariff- TOU-GS-2
    """

    rules = [
        Holiday('New Years Day', month=1, day=1, observance=sunday_to_monday),
        USPresidentsDay,
        USMemorialDay,
        Holiday('July 4th', month=7, day=4, observance=sunday_to_monday),
        USLaborDay,
        Holiday('Veterans Day', month=11, day=11, observance=sunday_to_monday),
        USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=sunday_to_monday)
    ]
Esempio n. 26
0
 class KRTradingCalendar(AbstractHolidayCalendar):
     rules = [
         Holiday(holiday[2],
                 year=int(holiday[0]),
                 month=int(holiday[1]),
                 day=int(holiday[2])) for holiday in holidays
     ]
class RussianBusinessCalendar(AbstractHolidayCalendar):
    start_date = datetime.datetime(1999, 1, 1)
    end_date = datetime.datetime(2019, 12, 31)
    rules = [
        Holiday(name='Russian Day Off', year=d.year, month=d.month, day=d.day)
        for d in holidays_from_prom_calendar['holidays']
    ]
Esempio n. 28
0
def load_standard_holidays():
    """
    Load in a list of standard holidays
    """

    holidays = [
        USMartinLutherKingJr,
        USMemorialDay,
        Holiday('July4', month=7, day=4),
        USLaborDay,
        # Holiday('Thanksgiving_1DB', month=11, day=1, offset=pd.DateOffset(weekday=WE(4))),
        USThanksgivingDay,
        # Holiday('Christmas_1DB', month=12, day=24),
        Holiday('Christmas', month=12, day=25),
        Holiday('New_Years_Eve', month=12, day=31),
    ]
    return holidays
Esempio n. 29
0
class USTradingCalendar(AbstractHolidayCalendar):
    """
    !@brief This class is representing a US Calendar standard includes holidays.
    
     @param self
    """
    rules = [
        Holiday('NewYearsDay', month=1, day=1, observance=nearest_workday),
        USMartinLutherKingJr,
        USPresidentsDay,
        GoodFriday,
        USMemorialDay,
        Holiday('USIndependenceDay', month=7, day=4, observance=nearest_workday),
        USLaborDay,
        USThanksgivingDay,
        Holiday('Christmas', month=12, day=25, observance=nearest_workday)
    ]
Esempio n. 30
0
class USHolidayCalendar(AbstractHolidayCalendar):
    """
    A US Holiday calendar to denote special days that don't affect working days.
    """
    rules = [
        #         Holiday('Superbowl Sunday', month=2, day=1, observance=nearest_future('sunday')),
        Holiday('New Years Eve', month=12, day=31)
    ]
Esempio n. 31
0
class MontrealHolidayCalendar(AbstractHolidayCalendar):

    rules = [
        Holiday("New Year's Day", month=1, day=1, observance=next_monday),
        GoodFriday,
        EasterMonday,
        Holiday("Jour des Patriotes",
                month=5,
                day=24,
                offset=pd.DateOffset(weekday=MO(-1))),
        Holiday("St. Jean Baptiste",
                month=6,
                day=24,
                observance=nearest_workday),
        Holiday("Canada Day", month=7, day=1, observance=nearest_workday),
        Holiday("Labor Day",
                month=9,
                day=1,
                offset=pd.DateOffset(weekday=MO(1))),
        Holiday("Thanksgiving",
                month=10,
                day=1,
                offset=pd.DateOffset(weekday=MO(2))),
        Holiday("Christmas Day", month=12, day=25,
                observance=sunday_to_monday),
    ]
def midsummer_eve(start_date=None, end_date=None):
    return Holiday(
        "Midsummer Eve",
        month=6,
        day=19,
        offset=DateOffset(weekday=FR(1)),
        start_date=start_date,
        end_date=end_date,
    )
def corpus_christi(start_date=None, end_date=None):
    return Holiday(
        "Corpus Christi",
        month=1,
        day=1,
        offset=[Easter(), Day(60)],
        start_date=start_date,
        end_date=end_date,
    )
def whit_monday(start_date=None, end_date=None):
    return Holiday(
        "Whit Monday",
        month=1,
        day=1,
        offset=[Easter(), Day(50)],
        start_date=start_date,
        end_date=end_date,
    )