Skip to content

Commit

Permalink
feature #140; Calendar model for Italy
Browse files Browse the repository at this point in the history
closes #140 ; fixes #142
  • Loading branch information
capelastegui committed Jun 26, 2019
1 parent 4185777 commit 0753ab1
Showing 1 changed file with 32 additions and 4 deletions.
36 changes: 32 additions & 4 deletions anticipy/forecast_models.py
Expand Up @@ -21,7 +21,8 @@
import numpy as np
import pandas as pd
from pandas.tseries.holiday import Holiday, AbstractHolidayCalendar, \
MO, nearest_workday, GoodFriday, EasterMonday, USFederalHolidayCalendar
MO, nearest_workday, next_monday, next_monday_or_tuesday, \
GoodFriday, EasterMonday, USFederalHolidayCalendar
from pandas.tseries.offsets import DateOffset

# -- Private Imports
Expand Down Expand Up @@ -1564,9 +1565,33 @@ class CalendarBankHolUK(AbstractHolidayCalendar):

class CalendarChristmasUK(AbstractHolidayCalendar):
rules = [
Holiday('New Year\'s Day', month=1, day=1, observance=nearest_workday),
Holiday('Christmas', month=12, day=25, observance=nearest_workday),
Holiday('Boxing Day', month=12, day=26, observance=nearest_workday),
Holiday('New Year\'s Day', month=1, day=1, observance=next_monday),
Holiday('Christmas', month=12, day=25, observance=next_monday),
Holiday('Boxing Day', month=12, day=26,
observance=next_monday_or_tuesday),
]


# Bank Holidays for Italy
class CalendarBankHolIta(AbstractHolidayCalendar):
rules = [
EasterMonday,
Holiday('Festa della Liberazione', month=4, day=25),
Holiday('Festa del lavoro', month=5, day=1),
Holiday('Festa della Repubblica', month=6, day=2),
Holiday('Ferragosto', month=8, day=15),
Holiday('Tutti i Santi', month=11, day=1),
Holiday('Immacolata Concezione', month=12, day=8),
]


class CalendarChristmasIta(AbstractHolidayCalendar):
rules = [
Holiday('New Year\'s Day', month=1, day=1, observance=next_monday),
Holiday('Christmas', month=12, day=25, observance=next_monday),
Holiday('Santo Stefano', month=12, day=26,
observance=next_monday_or_tuesday),
Holiday('Epiphany', month=1, day=6, observance=next_monday),
]


Expand Down Expand Up @@ -1638,6 +1663,9 @@ def _f_model_calendar(a_x, a_date, params, is_mult=False, **kwargs):
[CalendarChristmasUK(), CalendarBankHolUK()], 'calendar_uk')
model_calendar_us = get_model_from_calendars(USFederalHolidayCalendar(),
'calendar_us')
# Calendar for Italy
model_calendar_ita = get_model_from_calendars(
[CalendarChristmasUK(), CalendarBankHolUK()], 'calendar_uk')


def get_model_from_datelist(name=None, *args):
Expand Down

0 comments on commit 0753ab1

Please sign in to comment.