holidays 0.49__py3-none-any.whl → 0.50__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 (38) hide show
  1. holidays/__init__.py +12 -1
  2. holidays/countries/__init__.py +1 -0
  3. holidays/countries/botswana.py +19 -9
  4. holidays/countries/chile.py +14 -11
  5. holidays/countries/georgia.py +17 -1
  6. holidays/countries/greenland.py +96 -0
  7. holidays/countries/isle_of_man.py +3 -8
  8. holidays/countries/italy.py +161 -129
  9. holidays/countries/japan.py +38 -30
  10. holidays/countries/jersey.py +9 -7
  11. holidays/countries/monaco.py +4 -6
  12. holidays/countries/russia.py +18 -4
  13. holidays/countries/switzerland.py +16 -14
  14. holidays/deprecation.py +33 -0
  15. holidays/locale/da/LC_MESSAGES/GL.mo +0 -0
  16. holidays/locale/da/LC_MESSAGES/GL.po +91 -0
  17. holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
  18. holidays/locale/en_US/LC_MESSAGES/GE.po +8 -4
  19. holidays/locale/en_US/LC_MESSAGES/GL.mo +0 -0
  20. holidays/locale/en_US/LC_MESSAGES/GL.po +92 -0
  21. holidays/locale/en_US/LC_MESSAGES/RU.mo +0 -0
  22. holidays/locale/en_US/LC_MESSAGES/RU.po +11 -2
  23. holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
  24. holidays/locale/ka/LC_MESSAGES/GE.po +8 -4
  25. holidays/locale/kl/LC_MESSAGES/GL.mo +0 -0
  26. holidays/locale/kl/LC_MESSAGES/GL.po +91 -0
  27. holidays/locale/ru/LC_MESSAGES/RU.mo +0 -0
  28. holidays/locale/ru/LC_MESSAGES/RU.po +11 -2
  29. holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
  30. holidays/locale/uk/LC_MESSAGES/GE.po +8 -4
  31. holidays/observed_holiday_base.py +42 -25
  32. holidays/registry.py +11 -1
  33. {holidays-0.49.dist-info → holidays-0.50.dist-info}/AUTHORS +3 -0
  34. {holidays-0.49.dist-info → holidays-0.50.dist-info}/METADATA +8 -3
  35. {holidays-0.49.dist-info → holidays-0.50.dist-info}/RECORD +38 -30
  36. {holidays-0.49.dist-info → holidays-0.50.dist-info}/LICENSE +0 -0
  37. {holidays-0.49.dist-info → holidays-0.50.dist-info}/WHEEL +0 -0
  38. {holidays-0.49.dist-info → holidays-0.50.dist-info}/top_level.txt +0 -0
@@ -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
 
@@ -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.50
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>
@@ -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
@@ -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
@@ -1,11 +1,12 @@
1
- holidays/__init__.py,sha256=ACNf-SAh329_J-3uN5iouaH821tgXSt7UfVyywzyPWY,805
1
+ holidays/__init__.py,sha256=QY7YWKwKaAHxMh3uyqHI45eABIP1oQYHu89EvJ6DCE0,1063
2
2
  holidays/constants.py,sha256=vlbI7o6EJ_jNtfeOik-c6_aRJf6aOEUPoeiPGRUVFbI,1172
3
+ holidays/deprecation.py,sha256=8Lepa1Pb9zlI8TCod45zsdcggvanfhcrd9spb9FrSPM,1677
3
4
  holidays/helpers.py,sha256=hbrulRrb4YXd21kZEn78fbE4mLyhlBFuEuQDlkk-pr4,1445
4
5
  holidays/holiday_base.py,sha256=qW0FRwl42JsI4ZRp5tdCaB5p6BUZeRyQCnu48PDNd_A,45688
5
6
  holidays/mixins.py,sha256=LdVii_aKoXY_lldW3ok2CeCnmfxZ0WHLD5ZshXtQRWs,1139
6
- holidays/observed_holiday_base.py,sha256=WtGSQjhgZdyPk247fPzysPRM1PY67iLu9v6DvP1-UXw,8169
7
+ holidays/observed_holiday_base.py,sha256=6Q7Np8yP_70PTZA3fjZ7H_6ft2lYYuIGtYPjs_8Ocao,8963
7
8
  holidays/py.typed,sha256=EUaxvGLCfdycmOVEDt64l9fUKWuyPBxOEQWGfnMnrxE,171
8
- holidays/registry.py,sha256=BAkQ1_3Qh9SV2vylLiDzyR2x0k9hIoV4_3QaA38arTM,10997
9
+ holidays/registry.py,sha256=DF66K--49fP6qwU8FFe9_7guZS2cUXXNhr-O4PHLeaY,11468
9
10
  holidays/utils.py,sha256=QC9X32LriN2zhzcf6p97AUqUh1OJ1bFo32sIc2sm_m0,12846
10
11
  holidays/calendars/__init__.py,sha256=ppwFs1vzZQfn_MS5MV9wUKqv580pvseeJRBhooOUUlQ,1296
11
12
  holidays/calendars/buddhist.py,sha256=OgZTOVexRzdEdiOZc9R-83KP6klwzs6QWvm35gCLIso,11364
@@ -19,7 +20,7 @@ holidays/calendars/julian.py,sha256=9bQCdrWliTNaHoTVU4vSB3PXz5pn5Htj4abVsWG863g,
19
20
  holidays/calendars/julian_revised.py,sha256=6bVn_BBbgIdbqwyZu7ffVteMr8BcMDT9_jtgZEDJORQ,586
20
21
  holidays/calendars/persian.py,sha256=d22dI7C547qXLT8c1V2QW8BcvC4G-4SRO3wbxQggVsE,1928
21
22
  holidays/calendars/thai.py,sha256=Sohsy4wv1HBE6df7atibilKe7YOfXt96VLMJmy_boKA,24058
22
- holidays/countries/__init__.py,sha256=zXL6WyRQDDzeQRnzNE4_ZpQBOQIA3UTztUdpfb9abSw,6667
23
+ holidays/countries/__init__.py,sha256=m0v0wgWOW-sTlICFr0y-hEVdP0O_sfKPc5Whg0-wsqs,6709
23
24
  holidays/countries/albania.py,sha256=n7R-VXyF1se4XwGyQjVPC2wOPV_EVEQS1931cgNuHUk,3427
24
25
  holidays/countries/algeria.py,sha256=hoxAb_Rxiqiwy6h3Bm1RHnfnbRY1bGql93lqhzVO6qc,2939
25
26
  holidays/countries/american_samoa.py,sha256=l_S70nMRqOAMoR9GOmNVrBgJDRMI_GHm1y3Q3rADQYc,1334
@@ -40,7 +41,7 @@ holidays/countries/belgium.py,sha256=HVVvDwCGfrSb2Fi9oAssR-L_inP0K7AHoe7ZKepmO9c
40
41
  holidays/countries/belize.py,sha256=lcrM4fDEZuDNxTplb4qawfsBOwfc7WN9jSVnJQyn3Vo,4034
41
42
  holidays/countries/bolivia.py,sha256=og3m749HyKaWQ1t4W_uWI1pMvG_918UalqmIlW5wIko,5759
42
43
  holidays/countries/bosnia_and_herzegovina.py,sha256=xqTad5zrVeHnSnTfsmE5MSruskrNdipHWeA1jkD5qHQ,9695
43
- holidays/countries/botswana.py,sha256=P7Z5cFAtLl4m_U3VBLqwxi4BOl_gtCSjey7kIgckTxY,3105
44
+ holidays/countries/botswana.py,sha256=GiKfuB62CFwzZti0NGGt9TK4uphjrE9elY1qKXhPmWI,3159
44
45
  holidays/countries/brazil.py,sha256=_XnHp3aabnOafbRc7bHjd7qwe7nl97bPIve-o9CEVjE,12025
45
46
  holidays/countries/brunei.py,sha256=4e_eE9zKa5s8anQOBBTIiK34DymX0H_2AhZkL3sE5yQ,11378
46
47
  holidays/countries/bulgaria.py,sha256=q2Q_2ijtUtD7Gc8w2_DM3yWMGqd8aV8zJgOFVtNBH3c,5453
@@ -50,7 +51,7 @@ holidays/countries/cambodia.py,sha256=uAoEHE31-eEHWB1pnF-zMtqt_J8B-Dnl4FfL9edf5r
50
51
  holidays/countries/cameroon.py,sha256=s_3R7GmDZojfvWY8Bpwy_rLe0BNghe8N7AO5ffKNL0Y,5180
51
52
  holidays/countries/canada.py,sha256=YP1nXLm_oGX4E3zBbIVGyUHjY0P_zqyVLfzK5mx1uPg,17856
