Python | biblioteca de vacaciones

La biblioteca Python Holidays es una biblioteca eficiente para determinar si una fecha específica es un día festivo de la manera más rápida y flexible posible. Para cualquier país, uno puede saber si ese día es feriado o no. Solo se pueden detectar días fijos (públicos) festivos como Navidad, Año Nuevo, etc.

Instalación:

pip install holidays

Sintaxis:

vacaciones.HolidayBase(años=[], expandir=Verdadero, observado=Verdadero, prov=Ninguno, estado=Ninguno)

Parámetros:

years : una lista iterable de enteros que especifica los años que el objeto Holiday debe generar previamente. Esto generalmente solo se usaría si la configuración se expande a False. (Defecto[])

expand : un valor booleano que especifica si se agregan o no vacaciones en años nuevos al objeto de vacaciones. (Predeterminado: Verdadero)

observado : un valor booleano que, cuando se establece en True, incluirá el día observado de un feriado que cae en fin de semana, cuando corresponda. (Predeterminado: Verdadero)

prov : una string que especifica una provincia que tiene días festivos legales únicos. (Predeterminado: Australia=’ACT’, Canadá=’ON’, Nueva Zelanda=Ninguno)

state : una string que especifica un estado que tiene días festivos legales únicos. (Predeterminado: Estados Unidos=Ninguno)

Métodos:

  • get(key, default=None): Devuelve una string que contiene el nombre de las vacaciones en la clave de fecha, que puede ser de tipo fecha, fechahora, string, unicode, bytes, entero o flotante. Si varios días festivos caen en la misma fecha, los nombres se separarán con comas.
  • get_list(key): Igual que get excepto que devuelve una lista de nombres de días festivos en lugar de una string separada por comas.
  • pop(key, default=None): Igual que get, excepto que la clave se elimina de la actualización/añadir del objeto de vacaciones. Acepta el diccionario de pares {fecha: nombre}, una lista de fechas o incluso objetos singulares de fecha/string/marca de tiempo y los agrega a la lista de días festivos.

Código n.° 1: para un país y un año en particular, se muestran todos los días festivos.

from datetime import date
import holidays
  
# Select country
uk_holidays = holidays.UnitedKingdom()
  
# Print all the holidays in UnitedKingdom in year 2018
for ptr in holidays.UnitedKingdom(years = 2018).items():
    print(ptr)

Producción:

(datetime.date(2018, 1, 1), "New Year's Day")
(datetime.date(2018, 1, 2), 'New Year Holiday [Scotland]')
(datetime.date(2018, 3, 17), "St. Patrick's Day [Northern Ireland]")
(datetime.date(2018, 3, 19), "St. Patrick's Day [Northern Ireland] (Observed)")
(datetime.date(2018, 3, 30), 'Good Friday')
(datetime.date(2018, 4, 2), 'Easter Monday [England, Wales, Northern Ireland]')
(datetime.date(2018, 5, 7), 'May Day')
(datetime.date(2018, 5, 28), 'Spring Bank Holiday')
(datetime.date(2018, 7, 12), 'Battle of the Boyne [Northern Ireland]')
(datetime.date(2018, 8, 6), 'Summer Bank Holiday [Scotland]')
(datetime.date(2018, 8, 27), 'Late Summer Bank Holiday [England, Wales, Northern Ireland]')
(datetime.date(2018, 11, 30), "St. Andrew's Day [Scotland]")
(datetime.date(2018, 12, 25), 'Christmas Day')
(datetime.date(2018, 12, 26), 'Boxing Day')

 
Código #2: Verifique si una fecha dada es feriado o no

from datetime import date
import holidays
  
# Select country
uk_holidays = holidays.UnitedKingdom()
  
# If it is a holidays then it returns True else False
print('01-01-2018' in uk_holidays)
print('02-01-2018' in uk_holidays)
  
# What holidays is it?
print(uk_holidays.get('01-01-2018'))
print(uk_holidays.get('02-01-2018'))

Producción:

True
False
New Year's Day
None

 
Código #3: Días festivos en América del Norte

from datetime import date
import holidays
  
# Combining Countries
north_america = holidays.CA() + holidays.US() + holidays.MX()
# Output list of countries combined
print(north_america.country)
  
