holidays 0.82__py3-none-any.whl → 0.84__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/calendars/balinese_saka.py +2 -3
- holidays/calendars/buddhist.py +3 -4
- holidays/calendars/burmese.py +9 -10
- holidays/calendars/chinese.py +8 -9
- holidays/calendars/hebrew.py +10 -11
- holidays/calendars/hindu.py +27 -28
- holidays/calendars/islamic.py +26 -6
- holidays/calendars/mandaean.py +2 -3
- holidays/calendars/mongolian.py +4 -5
- holidays/calendars/persian.py +2 -3
- holidays/calendars/sinhala.py +25 -14
- holidays/calendars/thai.py +13 -14
- holidays/calendars/tibetan.py +12 -13
- holidays/countries/__init__.py +1 -0
- holidays/countries/angola.py +1 -2
- holidays/countries/austria.py +1 -1
- holidays/countries/azerbaijan.py +1 -1
- holidays/countries/canada.py +27 -13
- holidays/countries/denmark.py +18 -6
- holidays/countries/fiji.py +2 -3
- holidays/countries/finland.py +3 -6
- holidays/countries/guernsey.py +1 -2
- holidays/countries/guyana.py +24 -32
- holidays/countries/india.py +21 -78
- holidays/countries/iran.py +133 -269
- holidays/countries/ireland.py +1 -1
- holidays/countries/israel.py +1 -1
- holidays/countries/italy.py +2 -2
- holidays/countries/jersey.py +1 -2
- holidays/countries/macau.py +5 -8
- holidays/countries/malta.py +1 -1
- holidays/countries/mauritius.py +10 -9
- holidays/countries/montserrat.py +1 -1
- holidays/countries/myanmar.py +9 -10
- holidays/countries/nepal.py +11 -30
- holidays/countries/netherlands.py +28 -24
- holidays/countries/new_zealand.py +75 -31
- holidays/countries/nigeria.py +53 -75
- holidays/countries/norway.py +1 -1
- holidays/countries/portugal.py +6 -3
- holidays/countries/rwanda.py +2 -2
- holidays/countries/sint_maarten.py +1 -1
- holidays/countries/slovakia.py +23 -4
- holidays/countries/spain.py +418 -214
- holidays/countries/sri_lanka.py +58 -91
- holidays/countries/suriname.py +1 -2
- holidays/countries/sweden.py +1 -1
- holidays/countries/switzerland.py +86 -3
- holidays/countries/taiwan.py +3 -3
- holidays/countries/tanzania.py +19 -29
- holidays/countries/thailand.py +8 -7
- holidays/countries/trinidad_and_tobago.py +1 -1
- holidays/countries/ukraine.py +1 -1
- holidays/countries/united_kingdom.py +2 -3
- holidays/countries/united_states.py +3 -4
- holidays/countries/western_sahara.py +92 -0
- holidays/groups/balinese_saka.py +2 -3
- holidays/groups/buddhist.py +6 -7
- holidays/groups/burmese.py +11 -12
- holidays/groups/chinese.py +23 -21
- holidays/groups/christian.py +30 -0
- holidays/groups/eastern.py +5 -4
- holidays/groups/hebrew.py +7 -10
- holidays/groups/hindu.py +45 -40
- holidays/groups/international.py +1 -1
- holidays/groups/islamic.py +10 -3
- holidays/groups/mandaean.py +13 -14
- holidays/groups/mongolian.py +12 -10
- holidays/groups/persian.py +14 -15
- holidays/groups/sinhala.py +19 -17
- holidays/groups/thai.py +12 -13
- holidays/groups/tibetan.py +21 -19
- holidays/holiday_base.py +54 -54
- holidays/ical.py +1 -2
- holidays/locale/ar/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/es/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/EH.mo +0 -0
- holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/si_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/ta_LK/LC_MESSAGES/LK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/NL.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
- holidays/mixins/child_entity.py +1 -3
- holidays/observed_holiday_base.py +25 -14
- holidays/registry.py +5 -3
- holidays/utils.py +13 -14
- holidays/version.py +1 -1
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/METADATA +20 -19
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/RECORD +113 -104
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/WHEEL +0 -0
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/licenses/CONTRIBUTORS +0 -0
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.82.dist-info → holidays-0.84.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
holidays/mixins/child_entity.py
CHANGED
|
@@ -11,8 +11,6 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
from typing import Optional
|
|
15
|
-
|
|
16
14
|
from holidays.holiday_base import HolidayBase
|
|
17
15
|
|
|
18
16
|
|
|
@@ -22,7 +20,7 @@ class ChildEntity:
|
|
|
22
20
|
parent_entity: type[HolidayBase]
|
|
23
21
|
"""The parent entity class."""
|
|
24
22
|
|
|
25
|
-
parent_entity_subdivision_code:
|
|
23
|
+
parent_entity_subdivision_code: str | None = None
|
|
26
24
|
"""The parent entity's corresponding ISO 3166-2 subdivision code."""
|
|
27
25
|
|
|
28
26
|
subdivisions: tuple[str, ...] = ()
|
|
@@ -11,13 +11,12 @@
|
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
13
|
from datetime import date
|
|
14
|
-
from typing import Optional
|
|
15
14
|
|
|
16
15
|
from holidays.calendars.gregorian import MON, TUE, WED, THU, FRI, SAT, SUN, _timedelta
|
|
17
16
|
from holidays.holiday_base import DateArg, HolidayBase
|
|
18
17
|
|
|
19
18
|
|
|
20
|
-
class ObservedRule(dict[int,
|
|
19
|
+
class ObservedRule(dict[int, int | None]):
|
|
21
20
|
__slots__ = ()
|
|
22
21
|
|
|
23
22
|
def __add__(self, other):
|
|
@@ -106,8 +105,8 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
106
105
|
|
|
107
106
|
def __init__(
|
|
108
107
|
self,
|
|
109
|
-
observed_rule:
|
|
110
|
-
observed_since:
|
|
108
|
+
observed_rule: ObservedRule | None = None,
|
|
109
|
+
observed_since: int | None = None,
|
|
111
110
|
*args,
|
|
112
111
|
**kwargs,
|
|
113
112
|
):
|
|
@@ -127,7 +126,7 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
127
126
|
return dt_work
|
|
128
127
|
return dt
|
|
129
128
|
|
|
130
|
-
def _get_observed_date(self, dt: date, rule: ObservedRule) ->
|
|
129
|
+
def _get_observed_date(self, dt: date, rule: ObservedRule) -> date | None:
|
|
131
130
|
delta = rule.get(dt.weekday(), 0)
|
|
132
131
|
if delta:
|
|
133
132
|
return (
|
|
@@ -143,11 +142,13 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
143
142
|
|
|
144
143
|
def _add_observed(
|
|
145
144
|
self,
|
|
146
|
-
dt:
|
|
147
|
-
name:
|
|
148
|
-
|
|
145
|
+
dt: DateArg | None = None,
|
|
146
|
+
name: str | None = None,
|
|
147
|
+
*,
|
|
148
|
+
rule: ObservedRule | None = None,
|
|
149
|
+
force_observed: bool = False,
|
|
149
150
|
show_observed_label: bool = True,
|
|
150
|
-
) -> tuple[bool,
|
|
151
|
+
) -> tuple[bool, date | None]:
|
|
151
152
|
if dt is None:
|
|
152
153
|
return False, None
|
|
153
154
|
|
|
@@ -155,7 +156,7 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
155
156
|
# Convert to date: (m, d) → use self._year; (y, m, d) → use directly.
|
|
156
157
|
dt = dt if isinstance(dt, date) else date(self._year, *dt) if len(dt) == 2 else date(*dt)
|
|
157
158
|
|
|
158
|
-
if not self.observed
|
|
159
|
+
if not (force_observed or (self.observed and self._is_observed(dt))):
|
|
159
160
|
return False, dt
|
|
160
161
|
|
|
161
162
|
dt_observed = self._get_observed_date(dt, rule or self._observed_rule)
|
|
@@ -196,16 +197,26 @@ class ObservedHolidayBase(HolidayBase):
|
|
|
196
197
|
return True, dt_observed
|
|
197
198
|
|
|
198
199
|
def _move_holiday(
|
|
199
|
-
self,
|
|
200
|
-
|
|
200
|
+
self,
|
|
201
|
+
dt: date,
|
|
202
|
+
*,
|
|
203
|
+
rule: ObservedRule | None = None,
|
|
204
|
+
force_observed: bool = False,
|
|
205
|
+
show_observed_label: bool = True,
|
|
206
|
+
) -> tuple[bool, date | None]:
|
|
201
207
|
is_observed, dt_observed = self._add_observed(
|
|
202
|
-
dt, rule=rule, show_observed_label=show_observed_label
|
|
208
|
+
dt, rule=rule, force_observed=force_observed, show_observed_label=show_observed_label
|
|
203
209
|
)
|
|
204
210
|
if is_observed:
|
|
205
211
|
self.pop(dt)
|
|
206
212
|
return is_observed, dt_observed if is_observed else dt
|
|
207
213
|
|
|
208
|
-
def
|
|
214
|
+
def _move_holiday_forced(
|
|
215
|
+
self, dt: date, rule: ObservedRule | None = None
|
|
216
|
+
) -> tuple[bool, date | None]:
|
|
217
|
+
return self._move_holiday(dt, rule=rule, force_observed=True, show_observed_label=False)
|
|
218
|
+
|
|
219
|
+
def _populate_observed(self, dts: set[date], *, multiple: bool = False) -> None:
|
|
209
220
|
"""
|
|
210
221
|
When multiple is True, each holiday from a given date has its own observed date.
|
|
211
222
|
"""
|
holidays/registry.py
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import importlib
|
|
14
14
|
from collections.abc import Iterable
|
|
15
15
|
from threading import RLock
|
|
16
|
-
from typing import Any
|
|
16
|
+
from typing import Any
|
|
17
17
|
|
|
18
18
|
from holidays.holiday_base import HolidayBase
|
|
19
19
|
|
|
@@ -278,6 +278,7 @@ COUNTRIES: RegistryDict = {
|
|
|
278
278
|
"venezuela": ("Venezuela", "VE", "VEN"),
|
|
279
279
|
"vietnam": ("Vietnam", "VN", "VNM"),
|
|
280
280
|
"wallis_and_futuna": ("WallisAndFutuna", "WF", "WLF", "HolidaysWF"),
|
|
281
|
+
"western_sahara": ("WesternSahara", "EH", "ESH"),
|
|
281
282
|
"yemen": ("Yemen", "YE", "YEM"),
|
|
282
283
|
"zambia": ("Zambia", "ZM", "ZMB"),
|
|
283
284
|
"zimbabwe": ("Zimbabwe", "ZW", "ZWE"),
|
|
@@ -326,7 +327,7 @@ class EntityLoader:
|
|
|
326
327
|
cls = self.get_entity()
|
|
327
328
|
return cls(*args, **kwargs) # type: ignore[misc, operator]
|
|
328
329
|
|
|
329
|
-
def __getattr__(self, name: str) ->
|
|
330
|
+
def __getattr__(self, name: str) -> Any | None:
|
|
330
331
|
"""Return attribute of a lazy-loaded entity."""
|
|
331
332
|
cls = self.get_entity()
|
|
332
333
|
return getattr(cls, name)
|
|
@@ -338,7 +339,7 @@ class EntityLoader:
|
|
|
338
339
|
f"use the '{self.module_name}.{self.entity_name}' class directly."
|
|
339
340
|
)
|
|
340
341
|
|
|
341
|
-
def get_entity(self) ->
|
|
342
|
+
def get_entity(self) -> HolidayBase | None:
|
|
342
343
|
"""Return lazy-loaded entity."""
|
|
343
344
|
if self.entity is None:
|
|
344
345
|
# Avoid deadlock due to importlib.import_module not being thread-safe by caching all
|
|
@@ -351,6 +352,7 @@ class EntityLoader:
|
|
|
351
352
|
@staticmethod
|
|
352
353
|
def _get_entity_codes(
|
|
353
354
|
container: RegistryDict,
|
|
355
|
+
*,
|
|
354
356
|
include_aliases: bool = True,
|
|
355
357
|
max_code_length: int = 3,
|
|
356
358
|
min_code_length: int = 2,
|
holidays/utils.py
CHANGED
|
@@ -23,7 +23,6 @@ __all__ = (
|
|
|
23
23
|
import warnings
|
|
24
24
|
from collections.abc import Iterable
|
|
25
25
|
from functools import cache
|
|
26
|
-
from typing import Optional, Union
|
|
27
26
|
|
|
28
27
|
from holidays.holiday_base import CategoryArg, HolidayBase
|
|
29
28
|
from holidays.registry import EntityLoader
|
|
@@ -31,14 +30,14 @@ from holidays.registry import EntityLoader
|
|
|
31
30
|
|
|
32
31
|
def country_holidays(
|
|
33
32
|
country: str,
|
|
34
|
-
subdiv:
|
|
35
|
-
years:
|
|
33
|
+
subdiv: str | None = None,
|
|
34
|
+
years: int | Iterable[int] | None = None,
|
|
36
35
|
expand: bool = True,
|
|
37
36
|
observed: bool = True,
|
|
38
|
-
prov:
|
|
39
|
-
state:
|
|
40
|
-
language:
|
|
41
|
-
categories:
|
|
37
|
+
prov: str | None = None,
|
|
38
|
+
state: str | None = None,
|
|
39
|
+
language: str | None = None,
|
|
40
|
+
categories: CategoryArg | None = None,
|
|
42
41
|
) -> HolidayBase:
|
|
43
42
|
"""Return a new dictionary-like [HolidayBase][holidays.holiday_base.HolidayBase] object.
|
|
44
43
|
|
|
@@ -230,11 +229,11 @@ def country_holidays(
|
|
|
230
229
|
|
|
231
230
|
def financial_holidays(
|
|
232
231
|
market: str,
|
|
233
|
-
subdiv:
|
|
234
|
-
years:
|
|
232
|
+
subdiv: str | None = None,
|
|
233
|
+
years: int | Iterable[int] | None = None,
|
|
235
234
|
expand: bool = True,
|
|
236
235
|
observed: bool = True,
|
|
237
|
-
language:
|
|
236
|
+
language: str | None = None,
|
|
238
237
|
) -> HolidayBase:
|
|
239
238
|
"""Return a new dictionary-like [HolidayBase][holidays.holiday_base.HolidayBase] object.
|
|
240
239
|
|
|
@@ -315,12 +314,12 @@ def financial_holidays(
|
|
|
315
314
|
|
|
316
315
|
def CountryHoliday( # noqa: N802
|
|
317
316
|
country: str,
|
|
318
|
-
subdiv:
|
|
319
|
-
years:
|
|
317
|
+
subdiv: str | None = None,
|
|
318
|
+
years: int | Iterable[int] | None = None,
|
|
320
319
|
expand: bool = True,
|
|
321
320
|
observed: bool = True,
|
|
322
|
-
prov:
|
|
323
|
-
state:
|
|
321
|
+
prov: str | None = None,
|
|
322
|
+
state: str | None = None,
|
|
324
323
|
) -> HolidayBase:
|
|
325
324
|
"""
|
|
326
325
|
Note:
|
holidays/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: holidays
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.84
|
|
4
4
|
Summary: Open World Holidays Framework
|
|
5
5
|
Author: Vacanza Team
|
|
6
6
|
Maintainer: Arkadii Yakovets, Panpakorn Siripanich, Serhii Murza
|
|
@@ -17,18 +17,18 @@ Classifier: Intended Audience :: Financial and Insurance Industry
|
|
|
17
17
|
Classifier: Intended Audience :: Information Technology
|
|
18
18
|
Classifier: Operating System :: OS Independent
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
25
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
26
26
|
Classifier: Topic :: File Formats :: JSON
|
|
27
27
|
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
28
28
|
Classifier: Topic :: Office/Business :: Financial :: Investment
|
|
29
29
|
Classifier: Topic :: Office/Business :: Scheduling
|
|
30
30
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
31
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.10
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
33
33
|
License-File: CONTRIBUTORS
|
|
34
34
|
License-File: LICENSE
|
|
@@ -52,7 +52,7 @@ specific date is a holiday as fast and flexible as possible.
|
|
|
52
52
|
<tr>
|
|
53
53
|
<td>CI/CD</td>
|
|
54
54
|
<td>
|
|
55
|
-
<a href="https://github.com/vacanza/holidays/actions/workflows/ci-cd.yml?query=branch%3Adev"><img src="https://img.shields.io/github/actions/workflow/status/vacanza/holidays/ci-cd.yml?branch=dev&color=
|
|
55
|
+
<a href="https://github.com/vacanza/holidays/actions/workflows/ci-cd.yml?query=branch%3Adev"><img src="https://img.shields.io/github/actions/workflow/status/vacanza/holidays/ci-cd.yml?branch=dev&color=41B5BE&style=flat" alt="CI/CD status"></a> <a href="https://holidays.readthedocs.io/en/latest/?badge=latest"><img src="https://img.shields.io/readthedocs/holidays?color=41B5BE&style=flat" alt="Documentation status"></a> <a href="https://snyk.io/advisor/python/holidays/"><img alt="Open World Holidays Package Health Score" src="https://img.shields.io/badge/dynamic/regex?url=https%3A%2F%2Fsnyk.io%2Fadvisor%2Fpython%2Fholidays%2Fbadge.svg&search=%5Cd%7B1%2C3%7D%2F%5Cd%7B1%2C3%7D&style=flat&label=snyk&color=41B5BE"></a>
|
|
56
56
|
</td>
|
|
57
57
|
</tr>
|
|
58
58
|
<tr>
|
|
@@ -64,7 +64,7 @@ specific date is a holiday as fast and flexible as possible.
|
|
|
64
64
|
<tr>
|
|
65
65
|
<td>GitHub</td>
|
|
66
66
|
<td>
|
|
67
|
-
<a href="https://github.com/vacanza/holidays/stargazers"><img src="https://img.shields.io/github/stars/vacanza/holidays?color=
|
|
67
|
+
<a href="https://github.com/vacanza/holidays/stargazers"><img src="https://img.shields.io/github/stars/vacanza/holidays?color=41B5BE&style=flat" alt="GitHub stars"></a> <a href="https://github.com/vacanza/holidays/forks"><img src="https://img.shields.io/github/forks/vacanza/holidays?color=41B5BE&style=flat" alt="GitHub forks"></a> <a href="https://github.com/vacanza/holidays/graphs/contributors"><img src="https://img.shields.io/github/contributors/vacanza/holidays?color=41B5BE&style=flat" alt="GitHub contributors"></a> <a href="https://github.com/vacanza/holidays/commits/dev"><img src="https://img.shields.io/github/last-commit/vacanza/holidays/dev?color=41B5BE&style=flat" alt="GitHub last commit"></a>
|
|
68
68
|
</td>
|
|
69
69
|
</tr>
|
|
70
70
|
<tr>
|
|
@@ -73,12 +73,6 @@ specific date is a holiday as fast and flexible as possible.
|
|
|
73
73
|
<a href="https://doi.org/10.5281/zenodo.14884702"><img src="https://img.shields.io/badge/DOI-10.5281/zenodo.14884702-41B5BE?style=flat" alt="Open World Holidays Framework DOI"></a>
|
|
74
74
|
</td>
|
|
75
75
|
</tr>
|
|
76
|
-
<tr>
|
|
77
|
-
<td>Snyk</td>
|
|
78
|
-
<td>
|
|
79
|
-
<a href="https://snyk.io/advisor/python/holidays/"><img src="https://snyk.io/advisor/python/holidays/badge.svg" alt="Open World Holidays Package Health Score"></a>
|
|
80
|
-
</td>
|
|
81
|
-
</tr>
|
|
82
76
|
</table>
|
|
83
77
|
|
|
84
78
|
## Install
|
|
@@ -100,7 +94,7 @@ version upgrades.
|
|
|
100
94
|
|
|
101
95
|
## Documentation
|
|
102
96
|
|
|
103
|
-
The documentation is hosted on [Read the Docs](https://holidays.readthedocs.io
|
|
97
|
+
The documentation is hosted on [Read the Docs](https://holidays.readthedocs.io).
|
|
104
98
|
|
|
105
99
|
## Quick Start
|
|
106
100
|
|
|
@@ -142,9 +136,9 @@ and detailed information.
|
|
|
142
136
|
|
|
143
137
|
## Available Countries
|
|
144
138
|
|
|
145
|
-
We currently support
|
|
146
|
-
3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes),
|
|
147
|
-
for domain names, and for a subdivision its [ISO 3166-2
|
|
139
|
+
We currently support 249 country codes and are fully compatible with [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html).
|
|
140
|
+
The standard way to refer to a country is by using its [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes),
|
|
141
|
+
the same used for domain names, and for a subdivision its [ISO 3166-2
|
|
148
142
|
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
|
|
149
143
|
abbreviations as aliases for their subdivisions. These are defined in the (optional)
|
|
150
144
|
`subdivisions_aliases` attribute. Some of the countries support more than one language for holiday
|
|
@@ -600,7 +594,7 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
600
594
|
<td>Denmark</td>
|
|
601
595
|
<td>DK</td>
|
|
602
596
|
<td></td>
|
|
603
|
-
<td><strong>da</strong>, en_US, uk</td>
|
|
597
|
+
<td><strong>da</strong>, en_US, th, uk</td>
|
|
604
598
|
<td>OPTIONAL</td>
|
|
605
599
|
</tr>
|
|
606
600
|
<tr>
|
|
@@ -1265,7 +1259,7 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1265
1259
|
<td>Netherlands</td>
|
|
1266
1260
|
<td>NL</td>
|
|
1267
1261
|
<td></td>
|
|
1268
|
-
<td>en_US, fy, <strong>nl</strong>, uk</td>
|
|
1262
|
+
<td>en_US, fy, <strong>nl</strong>, th, uk</td>
|
|
1269
1263
|
<td>OPTIONAL</td>
|
|
1270
1264
|
</tr>
|
|
1271
1265
|
<tr>
|
|
@@ -1650,7 +1644,7 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1650
1644
|
<td>Spain</td>
|
|
1651
1645
|
<td>ES</td>
|
|
1652
1646
|
<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>
|
|
1653
|
-
<td>ca, en_US, <strong>es</strong>, uk</td>
|
|
1647
|
+
<td>ca, en_US, <strong>es</strong>, th, uk</td>
|
|
1654
1648
|
<td></td>
|
|
1655
1649
|
</tr>
|
|
1656
1650
|
<tr>
|
|
@@ -1692,7 +1686,7 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1692
1686
|
<td>Switzerland</td>
|
|
1693
1687
|
<td>CH</td>
|
|
1694
1688
|
<td>Cantons: AG (Aargau), AI (Appenzell Innerrhoden), AR (Appenzell Ausserrhoden), BE (Bern, Berne), BL (Basel-Landschaft), BS (Basel-Stadt), FR (Freiburg, Fribourg), GE (Genève), GL (Glarus), GR (Graubünden, Grigioni, Grischun), JU (Jura), LU (Luzern), NE (Neuchâtel), NW (Nidwalden), OW (Obwalden), SG (Sankt Gallen), SH (Schaffhausen), SO (Solothurn), SZ (Schwyz), TG (Thurgau), TI (Ticino), UR (Uri), VD (Vaud), VS (Valais, Wallis), ZG (Zug), ZH (Zürich)</td>
|
|
1695
|
-
<td><strong>de</strong>, en_US, fr, it, uk</td>
|
|
1689
|
+
<td><strong>de</strong>, en_US, fr, it, th, uk</td>
|
|
1696
1690
|
<td>HALF_DAY, OPTIONAL</td>
|
|
1697
1691
|
</tr>
|
|
1698
1692
|
<tr>
|
|
@@ -1906,6 +1900,13 @@ any) in brackets, available languages and additional holiday categories. All cou
|
|
|
1906
1900
|
<td></td>
|
|
1907
1901
|
</tr>
|
|
1908
1902
|
<tr>
|
|
1903
|
+
<td>Western Sahara</td>
|
|
1904
|
+
<td>EH</td>
|
|
1905
|
+
<td></td>
|
|
1906
|
+
<td><strong>ar</strong>, en_US, es, fr</td>
|
|
1907
|
+
<td></td>
|
|
1908
|
+
</tr>
|
|
1909
|
+
<tr>
|
|
1909
1910
|
<td>Yemen</td>
|
|
1910
1911
|
<td>YE</td>
|
|
1911
1912
|
<td></td>
|