52
53
  holidays/countries/chad.py,sha256=vTXNNnZ8BpxypWf9bNN02EizkLw_yACPf7uCzm5sfQI,3847
53
- holidays/countries/chile.py,sha256=1wAdVbbfmd6GAo5KcGCvwbLxRuQHs4Bw1R90bhp6Q7s,7907
54
+ holidays/countries/chile.py,sha256=sehN2n0LRxYe3XgUlO6To_hP1duwzfEFfdLzkNJe0CA,7930
54
55
  holidays/countries/china.py,sha256=ViMYe59XOIuUBJZat0CNNpqz2A4VOqdPgtWjCjk5iEw,19252
55
56
  holidays/countries/colombia.py,sha256=hsywP1p_8hdkW5vvdls3cERdPoZWf6OoNfg-2GTbVfc,4445
56
57
  holidays/countries/costa_rica.py,sha256=jiHfPfSYSd6Vd7-iYNbW1mmpObJ9FUYgEg-u21YvQbc,4413
@@ -71,10 +72,11 @@ holidays/countries/ethiopia.py,sha256=jRULgq4W6fTEYmpZBVKFEmXTcMkvAUpxHcu3p0Wf-9
71
72
  holidays/countries/finland.py,sha256=g4ygDVdmIMmymq9PGdby3VAzMXZsO9HuaqpRsYJxcD8,3005
72
73
  holidays/countries/france.py,sha256=-wN7zPaCzMuimFCBzPh3IbKEb7dM-UQ95NA8JGrowCA,7827
73
74
  holidays/countries/gabon.py,sha256=TPXtruJVk6USEQ7WQ7OZR9xdh0iME7woiFzN2U7eDss,3981
74
- holidays/countries/georgia.py,sha256=sOigkiz8jMf64ycNIEf24G9uFq9qSW8GA5IjodZ2CCM,3337
75
+ holidays/countries/georgia.py,sha256=4p6ZXfHnh8142JWbXCn8VJLTbJKQSiDITHpdMZxGmVM,3946
75
76
  holidays/countries/germany.py,sha256=MSkci8ShdCOou-TLrGkhorqK9GFKjN3S_UBY74hMSEA,9492
76
77
  holidays/countries/ghana.py,sha256=4JxcMnlUp7L9c-CJOHrWdDFDJomFJXipz1poIjXZbiA,3131
77
78
  holidays/countries/greece.py,sha256=9IeTTmP2XBgWtrAozWa7FfqYw0kAUHYwYk9320NhdrU,3564
79
+ holidays/countries/greenland.py,sha256=r97r3cGESncaOK0vBqnPsPY96eir90vnu9tENJvl_LI,2870
78
80
  holidays/countries/guam.py,sha256=m0_KYRp4eou-DDXcMD-gZSYln8mTlzBL_7lblhlb6t4,1325
79
81
  holidays/countries/guatemala.py,sha256=5Apehk1KSFgAxUE5tgz4RLjMdGtu4GsNIzmGHtduPaU,2952
80
82
  holidays/countries/honduras.py,sha256=S76d3ewTbfMsTzov5Vmlfwoyc1L-eGRxnfblhriUQ4Y,2630
@@ -85,12 +87,12 @@ holidays/countries/india.py,sha256=YY5LQZhKkBAHD-yU_oShsgOkBgWwNaQmtlT_UbvhHMY,9
85
87
  holidays/countries/indonesia.py,sha256=w9HftOtnWZD7UqbSe3pex8QHraambTQ6ihmuIWbzd00,11298
86
88
  holidays/countries/iran.py,sha256=aE2gZLecMgeaCuI-iahelp3y3Hb4jVZZRRuenHb4elA,4116
87
89
  holidays/countries/ireland.py,sha256=Qq6pHFucF9p-tKY_FlpIavW43J9GwTob2RBDUe5JT1Q,3145
88
- holidays/countries/isle_of_man.py,sha256=eKqIYzJX7NwX_iimp2n9UVKIFwPGgj7WbVmNpD-3uCg,2319
90
+ holidays/countries/isle_of_man.py,sha256=kYXv2Ga9FZwhmNsilrphPsSOhGNBghMaDAVwxY2CEm8,2204
89
91
  holidays/countries/israel.py,sha256=MBoAUNA3b9aUDObJaEIDi9W0VwYBELH47OkdW9X__70,7032
