Skip to content

Commit 7f06e64

Browse files
Merge branch 'master' into feat/upgrade-websockets-14-fix-reconnect-error
2 parents 1d0d624 + 1c547dc commit 7f06e64

File tree

8 files changed

+734
-5
lines changed

8 files changed

+734
-5
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-latest, windows-latest]
17-
python-version: ['3.8', '3.9', '3.10']
17+
python-version: ['3.9', '3.10', '3.11']
1818
runs-on: ${{ matrix.os }}
1919
name: ${{ matrix.os }} Unit test ${{ matrix.python-version }}
2020
steps:

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)