Generate and work with holidays in Python

Overview

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.

http://img.shields.io/travis/dr-prodigy/python-holidays/master http://img.shields.io/coveralls/dr-prodigy/python-holidays/master

Example Usage

from datetime import date

import holidays

us_holidays = holidays.UnitedStates()
# or:
# us_holidays = holidays.US()
# or:
# us_holidays = holidays.CountryHoliday('US')
# or, for specific prov / states:
# us_holidays = holidays.CountryHoliday('US', prov=None, state='CA')

date(2015, 1, 1) in us_holidays  # True
date(2015, 1, 2) in us_holidays  # False

# The Holiday class will also recognize strings of any format
# and int/float representing a Unix timestamp
'2014-01-01' in us_holidays  # True
'1/1/2014' in us_holidays    # True
1388597445 in us_holidays    # True

us_holidays.get('2014-01-01')  # "New Year's Day"

us_holidays['2014-01-01': '2014-01-03']  # [date(2014, 1, 1)]

us_pr_holidays = holidays.UnitedStates(state='PR')  # or holidays.US(...), or holidays.CountryHoliday('US', state='PR')

# some holidays are only present in parts of a country
'2018-01-06' in us_holidays     # False
'2018-01-06' in us_pr_holidays  # True

# Easily create custom Holiday objects with your own dates instead
# of using the pre-defined countries/states/provinces available
custom_holidays = holidays.HolidayBase()
# Append custom holiday dates by passing:
# 1) a dict with date/name key/value pairs,
custom_holidays.append({"2015-01-01": "New Year's Day"})
# 2) a list of dates (in any format: date, datetime, string, integer),
custom_holidays.append(['2015-07-01', '07/04/2015'])
# 3) a single date item
custom_holidays.append(date(2015, 12, 25))

date(2015, 1, 1) in custom_holidays  # True
date(2015, 1, 2) in custom_holidays  # False
'12/25/2015' in custom_holidays      # True

# For more complex logic like 4th Monday of January, you can inherit the
# HolidayBase class and define your own _populate(year) method. See below
# documentation for examples.

Install

The latest stable version can always be installed or updated via pip:

$ pip install holidays

If the above fails, please use easy_install instead:

$ easy_install holidays

Available Countries

Country ISO code Provinces/States Available
Angola AO/AGO None
Argentina AR/ARG None
Aruba AW/ABW None
Australia AU/AUS prov = ACT (default), NSW, NT, QLD, SA, TAS, VIC, WA
Austria AT/AUT prov = 1, 2, 3, 4, 5, 6, 7, 8, 9 (default)
Bangladesh BD/BDG None
Belarus BY/BLR None
Belgium BE/BEL None
Brazil BR/BRA state = AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO
Bulgaria BG/BLG None
Burundi BI/BDI None
Canada CA/CAN prov = AB, BC, MB, NB, NL, NS, NT, NU, ON (default), PE, QC, SK, YU
Chile CL/CHL state = AI, AN, AP, AR, AT, BI, CO, LI, LL, LR, MA, ML, NB, RM, TA, VS
Colombia CO/COL None
Croatia HR/HRV None
Czechia CZ/CZE None
Denmark DK/DNK None
Djibouti DJ/DJI None
DominicanRepublic DO/DOM None
Egypt EG/EGY None
England   None
Estonia EE/EST None
EuropeanCentralBank ECB/TAR Trans-European Automated Real-time Gross Settlement (TARGET2)
Finland FI/FIN None
France FR/FRA Métropole (default), Alsace-Moselle, Guadeloupe, Guyane, Martinique, Mayotte, Nouvelle-Calédonie, La Réunion, Polynésie Française, Saint-Barthélémy, Saint-Martin, Wallis-et-Futuna
Germany DE/DEU prov = BW, BY, BYP, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH
Greece GR/GRC None
Honduras HN/HND None
HongKong HK/HKG None
Hungary HU/HUN None
Iceland IS/ISL None
India IN/IND prov = AS, SK, CG, KA, GJ, BR, RJ, OD, TN, AP, WB, KL, HR, MH, MP, UP, UK, TN
Ireland IE/IRL None
IsleOfMan   None
Israel IL/ISR None
Italy IT/ITA prov = AN, AO, BA, BL, BO, BS, BZ, CB, Cesena, CH, CS, CT, EN, FC, FE, FI, Forlì, FR, GE, GO, IS, KR, LT, MB, MI, MO, MN, MS, NA, PA, PC, PD, PG, PR, RM, SP, TS, VI
Japan JP/JPN None
Kenya KE/KEN None
Korea KR/KOR None
Latvia LV/LVA None
Lithuania LT/LTU None
Luxembourg LU/LUX None
Malawi MW/MWI None
Mexico MX/MEX None
Morocco MA/MOR None
Mozambique MZ/MOZ None
Netherlands NL/NLD None
NewZealand NZ/NZL prov = NTL, AUK, TKI, HKB, WGN, MBH, NSN, CAN, STC, WTL, OTA, STL, CIT
Nicaragua NI/NIC prov = MN
Nigeria NG/NGA None
NorthernIreland   None
Norway NO/NOR None
Paraguay PY/PRY None
Peru PE/PER None
Poland PL/POL None
Portugal PT/PRT None
PortugalExt PTE/PRTE Portugal plus extended days most people have off
Romania RO/ROU None
Russia RU/RUS None
Scotland   None
Serbia RS/SRB None
Singapore SG/SGP None
Slovakia SK/SVK None
Slovenia SI/SVN None
SouthAfrica ZA/ZAF None
Spain ES/ESP prov = AN, AR, AS, CB, CL, CM, CN, CT, EX, GA, IB, MC, MD, NC, PV, RI, VC
Sweden SE/SWE None
Switzerland CH/CHE 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
Turkey TR/TUR None
Ukraine UA/UKR None
UnitedArabEmirates AE/ARE None
UnitedKingdom GB/GBR/UK None
UnitedStates US/USA state = 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
Vietnam VN/VNM  
Wales   None

API

class holidays.HolidayBase(years=[], expand=True, observed=True, prov=None, state=None)
The base class used to create holiday country classes.

Parameters:

years
An iterable list of integers specifying the years that the Holiday object should pre-generate. This would generally only be used if setting expand to False. (Default: [])
expand
A boolean value which specifies whether or not to append holidays in new years to the holidays object. (Default: True)
observed
A boolean value which when set to True will include the observed day of a holiday that falls on a weekend, when appropriate. (Default: True)
prov
A string specifying a province that has unique statutory holidays. (Default: Australia='ACT', Canada='ON', NewZealand=None)
state
A string specifying a state that has unique statutory holidays. (Default: UnitedStates=None)

Methods:

get(key, default=None)
Returns a string containing the name of the holiday(s) in date key, which can be of date, datetime, string, unicode, bytes, integer or float type. If multiple holidays fall on the same date the names will be separated by commas
get(key, default=None)
Returns a string containing the name of the holiday(s) in date key, which can be of date, datetime, string, unicode, bytes, integer or float type. If multiple holidays fall on the same date the names will be separated by commas
get_list(key)
Same as get except returns a list of holiday names instead of a comma separated string
get_named(name)
Returns a list of holidays matching (even partially) the provided name (case insensitive check)
pop(key, default=None)
Same as get except the key is removed from the holiday object
pop_named(name)
Same as pop but takes the name of the holiday (or part of it) rather than the date
update/append
Accepts dictionary of {date: name} pairs, a list of dates, or even singular date/string/timestamp objects and adds them to the list of holidays

More Examples

# Simplest example possible

>>> from datetime import date
>>> import holidays
>>> date(2014, 1, 1) in holidays.US()
True
>> date(2014, 1, 2) in holidays.US()
False

# But this is not efficient because it is initializing a new Holiday object
# and generating a list of all the holidays in 2014 during each comparison

# It is more efficient to create the object only once

>>> us_holidays = holidays.US()
>>> date(2014, 1, 1) in us_holidays
True
>> date(2014, 1, 2) in us_holidays
False

# Each country has three class names that can be called--a full name
# and the 2 and 3-digit ISO codes. Use whichever you prefer.

>>> holidays.UnitedStates() == holidays.US()
True
>>> holidays.Canada() == holidays.CA()
True
>>> holidays.US() == holidays.CA()
False

# Let's print out the holidays in 2014 specific to California, USA

>>> for date, name in sorted(holidays.US(state='CA', years=2014).items()):
>>>     print(date, name)
2014-01-01 New Year's Day
2014-01-20 Martin Luther King Jr. Day
2014-02-15 Susan B. Anthony Day
2014-02-17 Washington's Birthday
2014-03-31 César Chávez Day
2014-05-26 Memorial Day
2014-07-04 Independence Day
2014-09-01 Labor Day
2014-10-13 Columbus Day
2014-11-11 Veterans Day
2014-11-27 Thanksgiving
2014-12-25 Christmas Day

# So far we've only checked holidays in 2014 so that's the only year the
# Holidays object has generated

>>> us_holidays.years
set([2014])
>>> len(us_holidays)
10

# Because by default the `expand` param is True the Holiday object will add
# holidays from other years as they are required.

>>> date(2013, 1, 1) in us_holidays
True
>>> us_holidays.years
set([2013, 2014])
>>> len(us_holidays)
20

# If we change the `expand` param to False the Holiday object will no longer
# add holidays from new years

>>> us_holidays.expand = False
>>> date(2012, 1, 1) in us_holidays
False
>>> us.holidays.expand = True
>>> date(2012, 1, 1) in us_holidays
True

# January 1st, 2012 fell on a Sunday so the statutory holiday was observed
# on the 2nd. By default the `observed` param is True so the holiday list
# will include January 2nd, 2012 as a holiday.

>>> date(2012, 1, 1) in us_holidays
True
>>> us_holidays[date(2012, 1, 1)]
"New Year's Day"
>>> date(2012, 1, 2) in us_holidays
True
>>> us_holidays.get(date(2012 ,1, 2))
"New Year's Day (Observed)"

# The `observed` and `expand` values can both be changed on the fly and the
# holiday list will be adjusted accordingly

>>> us_holidays.observed = False
>>> date(2012, 1, 2) in us_holidays
False
us_holidays.observed = True
>> date(2012, 1, 2) in us_holidays
True

# Holiday objects can be added together and the resulting object will
# generate the holidays from all of the initial objects

>>> north_america = holidays.CA() + holidays.US() + holidays.MX()
>>> north_america.get('2014-07-01')
"Canada Day"
>>> north_america.get('2014-07-04')
"Independence Day"

# The other form of addition is also available

>>> north_america = holidays.Canada()
>>> north_america += holidays.UnitedStates()
>>> north_america += holidays.Mexico()
>>> north_america.country
['CA', 'US', 'MX']

# We can even get a set of holidays that include all the province- or
# state-specific holidays using the built-in sum() function
>>> a = sum([holidays.CA(prov=x) for x in holidays.CA.PROVINCES])
>>> a.prov
PROVINCES = ['AB', 'BC', 'MB', 'NB', 'NL', 'NS', 'NT', 'NU', 'ON', 'PE',
             'QC', 'SK', 'YU']

# Holidays can be retrieved using their name too.
# `get_named(key)` receives a string and returns a list of holidays
# matching it (even partially, with case insensitive check)

>>> us_holidays = holidays.UnitedStates(years=2020)
>>> us_holidays.get_named('day')
[datetime.date(2020, 1, 1), datetime.date(2020, 1, 20),
datetime.date(2020, 2, 17), datetime.date(2020, 5, 25),
datetime.date(2020, 7, 4), datetime.date(2020, 7, 3),
datetime.date(2020, 9, 7), datetime.date(2020, 10, 12),
datetime.date(2020, 11, 11), datetime.date(2020, 12, 25)]

# Sometimes we may not be able to use the official federal statutory
# holiday list in our code. Let's pretend we work for a company that
# does not include Columbus Day as a statutory holiday but does include
# "Ninja Turtle Day" on July 13th. We can create a new class that inherits
# the UnitedStates class and the only method we need to override is _populate()

>>> class CorporateHolidays(holidays.UnitedStates):
>>>     def _populate(self, year):
>>>         # Populate the holiday list with the default US holidays
>>>         holidays.UnitedStates._populate(self, year)
>>>         # Remove Columbus Day
>>>         self.pop_named("Columbus Day")
>>>         # Add Ninja Turtle Day
>>>         self[date(year, 7, 13)] = "Ninja Turtle Day"
>>> date(2014, 10, 14) in Holidays(country="US")
True
>>> date(2014, 10, 14) in CorporateHolidays(country="US")
False
>>> date(2014, 7, 13) in Holidays(country="US")
False
>>> date(2014 ,7, 13) in CorporateHolidays(country="US")
True

# We can also inherit from the HolidayBase class which has an empty
# _populate method so we start with no holidays and must define them
# all ourselves. This is how we would create a holidays class for a country
# that is not supported yet.

>>> class NewCountryHolidays(holidays.HolidayBase):
>>>     def _populate(self, year):
>>>         self[date(year, 1, 2)] = "Some Federal Holiday"
>>>         self[date(year, 2, 3)] = "Another Federal Holiday"
>>> hdays = NewCountryHolidays()

# We can also include prov/state specific holidays in our new class.

>>> class NewCountryHolidays(holidays.HolidayBase):
>>>     def _populate(self, year):
>>>         # Set default prov if not provided
>>>         if self.prov == None:
>>>             self.prov = 'XX'
>>>         self[date(year, 1, 2)] = "Some Federal Holiday"
>>>         if self.prov == 'XX':
>>>             self[date(year, 2, 3)] = "Special XX province-only holiday"
>>>         if self.prov == 'YY':
>>>             self[date(year, 3, 4)] = "Special YY province-only holiday"
>>> hdays = NewCountryHolidays()
>>> hdays = NewCountryHolidays(prov='XX')