90
- holidays/countries/italy.py,sha256=TymNVQA3eVFjNhVJ5GuARfR-Fi7l9Ew41GVI_9lYz5s,17242
92
+ holidays/countries/italy.py,sha256=_0FrYDL5oj-k0RVQCzF3QgeCVRp_vDB0d_qvkBe0ZZk,19462
91
93
  holidays/countries/jamaica.py,sha256=BKFm4xRUYvYVzIYkWSi77YzPlGW86wgX6iRoVr5ebEQ,2384
92
- holidays/countries/japan.py,sha256=UC-dm3zTZj_ByucprBbSZfoFDJzG5oBR4DdaK_tiCck,8719
93
- holidays/countries/jersey.py,sha256=uEpHYe_aEsFVzNLwfiRsfE1sREUmllKmnB3sG4lSmZw,9391
94
+ holidays/countries/japan.py,sha256=8LWkQLjght7m7fqzXwz703AcDzw3eYlUp4VSiMo7j9k,8764
95
+ holidays/countries/jersey.py,sha256=RHbQ2AgdySA6y4uV19OSTABpFZds7HLUCDFelLWLQ6E,9390
94
96
  holidays/countries/jordan.py,sha256=pFx-NiH-Lkyk9Znh5z9gXujmJ9TtGuBV0Q76BrXUxcg,2688
95
97
  holidays/countries/kazakhstan.py,sha256=JZyPZ2hrjI-lhVAjhJDsz88DcmndNxZVZyyA7VOTjIQ,4084
96
98
  holidays/countries/kenya.py,sha256=zpfWq-u3-_IeKpi3mwSprUimI9J6VH4uvP-gdYcUxYA,3245
@@ -110,7 +112,7 @@ holidays/countries/malta.py,sha256=Sf4JFSeDtCZ8sJz3HXaQP6oyl6lgxhxQCX8XnvxWt68,4
110
112
  holidays/countries/marshall_islands.py,sha256=vMpcBYHqM5wF6SItTXCW6PceT7-dHPUD5wBj-U-3KqQ,3256
111
113
  holidays/countries/mexico.py,sha256=gpUwBDdHrZ_0kUzM-4-h_RsZpeG1pQo8D7kF8IdPuhs,3206
112
114
  holidays/countries/moldova.py,sha256=EEX7CydvPyLaE1Ry4JSCpIyq2R__HRdH3BYMcar1_GY,3337
113
- holidays/countries/monaco.py,sha256=gpG_BS67XJnZ6F2_ahZ-oLXIog-hEuhkLdK4Xk06SxA,3055
115
+ holidays/countries/monaco.py,sha256=b2Mk6LeKO-CT9OfGhL3mo8ho3d38krwlfSJH9Kbf-D0,3027
114
116
  holidays/countries/montenegro.py,sha256=FIolfCyQJbnLNV8rDisfr1ZZv6DE6Q5hb0pjn_RSuN8,2741
115
117
  holidays/countries/morocco.py,sha256=HXBkGgAeboQj4PQ0RW--MiVTmydSNOukS6AtAOKTVB0,3558
116
118
  holidays/countries/mozambique.py,sha256=As5VAgFnRw4pq4opWPqRFlWCYNlgGw6lQHjNlrzCNK0,2489
@@ -133,7 +135,7 @@ holidays/countries/poland.py,sha256=QHq_U-5aqINTc4-1JJMWkuPYqGKT8v0P0zagJDCGd64,
133
135
  holidays/countries/portugal.py,sha256=puBPmyfX4bjQTwRC-qIW5PauetTcMYWDBCUQqseFVsA,8941
134
136
  holidays/countries/puerto_rico.py,sha256=SYUBJba6oH4kkMlgPXcP9wLq0O57pHfZA_QAHnU_Lu4,1331
135
137
  holidays/countries/romania.py,sha256=ejXD5d-Fl49PxlI89X8RursNPm4aDG5gf87RbtYIIWA,2963
136
- holidays/countries/russia.py,sha256=-AbOxOYnm1JRQlmpN3qB0A6kjSNJbLhqF2nnh7ZH3hY,4502
138
+ holidays/countries/russia.py,sha256=dfXYcjOncpK6LdCCnBpZURC_5ohhj2yWSoiZojHLZsg,4932
137
139
  holidays/countries/san_marino.py,sha256=c78kDQMah8x8EFtrrP79FPLeNH1HT4owOMSzeZSGW1I,2658
138
140
  holidays/countries/saudi_arabia.py,sha256=5DxUAwYV-eFBPhAD61oHXdk66ehBTji2oK-_kwG-1uw,4988
