Opa_omroep-automatiseren/venv/lib/python3.8/site-packages/holidays/countries/djibouti.py
Eljakim Herrewijnen f26bbbf103 initial
2020-12-27 21:00:11 +01:00

115 lines
3.9 KiB
Python

# -*- coding: utf-8 -*-
# python-holidays
# ---------------
# A fast, efficient Python library for generating country, province and state
# specific sets of holidays on the fly. It aims to make determining whether a
# specific date is a holiday as fast and flexible as possible.
#
# Author: ryanss <ryanssdev@icloud.com> (c) 2014-2017
# dr-prodigy <maurizio.montel@gmail.com> (c) 2017-2020
# Website: https://github.com/dr-prodigy/python-holidays
# License: MIT (see LICENSE file)
from datetime import date
from dateutil.easter import easter
from dateutil.relativedelta import relativedelta as rd
from holidays.constants import FRI, SAT
from holidays.constants import JAN, MAY, JUN
from holidays.holiday_base import HolidayBase
from holidays.utils import get_gre_date
WEEKEND = (FRI, SAT)
# Since Djibouti share most of it's holidays with other muslim countries,
# this class is just a copy of Egypt's.
class Djibouti(HolidayBase):
# Holidays here are estimates, it is common for the day to be pushed
# if falls in a weekend, although not a rule that can be implemented.
# Holidays after 2020: the following four moving date holidays whose exact
# date is announced yearly are estimated (and so denoted):
# - Eid El Fetr*
# - Eid El Adha*
# - Isra wal Miraj*
# - Moulad El Naby*
# - Arafat*
# *only if hijri-converter library is installed, otherwise a warning is
# raised that this holiday is missing. hijri-converter requires
# Python >= 3.6
# is_weekend function is there, however not activated for accuracy.
def __init__(self, **kwargs):
self.country = 'DJ'
HolidayBase.__init__(self, **kwargs)
def _populate(self, year):
"""
# Function to store the holiday name in the appropriate
# date and to shift the Public holiday in case it happens
# on a Saturday(Weekend)
# (NOT USED)
def is_weekend(self, hol_date, hol_name):
if hol_date.weekday() == FRI:
self[hol_date] = hol_name + " [Friday]"
self[hol_date + rd(days=+2)] = "Sunday following " + hol_name
else:
self[hol_date] = hol_name
"""
# New Year's Day
self[date(year, JAN, 1)] = "Nouvel an"
# Labour Day
self[date(year, MAY, 1)] = "Fête du travail"
# Fête de l'indépendance
self[date(year, JUN, 27)] = "Fête de l'indépendance"
self[date(year, JUN, 28)] = "Fête de l'indépendance"
# Isra wal Miraj
# The night journey of the prophet Muhammad
for date_obs in get_gre_date(year, 7, 27):
hol_date = date_obs
self[hol_date] = "Isra wal Miraj"
# Eid al-Fitr - Feast Festive
# date of observance is announced yearly, This is an estimate since
# having the Holiday on Weekend does change the number of days,
# deceided to leave it since marking a Weekend as a holiday
# wouldn't do much harm.
for date_obs in get_gre_date(year, 10, 1):
hol_date = date_obs
self[hol_date] = "Eid al-Fitr"
self[hol_date + rd(days=1)] = "Eid al-Fitr deuxième jour"
# Arafat & Eid al-Adha - Scarfice Festive
# date of observance is announced yearly
for date_obs in get_gre_date(year, 12, 9):
hol_date = date_obs
self[hol_date] = "Arafat"
self[hol_date + rd(days=1)] = "Eid al-Adha"
self[hol_date + rd(days=2)] = "Eid al-Adha deuxième jour"
# Islamic New Year - (hijari_year, 1, 1)
for date_obs in get_gre_date(year, 1, 1):
hol_date = date_obs
self[hol_date] = "Nouvel an musulman"
# Prophet Muhammad's Birthday - (hijari_year, 3, 12)
for date_obs in get_gre_date(year, 3, 12):
hol_date = date_obs
self[hol_date] = "Naissance du prophet Muhammad"
class DJ(Djibouti):
pass
class DJI(Djibouti):
pass