print(north_america.get('07-01-2018'))
print(north_america.get('07-04-2018'))

Producción:

['CA', 'US', 'MX']
Canada Day
Independence Day

Lista de países incluidos en Holiday Library –

País abreviar Provincias/Estados Disponibles
Argentina Arkansas Ninguna
Australia Australia prov = ACT (predeterminado), NSW, NT, QLD, SA, TAS, VIC, WA
Austria A prueba = B, K, N, O, S, ST, T, V, W (predeterminado)
Bélgica SER Ninguna
Canadá California prov = AB, BC, MB, NB, NL, NS, NT, NU, ON (predeterminado),
PE, QC, SK, YU
Colombia CO Ninguna
checo CZ Ninguna
Dinamarca no sé Ninguna
Inglaterra Ninguna
Banco central europeo BCE, TAR Liquidación bruta transeuropea automatizada en tiempo real (TARGET2)
Finlandia FI Ninguna
Francia FRA Métropole (predeterminado), Alsace-Moselle, Guadalupe, Guyane,
Martinica, Mayotte, Nouvelle-Calédonie, La Réunion,
Polynésie Française, Saint-Barthélémy, Saint-Martin,
Wallis-et-Futuna
Alemania Delaware BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST,
SH, TH
Hungría HU Ninguna
Irlanda ES DECIR
Isla del hombre Ninguna
Italia ESO prov = MI, RM
Japón JP Ninguna
México MX Ninguna
Países Bajos Países Bajos Ninguna
Nueva Zelanda Nueva Zelanda prueba = NTL, AUK, TKI, HKB, WGN, MBH, NSN, CAN, STC, WTL,
OTA, STL, CIT
Irlanda del Norte Ninguna
Noruega NO Ninguna
Polaco ES Ninguna
Portugal PT Ninguna
PortugalExt PTE Portugal más días extendidos que la mayoría de la gente tiene libre
Escocia Ninguna
Eslovenia SI Ninguna
Eslovaquia SK Ninguna
Sudáfrica ES Ninguna
España ES prov = AND, ARG, AST, CAN, CAM, CAL, CAT, CVA, EXT, GAL,
IBA, ICA, MAD, MUR, NAV, PVA, RIO
Suecia SE Ninguna
Suiza CH prov = AG, AR, AI, BL, BS, BE, FR, GE, GL, GR, JU, LU,
NE, NW, OW, SG, SH, SZ, SO, TG, TI, UR, VD, VS, ZG, ZH
Reino Unido Reino Unido Ninguna
Estados Unidos A NOSOTROS estado = AL, AK, AS, AZ, AR, CA, CO, CT, DE, DC, FL, GA,
GU, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MH, MA, MI,
FM, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, MP,
OH, OK, OR, PW, PA, PR, RI, SC, SD, TN, TX, UT, VT, VA,
VI, WA, WV, WI, WY
Gales Ninguna

En esta Biblioteca faltan muchos países. Entonces, podemos hacer nuestros propios días festivos personalizados.

Código n.º 4: Adición de días festivos personalizados para la India

from datetime import date
import holidays
  
in_holidays = holidays.HolidayBase()
  
# Let's check our republic day
print('26-01-2019' in in_holidays)
  
# Add Holiday without description
in_holidays.append('26-01-2019')
  
# Let's verify
print('26-01-2019' in in_holidays) # True
  
# Let's Check Description
print(in_holidays.get('26-01-2019'))
  
# Add Holiday with description
in_holidays.append({'26-01-2019':'Republic Day India'})
print(in_holidays.get('26-01-2019'))
  
  
# Add list of Dates Together
in_holidays.append(['02-10-2018', '15-08-2018'])
print('15-08-2018' in in_holidays) # True
print('02-10-2018' in in_holidays) # True
  
# a single date item
in_holidays.append(date(2018, 12, 25))
print('25-12-2018' in in_holidays) # True

Producción:

False 
True 
Holiday 
Republic Day India, Holiday
True 
True 
True 

 
Referencia: https://pypi.org/project/holidays/

Publicación traducida automáticamente

Artículo escrito por shaurya uppal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *