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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. pandas_market_calendars/__init__.py +39 -38
  2. pandas_market_calendars/calendar_registry.py +57 -53
  3. pandas_market_calendars/calendar_utils.py +1200 -261
  4. pandas_market_calendars/calendars/asx.py +66 -66
  5. pandas_market_calendars/calendars/bmf.py +223 -206
  6. pandas_market_calendars/calendars/bse.py +421 -407
  7. pandas_market_calendars/calendars/cboe.py +145 -145
  8. pandas_market_calendars/calendars/cme.py +405 -402
  9. pandas_market_calendars/calendars/cme_globex_agriculture.py +172 -126
  10. pandas_market_calendars/calendars/cme_globex_base.py +119 -119
  11. pandas_market_calendars/calendars/cme_globex_crypto.py +160 -160
  12. pandas_market_calendars/calendars/cme_globex_energy_and_metals.py +216 -216
  13. pandas_market_calendars/calendars/cme_globex_equities.py +123 -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 +131 -139
  17. pandas_market_calendars/calendars/eurex_fixed_income.py +98 -98
  18. pandas_market_calendars/calendars/hkex.py +429 -426
  19. pandas_market_calendars/calendars/ice.py +81 -81
  20. pandas_market_calendars/calendars/iex.py +151 -112
  21. pandas_market_calendars/calendars/jpx.py +113 -109
  22. pandas_market_calendars/calendars/lse.py +114 -114
  23. pandas_market_calendars/calendars/mirror.py +149 -130
  24. pandas_market_calendars/calendars/nyse.py +1466 -1324
  25. pandas_market_calendars/calendars/ose.py +116 -116
  26. pandas_market_calendars/calendars/sifma.py +354 -350
  27. pandas_market_calendars/calendars/six.py +132 -132
  28. pandas_market_calendars/calendars/sse.py +311 -311
  29. pandas_market_calendars/calendars/tase.py +220 -197
  30. pandas_market_calendars/calendars/tsx.py +181 -181
  31. pandas_market_calendars/holidays/cme.py +385 -385
  32. pandas_market_calendars/holidays/cme_globex.py +214 -214
  33. pandas_market_calendars/holidays/cn.py +1476 -1455
  34. pandas_market_calendars/holidays/jp.py +401 -398
  35. pandas_market_calendars/holidays/jpx_equinox.py +1 -0
  36. pandas_market_calendars/holidays/nyse.py +1536 -1531
  37. pandas_market_calendars/holidays/oz.py +63 -63
  38. pandas_market_calendars/holidays/sifma.py +350 -338
  39. pandas_market_calendars/holidays/us.py +376 -376
  40. pandas_market_calendars/market_calendar.py +1057 -895
  41. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/METADATA +13 -9
  42. pandas_market_calendars-4.6.0.dist-info/RECORD +50 -0
  43. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/WHEEL +1 -1
  44. pandas_market_calendars-4.3.3.dist-info/RECORD +0 -50
  45. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/LICENSE +0 -0
  46. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/NOTICE +0 -0
  47. {pandas_market_calendars-4.3.3.dist-info → pandas_market_calendars-4.6.0.dist-info}/top_level.txt +0 -0
@@ -1,136 +1,136 @@
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
+ 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,101 +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 (
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
- ]
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
+ ]