# If you write the code necessary to create a holiday class for a country
# not currently supported please contribute your code to the project!

# Perhaps you just have a list of dates that are holidays and want to turn
# them into a Holiday class to access all the useful functionality. You can
# use the append() method which accepts a dictionary of {date: name} pairs,
# a list of dates, or even singular date/string/timestamp objects.

>>> custom_holidays = holidays.HolidayBase()
>>> custom_holidays.append(['2015-01-01', '07/04/2015'])
>>> custom_holidays.append(date(2015, 12, 25))
>>> from datetime import date
>>> holidays.US()[date(2013, 12, 31): date(2014, 1, 2)]

# Intermediate years are only shown if they are listed in the years parameter.

>>> holidays.US(years=[2014])[datetime.date(2013, 1, 1): datetime.date(2015, 12, 31)]

Development Version

The latest development (beta) version can be installed directly from GitHub:

$ pip install --upgrade https://github.com/dr-prodigy/python-holidays/tarball/beta

All new features are always first pushed to beta branch, then released on master branch upon official version upgrades.

Running Tests

$ pip install flake8
$ flake8
$ python tests.py

Coverage

$ pip install coverage
$ coverage run --omit=*site-packages* tests.py
$ coverage report -m

Contributions

Issues and Pull Requests are always welcome.

When contributing with fixes and new features, please start forking/branching from beta branch, to work on latest code and reduce merging issues.

Also, whenever possible, please provide 100% test coverage for your new code.

Thanks a lot for your support.

License

Code and documentation are available according to the MIT License (see LICENSE).

Comments
  • Use gh action ci cd

    Use gh action ci cd

    Here is the long ago promised PR to change the CI-CD from travis to github actions.

    As mentioned in #341 I also implemented some other tooling changes:

    • Added pre-commit
    • Added autoformatting with black via pre-commit
    • Changed flake8 linting to run via pre-commit
    • Added tools to check *.rst files
    • Changed test runner to be pytest
    • Changed structure of tests, now the tests structure mirrors the structure of the project (IMHO makes it much easier to find the tests you are looking for)
    • Changed contributing documentation to reflect changed tooling

    Looking at some changes black made (e.g. for holidays/countries/hongkong.py), maybe a different formatter which is more configurable (e.g. yapf) would be better suited for this project.

    For the CD to work you need to get an API token from pypi and set it a secret called pypi_password (see)

    After that, you can simply run

    $ bump2version major|minor|patch
    $ git push --follow-tags
    

    And the release is on its way ^^

    opened by s-weigand 18
  • Cumulative merge commit - v.0.9 candidate

    Cumulative merge commit - v.0.9 candidate

    Hi, seeing that the project has been idle for some months, along with my contribution on italian holidays, I decided to put some extra work, so I merged the largest part of the previously pull-requested branches which have provided good test coverage and passed all travis checks.

    Added a lot of national holidays on queue and support for python3.6: see changelog for details.

    Possible candidate for v.0.9 lib (?).

    opened by dr-prodigy 17
  • I found issue when import fbprophet when using holidays Library

    I found issue when import fbprophet when using holidays Library

    When I importing fbprophet version = 0.5 and holidays version =0.10.1 I faced this issue. Can anyone help me?


    ImportError Traceback (most recent call last) in ----> 1 import fbprophet

    /opt/anaconda3/lib/python3.7/site-packages/fbprophet/init.py in 6 # of patent rights can be found in the PATENTS file in the same directory. 7 ----> 8 from fbprophet.forecaster import Prophet 9 10 version = '0.5'

    /opt/anaconda3/lib/python3.7/site-packages/fbprophet/forecaster.py in 18 19 from fbprophet.diagnostics import prophet_copy ---> 20 from fbprophet.make_holidays import get_holiday_names, make_holidays_df 21 from fbprophet.models import prophet_stan_model 22 from fbprophet.plot import (plot, plot_components, plot_forecast_component,

    /opt/anaconda3/lib/python3.7/site-packages/fbprophet/make_holidays.py in 14 import pandas as pd 15 ---> 16 import fbprophet.hdays as hdays_part2 17 import holidays as hdays_part1 18

    /opt/anaconda3/lib/python3.7/site-packages/fbprophet/hdays.py in 14 15 from convertdate.islamic import from_gregorian, to_gregorian ---> 16 from holidays import WEEKEND, HolidayBase, easter, rd 17 from lunardate import LunarDate 18

    ImportError: cannot import name 'easter' from 'holidays' (/opt/anaconda3/lib/python3.7/site-packages/holidays/init.py)

    wontfix 
    opened by hiennguyen15 13
  • US Holidays Error: dictionary changed during iteration when passing years to holidays.US constructor

    US Holidays Error: dictionary changed during iteration when passing years to holidays.US constructor

    Attempting to use code to get US holidays for specific years. This code works for some countries but not US (nor Canada)

    import holidays
    import numpy as np
    print(holidays.__version__)
    years = np.array([2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021])
    x = holidays.US(years=years)
    

    This code works when I try different countries: FR, GB, RU, DE, ES, CZ, AU, JP, CN, IN

    This syntax fails to return results for the countries: US, CA

    This syntax for passing numpy arrays I found in a ticket with a CZ example. (https://github.com/dr-prodigy/python-holidays/pull/528).

    I am running on Databricks runtime 10.0. The holidays version is 0.11.3.1 as you see below.

    The output I got was for US (or CA) is:

    0.11.3.1
    Out[41]: 
    RuntimeError: dictionary changed size during iteration
    

    Example output when I use another country, such as AU is:

    0.11.3.1
    Out[42]: {datetime.date(2016, 1, 1): "New Year's Day",
     datetime.date(2016, 1, 26): 'Australia Day',
     datetime.date(2016, 3, 25): 'Good Friday',
     datetime.date(2016, 3, 28): 'Easter Monday',
     datetime.date(2016, 4, 25): 'Anzac Day',
     datetime.date(2016, 12, 25): 'Christmas Day',
     datetime.date(2016, 12, 27): 'Christmas Day (Observed)',
     datetime.date(2016, 12, 26): 'Boxing Day',
     datetime.date(2017, 1, 1): "New Year's Day",
     datetime.date(2017, 1, 2): "New Year's Day (Observed)",
    ...
    
    question 
    opened by extrospective 12
  • Add pop_named(), to make removing holidays easier.  No need to look up or calculate the date.

    Add pop_named(), to make removing holidays easier. No need to look up or calculate the date.

    I found it surprisingly hard to remove "Columbus Day" from the holiday list - the example code in the README works but it requires that the caller know when the holiday falls, but that's why I'm using the library! :) So this PR adds a pop_named() call that does the reverse lookup and pop.

    opened by samtregar 12
  • Add Singapore holidays

    Add Singapore holidays

    Implemented Singapore holidays

    # Holidays Act: https://sso.agc.gov.sg/Act/HA1998
    # https://www.mom.gov.sg/employment-practices/public-holidays
    # https://en.wikipedia.org/wiki/Public_holidays_in_Singapore
    
    # Holidays prior to 1969 (Act 24 of 1968—Holidays (Amendment) Act 1968)
    # are estimated.
    
    # Holidays prior to 2000 may not be accurate.
    
    # Holidays after 2020: the following four moving date holidays whose exact
    # date is announced yearly are estimated (and so denoted):
    # - Hari Raya Puasa*
    # - Hari Raya Haji*
    # - Vesak Day
    # - Deepavali
    # *only if hijri-converter library is installed, otherwise a warning is
    #  raised that this holiday is missing. hijri-converter requires
    #  Python >= 3.6
    

    Updated README to add Singapore Updated tests.py to create unit tests for Singapore Updated .travis.yml since hijri-converter is available only for Python >= 3.6

    opened by mborsetti 12
  • Add one-off national Reformation day (DE/2017)

    Add one-off national Reformation day (DE/2017)

    This library is missing a national holiday in Germany that is coming up soon.

    Germany is celebrating the 500th anniversary of Reformation day by making it a national public holiday on 2017-10-31. Normally it is only a public holiday in a few states. See eg https://en.wikipedia.org/wiki/Reformation_Day#500th_anniversary

    invalid 
    opened by willhardy 11
  • Changes to Australia holiday class

    Changes to Australia holiday class

    I am the one who created the Australia country class with it taking a prov argument. Now that the library is much more developed and HolidayBase can also take a state argument I think Australians would prefer to use that (even though ACT and NT are territories, not states). I have changed this, and have also removed ACT as a default, and fixed the handling of Canberra Day and Family & Community Day for ACT.

    NOTE: I have not made any attempt at maintaining backwards compatibility. Is this required? If so I could add some code for that.

    opened by linuxsoftware 11
  • Japan: Refactored japanese holidays

    Japan: Refactored japanese holidays

    Refactored japanese holidays to make use of Meeus algorithms Include pymeeus in requirements_dev.txt which was already a transitive dependency associated with convertdate Sort dependencies alphabetically in requirements_dev.txt

    opened by Nalguedo 9
  • DeprecationWarning upon

    DeprecationWarning upon "import holidays" in version 0.17

    The implementation of deprecating the Swaziland calendar contains a bug. Just importing the holidays package is enough to fire the DeprecationWarning.

    Steps to reproduce (in bash):

    # Setup
    python -m venv demo
    source demo/bin/activate
    pip install --upgrade pip
    
    # Bad version
    pip install holidays==0.17
    
    # Expose bug
    python -W error::DeprecationWarning -c 'import holidays'
    
    # Workoround
    pip uninstall -y holidays
    pip install holidays!=0.17
    python -W error::DeprecationWarning -c 'import holidays'
    
    # Cleanup
    deactivate
    rm -rf demo
    

    Expected behavior:

    The DeprecationWarning should only fire when the user constructs an instance of the Swaziland or a subclass.

    opened by walkerh 9
  • Weekdays/weekends refactoring

    Weekdays/weekends refactoring

    This PR streamlines weekday/weekend constants usage and addresses some isort/flake8 issues:

    • Deprecate MON-SUN constants in favor of dateutil MO-SA.
    • Deprecate and move WEEKENDS from utils to HolidayBase (on per country basis as some countries have not usual SAT, SUN weekends).
    • Add _is_weekend method into HolidayBase.
    • Change isort multi-line import behavior to bracket-less.
    • Update flake8 settings in order to make it stricter.
    • Remove unused imports.
    • Remove unused/commented out code.
    question 
    opened by arkid15r 9
  • Migrate prophet.hdays countries

    Migrate prophet.hdays countries

    This PR starts a series of changes in order to resolve "help-wanted" labeled https://github.com/facebook/prophet/issues/2011:

    • Add Philippines, Thailand initial support.
    • Update Belarus, Georgia, India, Indonesia, Russia.
    • Refactor tests.
    opened by arkid15r 1
  • Update coverage[toml] requirement from <7.0.0 to <8.0.0

    Update coverage[toml] requirement from <7.0.0 to <8.0.0

    Updates the requirements on coverage[toml] to permit the latest version.

    Release notes

    Sourced from coverage[toml]'s releases.

    7.0.1

    • When checking if a file mapping resolved to a file that exists, we weren’t considering files in .whl files. This is now fixed, closing issue 1511.
    • File pattern rules were too strict, forbidding plus signs and curly braces in directory and file names. This is now fixed, closing issue 1513.
    • Unusual Unicode or control characters in source files could prevent reporting. This is now fixed, closing issue 1512.
    • The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing issue 1510.

    :arrow_right:  PyPI page: coverage 7.0.1. :arrow_right:  To install: python3 -m pip install coverage==7.0.1

    Changelog

    Sourced from coverage[toml]'s changelog.

    Version 7.0.1 — 2022-12-23

    • When checking if a file mapping resolved to a file that exists, we weren't considering files in .whl files. This is now fixed, closing issue 1511_.

    • File pattern rules were too strict, forbidding plus signs and curly braces in directory and file names. This is now fixed, closing issue 1513_.

    • Unusual Unicode or control characters in source files could prevent reporting. This is now fixed, closing issue 1512_.

    • The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing issue 1510_.

    .. _issue 1510: nedbat/coveragepy#1510 .. _issue 1511: nedbat/coveragepy#1511 .. _issue 1512: nedbat/coveragepy#1512 .. _issue 1513: nedbat/coveragepy#1513

    .. _changes_7-0-0:

    Version 7.0.0 — 2022-12-18

    Nothing new beyond 7.0.0b1.

    .. _changes_7-0-0b1:

    Version 7.0.0b1 — 2022-12-03

    A number of changes have been made to file path handling, including pattern matching and path remapping with the [paths] setting (see :ref:config_paths). These changes might affect you, and require you to update your settings.

    (This release includes the changes from 6.6.0b1 <changes_6-6-0b1_>_, since 6.6.0 was never released.)

    • Changes to file pattern matching, which might require updating your configuration:

      • Previously, * would incorrectly match directory separators, making precise matching difficult. This is now fixed, closing issue 1407_.

      • Now ** matches any number of nested directories, including none.

    • Improvements to combining data files when using the

    ... (truncated)

    Commits
    • c5cda3a docs: releases take a little bit longer now
    • 9d4226e docs: latest sample HTML report
    • 8c77758 docs: prep for 7.0.1
    • da1b282 fix: also look into .whl files for source
    • d327a70 fix: more information when mapping rules aren't working right.
    • 35e249f fix: certain strange characters caused reporting to fail. #1512
    • 152cdc7 fix: don't forbid plus signs in file names. #1513
    • 31513b4 chore: make upgrade
    • 873b059 test: don't run tests on Windows PyPy-3.9
    • 5c5caa2 build: PyPy wheel now installs on 3.7, 3.8, and 3.9. #1510
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Add supported countries tests

    Add supported countries tests

    • Add README.rst country count test
    • Add README.rst supported countries tests
    • Add UK back to the list of supported countries
    • Sort HolidayBase::subdivisions
    • Fix supported countries table formatting
    opened by arkid15r 1
Releases(v.0.18)
  • v.0.18(Dec 27, 2022)

    Version 0.18

    Released December 27, 2022

    • Code refactoring #801, #870 (arkid15r)
    • Test refactoring / common functions #800, #830, #844 (arkid15r)
    • Pre-commit reviews #786, #795 (KJhellico, arkid15r, dr-p)
    • Import cleanup, flake8 settings review #792 (arkid15r, KJhellico, dr-p)
    • PyMeeus for equinox and solstice calculation #828, #863 (Nalguedo)
    • Easter holidays refactoring and unification #803 (KJhellico)
    • Observed holidays calc optimizations #824 (KJhellico)
    • Special holidays refactoring for 13 countries #796 (arkid15r, KJhellico)
    • Support for Indonesia #787 (KJhellico)
    • Support for Pakistan #847 (KJhellico)
    • Support for Armenia #875 (KJhellico)
    • Korea renamed to South Korea #797 (arkid15r)
    • Azerbaijan: refactoring #859 (KJhellico)
    • Hong Kong: optimizations #786 (KJhellico)
    • Korea fixes #791 (KJhellico) + test optimizations (dr-p)
    • Zambia: optimizations and refactoring #798 (KJhellico)
    • Vietnam: optimizations and refactoring #799 (KJhellico)
    • Malaysia: optimizations, refactoring and fixes #802, #858 (KJhellico)
    • New Zealand: optimizations and refactoring #836 (KJhellico)
    • Chile: optimizations #834 (KJhellico) + fixes #828 (Nalguedo)
    • Uruguay updates #809 (KJhellico)
    • Kazakhstan updates #829, #867 (KJhellico)
    • Canada fixes #811 (jasonjensen)
    • Nigeria updates #823 (KJhellico)
    • NY Stock Exchange updates #817, #853 (SnowX65, KJHellico)
    • New Zealand optimizazions #872 (KJhellico)
    • Madagascar updates #818 (KJhellico)
    • Paraguay updates #819 (KJhellico)
    • United Kingdom updates #840 (KJhellico)
    • South Africa: optimizations and updates #820, #848 (KJhellico)
    • US updates #857 (KJhellico)
    • Switzerland: optimizations, fix #821 (KJhellico)
    • Angola: optimizations, fix #822, #835 (KJhellico)
    • India updates #825 (KJhellico)
    • NY Stock Exchange updates #833 (SnowX65, KJhellico)
    • Hungary fixes #826 (KJhellico)
    Source code(tar.gz)
    Source code(zip)
  • v.0.17.2(Nov 23, 2022)

  • v.0.17.1(Nov 23, 2022)

  • v.0.17(Nov 13, 2022)

    Version 0.17

    Released November 13, 2022

    • 100% test coverage, code refactoring #747, #749 (arkid15r)
    • Special holidays (one-off) support #724 (arkid15r, dr-p)
    • Support for Bosnia and Herzegovina #683, #725 (kasya, arkid15r)
    • Support for Liechtenstein #650, #728, #758 (kasya, arkid15r)
    • Added isort to pre-commit #722, #734 (arkid15r, dr-p)
    • Get item multiple return type fix (dr-p) TODO: possible refactor required
    • Sort overlapping holiday names #713 (kasya, arkid15r)
    • Supported country / financial lists fix #764 (arkid15r)
    • Various refactorings #777 (arkid15r)
    • Various refactorings #756, #759, #760, #766, #767, #770, #775, #776, #780 (KJhellico)
    • Portugal improvements #753 (Nalguedo)
    • Brazil improvements #761, #592 (Nalguedo)
    • Uruguay improvements #758 (kasya)
    • Hong Kong improvements #779, #782 (poshingchu)
    • Swaziland deprecation, replaced by Eswatini #721 (bkthomps)
    • Norway, Sweden rework #771 (arkid15r)
    • South Africa rework #773 (KJhellico)
    • Singapore fixes #717, #726, #754, #782 (amas01, mborsetti, kasya, poshingchu)
    • Canada fixes #715, #733 (bkthomps, MichaelThessel)
    • Honduras fixes #720, #744 (bkthomps, arkid15r)
    • Japan upgrades (added substitute holidays) #723 (shohirose)
    • Malaysia fix #736, #782 (shahonseven, poshingchu)
    • Ukraine fixes #743, #746 (KJhellico)
    • Bulgaria fixes #748 (KJhellico)
    • Isle of Man fix #762, #764 (arkid15r)
    • Lithuania fix #781 (Nalguedo)
    • Sweden fix #783 (sander-visser, KJhellico)
    Source code(tar.gz)
    Source code(zip)
  • v.0.16(Sep 16, 2022)

    Version 0.16

    Released September 16, 2022

    This release is dedicated to Queen Elizabeth II (21 April 1926 – 8 September 2022), who lived her long life as a monarch through 2 centuries, in both happy and difficult moments, with grace, dignity and an always inspiring strong sense of duty and warm heart. Goodbye "Lilibet", you have symbolically been a queen, a mother and a grandmother to a lot of us, and will be dearly missed.

    • Financial market support review, new method financial_holidays(..) #694 (dr-p)
    • Support for Moldova #695 (Thedand)
    • Support for Bolivia #679, #698 (kasya)
    • UK updates #702 (JPunter, violuke)
    • Australia updates #699 (Ryan-McCrory, dr-p)
    • Canada updates #710 (bkthomps)
    • New Zealand updates #708, #709 (dr-p, markhoneth)
    • NYSE updates #693, #696 (kasya)
    Source code(tar.gz)
    Source code(zip)
  • v.0.15(Aug 21, 2022)

    Version 0.15

    Released August 21, 2022

    • Added support for Python3.11 (dr-p)
    • Updated README - improved badges area (dr-p)
    • Support for Cuba #678 (bthompson, dr-p)
    • Typechecking implementation, first release (HolidayBase, utils, some sample countries) #661 (dimbleby)
    • Test coverage improvement #633 (akosfurton, dr-p)
    • Drop support for UK subdivisions as countries (England, Scotland..) (dr-p)
    • Drop support for IsleOfMan as UK subdivision (dr-p)
    • Drop support for PortugalExt (ie: extended Portugal) (dr-p)
    • US fixes #675 (arkid15r)
    • Colombia fixes & test improvements #676 (bkthomps)
    • Venezuela fixes & test improvements #677 (bkthomps)
    • Canada fixes #579 (dr-p, scubaandre)
    • Ukraine refactoring #681 (kasya)
    • Italy update #689 (g-gg, dr-p)
    • Bump pre-commit and setup-python actions #672, #682, #686, #688 (dr-p)
    • Doc example fix #685 (steakhutzeee, dr-p)
    Source code(tar.gz)
    Source code(zip)
  • v.0.14.2(Jun 5, 2022)

    Version 0.14.2

    Released June 5, 2022

    • Drop support for EOL Python 3.6 #328 (hugovk, dr-p)
    • Package review #662 (dimbleby)
    • Added financial markets support: ECB and NYSE, list_supported_financial() method (dr-p)
    • Support for NY Stock Exchange #651, #458 (nadime, dr-p)
    • Support for Malta #612, #630 (rafelbev)
    • Support for Madagascar #656 (fav007)
    • Support for Cyprus #410, #665 (digidestination, avnigo)
    • Ireland as standalone country #636, #639 (TeoTN, dr-p, javicalle)
    • Australia fixes #631 (jeremychrimes)
    • Singapore updates #652 (mborsetti)
    • Saudi Arabia fixes #642 (OsaydAbdu)
    • Spain fixes #634 (javicalle)
    • US fixes #648 (dashdrum)
    • Greece fixes #659 (tudorvaran)
    • India doc fixes #657 (dr-p)
    • Poland fix #663 (kfsz)
    Source code(tar.gz)
    Source code(zip)
  • v.0.13(Feb 15, 2022)

    Released February 15, 2022

    • New subdivision parameter (subdiv), prov/state deprecation #608, #597, #374 (mborsetti)
    • CountryHoliday class deprecation (replaced by country_holidays) (mborsetti, dr-p)
    • Sphinx documentation #600, #601, #602 (mborsetti)
    • Integration of mypy in pre-commit #620 (mborsetti)
    • Wrong year expansion fix #586, #606, #625 (mborsetti, TeejMonster, dr-p)
    • Refactoring / cleanups / code and naming reviews (mborsetti)
    • Support for Uzbekistan #593 (slako, dr-p)
    • Italy fixes/improvements #617, #614 (energywave)
    • Spain improvements #580, #603, #624 (gtrabanco, delaosa, dr-p)
    • UAE updates (weekend change) #609 (marcomasulli, dr-p)
    • India updates #548 (mborsetti)
    • US fixes #594, #595, #619 (apicht, SudoRob, dr-p)
    • UK fixes #587 (mborsetti)
    • Russia fixes #582 (Enzokot)
    • Type hints fixes #589 (mborsetti)
    Source code(tar.gz)
    Source code(zip)
  • v.0.12(Jan 4, 2022)

    Released January 4, 2022

    • Release increase (v.0.12, was v.0.11.4 during beta)

    • Copyright update 2022

    • Sphinx documentation (mborsetti, dr-p)

    • Support for Kazakhstan #534 (chiuczek, intelliHugh)

    • Support for Azerbaijan #540 (eldar-mustafayev)

    • Support for Tunisia #543 (ihebski)

    • Support for Taiwan #547 (ifurther)

    • Support for North Macedonia #570 (tserekh)

    • Support for Ethiopia #558 (tedtad, dr-p)

    • Travis CI removal #557 (mborsetti, dr-p)

    • CD/CI tests - Pypi versions review (dr-p)

    • More useful repr and str #360 (dr-p, kootenpv, d33tah)

    • Drop support for Czech (ie: misspelled Czechia) (dr-p)

    • Drop support for Polish (ie: misspelled Poland) (dr-p)

    • Drop support for Slovak (ie: misspelled Slovakia) (dr-p)

    • Test coverage improvement (dr-p)

    • "country" property moved to class attributes #573 (dr-p, madphysicist)

    • Date slices support fix #529, #530 (justinwaf, mborsetti, dr-p)

    • Doc fixes #549 (canute24)

    • UK standalone states deprecation #566 (dr-p)

    • Venezuela ISO code + other fixes #567, #576 (Skatox, dr-p, antusystem)

    • Canada updates and test review #533, #536 (cturra)

    • US updates and fixes #537, #559, #578 (khawley, evohnave, amelkiy, dr-p)

    • India fixes #553, #554, #539 (canute24, dr-p)

    • Spain fixes #555 (tserekh)

    • Italy fixes #546 (dr-p, rtraverso86)

    • Korea fixes #535 (0xF4D3C0D3)

    • Colombia fixes #564 (jahirfiquitiva)

    Source code(tar.gz)
    Source code(zip)
  • v.0.11.3.1(Sep 29, 2021)

    Released September 29, 2021

    • Support for Zambia #495, #496 (engineervix)
    • Support for Uruguay #489, #490, #491, #492, #493 (jemazzeo, dr-p)
    • Support for Lesotho #512 (pietervdw115)
    • Support for Namibia #513 (pietervdw115)
    • Support for Swaziland #514 (pietervdw115)
    • Support for Zimbabwe #517 (pietervdw115)
    • Support for China #515 (tserekh)
    • Refactor lunisolar and islamic calendar #524 (mborsetti)
    • Removed six dependency #494 (mborsetti)
    • Type hinting #497, #498 (mborsetti)
    • Malaysia refactoring & updates #524 (mborsetti)
    • New Zealand updates #499 (36wish)
    • USA, Angola fixes (jusce17)
    • Kenya updates #502 (MainaKamau92)
    • Korea updates #508 (0xF4D3C0D3, dr-p)
    • Bulgaria updates #509 (BasakUlker, dr-p)
    • Australia updates #516 (cmckeague)
    • South Africa updates (lispwarez, dr-p)
    • Canada updates #457 (dr-p)
    • PRTE (PortugalExt) fix #520 (dr-p)
    • Norway updates #472 (dr-p)
    • Chile updates #473 (dr-p)
    • Australia updates #525 (jeremychrimes)
    • README iso codes typo / improvements #520 (dr-p)
    • .gitattributes fix #522 (mborsetti)
    Source code(tar.gz)
    Source code(zip)
  • v.0.11.3(Sep 28, 2021)

    Released September 28, 2021

    • Support for Zambia #495, #496 (engineervix)
    • Support for Uruguay #489, #490, #491, #492, #493 (jemazzeo, dr-p)
    • Support for Lesotho #512 (pietervdw115)
    • Support for Namibia #513 (pietervdw115)
    • Support for Swaziland #514 (pietervdw115)
    • Support for Zimbabwe #517 (pietervdw115)
    • Support for China #515 (tserekh)
    • Refactor lunisolar and islamic calendar #524 (mborsetti)
    • Removed six dependency #494 (mborsetti)
    • Type hinting #497, #498 (mborsetti)
    • Malaysia refactoring & updates #524 (mborsetti)
    • New Zealand updates #499 (36wish)
    • USA, Angola fixes (jusce17)
    • Kenya updates #502 (MainaKamau92)
    • Korea updates #508 (0xF4D3C0D3, dr-p)
    • Bulgaria updates #509 (BasakUlker, dr-p)
    • Australia updates #516 (cmckeague)
    • South Africa updates (lispwarez, dr-p)
    • Canada updates #457 (dr-p)
    • PRTE (PortugalExt) fix #520 (dr-p)
    • Norway updates #472 (dr-p)
    • Chile updates #473 (dr-p)
    • Australia updates #525 (jeremychrimes)
    • README iso codes typo / improvements #520 (dr-p)
    • .gitattributes fix #522 (mborsetti)
    Source code(tar.gz)
    Source code(zip)
  • v0.11.2(Jul 18, 2021)

    Version 0.11.2

    Released July 18, 2021

    • Support for Venezuela #470 (antusystem, dr-p)
    • Support for Botswana #477 (pietervdw115)
    • Poland fix #464 (m-ganko)
    • Singapore updates for 2022 #456 (mborsetti)
    • US updates #474, #488 (ChristianAlexander, jusce17)
    • NG updates #486 (pietervdw115)
    • UK updates #487 (orrock, dr-p)
    • .gitignore fix #462 (TheLastProject)
    • Pre-commit v.2.0.3 (dr-p)
    Source code(tar.gz)
    Source code(zip)
  • v0.11.1(Apr 2, 2021)

    Released April 2, 2021

    • Github Actions CI/CD integration (s-weigand, dr-p)
    • Support for Saudi Arabia #429 (OsaydAbdu)
    • Support for Curacao #431 (RaychelM, dr-p)
    • Support for Jamaica #433 (edyarm, dr-p)
    • Support for Georgia #435 (Okroshiashvili, dr-p)
    • init.py flake8 issue fix #423 (dr-p)
    • Korea 2020 fix #414, #415 (dr-p, janggiKim, spar7453)
    • Singapore fix for multi-year #419 (mborsetti)
    • Israel fix #442 (giladmaya)
    • Japan fix #445 (osoken)
    • Serbia fix #446 (kosugor)
    • United Kingdom get_list fix #448 (bletham)
    • Singapore fix for multi-year #419 (mborsetti)
    • Fixed holidays pickling #451 (giladmaya)
    Source code(tar.gz)
    Source code(zip)
  • v.0.10.3(Nov 19, 2020)

    Released July 15, 2020

    • Added get_named(substring) method to retrieve holidays by name (dr-p)
    • Added pop_named(substring) method to pop specific holiday/s by name (samtregar, dr-p)
    • Support for Burundi (bmwachajr)
    • Support for Latvia (rolandinsh)
    • Support for Romania (dorianm)
    • Spain fix (dr-p)
    • Netherlands fix (RooieRakkert)
    • Switzerland fixes (cgrigis)
    • Germany fix (MikeTsenatek)
    • Added korean_cal attribute to Korea and Vietnam (seriousran, pelennor)
    • United States fixes (patrick-nicholson, dr-p)
    • Singapore fixes + 2021 holidays (mborsetti)
    Source code(tar.gz)
    Source code(zip)
  • v.0.10.2(Nov 19, 2020)

    Released April 13, 2020

    • Support for Spain (piliamaurizio, jbroudou, dr-p, gerardo15)
    • Support for Turkey (cemkaragozlu)
    • Support for Korea (1kko, dr-p)
    • Support for Vietnam (1kko, dr-p)
    • Support for Morocco (abensrhir, dr-p)
    • Mexico fix (Rosi2143, dr-p)
    • Croatia fix (sebojanko, dr-p)
    • US Georgia fix (jbroudou, dr-p)
    • Austria province ISO3166-2 adoption (jbroudou, dr-p)
    • Portugal typos & name fixes (reinaldoramosarxi)
    • US MLK renamed (snoopyjc, dr-p)
    • ISO-3 codes export fix (dr-p)
    Source code(tar.gz)
    Source code(zip)
  • v0.10.1(Nov 19, 2020)

    Released January 25, 2020

    • Project structure refactoring (MaxHaertwig, dr-p)
    • Added support for Python3.8 (dr-p)
    • Dropped support for pypy and Python3.4, welcome back pypy3 (dr-p)
    • Fully reviewed Travis CI integration (dr-p)
    • Added 3-digit country ISO codes (MaxHaertwig)
    • Support for Paraguay (dr-p, sfeliu)
    • Support for Israel (giladmaya, dr-p)
    • Support for Egypt (gaberm)
    • Support for Serbia (kosugor)
    • Support for Singapore (mborsetti)
    • README.rst fixes / sync
    • Brazil-Parana support (dr-p, jbroudou)
    • Japan fixes (dr-p, thophan92, saurabh3896)
    • Canada, Spain, US fixes (jbroudou)
    • Belarus fix (mpolyakovsky)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.12(Nov 19, 2020)

    Released December 23, 2019

    • Support for Nigeria (ioluwayo)
    • Support for India - Telangana (kiranbeethoju, dr-p)
    • Support for Dominican Republic (gabmartinez)
    • Support for Nicaragua (CARocha)
    • Code refactoring, bugfixes (vlt)
    • Add method to list all supported countries (fabaff)
    • Germany bugfixes (bitraten)
    • Correctly handle United Kingdom "May Day" holiday in 2020 - #219 (robfraz)
    • Hungary fixes (gypapp)
    • Chile test fixes (rpanai)
    • Italy fixes (jokerigno, sixbladeknife)
    • Other minor fixes
    Source code(tar.gz)
    Source code(zip)
  • v0.9.11(Nov 19, 2020)

    Released July 28, 2019

    • Added Japanese holidays for new Emperor (kokinamura)
    • Fixed Australian Canberra day holiday (explodingdinosaurs, dr-p)
    • Added support for Estonian holidays (RaulVS14)
    • Added support for Iceland and Kenya (justinasfour04)
    • Added support for Aruba (orson1282)
    • Added support for Hong Kong (polifaces)
    • Added support for Peru (manuelvalino)
    • Switzerland fixes (spasche)
    • Croatia fix (pave121, dr-p)
    • Polish deprecation: replaced by Poland (dr-p)
    • Czech(ia) - Slovak(ia) fixes (dr-p)
    • Allow passing years to CountryHoliday (mr.shu)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.10(Nov 19, 2020)

    Released March 12, 2019

    • Added Lithuanian holidays support (GiedriusMauza)
    • Added Luxembourgish holidays (theFeverDog)
    • Added Russian holidays (mshinkareva)
    • Added Bulgarian holidays (pavelsof)
    • Holidays in date range (elln2)
    • German holidays updates (MrtnBckr, alexanderschulze)
    • South African holidays updates (nickyspag)
    • Australian holidays updates (itssimon)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.9(Nov 19, 2020)

    Released January 3, 2019

    • Magic numbers removal (elln2, dr-p)
    • Honduras support (Oscar Romero)
    • Brazil's holidays fixes (victorpluna)
    • Added provinces and holidays in Italy (krolmic, dr-p)
    • Fixed regression with German Easter and Pentecost holidays (vlt, Achimh3011)
    • Fixed Canada Holiday Calendar (justinasfour04)
    • Fixed Columbus Day in Arkansas - US (johanneshk)
    • Added Grand Final Day in Victoria - AU (isha1111)
    • Added Palm Sunday to Danish holidays (jmkjaer)
    • South Africa's holidays fixes (Gordonei)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.8(Nov 19, 2020)

  • v0.9.7(Nov 19, 2020)

    Released September 12, 2018

    • Added prov/state parameters to CountryHoliday() (luto)
    • Added Python 3.7 compatibility (required dateutil >= 2.7.0)
    • Fixed German Reformationstag (adaitche, Rosi2143), various other holiday updates
    • Added Belarus (Gennady-Andreyev)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.6(Nov 19, 2020)

    Released August 1, 2018

    • Added India (Shaurya Uppal)
    • Fixed Canadian holidays (Canada / Dominion Day)
    • Fixed German holidays (Buß- und Bettag, Ostern, Pfingsten)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.5(Nov 19, 2020)

  • v0.9.4(Nov 19, 2020)

    Released March 12, 2018

    • Added CountryHoliday(country_name) method
    • Added Switzerland with all cantons (Phil)
    • Canada holiday updates (goodfore)
    • Various inspection fixes
    • Czech deprecation: replaced by Czechia (janpipek)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.2(Nov 19, 2020)

    Released January 19, 2018

    • Drop support for EOL Python 2.5, 2.6, 3.2 and 3.3 (hugovk)
    • Add Finnish holidays (Ardetus)
    • Add Slovak holidays (Filip Bednárik)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Nov 19, 2020)

  • v0.8.1(Feb 12, 2017)

  • v0.8(Feb 3, 2017)

  • v0.7(Jan 12, 2017)

Owner
Maurizio Montel
IT professional. I love coding for fun since I was a kid, and still do it every day.
Maurizio Montel
darts is a Python library for easy manipulation and forecasting of time series.

A python library for easy manipulation and forecasting of time series.

Unit8 5.2k Jan 01, 2023
pytz Python historical timezone library and database

pytz Brings the IANA tz database into Python. This library allows accurate and cross platform timezone calculations. pytz contains generated code, and

Stub 236 Jan 03, 2023
A Python 3 library for parsing human-written times and dates

Chronyk A small Python 3 library containing some handy tools for handling time, especially when it comes to interfacing with those pesky humans. Featu

Felix Wiegand 339 Dec 19, 2022
Better dates & times for Python

Arrow: Better dates & times for Python Arrow is a Python library that offers a sensible and human-friendly approach to creating, manipulating, formatt

Arrow 8.2k Jan 05, 2023
Generate and work with holidays in Python

python-holidays A fast, efficient Python library for generating country, province and state specific sets of holidays on the fly. It aims to make dete

Maurizio Montel 881 Dec 29, 2022
ISO 8601 date/time parser

ISO 8601 date/time parser This module implements ISO 8601 date, time and duration parsing. The implementation follows ISO8601:2004 standard, and imple

118 Dec 20, 2022
Croniter provides iteration for the datetime object with a cron like format

Introduction Contents Introduction Travis badge Usage About DST About second repeats Testing if a date matches a crontab Gaps between date matches Ite

kiorky 152 Dec 30, 2022
Python datetimes made easy

Pendulum Python datetimes made easy. Supports Python 2.7 and 3.4+. import pendulum now_in_paris = pendulum.now('Europe/Paris') now_in_par

Sébastien Eustace 5.3k Jan 06, 2023
A simple in-process python scheduler library, designed to be integrated seamlessly with the `datetime` standard library.

scheduler A simple in-process python scheduler library, designed to be integrated seamlessly with the datetime standard library. Due to the support of

30 Dec 30, 2022
A simple digital clock made with the help of python

Digital-Clock ⏰ Description 📚 ✔️ A simple digital clock made with the help of python. The code is easy to understand and implement. With this reposit

Mohit 0 Dec 10, 2021
python parser for human readable dates

Python parser for human readable dates Key Features • How To Use • Installation • Common use cases • You may also like... • License Key Features Suppo

Scrapinghub 2.2k Jan 08, 2023
Parse human-readable date/time strings

parsedatetime Parse human-readable date/time strings. Python 2.6 or greater is required for parsedatetime version 1.0 or greater. While we still test

Mike Taylor 651 Dec 23, 2022
A datetime parser in Python by Ari24-cb24 and NekoFantic

datetimeparser A datetime parser in Python by Ari24-cb24 and NekoFantic V 1.0 Erinnerung für den Parser Auf falsche Eingaben überprüfen Liste an Event

AriDevelopment 13 Dec 30, 2022
A Python module that tries to figure out what your local timezone is

tzlocal This Python module returns a tzinfo object with the local timezone information under Unix and Windows. It requires either Python 3.9+ or the b

Lennart Regebro 159 Dec 16, 2022
PyTime is an easy-use Python module which aims to operate date/time/datetime by string.

PyTime PyTime is an easy-use Python module which aims to operate date/time/datetime by string. PyTime allows you using nonregular datetime string to g

Sinux 148 Dec 09, 2022
🏹 Better dates & times for Python

Arrow: Better dates & times for Python Arrow is a Python library that offers a sensible and human-friendly approach to creating, manipulating, formatt

Arrow 8.2k Jan 09, 2023
Jalali (Shamsi) date and datetime (based on python datetime's module)

PersianTools Jalali (Shamsi) date and datetime (based on python datetime's module) Convert Jalali to Gregorian date/datetime and vice versa Support co

Majid Hajiloo 66 Dec 18, 2022
Cross Platform Application for Calculating Render Time

mdsanima-rt-go Cross Platform Application for Calculating Render Time. Testing This is a base application build on Windows Android and Linux. All buil

MDSANIMA DEV 2 Mar 29, 2022
UNIX time from NTP or short UtfN is a simple CLI tool to set the time from an NTP-Server.

UNIX ⌚ from NTP UNIX time from NTP or short UtfN is a simple CLI tool to set the time from an NTP-Server. Sets time and date using the date command pr

Alexander 1 Jan 02, 2022
E-Ink Magic Calendar that automatically syncs to Google Calendar and runs off a battery powered Raspberry Pi Zero

E-Ink Magic Calendar that automatically syncs to Google Calendar and runs off a battery powered Raspberry Pi Zero

2.8k Jan 06, 2023