Skip to content

Commit 7d0b946

Browse files
authored
Merge pull request #2882 from vacanza/dev
v0.80
2 parents db84b7f + b9a110b commit 7d0b946

File tree

175 files changed

+15484
-3069
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+15484
-3069
lines changed

.github/workflows/ci-cd.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ jobs:
5858
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
5959

6060
- name: Initialize CodeQL
61-
uses: github/codeql-action/init@df559355d593797519d70b90fc8edd5db049e7a2
61+
uses: github/codeql-action/init@3c3833e0f8c1c83d449a7478aa59c036a9165498
6262
with:
6363
languages: python
6464

6565
- name: Perform CodeQL Analysis
66-
uses: github/codeql-action/analyze@df559355d593797519d70b90fc8edd5db049e7a2
66+
uses: github/codeql-action/analyze@3c3833e0f8c1c83d449a7478aa59c036a9165498
6767
with:
6868
category: '/language:python'
6969

@@ -111,7 +111,7 @@ jobs:
111111
make test
112112
113113
- name: Upload coverage to Codecov
114-
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24
114+
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00
115115
with:
116116
token: ${{ secrets.CODECOV_TOKEN }}
117117

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repos:
2525
- --py39-plus
2626

2727
- repo: https://github.com/astral-sh/ruff-pre-commit
28-
rev: v0.12.9
28+
rev: v0.12.11
2929
hooks:
3030
- id: ruff-check
3131
- id: ruff-format

.zenodo.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"copyright": "(c) Vacanza Team and individual contributors (see CONTRIBUTORS file)",
3+
"creators": [
4+
{
5+
"affiliation": "Open World Holidays Framework",
6+
"name": "Murza, Serhii"
7+
},
8+
{
9+
"affiliation": "Open World Holidays Framework",
10+
"name": "Siripanich, Panpakorn"
11+
},
12+
{
13+
"affiliation": "Open World Holidays Framework",
14+
"name": "Yakovets, Arkadii"
15+
}
16+
],
17+
"custom": {
18+
"code:codeRepository": "https://github.com/vacanza/holidays/",
19+
"code:developmentStatus": [
20+
{
21+
"id": "active",
22+
"title": { "en": "Active" }
23+
}
24+
],
25+
"code:programmingLanguage": [
26+
{
27+
"id": "python",
28+
"title": { "en": "Python" }
29+
}
30+
]
31+
},
32+
"keywords": [
33+
"balinese saka",
34+
"buddhist",
35+
"calendar",
36+
"chinese",
37+
"christian",
38+
"eastern",
39+
"hebrew",
40+
"hindu",
41+
"holidays",
42+
"international",
43+
"islamic",
44+
"ISO 3166-1",
45+
"ISO 3166-2",
46+
"mandean",
47+
"mongolian",
48+
"open source",
49+
"open world holidays framework",
50+
"persian",
51+
"public holidays",
52+
"python",
53+
"sinhala",
54+
"thai",
55+
"tibetan",
56+
"vacanza",
57+
"weekend",
58+
"workday"
59+
],
60+
"language": "eng",
61+
"notes": "Open World Holidays Framework (OWHF)",
62+
"upload_type": "software"
63+
}

