holidays 0.81__py3-none-any.whl → 0.83__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.
Files changed (141) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/burmese.py +319 -0
  3. holidays/calendars/hebrew.py +2 -2
  4. holidays/calendars/islamic.py +26 -6
  5. holidays/calendars/thai.py +49 -2
  6. holidays/countries/__init__.py +11 -0
  7. holidays/countries/afghanistan.py +7 -5
  8. holidays/countries/algeria.py +89 -24
  9. holidays/countries/antarctica.py +58 -0
  10. holidays/countries/azerbaijan.py +1 -1
  11. holidays/countries/bouvet_island.py +31 -0
  12. holidays/countries/brazil.py +1 -1
  13. holidays/countries/british_indian_ocean_territory.py +31 -0
  14. holidays/countries/bulgaria.py +6 -1
  15. holidays/countries/canada.py +27 -13
  16. holidays/countries/chile.py +9 -8
  17. holidays/countries/cuba.py +3 -4
  18. holidays/countries/denmark.py +18 -6
  19. holidays/countries/djibouti.py +1 -1
  20. holidays/countries/fiji.py +2 -3
  21. holidays/countries/finland.py +3 -6
  22. holidays/countries/guyana.py +24 -32
  23. holidays/countries/heard_island_and_mcdonald_islands.py +31 -0
  24. holidays/countries/hungary.py +4 -5
  25. holidays/countries/india.py +27 -78
  26. holidays/countries/iran.py +133 -269
  27. holidays/countries/ireland.py +1 -1
  28. holidays/countries/israel.py +1 -1
  29. holidays/countries/japan.py +22 -18
  30. holidays/countries/jordan.py +6 -3
  31. holidays/countries/kuwait.py +6 -3
  32. holidays/countries/macau.py +5 -8
  33. holidays/countries/malaysia.py +14 -3
  34. holidays/countries/mauritius.py +10 -9
  35. holidays/countries/montserrat.py +1 -1
  36. holidays/countries/myanmar.py +194 -0
  37. holidays/countries/nepal.py +11 -30
  38. holidays/countries/netherlands.py +28 -24
  39. holidays/countries/new_zealand.py +75 -31
  40. holidays/countries/nigeria.py +53 -75
  41. holidays/countries/north_korea.py +161 -0
  42. holidays/countries/norway.py +24 -9
  43. holidays/countries/oman.py +6 -2
  44. holidays/countries/paraguay.py +70 -23
  45. holidays/countries/portugal.py +5 -6
  46. holidays/countries/qatar.py +5 -2
  47. holidays/countries/rwanda.py +8 -3
  48. holidays/countries/saudi_arabia.py +6 -5
  49. holidays/countries/serbia.py +5 -0
  50. holidays/countries/slovakia.py +23 -4
  51. holidays/countries/south_africa.py +96 -53
  52. holidays/countries/south_korea.py +6 -1
  53. holidays/countries/spain.py +4 -4
  54. holidays/countries/sri_lanka.py +21 -58
  55. holidays/countries/sudan.py +6 -3
  56. holidays/countries/suriname.py +1 -2
  57. holidays/countries/sweden.py +1 -1
  58. holidays/countries/switzerland.py +255 -6
  59. holidays/countries/taiwan.py +23 -3
  60. holidays/countries/tanzania.py +25 -30
  61. holidays/countries/thailand.py +29 -7
  62. holidays/countries/tonga.py +6 -1
  63. holidays/countries/trinidad_and_tobago.py +7 -2
  64. holidays/countries/ukraine.py +1 -1
  65. holidays/countries/united_arab_emirates.py +9 -2
  66. holidays/countries/united_kingdom.py +1 -1
  67. holidays/countries/united_states.py +18 -2
  68. holidays/countries/uruguay.py +6 -1
  69. holidays/countries/vietnam.py +6 -1
  70. holidays/countries/western_sahara.py +92 -0
  71. holidays/countries/yemen.py +6 -3
  72. holidays/groups/__init__.py +1 -0
  73. holidays/groups/balinese_saka.py +1 -1
  74. holidays/groups/buddhist.py +3 -3
  75. holidays/groups/burmese.py +273 -0
  76. holidays/groups/chinese.py +30 -2
  77. holidays/groups/christian.py +10 -0
  78. holidays/groups/custom.py +8 -2
  79. holidays/groups/eastern.py +26 -0
  80. holidays/groups/hebrew.py +16 -14
  81. holidays/groups/hindu.py +23 -15
  82. holidays/groups/international.py +1 -1
  83. holidays/groups/islamic.py +52 -50
  84. holidays/groups/mongolian.py +6 -3
  85. holidays/groups/sinhala.py +9 -11
  86. holidays/groups/tibetan.py +8 -6
  87. holidays/holiday_base.py +26 -26
  88. holidays/ical.py +6 -4
  89. holidays/locale/ar/LC_MESSAGES/DZ.mo +0 -0
  90. holidays/locale/ar/LC_MESSAGES/EH.mo +0 -0
  91. holidays/locale/ca/LC_MESSAGES/ES.mo +0 -0
  92. holidays/locale/de/LC_MESSAGES/CH.mo +0 -0
  93. holidays/locale/en_IN/LC_MESSAGES/IN.mo +0 -0
  94. holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
  95. holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
  96. holidays/locale/en_US/LC_MESSAGES/DZ.mo +0 -0
  97. holidays/locale/en_US/LC_MESSAGES/EH.mo +0 -0
  98. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  99. holidays/locale/en_US/LC_MESSAGES/IN.mo +0 -0
  100. holidays/locale/en_US/LC_MESSAGES/JP.mo +0 -0
  101. holidays/locale/en_US/LC_MESSAGES/KP.mo +0 -0
  102. holidays/locale/en_US/LC_MESSAGES/MM.mo +0 -0
  103. holidays/locale/en_US/LC_MESSAGES/NL.mo +0 -0
  104. holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
  105. holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
  106. holidays/locale/es/LC_MESSAGES/EH.mo +0 -0
  107. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  108. holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
  109. holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
  110. holidays/locale/fr/LC_MESSAGES/DZ.mo +0 -0
  111. holidays/locale/fr/LC_MESSAGES/EH.mo +0 -0
  112. holidays/locale/fy/LC_MESSAGES/NL.mo +0 -0
  113. holidays/locale/hi/LC_MESSAGES/IN.mo +0 -0
  114. holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
  115. holidays/locale/ja/LC_MESSAGES/JP.mo +0 -0
  116. holidays/locale/ko_KP/LC_MESSAGES/KP.mo +0 -0
  117. holidays/locale/my/LC_MESSAGES/MM.mo +0 -0
  118. holidays/locale/nl/LC_MESSAGES/NL.mo +0 -0
  119. holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
  120. holidays/locale/th/LC_MESSAGES/CH.mo +0 -0
  121. holidays/locale/th/LC_MESSAGES/DK.mo +0 -0
  122. holidays/locale/th/LC_MESSAGES/JP.mo +0 -0
  123. holidays/locale/th/LC_MESSAGES/MM.mo +0 -0
  124. holidays/locale/th/LC_MESSAGES/NL.mo +0 -0
  125. holidays/locale/th/LC_MESSAGES/US.mo +0 -0
  126. holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
  127. holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
  128. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  129. holidays/locale/uk/LC_MESSAGES/NL.mo +0 -0
  130. holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
  131. holidays/no_holiday_base.py +21 -0
  132. holidays/observed_holiday_base.py +16 -4
  133. holidays/registry.py +8 -0
  134. holidays/utils.py +5 -5
  135. holidays/version.py +1 -1
  136. {holidays-0.81.dist-info → holidays-0.83.dist-info}/METADATA +63 -19
  137. {holidays-0.81.dist-info → holidays-0.83.dist-info}/RECORD +141 -118
  138. {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/CONTRIBUTORS +2 -0
  139. {holidays-0.81.dist-info → holidays-0.83.dist-info}/WHEEL +0 -0
  140. {holidays-0.81.dist-info → holidays-0.83.dist-info}/licenses/LICENSE +0 -0
  141. {holidays-0.81.dist-info → holidays-0.83.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
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,21 @@
1
+ # holidays
2
+ # --------
3
+ # A fast, efficient Python library for generating country, province and state
4
+ # specific sets of holidays on the fly. It aims to make determining whether a
5
+ # specific date is a holiday as fast and flexible as possible.
6
+ #
7
+ # Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
8
+ # dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
9
+ # ryanss <ryanssdev@icloud.com> (c) 2014-2017
10
+ # Website: https://github.com/vacanza/holidays
11
+ # License: MIT (see LICENSE file)
12
+
13
+ from holidays.holiday_base import HolidayBase
14
+
15
+
16
+ class NoHolidayBase(HolidayBase):
17
+ """A dummy holiday class that does not contain any holidays."""
18
+
19
+ def _populate(self, year: int) -> None:
20
+ """No holidays."""
21
+ return None
@@ -145,7 +145,9 @@ class ObservedHolidayBase(HolidayBase):
145
145
  self,
146
146
  dt: Optional[DateArg] = None,
147
147
  name: Optional[str] = None,
148
+ *,
148
149
  rule: Optional[ObservedRule] = None,
150
+ force_observed: bool = False,
149
151
  show_observed_label: bool = True,
150
152
  ) -> tuple[bool, Optional[date]]:
151
153
  if dt is None:
@@ -155,7 +157,7 @@ class ObservedHolidayBase(HolidayBase):
155
157
  # Convert to date: (m, d) → use self._year; (y, m, d) → use directly.
156
158
  dt = dt if isinstance(dt, date) else date(self._year, *dt) if len(dt) == 2 else date(*dt)
157
159
 
158
- if not self.observed or not self._is_observed(dt):
160
+ if not (force_observed or (self.observed and self._is_observed(dt))):
159
161
  return False, dt
160
162
 
161
163
  dt_observed = self._get_observed_date(dt, rule or self._observed_rule)
@@ -196,16 +198,26 @@ class ObservedHolidayBase(HolidayBase):
196
198
  return True, dt_observed
197
199
 
198
200
  def _move_holiday(
199
- self, dt: date, rule: Optional[ObservedRule] = None, show_observed_label: bool = True
201
+ self,
202
+ dt: date,
203
+ *,
204
+ rule: Optional[ObservedRule] = None,
205
+ force_observed: bool = False,
206
+ show_observed_label: bool = True,
200
207
  ) -> tuple[bool, Optional[date]]:
201
208
  is_observed, dt_observed = self._add_observed(
202
- dt, rule=rule, show_observed_label=show_observed_label
209
+ dt, rule=rule, force_observed=force_observed, show_observed_label=show_observed_label
203
210
  )
204
211
  if is_observed:
205
212
  self.pop(dt)
206
213
  return is_observed, dt_observed if is_observed else dt
207
214
 
208
- def _populate_observed(self, dts: set[date], multiple: bool = False) -> None:
215
+ def _move_holiday_forced(
216
+ self, dt: date, rule: Optional[ObservedRule] = None
217
+ ) -> tuple[bool, Optional[date]]:
218
+ return self._move_holiday(dt, rule=rule, force_observed=True, show_observed_label=False)
219
+
220
+ def _populate_observed(self, dts: set[date], *, multiple: bool = False) -> None:
209
221
  """
210
222
  When multiple is True, each holiday from a given date has its own observed date.
211
223
  """
holidays/registry.py CHANGED
@@ -28,6 +28,7 @@ COUNTRIES: RegistryDict = {
28
28
  "andorra": ("Andorra", "AD", "AND"),
29
29
  "angola": ("Angola", "AO", "AGO"),
30
30
  "anguilla": ("Anguilla", "AI", "AIA"),
31
+ "antarctica": ("Antarctica", "AQ", "ATA"),
31
32
  "antigua_and_barbuda": ("AntiguaAndBarbuda", "AG", "ATG"),
32
33
  "argentina": ("Argentina", "AR", "ARG"),
33
34
  "armenia": ("Armenia", "AM", "ARM"),
@@ -49,7 +50,9 @@ COUNTRIES: RegistryDict = {
49
50
  "bonaire_sint_eustatius_and_saba": ("BonaireSintEustatiusAndSaba", "BQ", "BES"),
50
51
  "bosnia_and_herzegovina": ("BosniaAndHerzegovina", "BA", "BIH"),
51
52
  "botswana": ("Botswana", "BW", "BWA"),
53
+ "bouvet_island": ("BouvetIsland", "BV", "BVT"),
52
54
  "brazil": ("Brazil", "BR", "BRA"),
55
+ "british_indian_ocean_territory": ("BritishIndianOceanTerritory", "IO", "IOT"),
53
56
  "british_virgin_islands": ("BritishVirginIslands", "VG", "VGB"),
54
57
  "brunei": ("Brunei", "BN", "BRN"),
55
58
  "bulgaria": ("Bulgaria", "BG", "BLG"),
@@ -115,6 +118,7 @@ COUNTRIES: RegistryDict = {
115
118
  "guinea_bissau": ("GuineaBissau", "GW", "GNB"),
116
119
  "guyana": ("Guyana", "GY", "GUY"),
117
120
  "haiti": ("Haiti", "HT", "HTI"),
121
+ "heard_island_and_mcdonald_islands": ("HeardIslandAndMcDonaldIslands", "HM", "HMD"),
118
122
  "honduras": ("Honduras", "HN", "HND"),
119
123
  "hongkong": ("HongKong", "HK", "HKG"),
120
124
  "hungary": ("Hungary", "HU", "HUN"),
@@ -166,6 +170,7 @@ COUNTRIES: RegistryDict = {
166
170
  "montserrat": ("Montserrat", "MS", "MSR"),
167
171
  "morocco": ("Morocco", "MA", "MOR"),
168
172
  "mozambique": ("Mozambique", "MZ", "MOZ"),
173
+ "myanmar": ("Myanmar", "MM", "MMR"),
169
174
  "namibia": ("Namibia", "NA", "NAM"),
170
175
  "nauru": ("Nauru", "NR", "NRU"),
171
176
  "nepal": ("Nepal", "NP", "NPL"),
@@ -177,6 +182,7 @@ COUNTRIES: RegistryDict = {
177
182
  "nigeria": ("Nigeria", "NG", "NGA"),
178
183
  "niue": ("Niue", "NU", "NIU"),
179
184
  "norfolk_island": ("NorfolkIsland", "NF", "NFK"),
185
+ "north_korea": ("NorthKorea", "KP", "PRK"),
180
186
  "north_macedonia": ("NorthMacedonia", "MK", "MKD"),
181
187
  "northern_mariana_islands": ("NorthernMarianaIslands", "MP", "MNP", "HolidaysMP"),
182
188
  "norway": ("Norway", "NO", "NOR"),
@@ -272,6 +278,7 @@ COUNTRIES: RegistryDict = {
272
278
  "venezuela": ("Venezuela", "VE", "VEN"),
273
279
  "vietnam": ("Vietnam", "VN", "VNM"),
274
280
  "wallis_and_futuna": ("WallisAndFutuna", "WF", "WLF", "HolidaysWF"),
281
+ "western_sahara": ("WesternSahara", "EH", "ESH"),
275
282
  "yemen": ("Yemen", "YE", "YEM"),
276
283
  "zambia": ("Zambia", "ZM", "ZMB"),
277
284
  "zimbabwe": ("Zimbabwe", "ZW", "ZWE"),
@@ -345,6 +352,7 @@ class EntityLoader:
345
352
  @staticmethod
346
353
  def _get_entity_codes(
347
354
  container: RegistryDict,
355
+ *,
348
356
  include_aliases: bool = True,
349
357
  max_code_length: int = 3,
350
358
  min_code_length: int = 2,
holidays/utils.py CHANGED
@@ -22,7 +22,7 @@ __all__ = (
22
22
 
23
23
  import warnings
24
24
  from collections.abc import Iterable
25
- from functools import lru_cache
25
+ from functools import cache
26
26
  from typing import Optional, Union
27
27
 
28
28
  from holidays.holiday_base import CategoryArg, HolidayBase
@@ -357,7 +357,7 @@ def _list_localized_entities(entity_codes: Iterable[str]) -> dict[str, list[str]
357
357
  return localized_countries
358
358
 
359
359
 
360
- @lru_cache
360
+ @cache
361
361
  def list_localized_countries(include_aliases: bool = True) -> dict[str, list[str]]:
362
362
  """Get all localized countries and languages they support.
363
363
 
@@ -373,7 +373,7 @@ def list_localized_countries(include_aliases: bool = True) -> dict[str, list[str
373
373
  return _list_localized_entities(EntityLoader.get_country_codes(include_aliases))
374
374
 
375
375
 
376
- @lru_cache
376
+ @cache
377
377
  def list_localized_financial(include_aliases: bool = True) -> dict[str, list[str]]:
378
378
  """Get all localized financial markets and languages they support.
379
379
 
@@ -407,7 +407,7 @@ def _list_supported_entities(entity_codes: Iterable[str]) -> dict[str, list[str]
407
407
  }
408
408
 
409
409
 
410
- @lru_cache
410
+ @cache
411
411
  def list_supported_countries(include_aliases: bool = True) -> dict[str, list[str]]:
412
412
  """Get all supported countries and their subdivisions.
413
413
 
@@ -422,7 +422,7 @@ def list_supported_countries(include_aliases: bool = True) -> dict[str, list[str
422
422
  return _list_supported_entities(EntityLoader.get_country_codes(include_aliases))
423
423
 
424
424
 
425
- @lru_cache
425
+ @cache
426
426
  def list_supported_financial(include_aliases: bool = True) -> dict[str, list[str]]:
427
427
  """Get all supported financial markets and their subdivisions.
428
428
 
holidays/version.py CHANGED
@@ -10,4 +10,4 @@
10
10
  # Website: https://github.com/vacanza/holidays
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
- __version__ = "0.81"
13
+ __version__ = "0.83"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holidays
3
- Version: 0.81
3
+ Version: 0.83
4
4
  Summary: Open World Holidays Framework
5
5
  Author: Vacanza Team
6
6
  Maintainer: Arkadii Yakovets, Panpakorn Siripanich, Serhii Murza
@@ -22,6 +22,7 @@ Classifier: Programming Language :: Python :: 3.10
22
22
  Classifier: Programming Language :: Python :: 3.11
23
23
  Classifier: Programming Language :: Python :: 3.12
24
24
  Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
25
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
26
27
  Classifier: Topic :: File Formats :: JSON
27
28
  Classifier: Topic :: Office/Business :: Financial :: Accounting
@@ -52,7 +53,7 @@ specific date is a holiday as fast and flexible as possible.
52
53
  <tr>
53
54
  <td>CI/CD</td>
54
55
  <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=41BE4A&style=flat" alt="CI/CD status"></a>&nbsp;<a href="https://holidays.readthedocs.io/en/latest/?badge=latest"><img src="https://img.shields.io/readthedocs/holidays?color=41BE4A&style=flat" alt="Documentation status"></a>
56
+ <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>&nbsp;<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>&nbsp;<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
57
  </td>
57
58
  </tr>
58
59
  <tr>
@@ -64,7 +65,7 @@ specific date is a holiday as fast and flexible as possible.
64
65
  <tr>
65
66
  <td>GitHub</td>
66
67
  <td>
67
- <a href="https://github.com/vacanza/holidays/stargazers"><img src="https://img.shields.io/github/stars/vacanza/holidays?color=41BE4A&style=flat" alt="GitHub stars"></a>&nbsp;<a href="https://github.com/vacanza/holidays/forks"><img src="https://img.shields.io/github/forks/vacanza/holidays?color=41BE4A&style=flat" alt="GitHub forks"></a>&nbsp;<a href="https://github.com/vacanza/holidays/graphs/contributors"><img src="https://img.shields.io/github/contributors/vacanza/holidays?color=41BE4A&style=flat" alt="GitHub contributors"></a>&nbsp;<a href="https://github.com/vacanza/holidays/commits/dev"><img src="https://img.shields.io/github/last-commit/vacanza/holidays/dev?color=41BE4A&style=flat" alt="GitHub last commit"></a>
68
+ <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>&nbsp;<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>&nbsp;<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>&nbsp;<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
69
  </td>
69
70
  </tr>
70
71
  <tr>
@@ -73,12 +74,6 @@ specific date is a holiday as fast and flexible as possible.
73
74
  <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
75
  </td>
75
76
  </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
77
  </table>
83
78
 
84
79
  ## Install
@@ -100,7 +95,7 @@ version upgrades.
100
95
 
101
96
  ## Documentation
102
97
 
103
- The documentation is hosted on [Read the Docs](https://holidays.readthedocs.io/).
98
+ The documentation is hosted on [Read the Docs](https://holidays.readthedocs.io).
104
99
 
105
100
  ## Quick Start
106
101
 
@@ -142,9 +137,9 @@ and detailed information.
142
137
 
143
138
  ## Available Countries
144
139
 
145
- We currently support 242 country codes. The standard way to refer to a country is by using its [ISO
146
- 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
147
- for domain names, and for a subdivision its [ISO 3166-2
140
+ We currently support 249 country codes and are fully compatible with [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html).
141
+ 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),
142
+ the same used for domain names, and for a subdivision its [ISO 3166-2
148
143
  code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
149
144
  abbreviations as aliases for their subdivisions. These are defined in the (optional)
150
145
  `subdivisions_aliases` attribute. Some of the countries support more than one language for holiday
@@ -209,7 +204,7 @@ any) in brackets, available languages and additional holiday categories. All cou
209
204
  <td>DZ</td>
210
205
  <td></td>
211
206
  <td><strong>ar</strong>, en_US, fr</td>
212
- <td></td>
207
+ <td>CHRISTIAN, HEBREW</td>
213
208
  </tr>
214
209
  <tr>
215
210
  <td>American Samoa</td>
@@ -240,6 +235,13 @@ any) in brackets, available languages and additional holiday categories. All cou
240
235
  <td></td>
241
236
  </tr>
242
237
  <tr>
238
+ <td>Antarctica</td>
239
+ <td>AQ</td>
240
+ <td></td>
241
+ <td></td>
242
+ <td></td>
243
+ </tr>
244
+ <tr>
243
245
  <td>Antigua and Barbuda</td>
244
246
  <td>AG</td>
245
247
  <td></td>
@@ -387,6 +389,13 @@ any) in brackets, available languages and additional holiday categories. All cou
387
389
  <td></td>
388
390
  </tr>
389
391
  <tr>
392
+ <td>Bouvet Island</td>
393
+ <td>BV</td>
394
+ <td></td>
395
+ <td></td>
396
+ <td></td>
397
+ </tr>
398
+ <tr>
390
399
  <td>Brazil</td>
391
400
  <td>BR</td>
392
401
  <td>States: AC (Acre), AL (Alagoas), AM (Amazonas), AP (Amapá), BA (Bahia), CE (Ceará), DF (Distrito Federal), ES (Espírito Santo), GO (Goiás), MA (Maranhão), MG (Minas Gerais), MS (Mato Grosso do Sul), MT (Mato Grosso), PA (Pará), PB (Paraíba), PE (Pernambuco), PI (Piauí), PR (Paraná), RJ (Rio de Janeiro), RN (Rio Grande do Norte), RO (Rondônia), RR (Roraima), RS (Rio Grande do Sul), SC (Santa Catarina), SE (Sergipe), SP (São Paulo), TO (Tocantins)</td>
@@ -394,6 +403,13 @@ any) in brackets, available languages and additional holiday categories. All cou
394
403
  <td>OPTIONAL</td>
395
404
  </tr>
396
405
  <tr>
406
+ <td>British Indian Ocean Territory</td>
407
+ <td>IO</td>
408
+ <td></td>
409
+ <td></td>
410
+ <td></td>
411
+ </tr>
412
+ <tr>
397
413
  <td>British Virgin Islands</td>
398
414
  <td>VG</td>
399
415
  <td></td>
@@ -579,7 +595,7 @@ any) in brackets, available languages and additional holiday categories. All cou
579
595
  <td>Denmark</td>
580
596
  <td>DK</td>
581
597
  <td></td>
582
- <td><strong>da</strong>, en_US, uk</td>
598
+ <td><strong>da</strong>, en_US, th, uk</td>
583
599
  <td>OPTIONAL</td>
584
600
  </tr>
585
601
  <tr>
@@ -842,6 +858,13 @@ any) in brackets, available languages and additional holiday categories. All cou
842
858
  <td>OPTIONAL</td>
843
859
  </tr>
844
860
  <tr>
861
+ <td>Heard Island and McDonald Islands</td>
862
+ <td>HM</td>
863
+ <td></td>
864
+ <td></td>
865
+ <td></td>
866
+ </tr>
867
+ <tr>
845
868
  <td>Honduras</td>
846
869
  <td>HN</td>
847
870
  <td></td>
@@ -1206,6 +1229,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1206
1229
  <td></td>
1207
1230
  </tr>
1208
1231
  <tr>
1232
+ <td>Myanmar</td>
1233
+ <td>MM</td>
1234
+ <td></td>
1235
+ <td>en_US, <strong>my</strong>, th</td>
1236
+ <td></td>
1237
+ </tr>
1238
+ <tr>
1209
1239
  <td>Namibia</td>
1210
1240
  <td>NA</td>
1211
1241
  <td></td>
@@ -1230,7 +1260,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1230
1260
  <td>Netherlands</td>
1231
1261
  <td>NL</td>
1232
1262
  <td></td>
1233
- <td>en_US, fy, <strong>nl</strong>, uk</td>
1263
+ <td>en_US, fy, <strong>nl</strong>, th, uk</td>
1234
1264
  <td>OPTIONAL</td>
1235
1265
  </tr>
1236
1266
  <tr>
@@ -1290,6 +1320,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1290
1320
  <td>GOVERNMENT, UNOFFICIAL</td>
1291
1321
  </tr>
1292
1322
  <tr>
1323
+ <td>North Korea</td>
1324
+ <td>KP</td>
1325
+ <td></td>
1326
+ <td>en_US, <strong>ko_KP</strong></td>
1327
+ <td></td>
1328
+ </tr>
1329
+ <tr>
1293
1330
  <td>North Macedonia</td>
1294
1331
  <td>MK</td>
1295
1332
  <td></td>
@@ -1299,7 +1336,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1299
1336
  <tr>
1300
1337
  <td>Norway</td>
1301
1338
  <td>NO</td>
1302
- <td>Counties and Arctic Regions: 03 (Oslo), 11 (Rogaland), 15 (Møre og Romsdal), 18 (Nordland), 21 (Svalbard), 22 (Jan Mayen), 30 (Viken), 34 (Innlandet), 38 (Vestfold og Telemark), 42 (Agder), 46 (Vestland), 50 (Trööndelage, Trøndelag), 54 (Romssa ja Finnmárkku, Troms og Finnmark, Tromssan ja Finmarkun)</td>
1339
+ <td>Counties and Arctic Regions: 03 (Oslo), 11 (Rogaland), 15 (Møre og Romsdal), 18 (Nordland), 21 (Svalbard), 22 (Jan Mayen), 31 (Østfold), 32 (Akershus), 33 (Buskerud), 34 (Innlandet), 39 (Vestfold), 40 (Telemark), 42 (Agder), 46 (Vestland), 50 (Trööndelage, Trøndelag), 55 (Romssa, Troms, Tromssan), 56 (Finmarkun, Finnmark, Finnmárkku)</td>
1303
1340
  <td>en_US, <strong>no</strong>, th, uk</td>
1304
1341
  <td></td>
1305
1342
  </tr>
@@ -1608,7 +1645,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1608
1645
  <td>Spain</td>
1609
1646
  <td>ES</td>
1610
1647
  <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>
1611
- <td>en_US, <strong>es</strong>, uk</td>
1648
+ <td>ca, en_US, <strong>es</strong>, uk</td>
1612
1649
  <td></td>
1613
1650
  </tr>
1614
1651
  <tr>
@@ -1650,7 +1687,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1650
1687
  <td>Switzerland</td>
1651
1688
  <td>CH</td>
1652
1689
  <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>
1653
- <td><strong>de</strong>, en_US, fr, it, uk</td>
1690
+ <td><strong>de</strong>, en_US, fr, it, th, uk</td>
1654
1691
  <td>HALF_DAY, OPTIONAL</td>
1655
1692
  </tr>
1656
1693
  <tr>
@@ -1864,6 +1901,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1864
1901
  <td></td>
1865
1902
  </tr>
1866
1903
  <tr>
1904
+ <td>Western Sahara</td>
1905
+ <td>EH</td>
1906
+ <td></td>
1907
+ <td><strong>ar</strong>, en_US, es, fr</td>
1908
+ <td></td>
1909
+ </tr>
1910
+ <tr>
1867
1911
  <td>Yemen</td>
1868
1912
  <td>YE</td>
1869
1913
  <td></td>