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