CHANGES.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,39 @@
1+
# Version 0.80
2+
3+
Released September 1, 2025
4+
5+
- Refactor Australia holidays (#2828 by @KJhellico)
6+
- Refactor Macau holidays: holiday categories standardization (#2868 by @PPsyrius)
7+
- Add Comoros holidays (#2827 by @Prateekshit73, @arkid15r, @prateekshit-v)
8+
- Add Eritrea holidays (#2783 by @Prateekshit73, @prateekshit-v)
9+
- Add National Stock Exchange of India (NSE) holidays (#2834 by @saheelsapovadia, @arkid15r)
10+
- Add Rwanda holidays (#2792 by @Prateekshit73, @prateekshit-v)
11+
- Add Somalia holidays (#2848 by @Prateekshit73, @arkid15r, @prateekshit-v)
12+
- Add South Sudan holidays (#2831 by @Prateekshit73, @arkid15r, @prateekshit-v)
13+
- Add Tajikistan holidays (#2852 by @Wasif-Shahzad)
14+
- Add Uganda holidays (#2833 by @Prateekshit73, @arkid15r, @prateekshit-v)
15+
- Add `estimated_label` to all countries with Islamic holidays (#2860 by @KJhellico, @arkid15r)
16+
- Fix Hindu Lunisolar calendar (#2871 by @KJhellico)
17+
- Fix Islamic holidays tests (#2849 by @KJhellico)
18+
- Fix `TestAllInSameYear` methods (#2877 by @KJhellico)
19+
- Update Bosnia and Herzegovina holidays (#2869 by @KJhellico)
20+
- Update Burundi holidays, add l10n support (#2843 by @PPsyrius)
21+
- Update Canada holidays: add National Day for Truth and Reconciliation in MB (#2829 by @KJhellico)
22+
- Update Georgia holidays: add August 29, 2025 special holiday (#2863 by @KJhellico)
23+
- Update Guinea-Bissau holidays (#2859 by @KJhellico, @arkid15r)
24+
- Update Nigeria holidays, add l10n support (#2874 by @PPsyrius)
25+
- Update Singapore holidays: remove duplicate holidays label assignment (#2844 by @PPsyrius)
26+
- Update Tanzania holidays: extend holidays support to 1965 (#2821 by @PPsyrius)
27+
- Update `common::CommonTests`: expand label tests to financial entities (#2876 by @arkid15r)
28+
- Add .zenodo.json (#2870 by @arkid15r)
29+
- Add `common::TestCase::assertHolidayNameCount` method (#2873 by @KJhellico)
30+
- Add metadata package version mismatch hint (#2846 by @arkid15r)
31+
- Add missing docstring for `__init__` method (#2850 by @KJhellico)
32+
- Expose entity additional codes (#2879 by @arkid15r)
33+
- Test Case Name Standardization (#2853 by @PPsyrius)
34+
- Unify imports (#2845 by @KJhellico)
35+
- Use aux repository data for downloads badge (#2832 by @arkid15r)
36+
137
# Version 0.79
238

339
Released August 18, 2025

README.md

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ specific date is a holiday as fast and flexible as possible.
99
<tr>
1010
<td>PyPI</td>
1111
<td>
12-
<a href="https://pypi.org/project/holidays"><img src="https://img.shields.io/pepy/dt/holidays?style=flat&color=41B5BE" alt="Pepy Total Downloads"></a>&nbsp;<a href="https://pypi.org/project/holidays"><img src="https://img.shields.io/pypi/v/holidays?color=41B5BE&label=version&style=flat" alt="PyPI version"></a>&nbsp;<a href="https://github.com/vacanza/holidays/releases"><img src="https://img.shields.io/github/release-date/vacanza/holidays?color=41B5BE&style=flat" alt="PyPI release date"></a>
12+
<a href="https://pypi.org/project/holidays"><img src="https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fvacanza%2Faux%2Frefs%2Fheads%2Fmain%2Fbadges%2Fdownloads%2Fpepy.tech.yaml&query=%24.previous_month_downloads_human&suffix=%2Fmonth&style=flat&label=downloads&color=41B5BE&cacheSeconds=86400" alt="PyPI monthly downloads"></a>&nbsp;<a href="https://pypi.org/project/holidays"><img src="https://img.shields.io/pypi/v/holidays?color=41B5BE&label=version&style=flat" alt="PyPI version"></a>&nbsp;<a href="https://github.com/vacanza/holidays/releases"><img src="https://img.shields.io/github/release-date/vacanza/holidays?color=41B5BE&style=flat" alt="Latest release date"></a>
1313
</td>
1414
</tr>
1515
<tr>
@@ -105,7 +105,7 @@ and detailed information.
105105

106106
## Available Countries
107107

108-
We currently support 233 country codes. The standard way to refer to a country is by using its [ISO
108+
We currently support 240 country codes. The standard way to refer to a country is by using its [ISO
109109
3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
110110
for domain names, and for a subdivision its [ISO 3166-2
111111
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -388,7 +388,7 @@ any) in brackets, available languages and additional holiday categories. All cou
388388
<td>Burundi</td>
389389
<td>BI</td>
390390
<td></td>
391-
<td></td>
391+
<td>en_US, <strong>fr_BI</strong></td>
392392
<td></td>
393393
</tr>
394394
<tr>
@@ -476,6 +476,13 @@ any) in brackets, available languages and additional holiday categories. All cou
476476
<td></td>
477477
</tr>
478478
<tr>
479+
<td>Comoros</td>
480+
<td>KM</td>
481+
<td></td>
482+
<td></td>
483+
<td></td>
484+
</tr>
485+
<tr>
479486
<td>Congo</td>
480487
<td>CG</td>
481488
<td></td>
@@ -595,6 +602,13 @@ any) in brackets, available languages and additional holiday categories. All cou
595602
<td></td>
596603
</tr>
597604
<tr>
605+
<td>Eritrea</td>
606+
<td>ER</td>
607+
<td></td>
608+
<td></td>
609+
<td>GOVERNMENT</td>
610+
</tr>
611+
<tr>
598612
<td>Estonia</td>
599613
<td>EE</td>
600614
<td></td>
@@ -690,7 +704,7 @@ any) in brackets, available languages and additional holiday categories. All cou
690704
<td>GE</td>
691705
<td></td>
692706
<td>en_US, <strong>ka</strong>, uk</td>
693-
<td>GOVERNMENT</td>
707+
<td></td>
694708
</tr>
695709
<tr>
696710
<td>Germany</td>
@@ -1012,7 +1026,7 @@ any) in brackets, available languages and additional holiday categories. All cou
10121026
<td>MO</td>
10131027
<td>Historical municipalities: I (Concelho das Ilhas, 海島市, 海岛市), M (Concelho de Macau, 澳門市, 澳门市)</td>
10141028
<td>en_MO, en_US, pt_MO, th, zh_CN, <strong>zh_MO</strong></td>
1015-
<td>GOVERNMENT, MANDATORY</td>
1029+
<td>GOVERNMENT, OPTIONAL</td>
10161030
</tr>
10171031
<tr>
10181032
<td>Madagascar</td>
@@ -1214,7 +1228,7 @@ any) in brackets, available languages and additional holiday categories. All cou
12141228
<td>Nigeria</td>
12151229
<td>NG</td>
12161230
<td></td>
1217-
<td></td>
1231+
<td><strong>en_NG</strong>, en_US</td>
12181232
<td></td>
12191233
</tr>
12201234
<tr>
@@ -1372,6 +1386,13 @@ any) in brackets, available languages and additional holiday categories. All cou
13721386
<td></td>
13731387
</tr>
13741388
<tr>
1389+
<td>Rwanda</td>
1390+
<td>RW</td>
1391+
<td></td>
1392+
<td>en_US, fr, <strong>rw</strong></td>
1393+
<td></td>
1394+
</tr>
1395+
<tr>
13751396
<td>Saint Barthélemy</td>
13761397
<td>BL</td>
13771398
<td>Can also be loaded as country FR, subdivision BL</td>
@@ -1505,6 +1526,13 @@ any) in brackets, available languages and additional holiday categories. All cou
15051526
<td></td>
15061527
</tr>
15071528
<tr>
1529+
<td>Somalia</td>
1530+
<td>SO</td>
1531+
<td></td>
1532+
<td></td>
1533+
<td></td>
1534+
</tr>
1535+
<tr>
15081536
<td>South Africa</td>
15091537
<td>ZA</td>
15101538
<td></td>
@@ -1526,6 +1554,13 @@ any) in brackets, available languages and additional holiday categories. All cou
15261554
<td>BANK</td>
15271555
</tr>
15281556
<tr>
1557+
<td>South Sudan</td>
1558+
<td>SS</td>
1559+
<td></td>
1560+
<td></td>
1561+
<td>ISLAMIC</td>
1562+
</tr>
1563+
<tr>
15291564
<td>Spain</td>
15301565
<td>ES</td>
15311566
<td>Autonomous communities: AN (Andalucía), AR (Aragón), AS (Asturias), CB (Cantabria), CE (Ceuta), CL (Castilla y León), CM (Castilla-La Mancha), CN (Canarias), CT (Cataluña, Catalunya), EX (Extremadura), GA (Galicia), IB (Islas Baleares, Illes Balears), MC (Murcia), MD (Madrid), ML (Melilla), NC (Navarra), PV (País Vasco), RI (La Rioja), VC (Valenciana)</td>
@@ -1582,6 +1617,13 @@ any) in brackets, available languages and additional holiday categories. All cou
15821617
<td>GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY</td>
15831618
</tr>
15841619
<tr>
1620+
<td>Tajikistan</td>
1621+
<td>TJ</td>
1622+
<td></td>
1623+
<td>en_US, ru, <strong>tg</strong></td>
1624+
<td></td>
1625+
</tr>
1626+
<tr>
15851627
<td>Tanzania</td>
15861628
<td>TZ</td>
15871629
<td></td>
@@ -1666,6 +1708,13 @@ any) in brackets, available languages and additional holiday categories. All cou
16661708
<td></td>
16671709
</tr>
16681710
<tr>
1711+
<td>Uganda</td>
1712+
<td>UG</td>
1713+
<td></td>
1714+
<td></td>
1715+
<td></td>
1716+
</tr>
1717+
<tr>
16691718
<td>Ukraine</td>
16701719
<td>UA</td>
16711720
<td></td>
@@ -1828,6 +1877,12 @@ code when available. The following financial markets are available:
18281877
<td></td>
18291878
</tr>
18301879
<tr>
1880+
<td>National Stock Exchange of India</td>
1881+
<td>XNSE</td>
1882+
<td>National Stock Exchange of India market holidays</td>
1883+
<td><strong>en_IN</strong>, en_US, hi</td>
1884+
</tr>
1885+
<tr>
18311886
<td>New York Stock Exchange</td>
18321887
<td>XNYS</td>
18331888
<td>NYSE market holidays (used by all other US-exchanges, including NASDAQ, etc.)</td>

SECURITY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
| Version | Supported |
66
|---------| ------------------ |
7-
| 0.79 | :white_check_mark: |
8-
| < 0.79 | :x: |
7+
| 0.80 | :white_check_mark: |
8+
| < 0.80 | :x: |
99

1010
## Reporting a Vulnerability
1111

holidays/calendars/hindu.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,7 @@ class _HinduLunisolar:
586586
2023: (NOV, 27),
587587
2024: (NOV, 15),
588588
2025: (NOV, 5),
589+
2026: (NOV, 24),
589590
2027: (NOV, 14),
590591
2028: (NOV, 2),
591592
2029: (NOV, 21),

holidays/constants.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
BANK = "bank"
4343
GOVERNMENT = "government"
4444
HALF_DAY = "half_day"
45-
MANDATORY = "mandatory"
4645
OPTIONAL = "optional"
4746
PUBLIC = "public"
4847
SCHOOL = "school"

holidays/countries/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
from holidays.countries.christmas_island import ChristmasIsland, CX, CXR
6060
from holidays.countries.cocos_islands import CocosIslands, CC, CCK
6161
from holidays.countries.colombia import Colombia, CO, COL
62+
from holidays.countries.comoros import Comoros, KM, COM
6263
from holidays.countries.congo import Congo, CG, COG
6364
from holidays.countries.cook_islands import CookIslands, CK, COK
6465
from holidays.countries.costa_rica import CostaRica, CR, CRI
@@ -76,6 +77,7 @@
7677
from holidays.countries.egypt import Egypt, EG, EGY
7778
from holidays.countries.el_salvador import ElSalvador, SV, SLV
7879
from holidays.countries.equatorial_guinea import EquatorialGuinea, GQ, GNQ
80+
from holidays.countries.eritrea import Eritrea, ER, ERI
7981
from holidays.countries.estonia import Estonia, EE, EST
8082
from holidays.countries.eswatini import Eswatini, SZ, SZW, Swaziland
8183
from holidays.countries.ethiopia import Ethiopia, ET, ETH
@@ -192,6 +194,7 @@
192194
from holidays.countries.reunion import Reunion, RE, REU, HolidaysRE
193195
from holidays.countries.romania import Romania, RO, ROU
194196
from holidays.countries.russia import Russia, RU, RUS
197+
from holidays.countries.rwanda import Rwanda, RW, RWA
195198
from holidays.countries.saint_barthelemy import SaintBarthelemy, BL, BLM, HolidaysBL
196199
from holidays.countries.saint_kitts_and_nevis import SaintKittsAndNevis, KN, KNA
197200
from holidays.countries.saint_lucia import SaintLucia, LC, LCA
@@ -220,13 +223,15 @@
220223
from holidays.countries.slovakia import Slovakia, SK, SVK
221224
from holidays.countries.slovenia import Slovenia, SI, SVN
222225
from holidays.countries.solomon_islands import SolomonIslands, SB, SLB
226+
from holidays.countries.somalia import Somalia, SO, SOM
223227
from holidays.countries.south_africa import SouthAfrica, ZA, ZAF
224228
from holidays.countries.south_georgia_and_the_south_sandwich_islands import (
225229
SouthGeorgiaAndTheSouthSandwichIslands,
226230
GS,
227231
SGS,
228232
)
229233
from holidays.countries.south_korea import SouthKorea, KR, KOR, Korea
234+
from holidays.countries.south_sudan import SouthSudan, SS, SSD
230235
from holidays.countries.spain import Spain, ES, ESP
231236
from holidays.countries.sri_lanka import SriLanka, LK, LKA
232237
from holidays.countries.suriname import Suriname, SR, SUR
@@ -235,6 +240,7 @@
235240
from holidays.countries.switzerland import Switzerland, CH, CHE
236241
from holidays.countries.syrian_arab_republic import SyrianArabRepublic, SY, SYR
237242
from holidays.countries.taiwan import Taiwan, TW, TWN
243+
from holidays.countries.tajikistan import Tajikistan, TJ, TJK
238244
from holidays.countries.tanzania import Tanzania, TZ, TZA
239245
from holidays.countries.thailand import Thailand, TH, THA
240246
from holidays.countries.timor_leste import TimorLeste, TL, TLS
@@ -247,6 +253,7 @@
247253
from holidays.countries.turkmenistan import Turkmenistan, TM, TKM
248254
from holidays.countries.turks_and_caicos_islands import TurksAndCaicosIslands, TC, TCA
249255
from holidays.countries.tuvalu import Tuvalu, TV, TUV
256+
from holidays.countries.uganda import Uganda, UG, UGA
250257
from holidays.countries.ukraine import Ukraine, UA, UKR
251258
from holidays.countries.united_arab_emirates import UnitedArabEmirates, AE, ARE
252259
from holidays.countries.united_kingdom import UnitedKingdom, GB, GBR, UK

holidays/countries/argentina.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,10 @@ class Argentina(
147147

148148
country = "AR"
149149
default_language = "es"
150+
# %s (estimated).
151+
estimated_label = tr("%s (estimado)")
152+
# %s (observed, estimated).
153+
observed_estimated_label = tr("%s (observado, estimado)")
150154
# %s (observed).
151155
observed_label = tr("%s (observado)")
152156
# Decree-Law 2446.

0 commit comments

Comments
 (0)