pandas-market-calendars 5.1.0__py3-none-any.whl → 5.1.3__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 (49) hide show
  1. pandas_market_calendars/__init__.py +39 -39
  2. pandas_market_calendars/calendar_registry.py +58 -57
  3. pandas_market_calendars/calendar_utils.py +1151 -1151
  4. pandas_market_calendars/calendars/asx.py +100 -70
  5. pandas_market_calendars/calendars/bmf.py +225 -219
  6. pandas_market_calendars/calendars/bse.py +433 -425
  7. pandas_market_calendars/calendars/cboe.py +153 -149
  8. pandas_market_calendars/calendars/cme.py +417 -405
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +172 -172
  10. pandas_market_calendars/calendars/cme_globex_base.py +127 -119
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +166 -158
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +224 -216
  13. pandas_market_calendars/calendars/cme_globex_equities.py +131 -123
  14. pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -136
  15. pandas_market_calendars/calendars/cme_globex_fx.py +101 -101
  16. pandas_market_calendars/calendars/eurex.py +139 -131
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +106 -98
  18. pandas_market_calendars/calendars/hkex.py +437 -431
  19. pandas_market_calendars/calendars/ice.py +89 -81
  20. pandas_market_calendars/calendars/iex.py +163 -155
  21. pandas_market_calendars/calendars/jpx.py +125 -117
  22. pandas_market_calendars/calendars/lse.py +126 -118
  23. pandas_market_calendars/calendars/mirror.py +144 -144
  24. pandas_market_calendars/calendars/nyse.py +1462 -1466
  25. pandas_market_calendars/calendars/ose.py +124 -118
  26. pandas_market_calendars/calendars/sifma.py +391 -383
  27. pandas_market_calendars/calendars/six.py +144 -136
  28. pandas_market_calendars/calendars/sse.py +305 -315
  29. pandas_market_calendars/calendars/tase.py +232 -224
  30. pandas_market_calendars/calendars/tsx.py +193 -185
  31. pandas_market_calendars/class_registry.py +115 -115
  32. pandas_market_calendars/holidays/cme.py +385 -385
  33. pandas_market_calendars/holidays/cme_globex.py +214 -214
  34. pandas_market_calendars/holidays/cn.py +1476 -1476
  35. pandas_market_calendars/holidays/jp.py +401 -401
  36. pandas_market_calendars/holidays/jpx_equinox.py +506 -506
  37. pandas_market_calendars/holidays/nyse.py +1536 -1536
  38. pandas_market_calendars/holidays/oz.py +82 -63
  39. pandas_market_calendars/holidays/sifma.py +350 -350
  40. pandas_market_calendars/holidays/uk.py +186 -186
  41. pandas_market_calendars/holidays/us.py +376 -376
  42. pandas_market_calendars/market_calendar.py +1006 -1008
  43. {pandas_market_calendars-5.1.0.dist-info → pandas_market_calendars-5.1.3.dist-info}/METADATA +5 -4
  44. pandas_market_calendars-5.1.3.dist-info/RECORD +50 -0
  45. {pandas_market_calendars-5.1.0.dist-info → pandas_market_calendars-5.1.3.dist-info}/WHEEL +1 -1
  46. pandas_market_calendars-5.1.0.dist-info/RECORD +0 -50
  47. {pandas_market_calendars-5.1.0.dist-info → pandas_market_calendars-5.1.3.dist-info}/licenses/LICENSE +0 -0
  48. {pandas_market_calendars-5.1.0.dist-info → pandas_market_calendars-5.1.3.dist-info}/licenses/NOTICE +0 -0
  49. {pandas_market_calendars-5.1.0.dist-info → pandas_market_calendars-5.1.3.dist-info}/top_level.txt +0 -0