139
141
  holidays/countries/serbia.py,sha256=N5b36EkHxD5bsTkfOguJRKbgUaUWN9sT_AHXaaG37zU,2845
@@ -145,7 +147,7 @@ holidays/countries/south_africa.py,sha256=PCcG5AncbK34VWoa6Bz4ZCPyluFo4cQJqHCyIi
145
147
  holidays/countries/south_korea.py,sha256=_r5IIxQi9-es21wb0-2JlNjPhMwDTmmTC78fGksox_0,25077
146
148
  holidays/countries/spain.py,sha256=2iqWkjbXyvRdeGOI8DbpdCgR-3_hGuOLAE6FJqUkqpg,27634
147
149
  holidays/countries/sweden.py,sha256=KbRo5dpHTLMICbSCpsGo84wXeKIpaD_P_zGWq0hGRIY,4337
148
- holidays/countries/switzerland.py,sha256=qo_FIiN7Kz8l9bLYBUhKaR56zUqFPkAigDyE0WqBR_E,16195
150
+ holidays/countries/switzerland.py,sha256=MI028AzTtpzxRKfSD6_HWFRBwZM3STpk8v2uEswcuNY,16127
149
151
  holidays/countries/taiwan.py,sha256=yCytErpOLrWRgao9OIPkP2wgTB8H-pIyUR8zjKLTxxc,6822
150
152
  holidays/countries/tanzania.py,sha256=9yuhe3szDsGWJL0fZzYMozsQPnfqOrt2LFxAbVKTvxg,10389
151
153
  holidays/countries/thailand.py,sha256=EjbGg-Xk2p5VgZ7PDho-i5ljMK1Vp_8m6hJZRDPJasA,38821
@@ -221,6 +223,8 @@ holidays/locale/cs/LC_MESSAGES/CZ.mo,sha256=NlD_obAeIucOuzxHjow5Vq7CBYyXeIERB_pV
221
223
  holidays/locale/cs/LC_MESSAGES/CZ.po,sha256=OaQx0jpGjxtz9epf8DpOSQlbsnXYBolN-O0ubQfeDVk,2140
222
224
  holidays/locale/da/LC_MESSAGES/DK.mo,sha256=_UnpkP4J6lzQP4ZZTelSDcE5n4y1ZVqZ1KJ1qjTSzvw,422
223
225
  holidays/locale/da/LC_MESSAGES/DK.po,sha256=9vUBXdQYG82tsGMzgAriMWCWi4kXxvQilMG6PbM4xF8,1785
226
+ holidays/locale/da/LC_MESSAGES/GL.mo,sha256=Y9VwiMvoK-2UsxocaXJt8EMdkqr9q7BsF1TfIxLEbJA,1180
227
+ holidays/locale/da/LC_MESSAGES/GL.po,sha256=tJ2_w7PttPrYOu1ldfYLv-KuftgjagKKPuy24T7Yg-o,2098
224
228
  holidays/locale/de/LC_MESSAGES/AT.mo,sha256=F8348fmrxoQtKmHIkE2YHZWYh3Ad3ICqASiawylabrs,468
225
229
  holidays/locale/de/LC_MESSAGES/AT.po,sha256=0hizCA36uK4ZE78Jhppkl9ZvOdyWiY3MAFKk9JjJNDM,2201
226
230
  holidays/locale/de/LC_MESSAGES/BE.mo,sha256=OuMOcok3GcE_66griEvZfMWd4DjHO6wpEoGdDSQh6fU,1161
@@ -315,8 +319,10 @@ holidays/locale/en_US/LC_MESSAGES/FI.mo,sha256=MnEQogxG1Y36tR6Hr-qkVfxu5hpq2X81A
315
319
  holidays/locale/en_US/LC_MESSAGES/FI.po,sha256=a5owF9IJLrmIJ0ZHrS_C5Cs75DyFKp95Qvh455msKYo,2046
316
320
  holidays/locale/en_US/LC_MESSAGES/FR.mo,sha256=kLFPSjPRYKsQjrnZVak_K3I2WzEaQz5pcEAJmKPqKKw,1592
317
321
  holidays/locale/en_US/LC_MESSAGES/FR.po,sha256=e7LLqd2X3jLVpBZCDO6uGigH5GiEMa69pbnHS5fCq-Q,2695
