holidays 0.78__py3-none-any.whl → 0.80__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 (161) hide show
  1. holidays/calendars/__init__.py +1 -0
  2. holidays/calendars/chinese.py +14 -4
  3. holidays/calendars/ethiopian.py +31 -0
  4. holidays/calendars/hindu.py +1 -0
  5. holidays/calendars/islamic.py +16 -4
  6. holidays/calendars/julian.py +14 -0
  7. holidays/calendars/mandaean.py +59 -0
  8. holidays/calendars/tibetan.py +1466 -0
  9. holidays/constants.py +2 -1
  10. holidays/countries/__init__.py +20 -0
  11. holidays/countries/afghanistan.py +6 -39
  12. holidays/countries/albania.py +3 -22
  13. holidays/countries/argentina.py +7 -18
  14. holidays/countries/australia.py +191 -295
  15. holidays/countries/azerbaijan.py +6 -39
  16. holidays/countries/bahrain.py +29 -38
  17. holidays/countries/bhutan.py +194 -0
  18. holidays/countries/bosnia_and_herzegovina.py +7 -28
  19. holidays/countries/brunei.py +7 -117
  20. holidays/countries/burkina_faso.py +9 -15
  21. holidays/countries/burundi.py +95 -40
  22. holidays/countries/cameroon.py +8 -34
  23. holidays/countries/canada.py +9 -1
  24. holidays/countries/central_african_republic.py +3 -16
  25. holidays/countries/chad.py +9 -17
  26. holidays/countries/chile.py +20 -4
  27. holidays/countries/christmas_island.py +10 -15
  28. holidays/countries/cocos_islands.py +5 -24
  29. holidays/countries/comoros.py +121 -0
  30. holidays/countries/egypt.py +5 -37
  31. holidays/countries/eritrea.py +104 -0
  32. holidays/countries/ethiopia.py +18 -47
  33. holidays/countries/fiji.py +1 -2
  34. holidays/countries/gabon.py +5 -23
  35. holidays/countries/gambia.py +168 -0
  36. holidays/countries/georgia.py +9 -7
  37. holidays/countries/guinea.py +5 -27
  38. holidays/countries/guinea_bissau.py +96 -0
  39. holidays/countries/guyana.py +2 -17
  40. holidays/countries/india.py +12 -25
  41. holidays/countries/indonesia.py +6 -158
  42. holidays/countries/iran.py +16 -126
  43. holidays/countries/iraq.py +276 -0
  44. holidays/countries/kazakhstan.py +2 -18
  45. holidays/countries/kenya.py +2 -8
  46. holidays/countries/kiribati.py +124 -0
  47. holidays/countries/kyrgyzstan.py +2 -0
  48. holidays/countries/lebanon.py +5 -87
  49. holidays/countries/liberia.py +80 -0
  50. holidays/countries/libya.py +5 -37
  51. holidays/countries/macau.py +65 -63
  52. holidays/countries/malaysia.py +9 -130
  53. holidays/countries/maldives.py +2 -0
  54. holidays/countries/mali.py +4 -9
  55. holidays/countries/mauritania.py +2 -0
  56. holidays/countries/mauritius.py +1 -2
  57. holidays/countries/montenegro.py +3 -18
  58. holidays/countries/nepal.py +42 -44
  59. holidays/countries/niger.py +14 -74
  60. holidays/countries/nigeria.py +198 -27
  61. holidays/countries/north_macedonia.py +3 -39
  62. holidays/countries/oman.py +6 -28
  63. holidays/countries/pakistan.py +5 -30
  64. holidays/countries/palestine.py +2 -5
  65. holidays/countries/philippines.py +3 -33
  66. holidays/countries/qatar.py +3 -45
  67. holidays/countries/rwanda.py +162 -0
  68. holidays/countries/saudi_arabia.py +3 -0
  69. holidays/countries/senegal.py +6 -16
  70. holidays/countries/sierra_leone.py +5 -21
  71. holidays/countries/singapore.py +7 -59
  72. holidays/countries/somalia.py +79 -0
  73. holidays/countries/south_georgia_and_the_south_sandwich_islands.py +160 -0
  74. holidays/countries/south_sudan.py +133 -0
  75. holidays/countries/spain.py +7 -10
  76. holidays/countries/sri_lanka.py +3 -14
  77. holidays/countries/suriname.py +11 -19
  78. holidays/countries/syrian_arab_republic.py +134 -0
  79. holidays/countries/tajikistan.py +116 -0
  80. holidays/countries/tanzania.py +291 -153
  81. holidays/countries/timor_leste.py +2 -17
  82. holidays/countries/togo.py +4 -29
  83. holidays/countries/trinidad_and_tobago.py +2 -9
  84. holidays/countries/turkey.py +2 -116
  85. holidays/countries/turkmenistan.py +164 -0
  86. holidays/countries/uganda.py +101 -0
  87. holidays/countries/united_arab_emirates.py +5 -29
  88. holidays/countries/uzbekistan.py +3 -31
  89. holidays/countries/yemen.py +8 -52
  90. holidays/financial/__init__.py +5 -0
  91. holidays/financial/national_stock_exchange_of_india.py +169 -0
  92. holidays/groups/__init__.py +2 -0
  93. holidays/groups/christian.py +48 -12
  94. holidays/groups/eastern.py +1 -1
  95. holidays/groups/international.py +17 -1
  96. holidays/groups/islamic.py +1 -1
  97. holidays/groups/mandaean.py +107 -0
  98. holidays/groups/tibetan.py +153 -0
  99. holidays/holiday_base.py +14 -0
  100. holidays/locale/ar/LC_MESSAGES/BH.mo +0 -0
  101. holidays/locale/ar/LC_MESSAGES/IQ.mo +0 -0
  102. holidays/locale/ar/LC_MESSAGES/SY.mo +0 -0
  103. holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
  104. holidays/locale/en_GM/LC_MESSAGES/GM.mo +0 -0
  105. holidays/locale/en_GS/LC_MESSAGES/GS.mo +0 -0
  106. holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
  107. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  108. holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
  109. holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
  110. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  111. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  112. holidays/locale/en_US/LC_MESSAGES/BH.mo +0 -0
  113. holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
  114. holidays/locale/en_US/LC_MESSAGES/CL.mo +0 -0
  115. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  116. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  117. holidays/locale/en_US/LC_MESSAGES/GM.mo +0 -0
  118. holidays/locale/en_US/LC_MESSAGES/GS.mo +0 -0
  119. holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
  120. holidays/locale/en_US/LC_MESSAGES/IQ.mo +0 -0
  121. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  122. holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
  123. holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
  124. holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
  125. holidays/locale/en_US/LC_MESSAGES/SY.mo +0 -0
  126. holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
  127. holidays/locale/en_US/LC_MESSAGES/TM.mo +0 -0
  128. holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
  129. holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
  130. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  131. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  132. holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
  133. holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
  134. holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
  135. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  136. holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
  137. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  138. holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
  139. holidays/locale/ru/LC_MESSAGES/TM.mo +0 -0
  140. holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
  141. holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
  142. holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
  143. holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
  144. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  145. holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
  146. holidays/locale/tk/LC_MESSAGES/TM.mo +0 -0
  147. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  148. holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
  149. holidays/locale/uk/LC_MESSAGES/CL.mo +0 -0
  150. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  151. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  152. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  153. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  154. holidays/registry.py +46 -14
  155. holidays/version.py +1 -1
  156. {holidays-0.78.dist-info → holidays-0.80.dist-info}/METADATA +127 -9
  157. {holidays-0.78.dist-info → holidays-0.80.dist-info}/RECORD +161 -113
  158. {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/CONTRIBUTORS +2 -0
  159. {holidays-0.78.dist-info → holidays-0.80.dist-info}/WHEEL +0 -0
  160. {holidays-0.78.dist-info → holidays-0.80.dist-info}/licenses/LICENSE +0 -0
  161. {holidays-0.78.dist-info → holidays-0.80.dist-info}/top_level.txt +0 -0
holidays/holiday_base.py CHANGED
@@ -1135,6 +1135,20 @@ class HolidayBase(dict[date, str]):
1135
1135
  days = (dt2 - dt1).days + 1
1136
1136
  return sum(self.is_working_day(_timedelta(dt1, n)) for n in range(days))
1137
1137
 
1138
+ def is_weekend(self, key: DateLike) -> bool:
1139
+ """Check if the given date's week day is a weekend day.
1140
+
1141
+ Args:
1142
+ key:
1143
+ The date to check.
1144
+
1145
+ Returns:
1146
+ True if the date's week day is a weekend day, False otherwise.
1147
+ """
1148
+ # To prioritize performance we avoid reusing the internal
1149
+ # `HolidayBase._is_weekend` method and perform the check directly instead.
1150
+ return self.__keytransform__(key).weekday() in self.weekend
1151
+
1138
1152
  def is_working_day(self, key: DateLike) -> bool:
1139
1153
  """Check if the given date is considered a working day.
1140
1154
 
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
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
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, Optional, Union
16
+ from typing import Any, Optional
17
17
 
18
18
  from holidays.holiday_base import HolidayBase
19
19
 
@@ -44,6 +44,7 @@ COUNTRIES: RegistryDict = {
44
44
  "belize": ("Belize", "BZ", "BLZ"),
45
45
  "benin": ("Benin", "BJ", "BEN"),
46
46
  "bermuda": ("Bermuda", "BM", "BMU"),
47
+ "bhutan": ("Bhutan", "BT", "BTN"),
47
48
  "bolivia": ("Bolivia", "BO", "BOL"),
48
49
  "bonaire_sint_eustatius_and_saba": ("BonaireSintEustatiusAndSaba", "BQ", "BES"),
49
50
  "bosnia_and_herzegovina": ("BosniaAndHerzegovina", "BA", "BIH"),
@@ -66,6 +67,7 @@ COUNTRIES: RegistryDict = {
66
67
  "christmas_island": ("ChristmasIsland", "CX", "CXR"),
67
68
  "cocos_islands": ("CocosIslands", "CC", "CCK"),
68
69
  "colombia": ("Colombia", "CO", "COL"),
70
+ "comoros": ("Comoros", "KM", "COM"),
69
71
  "congo": ("Congo", "CG", "COG"),
70
72
  "cook_islands": ("CookIslands", "CK", "COK"),
71
73
  "costa_rica": ("CostaRica", "CR", "CRI"),
@@ -84,6 +86,7 @@ COUNTRIES: RegistryDict = {
84
86
  "jordan": ("Jordan", "JO", "JOR"),
85
87
  "el_salvador": ("ElSalvador", "SV", "SLV"),
86
88
  "equatorial_guinea": ("EquatorialGuinea", "GQ", "GNQ"),
89
+ "eritrea": ("Eritrea", "ER", "ERI"),
87
90
  "estonia": ("Estonia", "EE", "EST"),
88
91
  "eswatini": ("Eswatini", "SZ", "SZW", "Swaziland"),
89
92
  "ethiopia": ("Ethiopia", "ET", "ETH"),
@@ -96,6 +99,7 @@ COUNTRIES: RegistryDict = {
96
99
  "french_polynesia": ("FrenchPolynesia", "PF", "PYF", "HolidaysPF"),
97
100
  "french_southern_territories": ("FrenchSouthernTerritories", "TF", "ATF", "HolidaysTF"),
98
101
  "gabon": ("Gabon", "GA", "GAB"),
102
+ "gambia": ("Gambia", "GM", "GMB"),
99
103
  "georgia": ("Georgia", "GE", "GEO"),
100
104
  "germany": ("Germany", "DE", "DEU"),
101
105
  "ghana": ("Ghana", "GH", "GHA"),
@@ -108,6 +112,7 @@ COUNTRIES: RegistryDict = {
108
112
  "guatemala": ("Guatemala", "GT", "GUA"),
109
113
  "guernsey": ("Guernsey", "GG", "GGY"),
110
114
  "guinea": ("Guinea", "GN", "GIN"),
115
+ "guinea_bissau": ("GuineaBissau", "GW", "GNB"),
111
116
  "guyana": ("Guyana", "GY", "GUY"),
112
117
  "haiti": ("Haiti", "HT", "HTI"),
113
118
  "honduras": ("Honduras", "HN", "HND"),
@@ -117,6 +122,7 @@ COUNTRIES: RegistryDict = {
117
122
  "india": ("India", "IN", "IND"),
118
123
  "indonesia": ("Indonesia", "ID", "IDN"),
119
124
  "iran": ("Iran", "IR", "IRN"),
125
+ "iraq": ("Iraq", "IQ", "IRQ"),
120
126
  "ireland": ("Ireland", "IE", "IRL"),
121
127
  "isle_of_man": ("IsleOfMan", "IM", "IMN"),
122
128
  "israel": ("Israel", "IL", "ISR"),
@@ -127,12 +133,14 @@ COUNTRIES: RegistryDict = {
127
133
  "jersey": ("Jersey", "JE", "JEY"),
128
134
  "kazakhstan": ("Kazakhstan", "KZ", "KAZ"),
129
135
  "kenya": ("Kenya", "KE", "KEN"),
136
+ "kiribati": ("Kiribati", "KI", "KIR"),
130
137
  "kuwait": ("Kuwait", "KW", "KWT"),
131
138
  "kyrgyzstan": ("Kyrgyzstan", "KG", "KGZ"),
132
139
  "laos": ("Laos", "LA", "LAO"),
133
140
  "latvia": ("Latvia", "LV", "LVA"),
134
141
  "lebanon": ("Lebanon", "LB", "LBN"),
135
142
  "lesotho": ("Lesotho", "LS", "LSO"),
143
+ "liberia": ("Liberia", "LR", "LBR"),
136
144
  "libya": ("Libya", "LY", "LBY"),
137
145
  "liechtenstein": ("Liechtenstein", "LI", "LIE"),
138
146
  "lithuania": ("Lithuania", "LT", "LTU"),
@@ -189,6 +197,7 @@ COUNTRIES: RegistryDict = {
189
197
  "reunion": ("Reunion", "RE", "REU", "HolidaysRE"),
190
198
  "romania": ("Romania", "RO", "ROU"),
191
199
  "russia": ("Russia", "RU", "RUS"),
200
+ "rwanda": ("Rwanda", "RW", "RWA"),
192
201
  "saint_barthelemy": ("SaintBarthelemy", "BL", "BLM", "HolidaysBL"),
193
202
  "saint_kitts_and_nevis": ("SaintKittsAndNevis", "KN", "KNA"),
194
203
  "saint_lucia": ("SaintLucia", "LC", "LCA"),
@@ -208,15 +217,24 @@ COUNTRIES: RegistryDict = {
208
217
  "slovakia": ("Slovakia", "SK", "SVK"),
209
218
  "slovenia": ("Slovenia", "SI", "SVN"),
210
219
  "solomon_islands": ("SolomonIslands", "SB", "SLB"),
220
+ "somalia": ("Somalia", "SO", "SOM"),
211
221
  "south_africa": ("SouthAfrica", "ZA", "ZAF"),
222
+ "south_georgia_and_the_south_sandwich_islands": (
223
+ "SouthGeorgiaAndTheSouthSandwichIslands",
224
+ "GS",
225
+ "SGS",
226
+ ),
212
227
  "south_korea": ("SouthKorea", "KR", "KOR", "Korea"),
228
+ "south_sudan": ("SouthSudan", "SS", "SSD"),
213
229
  "spain": ("Spain", "ES", "ESP"),
214
230
  "sri_lanka": ("SriLanka", "LK", "LKA"),
215
231
  "suriname": ("Suriname", "SR", "SUR"),
216
232
  "svalbard_and_jan_mayen": ("SvalbardAndJanMayen", "SJ", "SJM", "HolidaysSJ"),
217
233
  "sweden": ("Sweden", "SE", "SWE"),
218
234
  "switzerland": ("Switzerland", "CH", "CHE"),
235
+ "syrian_arab_republic": ("SyrianArabRepublic", "SY", "SYR"),
219
236
  "taiwan": ("Taiwan", "TW", "TWN"),
237
+ "tajikistan": ("Tajikistan", "TJ", "TJK"),
220
238
  "tanzania": ("Tanzania", "TZ", "TZA"),
221
239
  "thailand": ("Thailand", "TH", "THA"),
222
240
  "timor_leste": ("TimorLeste", "TL", "TLS"),
@@ -226,8 +244,10 @@ COUNTRIES: RegistryDict = {
226
244
  "trinidad_and_tobago": ("TrinidadAndTobago", "TT", "TTO"),
227
245
  "tunisia": ("Tunisia", "TN", "TUN"),
228
246
  "turkey": ("Turkey", "TR", "TUR"),
247
+ "turkmenistan": ("Turkmenistan", "TM", "TKM"),
229
248
  "turks_and_caicos_islands": ("TurksAndCaicosIslands", "TC", "TCA"),
230
249
  "tuvalu": ("Tuvalu", "TV", "TUV"),
250
+ "uganda": ("Uganda", "UG", "UGA"),
231
251
  "ukraine": ("Ukraine", "UA", "UKR"),
232
252
  "united_arab_emirates": ("UnitedArabEmirates", "AE", "ARE"),
233
253
  "united_kingdom": ("UnitedKingdom", "GB", "GBR", "UK"),
@@ -252,10 +272,11 @@ COUNTRIES: RegistryDict = {
252
272
  }
253
273
 
254
274
  FINANCIAL: RegistryDict = {
275
+ "brasil_bolsa_balcao": ("BrasilBolsaBalcao", "BVMF", "B3"),
255
276
  "european_central_bank": ("EuropeanCentralBank", "XECB", "ECB", "TAR"),
256
277
  "ice_futures_europe": ("ICEFuturesEurope", "IFEU"),
278
+ "national_stock_exchange_of_india": ("NationalStockExchangeOfIndia", "XNSE", "NSE"),
257
279
  "ny_stock_exchange": ("NewYorkStockExchange", "XNYS", "NYSE"),
258
- "brasil_bolsa_balcao": ("BrasilBolsaBalcao", "BVMF", "B3"),
259
280
  }
260
281
 
261
282
  # A re-entrant lock. Once a thread has acquired a re-entrant lock,
@@ -318,35 +339,46 @@ class EntityLoader:
318
339
  @staticmethod
319
340
  def _get_entity_codes(
320
341
  container: RegistryDict,
321
- entity_length: Union[int, Iterable[int]],
322
342
  include_aliases: bool = True,
343
+ max_code_length: int = 3,
344
+ min_code_length: int = 2,
323
345
  ) -> Iterable[str]:
324
- entity_length = {entity_length} if isinstance(entity_length, int) else set(entity_length)
325
346
  for entities in container.values():
326
- for entity in entities:
327
- if len(entity) in entity_length:
328
- yield entity
329
- # Assuming that the alpha-2 code goes first.
330
- if not include_aliases:
331
- break
347
+ for code in entities[1:]:
348
+ if min_code_length <= len(code) <= max_code_length:
349
+ yield code
350
+
351
+ # Stop after the first matching code if aliases are not requested.
352
+ # Assuming that the alpha-2 code goes first.
353
+ if not include_aliases:
354
+ break
332
355
 
333
356
  @staticmethod
334
357
  def get_country_codes(include_aliases: bool = True) -> Iterable[str]:
335
358
  """Get supported country codes.
336
359
 
337
360
  :param include_aliases:
338
- Whether to include entity aliases (e.g. UK for GB).
361
+ Whether to include entity aliases (e.g. GBR and UK for GB,
362
+ UKR for UA, USA for US, etc).
339
363
  """
340
- return EntityLoader._get_entity_codes(COUNTRIES, 2, include_aliases)
364
+ return EntityLoader._get_entity_codes(
365
+ COUNTRIES,
366
+ include_aliases=include_aliases,
367
+ )
341
368
 
342
369
  @staticmethod
343
370
  def get_financial_codes(include_aliases: bool = True) -> Iterable[str]:
344
371
  """Get supported financial codes.
345
372
 
346
373
  :param include_aliases:
347
- Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
374
+ Whether to include entity aliases (e.g. B3 for BVMF,
375
+ TAR for ECB, NYSE for XNYS, etc).
348
376
  """
349
- return EntityLoader._get_entity_codes(FINANCIAL, (3, 4), include_aliases)
377
+ return EntityLoader._get_entity_codes(
378
+ FINANCIAL,
379
+ include_aliases=include_aliases,
380
+ max_code_length=4,
381
+ )
350
382
 
351
383
  @staticmethod
352
384
  def load(prefix: str, scope: dict) -> None:
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.78"
13
+ __version__ = "0.80"
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holidays
3
- Version: 0.78
3
+ Version: 0.80
4
4
  Summary: Open World Holidays Framework
5
5
  Author: Vacanza Team
6
6
  Maintainer: Arkadii Yakovets, Panpakorn Siripanich, Serhii Murza
7
7
  License-Expression: MIT
8
+ Project-URL: Changelog, https://github.com/vacanza/holidays/releases/
8
9
  Project-URL: Documentation, https://holidays.readthedocs.io/en/latest/
9
10
  Project-URL: Repository, https://github.com/vacanza/holidays/
10
- Project-URL: Changelog, https://github.com/vacanza/holidays/releases/
11
- Keywords: holidays,calendar,l10n,worldwide,vacation
11
+ Keywords: calendar,holidays,l10n,vacation,worldwide
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: Intended Audience :: Education
@@ -46,7 +46,7 @@ specific date is a holiday as fast and flexible as possible.
46
46
  <tr>
47
47
  <td>PyPI</td>
48
48
  <td>
49
- <a href="https://pypi.org/project/holidays"><img src="https://img.shields.io/pypi/dm/holidays?color=41B5BE&style=flat" alt="PyPI 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>
49
+ <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>
50
50
  </td>
51
51
  </tr>
52
52
  <tr>
@@ -142,7 +142,7 @@ and detailed information.
142
142
 
143
143
  ## Available Countries
144
144
 
145
- We currently support 224 country codes. The standard way to refer to a country is by using its [ISO
145
+ We currently support 240 country codes. The standard way to refer to a country is by using its [ISO
146
146
  3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
147
147
  for domain names, and for a subdivision its [ISO 3166-2
148
148
  code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -352,6 +352,13 @@ any) in brackets, available languages and additional holiday categories. All cou
352
352
  <td></td>
353
353
  </tr>
354
354
  <tr>
355
+ <td>Bhutan</td>
356
+ <td>BT</td>
357
+ <td>Administrative Subdivisions: 11 (Paro), 12 (Chhukha), 13 (Haa), 14 (Samtse), 15 (Thimphu), 21 (Tsirang), 22 (Dagana), 23 (Punakha), 24 (Wangdue Phodrang), 31 (Sarpang), 32 (Trongsa), 33 (Bumthang), 34 (Zhemgang), 41 (Trashigang), 42 (Monggar), 43 (Pema Gatshel), 44 (Lhuentse), 45 (Samdrup Jongkhar), GA (Gasa), TY (Trashi Yangtse)</td>
358
+ <td></td>
359
+ <td></td>
360
+ </tr>
361
+ <tr>
355
362
  <td>Bolivia</td>
356
363
  <td>BO</td>
357
364
  <td>Departments: B (El Beni), C (Cochabamba), H (Chuquisaca), L (La Paz), N (Pando), O (Oruro), P (Potosí), S (Santa Cruz), T (Tarija)</td>
@@ -418,7 +425,7 @@ any) in brackets, available languages and additional holiday categories. All cou
418
425
  <td>Burundi</td>
419
426
  <td>BI</td>
420
427
  <td></td>
421
- <td></td>
428
+ <td>en_US, <strong>fr_BI</strong></td>
422
429
  <td></td>
423
430
  </tr>
424
431
  <tr>
@@ -506,6 +513,13 @@ any) in brackets, available languages and additional holiday categories. All cou
506
513
  <td></td>
507
514
  </tr>
508
515
  <tr>
516
+ <td>Comoros</td>
517
+ <td>KM</td>
518
+ <td></td>
519
+ <td></td>
520
+ <td></td>
521
+ </tr>
522
+ <tr>
509
523
  <td>Congo</td>
510
524
  <td>CG</td>
511
525
  <td></td>
@@ -625,6 +639,13 @@ any) in brackets, available languages and additional holiday categories. All cou
625
639
  <td></td>
626
640
  </tr>
627
641
  <tr>
642
+ <td>Eritrea</td>
643
+ <td>ER</td>
644
+ <td></td>
645
+ <td></td>
646
+ <td>GOVERNMENT</td>
647
+ </tr>
648
+ <tr>
628
649
  <td>Estonia</td>
629
650
  <td>EE</td>
630
651
  <td></td>
@@ -709,11 +730,18 @@ any) in brackets, available languages and additional holiday categories. All cou
709
730
  <td></td>
710
731
  </tr>
711
732
  <tr>
733
+ <td>Gambia</td>
734
+ <td>GM</td>
735
+ <td></td>
736
+ <td><strong>en_GM</strong>, en_US</td>
737
+ <td></td>
738
+ </tr>
739
+ <tr>
712
740
  <td>Georgia</td>
713
741
  <td>GE</td>
714
742
  <td></td>
715
743
  <td>en_US, <strong>ka</strong>, uk</td>
716
- <td>GOVERNMENT</td>
744
+ <td></td>
717
745
  </tr>
718
746
  <tr>
719
747
  <td>Germany</td>
@@ -793,6 +821,13 @@ any) in brackets, available languages and additional holiday categories. All cou
793
821
  <td></td>
794
822
  </tr>
795
823
  <tr>
824
+ <td>Guinea-Bissau</td>
825
+ <td>GW</td>
826
+ <td></td>
827
+ <td>en_US, <strong>pt_GW</strong></td>
828
+ <td></td>
829
+ </tr>
830
+ <tr>
796
831
  <td>Guyana</td>
797
832
  <td>GY</td>
798
833
  <td></td>
@@ -856,6 +891,13 @@ any) in brackets, available languages and additional holiday categories. All cou
856
891
  <td></td>
857
892
  </tr>
858
893
  <tr>
894
+ <td>Iraq</td>
895
+ <td>IQ</td>
896
+ <td></td>
897
+ <td><strong>ar</strong>, en_US</td>
898
+ <td>CHRISTIAN, HEBREW, SABIAN, YAZIDI</td>
899
+ </tr>
900
+ <tr>
859
901
  <td>Ireland</td>
860
902
  <td>IE</td>
861
903
  <td></td>
@@ -933,6 +975,13 @@ any) in brackets, available languages and additional holiday categories. All cou
933
975
  <td>HINDU, ISLAMIC</td>
934
976
  </tr>
935
977
  <tr>
978
+ <td>Kiribati</td>
979
+ <td>KI</td>
980
+ <td></td>
981
+ <td></td>
982
+ <td></td>
983
+ </tr>
984
+ <tr>
936
985
  <td>Kuwait</td>
937
986
  <td>KW</td>
938
987
  <td></td>
@@ -975,6 +1024,13 @@ any) in brackets, available languages and additional holiday categories. All cou
975
1024
  <td></td>
976
1025
  </tr>
977
1026
  <tr>
1027
+ <td>Liberia</td>
1028
+ <td>LR</td>
1029
+ <td></td>
1030
+ <td></td>
1031
+ <td></td>
1032
+ </tr>
1033
+ <tr>
978
1034
  <td>Libya</td>
979
1035
  <td>LY</td>
980
1036
  <td></td>
@@ -1007,7 +1063,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1007
1063
  <td>MO</td>
1008
1064
  <td>Historical municipalities: I (Concelho das Ilhas, 海島市, 海岛市), M (Concelho de Macau, 澳門市, 澳门市)</td>
1009
1065
  <td>en_MO, en_US, pt_MO, th, zh_CN, <strong>zh_MO</strong></td>
1010
- <td>GOVERNMENT, MANDATORY</td>
1066
+ <td>GOVERNMENT, OPTIONAL</td>
1011
1067
  </tr>
1012
1068
  <tr>
1013
1069
  <td>Madagascar</td>
@@ -1209,7 +1265,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1209
1265
  <td>Nigeria</td>
1210
1266
  <td>NG</td>
1211
1267
  <td></td>
1212
- <td></td>
1268
+ <td><strong>en_NG</strong>, en_US</td>
1213
1269
  <td></td>
1214
1270
  </tr>
1215
1271
  <tr>
@@ -1367,6 +1423,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1367
1423
  <td></td>
1368
1424
  </tr>
1369
1425
  <tr>
1426
+ <td>Rwanda</td>
1427
+ <td>RW</td>
1428
+ <td></td>
1429
+ <td>en_US, fr, <strong>rw</strong></td>
1430
+ <td></td>
1431
+ </tr>
1432
+ <tr>
1370
1433
  <td>Saint Barthélemy</td>
1371
1434
  <td>BL</td>
1372
1435
  <td>Can also be loaded as country FR, subdivision BL</td>
@@ -1500,6 +1563,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1500
1563
  <td></td>
1501
1564
  </tr>
1502
1565
  <tr>
1566
+ <td>Somalia</td>
1567
+ <td>SO</td>
1568
+ <td></td>
1569
+ <td></td>
1570
+ <td></td>
1571
+ </tr>
1572
+ <tr>
1503
1573
  <td>South Africa</td>
1504
1574
  <td>ZA</td>
1505
1575
  <td></td>
@@ -1507,6 +1577,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1507
1577
  <td></td>
1508
1578
  </tr>
1509
1579
  <tr>
1580
+ <td>South Georgia and the South Sandwich Islands</td>
1581
+ <td>GS</td>
1582
+ <td></td>
1583
+ <td><strong>en_GS</strong>, en_US</td>
1584
+ <td></td>
1585
+ </tr>
1586
+ <tr>
1510
1587
  <td>South Korea</td>
1511
1588
  <td>KR</td>
1512
1589
  <td></td>
@@ -1514,6 +1591,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1514
1591
  <td>BANK</td>
1515
1592
  </tr>
1516
1593
  <tr>
1594
+ <td>South Sudan</td>
1595
+ <td>SS</td>
1596
+ <td></td>
1597
+ <td></td>
1598
+ <td>ISLAMIC</td>
1599
+ </tr>
1600
+ <tr>
1517
1601
  <td>Spain</td>
1518
1602
  <td>ES</td>
1519
1603
  <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>
@@ -1556,6 +1640,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1556
1640
  <td>HALF_DAY, OPTIONAL</td>
1557
1641
  </tr>
1558
1642
  <tr>
1643
+ <td>Syrian Arab Republic</td>
1644
+ <td>SY</td>
1645
+ <td></td>
1646
+ <td><strong>ar</strong>, en_US</td>
1647
+ <td></td>
1648
+ </tr>
1649
+ <tr>
1559
1650
  <td>Taiwan</td>
1560
1651
  <td>TW</td>
1561
1652
  <td></td>
@@ -1563,6 +1654,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1563
1654
  <td>GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY</td>
1564
1655
  </tr>
1565
1656
  <tr>
1657
+ <td>Tajikistan</td>
1658
+ <td>TJ</td>
1659
+ <td></td>
1660
+ <td>en_US, ru, <strong>tg</strong></td>
1661
+ <td></td>
1662
+ </tr>
1663
+ <tr>
1566
1664
  <td>Tanzania</td>
1567
1665
  <td>TZ</td>
1568
1666
  <td></td>
@@ -1626,6 +1724,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1626
1724
  <td>HALF_DAY</td>
1627
1725
  </tr>
1628
1726
  <tr>
1727
+ <td>Turkmenistan</td>
1728
+ <td>TM</td>
1729
+ <td></td>
1730
+ <td>en_US, ru, <strong>tk</strong></td>
1731
+ <td></td>
1732
+ </tr>
1733
+ <tr>
1629
1734
  <td>Turks and Caicos Islands</td>
1630
1735
  <td>TC</td>
1631
1736
  <td></td>
@@ -1640,6 +1745,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1640
1745
  <td></td>
1641
1746
  </tr>
1642
1747
  <tr>
1748
+ <td>Uganda</td>
1749
+ <td>UG</td>
1750
+ <td></td>
1751
+ <td></td>
1752
+ <td></td>
1753
+ </tr>
1754
+ <tr>
1643
1755
  <td>Ukraine</td>
1644
1756
  <td>UA</td>
1645
1757
  <td></td>
@@ -1802,6 +1914,12 @@ code when available. The following financial markets are available:
1802
1914
  <td></td>
1803
1915
  </tr>
1804
1916
  <tr>
1917
+ <td>National Stock Exchange of India</td>
1918
+ <td>XNSE</td>
1919
+ <td>National Stock Exchange of India market holidays</td>
1920
+ <td><strong>en_IN</strong>, en_US, hi</td>
1921
+ </tr>
1922
+ <tr>
1805
1923
  <td>New York Stock Exchange</td>
1806
1924
  <td>XNYS</td>
1807
1925
  <td>NYSE market holidays (used by all other US-exchanges, including NASDAQ, etc.)</td>