holidays 0.79__py3-none-any.whl → 0.81__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 (124) hide show
  1. holidays/calendars/chinese.py +39 -1
  2. holidays/calendars/hindu.py +1 -0
  3. holidays/constants.py +0 -1
  4. holidays/countries/__init__.py +13 -0
  5. holidays/countries/argentina.py +4 -0
  6. holidays/countries/australia.py +191 -295
  7. holidays/countries/bosnia_and_herzegovina.py +5 -1
  8. holidays/countries/burkina_faso.py +5 -0
  9. holidays/countries/burundi.py +95 -40
  10. holidays/countries/cameroon.py +5 -0
  11. holidays/countries/canada.py +7 -0
  12. holidays/countries/chad.py +5 -0
  13. holidays/countries/china.py +4 -0
  14. holidays/countries/christmas_island.py +6 -0
  15. holidays/countries/comoros.py +121 -0
  16. holidays/countries/eritrea.py +104 -0
  17. holidays/countries/gabon.py +2 -0
  18. holidays/countries/georgia.py +9 -7
  19. holidays/countries/guinea_bissau.py +0 -4
  20. holidays/countries/hongkong.py +5 -1
  21. holidays/countries/kyrgyzstan.py +2 -0
  22. holidays/countries/macau.py +74 -63
  23. holidays/countries/maldives.py +2 -0
  24. holidays/countries/mauritania.py +2 -0
  25. holidays/countries/mongolia.py +2 -0
  26. holidays/countries/nigeria.py +198 -27
  27. holidays/countries/philippines.py +11 -2
  28. holidays/countries/rwanda.py +162 -0
  29. holidays/countries/saint_helena_ascension_and_tristan_da_cunha.py +197 -0
  30. holidays/countries/sierra_leone.py +1 -1
  31. holidays/countries/singapore.py +4 -0
  32. holidays/countries/somalia.py +79 -0
  33. holidays/countries/south_korea.py +4 -0
  34. holidays/countries/south_sudan.py +133 -0
  35. holidays/countries/spain.py +26 -0
  36. holidays/countries/sudan.py +115 -0
  37. holidays/countries/taiwan.py +5 -1
  38. holidays/countries/tajikistan.py +116 -0
  39. holidays/countries/tanzania.py +291 -147
  40. holidays/countries/turkmenistan.py +6 -0
  41. holidays/countries/uganda.py +101 -0
  42. holidays/countries/vietnam.py +4 -0
  43. holidays/financial/__init__.py +5 -0
  44. holidays/financial/national_stock_exchange_of_india.py +169 -0
  45. holidays/groups/chinese.py +3 -15
  46. holidays/groups/eastern.py +1 -3
  47. holidays/groups/islamic.py +10 -0
  48. holidays/locale/ar_SD/LC_MESSAGES/SD.mo +0 -0
  49. holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
  50. holidays/locale/en_GB/LC_MESSAGES/SH.mo +0 -0
  51. holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
  52. holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
  53. holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
  54. holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
  55. holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
  56. holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
  57. holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
  58. holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
  59. holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
  60. holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
  61. holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
  62. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  63. holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
  64. holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
  65. holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
  66. holidays/locale/en_US/LC_MESSAGES/MN.mo +0 -0
  67. holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
  68. holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
  69. holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
  70. holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
  71. holidays/locale/en_US/LC_MESSAGES/SD.mo +0 -0
  72. holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
  73. holidays/locale/en_US/LC_MESSAGES/SH.mo +0 -0
  74. holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
  75. holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
  76. holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
  77. holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
  78. holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
  79. holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
  80. holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
  81. holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
  82. holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
  83. holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
  84. holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
  85. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  86. holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
  87. holidays/locale/mn/LC_MESSAGES/MN.mo +0 -0
  88. holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
  89. holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
  90. holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
  91. holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
  92. holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
  93. holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
  94. holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
  95. holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
  96. holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
  97. holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
  98. holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
  99. holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
  100. holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
  101. holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
  102. holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
  103. holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
  104. holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
  105. holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
  106. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  107. holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
  108. holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
  109. holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
  110. holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
  111. holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
  112. holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
  113. holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
  114. holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
  115. holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
  116. holidays/observed_holiday_base.py +1 -1
  117. holidays/registry.py +39 -14
  118. holidays/version.py +1 -1
  119. {holidays-0.79.dist-info → holidays-0.81.dist-info}/METADATA +76 -7
  120. {holidays-0.79.dist-info → holidays-0.81.dist-info}/RECORD +124 -97
  121. {holidays-0.79.dist-info → holidays-0.81.dist-info}/WHEEL +0 -0
  122. {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/CONTRIBUTORS +0 -0
  123. {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/LICENSE +0 -0
  124. {holidays-0.79.dist-info → holidays-0.81.dist-info}/top_level.txt +0 -0
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
 
@@ -67,6 +67,7 @@ COUNTRIES: RegistryDict = {
67
67
  "christmas_island": ("ChristmasIsland", "CX", "CXR"),
68
68
  "cocos_islands": ("CocosIslands", "CC", "CCK"),
69
69
  "colombia": ("Colombia", "CO", "COL"),
70
+ "comoros": ("Comoros", "KM", "COM"),
70
71
  "congo": ("Congo", "CG", "COG"),
71
72
  "cook_islands": ("CookIslands", "CK", "COK"),
72
73
  "costa_rica": ("CostaRica", "CR", "CRI"),
@@ -85,6 +86,7 @@ COUNTRIES: RegistryDict = {
85
86
  "jordan": ("Jordan", "JO", "JOR"),
86
87
  "el_salvador": ("ElSalvador", "SV", "SLV"),
87
88
  "equatorial_guinea": ("EquatorialGuinea", "GQ", "GNQ"),
89
+ "eritrea": ("Eritrea", "ER", "ERI"),
88
90
  "estonia": ("Estonia", "EE", "EST"),
89
91
  "eswatini": ("Eswatini", "SZ", "SZW", "Swaziland"),
90
92
  "ethiopia": ("Ethiopia", "ET", "ETH"),
@@ -195,7 +197,13 @@ COUNTRIES: RegistryDict = {
195
197
  "reunion": ("Reunion", "RE", "REU", "HolidaysRE"),
196
198
  "romania": ("Romania", "RO", "ROU"),
197
199
  "russia": ("Russia", "RU", "RUS"),
200
+ "rwanda": ("Rwanda", "RW", "RWA"),
198
201
  "saint_barthelemy": ("SaintBarthelemy", "BL", "BLM", "HolidaysBL"),
202
+ "saint_helena_ascension_and_tristan_da_cunha": (
203
+ "SaintHelenaAscensionAndTristanDaCunha",
204
+ "SH",
205
+ "SHN",
206
+ ),
199
207
  "saint_kitts_and_nevis": ("SaintKittsAndNevis", "KN", "KNA"),
200
208
  "saint_lucia": ("SaintLucia", "LC", "LCA"),
201
209
  "saint_martin": ("SaintMartin", "MF", "MAF", "HolidaysMF"),
@@ -214,6 +222,7 @@ COUNTRIES: RegistryDict = {
214
222
  "slovakia": ("Slovakia", "SK", "SVK"),
215
223
  "slovenia": ("Slovenia", "SI", "SVN"),
216
224
  "solomon_islands": ("SolomonIslands", "SB", "SLB"),
225
+ "somalia": ("Somalia", "SO", "SOM"),
217
226
  "south_africa": ("SouthAfrica", "ZA", "ZAF"),
218
227
  "south_georgia_and_the_south_sandwich_islands": (
219
228
  "SouthGeorgiaAndTheSouthSandwichIslands",
@@ -221,14 +230,17 @@ COUNTRIES: RegistryDict = {
221
230
  "SGS",
222
231
  ),
223
232
  "south_korea": ("SouthKorea", "KR", "KOR", "Korea"),
233
+ "south_sudan": ("SouthSudan", "SS", "SSD"),
224
234
  "spain": ("Spain", "ES", "ESP"),
225
235
  "sri_lanka": ("SriLanka", "LK", "LKA"),
236
+ "sudan": ("Sudan", "SD", "SDN"),
226
237
  "suriname": ("Suriname", "SR", "SUR"),
227
238
  "svalbard_and_jan_mayen": ("SvalbardAndJanMayen", "SJ", "SJM", "HolidaysSJ"),
228
239
  "sweden": ("Sweden", "SE", "SWE"),
229
240
  "switzerland": ("Switzerland", "CH", "CHE"),
230
241
  "syrian_arab_republic": ("SyrianArabRepublic", "SY", "SYR"),
231
242
  "taiwan": ("Taiwan", "TW", "TWN"),
243
+ "tajikistan": ("Tajikistan", "TJ", "TJK"),
232
244
  "tanzania": ("Tanzania", "TZ", "TZA"),
233
245
  "thailand": ("Thailand", "TH", "THA"),
234
246
  "timor_leste": ("TimorLeste", "TL", "TLS"),
@@ -241,6 +253,7 @@ COUNTRIES: RegistryDict = {
241
253
  "turkmenistan": ("Turkmenistan", "TM", "TKM"),
242
254
  "turks_and_caicos_islands": ("TurksAndCaicosIslands", "TC", "TCA"),
243
255
  "tuvalu": ("Tuvalu", "TV", "TUV"),
256
+ "uganda": ("Uganda", "UG", "UGA"),
244
257
  "ukraine": ("Ukraine", "UA", "UKR"),
245
258
  "united_arab_emirates": ("UnitedArabEmirates", "AE", "ARE"),
246
259
  "united_kingdom": ("UnitedKingdom", "GB", "GBR", "UK"),
@@ -265,10 +278,11 @@ COUNTRIES: RegistryDict = {
265
278
  }
266
279
 
267
280
  FINANCIAL: RegistryDict = {
281
+ "brasil_bolsa_balcao": ("BrasilBolsaBalcao", "BVMF", "B3"),
268
282
  "european_central_bank": ("EuropeanCentralBank", "XECB", "ECB", "TAR"),
269
283
  "ice_futures_europe": ("ICEFuturesEurope", "IFEU"),
284
+ "national_stock_exchange_of_india": ("NationalStockExchangeOfIndia", "XNSE", "NSE"),
270
285
  "ny_stock_exchange": ("NewYorkStockExchange", "XNYS", "NYSE"),
271
- "brasil_bolsa_balcao": ("BrasilBolsaBalcao", "BVMF", "B3"),
272
286
  }
273
287
 
274
288
  # A re-entrant lock. Once a thread has acquired a re-entrant lock,
@@ -331,35 +345,46 @@ class EntityLoader:
331
345
  @staticmethod
332
346
  def _get_entity_codes(
333
347
  container: RegistryDict,
334
- entity_length: Union[int, Iterable[int]],
335
348
  include_aliases: bool = True,
349
+ max_code_length: int = 3,
350
+ min_code_length: int = 2,
336
351
  ) -> Iterable[str]:
337
- entity_length = {entity_length} if isinstance(entity_length, int) else set(entity_length)
338
352
  for entities in container.values():
339
- for entity in entities:
340
- if len(entity) in entity_length:
341
- yield entity
342
- # Assuming that the alpha-2 code goes first.
343
- if not include_aliases:
344
- break
353
+ for code in entities[1:]:
354
+ if min_code_length <= len(code) <= max_code_length:
355
+ yield code
356
+
357
+ # Stop after the first matching code if aliases are not requested.
358
+ # Assuming that the alpha-2 code goes first.
359
+ if not include_aliases:
360
+ break
345
361
 
346
362
  @staticmethod
347
363
  def get_country_codes(include_aliases: bool = True) -> Iterable[str]:
348
364
  """Get supported country codes.
349
365
 
350
366
  :param include_aliases:
351
- Whether to include entity aliases (e.g. UK for GB).
367
+ Whether to include entity aliases (e.g. GBR and UK for GB,
368
+ UKR for UA, USA for US, etc).
352
369
  """
353
- return EntityLoader._get_entity_codes(COUNTRIES, 2, include_aliases)
370
+ return EntityLoader._get_entity_codes(
371
+ COUNTRIES,
372
+ include_aliases=include_aliases,
373
+ )
354
374
 
355
375
  @staticmethod
356
376
  def get_financial_codes(include_aliases: bool = True) -> Iterable[str]:
357
377
  """Get supported financial codes.
358
378
 
359
379
  :param include_aliases:
360
- Whether to include entity aliases(e.g. TAR for ECB, XNYS for NYSE).
380
+ Whether to include entity aliases (e.g. B3 for BVMF,
381
+ TAR for ECB, NYSE for XNYS, etc).
361
382
  """
362
- return EntityLoader._get_entity_codes(FINANCIAL, (3, 4), include_aliases)
383
+ return EntityLoader._get_entity_codes(
384
+ FINANCIAL,
385
+ include_aliases=include_aliases,
386
+ max_code_length=4,
387
+ )
363
388
 
364
389
  @staticmethod
365
390
  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.79"
13
+ __version__ = "0.81"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holidays
3
- Version: 0.79
3
+ Version: 0.81
4
4
  Summary: Open World Holidays Framework
5
5
  Author: Vacanza Team
6
6
  Maintainer: Arkadii Yakovets, Panpakorn Siripanich, Serhii Murza
@@ -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/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>
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 233 country codes. The standard way to refer to a country is by using its [ISO
145
+ We currently support 242 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
@@ -425,7 +425,7 @@ any) in brackets, available languages and additional holiday categories. All cou
425
425
  <td>Burundi</td>
426
426
  <td>BI</td>
427
427
  <td></td>
428
- <td></td>
428
+ <td>en_US, <strong>fr_BI</strong></td>
429
429
  <td></td>
430
430
  </tr>
431
431
  <tr>
@@ -513,6 +513,13 @@ any) in brackets, available languages and additional holiday categories. All cou
513
513
  <td></td>
514
514
  </tr>
515
515
  <tr>
516
+ <td>Comoros</td>
517
+ <td>KM</td>
518
+ <td></td>
519
+ <td></td>
520
+ <td></td>
521
+ </tr>
522
+ <tr>
516
523
  <td>Congo</td>
517
524
  <td>CG</td>
518
525
  <td></td>
@@ -632,6 +639,13 @@ any) in brackets, available languages and additional holiday categories. All cou
632
639
  <td></td>
633
640
  </tr>
634
641
  <tr>
642
+ <td>Eritrea</td>
643
+ <td>ER</td>
644
+ <td></td>
645
+ <td></td>
646
+ <td>GOVERNMENT</td>
647
+ </tr>
648
+ <tr>
635
649
  <td>Estonia</td>
636
650
  <td>EE</td>
637
651
  <td></td>
@@ -727,7 +741,7 @@ any) in brackets, available languages and additional holiday categories. All cou
727
741
  <td>GE</td>
728
742
  <td></td>
729
743
  <td>en_US, <strong>ka</strong>, uk</td>
730
- <td>GOVERNMENT</td>
744
+ <td></td>
731
745
  </tr>
732
746
  <tr>
733
747
  <td>Germany</td>
@@ -1049,7 +1063,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1049
1063
  <td>MO</td>
1050
1064
  <td>Historical municipalities: I (Concelho das Ilhas, 海島市, 海岛市), M (Concelho de Macau, 澳門市, 澳门市)</td>
1051
1065
  <td>en_MO, en_US, pt_MO, th, zh_CN, <strong>zh_MO</strong></td>
1052
- <td>GOVERNMENT, MANDATORY</td>
1066
+ <td>GOVERNMENT, OPTIONAL</td>
1053
1067
  </tr>
1054
1068
  <tr>
1055
1069
  <td>Madagascar</td>
@@ -1251,7 +1265,7 @@ any) in brackets, available languages and additional holiday categories. All cou
1251
1265
  <td>Nigeria</td>
1252
1266
  <td>NG</td>
1253
1267
  <td></td>
1254
- <td></td>
1268
+ <td><strong>en_NG</strong>, en_US</td>
1255
1269
  <td></td>
1256
1270
  </tr>
1257
1271
  <tr>
@@ -1409,6 +1423,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1409
1423
  <td></td>
1410
1424
  </tr>
1411
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>
1412
1433
  <td>Saint Barthélemy</td>
1413
1434
  <td>BL</td>
1414
1435
  <td>Can also be loaded as country FR, subdivision BL</td>
@@ -1416,6 +1437,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1416
1437
  <td></td>
1417
1438
  </tr>
1418
1439
  <tr>
1440
+ <td>Saint Helena, Ascension and Tristan da Cunha</td>
1441
+ <td>SH</td>
1442
+ <td>Subdivisions: AC (Ascension), HL (Saint Helena), TA (Tristan da Cunha)</td>
1443
+ <td><strong>en_GB</strong>, en_US</td>
1444
+ <td>GOVERNMENT</td>
1445
+ </tr>
1446
+ <tr>
1419
1447
  <td>Saint Kitts and Nevis</td>
1420
1448
  <td>KN</td>
1421
1449
  <td></td>
@@ -1542,6 +1570,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1542
1570
  <td></td>
1543
1571
  </tr>
1544
1572
  <tr>
1573
+ <td>Somalia</td>
1574
+ <td>SO</td>
1575
+ <td></td>
1576
+ <td></td>
1577
+ <td></td>
1578
+ </tr>
1579
+ <tr>
1545
1580
  <td>South Africa</td>
1546
1581
  <td>ZA</td>
1547
1582
  <td></td>
@@ -1563,6 +1598,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1563
1598
  <td>BANK</td>
1564
1599
  </tr>
1565
1600
  <tr>
1601
+ <td>South Sudan</td>
1602
+ <td>SS</td>
1603
+ <td></td>
1604
+ <td></td>
1605
+ <td>ISLAMIC</td>
1606
+ </tr>
1607
+ <tr>
1566
1608
  <td>Spain</td>
1567
1609
  <td>ES</td>
1568
1610
  <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>
@@ -1577,6 +1619,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1577
1619
  <td>BANK, GOVERNMENT, WORKDAY</td>
1578
1620
  </tr>
1579
1621
  <tr>
1622
+ <td>Sudan</td>
1623
+ <td>SD</td>
1624
+ <td></td>
1625
+ <td><strong>ar_SD</strong>, en_US</td>
1626
+ <td></td>
1627
+ </tr>
1628
+ <tr>
1580
1629
  <td>Suriname</td>
1581
1630
  <td>SR</td>
1582
1631
  <td></td>
@@ -1619,6 +1668,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1619
1668
  <td>GOVERNMENT, OPTIONAL, SCHOOL, WORKDAY</td>
1620
1669
  </tr>
1621
1670
  <tr>
1671
+ <td>Tajikistan</td>
1672
+ <td>TJ</td>
1673
+ <td></td>
1674
+ <td>en_US, ru, <strong>tg</strong></td>
1675
+ <td></td>
1676
+ </tr>
1677
+ <tr>
1622
1678
  <td>Tanzania</td>
1623
1679
  <td>TZ</td>
1624
1680
  <td></td>
@@ -1703,6 +1759,13 @@ any) in brackets, available languages and additional holiday categories. All cou
1703
1759
  <td></td>
1704
1760
  </tr>
1705
1761
  <tr>
1762
+ <td>Uganda</td>
1763
+ <td>UG</td>
1764
+ <td></td>
1765
+ <td></td>
1766
+ <td></td>
1767
+ </tr>
1768
+ <tr>
1706
1769
  <td>Ukraine</td>
1707
1770
  <td>UA</td>
1708
1771
  <td></td>
@@ -1865,6 +1928,12 @@ code when available. The following financial markets are available:
1865
1928
  <td></td>
1866
1929
  </tr>
1867
1930
  <tr>
1931
+ <td>National Stock Exchange of India</td>
1932
+ <td>XNSE</td>
1933
+ <td>National Stock Exchange of India market holidays</td>
1934
+ <td><strong>en_IN</strong>, en_US, hi</td>
1935
+ </tr>
1936
+ <tr>
1868
1937
  <td>New York Stock Exchange</td>
1869
1938
  <td>XNYS</td>
1870
1939
  <td>NYSE market holidays (used by all other US-exchanges, including NASDAQ, etc.)</td>