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,113 +1,136 @@
1
- from .cme_globex_base import CMEGlobexBaseExchangeCalendar
2
-
3
- from datetime import time
4
- from pandas.tseries.holiday import AbstractHolidayCalendar
5
-
6
- from pandas_market_calendars.holidays.cme import (
7
- USMartinLutherKingJrAfter1998Before2015,
8
- USMartinLutherKingJrAfter1998Before2016FridayBefore,
9
- USMartinLutherKingJrAfter2015,
10
- USPresidentsDayBefore2016FridayBefore,
11
- USPresidentsDayBefore2015,
12
- USPresidentsDayAfter2015,
13
- GoodFridayBefore2021NotEarlyClose,
14
- GoodFridayAfter2021,
15
- GoodFriday2009,
16
- GoodFriday2010,
17
- GoodFriday2012,
18
- GoodFriday2015,
19
- GoodFriday2021,
20
- USMemorialDay2013AndPrior,
21
- USMemorialDayAfter2013,
22
- USMemorialDay2015AndPriorFridayBefore,
23
- USIndependenceDayBefore2014,
24
- USIndependenceDayAfter2014,
25
- USLaborDayStarting1887Before2014,
26
- USLaborDayStarting1887Before2015FridayBefore,
27
- USLaborDayStarting1887After2014,
28
- USThanksgivingBefore2014,
29
- USThanksgivingAfter2014,
30
- USThanksgivingFriday,
31
- )
32
- from pandas_market_calendars.holidays.us import (
33
- USNewYearsDay,
34
- ChristmasEveInOrAfter1993,
35
- Christmas,
36
- USJuneteenthAfter2022
37
- )
38
-
39
-
40
- class CMEGlobexFixedIncomeCalendar(CMEGlobexBaseExchangeCalendar):
41
- aliases = ["CME Globex Fixed Income", "CME Globex Interest Rate Products"]
42
-
43
- regular_market_times = {
44
- "market_open": ((None, time(18), -1),),
45
- "market_close": ((None, time(17)),),
46
- }
47
-
48
- """
49
- Not yet implemented:
50
- Christmas/New_Years
51
- 5am special open for a couple years (see tests)
52
-
53
- regular market_open/market_close changed from 17/16 to 18/17?
54
- """
55
-
56
- @property
57
- def name(self): return "CME Globex Fixed Income"
58
-
59
- @property
60
- def regular_holidays(self):
61
- return AbstractHolidayCalendar(rules=[
62
- USNewYearsDay,
63
- GoodFridayBefore2021NotEarlyClose,
64
- GoodFridayAfter2021,
65
- Christmas,
66
- ])
67
-
68
- @property
69
- def special_closes_adhoc(self):
70
- return [(time(15,15), ["2010-07-02", "2011-07-01"]),
71
- (time(12,15), ["2010-12-31"])]
72
-
73
- @property
74
- def special_closes(self):
75
- # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
76
- return [
77
- (time(12), AbstractHolidayCalendar(rules=[
78
- USMartinLutherKingJrAfter1998Before2015,
79
- USMartinLutherKingJrAfter2015,
80
- USPresidentsDayBefore2015,
81
- USPresidentsDayAfter2015,
82
- USMemorialDay2013AndPrior,
83
- USMemorialDayAfter2013,
84
- USIndependenceDayBefore2014,
85
- USIndependenceDayAfter2014,
86
- USLaborDayStarting1887Before2014,
87
- USLaborDayStarting1887After2014,
88
- USThanksgivingBefore2014,
89
- USThanksgivingAfter2014,
90
- USJuneteenthAfter2022,
91
- ])),
92
-
93
- (time(15,15), AbstractHolidayCalendar(rules=[
94
- USMartinLutherKingJrAfter1998Before2016FridayBefore,
95
- USPresidentsDayBefore2016FridayBefore,
96
- GoodFriday2009,
97
- USMemorialDay2015AndPriorFridayBefore,
98
- USLaborDayStarting1887Before2015FridayBefore
99
- ])),
100
-
101
- (time(12,15), AbstractHolidayCalendar(rules= [
102
- USThanksgivingFriday,
103
- ChristmasEveInOrAfter1993,
104
- ])),
105
-
106
- (time(10,15), AbstractHolidayCalendar(rules=[
107
- GoodFriday2010,
108
- GoodFriday2012,
109
- GoodFriday2015,
110
- GoodFriday2021,
111
- ])),
112
-
113
- ]
1
+ from datetime import time
2
+
3
+ from pandas.tseries.holiday import AbstractHolidayCalendar
4
+
5
+ from pandas_market_calendars.holidays.cme import (
6
+ USMartinLutherKingJrAfter1998Before2015,
7
+ USMartinLutherKingJrAfter1998Before2016FridayBefore,
8
+ USMartinLutherKingJrAfter2015,
9
+ USPresidentsDayBefore2016FridayBefore,
10
+ USPresidentsDayBefore2015,
11
+ USPresidentsDayAfter2015,
12
+ GoodFridayBefore2021NotEarlyClose,
13
+ GoodFriday2009,
14
+ GoodFriday2010,
15
+ GoodFriday2012,
16
+ GoodFriday2015,
17
+ GoodFriday2021,
18
+ GoodFriday2022,
19
+ GoodFridayAfter2022,
20
+ USMemorialDay2013AndPrior,
21
+ USMemorialDayAfter2013,
22
+ USMemorialDay2015AndPriorFridayBefore,
23
+ USIndependenceDayBefore2014,
24
+ USIndependenceDayAfter2014,
25
+ USLaborDayStarting1887Before2014,
26
+ USLaborDayStarting1887Before2015FridayBefore,
27
+ USLaborDayStarting1887After2014,
28
+ USThanksgivingBefore2014,
29
+ USThanksgivingAfter2014,
30
+ USThanksgivingFriday,
31
+ )
32
+ from pandas_market_calendars.holidays.us import (
33
+ USNewYearsDay,
34
+ ChristmasEveInOrAfter1993,
35
+ Christmas,
36
+ USJuneteenthAfter2022,
37
+ )
38
+ from .cme_globex_base import CMEGlobexBaseExchangeCalendar
39
+
40
+
41
+ class CMEGlobexFixedIncomeCalendar(CMEGlobexBaseExchangeCalendar):
42
+ aliases = ["CME Globex Fixed Income", "CME Globex Interest Rate Products"]
43
+
44
+ regular_market_times = {
45
+ "market_open": ((None, time(18), -1),),
46
+ "market_close": ((None, time(17)),),
47
+ }
48
+
49
+ """
50
+ Not yet implemented:
51
+ Christmas/New_Years
52
+ 5am special open for a couple years (see tests)
53
+
54
+ regular market_open/market_close changed from 17/16 to 18/17?
55
+ """
56
+
57
+ @property
58
+ def name(self):
59
+ return "CME Globex Fixed Income"
60
+
61
+ @property
62
+ def regular_holidays(self):
63
+ return AbstractHolidayCalendar(
64
+ rules=[
65
+ USNewYearsDay,
66
+ GoodFridayBefore2021NotEarlyClose,
67
+ GoodFriday2022,
68
+ Christmas,
69
+ ]
70
+ )
71
+
72
+ @property
73
+ def special_closes_adhoc(self):
74
+ return [
75
+ (time(15, 15), ["2010-07-02", "2011-07-01"]),
76
+ (time(12, 15), ["2010-12-31"]),
77
+ ]
78
+
79
+ @property
80
+ def special_closes(self):
81
+ # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
82
+ return [
83
+ (
84
+ time(12),
85
+ AbstractHolidayCalendar(
86
+ rules=[
87
+ USMartinLutherKingJrAfter1998Before2015,
88
+ USMartinLutherKingJrAfter2015,
89
+ USPresidentsDayBefore2015,
90
+ USPresidentsDayAfter2015,
91
+ USMemorialDay2013AndPrior,
92
+ USMemorialDayAfter2013,
93
+ USIndependenceDayBefore2014,
94
+ USIndependenceDayAfter2014,
95
+ USLaborDayStarting1887Before2014,
96
+ USLaborDayStarting1887After2014,
97
+ USThanksgivingBefore2014,
98
+ USThanksgivingAfter2014,
99
+ USJuneteenthAfter2022,
100
+ ]
101
+ ),
102
+ ),
103
+ (
104
+ time(15, 15),
105
+ AbstractHolidayCalendar(
106
+ rules=[
107
+ USMartinLutherKingJrAfter1998Before2016FridayBefore,
108
+ USPresidentsDayBefore2016FridayBefore,
109
+ GoodFriday2009,
110
+ USMemorialDay2015AndPriorFridayBefore,
111
+ USLaborDayStarting1887Before2015FridayBefore,
112
+ ]
113
+ ),
114
+ ),
115
+ (
116
+ time(12, 15),
117
+ AbstractHolidayCalendar(
118
+ rules=[
119
+ USThanksgivingFriday,
120
+ ChristmasEveInOrAfter1993,
121
+ ]
122
+ ),
123
+ ),
124
+ (
125
+ time(10, 15),
126
+ AbstractHolidayCalendar(
127
+ rules=[
128
+ GoodFriday2010,
129
+ GoodFriday2012,
130
+ GoodFriday2015,
131
+ GoodFriday2021,
132
+ GoodFridayAfter2022,
133
+ ]
134
+ ),
135
+ ),
136
+ ]
@@ -1,78 +1,101 @@
1
- from datetime import time
2
-
3
- from pandas.tseries.holiday import AbstractHolidayCalendar
4
-
5
- from pandas_market_calendars.calendars.cme_globex_base import CMEGlobexBaseExchangeCalendar
6
- from pandas_market_calendars.holidays.cme import (
7
- USMartinLutherKingJrAfter1998Before2022,
8
- USPresidentsDayBefore2022,
9
- GoodFridayBefore2021,
10
- GoodFriday2021,
11
- GoodFridayAfter2021,
12
- USMemorialDay2021AndPrior,
13
- USIndependenceDayBefore2022,
14
- USLaborDayStarting1887Before2022,
15
- USThanksgivingBefore2022,
16
- USThanksgivingFriday,
17
- )
18
- from pandas_market_calendars.holidays.us import (
19
- USNewYearsDay,
20
- ChristmasEveInOrAfter1993,
21
- Christmas,
22
- )
23
-
24
- _1015 = time(10, 15)
25
- _1200 = time(12, 0)
26
- _1215 = time(12, 15)
27
-
28
-
29
- class CMEGlobexFXExchangeCalendar(CMEGlobexBaseExchangeCalendar):
30
- aliases = ['CME_Currency']
31
-
32
- # Using CME Globex trading times eg AUD/USD, EUR/GBP, and BRL/USD
33
- # https://www.cmegroup.com/markets/fx/g10/australian-dollar.contractSpecs.html
34
- # https://www.cmegroup.com/markets/fx/cross-rates/euro-fx-british-pound.contractSpecs.html
35
- # https://www.cmegroup.com/markets/fx/emerging-market/brazilian-real.contractSpecs.html
36
- # CME "NZD spot" has its own holiday schedule; this is a niche product (via "FX Link") and is not handled in this
37
- # class; however, its regular hours follow the same schedule (see
38
- # https://www.cmegroup.com/trading/fx/files/fx-product-guide-2021-us.pdf)
39
- regular_market_times = {
40
- "market_open": ((None, time(17), -1),), # offset by -1 day
41
- "market_close": ((None, time(16, 00)),)
42
- }
43
-
44
- aliases = ['CMEGlobex_FX', 'CME_FX', 'CME_Currency']
45
-
46
- @property
47
- def name(self):
48
- return "CMEGlobex_FX"
49
-
50
- @property
51
- def regular_holidays(self):
52
- return AbstractHolidayCalendar(rules=[
53
- USNewYearsDay,
54
- GoodFridayBefore2021,
55
- GoodFridayAfter2021,
56
- Christmas,
57
- ])
58
-
59
- @property
60
- def special_closes(self):
61
- """
62
- Accurate 2020-2022 inclusive
63
- TODO - enhance/verify prior to 2020
64
- TODO - Add 2023+ once known
65
- """
66
- # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
67
- return [
68
- (_1015, AbstractHolidayCalendar(rules=[GoodFriday2021])),
69
- (_1200, AbstractHolidayCalendar(rules=[
70
- USMartinLutherKingJrAfter1998Before2022,
71
- USPresidentsDayBefore2022,
72
- USMemorialDay2021AndPrior,
73
- USIndependenceDayBefore2022,
74
- USLaborDayStarting1887Before2022,
75
- USThanksgivingBefore2022,
76
- ])),
77
- (_1215, AbstractHolidayCalendar(rules=[USThanksgivingFriday, ChristmasEveInOrAfter1993])),
78
- ]
1
+ from datetime import time
2
+
3
+ from pandas.tseries.holiday import AbstractHolidayCalendar
4
+
5
+ from pandas_market_calendars.calendars.cme_globex_base import (
6
+ CMEGlobexBaseExchangeCalendar,
7
+ )
8
+ from pandas_market_calendars.holidays.cme import (
9
+ USMartinLutherKingJrAfter1998Before2022,
10
+ USPresidentsDayBefore2022,
11
+ GoodFridayBefore2021,
12
+ GoodFriday2021,
13
+ GoodFriday2022,
14
+ GoodFridayAfter2022,
15
+ USMemorialDay2021AndPrior,
16
+ USIndependenceDayBefore2022,
17
+ USLaborDayStarting1887Before2022,
18
+ USThanksgivingBefore2022,
19
+ USThanksgivingFriday,
20
+ )
21
+ from pandas_market_calendars.holidays.us import (
22
+ USNewYearsDay,
23
+ ChristmasEveInOrAfter1993,
24
+ Christmas,
25
+ )
26
+
27
+ _1015 = time(10, 15)
28
+ _1200 = time(12, 0)
29
+ _1215 = time(12, 15)
30
+
31
+
32
+ class CMEGlobexFXExchangeCalendar(CMEGlobexBaseExchangeCalendar):
33
+ aliases = ["CME_Currency"]
34
+
35
+ # Using CME Globex trading times eg AUD/USD, EUR/GBP, and BRL/USD
36
+ # https://www.cmegroup.com/markets/fx/g10/australian-dollar.contractSpecs.html
37
+ # https://www.cmegroup.com/markets/fx/cross-rates/euro-fx-british-pound.contractSpecs.html
38
+ # https://www.cmegroup.com/markets/fx/emerging-market/brazilian-real.contractSpecs.html
39
+ # CME "NZD spot" has its own holiday schedule; this is a niche product (via "FX Link") and is not handled in this
40
+ # class; however, its regular hours follow the same schedule (see
41
+ # https://www.cmegroup.com/trading/fx/files/fx-product-guide-2021-us.pdf)
42
+ regular_market_times = {
43
+ "market_open": ((None, time(17), -1),), # offset by -1 day
44
+ "market_close": ((None, time(16, 00)),),
45
+ }
46
+
47
+ aliases = ["CMEGlobex_FX", "CME_FX", "CME_Currency"]
48
+
49
+ @property
50
+ def name(self):
51
+ return "CMEGlobex_FX"
52
+
53
+ @property
54
+ def regular_holidays(self):
55
+ return AbstractHolidayCalendar(
56
+ rules=[
57
+ USNewYearsDay,
58
+ GoodFridayBefore2021,
59
+ GoodFriday2022,
60
+ Christmas,
61
+ ]
62
+ )
63
+
64
+ @property
65
+ def special_closes(self):
66
+ """
67
+ Accurate 2020-2022 inclusive
68
+ TODO - enhance/verify prior to 2020
69
+ TODO - Add 2023+ once known
70
+ """
71
+ # Source https://www.cmegroup.com/tools-information/holiday-calendar.html
72
+ return [
73
+ (
74
+ _1015,
75
+ AbstractHolidayCalendar(
76
+ rules=[
77
+ GoodFriday2021,
78
+ GoodFridayAfter2022,
79
+ ]
80
+ ),
81
+ ),
82
+ (
83
+ _1200,
84
+ AbstractHolidayCalendar(
85
+ rules=[
86
+ USMartinLutherKingJrAfter1998Before2022,
87
+ USPresidentsDayBefore2022,
88
+ USMemorialDay2021AndPrior,
89
+ USIndependenceDayBefore2022,
90
+ USLaborDayStarting1887Before2022,
91
+ USThanksgivingBefore2022,
92
+ ]
93
+ ),
94
+ ),
95
+ (
96
+ _1215,
97
+ AbstractHolidayCalendar(
98
+ rules=[USThanksgivingFriday, ChristmasEveInOrAfter1993]
99
+ ),
100
+ ),
101
+ ]