@@ -1,118 +1,124 @@
1
- from datetime import time
2
-
3
- from pandas.tseries.holiday import (
4
- AbstractHolidayCalendar,
5
- EasterMonday,
6
- GoodFriday,
7
- Holiday,
8
- )
9
- from pandas.tseries.offsets import Day, Easter
10
- from zoneinfo import ZoneInfo
11
-
12
- from pandas_market_calendars.market_calendar import MarketCalendar
13
-
14
- OSENewYearsDay = Holiday("New Year's Day", month=1, day=1)
15
-
16
- OSEWednesdayBeforeEaster = Holiday(
17
- "Wednesday before Easter", month=1, day=1, offset=[Easter(), Day(-4)]
18
- )
19
-
20
- OSEMaundyThursday = Holiday("Maundy Thursday", month=1, day=1, offset=[Easter(), Day(-3)])
21
-
22
- OSEGoodFriday = GoodFriday
23
-
24
- OSEEasterMonday = EasterMonday
25
-
26
- OSELabourDay = Holiday("Labour Day", month=5, day=1)
27
-
28
- OSEConstitutionDay = Holiday("Constitution Day", month=5, day=17)
29
-
30
- OSEWhitMonday = Holiday("Whit Monday", month=1, day=1, offset=[Easter(), Day(50)])
31
-
32
- OSEAscensionDay = Holiday("Ascension Day", month=1, day=1, offset=[Easter(), Day(39)])
33
-
34
- OSEChristmasEve = Holiday(
35
- "Christmas Eve",
36
- month=12,
37
- day=24,
38
- )
39
-
40
- OSEChristmasDay = Holiday("Christmas Day", month=12, day=25)
41
-
42
- OSEBoxingDay = Holiday("Boxing Day", month=12, day=26)
43
-
44
- OSENewYearsEve = Holiday("New Year's Eve", month=12, day=31)
45
-
46
-
47
- class OSEExchangeCalendar(MarketCalendar):
48
- """
49
- Exchange calendar for Oslo Stock Exchange
50
-
51
- Note these dates are only checked against 2017, 2018 and 2019
52
- https://www.oslobors.no/ob_eng/Oslo-Boers/About-Oslo-Boers/Opening-hours
53
-
54
- Opening times for the regular trading of equities (not including closing auction call)
55
- Open Time: 9:00 AM, CEST/EST
56
- Close Time: 4:20 PM, CEST/EST
57
-
58
- Regularly-Observed Holidays (not necessarily in order):
59
- - New Years Day
60
- - Wednesday before Easter (Half trading day)
61
- - Maundy Thursday
62
- - Good Friday
63
- - Easter Monday
64
- - Labour Day
65
- - Ascension Day
66
- - Constitution Day
67
- - Whit Monday
68
- - Christmas Eve
69
- - Christmas Day
70
- - Boxing Day
71
- - New Year's Eve
72
- """
73
-
74
- aliases = ["OSE"]
75
- regular_market_times = {
76
- "market_open": ((None, time(9)),),
77
- "market_close": ((None, time(16, 20)),),
78
- }
79
-
80
- @property
81
- def name(self):
82
- return "OSE"
83
-
84
- @property
85
- def full_name(self):
86
- return "Oslo Stock Exchange"
87
-
88
- @property
89
- def tz(self):
90
- return ZoneInfo("Europe/Oslo")
91
-
92
- @property
93
- def regular_holidays(self):
94
- return AbstractHolidayCalendar(
95
- rules=[
96
- OSENewYearsDay,
97
- OSEMaundyThursday,
98
- OSEGoodFriday,
99
- OSEEasterMonday,
100
- OSELabourDay,
101
- OSEConstitutionDay,
102
- OSEWhitMonday,
103
- OSEAscensionDay,
104
- OSEChristmasEve,
105
- OSEChristmasDay,
106
- OSEBoxingDay,
107
- OSENewYearsEve,
108
- ]
109
- )
110
-
111
- @property
112
- def special_closes(self):
113
- return [
114
- (
115
- time(13, 0, tzinfo=self.tz),
116
- AbstractHolidayCalendar(rules=[OSEWednesdayBeforeEaster]),
117
- )
118
- ]
1
+ from datetime import time
2
+
3
+ from pandas.tseries.holiday import (
4
+ AbstractHolidayCalendar,
5
+ EasterMonday,
6
+ GoodFriday,
7
+ Holiday,
8
+ )
9
+ from pandas.tseries.offsets import Day, Easter
10
+ import sys
11
+
12
+ # check python versiOn aNd import accordingly
13
+ if sys.version_info >= (3, 9):
14
+ # For Python 3.9 and later, import directly
15
+ from zoneinfo import ZoneInfo
16
+ else:
17
+ # For Python 3.8 and earlier, import from backports
18
+ from backports.zoneinfo import ZoneInfo
19
+
20
+ from pandas_market_calendars.market_calendar import MarketCalendar
21
+
22
+ OSENewYearsDay = Holiday("New Year's Day", month=1, day=1)
23
+
24
+ OSEWednesdayBeforeEaster = Holiday("Wednesday before Easter", month=1, day=1, offset=[Easter(), Day(-4)])
25
+
26
+ OSEMaundyThursday = Holiday("Maundy Thursday", month=1, day=1, offset=[Easter(), Day(-3)])
27
+
28
+ OSEGoodFriday = GoodFriday
29
+
30
+ OSEEasterMonday = EasterMonday
31
+
32
+ OSELabourDay = Holiday("Labour Day", month=5, day=1)
33
+
34
+ OSEConstitutionDay = Holiday("Constitution Day", month=5, day=17)
35
+
36
+ OSEWhitMonday = Holiday("Whit Monday", month=1, day=1, offset=[Easter(), Day(50)])
37
+
38
+ OSEAscensionDay = Holiday("Ascension Day", month=1, day=1, offset=[Easter(), Day(39)])
39
+
40
+ OSEChristmasEve = Holiday(
41
+ "Christmas Eve",
42
+ month=12,
43
+ day=24,
44
+ )
45
+
46
+ OSEChristmasDay = Holiday("Christmas Day", month=12, day=25)
47
+
48
+ OSEBoxingDay = Holiday("Boxing Day", month=12, day=26)
49
+
50
+ OSENewYearsEve = Holiday("New Year's Eve", month=12, day=31)
51
+
52
+
53
+ class OSEExchangeCalendar(MarketCalendar):
54
+ """
55
+ Exchange calendar for Oslo Stock Exchange
56
+
57
+ Note these dates are only checked against 2017, 2018 and 2019
58
+ https://www.oslobors.no/ob_eng/Oslo-Boers/About-Oslo-Boers/Opening-hours
59
+
60
+ Opening times for the regular trading of equities (not including closing auction call)
61
+ Open Time: 9:00 AM, CEST/EST
62
+ Close Time: 4:20 PM, CEST/EST
63
+
64
+ Regularly-Observed Holidays (not necessarily in order):
65
+ - New Years Day
66
+ - Wednesday before Easter (Half trading day)
67
+ - Maundy Thursday
68
+ - Good Friday
69
+ - Easter Monday
70
+ - Labour Day
71
+ - Ascension Day
72
+ - Constitution Day
73
+ - Whit Monday
74
+ - Christmas Eve
75
+ - Christmas Day
76
+ - Boxing Day
77
+ - New Year's Eve
78
+ """
79
+
80
+ aliases = ["OSE"]
81
+ regular_market_times = {
82
+ "market_open": ((None, time(9)),),
83
+ "market_close": ((None, time(16, 20)),),
84
+ }
85
+
86
+ @property
87
+ def name(self):
88
+ return "OSE"
89
+
90
+ @property
91
+ def full_name(self):
92
+ return "Oslo Stock Exchange"
93
+
94
+ @property
95
+ def tz(self):
96
+ return ZoneInfo("Europe/Oslo")
97
+
98
+ @property
99
+ def regular_holidays(self):
100
+ return AbstractHolidayCalendar(
101
+ rules=[
102
+ OSENewYearsDay,
103
+ OSEMaundyThursday,
104
+ OSEGoodFriday,
105
+ OSEEasterMonday,
106
+ OSELabourDay,
107
+ OSEConstitutionDay,
108
+ OSEWhitMonday,
109
+ OSEAscensionDay,
110
+ OSEChristmasEve,
111
+ OSEChristmasDay,
112
+ OSEBoxingDay,
113
+ OSENewYearsEve,
114
+ ]
115
+ )
116
+
117
+ @property
118
+ def special_closes(self):
119
+ return [
120
+ (
121
+ time(13, 0, tzinfo=self.tz),
122
+ AbstractHolidayCalendar(rules=[OSEWednesdayBeforeEaster]),
123
+ )
124
+ ]