318
- holidays/locale/en_US/LC_MESSAGES/GE.mo,sha256=99KRMOfL7mb9Ho8kODiA8abEnXKJy5F759PZvegqgwE,1713
319
- holidays/locale/en_US/LC_MESSAGES/GE.po,sha256=C8OGVLkZjcWIaEOBymoEHR8D30HsoMJiri84Xw7Ojl8,2712
322
+ holidays/locale/en_US/LC_MESSAGES/GE.mo,sha256=bIthFw-vVWWFxPgAsbRNfoLeTjpyXhmVS8QhuBOMoDs,1912
323
+ holidays/locale/en_US/LC_MESSAGES/GE.po,sha256=KwP9SQxpArsl-GCW9voKSY3GVl8u8JXQef0NiSPBWyU,2964
324
+ holidays/locale/en_US/LC_MESSAGES/GL.mo,sha256=_RFgXsP17b-EBmMQgtU7_nxSKaxqPxrdkwFREm62GT8,1249
325
+ holidays/locale/en_US/LC_MESSAGES/GL.po,sha256=RqhDmDrAkId8HvMnLvByUTEzDsd9sltyA1pfF_Drf8Q,2190
320
326
  holidays/locale/en_US/LC_MESSAGES/GR.mo,sha256=DBjqGY1SVRwWRJjpWDXdeDU82x7Q06JdMbR7Zf33uk0,1461
321
327
  holidays/locale/en_US/LC_MESSAGES/GR.po,sha256=ioie5YG0mikpWJ-mPZivqlc19YrgZLkKyeMt4Jed-N8,2390
322
328
  holidays/locale/en_US/LC_MESSAGES/GT.mo,sha256=WxVw9SlCtbvQMmfNC9W2bq6sjQSBlErTfAQarf5iV7g,992
@@ -389,8 +395,8 @@ holidays/locale/en_US/LC_MESSAGES/RO.mo,sha256=cTrn8JSAAxaItwdjYUpqk8twLJY1FhgEC
389
395
  holidays/locale/en_US/LC_MESSAGES/RO.po,sha256=-9UiuR3qvbpL-4-b5XtN--ubr0BtJf3jpdF15P5sTvw,1975
390
396
  holidays/locale/en_US/LC_MESSAGES/RS.mo,sha256=0FUq0p7LcDNxH7ZnDmUnPNGMcRim7frbh9wv9SoZkrg,1057
391
397
  holidays/locale/en_US/LC_MESSAGES/RS.po,sha256=F8TtG_TqNwWV2jA6iCrDptLNIWzqHTvEfY0P9xartRI,1869
392
- holidays/locale/en_US/LC_MESSAGES/RU.mo,sha256=6kzvDT6LzONc34KITr9U4ywpD2UEZ3MrYsVh9O86UgM,1750
393
- holidays/locale/en_US/LC_MESSAGES/RU.po,sha256=JhDH9TLtT1Y7XF-gMtiCdAkm7dn5wTEq5a5qsTJNcj8,2807
398
+ holidays/locale/en_US/LC_MESSAGES/RU.mo,sha256=VHHNPv5gj5yBEclzQvbB_L6ZQSBoOKPNaqWWp8Wea48,1876
399
+ holidays/locale/en_US/LC_MESSAGES/RU.po,sha256=WL_jGqDTue-ASPdLbz-P1Pc1brPHEnmiXaB6feHR7l8,3029
394
400
  holidays/locale/en_US/LC_MESSAGES/SA.mo,sha256=H754ZFQMNs_kHSOih20AfuCqEEN0T9kKnmPZcC9d5Uo,973
395
401
  holidays/locale/en_US/LC_MESSAGES/SA.po,sha256=Y-JnwjFF1Ue8mlIxGe3QD3w3NSYz-2oS5XH4jmvjijs,1861
396
402
  holidays/locale/en_US/LC_MESSAGES/SC.mo,sha256=d3Ru1JmXjsHN4QaR34ZIsI1txlzjYcIauMXNBcHFU3g,1673
@@ -497,8 +503,10 @@ holidays/locale/it/LC_MESSAGES/CH.mo,sha256=9AzczZUHStCx3hL4DYgEsdB2rI6LbDdhZXqX
497
503
  holidays/locale/it/LC_MESSAGES/CH.po,sha256=iYGsZgKEQnrG4GYOerZmxkRwCsjnyk9-DZdvAyXysPw,2785
498
504
  holidays/locale/ja/LC_MESSAGES/JP.mo,sha256=H-w9pkUT62MzoK-piWS-jGZFy37LXdsNVlcPEb_jQE0,458
