holidays 0.49__py3-none-any.whl → 0.51__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 (67) hide show
  1. holidays/__init__.py +12 -1
  2. holidays/countries/__init__.py +1 -0
  3. holidays/countries/aruba.py +2 -2
  4. holidays/countries/azerbaijan.py +1 -1
  5. holidays/countries/bahamas.py +4 -4
  6. holidays/countries/bangladesh.py +1 -1
  7. holidays/countries/belarus.py +1 -1
  8. holidays/countries/belize.py +1 -1
  9. holidays/countries/botswana.py +19 -9
  10. holidays/countries/brazil.py +14 -8
  11. holidays/countries/brunei.py +1 -1
  12. holidays/countries/canada.py +3 -3
  13. holidays/countries/chile.py +14 -11
  14. holidays/countries/curacao.py +2 -2
  15. holidays/countries/georgia.py +17 -1
  16. holidays/countries/greenland.py +96 -0
  17. holidays/countries/hongkong.py +2 -2
  18. holidays/countries/india.py +29 -23
  19. holidays/countries/ireland.py +1 -1
  20. holidays/countries/isle_of_man.py +3 -8
  21. holidays/countries/israel.py +1 -2
  22. holidays/countries/italy.py +161 -129
  23. holidays/countries/japan.py +38 -30
  24. holidays/countries/jersey.py +9 -7
  25. holidays/countries/malaysia.py +5 -5
  26. holidays/countries/mexico.py +1 -1
  27. holidays/countries/monaco.py +5 -7
  28. holidays/countries/papua_new_guinea.py +7 -6
  29. holidays/countries/russia.py +18 -4
  30. holidays/countries/saudi_arabia.py +1 -2
  31. holidays/countries/sweden.py +1 -1
  32. holidays/countries/switzerland.py +17 -15
  33. holidays/countries/tanzania.py +10 -10
  34. holidays/countries/tonga.py +10 -10
  35. holidays/countries/turkey.py +1 -1
  36. holidays/countries/united_arab_emirates.py +3 -3
  37. holidays/countries/united_states.py +4 -5
  38. holidays/deprecation.py +33 -0
  39. holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
  40. holidays/locale/da/LC_MESSAGES/GL.po +91 -0
  41. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  42. holidays/locale/en_US/LC_MESSAGES/GE.po +8 -4
  43. holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
  44. holidays/locale/en_US/LC_MESSAGES/GL.po +92 -0
  45. holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
  46. holidays/locale/en_US/LC_MESSAGES/RU.po +11 -2
  47. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  48. holidays/locale/ka/LC_MESSAGES/GE.po +8 -4
  49. holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
  50. holidays/locale/kl/LC_MESSAGES/GL.po +91 -0
  51. holidays/locale/{pap → pap_AW}/LC_MESSAGES/AW.mo +0 -0
  52. holidays/locale/{pap → pap_AW}/LC_MESSAGES/AW.po +1 -1
  53. holidays/locale/{pap → pap_CW}/LC_MESSAGES/CW.mo +0 -0
  54. holidays/locale/{pap → pap_CW}/LC_MESSAGES/CW.po +2 -2
  55. holidays/locale/ru/LC_MESSAGES/RU.mo +0 -0
  56. holidays/locale/ru/LC_MESSAGES/RU.po +11 -2
  57. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  58. holidays/locale/uk/LC_MESSAGES/GE.po +8 -4
  59. holidays/observed_holiday_base.py +42 -25
  60. holidays/registry.py +11 -1
  61. holidays/utils.py +1 -1
  62. {holidays-0.49.dist-info → holidays-0.51.dist-info}/AUTHORS +3 -0
  63. {holidays-0.49.dist-info → holidays-0.51.dist-info}/METADATA +15 -10
  64. {holidays-0.49.dist-info → holidays-0.51.dist-info}/RECORD +67 -59
  65. {holidays-0.49.dist-info → holidays-0.51.dist-info}/LICENSE +0 -0
  66. {holidays-0.49.dist-info → holidays-0.51.dist-info}/WHEEL +0 -0
  67. {holidays-0.49.dist-info → holidays-0.51.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,91 @@
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 AUTHORS 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/python-holidays
11
+ # License: MIT (see LICENSE file)
12
+ #
13
+ # Greenland holidays.
14
+ #
15
+ msgid ""
16
+ msgstr ""
17
+ "Project-Id-Version: Python Holidays 0.50\n"
18
+ "POT-Creation-Date: 2023-02-15 08:13-0800\n"
19
+ "PO-Revision-Date: 2024-05-30 16:36+0200\n"
20
+ "Last-Translator: ~Klintrup <github@klintrup.dk>\n"
21
+ "Language-Team: Python Holidays localization team\n"
22
+ "Language: kl\n"
23
+ "MIME-Version: 1.0\n"
24
+ "Content-Type: text/plain; charset=UTF-8\n"
25
+ "Content-Transfer-Encoding: 8bit\n"
26
+ "Generated-By: Lingua 4.15.0\n"
27
+ "X-Generator: Poedit 3.2.2\n"
28
+
29
+ #. New Year's Day.
30
+ msgid "Ukioq nutaaq"
31
+ msgstr ""
32
+
33
+ #. Maundy Thursday.
34
+ msgid "Sisamanngornermi illernartumi"
35
+ msgstr ""
36
+
37
+ #. Easter Sunday.
38
+ msgid "Poorskimi"
39
+ msgstr ""
40
+
41
+ #. Easter Monday.
42
+ msgid "Poorskimi ullut aappaat"
43
+ msgstr ""
44
+
45
+ #. Great Day of Prayers.
46
+ msgid "Ulloq qinuffiusoq"
47
+ msgstr ""
48
+
49
+ #. Ascension Day.
50
+ msgid "Ulloq Kristusip qilaliarnera"
51
+ msgstr ""
52
+
53
+ #. Whit Sunday.
54
+ msgid "Piinsip ullua"
55
+ msgstr ""
56
+
57
+ #. Whit Monday.
58
+ msgid "Piinsip ulluisa aappaanni"
59
+ msgstr ""
60
+
61
+ #. Christmas Day.
62
+ msgid "Juulli"
63
+ msgstr ""
64
+
65
+ #. Second Day of Christmas.
66
+ msgid "Juullip aappaa"
67
+ msgstr ""
68
+
69
+ #. International Workers' Day.
70
+ msgid "Sulisartut ulluat"
71
+ msgstr ""
72
+
73
+ #. Christmas Eve.
74
+ msgid "Juulliaqqami"
75
+ msgstr ""
76
+
77
+ #. New Year's Eve.
78
+ msgid "Ukiortaami"
79
+ msgstr ""
80
+
81
+ #. National Day.
82
+ msgid "Ullortuneq"
83
+ msgstr ""
84
+
85
+ #. Good Friday.
86
+ msgid "Tallimanngorneq ajortorsiorneq"
87
+ msgstr ""
88
+
89
+ #. Epiphany.
90
+ msgid "Mitaarneq"
91
+ msgstr ""
@@ -19,7 +19,7 @@ msgstr ""
19
19
  "PO-Revision-Date: \n"
20
20
  "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
21
21
  "Language-Team: Python Holidays localization team\n"
22
- "Language: pap\n"
22
+ "Language: pap_AW\n"
23
23
  "MIME-Version: 1.0\n"
24
24
  "Content-Type: text/plain; charset=UTF-8\n"
25
25
  "Content-Transfer-Encoding: 8bit\n"
@@ -10,7 +10,7 @@
10
10
  # Website: https://github.com/vacanza/python-holidays
11
11
  # License: MIT (see LICENSE file)
12
12
  #
13
- # Curacao holidays.
13
+ # Curaçao holidays.
14
14
  #
15
15
  msgid ""
16
16
  msgstr ""
@@ -19,7 +19,7 @@ msgstr ""
19
19
  "PO-Revision-Date: \n"
20
20
  "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
21
21
  "Language-Team: Python Holidays localization team\n"
22
- "Language: pap\n"
22
+ "Language: pap_CW\n"
23
23
  "MIME-Version: 1.0\n"
24
24
  "Content-Type: text/plain; charset=UTF-8\n"
25
25
  "Content-Transfer-Encoding: 8bit\n"
Binary file
@@ -16,7 +16,7 @@ msgid ""
16
16
  msgstr ""
17
17
  "Project-Id-Version: Python Holidays 0.29\n"
18
18
  "POT-Creation-Date: 2023-02-15 08:13-0800\n"
19
- "PO-Revision-Date: 2023-07-13 15:57+0300\n"
19
+ "PO-Revision-Date: 2024-05-21 13:26+0700\n"
20
20
  "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
21
21
  "Language-Team: Python Holidays localization team\n"
22
22
  "Language: ru\n"
@@ -25,7 +25,7 @@ msgstr ""
25
25
  "Content-Transfer-Encoding: 8bit\n"
26
26
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
27
27
  "Generated-By: Lingua 4.15.0\n"
28
- "X-Generator: Poedit 3.2.2\n"
28
+ "X-Generator: Poedit 3.4.4\n"
29
29
 
30
30
  #. New Year's Day.
31
31
  msgid "Новый год"
@@ -80,3 +80,12 @@ msgstr ""
80
80
  #. Anniversary of the Great October Socialist Revolution.
81
81
  msgid "Годовщина Великой Октябрьской социалистической революции"
82
82
  msgstr ""
83
+
84
+ #. Date format (see strftime() Format Codes).
85
+ msgid "%d.%m.%Y"
86
+ msgstr ""
87
+
88
+ #. Day off (substituted from %s).
89
+ #, c-format
90
+ msgid "Выходной (перенесено с %s)"
91
+ msgstr ""
Binary file
@@ -14,10 +14,10 @@
14
14
  #
15
15
  msgid ""
16
16
  msgstr ""
17
- "Project-Id-Version: Python Holidays 0.30\n"
17
+ "Project-Id-Version: Python Holidays 0.50\n"
18
18
  "POT-Creation-Date: 2023-07-18 17:31+0300\n"
19
- "PO-Revision-Date: 2023-07-18 18:06+0300\n"
20
- "Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
19
+ "PO-Revision-Date: 2024-05-23 11:01+0700\n"
20
+ "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
21
21
  "Language-Team: Python Holidays localization team\n"
22
22
  "Language: uk\n"
23
23
  "MIME-Version: 1.0\n"
@@ -25,7 +25,7 @@ msgstr ""
25
25
  "Content-Transfer-Encoding: 8bit\n"
26
26
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
27
27
  "Generated-By: Lingua 4.15.0\n"
28
- "X-Generator: Poedit 3.2.2\n"
28
+ "X-Generator: Poedit 3.4.4\n"
29
29
 
30
30
  #. New Year's Day.
31
31
  msgid "ახალი წელი"
@@ -90,3 +90,7 @@ msgstr "Свято Светіцховлоба, Ризи Господньої"
90
90
  #. Saint George's Day.
91
91
  msgid "გიორგობა"
92
92
  msgstr "День святого Георгія"
93
+
94
+ #. Day of Family Sanctity and Respect for Parents.
95
+ msgid "ოჯახის სიწმინდისა და მშობლების პატივისცემის დღე"
96
+ msgstr "День святості родини та поваги до батьків"
@@ -27,9 +27,11 @@ class ObservedRule(Dict[int, Optional[int]]):
27
27
  # Observance calculation rules: +7 - next workday, -7 - previous workday.
28
28
  # Single days.
29
29
  MON_TO_NEXT_TUE = ObservedRule({MON: +1})
30
+ MON_ONLY = ObservedRule({TUE: None, WED: None, THU: None, FRI: None, SAT: None, SUN: None})
30
31
 
31
32
  TUE_TO_PREV_MON = ObservedRule({TUE: -1})
32
33
  TUE_TO_PREV_FRI = ObservedRule({TUE: -4})
34
+ TUE_TO_NONE = ObservedRule({TUE: None})
33
35
 
34
36
  WED_TO_PREV_MON = ObservedRule({WED: -2})
35
37
  WED_TO_NEXT_FRI = ObservedRule({WED: +2})
@@ -45,6 +47,7 @@ FRI_TO_NEXT_MON = ObservedRule({FRI: +3})
45
47
  FRI_TO_NEXT_TUE = ObservedRule({FRI: +4})
46
48
  FRI_TO_NEXT_SAT = ObservedRule({FRI: +1})
47
49
  FRI_TO_NEXT_WORKDAY = ObservedRule({FRI: +7})
50
+ FRI_ONLY = ObservedRule({MON: None, TUE: None, WED: None, THU: None, SAT: None, SUN: None})
48
51
 
49
52
  SAT_TO_PREV_THU = ObservedRule({SAT: -2})
50
53
  SAT_TO_PREV_FRI = ObservedRule({SAT: -1})
@@ -59,6 +62,7 @@ SUN_TO_NEXT_MON = ObservedRule({SUN: +1})
59
62
  SUN_TO_NEXT_TUE = ObservedRule({SUN: +2})
60
63
  SUN_TO_NEXT_WED = ObservedRule({SUN: +3})
61
64
  SUN_TO_NEXT_WORKDAY = ObservedRule({SUN: +7})
65
+ SUN_TO_NONE = ObservedRule({SUN: None})
62
66
 
63
67
  # Multiple days.
64
68
  ALL_TO_NEAREST_MON = ObservedRule({TUE: -1, WED: -2, THU: -3, FRI: +3, SAT: +2, SUN: +1})
@@ -70,6 +74,8 @@ WORKDAY_TO_NEAREST_MON = ObservedRule({TUE: -1, WED: -2, THU: -3, FRI: +3})
70
74
  WORKDAY_TO_NEXT_MON = ObservedRule({TUE: +6, WED: +5, THU: +4, FRI: +3})
71
75
  WORKDAY_TO_NEXT_WORKDAY = ObservedRule({MON: +7, TUE: +7, WED: +7, THU: +7, FRI: +7})
72
76
 
77
+ MON_FRI_ONLY = ObservedRule({TUE: None, WED: None, THU: None, SAT: None, SUN: None})
78
+
73
79
  TUE_WED_TO_PREV_MON = ObservedRule({TUE: -1, WED: -2})
74
80
  TUE_WED_THU_TO_PREV_MON = ObservedRule({TUE: -1, WED: -2, THU: -3})
75
81
 
@@ -96,10 +102,11 @@ class ObservedHolidayBase(HolidayBase):
96
102
 
97
103
  observed_label = "%s"
98
104
 
99
- def __init__(self, observed_rule: ObservedRule, observed_since: int = None, *args, **kwargs):
100
- self._observed_rule = observed_rule
105
+ def __init__(
106
+ self, observed_rule: ObservedRule = None, observed_since: int = None, *args, **kwargs
107
+ ):
108
+ self._observed_rule = observed_rule or ObservedRule()
101
109
  self._observed_since = observed_since
102
-
103
110
  super().__init__(*args, **kwargs)
104
111
 
105
112
  def _is_observed(self, *args, **kwargs) -> bool:
@@ -129,7 +136,11 @@ class ObservedHolidayBase(HolidayBase):
129
136
  return dt
130
137
 
131
138
  def _add_observed(
132
- self, dt: DateArg, name: Optional[str] = None, rule: Optional[ObservedRule] = None
139
+ self,
140
+ dt: DateArg,
141
+ name: Optional[str] = None,
142
+ rule: Optional[ObservedRule] = None,
143
+ show_observed_label: bool = True,
133
144
  ) -> Tuple[bool, Optional[date]]:
134
145
  dt = dt if isinstance(dt, date) else date(self._year, *dt)
135
146
 
@@ -145,34 +156,40 @@ class ObservedHolidayBase(HolidayBase):
145
156
  self.pop(dt)
146
157
  return False, None
147
158
 
148
- estimated_label = self.tr(getattr(self, "estimated_label", ""))
149
- observed_label = self.tr(
150
- getattr(
151
- self,
152
- "observed_label_before" if dt_observed < dt else "observed_label",
153
- self.observed_label,
159
+ if show_observed_label:
160
+ estimated_label = self.tr(getattr(self, "estimated_label", ""))
161
+ observed_label = self.tr(
162
+ getattr(
163
+ self,
164
+ "observed_label_before" if dt_observed < dt else "observed_label",
165
+ self.observed_label,
166
+ )
154
167
  )
155
- )
156
168
 
157
- estimated_label_text = estimated_label.strip("%s ()")
158
- # Use observed_estimated_label instead of observed_label for estimated dates.
159
- for name in (name,) if name else self.get_list(dt):
160
- holiday_name = self.tr(name)
161
- observed_estimated_label = None
162
- if len(estimated_label_text) > 0 and estimated_label_text in holiday_name:
163
- holiday_name = holiday_name.replace(f"({estimated_label_text})", "").strip()
164
- observed_estimated_label = self.tr(getattr(self, "observed_estimated_label"))
165
-
166
- super()._add_holiday(
167
- (observed_estimated_label or observed_label) % holiday_name, dt_observed
168
- )
169
+ estimated_label_text = estimated_label.strip("%s ()")
170
+ # Use observed_estimated_label instead of observed_label for estimated dates.
171
+ for name in (name,) if name else self.get_list(dt):
172
+ holiday_name = self.tr(name)
173
+ observed_estimated_label = None
174
+ if len(estimated_label_text) > 0 and estimated_label_text in holiday_name:
175
+ holiday_name = holiday_name.replace(f"({estimated_label_text})", "").strip()
176
+ observed_estimated_label = self.tr(getattr(self, "observed_estimated_label"))
177
+
178
+ super()._add_holiday(
179
+ (observed_estimated_label or observed_label) % holiday_name, dt_observed
180
+ )
181
+ else:
182
+ for name in (name,) if name else self.get_list(dt):
183
+ super()._add_holiday(name, dt_observed)
169
184
 
170
185
  return True, dt_observed
171
186
 
172
187
  def _move_holiday(
173
- self, dt: date, rule: Optional[ObservedRule] = None
188
+ self, dt: date, rule: Optional[ObservedRule] = None, show_observed_label: bool = True
174
189
  ) -> Tuple[bool, Optional[date]]:
175
- is_observed, dt_observed = self._add_observed(dt, rule=rule)
190
+ is_observed, dt_observed = self._add_observed(
191
+ dt, rule=rule, show_observed_label=show_observed_label
192
+ )
176
193
  if is_observed:
177
194
  self.pop(dt)
178
195
  return is_observed, dt_observed if is_observed else dt
holidays/registry.py CHANGED
@@ -11,6 +11,7 @@
11
11
  # License: MIT (see LICENSE file)
12
12
 
13
13
  import importlib
14
+ from threading import RLock
14
15
  from typing import Any, Dict, Iterable, Optional, Tuple, Union
15
16
 
16
17
  from holidays.holiday_base import HolidayBase
@@ -74,6 +75,7 @@ COUNTRIES: RegistryDict = {
74
75
  "germany": ("Germany", "DE", "DEU"),
75
76
  "ghana": ("Ghana", "GH", "GHA"),
76
77
  "greece": ("Greece", "GR", "GRC"),
78
+ "greenland": ("Greenland", "GL", "GRL"),
77
79
  "guam": ("Guam", "GU", "GUM", "HolidaysGU"),
78
80
  "guatemala": ("Guatemala", "GT", "GUA"),
79
81
  "honduras": ("Honduras", "HN", "HND"),
@@ -178,6 +180,11 @@ FINANCIAL: RegistryDict = {
178
180
  "ny_stock_exchange": ("NewYorkStockExchange", "NYSE", "XNYS"),
179
181
  }
180
182
 
183
+ # A re-entrant lock. Once a thread has acquired a re-entrant lock,
184
+ # the same thread may acquire it again without blocking.
185
+ # https://docs.python.org/3/library/threading.html#rlock-objects
186
+ IMPORT_LOCK = RLock()
187
+
181
188
 
182
189
  class EntityLoader:
183
190
  """Country and financial holidays entities lazy loader."""
@@ -223,7 +230,10 @@ class EntityLoader:
223
230
  def get_entity(self) -> Optional[HolidayBase]:
224
231
  """Return lazy-loaded entity."""
225
232
  if self.entity is None:
226
- self.entity = getattr(importlib.import_module(self.module_name), self.entity_name)
233
+ # Avoid deadlock due to importlib.import_module not being thread-safe by caching all
234
+ # the first imports in a dedicated thread.
235
+ with IMPORT_LOCK:
236
+ self.entity = getattr(importlib.import_module(self.module_name), self.entity_name)
227
237
 
228
238
  return self.entity
229
239
 
holidays/utils.py CHANGED
@@ -261,7 +261,7 @@ def financial_holidays(
261
261
  raise NotImplementedError(f"Financial market {market} not available")
262
262
 
263
263
 
264
- def CountryHoliday(
264
+ def CountryHoliday( # noqa: N802
265
265
  country: str,
266
266
  subdiv: Optional[str] = None,
267
267
  years: Optional[Union[int, Iterable[int]]] = None,
@@ -9,6 +9,7 @@ Alejandro Antunes
9
9
  Alexander Schulze
10
10
  Alexandre Carvalho
11
11
  Anders Wenhaug
12
+ Andrei Klimenko
12
13
  Andres Marrugo
13
14
  Anthony Rose
14
15
  Anton Daitche
@@ -52,6 +53,7 @@ Heikki Orsila
52
53
  Henrik Sozzi
53
54
  Hugh McNamara
54
55
  Hugo van Kemenade
56
+ Isabelle COWAN-BERGMAN
55
57
  Jacky Han
56
58
  Jacob Punter
57
59
  Jaemin Kim
@@ -124,6 +126,7 @@ Simon Gurcke
124
126
  Sugato Ray
125
127
  Sylvain Pasche
126
128
  Sylvia van Os
129
+ Søren Klintrup
127
130
  Takeshi Osoekawa
128
131
  Tasnim Nishat Islam
129
132
  Tewodros Meshesha
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: holidays
3
- Version: 0.49
3
+ Version: 0.51
4
4
  Summary: Generate and work with holidays in Python
5
5
  Author-email: Maurizio Montel <dr.prodigy.github@gmail.com>
6
6
  Maintainer-email: Arkadii Yakovets <ark@cho.red>, Serhii Murza <jhellico@gmail.com>
@@ -156,13 +156,13 @@ Quick Start
156
156
  from datetime import date
157
157
  import holidays
158
158
 
159
- us_holidays = holidays.US() # this is a dict
159
+ us_holidays = holidays.US() # this is a dict-like object
160
160
  # the below is the same, but takes a string:
161
- us_holidays = holidays.country_holidays('US') # this is a dict
161
+ us_holidays = holidays.country_holidays('US') # this is a dict-like object
162
162
 
163
- nyse_holidays = holidays.NYSE() # this is a dict
163
+ nyse_holidays = holidays.NYSE() # this is a dict-like object
164
164
  # the below is the same, but takes a string:
165
- nyse_holidays = holidays.financial_holidays('NYSE') # this is a dict
165
+ nyse_holidays = holidays.financial_holidays('NYSE') # this is a dict-like object
166
166
 
167
167
  date(2015, 1, 1) in us_holidays # True
168
168
  date(2015, 1, 2) in us_holidays # False
@@ -199,7 +199,7 @@ Available Countries
199
199
  .. _ISO 639-1 code: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
200
200
  .. _ISO 639-2 code: https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
201
201
 
202
- We currently support 147 country codes. The standard way to refer to a country
202
+ We currently support 148 country codes. The standard way to refer to a country
203
203
  is by using its `ISO 3166-1 alpha-2 code`_, the same used for domain names, and
204
204
  for a subdivision its `ISO 3166-2 code`_. Some countries have common or foreign
205
205
  names or abbreviations as aliases for their subdivisions. These are defined in
@@ -271,7 +271,7 @@ All other default values are highlighted with bold:
271
271
  * - Aruba
272
272
  - AW
273
273
  -
274
- - en_US, nl, **pap**, uk
274
+ - en_US, nl, **pap_AW**, uk
275
275
  -
276
276
  * - Australia
277
277
  - AU
@@ -416,7 +416,7 @@ All other default values are highlighted with bold:
416
416
  * - Curacao
417
417
  - CW
418
418
  -
419
- - en_US, nl, **pap**, uk
419
+ - en_US, nl, **pap_CW**, uk
420
420
  -
421
421
  * - Cyprus
422
422
  - CY
@@ -492,7 +492,7 @@ All other default values are highlighted with bold:
492
492
  - GE
493
493
  -
494
494
  - en_US, **ka**, uk
495
- -
495
+ - GOVERNMENT
496
496
  * - Germany
497
497
  - DE
498
498
  - States: BB, BE, BW, BY, BYP, HB, HE, HH, MV, NI, NW, RP, SH, SL, SN, ST, TH
@@ -508,6 +508,11 @@ All other default values are highlighted with bold:
508
508
  -
509
509
  - **el**, en_US, uk
510
510
  - HALF_DAY
511
+ * - Greenland
512
+ - GL
513
+ -
514
+ - da, en_US, **kl**
515
+ - OPTIONAL
511
516
  * - Guam
512
517
  - GU
513
518
  - Can also be loaded as country US, subdivision GU
@@ -540,7 +545,7 @@ All other default values are highlighted with bold:
540
545
  -
541
546
  * - India
542
547
  - IN
543
- - States: AN, AP, AR, AS, BR, CG, CH, DD, DH, DL, GA, GJ, HP, HR, JH, JK, KA, KL, LA, LD, MH, ML, MN, MP, MZ, NL, OR, PB, PY, RJ, SK, TN, TR, TS, UK, UP, WB
548
+ - States: AN, AP, AR, AS, BR, CG, CH, DH, DL, GA, GJ, HP, HR, JH, JK, KA, KL, LA, LD, MH, ML, MN, MP, MZ, NL, OD, PB, PY, RJ, SK, TN, TR, TS, UK, UP, WB
544
549
  -
545
550
  -
546
551
  * - Indonesia