Skip to content

Commit 1dd23f8

Browse files
committed
Added get_events and tests to client library.
RV1: - added get_events function to client library - added tests. RV2: - changed get_ticker_events to get_ticker_history RV3: - changed history to events and modifed classes to meet new requirements.
1 parent 24764cd commit 1dd23f8

File tree

4 files changed

+106
-0
lines changed

4 files changed

+106
-0
lines changed

polygon/rest/models/tickers.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,35 @@ class TickerTypes:
185185
@staticmethod
186186
def from_dict(d):
187187
return TickerTypes(**d)
188+
189+
190+
@modelclass
191+
class TickerChange:
192+
ticker: str
193+
194+
@staticmethod
195+
def from_dict(d):
196+
return TickerChange(**d)
197+
198+
199+
@modelclass
200+
class TickerChangeEvent:
201+
type: str
202+
date: str
203+
ticker_change: TickerChange
204+
205+
@staticmethod
206+
def from_dict(d):
207+
return TickerChangeEvent(**d)
208+
209+
210+
@modelclass
211+
class TickerChangeResults:
212+
name: str
213+
figi: str
214+
cik: str
215+
events: Optional[List[TickerChangeEvent]] = None
216+
217+
@staticmethod
218+
def from_dict(d):
219+
return TickerChangeResults(**d)

polygon/rest/reference.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
MarketHoliday,
55
MarketStatus,
66
Ticker,
7+
TickerChangeResults,
78
TickerDetails,
89
TickerNews,
910
TickerTypes,
@@ -143,6 +144,30 @@ def get_ticker_details(
143144
result_key="results",
144145
)
145146

147+
def get_ticker_events(
148+
self,
149+
ticker: Optional[str] = None,
150+
params: Optional[Dict[str, Any]] = None,
151+
raw: bool = False,
152+
) -> Union[TickerChangeResults, HTTPResponse]:
153+
154+
"""
155+
Get event history of ticker given particular point in time.
156+
:param ticker: The ticker symbol of the asset.
157+
:param params: Additional query parameters
158+
:param raw: Return raw object instead of results object.
159+
:return: Ticker Event VX
160+
"""
161+
url = f"/vX/reference/tickers/{ticker}/events"
162+
163+
return self._get(
164+
path=url,
165+
params=params,
166+
deserializer=TickerChangeResults.from_dict,
167+
result_key="results",
168+
raw=raw,
169+
)
170+
146171
def list_ticker_news(
147172
self,
148173
ticker: Optional[str] = None,
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"results": {
3+
"name": "Meta Platforms, Inc. Class A Common Stock",
4+
"figi": "BBG000MM2P62",
5+
"cik": "0001326801",
6+
"events": [
7+
{
8+
"ticker_change": {
9+
"ticker": "META"
10+
},
11+
"type": "ticker_change",
12+
"date": "2022-06-11"
13+
},
14+
{
15+
"ticker_change": {
16+
"ticker": "FB"
17+
},
18+
"type": "ticker_change",
19+
"date": "2012-05-18"
20+
}
21+
]
22+
},
23+
"status": "OK",
24+
"request_id": "8c911ff1-5ca8-41e8-9bbf-e625141caacc"
25+
}

test_rest/test_tickers.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
TickerDetails,
44
TickerNews,
55
TickerTypes,
6+
TickerChangeEvent,
7+
TickerChangeResults,
68
Publisher,
79
Branding,
810
CompanyAddress,
@@ -230,3 +232,25 @@ def test_get_ticker_types(self):
230232
]
231233

232234
self.assertEqual(types, expected)
235+
236+
def test_get_ticker_events_ticker_change(self):
237+
events = self.c.get_ticker_events(ticker="META")
238+
expected = TickerChangeResults(
239+
name="Meta Platforms, Inc. Class A Common Stock",
240+
figi="BBG000MM2P62",
241+
cik="0001326801",
242+
events=[
243+
{
244+
"ticker_change": {"ticker": "META"},
245+
"type": "ticker_change",
246+
"date": "2022-06-11",
247+
},
248+
{
249+
"ticker_change": {"ticker": "FB"},
250+
"type": "ticker_change",
251+
"date": "2012-05-18",
252+
},
253+
],
254+
)
255+
256+
self.assertEqual(expected, events)

0 commit comments

Comments
 (0)