499
505
  holidays/locale/ja/LC_MESSAGES/JP.po,sha256=IArMuhfddTLxk2hXlZaKHBvrGOoszD5pNgC9oe8iQTk,2460
500
- holidays/locale/ka/LC_MESSAGES/GE.mo,sha256=UjQ_nlez3kUtTJZYKlQv8VCjUcIcQ5sb1h1oeJMWj2o,465
501
- holidays/locale/ka/LC_MESSAGES/GE.po,sha256=RUqqtGhCEcgaLwaT2XIBoBXP1QU5-uqRJFzRrM08KHU,2402
506
+ holidays/locale/ka/LC_MESSAGES/GE.mo,sha256=Nn_m0HvEQXNXLicuUDfq6BAnJdsHuSMTryT2RomUoc0,467
507
+ holidays/locale/ka/LC_MESSAGES/GE.po,sha256=fr1f_Slzo7CK9jrPRr0tZglAA4G2CibiAqkIoNIH-rY,2606
508
+ holidays/locale/kl/LC_MESSAGES/GL.mo,sha256=OWRBsj07Styq9UzV0CB2a89suEp9fJOs2LxxRSj9nBI,422
509
+ holidays/locale/kl/LC_MESSAGES/GL.po,sha256=kKSpnba4yzPygvQnaRB4I1RkEefJkDw1qAitM8WG7XY,1892
502
510
  holidays/locale/km/LC_MESSAGES/KH.mo,sha256=JN5mmNPbHEg7vyqLXCHaTs9FpD3Et_HRyWFBF5SAh8s,411
503
511
  holidays/locale/km/LC_MESSAGES/KH.po,sha256=_LKVeELh8HzbBbQRBWI0fneqB0tolEWnu3WS0p-xWkw,5047
504
512
  holidays/locale/ko/LC_MESSAGES/KR.mo,sha256=UiwZe87Av6hSe7yUQ_cj6zD4WAsIseeRxQlaMOpD4h8,458
@@ -547,8 +555,8 @@ holidays/locale/ro/LC_MESSAGES/MD.mo,sha256=XBzje_JQ-2r21kPsBxUsEM2HfqOsOGfTqkpa
547
555
  holidays/locale/ro/LC_MESSAGES/MD.po,sha256=Odet7qQZ2HVoKEpRluNpnKBe2DlTsjGdpSNLuvhHlXo,2205
548
556
  holidays/locale/ro/LC_MESSAGES/RO.mo,sha256=EZTbUZnKjogk_u4QGF0sqU0FrrhGHjExho37Q2LTJO4,520
549
557
  holidays/locale/ro/LC_MESSAGES/RO.po,sha256=Pls2VBX7CYc85NhJ2L-wrV9c7dJSXQW71B2jT4slmD4,1806
550
- holidays/locale/ru/LC_MESSAGES/RU.mo,sha256=qfIRLHtPV7QrcufAQwtu9rdcj0lRXxREgrGOR1z8rDk,538
551
- holidays/locale/ru/LC_MESSAGES/RU.po,sha256=DS1VoA_OG_sIu7G3akSzB8gZ8hCtV32a7qyiZ6KKJ9E,2499
558
+ holidays/locale/ru/LC_MESSAGES/RU.mo,sha256=5vY3AJo3xD4U5ni2oiLy1_8SpzXeuzmbyNvqTyb4yw8,538
559
+ holidays/locale/ru/LC_MESSAGES/RU.po,sha256=RBMwamZ4aPsMa9Q5qeM3yBl3V4Yv_SAEA2gb7_lKBN8,2684
552
560
  holidays/locale/sk/LC_MESSAGES/CZ.mo,sha256=UuOIbOFg5I57UemXDLXTFeyloWku_JRByJ8StNkgnlI,1564
553
561
  holidays/locale/sk/LC_MESSAGES/CZ.po,sha256=X5COR_byw5Pe062jqHzSLzOxbF2433vRU9IPjcqkflI,2642
554
562
  holidays/locale/sk/LC_MESSAGES/SK.mo,sha256=LuH0Hwh--YEq316u15Q_orQZ23hVDWWqZUk5pA03xHA,493
@@ -639,8 +647,8 @@ holidays/locale/uk/LC_MESSAGES/FI.mo,sha256=KodnVQGT6Br8B5jg4Kcd0Oapq_gqgj1UHWS-
639
647
  holidays/locale/uk/LC_MESSAGES/FI.po,sha256=VIfFSE7PVGerSKHYsdKck_Yah7c1l-xdHmwzbUWDPOE,2362
