pandas-market-calendars 4.3.1__py3-none-any.whl → 4.3.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
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]))]