pandas-market-calendars 4.3.1__py3-none-any.whl → 4.3.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 +38 -37
  2. pandas_market_calendars/calendar_registry.py +53 -48
  3. pandas_market_calendars/calendar_utils.py +261 -225
  4. pandas_market_calendars/calendars/asx.py +66 -63
  5. pandas_market_calendars/calendars/bmf.py +206 -227
  6. pandas_market_calendars/calendars/bse.py +407 -409
  7. pandas_market_calendars/calendars/cboe.py +145 -115
  8. pandas_market_calendars/calendars/cme.py +402 -240
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +126 -103
  10. pandas_market_calendars/calendars/cme_globex_base.py +119 -103
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +160 -147
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -138
  13. pandas_market_calendars/calendars/cme_globex_equities.py +123 -104
  14. pandas_market_calendars/calendars/cme_globex_fixed_income.py +136 -113
  15. pandas_market_calendars/calendars/cme_globex_fx.py +101 -78
  16. pandas_market_calendars/calendars/eurex.py +139 -119
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +98 -0
  18. pandas_market_calendars/calendars/hkex.py +426 -408
  19. pandas_market_calendars/calendars/ice.py +81 -65
  20. pandas_market_calendars/calendars/iex.py +112 -98
  21. pandas_market_calendars/calendars/jpx.py +109 -103
  22. pandas_market_calendars/calendars/lse.py +114 -91
  23. pandas_market_calendars/calendars/mirror.py +130 -114
  24. pandas_market_calendars/calendars/nyse.py +1324 -1127
  25. pandas_market_calendars/calendars/ose.py +116 -150
  26. pandas_market_calendars/calendars/sifma.py +350 -297
  27. pandas_market_calendars/calendars/six.py +132 -114
  28. pandas_market_calendars/calendars/sse.py +311 -290
  29. pandas_market_calendars/calendars/tase.py +197 -195
  30. pandas_market_calendars/calendars/tsx.py +181 -159
  31. pandas_market_calendars/class_registry.py +22 -16
  32. pandas_market_calendars/holidays/cme.py +385 -340
  33. pandas_market_calendars/holidays/cme_globex.py +214 -198
  34. pandas_market_calendars/holidays/cn.py +1455 -1436
  35. pandas_market_calendars/holidays/jp.py +398 -396
  36. pandas_market_calendars/holidays/jpx_equinox.py +453 -95
  37. pandas_market_calendars/holidays/nyse.py +1531 -1472
  38. pandas_market_calendars/holidays/oz.py +63 -65
  39. pandas_market_calendars/holidays/sifma.py +338 -321
  40. pandas_market_calendars/holidays/uk.py +32 -26
  41. pandas_market_calendars/holidays/us.py +376 -360
  42. pandas_market_calendars/market_calendar.py +895 -789
  43. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/METADATA +7 -5
  44. pandas_market_calendars-4.3.3.dist-info/RECORD +50 -0
  45. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/WHEEL +1 -1
  46. pandas_market_calendars-4.3.1.dist-info/RECORD +0 -49
  47. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/LICENSE +0 -0
  48. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/NOTICE +0 -0
  49. {pandas_market_calendars-4.3.1.dist-info → pandas_market_calendars-4.3.3.dist-info}/top_level.txt +0 -0