640
648
  holidays/locale/uk/LC_MESSAGES/FR.mo,sha256=NujRMDSHkA2X60bZvug_Ur_2P5J9kxDRrA4SFpRzNcI,2054
641
649
  holidays/locale/uk/LC_MESSAGES/FR.po,sha256=znMmPFS8YsUlqY0TfmVnk0-hLJKlTrgQiWYzAvJjO_w,3154
642
- holidays/locale/uk/LC_MESSAGES/GE.mo,sha256=OuDYLDRzPLK3TReDnCu3ql1Ekw2i4RvXqWVTae1tpGI,2094
643
- holidays/locale/uk/LC_MESSAGES/GE.po,sha256=NiBGhaKUsficnoWgfC28fmuoH4qzWDKzlTyYd5gvtAA,3090
650
+ holidays/locale/uk/LC_MESSAGES/GE.mo,sha256=XiUh0sZnVudnV8HdQVM4-Cyhf4l6_Q8tpR9WjXeO_AA,2321
651
+ holidays/locale/uk/LC_MESSAGES/GE.po,sha256=EOE7qeEBgFL-edTnjwG6smElh9jbx0btFb8O_sNkvA0,3370
644
652
  holidays/locale/uk/LC_MESSAGES/GR.mo,sha256=kdMXtQqk02uPBjiO5AE9jHZAMeYZVTYEnIp14oko_BY,1778
645
653
  holidays/locale/uk/LC_MESSAGES/GR.po,sha256=Mzsjzkk6cbmWnNbPlGKgU2aLov_AoUi8BcxI4kO1fQ4,2704
646
654
  holidays/locale/uk/LC_MESSAGES/HN.mo,sha256=O6u-6nRRAXE26QuELCO-3LR-U9rVfwlU1GfWS19Wb0A,1268
@@ -715,9 +723,9 @@ holidays/locale/zh_TW/LC_MESSAGES/CN.mo,sha256=F6cp16LNz1N4eRH6X9i0HKYTeJ5qMpdUU
715
723
  holidays/locale/zh_TW/LC_MESSAGES/CN.po,sha256=ulWILGK_yCghW7AnAw07Kgv5_9J9P5vf2dGj2SpbpKc,2524
716
724
  holidays/locale/zh_TW/LC_MESSAGES/TW.mo,sha256=S4I-U8VKhJqcZ5fxoDWxG--qPL9TGacOgU6oaXNKxxo,461
717
725
  holidays/locale/zh_TW/LC_MESSAGES/TW.po,sha256=uDCu7osDGOu6SmeD3qFBlV4uy0bUknEXxR43o4binl8,1788
718
- holidays-0.49.dist-info/AUTHORS,sha256=ObOZOF7A0G_sl-8gMI8RuPEfyBKcKk1bDePE_fwgCXs,2071
719
- holidays-0.49.dist-info/LICENSE,sha256=jD0zUrtvmPyeu89b7hURSzFkPsNrNjD3--XRoT3Iwt8,1241
720
- holidays-0.49.dist-info/METADATA,sha256=qgWMzeU6mmbhLQk1oAc_NBN6jtmXibCtJdFqKjFwWA8,23552
721
- holidays-0.49.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
722
- holidays-0.49.dist-info/top_level.txt,sha256=VbGrOCSM-V2kztuL_7CoDKLOgzOc85ueFsng7VYerrQ,9
723
- holidays-0.49.dist-info/RECORD,,
726
+ holidays-0.50.dist-info/AUTHORS,sha256=8ovkSU9RrxtX51mRi9Bq9T3ztJ7lrpETnkd0JwjAH1A,2126
727
+ holidays-0.50.dist-info/LICENSE,sha256=jD0zUrtvmPyeu89b7hURSzFkPsNrNjD3--XRoT3Iwt8,1241
728
+ holidays-0.50.dist-info/METADATA,sha256=GHcUEspAJ1B6QVeiZeU1PRdp_UQtXkeA-mrDJJWZs0I,23638
729
+ holidays-0.50.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
730
+ holidays-0.50.dist-info/top_level.txt,sha256=VbGrOCSM-V2kztuL_7CoDKLOgzOc85ueFsng7VYerrQ,9
731
+ holidays-0.50.dist-info/RECORD,,