Skip to content

Commit 0657ead

Browse files
Merge branch 'master' into dependabot/pip/certifi-2025.10.5
2 parents b1c2665 + 76020e2 commit 0657ead

File tree

8 files changed

+734
-5
lines changed

8 files changed

+734
-5
lines changed

examples/rest/options-snapshots_options_chain.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# docs
44
# https://polygon.io/docs/options/get_v3_snapshot_options__underlyingasset
5-
# ttps://polygon-api-client.readthedocs.io/en/latest/Snapshot.html#get-all-snapshots
5+
# https://polygon-api-client.readthedocs.io/en/latest/Snapshot.html#get-all-snapshots
66

77
# client = RESTClient("XXXXXX") # hardcoded api_key is used
88
client = RESTClient() # POLYGON_API_KEY environment variable is used

polygon/modelclass.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
import typing
33
from dataclasses import dataclass
44

5-
65
_T = typing.TypeVar("_T")
76

87

98
def modelclass(cls: typing.Type[_T]) -> typing.Type[_T]:
109
cls = dataclass(cls)
10+
type_hints = typing.get_type_hints(cls)
1111
attributes = [
1212
a
13-
for a in cls.__dict__["__annotations__"].keys()
14-
if not a.startswith("__") and not inspect.isroutine(a)
13+
for a in type_hints.keys()
14+
if not a.startswith("__") and not inspect.isroutine(getattr(cls, a, None))
1515
]
1616

1717
def init(self, *args, **kwargs):

polygon/rest/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from .aggs import AggsClient
22
from .futures import FuturesClient
3+
from .financials import FinancialsClient
34
from .benzinga import BenzingaClient
45
from .economy import EconomyClient
56
from .tmx import TmxClient
@@ -28,6 +29,7 @@
2829
class RESTClient(
2930
AggsClient,
3031
FuturesClient,
32+
FinancialsClient,
3133
BenzingaClient,
3234
EconomyClient,
3335
TmxClient,

polygon/rest/benzinga.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,49 @@ def list_benzinga_news(
363363
options=options,
364364
)
365365

366+
def list_benzinga_news_v2(
367+
self,
368+
published: Optional[str] = None,
369+
published_gt: Optional[str] = None,
370+
published_gte: Optional[str] = None,
371+
published_lt: Optional[str] = None,
372+
published_lte: Optional[str] = None,
373+
channels: Optional[str] = None,
374+
channels_all_of: Optional[str] = None,
375+
channels_any_of: Optional[str] = None,
376+
tags: Optional[str] = None,
377+
tags_all_of: Optional[str] = None,
378+
tags_any_of: Optional[str] = None,
379+
author: Optional[str] = None,
380+
author_any_of: Optional[str] = None,
381+
author_gt: Optional[str] = None,
382+
author_gte: Optional[str] = None,
383+
author_lt: Optional[str] = None,
384+
author_lte: Optional[str] = None,
385+
stocks: Optional[str] = None,
386+
stocks_all_of: Optional[str] = None,
387+
stocks_any_of: Optional[str] = None,
388+
tickers: Optional[str] = None,
389+
tickers_all_of: Optional[str] = None,
390+
tickers_any_of: Optional[str] = None,
391+
limit: Optional[int] = None,
392+
sort: Optional[Union[str, Sort]] = None,
393+
params: Optional[Dict[str, Any]] = None,
394+
raw: bool = False,
395+
options: Optional[RequestOptionBuilder] = None,
396+
) -> Union[Iterator[BenzingaNews], HTTPResponse]:
397+
"""
398+
Endpoint: GET /benzinga/v2/news
399+
"""
400+
url = "/benzinga/v2/news"
401+
return self._paginate(
402+
path=url,
403+
params=self._get_params(self.list_benzinga_news_v2, locals()),
404+
raw=raw,
405+
deserializer=BenzingaNews.from_dict,
406+
options=options,
407+
)
408+
366409
def list_benzinga_ratings(
367410
self,
368411
date: Optional[Union[str, date]] = None,

0 commit comments

Comments
 (0)