@@ -1,227 +1,206 @@
1
- #
2
- # Copyright 2016 Quantopian, Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from datetime import time
17
-
18
- from pandas import Timestamp
19
- from pandas.tseries.holiday import AbstractHolidayCalendar, Day, Easter, GoodFriday, Holiday
20
- from pytz import timezone
21
-
22
- from pandas_market_calendars.market_calendar import (FRIDAY, MarketCalendar)
23
-
24
- # Universal Confraternization (new years day)
25
- ConfUniversal = Holiday(
26
- 'Dia da Confraternizacao Universal',
27
- month=1,
28
- day=1,
29
- )
30
- # Sao Paulo city birthday
31
- AniversarioSaoPaulo = Holiday(
32
- 'Aniversario de Sao Paulo',
33
- month=1,
34
- day=25,
35
- end_date='2021-12-31'
36
- )
37
- # Carnival Monday
38
- CarnavalSegunda = Holiday(
39
- 'Carnaval Segunda',
40
- month=1,
41
- day=1,
42
- offset=[Easter(), Day(-48)]
43
- )
44
- # Carnival Tuesday
45
- CarnavalTerca = Holiday(
46
- 'Carnaval Terca',
47
- month=1,
48
- day=1,
49
- offset=[Easter(), Day(-47)]
50
- )
51
- # Ash Wednesday (short day)
52
- QuartaCinzas = Holiday(
53
- 'Quarta Cinzas',
54
- month=1,
55
- day=1,
56
- offset=[Easter(), Day(-46)]
57
- )
58
- # Good Friday
59
- SextaPaixao = GoodFriday
60
- # Feast of the Most Holy Body of Christ
61
- CorpusChristi = Holiday(
62
- 'Corpus Christi',
63
- month=1,
64
- day=1,
65
- offset=[Easter(), Day(60)]
66
- )
67
- # Tiradentes Memorial
68
- Tiradentes = Holiday(
69
- 'Tiradentes',
70
- month=4,
71
- day=21,
72
- )
73
- # Labor Day
74
- DiaTrabalho = Holiday(
75
- 'Dia Trabalho',
76
- month=5,
77
- day=1,
78
- )
79
- # Constitutionalist Revolution
80
- Constitucionalista = Holiday(
81
- 'Constitucionalista',
82
- month=7,
83
- day=9,
84
- start_date='1997-01-01',
85
- end_date='2019-12-31'
86
- )
87
- # Independence Day
88
- Independencia = Holiday(
89
- 'Independencia',
90
- month=9,
91
- day=7,
92
- )
93
- # Our Lady of Aparecida
94
- Aparecida = Holiday(
95
- 'Nossa Senhora de Aparecida',
96
- month=10,
97
- day=12,
98
- )
99
- # All Souls' Day
100
- Finados = Holiday(
101
- 'Dia dos Finados',
102
- month=11,
103
- day=2,
104
- )
105
- # Proclamation of the Republic
106
- ProclamacaoRepublica = Holiday(
107
- 'Proclamacao da Republica',
108
- month=11,
109
- day=15,
110
- )
111
- # Day of Black Awareness
112
- ConscienciaNegra = Holiday(
113
- 'Dia da Consciencia Negra',
114
- month=11,
115
- day=20,
116
- start_date='2004-01-01',
117
- end_date='2019-12-31'
118
- )
119
- # Christmas Eve
120
- VesperaNatal = Holiday(
121
- 'Vespera Natal',
122
- month=12,
123
- day=24,
124
- )
125
- # Christmas
126
- Natal = Holiday(
127
- 'Natal',
128
- month=12,
129
- day=25,
130
- )
131
- # New Year's Eve
132
- AnoNovo = Holiday(
133
- 'Ano Novo',
134
- month=12,
135
- day=31,
136
- )
137
- # New Year's Eve falls on Saturday
138
- AnoNovoSabado = Holiday(
139
- 'Ano Novo Sabado',
140
- month=12,
141
- day=30,
142
- days_of_week=(FRIDAY,),
143
- )
144
-
145
- ##########################
146
- # Non-recurring holidays
147
- ##########################
148
-
149
- Constitucionalista2021 = Timestamp('2021-07-09', tz='UTC')
150
- ConscienciaNegra2021 = Timestamp('2021-11-20', tz='UTC')
151
-
152
-
153
- class BMFExchangeCalendar(MarketCalendar):
154
- """
155
- Exchange calendar for BM&F BOVESPA
156
-
157
- Open Time: 10:00 AM, Brazil/Sao Paulo
158
- Close Time: 4:00 PM, Brazil/Sao Paulo
159
-
160
- Regularly-Observed Holidays:
161
- - Universal Confraternization (New year's day, Jan 1)
162
- - Sao Paulo City Anniversary (Jan 25 until 2021)
163
- - Carnaval Monday (48 days before Easter)
164
- - Carnaval Tuesday (47 days before Easter)
165
- - Passion of the Christ (Good Friday, 2 days before Easter)
166
- - Corpus Christi (60 days after Easter)
167
- - Tiradentes (April 21)
168
- - Labor day (May 1)
169
- - Constitutionalist Revolution (July 9 after 1997 until 2021, skipping 2020)
170
- - Independence Day (September 7)
171
- - Our Lady of Aparecida Feast (October 12)
172
- - All Souls' Day (November 2)
173
- - Proclamation of the Republic (November 15)
174
- - Day of Black Awareness (November 20 after 2004 until 2021, skipping 2020)
175
- - Christmas (December 24 and 25)
176
- - Day before New Year's Eve (December 30 if NYE falls on a Saturday)
177
- - New Year's Eve (December 31)
178
- """
179
- aliases = ['BMF', 'B3']
180
- regular_market_times = {
181
- "market_open": ((None, time(10,1)),),
182
- "market_close": ((None, time(16)),)
183
- }
184
-
185
- @property
186
- def name(self):
187
- return "BMF"
188
-
189
- @property
190
- def tz(self):
191
- return timezone("America/Sao_Paulo")
192
-
193
- @property
194
- def regular_holidays(self):
195
- return AbstractHolidayCalendar(rules=[
196
- ConfUniversal,
197
- AniversarioSaoPaulo,
198
- CarnavalSegunda,
199
- CarnavalTerca,
200
- SextaPaixao,
201
- CorpusChristi,
202
- Tiradentes,
203
- DiaTrabalho,
204
- Constitucionalista,
205
- Independencia,
206
- Aparecida,
207
- Finados,
208
- ProclamacaoRepublica,
209
- ConscienciaNegra,
210
- VesperaNatal,
211
- Natal,
212
- AnoNovo,
213
- AnoNovoSabado,
214
- ])
215
-
216
- @property
217
- def adhoc_holidays(self):
218
- return [
219
- Constitucionalista2021,
220
- ConscienciaNegra2021
221
- ]
222
-
223
- @property
224
- def special_opens(self):
225
- return [
226
- (time(13, 1), AbstractHolidayCalendar(rules=[QuartaCinzas]))
227
- ]
1
+ #
2
+ # Copyright 2016 Quantopian, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from datetime import time
17
+
18
+ from pandas import Timestamp
19
+ from pandas.tseries.holiday import (
20
+ AbstractHolidayCalendar,
21
+ Day,
22
+ Easter,
23
+ GoodFriday,
24
+ Holiday,
25
+ )
26
+ from pytz import timezone
27
+
28
+ from pandas_market_calendars.market_calendar import FRIDAY, MarketCalendar
29
+
30
+ # Universal Confraternization (new years day)
31
+ ConfUniversal = Holiday(
32
+ "Dia da Confraternizacao Universal",
33
+ month=1,
34
+ day=1,
35
+ )
36
+ # Sao Paulo city birthday
37
+ AniversarioSaoPaulo = Holiday(
38
+ "Aniversario de Sao Paulo", month=1, day=25, end_date="2021-12-31"
39
+ )
40
+ # Carnival Monday
41
+ CarnavalSegunda = Holiday(
42
+ "Carnaval Segunda", month=1, day=1, offset=[Easter(), Day(-48)]
43
+ )
44
+ # Carnival Tuesday
45
+ CarnavalTerca = Holiday("Carnaval Terca", month=1, day=1, offset=[Easter(), Day(-47)])
46
+ # Ash Wednesday (short day)
47
+ QuartaCinzas = Holiday("Quarta Cinzas", month=1, day=1, offset=[Easter(), Day(-46)])
48
+ # Good Friday
49
+ SextaPaixao = GoodFriday
50
+ # Feast of the Most Holy Body of Christ
51
+ CorpusChristi = Holiday("Corpus Christi", month=1, day=1, offset=[Easter(), Day(60)])
52
+ # Tiradentes Memorial
53
+ Tiradentes = Holiday(
54
+ "Tiradentes",
55
+ month=4,
56
+ day=21,
57
+ )
58
+ # Labor Day
59
+ DiaTrabalho = Holiday(
60
+ "Dia Trabalho",
61
+ month=5,
62
+ day=1,
63
+ )
64
+ # Constitutionalist Revolution
65
+ Constitucionalista = Holiday(
66
+ "Constitucionalista", month=7, day=9, start_date="1997-01-01", end_date="2019-12-31"
67
+ )
68
+ # Independence Day
69
+ Independencia = Holiday(
70
+ "Independencia",
71
+ month=9,
72
+ day=7,
73
+ )
74
+ # Our Lady of Aparecida
75
+ Aparecida = Holiday(
76
+ "Nossa Senhora de Aparecida",
77
+ month=10,
78
+ day=12,
79
+ )
80
+ # All Souls' Day
81
+ Finados = Holiday(
82
+ "Dia dos Finados",
83
+ month=11,
84
+ day=2,
85
+ )
86
+ # Proclamation of the Republic
87
+ ProclamacaoRepublica = Holiday(
88
+ "Proclamacao da Republica",
89
+ month=11,
90
+ day=15,
91
+ )
92
+ # Day of Black Awareness
93
+ ConscienciaNegra = Holiday(
94
+ "Dia da Consciencia Negra",
95
+ month=11,
96
+ day=20,
97
+ start_date="2004-01-01",
98
+ end_date="2019-12-31",
99
+ )
100
+ # Christmas Eve
101
+ VesperaNatal = Holiday(
102
+ "Vespera Natal",
103
+ month=12,
104
+ day=24,
105
+ )
106
+ # Christmas
107
+ Natal = Holiday(
108
+ "Natal",
109
+ month=12,
110
+ day=25,
111
+ )
112
+ # New Year's Eve
113
+ AnoNovo = Holiday(
114
+ "Ano Novo",
115
+ month=12,
116
+ day=31,
117
+ )
118
+ # New Year's Eve falls on Saturday
119
+ AnoNovoSabado = Holiday(
120
+ "Ano Novo Sabado",
121
+ month=12,
122
+ day=30,
123
+ days_of_week=(FRIDAY,),
124
+ )
125
+
126
+ ##########################
127
+ # Non-recurring holidays
128
+ ##########################
129
+
130
+ Constitucionalista2021 = Timestamp("2021-07-09", tz="UTC")
131
+ ConscienciaNegra2021 = Timestamp("2021-11-20", tz="UTC")
132
+
133
+
134
+ class BMFExchangeCalendar(MarketCalendar):
135
+ """
136
+ Exchange calendar for BM&F BOVESPA
137
+
138
+ Open Time: 10:00 AM, Brazil/Sao Paulo
139
+ Close Time: 4:00 PM, Brazil/Sao Paulo
140
+
141
+ Regularly-Observed Holidays:
142
+ - Universal Confraternization (New year's day, Jan 1)
143
+ - Sao Paulo City Anniversary (Jan 25 until 2021)
144
+ - Carnaval Monday (48 days before Easter)
145
+ - Carnaval Tuesday (47 days before Easter)
146
+ - Passion of the Christ (Good Friday, 2 days before Easter)
147
+ - Corpus Christi (60 days after Easter)
148
+ - Tiradentes (April 21)
149
+ - Labor day (May 1)
150
+ - Constitutionalist Revolution (July 9 after 1997 until 2021, skipping 2020)
151
+ - Independence Day (September 7)
152
+ - Our Lady of Aparecida Feast (October 12)
153
+ - All Souls' Day (November 2)
154
+ - Proclamation of the Republic (November 15)
155
+ - Day of Black Awareness (November 20 after 2004 until 2021, skipping 2020)
156
+ - Christmas (December 24 and 25)
157
+ - Day before New Year's Eve (December 30 if NYE falls on a Saturday)
158
+ - New Year's Eve (December 31)
159
+ """
160
+
161
+ aliases = ["BMF", "B3"]
162
+ regular_market_times = {
163
+ "market_open": ((None, time(10, 1)),),
164
+ "market_close": ((None, time(16)),),
165
+ }
166
+
167
+ @property
168
+ def name(self):
169
+ return "BMF"
170
+
171
+ @property
172
+ def tz(self):
173
+ return timezone("America/Sao_Paulo")
174
+
175
+ @property
176
+ def regular_holidays(self):
177
+ return AbstractHolidayCalendar(
178
+ rules=[
179
+ ConfUniversal,
180
+ AniversarioSaoPaulo,
181
+ CarnavalSegunda,
182
+ CarnavalTerca,
183
+ SextaPaixao,
184
+ CorpusChristi,
185
+ Tiradentes,
186
+ DiaTrabalho,
187
+ Constitucionalista,
188
+ Independencia,
189
+ Aparecida,
190
+ Finados,
191
+ ProclamacaoRepublica,
192
+ ConscienciaNegra,
193
+ VesperaNatal,
194
+ Natal,
195
+ AnoNovo,
196
+ AnoNovoSabado,
197
+ ]
198
+ )
199
+
200
+ @property
201
+ def adhoc_holidays(self):
202
+ return [Constitucionalista2021, ConscienciaNegra2021]
203
+
204
+ @property
205
+ def special_opens(self):
206
+ return [(time(13, 1), AbstractHolidayCalendar(rules=[QuartaCinzas]))]